@bendyline/squisq 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (782) hide show
  1. package/dist/{Doc-BeSeH2iX.d.ts → Doc-BsMkmzH8.d.ts} +838 -268
  2. package/dist/{ImageEditDoc-BTIvw0oq.d.ts → ImageEditDoc-DvoeHMP9.d.ts} +11 -4
  3. package/dist/{chunk-ZTX4PFFT.js → chunk-2OIBZYKP.js} +75 -2
  4. package/dist/chunk-2OIBZYKP.js.map +1 -0
  5. package/dist/chunk-2UQOHYE2.js +45 -0
  6. package/dist/chunk-2UQOHYE2.js.map +1 -0
  7. package/dist/{chunk-B4EEON3N.js → chunk-4AKUQPEE.js} +536 -103
  8. package/dist/chunk-4AKUQPEE.js.map +1 -0
  9. package/dist/chunk-4ZFRZBU2.js +6582 -0
  10. package/dist/chunk-4ZFRZBU2.js.map +1 -0
  11. package/dist/{chunk-57CVQCFX.js → chunk-7MQGNR76.js} +79 -3
  12. package/dist/chunk-7MQGNR76.js.map +1 -0
  13. package/dist/{chunk-5WFRKURX.js → chunk-DLXZMS5K.js} +4 -2
  14. package/dist/chunk-DLXZMS5K.js.map +1 -0
  15. package/dist/{chunk-MYIH7FWD.js → chunk-FBKP5CAO.js} +1 -1
  16. package/dist/chunk-FBKP5CAO.js.map +1 -0
  17. package/dist/chunk-KZNXZ5SM.js +333 -0
  18. package/dist/chunk-KZNXZ5SM.js.map +1 -0
  19. package/dist/{chunk-WMOI7FN3.js → chunk-LRCV7N7F.js} +12 -2
  20. package/dist/{chunk-WMOI7FN3.js.map → chunk-LRCV7N7F.js.map} +1 -1
  21. package/dist/{chunk-3K5OG6KI.js → chunk-OH43RPTP.js} +403 -187
  22. package/dist/chunk-OH43RPTP.js.map +1 -0
  23. package/dist/{chunk-H3AXU4MJ.js → chunk-OKJOQXK4.js} +149 -2
  24. package/dist/chunk-OKJOQXK4.js.map +1 -0
  25. package/dist/chunk-PGGGKYWG.js +1 -0
  26. package/dist/chunk-PGGGKYWG.js.map +1 -0
  27. package/dist/{chunk-7UDSRZKG.js → chunk-Q3ROPT5H.js} +35 -14
  28. package/dist/chunk-Q3ROPT5H.js.map +1 -0
  29. package/dist/chunk-QE7TWGVT.js +178 -0
  30. package/dist/chunk-QE7TWGVT.js.map +1 -0
  31. package/dist/chunk-RUDYOTA6.js +345 -0
  32. package/dist/chunk-RUDYOTA6.js.map +1 -0
  33. package/dist/chunk-TVSGLUID.js +596 -0
  34. package/dist/chunk-TVSGLUID.js.map +1 -0
  35. package/dist/chunk-ZLQKNOZQ.js +1 -0
  36. package/dist/chunk-ZLQKNOZQ.js.map +1 -0
  37. package/dist/doc/index.d.ts +5 -10
  38. package/dist/doc/index.js +263 -7
  39. package/dist/doc/index.js.map +1 -1
  40. package/dist/generate/index.d.ts +106 -7
  41. package/dist/generate/index.js +16 -3
  42. package/dist/generate/index.js.map +1 -1
  43. package/dist/icons/index.d.ts +62 -10
  44. package/dist/icons/index.js +29 -9
  45. package/dist/icons/index.js.map +1 -1
  46. package/dist/icons/inlineIconMarker.d.ts +1 -0
  47. package/dist/icons/inlineIconMarker.js +15 -0
  48. package/dist/icons/inlineIconMarker.js.map +1 -0
  49. package/dist/imageEdit/index.d.ts +219 -11
  50. package/dist/imageEdit/index.js +56 -21
  51. package/dist/imageEdit/index.js.map +1 -1
  52. package/dist/index.d.ts +24 -13
  53. package/dist/index.js +680 -12
  54. package/dist/index.js.map +1 -1
  55. package/dist/inlineIconMarker-CiE8Hlvz.d.ts +59 -0
  56. package/dist/jsonForm/index.d.ts +189 -12
  57. package/dist/jsonForm/index.js +26 -11
  58. package/dist/jsonForm/index.js.map +1 -1
  59. package/dist/markdown/index.d.ts +474 -19
  60. package/dist/markdown/index.js +72 -33
  61. package/dist/markdown/index.js.map +1 -1
  62. package/dist/random/index.d.ts +51 -2
  63. package/dist/random/index.js +9 -1
  64. package/dist/random/index.js.map +1 -1
  65. package/dist/recommend/index.d.ts +39 -13
  66. package/dist/recommend/index.js +10 -14
  67. package/dist/recommend/index.js.map +1 -1
  68. package/dist/schemas/index.d.ts +208 -15
  69. package/dist/schemas/index.js +150 -11
  70. package/dist/schemas/index.js.map +1 -1
  71. package/dist/spatial/index.d.ts +116 -3
  72. package/dist/spatial/index.js +24 -2
  73. package/dist/spatial/index.js.map +1 -1
  74. package/dist/storage/index.d.ts +159 -10
  75. package/dist/storage/index.js +20 -6
  76. package/dist/storage/index.js.map +1 -1
  77. package/dist/story/index.d.ts +906 -40
  78. package/dist/story/index.js +124 -6
  79. package/dist/{themeLibrary-BHjJ0Qx6.d.ts → themeLibrary-DQQKuRMx.d.ts} +1 -1
  80. package/dist/timing/index.d.ts +109 -4
  81. package/dist/timing/index.js +23 -2
  82. package/dist/timing/index.js.map +1 -1
  83. package/dist/transform/index.d.ts +213 -6
  84. package/dist/transform/index.js +26 -3
  85. package/dist/transform/index.js.map +1 -1
  86. package/dist/{types-BdZkdJ3z.d.ts → types-DlAZ7MW4.d.ts} +115 -1
  87. package/dist/versions/index.d.ts +123 -24
  88. package/dist/versions/index.js +34 -27
  89. package/dist/versions/index.js.map +1 -1
  90. package/package.json +6 -1
  91. package/src/__tests__/animationUtils.test.ts +40 -0
  92. package/src/__tests__/annotationCoercion.test.ts +243 -0
  93. package/src/__tests__/applyRenderStyle.test.ts +146 -0
  94. package/src/__tests__/atmosphereLayers.test.ts +108 -0
  95. package/src/__tests__/attrTokens.test.ts +162 -0
  96. package/src/__tests__/customTemplateSample.test.ts +83 -0
  97. package/src/__tests__/customTemplatesFrontmatter.test.ts +205 -0
  98. package/src/__tests__/customThemesFrontmatter.test.ts +118 -0
  99. package/src/__tests__/diagramBlock.test.ts +122 -0
  100. package/src/__tests__/diagramLayout.test.ts +134 -0
  101. package/src/__tests__/drawing.test.ts +109 -0
  102. package/src/__tests__/drawingBlock.test.ts +124 -0
  103. package/src/__tests__/drawingLayout.test.ts +171 -0
  104. package/src/__tests__/geohash.test.ts +6 -5
  105. package/src/__tests__/getLayers.test.ts +6 -2
  106. package/src/__tests__/getLayersFallback.test.ts +103 -0
  107. package/src/__tests__/imageEditExportSvg.test.ts +70 -0
  108. package/src/__tests__/imageEditVersions.test.ts +72 -0
  109. package/src/__tests__/inlineIconMarker.test.ts +36 -0
  110. package/src/__tests__/layoutBlock.test.ts +83 -0
  111. package/src/__tests__/layoutLayout.test.ts +169 -0
  112. package/src/__tests__/markdown.test.ts +23 -0
  113. package/src/__tests__/markdownSanitize.test.ts +64 -0
  114. package/src/__tests__/markdownToDoc.test.ts +223 -2
  115. package/src/__tests__/mediaAnnotations.test.ts +64 -0
  116. package/src/__tests__/mediaSchedule.test.ts +118 -0
  117. package/src/__tests__/pandocAttrParse.test.ts +187 -0
  118. package/src/__tests__/resolveDocTheme.test.ts +55 -0
  119. package/src/__tests__/rootExports.test.ts +43 -0
  120. package/src/__tests__/shapeGeometry.test.ts +89 -0
  121. package/src/__tests__/shapeVocabulary.test.ts +133 -0
  122. package/src/__tests__/structuredData.test.ts +179 -0
  123. package/src/__tests__/templateAnnotationParse.test.ts +108 -0
  124. package/src/__tests__/templateMetadata.test.ts +21 -0
  125. package/src/__tests__/templates.test.ts +145 -4
  126. package/src/__tests__/themeCompile.test.ts +42 -0
  127. package/src/__tests__/themeValidator.test.ts +6 -0
  128. package/src/__tests__/transformV2.test.ts +137 -0
  129. package/src/__tests__/transitionNormalize.test.ts +61 -0
  130. package/src/__tests__/validateDoc.test.ts +100 -0
  131. package/src/doc/customTemplatesFrontmatter.ts +308 -0
  132. package/src/doc/customThemesFrontmatter.ts +90 -0
  133. package/src/doc/docToMarkdown.ts +73 -4
  134. package/src/doc/getLayers.ts +40 -17
  135. package/src/doc/index.ts +35 -1
  136. package/src/doc/markdownToDoc.ts +333 -12
  137. package/src/doc/mediaAnnotations.ts +118 -0
  138. package/src/doc/resolveDocTheme.ts +55 -0
  139. package/src/doc/structuredData.ts +230 -0
  140. package/src/doc/templateInputs.ts +240 -0
  141. package/src/doc/templates/__tests__/customTemplate.test.ts +151 -0
  142. package/src/doc/templates/__tests__/customTemplateRegistry.test.ts +110 -0
  143. package/src/doc/templates/accentImage.ts +30 -6
  144. package/src/doc/templates/captionUtils.ts +23 -0
  145. package/src/doc/templates/comparisonBar.ts +26 -18
  146. package/src/doc/templates/coverBlock.ts +7 -4
  147. package/src/doc/templates/customTemplate.ts +45 -0
  148. package/src/doc/templates/dataTable.ts +37 -19
  149. package/src/doc/templates/dateEvent.ts +41 -20
  150. package/src/doc/templates/definitionCard.ts +26 -18
  151. package/src/doc/templates/diagramBlock.ts +204 -0
  152. package/src/doc/templates/diagramLayout.ts +159 -0
  153. package/src/doc/templates/drawingBlock.ts +325 -0
  154. package/src/doc/templates/drawingLayout.ts +539 -0
  155. package/src/doc/templates/factCard.ts +51 -25
  156. package/src/doc/templates/fallbackBlock.ts +123 -0
  157. package/src/doc/templates/featureBlock.ts +20 -13
  158. package/src/doc/templates/fullBleedQuote.ts +18 -8
  159. package/src/doc/templates/imageWithCaption.ts +22 -9
  160. package/src/doc/templates/index.ts +215 -46
  161. package/src/doc/templates/layoutBlock.ts +43 -0
  162. package/src/doc/templates/layoutLayout.ts +243 -0
  163. package/src/doc/templates/listBlock.ts +56 -30
  164. package/src/doc/templates/mapBlock.ts +15 -12
  165. package/src/doc/templates/metadata.ts +120 -0
  166. package/src/doc/templates/persistentLayers.ts +129 -11
  167. package/src/doc/templates/photoGrid.ts +23 -12
  168. package/src/doc/templates/pullQuote.ts +30 -12
  169. package/src/doc/templates/quoteBlock.ts +54 -29
  170. package/src/doc/templates/sectionHeader.ts +25 -11
  171. package/src/doc/templates/statHighlight.ts +39 -22
  172. package/src/doc/templates/titleBlock.ts +59 -21
  173. package/src/doc/templates/tokens/__tests__/resolveTokens.test.ts +221 -0
  174. package/src/doc/templates/tokens/resolveTokens.ts +0 -0
  175. package/src/doc/templates/twoColumn.ts +48 -30
  176. package/src/doc/templates/videoPullQuote.ts +22 -12
  177. package/src/doc/templates/videoWithCaption.ts +13 -8
  178. package/src/doc/utils/animationUtils.ts +267 -3
  179. package/src/doc/utils/applyRenderStyle.ts +113 -0
  180. package/src/doc/utils/imageTreatment.ts +70 -0
  181. package/src/doc/utils/shapeGeometry.ts +464 -0
  182. package/src/doc/utils/themeUtils.ts +75 -1
  183. package/src/doc/validate.ts +476 -0
  184. package/src/generate/slideshowGenerator.ts +7 -0
  185. package/src/icons/index.ts +8 -0
  186. package/src/icons/inlineIconMarker.ts +73 -0
  187. package/src/imageEdit/export.ts +85 -2
  188. package/src/imageEdit/index.ts +1 -0
  189. package/src/imageEdit/persistence.ts +51 -0
  190. package/src/index.ts +2 -0
  191. package/src/markdown/annotationCoercion.ts +295 -0
  192. package/src/markdown/attrTokens.ts +222 -0
  193. package/src/markdown/convert.ts +229 -26
  194. package/src/markdown/index.ts +36 -0
  195. package/src/markdown/sanitize.ts +298 -0
  196. package/src/markdown/stringify.ts +84 -3
  197. package/src/markdown/types.ts +66 -0
  198. package/src/markdown/utils.ts +49 -1
  199. package/src/recommend/templates.ts +24 -0
  200. package/src/schemas/BlockTemplates.ts +133 -4
  201. package/src/schemas/CustomTemplates.ts +74 -0
  202. package/src/schemas/Doc.ts +353 -29
  203. package/src/schemas/ImageEditDoc.ts +11 -4
  204. package/src/schemas/Media.ts +169 -0
  205. package/src/schemas/Theme.ts +23 -1
  206. package/src/schemas/Transitions.ts +224 -0
  207. package/src/schemas/colorUtils.ts +33 -0
  208. package/src/schemas/fontStacks.ts +5 -2
  209. package/src/schemas/index.ts +3 -0
  210. package/src/schemas/themeCompile.ts +23 -4
  211. package/src/schemas/themeValidator.ts +49 -11
  212. package/src/schemas/themes/cinematic.json +69 -12
  213. package/src/schemas/themes/documentary.json +58 -11
  214. package/src/schemas/themes/gezellig.json +60 -11
  215. package/src/schemas/themes/magazine.json +54 -9
  216. package/src/schemas/themes/morning-light.json +52 -9
  217. package/src/schemas/themes/standard-dark.json +48 -13
  218. package/src/schemas/themes/standard.json +44 -12
  219. package/src/schemas/themes/tech-dark.json +65 -12
  220. package/src/spatial/Geohash.ts +52 -21
  221. package/src/transform/applyTransform.ts +43 -4
  222. package/src/transform/index.ts +1 -0
  223. package/src/transform/registry.ts +44 -13
  224. package/src/transform/styles/dataDriven.ts +2 -1
  225. package/src/transform/styles/documentary.ts +2 -1
  226. package/src/transform/styles/magazine.ts +3 -1
  227. package/src/transform/styles/minimal.ts +2 -1
  228. package/src/transform/styles/narrative.ts +3 -1
  229. package/src/transform/templateSelector.ts +87 -11
  230. package/src/transform/types.ts +35 -2
  231. package/dist/__tests__/animationUtils.test.d.ts +0 -2
  232. package/dist/__tests__/animationUtils.test.d.ts.map +0 -1
  233. package/dist/__tests__/animationUtils.test.js +0 -60
  234. package/dist/__tests__/animationUtils.test.js.map +0 -1
  235. package/dist/__tests__/colorUtils.test.d.ts +0 -2
  236. package/dist/__tests__/colorUtils.test.d.ts.map +0 -1
  237. package/dist/__tests__/colorUtils.test.js +0 -94
  238. package/dist/__tests__/colorUtils.test.js.map +0 -1
  239. package/dist/__tests__/contentContainer.test.d.ts +0 -2
  240. package/dist/__tests__/contentContainer.test.d.ts.map +0 -1
  241. package/dist/__tests__/contentContainer.test.js +0 -234
  242. package/dist/__tests__/contentContainer.test.js.map +0 -1
  243. package/dist/__tests__/contentExtractor.test.d.ts +0 -2
  244. package/dist/__tests__/contentExtractor.test.d.ts.map +0 -1
  245. package/dist/__tests__/contentExtractor.test.js +0 -151
  246. package/dist/__tests__/contentExtractor.test.js.map +0 -1
  247. package/dist/__tests__/coverBlock.test.d.ts +0 -2
  248. package/dist/__tests__/coverBlock.test.d.ts.map +0 -1
  249. package/dist/__tests__/coverBlock.test.js +0 -197
  250. package/dist/__tests__/coverBlock.test.js.map +0 -1
  251. package/dist/__tests__/dataTable.test.d.ts +0 -2
  252. package/dist/__tests__/dataTable.test.d.ts.map +0 -1
  253. package/dist/__tests__/dataTable.test.js +0 -110
  254. package/dist/__tests__/dataTable.test.js.map +0 -1
  255. package/dist/__tests__/geohash.test.d.ts +0 -2
  256. package/dist/__tests__/geohash.test.d.ts.map +0 -1
  257. package/dist/__tests__/geohash.test.js +0 -87
  258. package/dist/__tests__/geohash.test.js.map +0 -1
  259. package/dist/__tests__/getLayers.test.d.ts +0 -2
  260. package/dist/__tests__/getLayers.test.d.ts.map +0 -1
  261. package/dist/__tests__/getLayers.test.js +0 -191
  262. package/dist/__tests__/getLayers.test.js.map +0 -1
  263. package/dist/__tests__/haversine.test.d.ts +0 -2
  264. package/dist/__tests__/haversine.test.d.ts.map +0 -1
  265. package/dist/__tests__/haversine.test.js +0 -56
  266. package/dist/__tests__/haversine.test.js.map +0 -1
  267. package/dist/__tests__/iconResolve.test.d.ts +0 -2
  268. package/dist/__tests__/iconResolve.test.d.ts.map +0 -1
  269. package/dist/__tests__/iconResolve.test.js +0 -99
  270. package/dist/__tests__/iconResolve.test.js.map +0 -1
  271. package/dist/__tests__/imageEditState.test.d.ts +0 -2
  272. package/dist/__tests__/imageEditState.test.d.ts.map +0 -1
  273. package/dist/__tests__/imageEditState.test.js +0 -61
  274. package/dist/__tests__/imageEditState.test.js.map +0 -1
  275. package/dist/__tests__/imageEditVersions.test.d.ts +0 -2
  276. package/dist/__tests__/imageEditVersions.test.d.ts.map +0 -1
  277. package/dist/__tests__/imageEditVersions.test.js +0 -141
  278. package/dist/__tests__/imageEditVersions.test.js.map +0 -1
  279. package/dist/__tests__/inferDocumentTitle.test.d.ts +0 -2
  280. package/dist/__tests__/inferDocumentTitle.test.d.ts.map +0 -1
  281. package/dist/__tests__/inferDocumentTitle.test.js +0 -42
  282. package/dist/__tests__/inferDocumentTitle.test.js.map +0 -1
  283. package/dist/__tests__/jsonForm.chooseControl.test.d.ts +0 -2
  284. package/dist/__tests__/jsonForm.chooseControl.test.d.ts.map +0 -1
  285. package/dist/__tests__/jsonForm.chooseControl.test.js +0 -74
  286. package/dist/__tests__/jsonForm.chooseControl.test.js.map +0 -1
  287. package/dist/__tests__/jsonForm.evaluateWhen.test.d.ts +0 -2
  288. package/dist/__tests__/jsonForm.evaluateWhen.test.d.ts.map +0 -1
  289. package/dist/__tests__/jsonForm.evaluateWhen.test.js +0 -51
  290. package/dist/__tests__/jsonForm.evaluateWhen.test.js.map +0 -1
  291. package/dist/__tests__/jsonForm.inferSchema.test.d.ts +0 -2
  292. package/dist/__tests__/jsonForm.inferSchema.test.d.ts.map +0 -1
  293. package/dist/__tests__/jsonForm.inferSchema.test.js +0 -23
  294. package/dist/__tests__/jsonForm.inferSchema.test.js.map +0 -1
  295. package/dist/__tests__/jsonForm.pointer.test.d.ts +0 -2
  296. package/dist/__tests__/jsonForm.pointer.test.d.ts.map +0 -1
  297. package/dist/__tests__/jsonForm.pointer.test.js +0 -94
  298. package/dist/__tests__/jsonForm.pointer.test.js.map +0 -1
  299. package/dist/__tests__/localForageAdapter.test.d.ts +0 -8
  300. package/dist/__tests__/localForageAdapter.test.d.ts.map +0 -1
  301. package/dist/__tests__/localForageAdapter.test.js +0 -130
  302. package/dist/__tests__/localForageAdapter.test.js.map +0 -1
  303. package/dist/__tests__/markdown.test.d.ts +0 -2
  304. package/dist/__tests__/markdown.test.d.ts.map +0 -1
  305. package/dist/__tests__/markdown.test.js +0 -715
  306. package/dist/__tests__/markdown.test.js.map +0 -1
  307. package/dist/__tests__/markdownIcons.test.d.ts +0 -2
  308. package/dist/__tests__/markdownIcons.test.d.ts.map +0 -1
  309. package/dist/__tests__/markdownIcons.test.js +0 -93
  310. package/dist/__tests__/markdownIcons.test.js.map +0 -1
  311. package/dist/__tests__/markdownToDoc.test.d.ts +0 -2
  312. package/dist/__tests__/markdownToDoc.test.d.ts.map +0 -1
  313. package/dist/__tests__/markdownToDoc.test.js +0 -458
  314. package/dist/__tests__/markdownToDoc.test.js.map +0 -1
  315. package/dist/__tests__/recommendTemplates.test.d.ts +0 -2
  316. package/dist/__tests__/recommendTemplates.test.d.ts.map +0 -1
  317. package/dist/__tests__/recommendTemplates.test.js +0 -158
  318. package/dist/__tests__/recommendTemplates.test.js.map +0 -1
  319. package/dist/__tests__/scopedContentContainer.test.d.ts +0 -2
  320. package/dist/__tests__/scopedContentContainer.test.d.ts.map +0 -1
  321. package/dist/__tests__/scopedContentContainer.test.js +0 -74
  322. package/dist/__tests__/scopedContentContainer.test.js.map +0 -1
  323. package/dist/__tests__/seededRandom.test.d.ts +0 -2
  324. package/dist/__tests__/seededRandom.test.d.ts.map +0 -1
  325. package/dist/__tests__/seededRandom.test.js +0 -125
  326. package/dist/__tests__/seededRandom.test.js.map +0 -1
  327. package/dist/__tests__/slideshowGenerator.test.d.ts +0 -2
  328. package/dist/__tests__/slideshowGenerator.test.d.ts.map +0 -1
  329. package/dist/__tests__/slideshowGenerator.test.js +0 -114
  330. package/dist/__tests__/slideshowGenerator.test.js.map +0 -1
  331. package/dist/__tests__/storage.test.d.ts +0 -2
  332. package/dist/__tests__/storage.test.d.ts.map +0 -1
  333. package/dist/__tests__/storage.test.js +0 -51
  334. package/dist/__tests__/storage.test.js.map +0 -1
  335. package/dist/__tests__/surface.test.d.ts +0 -2
  336. package/dist/__tests__/surface.test.d.ts.map +0 -1
  337. package/dist/__tests__/surface.test.js +0 -57
  338. package/dist/__tests__/surface.test.js.map +0 -1
  339. package/dist/__tests__/templateAnnotationParse.test.d.ts +0 -2
  340. package/dist/__tests__/templateAnnotationParse.test.d.ts.map +0 -1
  341. package/dist/__tests__/templateAnnotationParse.test.js +0 -42
  342. package/dist/__tests__/templateAnnotationParse.test.js.map +0 -1
  343. package/dist/__tests__/templates.test.d.ts +0 -2
  344. package/dist/__tests__/templates.test.d.ts.map +0 -1
  345. package/dist/__tests__/templates.test.js +0 -298
  346. package/dist/__tests__/templates.test.js.map +0 -1
  347. package/dist/__tests__/themeCompile.test.d.ts +0 -2
  348. package/dist/__tests__/themeCompile.test.d.ts.map +0 -1
  349. package/dist/__tests__/themeCompile.test.js +0 -134
  350. package/dist/__tests__/themeCompile.test.js.map +0 -1
  351. package/dist/__tests__/themeValidator.test.d.ts +0 -2
  352. package/dist/__tests__/themeValidator.test.d.ts.map +0 -1
  353. package/dist/__tests__/themeValidator.test.js +0 -107
  354. package/dist/__tests__/themeValidator.test.js.map +0 -1
  355. package/dist/__tests__/timing.test.d.ts +0 -2
  356. package/dist/__tests__/timing.test.d.ts.map +0 -1
  357. package/dist/__tests__/timing.test.js +0 -131
  358. package/dist/__tests__/timing.test.js.map +0 -1
  359. package/dist/__tests__/versions.test.d.ts +0 -2
  360. package/dist/__tests__/versions.test.d.ts.map +0 -1
  361. package/dist/__tests__/versions.test.js +0 -339
  362. package/dist/__tests__/versions.test.js.map +0 -1
  363. package/dist/chunk-3K5OG6KI.js.map +0 -1
  364. package/dist/chunk-57CVQCFX.js.map +0 -1
  365. package/dist/chunk-5WFRKURX.js.map +0 -1
  366. package/dist/chunk-7UDSRZKG.js.map +0 -1
  367. package/dist/chunk-B4EEON3N.js.map +0 -1
  368. package/dist/chunk-H3AXU4MJ.js.map +0 -1
  369. package/dist/chunk-KSWJR66U.js +0 -3706
  370. package/dist/chunk-KSWJR66U.js.map +0 -1
  371. package/dist/chunk-MYIH7FWD.js.map +0 -1
  372. package/dist/chunk-ZTX4PFFT.js.map +0 -1
  373. package/dist/doc/audioMapping.d.ts +0 -36
  374. package/dist/doc/audioMapping.d.ts.map +0 -1
  375. package/dist/doc/audioMapping.js +0 -350
  376. package/dist/doc/audioMapping.js.map +0 -1
  377. package/dist/doc/docToMarkdown.d.ts +0 -41
  378. package/dist/doc/docToMarkdown.d.ts.map +0 -1
  379. package/dist/doc/docToMarkdown.js +0 -88
  380. package/dist/doc/docToMarkdown.js.map +0 -1
  381. package/dist/doc/getLayers.d.ts +0 -65
  382. package/dist/doc/getLayers.d.ts.map +0 -1
  383. package/dist/doc/getLayers.js +0 -114
  384. package/dist/doc/getLayers.js.map +0 -1
  385. package/dist/doc/index.d.ts.map +0 -1
  386. package/dist/doc/markdownToDoc.d.ts +0 -75
  387. package/dist/doc/markdownToDoc.d.ts.map +0 -1
  388. package/dist/doc/markdownToDoc.js +0 -432
  389. package/dist/doc/markdownToDoc.js.map +0 -1
  390. package/dist/doc/templates/accentImage.d.ts +0 -59
  391. package/dist/doc/templates/accentImage.d.ts.map +0 -1
  392. package/dist/doc/templates/accentImage.js +0 -275
  393. package/dist/doc/templates/accentImage.js.map +0 -1
  394. package/dist/doc/templates/captionUtils.d.ts +0 -20
  395. package/dist/doc/templates/captionUtils.d.ts.map +0 -1
  396. package/dist/doc/templates/captionUtils.js +0 -29
  397. package/dist/doc/templates/captionUtils.js.map +0 -1
  398. package/dist/doc/templates/comparisonBar.d.ts +0 -13
  399. package/dist/doc/templates/comparisonBar.d.ts.map +0 -1
  400. package/dist/doc/templates/comparisonBar.js +0 -145
  401. package/dist/doc/templates/comparisonBar.js.map +0 -1
  402. package/dist/doc/templates/coverBlock.d.ts +0 -51
  403. package/dist/doc/templates/coverBlock.d.ts.map +0 -1
  404. package/dist/doc/templates/coverBlock.js +0 -153
  405. package/dist/doc/templates/coverBlock.js.map +0 -1
  406. package/dist/doc/templates/dataTable.d.ts +0 -14
  407. package/dist/doc/templates/dataTable.d.ts.map +0 -1
  408. package/dist/doc/templates/dataTable.js +0 -73
  409. package/dist/doc/templates/dataTable.js.map +0 -1
  410. package/dist/doc/templates/dateEvent.d.ts +0 -15
  411. package/dist/doc/templates/dateEvent.d.ts.map +0 -1
  412. package/dist/doc/templates/dateEvent.js +0 -114
  413. package/dist/doc/templates/dateEvent.js.map +0 -1
  414. package/dist/doc/templates/definitionCard.d.ts +0 -13
  415. package/dist/doc/templates/definitionCard.d.ts.map +0 -1
  416. package/dist/doc/templates/definitionCard.js +0 -117
  417. package/dist/doc/templates/definitionCard.js.map +0 -1
  418. package/dist/doc/templates/factCard.d.ts +0 -15
  419. package/dist/doc/templates/factCard.d.ts.map +0 -1
  420. package/dist/doc/templates/factCard.js +0 -104
  421. package/dist/doc/templates/factCard.js.map +0 -1
  422. package/dist/doc/templates/featureBlock.d.ts +0 -18
  423. package/dist/doc/templates/featureBlock.d.ts.map +0 -1
  424. package/dist/doc/templates/featureBlock.js +0 -180
  425. package/dist/doc/templates/featureBlock.js.map +0 -1
  426. package/dist/doc/templates/fullBleedQuote.d.ts +0 -25
  427. package/dist/doc/templates/fullBleedQuote.d.ts.map +0 -1
  428. package/dist/doc/templates/fullBleedQuote.js +0 -67
  429. package/dist/doc/templates/fullBleedQuote.js.map +0 -1
  430. package/dist/doc/templates/imageWithCaption.d.ts +0 -13
  431. package/dist/doc/templates/imageWithCaption.d.ts.map +0 -1
  432. package/dist/doc/templates/imageWithCaption.js +0 -146
  433. package/dist/doc/templates/imageWithCaption.js.map +0 -1
  434. package/dist/doc/templates/index.d.ts +0 -129
  435. package/dist/doc/templates/index.d.ts.map +0 -1
  436. package/dist/doc/templates/index.js +0 -478
  437. package/dist/doc/templates/index.js.map +0 -1
  438. package/dist/doc/templates/listBlock.d.ts +0 -13
  439. package/dist/doc/templates/listBlock.d.ts.map +0 -1
  440. package/dist/doc/templates/listBlock.js +0 -109
  441. package/dist/doc/templates/listBlock.js.map +0 -1
  442. package/dist/doc/templates/mapBlock.d.ts +0 -17
  443. package/dist/doc/templates/mapBlock.d.ts.map +0 -1
  444. package/dist/doc/templates/mapBlock.js +0 -115
  445. package/dist/doc/templates/mapBlock.js.map +0 -1
  446. package/dist/doc/templates/persistentLayers.d.ts +0 -39
  447. package/dist/doc/templates/persistentLayers.d.ts.map +0 -1
  448. package/dist/doc/templates/persistentLayers.js +0 -447
  449. package/dist/doc/templates/persistentLayers.js.map +0 -1
  450. package/dist/doc/templates/photoGrid.d.ts +0 -20
  451. package/dist/doc/templates/photoGrid.d.ts.map +0 -1
  452. package/dist/doc/templates/photoGrid.js +0 -175
  453. package/dist/doc/templates/photoGrid.js.map +0 -1
  454. package/dist/doc/templates/pullQuote.d.ts +0 -13
  455. package/dist/doc/templates/pullQuote.d.ts.map +0 -1
  456. package/dist/doc/templates/pullQuote.js +0 -113
  457. package/dist/doc/templates/pullQuote.js.map +0 -1
  458. package/dist/doc/templates/quoteBlock.d.ts +0 -15
  459. package/dist/doc/templates/quoteBlock.d.ts.map +0 -1
  460. package/dist/doc/templates/quoteBlock.js +0 -101
  461. package/dist/doc/templates/quoteBlock.js.map +0 -1
  462. package/dist/doc/templates/sectionHeader.d.ts +0 -14
  463. package/dist/doc/templates/sectionHeader.d.ts.map +0 -1
  464. package/dist/doc/templates/sectionHeader.js +0 -97
  465. package/dist/doc/templates/sectionHeader.js.map +0 -1
  466. package/dist/doc/templates/statHighlight.d.ts +0 -27
  467. package/dist/doc/templates/statHighlight.d.ts.map +0 -1
  468. package/dist/doc/templates/statHighlight.js +0 -114
  469. package/dist/doc/templates/statHighlight.js.map +0 -1
  470. package/dist/doc/templates/titleBlock.d.ts +0 -24
  471. package/dist/doc/templates/titleBlock.d.ts.map +0 -1
  472. package/dist/doc/templates/titleBlock.js +0 -103
  473. package/dist/doc/templates/titleBlock.js.map +0 -1
  474. package/dist/doc/templates/twoColumn.d.ts +0 -15
  475. package/dist/doc/templates/twoColumn.d.ts.map +0 -1
  476. package/dist/doc/templates/twoColumn.js +0 -225
  477. package/dist/doc/templates/twoColumn.js.map +0 -1
  478. package/dist/doc/templates/videoPullQuote.d.ts +0 -20
  479. package/dist/doc/templates/videoPullQuote.d.ts.map +0 -1
  480. package/dist/doc/templates/videoPullQuote.js +0 -122
  481. package/dist/doc/templates/videoPullQuote.js.map +0 -1
  482. package/dist/doc/templates/videoWithCaption.d.ts +0 -20
  483. package/dist/doc/templates/videoWithCaption.d.ts.map +0 -1
  484. package/dist/doc/templates/videoWithCaption.js +0 -107
  485. package/dist/doc/templates/videoWithCaption.js.map +0 -1
  486. package/dist/doc/utils/animationUtils.d.ts +0 -34
  487. package/dist/doc/utils/animationUtils.d.ts.map +0 -1
  488. package/dist/doc/utils/animationUtils.js +0 -110
  489. package/dist/doc/utils/animationUtils.js.map +0 -1
  490. package/dist/doc/utils/themeUtils.d.ts +0 -64
  491. package/dist/doc/utils/themeUtils.d.ts.map +0 -1
  492. package/dist/doc/utils/themeUtils.js +0 -136
  493. package/dist/doc/utils/themeUtils.js.map +0 -1
  494. package/dist/generate/contentExtractor.d.ts +0 -112
  495. package/dist/generate/contentExtractor.d.ts.map +0 -1
  496. package/dist/generate/contentExtractor.js +0 -638
  497. package/dist/generate/contentExtractor.js.map +0 -1
  498. package/dist/generate/index.d.ts.map +0 -1
  499. package/dist/generate/slideshowGenerator.d.ts +0 -72
  500. package/dist/generate/slideshowGenerator.d.ts.map +0 -1
  501. package/dist/generate/slideshowGenerator.js +0 -159
  502. package/dist/generate/slideshowGenerator.js.map +0 -1
  503. package/dist/generate/templateMapper.d.ts +0 -23
  504. package/dist/generate/templateMapper.d.ts.map +0 -1
  505. package/dist/generate/templateMapper.js +0 -114
  506. package/dist/generate/templateMapper.js.map +0 -1
  507. package/dist/icons/iconData.d.ts +0 -26
  508. package/dist/icons/iconData.d.ts.map +0 -1
  509. package/dist/icons/iconData.js +0 -12
  510. package/dist/icons/iconData.js.map +0 -1
  511. package/dist/icons/index.d.ts.map +0 -1
  512. package/dist/icons/resolve.d.ts +0 -61
  513. package/dist/icons/resolve.d.ts.map +0 -1
  514. package/dist/icons/resolve.js +0 -130
  515. package/dist/icons/resolve.js.map +0 -1
  516. package/dist/imageEdit/ImageEditVersionManager.d.ts +0 -31
  517. package/dist/imageEdit/ImageEditVersionManager.d.ts.map +0 -1
  518. package/dist/imageEdit/ImageEditVersionManager.js +0 -39
  519. package/dist/imageEdit/ImageEditVersionManager.js.map +0 -1
  520. package/dist/imageEdit/export.d.ts +0 -33
  521. package/dist/imageEdit/export.d.ts.map +0 -1
  522. package/dist/imageEdit/export.js +0 -253
  523. package/dist/imageEdit/export.js.map +0 -1
  524. package/dist/imageEdit/index.d.ts.map +0 -1
  525. package/dist/imageEdit/persistence.d.ts +0 -15
  526. package/dist/imageEdit/persistence.d.ts.map +0 -1
  527. package/dist/imageEdit/persistence.js +0 -49
  528. package/dist/imageEdit/persistence.js.map +0 -1
  529. package/dist/imageEdit/state.d.ts +0 -42
  530. package/dist/imageEdit/state.d.ts.map +0 -1
  531. package/dist/imageEdit/state.js +0 -98
  532. package/dist/imageEdit/state.js.map +0 -1
  533. package/dist/imageEdit/versionPaths.d.ts +0 -27
  534. package/dist/imageEdit/versionPaths.d.ts.map +0 -1
  535. package/dist/imageEdit/versionPaths.js +0 -57
  536. package/dist/imageEdit/versionPaths.js.map +0 -1
  537. package/dist/imageEdit/versions.d.ts +0 -67
  538. package/dist/imageEdit/versions.d.ts.map +0 -1
  539. package/dist/imageEdit/versions.js +0 -161
  540. package/dist/imageEdit/versions.js.map +0 -1
  541. package/dist/index.d.ts.map +0 -1
  542. package/dist/jsonForm/chooseControl.d.ts +0 -20
  543. package/dist/jsonForm/chooseControl.d.ts.map +0 -1
  544. package/dist/jsonForm/chooseControl.js +0 -82
  545. package/dist/jsonForm/chooseControl.js.map +0 -1
  546. package/dist/jsonForm/evaluateWhen.d.ts +0 -12
  547. package/dist/jsonForm/evaluateWhen.d.ts.map +0 -1
  548. package/dist/jsonForm/evaluateWhen.js +0 -65
  549. package/dist/jsonForm/evaluateWhen.js.map +0 -1
  550. package/dist/jsonForm/index.d.ts.map +0 -1
  551. package/dist/jsonForm/inferSchema.d.ts +0 -12
  552. package/dist/jsonForm/inferSchema.d.ts.map +0 -1
  553. package/dist/jsonForm/inferSchema.js +0 -15
  554. package/dist/jsonForm/inferSchema.js.map +0 -1
  555. package/dist/jsonForm/pointer.d.ts +0 -26
  556. package/dist/jsonForm/pointer.d.ts.map +0 -1
  557. package/dist/jsonForm/pointer.js +0 -102
  558. package/dist/jsonForm/pointer.js.map +0 -1
  559. package/dist/jsonForm/types.d.ts +0 -120
  560. package/dist/jsonForm/types.d.ts.map +0 -1
  561. package/dist/jsonForm/types.js +0 -10
  562. package/dist/jsonForm/types.js.map +0 -1
  563. package/dist/markdown/convert.d.ts +0 -81
  564. package/dist/markdown/convert.d.ts.map +0 -1
  565. package/dist/markdown/convert.js +0 -975
  566. package/dist/markdown/convert.js.map +0 -1
  567. package/dist/markdown/htmlParse.d.ts +0 -26
  568. package/dist/markdown/htmlParse.d.ts.map +0 -1
  569. package/dist/markdown/htmlParse.js +0 -195
  570. package/dist/markdown/htmlParse.js.map +0 -1
  571. package/dist/markdown/index.d.ts.map +0 -1
  572. package/dist/markdown/parse.d.ts +0 -27
  573. package/dist/markdown/parse.d.ts.map +0 -1
  574. package/dist/markdown/parse.js +0 -90
  575. package/dist/markdown/parse.js.map +0 -1
  576. package/dist/markdown/stringify.d.ts +0 -32
  577. package/dist/markdown/stringify.d.ts.map +0 -1
  578. package/dist/markdown/stringify.js +0 -108
  579. package/dist/markdown/stringify.js.map +0 -1
  580. package/dist/markdown/types.d.ts +0 -531
  581. package/dist/markdown/types.d.ts.map +0 -1
  582. package/dist/markdown/types.js +0 -17
  583. package/dist/markdown/types.js.map +0 -1
  584. package/dist/markdown/utils.d.ts +0 -118
  585. package/dist/markdown/utils.d.ts.map +0 -1
  586. package/dist/markdown/utils.js +0 -308
  587. package/dist/markdown/utils.js.map +0 -1
  588. package/dist/random/SeededRandom.d.ts +0 -50
  589. package/dist/random/SeededRandom.d.ts.map +0 -1
  590. package/dist/random/SeededRandom.js +0 -115
  591. package/dist/random/SeededRandom.js.map +0 -1
  592. package/dist/random/index.d.ts.map +0 -1
  593. package/dist/recommend/index.d.ts.map +0 -1
  594. package/dist/recommend/templates.d.ts +0 -39
  595. package/dist/recommend/templates.d.ts.map +0 -1
  596. package/dist/recommend/templates.js +0 -235
  597. package/dist/recommend/templates.js.map +0 -1
  598. package/dist/schemas/BlockTemplates.d.ts +0 -638
  599. package/dist/schemas/BlockTemplates.d.ts.map +0 -1
  600. package/dist/schemas/BlockTemplates.js +0 -72
  601. package/dist/schemas/BlockTemplates.js.map +0 -1
  602. package/dist/schemas/Doc.d.ts +0 -503
  603. package/dist/schemas/Doc.d.ts.map +0 -1
  604. package/dist/schemas/Doc.js +0 -90
  605. package/dist/schemas/Doc.js.map +0 -1
  606. package/dist/schemas/ImageEditDoc.d.ts +0 -81
  607. package/dist/schemas/ImageEditDoc.d.ts.map +0 -1
  608. package/dist/schemas/ImageEditDoc.js +0 -20
  609. package/dist/schemas/ImageEditDoc.js.map +0 -1
  610. package/dist/schemas/LayoutStrategy.d.ts +0 -84
  611. package/dist/schemas/LayoutStrategy.d.ts.map +0 -1
  612. package/dist/schemas/LayoutStrategy.js +0 -123
  613. package/dist/schemas/LayoutStrategy.js.map +0 -1
  614. package/dist/schemas/MediaProvider.d.ts +0 -65
  615. package/dist/schemas/MediaProvider.d.ts.map +0 -1
  616. package/dist/schemas/MediaProvider.js +0 -13
  617. package/dist/schemas/MediaProvider.js.map +0 -1
  618. package/dist/schemas/Theme.d.ts +0 -233
  619. package/dist/schemas/Theme.d.ts.map +0 -1
  620. package/dist/schemas/Theme.js +0 -129
  621. package/dist/schemas/Theme.js.map +0 -1
  622. package/dist/schemas/Types.d.ts +0 -14
  623. package/dist/schemas/Types.d.ts.map +0 -1
  624. package/dist/schemas/Types.js +0 -5
  625. package/dist/schemas/Types.js.map +0 -1
  626. package/dist/schemas/Viewport.d.ts +0 -74
  627. package/dist/schemas/Viewport.d.ts.map +0 -1
  628. package/dist/schemas/Viewport.js +0 -63
  629. package/dist/schemas/Viewport.js.map +0 -1
  630. package/dist/schemas/colorUtils.d.ts +0 -51
  631. package/dist/schemas/colorUtils.d.ts.map +0 -1
  632. package/dist/schemas/colorUtils.js +0 -154
  633. package/dist/schemas/colorUtils.js.map +0 -1
  634. package/dist/schemas/fontStacks.d.ts +0 -57
  635. package/dist/schemas/fontStacks.d.ts.map +0 -1
  636. package/dist/schemas/fontStacks.js +0 -227
  637. package/dist/schemas/fontStacks.js.map +0 -1
  638. package/dist/schemas/index.d.ts.map +0 -1
  639. package/dist/schemas/themeCompile.d.ts +0 -45
  640. package/dist/schemas/themeCompile.d.ts.map +0 -1
  641. package/dist/schemas/themeCompile.js +0 -160
  642. package/dist/schemas/themeCompile.js.map +0 -1
  643. package/dist/schemas/themeLibrary.d.ts +0 -37
  644. package/dist/schemas/themeLibrary.d.ts.map +0 -1
  645. package/dist/schemas/themeLibrary.js +0 -49
  646. package/dist/schemas/themeLibrary.js.map +0 -1
  647. package/dist/schemas/themeValidator.d.ts +0 -26
  648. package/dist/schemas/themeValidator.d.ts.map +0 -1
  649. package/dist/schemas/themeValidator.js +0 -352
  650. package/dist/schemas/themeValidator.js.map +0 -1
  651. package/dist/schemas/themes/bold.json +0 -48
  652. package/dist/schemas/themes/cinematic.json +0 -54
  653. package/dist/schemas/themes/documentary.json +0 -49
  654. package/dist/schemas/themes/gezellig.json +0 -44
  655. package/dist/schemas/themes/index.d.ts +0 -26
  656. package/dist/schemas/themes/index.d.ts.map +0 -1
  657. package/dist/schemas/themes/index.js +0 -49
  658. package/dist/schemas/themes/index.js.map +0 -1
  659. package/dist/schemas/themes/magazine.json +0 -44
  660. package/dist/schemas/themes/minimalist.json +0 -45
  661. package/dist/schemas/themes/morning-light.json +0 -42
  662. package/dist/schemas/themes/standard-dark.json +0 -50
  663. package/dist/schemas/themes/standard.json +0 -42
  664. package/dist/schemas/themes/tech-dark.json +0 -48
  665. package/dist/schemas/themes/warm-earth.json +0 -50
  666. package/dist/spatial/Geohash.d.ts +0 -85
  667. package/dist/spatial/Geohash.d.ts.map +0 -1
  668. package/dist/spatial/Geohash.js +0 -142
  669. package/dist/spatial/Geohash.js.map +0 -1
  670. package/dist/spatial/Haversine.d.ts +0 -24
  671. package/dist/spatial/Haversine.d.ts.map +0 -1
  672. package/dist/spatial/Haversine.js +0 -48
  673. package/dist/spatial/Haversine.js.map +0 -1
  674. package/dist/spatial/index.d.ts.map +0 -1
  675. package/dist/storage/ContentContainer.d.ts +0 -87
  676. package/dist/storage/ContentContainer.d.ts.map +0 -1
  677. package/dist/storage/ContentContainer.js +0 -131
  678. package/dist/storage/ContentContainer.js.map +0 -1
  679. package/dist/storage/LocalForageAdapter.d.ts +0 -36
  680. package/dist/storage/LocalForageAdapter.d.ts.map +0 -1
  681. package/dist/storage/LocalForageAdapter.js +0 -82
  682. package/dist/storage/LocalForageAdapter.js.map +0 -1
  683. package/dist/storage/LocalStorageAdapter.d.ts +0 -16
  684. package/dist/storage/LocalStorageAdapter.d.ts.map +0 -1
  685. package/dist/storage/LocalStorageAdapter.js +0 -50
  686. package/dist/storage/LocalStorageAdapter.js.map +0 -1
  687. package/dist/storage/MediaProviderFromContainer.d.ts +0 -21
  688. package/dist/storage/MediaProviderFromContainer.d.ts.map +0 -1
  689. package/dist/storage/MediaProviderFromContainer.js +0 -79
  690. package/dist/storage/MediaProviderFromContainer.js.map +0 -1
  691. package/dist/storage/MemoryStorageAdapter.d.ts +0 -15
  692. package/dist/storage/MemoryStorageAdapter.d.ts.map +0 -1
  693. package/dist/storage/MemoryStorageAdapter.js +0 -34
  694. package/dist/storage/MemoryStorageAdapter.js.map +0 -1
  695. package/dist/storage/ScopedContentContainer.d.ts +0 -44
  696. package/dist/storage/ScopedContentContainer.d.ts.map +0 -1
  697. package/dist/storage/ScopedContentContainer.js +0 -94
  698. package/dist/storage/ScopedContentContainer.js.map +0 -1
  699. package/dist/storage/Storage.d.ts +0 -23
  700. package/dist/storage/Storage.d.ts.map +0 -1
  701. package/dist/storage/Storage.js +0 -9
  702. package/dist/storage/Storage.js.map +0 -1
  703. package/dist/storage/index.d.ts.map +0 -1
  704. package/dist/timing/index.d.ts.map +0 -1
  705. package/dist/timing/narrationTiming.d.ts +0 -54
  706. package/dist/timing/narrationTiming.d.ts.map +0 -1
  707. package/dist/timing/narrationTiming.js +0 -190
  708. package/dist/timing/narrationTiming.js.map +0 -1
  709. package/dist/timing/readingTime.d.ts +0 -54
  710. package/dist/timing/readingTime.d.ts.map +0 -1
  711. package/dist/timing/readingTime.js +0 -49
  712. package/dist/timing/readingTime.js.map +0 -1
  713. package/dist/transform/applyTransform.d.ts +0 -22
  714. package/dist/transform/applyTransform.d.ts.map +0 -1
  715. package/dist/transform/applyTransform.js +0 -68
  716. package/dist/transform/applyTransform.js.map +0 -1
  717. package/dist/transform/blockAnalyzer.d.ts +0 -48
  718. package/dist/transform/blockAnalyzer.d.ts.map +0 -1
  719. package/dist/transform/blockAnalyzer.js +0 -135
  720. package/dist/transform/blockAnalyzer.js.map +0 -1
  721. package/dist/transform/index.d.ts.map +0 -1
  722. package/dist/transform/registry.d.ts +0 -19
  723. package/dist/transform/registry.d.ts.map +0 -1
  724. package/dist/transform/registry.js +0 -41
  725. package/dist/transform/registry.js.map +0 -1
  726. package/dist/transform/styles/dataDriven.d.ts +0 -4
  727. package/dist/transform/styles/dataDriven.d.ts.map +0 -1
  728. package/dist/transform/styles/dataDriven.js +0 -15
  729. package/dist/transform/styles/dataDriven.js.map +0 -1
  730. package/dist/transform/styles/documentary.d.ts +0 -4
  731. package/dist/transform/styles/documentary.d.ts.map +0 -1
  732. package/dist/transform/styles/documentary.js +0 -15
  733. package/dist/transform/styles/documentary.js.map +0 -1
  734. package/dist/transform/styles/index.d.ts +0 -6
  735. package/dist/transform/styles/index.d.ts.map +0 -1
  736. package/dist/transform/styles/index.js +0 -6
  737. package/dist/transform/styles/index.js.map +0 -1
  738. package/dist/transform/styles/magazine.d.ts +0 -4
  739. package/dist/transform/styles/magazine.d.ts.map +0 -1
  740. package/dist/transform/styles/magazine.js +0 -15
  741. package/dist/transform/styles/magazine.js.map +0 -1
  742. package/dist/transform/styles/minimal.d.ts +0 -4
  743. package/dist/transform/styles/minimal.d.ts.map +0 -1
  744. package/dist/transform/styles/minimal.js +0 -15
  745. package/dist/transform/styles/minimal.js.map +0 -1
  746. package/dist/transform/styles/narrative.d.ts +0 -4
  747. package/dist/transform/styles/narrative.d.ts.map +0 -1
  748. package/dist/transform/styles/narrative.js +0 -15
  749. package/dist/transform/styles/narrative.js.map +0 -1
  750. package/dist/transform/templateSelector.d.ts +0 -30
  751. package/dist/transform/templateSelector.d.ts.map +0 -1
  752. package/dist/transform/templateSelector.js +0 -218
  753. package/dist/transform/templateSelector.js.map +0 -1
  754. package/dist/transform/timingAllocator.d.ts +0 -21
  755. package/dist/transform/timingAllocator.d.ts.map +0 -1
  756. package/dist/transform/timingAllocator.js +0 -111
  757. package/dist/transform/timingAllocator.js.map +0 -1
  758. package/dist/transform/types.d.ts +0 -86
  759. package/dist/transform/types.d.ts.map +0 -1
  760. package/dist/transform/types.js +0 -9
  761. package/dist/transform/types.js.map +0 -1
  762. package/dist/versions/DocumentVersionManager.d.ts +0 -31
  763. package/dist/versions/DocumentVersionManager.d.ts.map +0 -1
  764. package/dist/versions/DocumentVersionManager.js +0 -33
  765. package/dist/versions/DocumentVersionManager.js.map +0 -1
  766. package/dist/versions/index.d.ts.map +0 -1
  767. package/dist/versions/operations.d.ts +0 -44
  768. package/dist/versions/operations.d.ts.map +0 -1
  769. package/dist/versions/operations.js +0 -190
  770. package/dist/versions/operations.js.map +0 -1
  771. package/dist/versions/paths.d.ts +0 -29
  772. package/dist/versions/paths.d.ts.map +0 -1
  773. package/dist/versions/paths.js +0 -66
  774. package/dist/versions/paths.js.map +0 -1
  775. package/dist/versions/timestamp.d.ts +0 -22
  776. package/dist/versions/timestamp.d.ts.map +0 -1
  777. package/dist/versions/timestamp.js +0 -44
  778. package/dist/versions/timestamp.js.map +0 -1
  779. package/dist/versions/types.d.ts +0 -92
  780. package/dist/versions/types.d.ts.map +0 -1
  781. package/dist/versions/types.js +0 -11
  782. package/dist/versions/types.js.map +0 -1
@@ -16,6 +16,60 @@ import { toMdast } from './convert.js';
16
16
  // Cache the default processor (all extensions, default formatting) to avoid rebuilding on every call.
17
17
  let defaultProcessor: any;
18
18
 
19
+ // ============================================
20
+ // Annotation-span unescaping
21
+ // ============================================
22
+
23
+ // Quoted runs as they appear in remark-stringify output. Backslashes inside
24
+ // the span are doubled by remark (a literal `\` before punctuation becomes
25
+ // `\\`), so `\\.` covers both authored escapes and remark's own.
26
+ const DQ_RUN = `"(?:[^"\\\\]|\\\\.)*"`;
27
+ const SQ_RUN = `'(?:[^'\\\\]|\\\\.)*'`;
28
+
29
+ /**
30
+ * A `{[…]}` template-annotation (or inline-icon) span as it appears in
31
+ * remark output: `{\[inner]}`, where `inner` may contain backslash escapes
32
+ * and quoted runs (which may themselves contain `]`).
33
+ */
34
+ const ESCAPED_TEMPLATE_SPAN_RE = new RegExp(
35
+ `\\{\\\\\\[((?:${DQ_RUN}|${SQ_RUN}|\\\\.|[^\\]\\\\])+)\\]\\}`,
36
+ 'g',
37
+ );
38
+
39
+ /** A heading line (annotations are only emitted trailing on headings). */
40
+ const HEADING_LINE_RE = /^#{1,6} .*$/gm;
41
+
42
+ /**
43
+ * The trailing Pandoc `{…}` span on a heading line, possibly followed by an
44
+ * already-unescaped `{[…]}` template span (canonical emit order).
45
+ */
46
+ const TRAILING_ESCAPED_PANDOC_SPAN_RE = new RegExp(
47
+ `\\{(?!\\\\?\\[)((?:${DQ_RUN}|${SQ_RUN}|\\\\.|[^}\\\\])*)\\}(?=\\s*(?:\\{\\[.*)?$)`,
48
+ );
49
+
50
+ /**
51
+ * Backslash+punctuation pairs that are safe to unescape inside an
52
+ * annotation span: the bare character re-parses as literal text in
53
+ * trailing-heading position, so removing the backslash is purely
54
+ * cosmetic and round-trips.
55
+ *
56
+ * Deliberately EXCLUDED (left escaped in the emitted markdown): emphasis
57
+ * and other inline-construct openers (`*`, `_`, `` ` ``, `~`, `<`, `>`,
58
+ * `&`, `!`, `|`, `^`). Unescaping those could make remark-parse split the
59
+ * heading's text run into inline nodes on reparse, which would hide the
60
+ * annotation from the extractor. remark-parse resolves the surviving
61
+ * `\X` escapes back to bare characters, so values still round-trip —
62
+ * the escapes are a cosmetic cost only.
63
+ *
64
+ * Pairs are consumed left to right, so an authored `\"` that remark
65
+ * doubled to `\\"` correctly comes back as `\"`.
66
+ */
67
+ const UNESCAPE_PUNCT_RE = /\\([\\[\]:#.,+=/?;@%$(){}'"-])/g;
68
+
69
+ function unescapeMarkdownPunct(text: string): string {
70
+ return text.replace(UNESCAPE_PUNCT_RE, '$1');
71
+ }
72
+
19
73
  /**
20
74
  * Serialize a MarkdownDocument back to a markdown string.
21
75
  *
@@ -106,9 +160,36 @@ export function stringifyMarkdown(doc: MarkdownDocument, options?: StringifyOpti
106
160
  // Stringify mdast → markdown string
107
161
  const result = processor.stringify(mdastTree) as string;
108
162
 
109
- // remark-stringify escapes `[` in text nodes (to prevent link syntax),
110
- // which turns `{[template]}` into `{\[template]}`. Unescape our annotation syntax.
111
- const cleaned = result.replace(/\{\\\[([^\]]+)\]\}/g, '{[$1]}');
163
+ // remark-stringify backslash-escapes markdown-significant characters in
164
+ // text nodes (`[` to prevent link syntax, `:` for directives, `*`/`_` for
165
+ // emphasis, a literal `\` before punctuation, ). Our annotations are
166
+ // injected as plain text, so their interiors come back escaped. Undo that
167
+ // inside `{[…]}` template-annotation spans: removing one backslash from
168
+ // each backslash+punctuation pair (left to right) exactly inverts
169
+ // remark's escaping — including restoring an authored `\"` that remark
170
+ // doubled to `\\"`. The span regex understands quoted values, so a
171
+ // quoted `]` doesn't terminate the span.
172
+ let cleaned = result.replace(
173
+ ESCAPED_TEMPLATE_SPAN_RE,
174
+ (_m, inner: string) => `{[${unescapeMarkdownPunct(inner)}]}`,
175
+ );
176
+
177
+ // Same treatment for the trailing Pandoc `{…}` attribute block on heading
178
+ // lines (canonical emit order is Pandoc block then template annotation,
179
+ // so the span sits at end-of-line or just before a `{[…]}` span).
180
+ cleaned = cleaned.replace(HEADING_LINE_RE, (line) =>
181
+ line.replace(
182
+ TRAILING_ESCAPED_PANDOC_SPAN_RE,
183
+ (_m, inner: string) => `{${unescapeMarkdownPunct(inner)}}`,
184
+ ),
185
+ );
186
+
187
+ // remark-directive escapes `:` in text (since `:name` would round-trip as
188
+ // a text directive). Inside any other Pandoc-style `{…}` brace span, `:`
189
+ // is purely a value separator (e.g. `connectsTo=foo:flow`), so unescape
190
+ // it to keep round-trips lossless. The negative lookahead skips `{[…]}`
191
+ // template annotations — those are handled above.
192
+ cleaned = cleaned.replace(/\{(?!\\?\[)[^}]*\}/g, (match) => match.replace(/\\:/g, ':'));
112
193
 
113
194
  // Prepend YAML frontmatter if present
114
195
  if (doc.frontmatter && Object.keys(doc.frontmatter).length > 0) {
@@ -126,6 +126,65 @@ export interface HeadingTemplateAnnotation {
126
126
  params?: Record<string, string>;
127
127
  }
128
128
 
129
+ /**
130
+ * A directed connection from one block to another, parsed from a heading
131
+ * attribute `connectsTo=target1,target2:type,target3`. Mirrors the schema
132
+ * `BlockConnection` type — duplicated here so this module stays
133
+ * dependency-free from the doc schema.
134
+ */
135
+ export interface BlockConnection {
136
+ /** Target block id. */
137
+ target: string;
138
+ /** Optional connection type/label (e.g., "flow", "requires"). */
139
+ type?: string;
140
+ }
141
+
142
+ /**
143
+ * Pandoc-style heading attribute block, parsed from `{#id .class key=value}`
144
+ * appearing at the end of a heading line (alongside, or instead of, the
145
+ * squisq-native `{[templateName …]}` block).
146
+ *
147
+ * @example
148
+ * ```markdown
149
+ * ## Architecture {#arch x=600 y=300 connectsTo=foo:flow,bar:requires}
150
+ * ```
151
+ * →
152
+ * ```ts
153
+ * {
154
+ * id: 'arch',
155
+ * params: { x: '600', y: '300', connectsTo: 'foo:flow,bar:requires' },
156
+ * blockMeta: {
157
+ * x: 600,
158
+ * y: 300,
159
+ * connectsTo: [{ target: 'foo', type: 'flow' }, { target: 'bar', type: 'requires' }],
160
+ * },
161
+ * }
162
+ * ```
163
+ *
164
+ * `params` carries the raw pre-coercion strings (lossless for round-tripping),
165
+ * while `blockMeta` carries the typed values for known keys. Unknown keys flow
166
+ * to `metadata`.
167
+ */
168
+ export interface HeadingAttributes {
169
+ /** Block id from `#identifier` (overrides slug-from-heading). */
170
+ id?: string;
171
+ /** Class tokens from `.classname` (reserved for downstream use). */
172
+ classes?: string[];
173
+ /** All key=value attributes as raw strings (lossless source for serialization). */
174
+ params?: Record<string, string>;
175
+ /** Typed values for known block-meta keys (coerced from `params`). */
176
+ blockMeta?: {
177
+ x?: number;
178
+ y?: number;
179
+ startTime?: number;
180
+ duration?: number;
181
+ connectsTo?: BlockConnection[];
182
+ transition?: import('../schemas/Transitions.js').Transition;
183
+ };
184
+ /** Subset of `params` whose keys are NOT in the known-key registry. */
185
+ metadata?: Record<string, string>;
186
+ }
187
+
129
188
  /**
130
189
  * ATX or setext heading (# Heading).
131
190
  */
@@ -142,6 +201,13 @@ export interface MarkdownHeading extends MarkdownNodeBase {
142
201
  * stringification, so it round-trips transparently.
143
202
  */
144
203
  templateAnnotation?: HeadingTemplateAnnotation;
204
+ /**
205
+ * Pandoc-style heading attributes parsed from trailing `{#id .class key=value}`
206
+ * syntax. Independent from `templateAnnotation` — both may appear on the
207
+ * same heading in either order. Stripped from `children` during parsing
208
+ * and re-injected during stringification.
209
+ */
210
+ attributes?: HeadingAttributes;
145
211
  }
146
212
 
147
213
  /**
@@ -5,7 +5,8 @@
5
5
  * All functions are pure and operate on the JSON node interfaces.
6
6
  */
7
7
 
8
- import type { MarkdownNode, MarkdownDocument } from './types.js';
8
+ import type { MarkdownNode, MarkdownDocument, HtmlNode } from './types.js';
9
+ import { parseHtmlToNodes } from './htmlParse.js';
9
10
 
10
11
  /**
11
12
  * Get the children of any markdown node, if it has children.
@@ -162,6 +163,12 @@ const FRONTMATTER_BLOCK_RE = /^---\r?\n([\s\S]*?)\r?\n---(\r?\n)?/;
162
163
  /** Quote a frontmatter scalar so it round-trips cleanly through `parseFrontmatter`. */
163
164
  function formatFrontmatterValue(value: string | number | boolean): string {
164
165
  if (typeof value === 'boolean' || typeof value === 'number') return String(value);
166
+ // A single-line JSON object/array literal round-trips verbatim through
167
+ // the line-based `parseFrontmatter` (no leading quote to strip, no
168
+ // newline to split on), so write it unquoted to keep it human-readable
169
+ // — matching how `stringifyMarkdown` emits string values. Used by the
170
+ // compact custom-layouts payload.
171
+ if (/^[{[]/.test(value) && !/[\r\n]/.test(value)) return value;
165
172
  // Quote when needed: leading/trailing whitespace, leading punctuation that
166
173
  // could trigger YAML modes, or values that look like reserved literals.
167
174
  const needsQuote =
@@ -326,3 +333,44 @@ export function readFrontmatterThemeId(
326
333
  }
327
334
  return undefined;
328
335
  }
336
+
337
+ /**
338
+ * Project an inline-HTML string (as stored on `TextLayer.content.html`) down
339
+ * to plain text — the value mirrored into `content.text` for plain consumers
340
+ * (PDF/markdown export, search, accessibility) and the SVG `<text>` fallback.
341
+ *
342
+ * `<br>` and block-level tags (`p`, `div`, `h1`–`h6`, `li`, `blockquote`,
343
+ * `pre`) become line breaks so multi-line rich content reads sensibly. Entity
344
+ * decoding is handled by {@link parseHtmlToNodes} (parse5-backed), so this is
345
+ * more correct than a regex tag-stripper.
346
+ */
347
+ export function plainTextFromInlineHtml(html: string): string {
348
+ const BLOCK = new Set([
349
+ 'p',
350
+ 'div',
351
+ 'h1',
352
+ 'h2',
353
+ 'h3',
354
+ 'h4',
355
+ 'h5',
356
+ 'h6',
357
+ 'li',
358
+ 'blockquote',
359
+ 'pre',
360
+ ]);
361
+ const walk = (nodes: HtmlNode[]): string =>
362
+ nodes
363
+ .map((n) => {
364
+ if (n.type === 'htmlText') return n.value;
365
+ if (n.type !== 'htmlElement') return '';
366
+ const tag = n.tagName.toLowerCase();
367
+ if (tag === 'br') return '\n';
368
+ const inner = walk(n.children);
369
+ return BLOCK.has(tag) ? `${inner}\n` : inner;
370
+ })
371
+ .join('');
372
+ return walk(parseHtmlToNodes(html))
373
+ .replace(/\u00A0/g, ' ')
374
+ .replace(/\n{3,}/g, '\n\n')
375
+ .trim();
376
+ }
@@ -251,6 +251,30 @@ function recommendedNamesForProfile(profile: BlockContentProfile): string[] {
251
251
  return Array.from(names);
252
252
  }
253
253
 
254
+ /**
255
+ * Deterministic single-template choice for an unannotated heading block,
256
+ * from strong content signals only. Returns `undefined` when no signal is
257
+ * decisive — the caller keeps its structural default (`sectionHeader`).
258
+ *
259
+ * Precedence favors the most specific/structured content: a table beats
260
+ * an image beats a blockquote beats a stat-looking line. `blockIndex`
261
+ * alternates left/right feature composition for single-image blocks so a
262
+ * run of image sections doesn't stack the same layout.
263
+ *
264
+ * Used by `markdownToDoc`'s auto template picking (see its `autoTemplates`
265
+ * option); the multi-candidate `recommendTemplatesForBlock` below serves
266
+ * the editor's template-picker UI instead.
267
+ */
268
+ export function pickAutoTemplate(profile: BlockContentProfile, blockIndex = 0): string | undefined {
269
+ if (profile.hasTable) return 'dataTable';
270
+ if (profile.imageCount >= 2) return 'photoGrid';
271
+ if (profile.hasImage) return blockIndex % 2 === 0 ? 'leftFeature' : 'rightFeature';
272
+ if (profile.hasBlockquote) return 'quote';
273
+ if (profile.hasNumberHighlight) return 'statHighlight';
274
+ if (profile.hasList) return 'list';
275
+ return undefined;
276
+ }
277
+
254
278
  /**
255
279
  * Split a flat list of template names into a "Recommended" bucket
256
280
  * (matches the active block's content profile) and a "rest" bucket
@@ -20,7 +20,7 @@
20
20
  * - imageWithCaption: Image with text overlay
21
21
  */
22
22
 
23
- import type { Layer, Block, Transition, MapTileStyle, MapMarker } from './Doc.js';
23
+ import type { Layer, Block, Transition, MapTileStyle, MapMarker, MarkerStyle } from './Doc.js';
24
24
  import type { ViewportConfig, ViewportOrientation } from './Viewport.js';
25
25
  import type { LayoutHints } from './LayoutStrategy.js';
26
26
  import type { Theme } from './Theme.js';
@@ -110,6 +110,12 @@ interface BaseTemplateBlock {
110
110
  * Used with sourceStartTime to precisely position the block.
111
111
  */
112
112
  sourceDuration?: number;
113
+ /**
114
+ * Per-block override for the theme's photographic image grade
115
+ * (`theme.style.imageTreatment`). `'none'` opts this block's imagery out;
116
+ * a treatment type forces that grade regardless of the theme.
117
+ */
118
+ imageTreatment?: 'none' | 'mono' | 'duotone' | 'warm' | 'cool';
113
119
  }
114
120
 
115
121
  /**
@@ -470,6 +476,78 @@ export interface VideoPullQuoteInput extends BaseTemplateBlock {
470
476
  };
471
477
  }
472
478
 
479
+ /**
480
+ * Diagram block - renders child headings as a node-and-edge diagram.
481
+ *
482
+ * Unlike other templates, the diagram template reads its content from
483
+ * the parent block's `children` (passed via `context.children`) — each
484
+ * child heading becomes a node, positioned by its `x`/`y` and connected
485
+ * by its `connectsTo`. Per-diagram options on this input control overall
486
+ * appearance; per-node data lives on the child blocks themselves.
487
+ */
488
+ export interface DiagramBlockInput extends BaseTemplateBlock {
489
+ template: 'diagram';
490
+ /** Optional diagram title displayed above the canvas. */
491
+ title?: string;
492
+ /** Color scheme for nodes and edges. */
493
+ colorScheme?: ColorScheme;
494
+ /** Node shape style (default: 'rounded'). */
495
+ nodeShape?: 'rounded' | 'rect' | 'pill';
496
+ /** Edge routing (default: 'curved'). */
497
+ edgeStyle?: 'curved' | 'straight' | 'orthogonal';
498
+ /** Marker at each edge's start (default: 'none'). */
499
+ startStyle?: MarkerStyle;
500
+ /** Marker at each edge's end (default: 'arrow'). */
501
+ endStyle?: MarkerStyle;
502
+ /** Edge line style (default: 'solid'). */
503
+ lineStyle?: 'solid' | 'dashed' | 'dotted';
504
+ }
505
+
506
+ /**
507
+ * Free-form 2D canvas block (`layout`). Like `drawing`/`diagram`, the
508
+ * `layout` template is a children-driven container: each child heading is
509
+ * one absolutely-positioned layer (`{[text …]}` / `{[rectangle …]}` /
510
+ * `{[image …]}`), read from `context.children`. A text box's content is the
511
+ * child's body markdown. Backed by the `layoutBlock` template.
512
+ *
513
+ * (Legacy documents stored layers as a base64-JSON `layers=` param on the
514
+ * heading; the editor auto-migrates those to child sub-blocks on first edit.)
515
+ */
516
+ export interface RawLayersInput extends BaseTemplateBlock {
517
+ template: 'layout';
518
+ }
519
+
520
+ /**
521
+ * Drawing block — renders child headings as free-form shapes on a canvas.
522
+ *
523
+ * Like `diagram`, the drawing template reads its content from the parent
524
+ * block's `children` (passed via `context.children`). Each child heading
525
+ * is a shape: its `{[shape …]}` annotation names the primitive
526
+ * (`rectangle`/`rect`, `circle`, `line`, `arrow`, `path`, `text`) and
527
+ * carries geometry/style as params; its `{#id}` makes it referenceable;
528
+ * its heading text is the shape label and its body text an optional
529
+ * sublabel. Connectors (`line`/`arrow` with `from`/`to`) join shapes by id.
530
+ *
531
+ * Coordinates are author-defined units; the template fits the bounding box
532
+ * of all shapes to the viewport (same scaling as `diagram`), so authors
533
+ * don't have to think in absolute pixels.
534
+ *
535
+ * Legacy drawings authored visually persist their `Layer[]` as a base64
536
+ * `layers="…"` Pandoc param instead of children; the template decodes and
537
+ * returns those directly when no children are present (see `drawingBlock`).
538
+ */
539
+ export interface DrawingBlockInput extends BaseTemplateBlock {
540
+ template: 'drawing';
541
+ /** Optional title displayed above the canvas. */
542
+ title?: string;
543
+ /** Color scheme for shapes that don't pin their own fill/stroke. */
544
+ colorScheme?: ColorScheme;
545
+ /** Default fill for shapes that don't specify one (default: 'none'). */
546
+ fill?: string;
547
+ /** Default stroke for shapes that don't specify one (default: theme text). */
548
+ stroke?: string;
549
+ }
550
+
473
551
  /**
474
552
  * Data table - renders a themed table with headers and rows.
475
553
  * Ideal for structured data, comparisons, and reference information.
@@ -511,7 +589,10 @@ export type TemplateBlock =
511
589
  | PullQuoteInput
512
590
  | VideoWithCaptionInput
513
591
  | VideoPullQuoteInput
514
- | DataTableInput;
592
+ | DataTableInput
593
+ | DiagramBlockInput
594
+ | DrawingBlockInput
595
+ | RawLayersInput;
515
596
 
516
597
  /**
517
598
  * A block can be either a raw Block or a TemplateBlock.
@@ -548,6 +629,20 @@ export interface TemplateContext {
548
629
  orientation: ViewportOrientation;
549
630
  /** Layout hints for this orientation */
550
631
  layout: LayoutHints;
632
+ /**
633
+ * The block's direct children (set by `getLayers` when the block has
634
+ * `children`). Most templates ignore this; aggregate templates like
635
+ * `diagram` consume it to render each child as part of their output.
636
+ */
637
+ children?: Block[];
638
+ /**
639
+ * The source block being expanded. Used by user-defined custom
640
+ * templates so the token resolver can substitute `{title}`,
641
+ * `{content}`, `{children}`, and `{image:N}` against the block's
642
+ * data at render time. Built-in templates ignore this and rely on
643
+ * their typed `input` parameters instead.
644
+ */
645
+ block?: Block;
551
646
  }
552
647
 
553
648
  /**
@@ -560,6 +655,10 @@ export function createTemplateContext(
560
655
  viewport: ViewportConfig = VIEWPORT_PRESETS.landscape,
561
656
  ): TemplateContext {
562
657
  const orientation = getViewportOrientation(viewport);
658
+ // Theme renderStyle may override individual layout hints (e.g. a theme
659
+ // that wants a lower primaryY across every template).
660
+ const overrides = theme.renderStyle.layoutOverrides;
661
+ const baseLayout = getLayoutHints(orientation);
563
662
  return {
564
663
  theme,
565
664
  blockIndex,
@@ -567,7 +666,7 @@ export function createTemplateContext(
567
666
  viewport,
568
667
  fontScale: calculateFontScale(viewport),
569
668
  orientation,
570
- layout: getLayoutHints(orientation),
669
+ layout: overrides ? { ...baseLayout, ...overrides } : baseLayout,
571
670
  };
572
671
  }
573
672
 
@@ -647,7 +746,9 @@ export type PersistentLayerTemplateType =
647
746
  | 'solidBackground' // Solid color fill
648
747
  | 'gradientBackground' // CSS gradient or preset
649
748
  | 'imageBackground' // Blurred/faded hero image
650
- | 'patternBackground' // Subtle pattern (dots, grid)
749
+ | 'patternBackground' // Subtle pattern (dots, grid, diagonal, noise/grain)
750
+ | 'vignette' // Soft radial edge darkening (top layer)
751
+ | 'ambientGradient' // Slowly drifting surface gradient (bottom layer)
651
752
  | 'titleCaption' // Article title in corner
652
753
  | 'cornerBranding' // Logo or text badge
653
754
  | 'progressIndicator'; // Bar/dots showing position
@@ -660,6 +761,8 @@ export type PersistentLayerTemplateConfig =
660
761
  | GradientBackgroundConfig
661
762
  | ImageBackgroundConfig
662
763
  | PatternBackgroundConfig
764
+ | VignetteConfig
765
+ | AmbientGradientConfig
663
766
  | TitleCaptionConfig
664
767
  | CornerBrandingConfig
665
768
  | ProgressIndicatorConfig;
@@ -718,6 +821,32 @@ export interface PatternBackgroundConfig {
718
821
  scale?: number;
719
822
  }
720
823
 
824
+ /**
825
+ * Soft radial vignette (top layer) — transparent center darkening toward
826
+ * the frame edges. The classic film-look framing device.
827
+ */
828
+ export interface VignetteConfig {
829
+ type: 'vignette';
830
+ /** Edge darkness 0-1 (default 0.3). */
831
+ strength?: number;
832
+ /** Vignette color (default black). */
833
+ color?: string;
834
+ }
835
+
836
+ /**
837
+ * Slowly drifting surface gradient (bottom layer). Colors default to the
838
+ * theme's surface family at expansion time.
839
+ */
840
+ export interface AmbientGradientConfig {
841
+ type: 'ambientGradient';
842
+ /** Gradient start color. */
843
+ from?: string;
844
+ /** Gradient end color. */
845
+ to?: string;
846
+ /** Drift loop duration in seconds (default 40). */
847
+ duration?: number;
848
+ }
849
+
721
850
  // ============================================
722
851
  // Overlay Layer Configs
723
852
  // ============================================
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Custom Templates Schema
3
+ *
4
+ * User-defined block layout templates. The author designs a visual
5
+ * layout once (in the editor's TemplateDesigner) and saves it as a
6
+ * `CustomTemplateDefinition`. The definition lives either in the
7
+ * document's frontmatter (per-doc, portable, ships with the markdown)
8
+ * or in the user's local library (cross-doc reuse via localStorage).
9
+ *
10
+ * A custom template's content is just a `Layer[]` — the same shape that
11
+ * built-in templates emit at expansion time. The novel bit is
12
+ * *placeholder tokens*: TextLayer / ImageLayer content fields may carry
13
+ * strings like `{title}`, `{content}`, `{children}`, or `{image:N}`
14
+ * that the resolver (see `doc/templates/tokens/resolveTokens.ts`)
15
+ * substitutes against the source Block at render time.
16
+ *
17
+ * Responsiveness model: every numeric position field in `layers` is
18
+ * stored as a `%`-string relative to `viewport`, so the same template
19
+ * renders correctly at any of Squisq's viewport presets (landscape,
20
+ * portrait, square). The `viewport` field itself is purely an
21
+ * authoring-time reference — it tells the designer canvas which aspect
22
+ * ratio to mount with, and the thumbnail renderer which viewBox to use.
23
+ */
24
+
25
+ import type { Layer } from './Doc.js';
26
+
27
+ /**
28
+ * A single user-defined template. Stored in `Doc.customTemplates`
29
+ * (frontmatter-backed) or in the user's local library.
30
+ */
31
+ export interface CustomTemplateDefinition {
32
+ /**
33
+ * Stable id used in heading annotations (`### Foo {[name]}`). Must be
34
+ * a slug — lowercase alphanumerics, hyphens. The picker enforces
35
+ * uniqueness within a (doc + library) merged namespace.
36
+ */
37
+ name: string;
38
+
39
+ /** Human-readable label shown in the template picker. */
40
+ label: string;
41
+
42
+ /** Optional one-sentence description for the picker card. */
43
+ description?: string;
44
+
45
+ /**
46
+ * Authoring viewport — the canvas size the designer drew against.
47
+ * Stored so the designer and thumbnail renderer can reproduce the
48
+ * same canvas. Layer positions are stored as `%`-strings, so the
49
+ * actual render-time viewport can differ from this without breaking
50
+ * the layout. Defaults to 1920×1080 landscape.
51
+ */
52
+ viewport: {
53
+ width: number;
54
+ height: number;
55
+ };
56
+
57
+ /**
58
+ * The visual content. Every `position.x` / `position.y` /
59
+ * `position.width` / `position.height` should be a `%`-string at
60
+ * save time (the designer's normalizePositions step enforces this).
61
+ *
62
+ * Tokens supported in v1:
63
+ * - TextLayer.content.text — `{title}`, `{content}`, `{children}`,
64
+ * `{image:N}` (substitutes the Nth image's alt text)
65
+ * - ImageLayer.content.src — `{image:N}` (substitutes the URL)
66
+ */
67
+ layers: Layer[];
68
+ }
69
+
70
+ /**
71
+ * Tag value for the YAML frontmatter key that carries inlined custom
72
+ * template definitions. Exported so the markdown bridge stays in sync.
73
+ */
74
+ export const FRONTMATTER_CUSTOM_TEMPLATES_KEY = 'squisq-custom-templates';