@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
@@ -0,0 +1,221 @@
1
+ /**
2
+ * resolveTokens — placeholder substitution unit tests.
3
+ *
4
+ * Covers each supported token, the escape syntax, and the edge cases
5
+ * called out in the plan (missing data, out-of-range image index,
6
+ * unknown token left literal).
7
+ */
8
+
9
+ import { describe, it, expect } from 'vitest';
10
+ import { resolveTokens } from '../resolveTokens';
11
+ import type { Block, TextLayer, ImageLayer } from '../../../../schemas/Doc.js';
12
+
13
+ function textLayer(id: string, text: string): TextLayer {
14
+ return {
15
+ id,
16
+ type: 'text',
17
+ position: { x: 0, y: 0, width: 100, height: 50 },
18
+ content: { text, style: { fontSize: 24, color: '#000' } },
19
+ };
20
+ }
21
+
22
+ function imageLayer(id: string, src: string, alt = ''): ImageLayer {
23
+ return {
24
+ id,
25
+ type: 'image',
26
+ position: { x: 0, y: 0, width: 100, height: 100 },
27
+ content: { src, alt },
28
+ };
29
+ }
30
+
31
+ function block(overrides: Partial<Block> = {}): Block {
32
+ return {
33
+ id: 'b',
34
+ startTime: 0,
35
+ duration: 1,
36
+ audioSegment: 0,
37
+ title: 'Block title',
38
+ ...overrides,
39
+ };
40
+ }
41
+
42
+ describe('resolveTokens — TextLayer', () => {
43
+ it('substitutes {title} with block.title', () => {
44
+ const layers = resolveTokens([textLayer('a', 'Hello, {title}!')], block({ title: 'World' }));
45
+ const out = layers[0] as TextLayer;
46
+ expect(out.content.text).toBe('Hello, World!');
47
+ });
48
+
49
+ it('collapses {title} to empty when block has no title', () => {
50
+ const layers = resolveTokens([textLayer('a', '[{title}]')], block({ title: undefined }));
51
+ expect((layers[0] as TextLayer).content.text).toBe('[]');
52
+ });
53
+
54
+ it('substitutes {content} from block.contents (plain text of body)', () => {
55
+ const layers = resolveTokens(
56
+ [textLayer('a', 'Body: {content}')],
57
+ block({
58
+ contents: [
59
+ {
60
+ type: 'paragraph',
61
+ children: [{ type: 'text', value: 'Hello there' }],
62
+ },
63
+ ],
64
+ }),
65
+ );
66
+ expect((layers[0] as TextLayer).content.text).toBe('Body: Hello there');
67
+ });
68
+
69
+ it('joins multiple paragraphs in {content} with single spaces', () => {
70
+ const layers = resolveTokens(
71
+ [textLayer('a', '{content}')],
72
+ block({
73
+ contents: [
74
+ { type: 'paragraph', children: [{ type: 'text', value: 'First.' }] },
75
+ { type: 'paragraph', children: [{ type: 'text', value: 'Second.' }] },
76
+ ],
77
+ }),
78
+ );
79
+ expect((layers[0] as TextLayer).content.text).toBe('First. Second.');
80
+ });
81
+
82
+ it('joins child titles for {children}', () => {
83
+ const layers = resolveTokens(
84
+ [textLayer('a', 'Sections: {children}')],
85
+ block({
86
+ children: [
87
+ block({ id: 'c1', title: 'Alpha' }),
88
+ block({ id: 'c2', title: 'Beta' }),
89
+ block({ id: 'c3', title: 'Gamma' }),
90
+ ],
91
+ }),
92
+ );
93
+ expect((layers[0] as TextLayer).content.text).toBe('Sections: Alpha, Beta, Gamma');
94
+ });
95
+
96
+ it('substitutes {image:N} with the Nth image alt text', () => {
97
+ const layers = resolveTokens(
98
+ [textLayer('a', 'Caption: {image:0}')],
99
+ block({
100
+ contents: [
101
+ {
102
+ type: 'paragraph',
103
+ children: [{ type: 'image', url: '/a.png', alt: 'Alpha image' }],
104
+ },
105
+ ],
106
+ }),
107
+ );
108
+ expect((layers[0] as TextLayer).content.text).toBe('Caption: Alpha image');
109
+ });
110
+
111
+ it('preserves {{title}} as literal {title}', () => {
112
+ const layers = resolveTokens(
113
+ [textLayer('a', 'Use {{title}} as a token, or {title} to expand')],
114
+ block({ title: 'My Doc' }),
115
+ );
116
+ expect((layers[0] as TextLayer).content.text).toBe(
117
+ 'Use {title} as a token, or My Doc to expand',
118
+ );
119
+ });
120
+
121
+ it('leaves unknown tokens literal', () => {
122
+ const layers = resolveTokens([textLayer('a', 'Hello {nope} world')], block());
123
+ expect((layers[0] as TextLayer).content.text).toBe('Hello {nope} world');
124
+ });
125
+
126
+ it('substitutes multiple tokens in a single string', () => {
127
+ const layers = resolveTokens(
128
+ [textLayer('a', '{title} — {content}')],
129
+ block({
130
+ title: 'Doc',
131
+ contents: [{ type: 'paragraph', children: [{ type: 'text', value: 'body' }] }],
132
+ }),
133
+ );
134
+ expect((layers[0] as TextLayer).content.text).toBe('Doc — body');
135
+ });
136
+ });
137
+
138
+ describe('resolveTokens — ImageLayer', () => {
139
+ it('substitutes {image:0} with the Nth image URL in src', () => {
140
+ const layers = resolveTokens(
141
+ [imageLayer('a', '{image:0}')],
142
+ block({
143
+ contents: [
144
+ {
145
+ type: 'paragraph',
146
+ children: [{ type: 'image', url: '/hero.png', alt: 'hero' }],
147
+ },
148
+ ],
149
+ }),
150
+ );
151
+ expect(layers).toHaveLength(1);
152
+ expect((layers[0] as ImageLayer).content.src).toBe('/hero.png');
153
+ });
154
+
155
+ it('drops the layer entirely when the requested image index is out of range', () => {
156
+ const layers = resolveTokens(
157
+ [imageLayer('a', '{image:99}'), imageLayer('b', '/keep.png')],
158
+ block({
159
+ contents: [
160
+ {
161
+ type: 'paragraph',
162
+ children: [{ type: 'image', url: '/one.png', alt: '' }],
163
+ },
164
+ ],
165
+ }),
166
+ );
167
+ expect(layers).toHaveLength(1);
168
+ expect(layers[0].id).toBe('b');
169
+ });
170
+
171
+ it('substitutes tokens in the alt text when the src is also a token', () => {
172
+ const layers = resolveTokens(
173
+ [imageLayer('a', '{image:0}', 'Image for {title}')],
174
+ block({
175
+ title: 'My Doc',
176
+ contents: [
177
+ {
178
+ type: 'paragraph',
179
+ children: [{ type: 'image', url: '/x.png', alt: '' }],
180
+ },
181
+ ],
182
+ }),
183
+ );
184
+ const img = layers[0] as ImageLayer;
185
+ expect(img.content.src).toBe('/x.png');
186
+ expect(img.content.alt).toBe('Image for My Doc');
187
+ });
188
+
189
+ it('passes through ImageLayer with no token in src', () => {
190
+ const layers = resolveTokens([imageLayer('a', '/static.png')], block());
191
+ expect((layers[0] as ImageLayer).content.src).toBe('/static.png');
192
+ });
193
+ });
194
+
195
+ describe('resolveTokens — other layer types', () => {
196
+ it('passes ShapeLayer / PathLayer through unchanged', () => {
197
+ const shape = {
198
+ id: 's',
199
+ type: 'shape' as const,
200
+ position: { x: 0, y: 0, width: 50, height: 50 },
201
+ content: { shape: 'rect' as const, fill: '#fff' },
202
+ };
203
+ const path = {
204
+ id: 'p',
205
+ type: 'path' as const,
206
+ position: { x: 0, y: 0, width: 100, height: 100 },
207
+ content: { d: 'M 0 0 L 100 100', stroke: '#000' },
208
+ };
209
+ const layers = resolveTokens([shape, path], block());
210
+ expect(layers).toEqual([shape, path]);
211
+ });
212
+ });
213
+
214
+ describe('resolveTokens — purity', () => {
215
+ it('does not mutate the input layers array or the layers themselves', () => {
216
+ const original = textLayer('a', '{title}');
217
+ const before = JSON.stringify(original);
218
+ resolveTokens([original], block({ title: 'X' }));
219
+ expect(JSON.stringify(original)).toBe(before);
220
+ });
221
+ });
@@ -12,8 +12,14 @@
12
12
 
13
13
  import type { Layer } from '../../schemas/Doc.js';
14
14
  import type { TwoColumnInput, TemplateContext } from '../../schemas/BlockTemplates.js';
15
- import { scaledFontSize } from '../../schemas/BlockTemplates.js';
16
- import { resolveColorScheme, getThemeFont } from '../utils/themeUtils.js';
15
+ import {
16
+ resolveColorScheme,
17
+ getThemeFont,
18
+ themedEntrance,
19
+ themedFontSize,
20
+ themedSurfaceGradient,
21
+ } from '../utils/themeUtils.js';
22
+ import { withAlpha } from '../../schemas/colorUtils.js';
17
23
  import { getTwoColumnPositions } from '../../schemas/LayoutStrategy.js';
18
24
 
19
25
  export function twoColumn(input: TwoColumnInput, context: TemplateContext): Layer[] {
@@ -33,10 +39,17 @@ export function twoColumn(input: TwoColumnInput, context: TemplateContext): Laye
33
39
  // Column width ~42% for side-by-side, ~85% for stacked
34
40
  const columnWidth = isStacked ? '85%' : '42%';
35
41
 
36
- // Calculate font sizes based on viewport
37
- const headerFontSize = scaledFontSize(32, context, false);
38
- const labelFontSize = scaledFontSize(44, context, true);
39
- const sublabelFontSize = scaledFontSize(22, context, false);
42
+ // Calculate font sizes based on viewport. The header is the block's
43
+ // title, so it sits a step ABOVE the column labels in the hierarchy —
44
+ // it used to render smaller and dimmer than the labels, which read as
45
+ // an inverted hierarchy.
46
+ const headerFontSize = themedFontSize(36, context, true);
47
+ const labelFontSize = themedFontSize(44, context, true);
48
+ const sublabelFontSize = themedFontSize(22, context, false);
49
+
50
+ // Panels drop below the header band so the title never overlaps them.
51
+ const panelTop = header && !isStacked ? 22 : 15;
52
+ const panelHeight = header && !isStacked ? 64 : 70;
40
53
 
41
54
  const layers: Layer[] = [
42
55
  // Background — subtle gradient to add depth
@@ -45,38 +58,41 @@ export function twoColumn(input: TwoColumnInput, context: TemplateContext): Laye
45
58
  id: 'bg',
46
59
  content: {
47
60
  shape: 'rect',
48
- fill: `linear-gradient(135deg, ${theme.colors.background} 0%, #16202e 100%)`,
61
+ fill: themedSurfaceGradient(context, 135),
49
62
  },
50
63
  position: { x: 0, y: 0, width: '100%', height: '100%' },
51
64
  },
52
65
  ];
53
66
 
54
67
  if (!isStacked) {
55
- // Left column background panel
68
+ // Column background panels — tinted from the theme text color so
69
+ // they stay visible on light and dark surfaces alike.
70
+ const panelFill = withAlpha(theme.colors.text, 0.05);
56
71
  layers.push({
57
72
  type: 'shape',
58
73
  id: 'left-panel',
59
74
  content: {
60
75
  shape: 'rect',
61
- fill: 'rgba(255, 255, 255, 0.04)',
76
+ fill: panelFill,
77
+ borderRadius: 12,
62
78
  },
63
- position: { x: '3%', y: '15%', width: '44%', height: '70%' },
79
+ position: { x: '3%', y: `${panelTop}%`, width: '44%', height: `${panelHeight}%` },
64
80
  });
65
81
 
66
- // Right column background panel
67
82
  layers.push({
68
83
  type: 'shape',
69
84
  id: 'right-panel',
70
85
  content: {
71
86
  shape: 'rect',
72
- fill: 'rgba(255, 255, 255, 0.04)',
87
+ fill: panelFill,
88
+ borderRadius: 12,
73
89
  },
74
- position: { x: '53%', y: '15%', width: '44%', height: '70%' },
90
+ position: { x: '53%', y: `${panelTop}%`, width: '44%', height: `${panelHeight}%` },
75
91
  });
76
92
  }
77
93
 
78
- // Header position adjusts based on layout
79
- const headerY = isStacked ? '12%' : '22%';
94
+ // Header position adjusts based on layout — always clear of the panels.
95
+ const headerY = isStacked ? '8%' : '12%';
80
96
 
81
97
  // Add header if provided
82
98
  if (header) {
@@ -88,12 +104,13 @@ export function twoColumn(input: TwoColumnInput, context: TemplateContext): Laye
88
104
  style: {
89
105
  fontSize: headerFontSize,
90
106
  fontFamily: getThemeFont(context, 'title'),
91
- color: theme.colors.textMuted,
107
+ fontWeight: 'bold',
108
+ color: theme.colors.text,
92
109
  textAlign: 'center',
93
110
  },
94
111
  },
95
112
  position: { x: '50%', y: headerY, anchor: 'center' },
96
- animation: { type: 'fadeIn', duration: 0.8 },
113
+ animation: themedEntrance(context, 'text', { type: 'fadeIn', duration: 0.8 }),
97
114
  });
98
115
  }
99
116
 
@@ -110,13 +127,12 @@ export function twoColumn(input: TwoColumnInput, context: TemplateContext): Laye
110
127
  rightY = header ? '60%' : '55%';
111
128
  rightSublabelY = header ? '70%' : '65%';
112
129
  } else {
113
- // Landscape/square: side by side — vertically centered in panels (15%-85%)
114
- const baseY = header ? '47%' : '45%';
115
- const sublabelOffset = header ? '58%' : '56%';
116
- leftY = baseY;
117
- leftSublabelY = sublabelOffset;
118
- rightY = baseY;
119
- rightSublabelY = sublabelOffset;
130
+ // Landscape/square: side by side — vertically centered in the panels.
131
+ const panelCenter = panelTop + panelHeight / 2;
132
+ leftY = `${panelCenter - 4}%`;
133
+ leftSublabelY = `${panelCenter + 7}%`;
134
+ rightY = `${panelCenter - 4}%`;
135
+ rightSublabelY = `${panelCenter + 7}%`;
120
136
  }
121
137
 
122
138
  // Left column (or top in portrait)
@@ -140,7 +156,7 @@ export function twoColumn(input: TwoColumnInput, context: TemplateContext): Laye
140
156
  anchor: 'center',
141
157
  width: columnWidth,
142
158
  },
143
- animation: { type: 'fadeIn', duration: 1 },
159
+ animation: themedEntrance(context, 'text', { type: 'fadeIn', duration: 1 }),
144
160
  });
145
161
 
146
162
  if (left.sublabel) {
@@ -167,9 +183,11 @@ export function twoColumn(input: TwoColumnInput, context: TemplateContext): Laye
167
183
  });
168
184
  }
169
185
 
170
- // Visual connector between columns (bold arrow)
171
- const connectorFontSize = scaledFontSize(120, context, true);
172
- const connectorY = isStacked ? '48%' : '50%'; // Centered in viewport
186
+ // Visual connector between columns sized to fit inside the gutter
187
+ // between the panels (a 120px glyph used to cross both panel edges),
188
+ // tinted from the theme text color so it shows on any surface.
189
+ const connectorFontSize = themedFontSize(64, context, true);
190
+ const connectorY = isStacked ? '48%' : `${panelTop + panelHeight / 2}%`;
173
191
  const connectorSymbol = isStacked ? '\u2193' : '\u2192'; // ↓ for stacked, → for side-by-side
174
192
 
175
193
  layers.push({
@@ -181,7 +199,7 @@ export function twoColumn(input: TwoColumnInput, context: TemplateContext): Laye
181
199
  fontSize: connectorFontSize,
182
200
  fontFamily: getThemeFont(context, 'title'),
183
201
  fontWeight: 'bold',
184
- color: 'rgba(255, 255, 255, 0.6)',
202
+ color: withAlpha(theme.colors.text, 0.45),
185
203
  textAlign: 'center',
186
204
  },
187
205
  },
@@ -214,7 +232,7 @@ export function twoColumn(input: TwoColumnInput, context: TemplateContext): Laye
214
232
  anchor: 'center',
215
233
  width: columnWidth,
216
234
  },
217
- animation: { type: 'fadeIn', duration: 1, delay: 0.5 },
235
+ animation: themedEntrance(context, 'text', { type: 'fadeIn', duration: 1, delay: 0.5 }),
218
236
  });
219
237
 
220
238
  if (right.sublabel) {
@@ -17,18 +17,21 @@
17
17
 
18
18
  import type { Layer } from '../../schemas/Doc.js';
19
19
  import type { VideoPullQuoteInput, TemplateContext } from '../../schemas/BlockTemplates.js';
20
- import { scaledFontSize } from '../../schemas/BlockTemplates.js';
21
- import { getThemeFont } from '../utils/themeUtils.js';
20
+ import { getThemeFont, themedEntrance, themedFontSize } from '../utils/themeUtils.js';
21
+ import { estimateTextHeight } from './captionUtils.js';
22
22
 
23
23
  export function videoPullQuote(input: VideoPullQuoteInput, context: TemplateContext): Layer[] {
24
24
  const { text, attribution, backgroundVideo } = input;
25
+ const { viewport } = context;
25
26
 
26
27
  // Guard: backgroundVideo is required
27
28
  if (!backgroundVideo?.src) return [];
28
29
 
29
- const quoteFontSize = scaledFontSize(52, context, true);
30
- const attrFontSize = scaledFontSize(24, context, false);
31
- const decoFontSize = scaledFontSize(200, context, true);
30
+ const quoteFontSize = themedFontSize(52, context, true);
31
+ const attrFontSize = themedFontSize(26, context, false);
32
+ const decoFontSize = themedFontSize(200, context, true);
33
+ const quoteLineHeight = 1.4;
34
+ const quoteYPct = attribution ? 45 : 50;
32
35
 
33
36
  const layers: Layer[] = [
34
37
  // Full-bleed background video clip
@@ -90,22 +93,29 @@ export function videoPullQuote(input: VideoPullQuoteInput, context: TemplateCont
90
93
  fontFamily: getThemeFont(context, 'title'),
91
94
  color: '#ffffff',
92
95
  textAlign: 'center',
93
- lineHeight: 1.5,
96
+ lineHeight: quoteLineHeight,
94
97
  shadow: true,
95
98
  },
96
99
  },
97
100
  position: {
98
101
  x: '50%',
99
- y: attribution ? '45%' : '50%',
102
+ y: `${quoteYPct}%`,
100
103
  anchor: 'center',
101
- width: '80%',
104
+ width: '72%',
102
105
  },
103
- animation: { type: 'fadeIn', duration: 2 },
106
+ animation: themedEntrance(context, 'text', { type: 'fadeIn', duration: 2 }),
104
107
  },
105
108
  ];
106
109
 
107
- // Attribution
110
+ // Attribution \u2014 hangs just below the quote's estimated bottom edge so
111
+ // the two read as one lockup instead of stranding near the bottom.
108
112
  if (attribution) {
113
+ const quoteWidthPx = 0.72 * viewport.width;
114
+ const quoteHeightPx = estimateTextHeight(text, quoteFontSize, quoteWidthPx, quoteLineHeight);
115
+ const attrYPct = Math.min(
116
+ 82,
117
+ quoteYPct + ((quoteHeightPx / 2 + quoteFontSize * 1.7) / viewport.height) * 100,
118
+ );
109
119
  layers.push({
110
120
  type: 'text',
111
121
  id: 'attribution',
@@ -114,14 +124,14 @@ export function videoPullQuote(input: VideoPullQuoteInput, context: TemplateCont
114
124
  style: {
115
125
  fontSize: attrFontSize,
116
126
  fontFamily: getThemeFont(context, 'body'),
117
- color: 'rgba(255, 255, 255, 0.7)',
127
+ color: 'rgba(255, 255, 255, 0.85)',
118
128
  textAlign: 'center',
119
129
  shadow: true,
120
130
  },
121
131
  },
122
132
  position: {
123
133
  x: '50%',
124
- y: '72%',
134
+ y: `${attrYPct}%`,
125
135
  anchor: 'center',
126
136
  },
127
137
  animation: { type: 'fadeIn', duration: 1, delay: 1.5 },
@@ -17,8 +17,8 @@
17
17
 
18
18
  import type { Layer } from '../../schemas/Doc.js';
19
19
  import type { VideoWithCaptionInput, TemplateContext } from '../../schemas/BlockTemplates.js';
20
- import { scaledFontSize } from '../../schemas/BlockTemplates.js';
21
- import { getThemeFont } from '../utils/themeUtils.js';
20
+ import { getThemeFont, shouldUseShadow, themedFontSize } from '../utils/themeUtils.js';
21
+ import { withAlpha } from '../../schemas/colorUtils.js';
22
22
  import { cleanCaption } from './captionUtils.js';
23
23
 
24
24
  export function videoWithCaption(input: VideoWithCaptionInput, context: TemplateContext): Layer[] {
@@ -37,8 +37,8 @@ export function videoWithCaption(input: VideoWithCaptionInput, context: Template
37
37
  const caption = rawCaption ? cleanCaption(rawCaption) : rawCaption;
38
38
  const { theme, layout } = context;
39
39
 
40
- const captionFontSize = scaledFontSize(36, context, false);
41
- const creditFontSize = scaledFontSize(16, context, false);
40
+ const captionFontSize = themedFontSize(36, context, false);
41
+ const creditFontSize = themedFontSize(16, context, false);
42
42
 
43
43
  const layers: Layer[] = [
44
44
  // Background video clip
@@ -60,14 +60,19 @@ export function videoWithCaption(input: VideoWithCaptionInput, context: Template
60
60
  },
61
61
  ];
62
62
 
63
- // Caption text at bottom with gradient for readability
63
+ // Caption text at bottom with gradient for readability. The scrim is
64
+ // tinted from the theme background so the theme text color on top of it
65
+ // stays readable in light and dark themes alike; it fades toward the
66
+ // frame edge the caption sits on.
64
67
  if (caption) {
68
+ const bg = theme.colors.background;
69
+ const scrimAngle = captionPosition === 'top' ? 180 : 0;
65
70
  layers.push({
66
71
  type: 'shape',
67
72
  id: 'caption-gradient',
68
73
  content: {
69
74
  shape: 'rect',
70
- fill: 'linear-gradient(0deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 60%, transparent 100%)',
75
+ fill: `linear-gradient(${scrimAngle}deg, ${withAlpha(bg, 0.8)} 0%, ${withAlpha(bg, 0.35)} 60%, ${withAlpha(bg, 0)} 100%)`,
71
76
  },
72
77
  position: {
73
78
  x: 0,
@@ -90,7 +95,7 @@ export function videoWithCaption(input: VideoWithCaptionInput, context: Template
90
95
  fontFamily: getThemeFont(context, 'body'),
91
96
  color: theme.colors.text,
92
97
  textAlign: 'center',
93
- shadow: true,
98
+ shadow: shouldUseShadow(context),
94
99
  },
95
100
  },
96
101
  position: {
@@ -113,7 +118,7 @@ export function videoWithCaption(input: VideoWithCaptionInput, context: Template
113
118
  style: {
114
119
  fontSize: creditFontSize,
115
120
  fontFamily: getThemeFont(context, 'body'),
116
- color: 'rgba(255, 255, 255, 0.5)',
121
+ color: withAlpha(theme.colors.text, 0.65),
117
122
  textAlign: 'right',
118
123
  },
119
124
  },