@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 +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"}
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,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,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,kBAAkB,GAClB,cAAc,GACd,kBAAkB,GAClB,qBAAqB,GACrB,mBAAmB,GACnB,aAAa,GACb,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"}
@@ -1 +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"}
1
+ {"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../../../../../src/template/internal/jsx-runtime.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,CAAC;AA4BpB,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"}
@@ -1,3 +1,4 @@
1
- import { type StegoNode } from "../../ir/index.ts";
1
+ import { type StegoInlineNode, type StegoNode } from "../../ir/index.ts";
2
2
  export declare function normalizeChildren(input: unknown): StegoNode[];
3
+ export declare function normalizeInlineChildren(input: unknown): StegoInlineNode[];
3
4
  //# sourceMappingURL=normalizeChildren.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"normalizeChildren.d.ts","sourceRoot":"","sources":["../../../../../src/template/internal/normalizeChildren.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEzF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,CAI7D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,EAAE,CAQzE"}
@@ -4,6 +4,15 @@ export function normalizeChildren(input) {
4
4
  appendChildren(nodes, input);
5
5
  return nodes;
6
6
  }
7
+ export function normalizeInlineChildren(input) {
8
+ const nodes = normalizeChildren(input);
9
+ for (const node of nodes) {
10
+ if (node.kind !== "text" && node.kind !== "link") {
11
+ throw new Error(`Only inline children are supported here in V1. Received '${node.kind}'.`);
12
+ }
13
+ }
14
+ return nodes;
15
+ }
7
16
  function appendChildren(nodes, input) {
8
17
  if (input == null || typeof input === "boolean") {
9
18
  return;
@@ -1 +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"}
1
+ {"version":3,"file":"normalizeChildren.js","sourceRoot":"","sources":["../../../../../src/template/internal/normalizeChildren.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAwC,MAAM,mBAAmB,CAAC;AAEzF,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,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,4DAA4D,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,OAAO,KAA0B,CAAC;AACpC,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"}
@@ -1,4 +1,6 @@
1
1
  export { defineTemplate } from "./defineTemplate.ts";
2
2
  export { Stego } from "./components.ts";
3
- export type { ManuscriptRecord, SpineEntryRecord, SpineCategoryRecord, TemplateContext, StegoTemplate } from "./types.ts";
3
+ export type { ProjectMetadata, LeafMetadata, BranchMetadata, ProjectRecord, LeafRecord, BranchRecord, TemplateContext, StegoTemplate, TemplateDefinitionOptions } from "./types.ts";
4
+ export type { StegoApi } from "./components.ts";
5
+ export type { ExportTarget, PresentationTarget } from "@stego-labs/shared/domain/templates";
4
6
  //# sourceMappingURL=authoring.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authoring.d.ts","sourceRoot":"","sources":["../../../../../src/template/public/authoring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"authoring.d.ts","sourceRoot":"","sources":["../../../../../src/template/public/authoring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,YAAY,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC"}
@@ -1,12 +1,13 @@
1
- import { type AlignValue, type IndentValue, type InsetValue, type PageRegionSpec, type PageSpec, type SizeValue, type SpacingValue, type StegoDocumentNode, type StegoFragmentNode, type StegoHeadingNode, type StegoImageNode, type StegoMarkdownNode, type StegoPageBreakNode, type StegoPageNumberNode, type StegoPageTemplateNode, type StegoParagraphNode, type StegoSectionNode } from "../../ir/index.ts";
2
- export declare function Document(props: {
1
+ import { type AlignValue, type IndentValue, type InsetValue, type PageRegionSpec, type PageSpec, type SizeValue, type SpacingValue, type StegoDocumentNode, type StegoFragmentNode, type StegoHeadingNode, type StegoImageNode, type StegoLinkNode, type StegoKeepTogetherNode, type StegoMarkdownNode, type StegoPageBreakNode, type StegoPageNumberNode, type StegoPageTemplateNode, type StegoPlainTextNode, type StegoParagraphNode, type StegoSectionNode } from "../../ir/index.ts";
2
+ import { type Group, type GroupSelector, type SplitGroup } from "../../collections/index.ts";
3
+ import type { LeafMetadata, LeafRecord } from "./types.ts";
4
+ import type { PresentationTarget, TemplateCapability } from "@stego-labs/shared/domain/templates";
5
+ import { TARGET_CAPABILITIES } from "@stego-labs/shared/domain/templates";
6
+ export type DocumentProps = {
3
7
  page?: PageSpec;
4
8
  children?: unknown;
5
- }): StegoDocumentNode;
6
- export declare function Fragment(props: {
7
- children?: unknown;
8
- }): StegoFragmentNode;
9
- export declare function Section(props: {
9
+ };
10
+ export type SectionProps = {
10
11
  role?: StegoSectionNode["role"];
11
12
  id?: string;
12
13
  spaceBefore?: SpacingValue;
@@ -16,8 +17,8 @@ export declare function Section(props: {
16
17
  firstLineIndent?: IndentValue;
17
18
  align?: AlignValue;
18
19
  children?: unknown;
19
- }): StegoSectionNode;
20
- export declare function Heading(props: {
20
+ };
21
+ export type HeadingProps = {
21
22
  level: StegoHeadingNode["level"];
22
23
  spaceBefore?: SpacingValue;
23
24
  spaceAfter?: SpacingValue;
@@ -25,8 +26,8 @@ export declare function Heading(props: {
25
26
  insetRight?: InsetValue;
26
27
  align?: AlignValue;
27
28
  children?: unknown;
28
- }): StegoHeadingNode;
29
- export declare function Paragraph(props: {
29
+ };
30
+ export type ParagraphProps = {
30
31
  spaceBefore?: SpacingValue;
31
32
  spaceAfter?: SpacingValue;
32
33
  insetLeft?: InsetValue;
@@ -34,11 +35,8 @@ export declare function Paragraph(props: {
34
35
  firstLineIndent?: IndentValue;
35
36
  align?: AlignValue;
36
37
  children?: unknown;
37
- }): StegoParagraphNode;
38
- export declare function Markdown(props: {
39
- source: string;
40
- }): StegoMarkdownNode;
41
- export declare function Image(props: {
38
+ };
39
+ export type ImageProps = {
42
40
  src: string;
43
41
  alt?: string;
44
42
  width?: SizeValue;
@@ -46,23 +44,144 @@ export declare function Image(props: {
46
44
  layout?: "block" | "inline";
47
45
  align?: AlignValue;
48
46
  caption?: string;
49
- }): StegoImageNode;
47
+ };
48
+ type CapabilityMap = typeof TARGET_CAPABILITIES;
49
+ type AllTargetsSupport<TTargets extends PresentationTarget, TCapability extends TemplateCapability> = false extends (TTargets extends any ? CapabilityMap[TTargets][TCapability] : never) ? false : true;
50
+ type GatedProps<TTargets extends PresentationTarget, TCapability extends TemplateCapability, TProps extends object> = AllTargetsSupport<TTargets, TCapability> extends true ? TProps : {
51
+ [TKey in keyof TProps]?: never;
52
+ };
53
+ type NarrowDocumentProps<TTargets extends PresentationTarget> = {
54
+ children?: unknown;
55
+ } & GatedProps<TTargets, "pageLayout", {
56
+ page?: PageSpec;
57
+ }>;
58
+ type NarrowSectionProps<TTargets extends PresentationTarget> = {
59
+ role?: StegoSectionNode["role"];
60
+ id?: string;
61
+ children?: unknown;
62
+ } & GatedProps<TTargets, "spacing", {
63
+ spaceBefore?: SpacingValue;
64
+ spaceAfter?: SpacingValue;
65
+ }> & GatedProps<TTargets, "inset", {
66
+ insetLeft?: InsetValue;
67
+ insetRight?: InsetValue;
68
+ }> & GatedProps<TTargets, "indent", {
69
+ firstLineIndent?: IndentValue;
70
+ }> & GatedProps<TTargets, "align", {
71
+ align?: AlignValue;
72
+ }>;
73
+ type NarrowHeadingProps<TTargets extends PresentationTarget> = {
74
+ level: StegoHeadingNode["level"];
75
+ children?: unknown;
76
+ } & GatedProps<TTargets, "spacing", {
77
+ spaceBefore?: SpacingValue;
78
+ spaceAfter?: SpacingValue;
79
+ }> & GatedProps<TTargets, "inset", {
80
+ insetLeft?: InsetValue;
81
+ insetRight?: InsetValue;
82
+ }> & GatedProps<TTargets, "align", {
83
+ align?: AlignValue;
84
+ }>;
85
+ type NarrowParagraphProps<TTargets extends PresentationTarget> = {
86
+ children?: unknown;
87
+ } & GatedProps<TTargets, "spacing", {
88
+ spaceBefore?: SpacingValue;
89
+ spaceAfter?: SpacingValue;
90
+ }> & GatedProps<TTargets, "inset", {
91
+ insetLeft?: InsetValue;
92
+ insetRight?: InsetValue;
93
+ }> & GatedProps<TTargets, "indent", {
94
+ firstLineIndent?: IndentValue;
95
+ }> & GatedProps<TTargets, "align", {
96
+ align?: AlignValue;
97
+ }>;
98
+ type NarrowImageProps<TTargets extends PresentationTarget> = {
99
+ src: string;
100
+ alt?: string;
101
+ width?: SizeValue;
102
+ height?: SizeValue;
103
+ caption?: string;
104
+ } & GatedProps<TTargets, "imageLayout", {
105
+ layout?: "block" | "inline";
106
+ }> & GatedProps<TTargets, "imageAlign", {
107
+ align?: AlignValue;
108
+ }>;
109
+ type NarrowDocumentComponent<TTargets extends PresentationTarget> = (props: NarrowDocumentProps<TTargets>) => StegoDocumentNode;
110
+ type NarrowSectionComponent<TTargets extends PresentationTarget> = (props: NarrowSectionProps<TTargets>) => StegoSectionNode;
111
+ type NarrowHeadingComponent<TTargets extends PresentationTarget> = (props: NarrowHeadingProps<TTargets>) => StegoHeadingNode;
112
+ type NarrowParagraphComponent<TTargets extends PresentationTarget> = (props: NarrowParagraphProps<TTargets>) => StegoParagraphNode;
113
+ type NarrowImageComponent<TTargets extends PresentationTarget> = (props: NarrowImageProps<TTargets>) => StegoImageNode;
114
+ type MaybeComponent<TKey extends string, TTargets extends PresentationTarget, TCapability extends TemplateCapability, TValue> = AllTargetsSupport<TTargets, TCapability> extends true ? {
115
+ [TProp in TKey]: TValue;
116
+ } : {};
117
+ export type StegoApi<TTargets extends PresentationTarget> = {
118
+ Document: NarrowDocumentComponent<TTargets>;
119
+ Fragment: typeof Fragment;
120
+ Section: NarrowSectionComponent<TTargets>;
121
+ Heading: NarrowHeadingComponent<TTargets>;
122
+ Paragraph: NarrowParagraphComponent<TTargets>;
123
+ Markdown: typeof Markdown;
124
+ PlainText: typeof PlainText;
125
+ Link: typeof Link;
126
+ Image: NarrowImageComponent<TTargets>;
127
+ groupBy: typeof groupBy;
128
+ splitBy: typeof splitBy;
129
+ } & MaybeComponent<"KeepTogether", TTargets, "keepTogether", typeof KeepTogether> & MaybeComponent<"PageBreak", TTargets, "pageBreak", typeof PageBreak> & MaybeComponent<"PageTemplate", TTargets, "pageTemplate", typeof PageTemplate> & MaybeComponent<"PageNumber", TTargets, "pageNumber", typeof PageNumber>;
130
+ export declare function Document(props: DocumentProps): StegoDocumentNode;
131
+ export declare function Fragment(props: {
132
+ children?: unknown;
133
+ }): StegoFragmentNode;
134
+ export declare function KeepTogether(props: {
135
+ children?: unknown;
136
+ }): StegoKeepTogetherNode;
137
+ export declare function Section(props: SectionProps): StegoSectionNode;
138
+ export declare function Heading(props: HeadingProps): StegoHeadingNode;
139
+ export declare function Paragraph(props: ParagraphProps): StegoParagraphNode;
140
+ export declare function Markdown<TMetadata extends LeafMetadata>(props: {
141
+ source: string;
142
+ leaf?: never;
143
+ } | {
144
+ leaf: LeafRecord<TMetadata>;
145
+ source?: never;
146
+ }): StegoMarkdownNode;
147
+ export declare function PlainText<TMetadata extends LeafMetadata>(props: {
148
+ source: string;
149
+ leaf?: never;
150
+ } | {
151
+ leaf: LeafRecord<TMetadata>;
152
+ source?: never;
153
+ }): StegoPlainTextNode;
154
+ export declare function Link(props: {
155
+ leaf: string;
156
+ heading?: string;
157
+ anchor?: string;
158
+ children?: unknown;
159
+ }): StegoLinkNode;
160
+ export declare function Image(props: ImageProps): StegoImageNode;
50
161
  export declare function PageBreak(): StegoPageBreakNode;
51
162
  export declare function PageTemplate(props: {
52
163
  header?: PageRegionSpec;
53
164
  footer?: PageRegionSpec;
54
165
  }): StegoPageTemplateNode;
55
166
  export declare function PageNumber(): StegoPageNumberNode;
167
+ export declare function groupBy<T>(items: T[], selector: GroupSelector<T>): Group<T>[];
168
+ export declare function splitBy<T>(items: T[], selector: GroupSelector<T>): SplitGroup<T>[];
56
169
  export declare const Stego: {
57
170
  readonly Document: typeof Document;
58
171
  readonly Fragment: typeof Fragment;
172
+ readonly KeepTogether: typeof KeepTogether;
59
173
  readonly Section: typeof Section;
60
174
  readonly Heading: typeof Heading;
61
175
  readonly Paragraph: typeof Paragraph;
62
176
  readonly Markdown: typeof Markdown;
177
+ readonly PlainText: typeof PlainText;
178
+ readonly Link: typeof Link;
63
179
  readonly Image: typeof Image;
64
180
  readonly PageBreak: typeof PageBreak;
65
181
  readonly PageTemplate: typeof PageTemplate;
66
182
  readonly PageNumber: typeof PageNumber;
183
+ readonly groupBy: typeof groupBy;
184
+ readonly splitBy: typeof splitBy;
67
185
  };
186
+ export {};
68
187
  //# sourceMappingURL=components.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../../src/template/public/components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../../src/template/public/components.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,51 @@
1
- import { createDocumentNode, createFragmentNode, createHeadingNode, createImageNode, createMarkdownNode, createPageBreakNode, createPageNumberNode, createPageTemplateNode, createParagraphNode, createSectionNode } from "../../ir/index.js";
2
- import { normalizeChildren } from "../internal/normalizeChildren.js";
1
+ import { createDocumentNode, createFragmentNode, createKeepTogetherNode, createHeadingNode, createImageNode, createMarkdownNode, createLinkNode, createPageBreakNode, createPageNumberNode, createPageTemplateNode, createPlainTextNode, createParagraphNode, createSectionNode } from "../../ir/index.js";
2
+ import { groupCollectionItems, splitCollectionItems } from "../../collections/index.js";
3
+ import { normalizeChildren, normalizeInlineChildren } from "../internal/normalizeChildren.js";
3
4
  export function Document(props) {
4
5
  return createDocumentNode(props.page, normalizeChildren(props.children));
5
6
  }
6
7
  export function Fragment(props) {
7
8
  return createFragmentNode(normalizeChildren(props.children));
8
9
  }
10
+ export function KeepTogether(props) {
11
+ return createKeepTogetherNode(normalizeChildren(props.children));
12
+ }
9
13
  export function Section(props) {
10
14
  return createSectionNode(props, normalizeChildren(props.children));
11
15
  }
12
16
  export function Heading(props) {
13
- return createHeadingNode(props.level, props, normalizeChildren(props.children));
17
+ return createHeadingNode(props.level, props, normalizeInlineChildren(props.children));
14
18
  }
15
19
  export function Paragraph(props) {
16
- return createParagraphNode(props, normalizeChildren(props.children));
20
+ return createParagraphNode(props, normalizeInlineChildren(props.children));
17
21
  }
18
22
  export function Markdown(props) {
19
- return createMarkdownNode(props.source);
23
+ if ("leaf" in props && props.leaf) {
24
+ return createMarkdownNode({
25
+ leaf: {
26
+ id: props.leaf.id,
27
+ body: props.leaf.body
28
+ }
29
+ });
30
+ }
31
+ return createMarkdownNode({ source: props.source });
32
+ }
33
+ export function PlainText(props) {
34
+ if ("leaf" in props && props.leaf) {
35
+ return createPlainTextNode({
36
+ leaf: {
37
+ id: props.leaf.id,
38
+ body: props.leaf.body
39
+ }
40
+ });
41
+ }
42
+ return createPlainTextNode({ source: props.source });
43
+ }
44
+ export function Link(props) {
45
+ if (props.heading && props.anchor) {
46
+ throw new Error("<Stego.Link /> accepts either heading or anchor, not both.");
47
+ }
48
+ return createLinkNode(props.leaf, props, normalizeInlineChildren(props.children));
20
49
  }
21
50
  export function Image(props) {
22
51
  return createImageNode(props);
@@ -30,16 +59,27 @@ export function PageTemplate(props) {
30
59
  export function PageNumber() {
31
60
  return createPageNumberNode();
32
61
  }
62
+ export function groupBy(items, selector) {
63
+ return groupCollectionItems(items, selector);
64
+ }
65
+ export function splitBy(items, selector) {
66
+ return splitCollectionItems(items, selector);
67
+ }
33
68
  export const Stego = {
34
69
  Document,
35
70
  Fragment,
71
+ KeepTogether,
36
72
  Section,
37
73
  Heading,
38
74
  Paragraph,
39
75
  Markdown,
76
+ PlainText,
77
+ Link,
40
78
  Image,
41
79
  PageBreak,
42
80
  PageTemplate,
43
- PageNumber
81
+ PageNumber,
82
+ groupBy,
83
+ splitBy
44
84
  };
45
85
  //# sourceMappingURL=components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../../../src/template/public/components.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EAkBlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,MAAM,UAAU,QAAQ,CAAC,KAA8C;IACrE,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAA6B;IACpD,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAUvB;IACC,OAAO,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAQvB;IACC,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAQzB;IACC,OAAO,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAyB;IAChD,OAAO,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAQrB;IACC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,mBAAmB,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAG5B;IACC,OAAO,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,oBAAoB,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,SAAS;IACT,QAAQ;IACR,KAAK;IACL,SAAS;IACT,YAAY;IACZ,UAAU;CACF,CAAC"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../../../src/template/public/components.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export type { ManuscriptRecord, SpineEntryRecord, SpineCategoryRecord, TemplateContext, StegoTemplate } from "./types.ts";
1
+ export type { ProjectMetadata, LeafMetadata, BranchMetadata, ProjectRecord, LeafRecord, BranchRecord, TemplateContext, StegoTemplate, TemplateDefinitionOptions } from "./types.ts";
2
2
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/template/public/context.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/template/public/context.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,yBAAyB,EAC1B,MAAM,YAAY,CAAC"}
@@ -1,4 +1,7 @@
1
- import type { StegoDocumentNode } from "../../ir/index.ts";
2
- import type { StegoTemplate, TemplateContext } from "./types.ts";
3
- export declare function defineTemplate(render: (context: TemplateContext) => StegoDocumentNode): StegoTemplate;
1
+ import type { StegoNode } from "../../ir/index.ts";
2
+ import { type PresentationTarget } from "@stego-labs/shared/domain/templates";
3
+ import type { StegoApi } from "./components.ts";
4
+ import type { BranchMetadata, LeafMetadata, ProjectMetadata, StegoTemplate, TemplateContext, TemplateDefinitionOptions } from "./types.ts";
5
+ export declare function defineTemplate<TProjectMetadata extends ProjectMetadata = ProjectMetadata, TLeafMetadata extends LeafMetadata = LeafMetadata, TBranchMetadata extends BranchMetadata = BranchMetadata>(render: (context: TemplateContext<TProjectMetadata, TLeafMetadata, TBranchMetadata>) => StegoNode): StegoTemplate<TProjectMetadata, TLeafMetadata, TBranchMetadata>;
6
+ export declare function defineTemplate<TProjectMetadata extends ProjectMetadata, TLeafMetadata extends LeafMetadata, TBranchMetadata extends BranchMetadata, const TTargets extends readonly PresentationTarget[]>(options: TemplateDefinitionOptions<TTargets>, render: (context: TemplateContext<TProjectMetadata, TLeafMetadata, TBranchMetadata>, stego: StegoApi<TTargets[number]>) => StegoNode): StegoTemplate<TProjectMetadata, TLeafMetadata, TBranchMetadata, TTargets[number]>;
4
7
  //# sourceMappingURL=defineTemplate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defineTemplate.d.ts","sourceRoot":"","sources":["../../../../../src/template/public/defineTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,wBAAgB,cAAc,CAC5B,MAAM,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,iBAAiB,GACtD,aAAa,CAKf"}
1
+ {"version":3,"file":"defineTemplate.d.ts","sourceRoot":"","sources":["../../../../../src/template/public/defineTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EACb,eAAe,EACf,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAEpB,wBAAgB,cAAc,CAC5B,gBAAgB,SAAS,eAAe,GAAG,eAAe,EAC1D,aAAa,SAAS,YAAY,GAAG,YAAY,EACjD,eAAe,SAAS,cAAc,GAAG,cAAc,EAEvD,MAAM,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAC,KAAK,SAAS,GAChG,aAAa,CAAC,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AAEnE,wBAAgB,cAAc,CAC5B,gBAAgB,SAAS,eAAe,EACxC,aAAa,SAAS,YAAY,EAClC,eAAe,SAAS,cAAc,EACtC,KAAK,CAAC,QAAQ,SAAS,SAAS,kBAAkB,EAAE,EAEpD,OAAO,EAAE,yBAAyB,CAAC,QAAQ,CAAC,EAC5C,MAAM,EAAE,CACN,OAAO,EAAE,eAAe,CAAC,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAC,EAC1E,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAC9B,SAAS,GACb,aAAa,CAAC,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC"}
@@ -1,7 +1,32 @@
1
- export function defineTemplate(render) {
1
+ import { isPresentationTarget } from "@stego-labs/shared/domain/templates";
2
+ import { Stego } from "./components.js";
3
+ export function defineTemplate(optionsOrRender, maybeRender) {
4
+ if (typeof optionsOrRender === "function") {
5
+ return {
6
+ kind: "stego-template",
7
+ targets: null,
8
+ render: optionsOrRender
9
+ };
10
+ }
11
+ if (typeof maybeRender !== "function") {
12
+ throw new Error("Target-aware templates must call defineTemplate({ targets }, render).");
13
+ }
14
+ const rawTargets = [...optionsOrRender.targets];
15
+ if (rawTargets.length === 0) {
16
+ throw new Error("Target-aware templates must declare one or more presentation targets.");
17
+ }
18
+ const invalidTargets = rawTargets.filter((target) => !isPresentationTarget(target));
19
+ if (invalidTargets.length > 0) {
20
+ throw new Error("Target-aware templates may only declare docx, pdf, or epub.");
21
+ }
22
+ if (new Set(rawTargets).size !== rawTargets.length) {
23
+ throw new Error("Target-aware templates may not declare duplicate presentation targets.");
24
+ }
25
+ const targets = rawTargets;
2
26
  return {
3
27
  kind: "stego-template",
4
- render
28
+ targets,
29
+ render: (context) => maybeRender(context, Stego)
5
30
  };
6
31
  }
7
32
  //# sourceMappingURL=defineTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defineTemplate.js","sourceRoot":"","sources":["../../../../../src/template/public/defineTemplate.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,cAAc,CAC5B,MAAuD;IAEvD,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,MAAM;KACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"defineTemplate.js","sourceRoot":"","sources":["../../../../../src/template/public/defineTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAA2B,MAAM,qCAAqC,CAAC;AAEpG,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AA+BxC,MAAM,UAAU,cAAc,CAM5B,eAE+F,EAC/F,WAGc;IAEd,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;QAC1C,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,eAAe;SACqD,CAAC;IACjF,CAAC;IAED,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,OAAO,GAAG,UAAiC,CAAC;IAClD,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO;QACP,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,KAAsC,CAAC;KAClF,CAAC;AACJ,CAAC"}
@@ -1,46 +1,55 @@
1
- import type { Collection } from "../../collections/index.ts";
2
- import type { StegoDocumentNode } from "../../ir/index.ts";
3
- export type ManuscriptRecord = {
4
- kind: "manuscript";
1
+ import type { StegoNode } from "../../ir/index.ts";
2
+ import type { LeafFormat, LeafHeadingTarget } from "@stego-labs/shared/domain/content";
3
+ import type { PresentationTarget } from "@stego-labs/shared/domain/templates";
4
+ export type ProjectMetadata = Record<string, unknown>;
5
+ export type LeafMetadata = Record<string, unknown> & {
6
+ id: string;
7
+ };
8
+ export type BranchMetadata = {
9
+ label?: string;
10
+ };
11
+ export type LeafRecord<TMetadata extends LeafMetadata = LeafMetadata> = {
12
+ kind: "leaf";
13
+ id: string;
14
+ format: LeafFormat;
5
15
  path: string;
6
16
  relativePath: string;
7
- slug: string;
8
17
  titleFromFilename: string;
9
- metadata: Record<string, unknown>;
18
+ metadata: TMetadata;
10
19
  body: string;
11
20
  order: number | null;
21
+ headings: LeafHeadingTarget[];
12
22
  };
13
- export type SpineEntryRecord = {
14
- kind: "spine-entry";
15
- path: string;
16
- relativePath: string;
17
- category: string;
18
- key: string;
19
- label: string;
20
- metadata: Record<string, unknown>;
21
- body: string;
22
- };
23
- export type SpineCategoryRecord = {
24
- kind: "spine-category";
23
+ export type BranchRecord<TMetadata extends BranchMetadata = BranchMetadata> = {
24
+ kind: "branch";
25
25
  key: string;
26
+ name: string;
26
27
  label: string;
27
- path: string;
28
- metadata: Record<string, unknown>;
28
+ parentKey?: string;
29
+ depth: number;
30
+ relativeDir: string;
31
+ path?: string;
32
+ relativePath?: string;
33
+ metadata: TMetadata;
34
+ body?: string;
29
35
  };
30
- export type TemplateContext = {
36
+ export type ProjectRecord<TMetadata extends ProjectMetadata = ProjectMetadata> = {
31
37
  project: {
32
38
  id: string;
33
39
  root: string;
34
- metadata: Record<string, unknown>;
35
- };
36
- collections: {
37
- manuscripts: Collection<ManuscriptRecord>;
38
- spineEntries: Collection<SpineEntryRecord>;
39
- spineCategories: Collection<SpineCategoryRecord>;
40
+ metadata: TMetadata;
40
41
  };
41
42
  };
42
- export type StegoTemplate = {
43
+ export type TemplateContext<TProjectMetadata extends ProjectMetadata = ProjectMetadata, TLeafMetadata extends LeafMetadata = LeafMetadata, TBranchMetadata extends BranchMetadata = BranchMetadata> = ProjectRecord<TProjectMetadata> & {
44
+ content: LeafRecord<TLeafMetadata>[];
45
+ branches: BranchRecord<TBranchMetadata>[];
46
+ };
47
+ export type StegoTemplate<TProjectMetadata extends ProjectMetadata = ProjectMetadata, TLeafMetadata extends LeafMetadata = LeafMetadata, TBranchMetadata extends BranchMetadata = BranchMetadata, TTargets extends PresentationTarget = never> = {
43
48
  kind: "stego-template";
44
- render: (context: TemplateContext) => StegoDocumentNode;
49
+ targets: readonly TTargets[] | null;
50
+ render: (context: TemplateContext<TProjectMetadata, TLeafMetadata, TBranchMetadata>) => StegoNode;
51
+ };
52
+ export type TemplateDefinitionOptions<TTargets extends readonly PresentationTarget[]> = {
53
+ targets: TTargets;
45
54
  };
46
55
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/template/public/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,gBAAgB,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;IACF,WAAW,EAAE;QACX,WAAW,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC1C,YAAY,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC3C,eAAe,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;KAClD,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,iBAAiB,CAAC;CACzD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/template/public/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACnD,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,SAAS,SAAS,YAAY,GAAG,YAAY,IAAI;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,cAAc,GAAG,cAAc,IAAI;IAC5E,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,SAAS,SAAS,eAAe,GAAG,eAAe,IAAI;IAC/E,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,eAAe,CACzB,gBAAgB,SAAS,eAAe,GAAG,eAAe,EAC1D,aAAa,SAAS,YAAY,GAAG,YAAY,EACjD,eAAe,SAAS,cAAc,GAAG,cAAc,IACrD,aAAa,CAAC,gBAAgB,CAAC,GAAG;IACpC,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;IACrC,QAAQ,EAAE,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,aAAa,CACvB,gBAAgB,SAAS,eAAe,GAAG,eAAe,EAC1D,aAAa,SAAS,YAAY,GAAG,YAAY,EACjD,eAAe,SAAS,cAAc,GAAG,cAAc,EACvD,QAAQ,SAAS,kBAAkB,GAAG,KAAK,IACzC;IACF,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAC,KAAK,SAAS,CAAC;CACnG,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,QAAQ,SAAS,SAAS,kBAAkB,EAAE,IAAI;IACtF,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/test/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=template-generic-types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-generic-types.test.d.ts","sourceRoot":"","sources":["../../../../src/test/template-generic-types.test.tsx"],"names":[],"mappings":"AAoJA,OAAO,EAAE,CAAC"}