@bendyline/squisq 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/dist/doc/index.d.ts +5 -10
  2. package/dist/doc/index.js +145 -7
  3. package/dist/doc/index.js.map +1 -1
  4. package/dist/generate/index.d.ts +99 -7
  5. package/dist/generate/index.js +16 -3
  6. package/dist/generate/index.js.map +1 -1
  7. package/dist/icons/index.d.ts +84 -9
  8. package/dist/icons/index.js +16 -9
  9. package/dist/icons/index.js.map +1 -1
  10. package/dist/imageEdit/index.d.ts +213 -11
  11. package/dist/imageEdit/index.js +53 -21
  12. package/dist/imageEdit/index.js.map +1 -1
  13. package/dist/index.d.ts +21 -13
  14. package/dist/index.js +461 -12
  15. package/dist/index.js.map +1 -1
  16. package/dist/jsonForm/index.d.ts +189 -12
  17. package/dist/jsonForm/index.js +26 -11
  18. package/dist/jsonForm/index.js.map +1 -1
  19. package/dist/markdown/index.d.ts +265 -19
  20. package/dist/markdown/index.js +39 -33
  21. package/dist/markdown/index.js.map +1 -1
  22. package/dist/random/index.d.ts +51 -2
  23. package/dist/random/index.js +9 -1
  24. package/dist/random/index.js.map +1 -1
  25. package/dist/recommend/index.d.ts +39 -13
  26. package/dist/recommend/index.js +9 -14
  27. package/dist/recommend/index.js.map +1 -1
  28. package/dist/schemas/index.d.ts +188 -15
  29. package/dist/schemas/index.js +120 -11
  30. package/dist/schemas/index.js.map +1 -1
  31. package/dist/spatial/index.d.ts +111 -3
  32. package/dist/spatial/index.js +24 -2
  33. package/dist/spatial/index.js.map +1 -1
  34. package/dist/storage/index.d.ts +159 -10
  35. package/dist/storage/index.js +20 -6
  36. package/dist/storage/index.js.map +1 -1
  37. package/dist/timing/index.d.ts +109 -4
  38. package/dist/timing/index.js +23 -2
  39. package/dist/timing/index.js.map +1 -1
  40. package/dist/transform/index.d.ts +175 -6
  41. package/dist/transform/index.js +490 -3
  42. package/dist/transform/index.js.map +1 -1
  43. package/dist/versions/index.d.ts +123 -24
  44. package/dist/versions/index.js +34 -27
  45. package/dist/versions/index.js.map +1 -1
  46. package/package.json +1 -1
  47. package/dist/__tests__/animationUtils.test.d.ts +0 -2
  48. package/dist/__tests__/animationUtils.test.d.ts.map +0 -1
  49. package/dist/__tests__/animationUtils.test.js +0 -60
  50. package/dist/__tests__/animationUtils.test.js.map +0 -1
  51. package/dist/__tests__/colorUtils.test.d.ts +0 -2
  52. package/dist/__tests__/colorUtils.test.d.ts.map +0 -1
  53. package/dist/__tests__/colorUtils.test.js +0 -94
  54. package/dist/__tests__/colorUtils.test.js.map +0 -1
  55. package/dist/__tests__/contentContainer.test.d.ts +0 -2
  56. package/dist/__tests__/contentContainer.test.d.ts.map +0 -1
  57. package/dist/__tests__/contentContainer.test.js +0 -234
  58. package/dist/__tests__/contentContainer.test.js.map +0 -1
  59. package/dist/__tests__/contentExtractor.test.d.ts +0 -2
  60. package/dist/__tests__/contentExtractor.test.d.ts.map +0 -1
  61. package/dist/__tests__/contentExtractor.test.js +0 -151
  62. package/dist/__tests__/contentExtractor.test.js.map +0 -1
  63. package/dist/__tests__/coverBlock.test.d.ts +0 -2
  64. package/dist/__tests__/coverBlock.test.d.ts.map +0 -1
  65. package/dist/__tests__/coverBlock.test.js +0 -197
  66. package/dist/__tests__/coverBlock.test.js.map +0 -1
  67. package/dist/__tests__/dataTable.test.d.ts +0 -2
  68. package/dist/__tests__/dataTable.test.d.ts.map +0 -1
  69. package/dist/__tests__/dataTable.test.js +0 -110
  70. package/dist/__tests__/dataTable.test.js.map +0 -1
  71. package/dist/__tests__/geohash.test.d.ts +0 -2
  72. package/dist/__tests__/geohash.test.d.ts.map +0 -1
  73. package/dist/__tests__/geohash.test.js +0 -87
  74. package/dist/__tests__/geohash.test.js.map +0 -1
  75. package/dist/__tests__/getLayers.test.d.ts +0 -2
  76. package/dist/__tests__/getLayers.test.d.ts.map +0 -1
  77. package/dist/__tests__/getLayers.test.js +0 -191
  78. package/dist/__tests__/getLayers.test.js.map +0 -1
  79. package/dist/__tests__/haversine.test.d.ts +0 -2
  80. package/dist/__tests__/haversine.test.d.ts.map +0 -1
  81. package/dist/__tests__/haversine.test.js +0 -56
  82. package/dist/__tests__/haversine.test.js.map +0 -1
  83. package/dist/__tests__/iconResolve.test.d.ts +0 -2
  84. package/dist/__tests__/iconResolve.test.d.ts.map +0 -1
  85. package/dist/__tests__/iconResolve.test.js +0 -99
  86. package/dist/__tests__/iconResolve.test.js.map +0 -1
  87. package/dist/__tests__/imageEditState.test.d.ts +0 -2
  88. package/dist/__tests__/imageEditState.test.d.ts.map +0 -1
  89. package/dist/__tests__/imageEditState.test.js +0 -61
  90. package/dist/__tests__/imageEditState.test.js.map +0 -1
  91. package/dist/__tests__/imageEditVersions.test.d.ts +0 -2
  92. package/dist/__tests__/imageEditVersions.test.d.ts.map +0 -1
  93. package/dist/__tests__/imageEditVersions.test.js +0 -141
  94. package/dist/__tests__/imageEditVersions.test.js.map +0 -1
  95. package/dist/__tests__/inferDocumentTitle.test.d.ts +0 -2
  96. package/dist/__tests__/inferDocumentTitle.test.d.ts.map +0 -1
  97. package/dist/__tests__/inferDocumentTitle.test.js +0 -42
  98. package/dist/__tests__/inferDocumentTitle.test.js.map +0 -1
  99. package/dist/__tests__/jsonForm.chooseControl.test.d.ts +0 -2
  100. package/dist/__tests__/jsonForm.chooseControl.test.d.ts.map +0 -1
  101. package/dist/__tests__/jsonForm.chooseControl.test.js +0 -74
  102. package/dist/__tests__/jsonForm.chooseControl.test.js.map +0 -1
  103. package/dist/__tests__/jsonForm.evaluateWhen.test.d.ts +0 -2
  104. package/dist/__tests__/jsonForm.evaluateWhen.test.d.ts.map +0 -1
  105. package/dist/__tests__/jsonForm.evaluateWhen.test.js +0 -51
  106. package/dist/__tests__/jsonForm.evaluateWhen.test.js.map +0 -1
  107. package/dist/__tests__/jsonForm.inferSchema.test.d.ts +0 -2
  108. package/dist/__tests__/jsonForm.inferSchema.test.d.ts.map +0 -1
  109. package/dist/__tests__/jsonForm.inferSchema.test.js +0 -23
  110. package/dist/__tests__/jsonForm.inferSchema.test.js.map +0 -1
  111. package/dist/__tests__/jsonForm.pointer.test.d.ts +0 -2
  112. package/dist/__tests__/jsonForm.pointer.test.d.ts.map +0 -1
  113. package/dist/__tests__/jsonForm.pointer.test.js +0 -94
  114. package/dist/__tests__/jsonForm.pointer.test.js.map +0 -1
  115. package/dist/__tests__/localForageAdapter.test.d.ts +0 -8
  116. package/dist/__tests__/localForageAdapter.test.d.ts.map +0 -1
  117. package/dist/__tests__/localForageAdapter.test.js +0 -130
  118. package/dist/__tests__/localForageAdapter.test.js.map +0 -1
  119. package/dist/__tests__/markdown.test.d.ts +0 -2
  120. package/dist/__tests__/markdown.test.d.ts.map +0 -1
  121. package/dist/__tests__/markdown.test.js +0 -715
  122. package/dist/__tests__/markdown.test.js.map +0 -1
  123. package/dist/__tests__/markdownIcons.test.d.ts +0 -2
  124. package/dist/__tests__/markdownIcons.test.d.ts.map +0 -1
  125. package/dist/__tests__/markdownIcons.test.js +0 -93
  126. package/dist/__tests__/markdownIcons.test.js.map +0 -1
  127. package/dist/__tests__/markdownToDoc.test.d.ts +0 -2
  128. package/dist/__tests__/markdownToDoc.test.d.ts.map +0 -1
  129. package/dist/__tests__/markdownToDoc.test.js +0 -458
  130. package/dist/__tests__/markdownToDoc.test.js.map +0 -1
  131. package/dist/__tests__/recommendTemplates.test.d.ts +0 -2
  132. package/dist/__tests__/recommendTemplates.test.d.ts.map +0 -1
  133. package/dist/__tests__/recommendTemplates.test.js +0 -158
  134. package/dist/__tests__/recommendTemplates.test.js.map +0 -1
  135. package/dist/__tests__/scopedContentContainer.test.d.ts +0 -2
  136. package/dist/__tests__/scopedContentContainer.test.d.ts.map +0 -1
  137. package/dist/__tests__/scopedContentContainer.test.js +0 -74
  138. package/dist/__tests__/scopedContentContainer.test.js.map +0 -1
  139. package/dist/__tests__/seededRandom.test.d.ts +0 -2
  140. package/dist/__tests__/seededRandom.test.d.ts.map +0 -1
  141. package/dist/__tests__/seededRandom.test.js +0 -125
  142. package/dist/__tests__/seededRandom.test.js.map +0 -1
  143. package/dist/__tests__/slideshowGenerator.test.d.ts +0 -2
  144. package/dist/__tests__/slideshowGenerator.test.d.ts.map +0 -1
  145. package/dist/__tests__/slideshowGenerator.test.js +0 -114
  146. package/dist/__tests__/slideshowGenerator.test.js.map +0 -1
  147. package/dist/__tests__/storage.test.d.ts +0 -2
  148. package/dist/__tests__/storage.test.d.ts.map +0 -1
  149. package/dist/__tests__/storage.test.js +0 -51
  150. package/dist/__tests__/storage.test.js.map +0 -1
  151. package/dist/__tests__/surface.test.d.ts +0 -2
  152. package/dist/__tests__/surface.test.d.ts.map +0 -1
  153. package/dist/__tests__/surface.test.js +0 -57
  154. package/dist/__tests__/surface.test.js.map +0 -1
  155. package/dist/__tests__/templateAnnotationParse.test.d.ts +0 -2
  156. package/dist/__tests__/templateAnnotationParse.test.d.ts.map +0 -1
  157. package/dist/__tests__/templateAnnotationParse.test.js +0 -42
  158. package/dist/__tests__/templateAnnotationParse.test.js.map +0 -1
  159. package/dist/__tests__/templates.test.d.ts +0 -2
  160. package/dist/__tests__/templates.test.d.ts.map +0 -1
  161. package/dist/__tests__/templates.test.js +0 -298
  162. package/dist/__tests__/templates.test.js.map +0 -1
  163. package/dist/__tests__/themeCompile.test.d.ts +0 -2
  164. package/dist/__tests__/themeCompile.test.d.ts.map +0 -1
  165. package/dist/__tests__/themeCompile.test.js +0 -134
  166. package/dist/__tests__/themeCompile.test.js.map +0 -1
  167. package/dist/__tests__/themeValidator.test.d.ts +0 -2
  168. package/dist/__tests__/themeValidator.test.d.ts.map +0 -1
  169. package/dist/__tests__/themeValidator.test.js +0 -107
  170. package/dist/__tests__/themeValidator.test.js.map +0 -1
  171. package/dist/__tests__/timing.test.d.ts +0 -2
  172. package/dist/__tests__/timing.test.d.ts.map +0 -1
  173. package/dist/__tests__/timing.test.js +0 -131
  174. package/dist/__tests__/timing.test.js.map +0 -1
  175. package/dist/__tests__/versions.test.d.ts +0 -2
  176. package/dist/__tests__/versions.test.d.ts.map +0 -1
  177. package/dist/__tests__/versions.test.js +0 -339
  178. package/dist/__tests__/versions.test.js.map +0 -1
  179. package/dist/doc/audioMapping.d.ts +0 -36
  180. package/dist/doc/audioMapping.d.ts.map +0 -1
  181. package/dist/doc/audioMapping.js +0 -350
  182. package/dist/doc/audioMapping.js.map +0 -1
  183. package/dist/doc/docToMarkdown.d.ts +0 -41
  184. package/dist/doc/docToMarkdown.d.ts.map +0 -1
  185. package/dist/doc/docToMarkdown.js +0 -88
  186. package/dist/doc/docToMarkdown.js.map +0 -1
  187. package/dist/doc/getLayers.d.ts +0 -65
  188. package/dist/doc/getLayers.d.ts.map +0 -1
  189. package/dist/doc/getLayers.js +0 -114
  190. package/dist/doc/getLayers.js.map +0 -1
  191. package/dist/doc/index.d.ts.map +0 -1
  192. package/dist/doc/markdownToDoc.d.ts +0 -75
  193. package/dist/doc/markdownToDoc.d.ts.map +0 -1
  194. package/dist/doc/markdownToDoc.js +0 -432
  195. package/dist/doc/markdownToDoc.js.map +0 -1
  196. package/dist/doc/templates/accentImage.d.ts +0 -59
  197. package/dist/doc/templates/accentImage.d.ts.map +0 -1
  198. package/dist/doc/templates/accentImage.js +0 -275
  199. package/dist/doc/templates/accentImage.js.map +0 -1
  200. package/dist/doc/templates/captionUtils.d.ts +0 -20
  201. package/dist/doc/templates/captionUtils.d.ts.map +0 -1
  202. package/dist/doc/templates/captionUtils.js +0 -29
  203. package/dist/doc/templates/captionUtils.js.map +0 -1
  204. package/dist/doc/templates/comparisonBar.d.ts +0 -13
  205. package/dist/doc/templates/comparisonBar.d.ts.map +0 -1
  206. package/dist/doc/templates/comparisonBar.js +0 -145
  207. package/dist/doc/templates/comparisonBar.js.map +0 -1
  208. package/dist/doc/templates/coverBlock.d.ts +0 -51
  209. package/dist/doc/templates/coverBlock.d.ts.map +0 -1
  210. package/dist/doc/templates/coverBlock.js +0 -153
  211. package/dist/doc/templates/coverBlock.js.map +0 -1
  212. package/dist/doc/templates/dataTable.d.ts +0 -14
  213. package/dist/doc/templates/dataTable.d.ts.map +0 -1
  214. package/dist/doc/templates/dataTable.js +0 -73
  215. package/dist/doc/templates/dataTable.js.map +0 -1
  216. package/dist/doc/templates/dateEvent.d.ts +0 -15
  217. package/dist/doc/templates/dateEvent.d.ts.map +0 -1
  218. package/dist/doc/templates/dateEvent.js +0 -114
  219. package/dist/doc/templates/dateEvent.js.map +0 -1
  220. package/dist/doc/templates/definitionCard.d.ts +0 -13
  221. package/dist/doc/templates/definitionCard.d.ts.map +0 -1
  222. package/dist/doc/templates/definitionCard.js +0 -117
  223. package/dist/doc/templates/definitionCard.js.map +0 -1
  224. package/dist/doc/templates/factCard.d.ts +0 -15
  225. package/dist/doc/templates/factCard.d.ts.map +0 -1
  226. package/dist/doc/templates/factCard.js +0 -104
  227. package/dist/doc/templates/factCard.js.map +0 -1
  228. package/dist/doc/templates/featureBlock.d.ts +0 -18
  229. package/dist/doc/templates/featureBlock.d.ts.map +0 -1
  230. package/dist/doc/templates/featureBlock.js +0 -180
  231. package/dist/doc/templates/featureBlock.js.map +0 -1
  232. package/dist/doc/templates/fullBleedQuote.d.ts +0 -25
  233. package/dist/doc/templates/fullBleedQuote.d.ts.map +0 -1
  234. package/dist/doc/templates/fullBleedQuote.js +0 -67
  235. package/dist/doc/templates/fullBleedQuote.js.map +0 -1
  236. package/dist/doc/templates/imageWithCaption.d.ts +0 -13
  237. package/dist/doc/templates/imageWithCaption.d.ts.map +0 -1
  238. package/dist/doc/templates/imageWithCaption.js +0 -146
  239. package/dist/doc/templates/imageWithCaption.js.map +0 -1
  240. package/dist/doc/templates/index.d.ts +0 -129
  241. package/dist/doc/templates/index.d.ts.map +0 -1
  242. package/dist/doc/templates/index.js +0 -478
  243. package/dist/doc/templates/index.js.map +0 -1
  244. package/dist/doc/templates/listBlock.d.ts +0 -13
  245. package/dist/doc/templates/listBlock.d.ts.map +0 -1
  246. package/dist/doc/templates/listBlock.js +0 -109
  247. package/dist/doc/templates/listBlock.js.map +0 -1
  248. package/dist/doc/templates/mapBlock.d.ts +0 -17
  249. package/dist/doc/templates/mapBlock.d.ts.map +0 -1
  250. package/dist/doc/templates/mapBlock.js +0 -115
  251. package/dist/doc/templates/mapBlock.js.map +0 -1
  252. package/dist/doc/templates/persistentLayers.d.ts +0 -39
  253. package/dist/doc/templates/persistentLayers.d.ts.map +0 -1
  254. package/dist/doc/templates/persistentLayers.js +0 -447
  255. package/dist/doc/templates/persistentLayers.js.map +0 -1
  256. package/dist/doc/templates/photoGrid.d.ts +0 -20
  257. package/dist/doc/templates/photoGrid.d.ts.map +0 -1
  258. package/dist/doc/templates/photoGrid.js +0 -175
  259. package/dist/doc/templates/photoGrid.js.map +0 -1
  260. package/dist/doc/templates/pullQuote.d.ts +0 -13
  261. package/dist/doc/templates/pullQuote.d.ts.map +0 -1
  262. package/dist/doc/templates/pullQuote.js +0 -113
  263. package/dist/doc/templates/pullQuote.js.map +0 -1
  264. package/dist/doc/templates/quoteBlock.d.ts +0 -15
  265. package/dist/doc/templates/quoteBlock.d.ts.map +0 -1
  266. package/dist/doc/templates/quoteBlock.js +0 -101
  267. package/dist/doc/templates/quoteBlock.js.map +0 -1
  268. package/dist/doc/templates/sectionHeader.d.ts +0 -14
  269. package/dist/doc/templates/sectionHeader.d.ts.map +0 -1
  270. package/dist/doc/templates/sectionHeader.js +0 -97
  271. package/dist/doc/templates/sectionHeader.js.map +0 -1
  272. package/dist/doc/templates/statHighlight.d.ts +0 -27
  273. package/dist/doc/templates/statHighlight.d.ts.map +0 -1
  274. package/dist/doc/templates/statHighlight.js +0 -114
  275. package/dist/doc/templates/statHighlight.js.map +0 -1
  276. package/dist/doc/templates/titleBlock.d.ts +0 -24
  277. package/dist/doc/templates/titleBlock.d.ts.map +0 -1
  278. package/dist/doc/templates/titleBlock.js +0 -103
  279. package/dist/doc/templates/titleBlock.js.map +0 -1
  280. package/dist/doc/templates/twoColumn.d.ts +0 -15
  281. package/dist/doc/templates/twoColumn.d.ts.map +0 -1
  282. package/dist/doc/templates/twoColumn.js +0 -225
  283. package/dist/doc/templates/twoColumn.js.map +0 -1
  284. package/dist/doc/templates/videoPullQuote.d.ts +0 -20
  285. package/dist/doc/templates/videoPullQuote.d.ts.map +0 -1
  286. package/dist/doc/templates/videoPullQuote.js +0 -122
  287. package/dist/doc/templates/videoPullQuote.js.map +0 -1
  288. package/dist/doc/templates/videoWithCaption.d.ts +0 -20
  289. package/dist/doc/templates/videoWithCaption.d.ts.map +0 -1
  290. package/dist/doc/templates/videoWithCaption.js +0 -107
  291. package/dist/doc/templates/videoWithCaption.js.map +0 -1
  292. package/dist/doc/utils/animationUtils.d.ts +0 -34
  293. package/dist/doc/utils/animationUtils.d.ts.map +0 -1
  294. package/dist/doc/utils/animationUtils.js +0 -110
  295. package/dist/doc/utils/animationUtils.js.map +0 -1
  296. package/dist/doc/utils/themeUtils.d.ts +0 -64
  297. package/dist/doc/utils/themeUtils.d.ts.map +0 -1
  298. package/dist/doc/utils/themeUtils.js +0 -136
  299. package/dist/doc/utils/themeUtils.js.map +0 -1
  300. package/dist/generate/contentExtractor.d.ts +0 -112
  301. package/dist/generate/contentExtractor.d.ts.map +0 -1
  302. package/dist/generate/contentExtractor.js +0 -638
  303. package/dist/generate/contentExtractor.js.map +0 -1
  304. package/dist/generate/index.d.ts.map +0 -1
  305. package/dist/generate/slideshowGenerator.d.ts +0 -72
  306. package/dist/generate/slideshowGenerator.d.ts.map +0 -1
  307. package/dist/generate/slideshowGenerator.js +0 -159
  308. package/dist/generate/slideshowGenerator.js.map +0 -1
  309. package/dist/generate/templateMapper.d.ts +0 -23
  310. package/dist/generate/templateMapper.d.ts.map +0 -1
  311. package/dist/generate/templateMapper.js +0 -114
  312. package/dist/generate/templateMapper.js.map +0 -1
  313. package/dist/icons/iconData.d.ts +0 -26
  314. package/dist/icons/iconData.d.ts.map +0 -1
  315. package/dist/icons/iconData.js +0 -12
  316. package/dist/icons/iconData.js.map +0 -1
  317. package/dist/icons/index.d.ts.map +0 -1
  318. package/dist/icons/resolve.d.ts +0 -61
  319. package/dist/icons/resolve.d.ts.map +0 -1
  320. package/dist/icons/resolve.js +0 -130
  321. package/dist/icons/resolve.js.map +0 -1
  322. package/dist/imageEdit/ImageEditVersionManager.d.ts +0 -31
  323. package/dist/imageEdit/ImageEditVersionManager.d.ts.map +0 -1
  324. package/dist/imageEdit/ImageEditVersionManager.js +0 -39
  325. package/dist/imageEdit/ImageEditVersionManager.js.map +0 -1
  326. package/dist/imageEdit/export.d.ts +0 -33
  327. package/dist/imageEdit/export.d.ts.map +0 -1
  328. package/dist/imageEdit/export.js +0 -253
  329. package/dist/imageEdit/export.js.map +0 -1
  330. package/dist/imageEdit/index.d.ts.map +0 -1
  331. package/dist/imageEdit/persistence.d.ts +0 -15
  332. package/dist/imageEdit/persistence.d.ts.map +0 -1
  333. package/dist/imageEdit/persistence.js +0 -49
  334. package/dist/imageEdit/persistence.js.map +0 -1
  335. package/dist/imageEdit/state.d.ts +0 -42
  336. package/dist/imageEdit/state.d.ts.map +0 -1
  337. package/dist/imageEdit/state.js +0 -98
  338. package/dist/imageEdit/state.js.map +0 -1
  339. package/dist/imageEdit/versionPaths.d.ts +0 -27
  340. package/dist/imageEdit/versionPaths.d.ts.map +0 -1
  341. package/dist/imageEdit/versionPaths.js +0 -57
  342. package/dist/imageEdit/versionPaths.js.map +0 -1
  343. package/dist/imageEdit/versions.d.ts +0 -67
  344. package/dist/imageEdit/versions.d.ts.map +0 -1
  345. package/dist/imageEdit/versions.js +0 -161
  346. package/dist/imageEdit/versions.js.map +0 -1
  347. package/dist/index.d.ts.map +0 -1
  348. package/dist/jsonForm/chooseControl.d.ts +0 -20
  349. package/dist/jsonForm/chooseControl.d.ts.map +0 -1
  350. package/dist/jsonForm/chooseControl.js +0 -82
  351. package/dist/jsonForm/chooseControl.js.map +0 -1
  352. package/dist/jsonForm/evaluateWhen.d.ts +0 -12
  353. package/dist/jsonForm/evaluateWhen.d.ts.map +0 -1
  354. package/dist/jsonForm/evaluateWhen.js +0 -65
  355. package/dist/jsonForm/evaluateWhen.js.map +0 -1
  356. package/dist/jsonForm/index.d.ts.map +0 -1
  357. package/dist/jsonForm/inferSchema.d.ts +0 -12
  358. package/dist/jsonForm/inferSchema.d.ts.map +0 -1
  359. package/dist/jsonForm/inferSchema.js +0 -15
  360. package/dist/jsonForm/inferSchema.js.map +0 -1
  361. package/dist/jsonForm/pointer.d.ts +0 -26
  362. package/dist/jsonForm/pointer.d.ts.map +0 -1
  363. package/dist/jsonForm/pointer.js +0 -102
  364. package/dist/jsonForm/pointer.js.map +0 -1
  365. package/dist/jsonForm/types.d.ts +0 -120
  366. package/dist/jsonForm/types.d.ts.map +0 -1
  367. package/dist/jsonForm/types.js +0 -10
  368. package/dist/jsonForm/types.js.map +0 -1
  369. package/dist/markdown/convert.d.ts +0 -81
  370. package/dist/markdown/convert.d.ts.map +0 -1
  371. package/dist/markdown/convert.js +0 -975
  372. package/dist/markdown/convert.js.map +0 -1
  373. package/dist/markdown/htmlParse.d.ts +0 -26
  374. package/dist/markdown/htmlParse.d.ts.map +0 -1
  375. package/dist/markdown/htmlParse.js +0 -195
  376. package/dist/markdown/htmlParse.js.map +0 -1
  377. package/dist/markdown/index.d.ts.map +0 -1
  378. package/dist/markdown/parse.d.ts +0 -27
  379. package/dist/markdown/parse.d.ts.map +0 -1
  380. package/dist/markdown/parse.js +0 -90
  381. package/dist/markdown/parse.js.map +0 -1
  382. package/dist/markdown/stringify.d.ts +0 -32
  383. package/dist/markdown/stringify.d.ts.map +0 -1
  384. package/dist/markdown/stringify.js +0 -108
  385. package/dist/markdown/stringify.js.map +0 -1
  386. package/dist/markdown/types.d.ts +0 -531
  387. package/dist/markdown/types.d.ts.map +0 -1
  388. package/dist/markdown/types.js +0 -17
  389. package/dist/markdown/types.js.map +0 -1
  390. package/dist/markdown/utils.d.ts +0 -118
  391. package/dist/markdown/utils.d.ts.map +0 -1
  392. package/dist/markdown/utils.js +0 -308
  393. package/dist/markdown/utils.js.map +0 -1
  394. package/dist/random/SeededRandom.d.ts +0 -50
  395. package/dist/random/SeededRandom.d.ts.map +0 -1
  396. package/dist/random/SeededRandom.js +0 -115
  397. package/dist/random/SeededRandom.js.map +0 -1
  398. package/dist/random/index.d.ts.map +0 -1
  399. package/dist/recommend/index.d.ts.map +0 -1
  400. package/dist/recommend/templates.d.ts +0 -39
  401. package/dist/recommend/templates.d.ts.map +0 -1
  402. package/dist/recommend/templates.js +0 -235
  403. package/dist/recommend/templates.js.map +0 -1
  404. package/dist/schemas/BlockTemplates.d.ts +0 -638
  405. package/dist/schemas/BlockTemplates.d.ts.map +0 -1
  406. package/dist/schemas/BlockTemplates.js +0 -72
  407. package/dist/schemas/BlockTemplates.js.map +0 -1
  408. package/dist/schemas/Doc.d.ts +0 -503
  409. package/dist/schemas/Doc.d.ts.map +0 -1
  410. package/dist/schemas/Doc.js +0 -90
  411. package/dist/schemas/Doc.js.map +0 -1
  412. package/dist/schemas/ImageEditDoc.d.ts +0 -81
  413. package/dist/schemas/ImageEditDoc.d.ts.map +0 -1
  414. package/dist/schemas/ImageEditDoc.js +0 -20
  415. package/dist/schemas/ImageEditDoc.js.map +0 -1
  416. package/dist/schemas/LayoutStrategy.d.ts +0 -84
  417. package/dist/schemas/LayoutStrategy.d.ts.map +0 -1
  418. package/dist/schemas/LayoutStrategy.js +0 -123
  419. package/dist/schemas/LayoutStrategy.js.map +0 -1
  420. package/dist/schemas/MediaProvider.d.ts +0 -65
  421. package/dist/schemas/MediaProvider.d.ts.map +0 -1
  422. package/dist/schemas/MediaProvider.js +0 -13
  423. package/dist/schemas/MediaProvider.js.map +0 -1
  424. package/dist/schemas/Theme.d.ts +0 -233
  425. package/dist/schemas/Theme.d.ts.map +0 -1
  426. package/dist/schemas/Theme.js +0 -129
  427. package/dist/schemas/Theme.js.map +0 -1
  428. package/dist/schemas/Types.d.ts +0 -14
  429. package/dist/schemas/Types.d.ts.map +0 -1
  430. package/dist/schemas/Types.js +0 -5
  431. package/dist/schemas/Types.js.map +0 -1
  432. package/dist/schemas/Viewport.d.ts +0 -74
  433. package/dist/schemas/Viewport.d.ts.map +0 -1
  434. package/dist/schemas/Viewport.js +0 -63
  435. package/dist/schemas/Viewport.js.map +0 -1
  436. package/dist/schemas/colorUtils.d.ts +0 -51
  437. package/dist/schemas/colorUtils.d.ts.map +0 -1
  438. package/dist/schemas/colorUtils.js +0 -154
  439. package/dist/schemas/colorUtils.js.map +0 -1
  440. package/dist/schemas/fontStacks.d.ts +0 -57
  441. package/dist/schemas/fontStacks.d.ts.map +0 -1
  442. package/dist/schemas/fontStacks.js +0 -227
  443. package/dist/schemas/fontStacks.js.map +0 -1
  444. package/dist/schemas/index.d.ts.map +0 -1
  445. package/dist/schemas/themeCompile.d.ts +0 -45
  446. package/dist/schemas/themeCompile.d.ts.map +0 -1
  447. package/dist/schemas/themeCompile.js +0 -160
  448. package/dist/schemas/themeCompile.js.map +0 -1
  449. package/dist/schemas/themeLibrary.d.ts +0 -37
  450. package/dist/schemas/themeLibrary.d.ts.map +0 -1
  451. package/dist/schemas/themeLibrary.js +0 -49
  452. package/dist/schemas/themeLibrary.js.map +0 -1
  453. package/dist/schemas/themeValidator.d.ts +0 -26
  454. package/dist/schemas/themeValidator.d.ts.map +0 -1
  455. package/dist/schemas/themeValidator.js +0 -352
  456. package/dist/schemas/themeValidator.js.map +0 -1
  457. package/dist/schemas/themes/bold.json +0 -48
  458. package/dist/schemas/themes/cinematic.json +0 -54
  459. package/dist/schemas/themes/documentary.json +0 -49
  460. package/dist/schemas/themes/gezellig.json +0 -44
  461. package/dist/schemas/themes/index.d.ts +0 -26
  462. package/dist/schemas/themes/index.d.ts.map +0 -1
  463. package/dist/schemas/themes/index.js +0 -49
  464. package/dist/schemas/themes/index.js.map +0 -1
  465. package/dist/schemas/themes/magazine.json +0 -44
  466. package/dist/schemas/themes/minimalist.json +0 -45
  467. package/dist/schemas/themes/morning-light.json +0 -42
  468. package/dist/schemas/themes/standard-dark.json +0 -50
  469. package/dist/schemas/themes/standard.json +0 -42
  470. package/dist/schemas/themes/tech-dark.json +0 -48
  471. package/dist/schemas/themes/warm-earth.json +0 -50
  472. package/dist/spatial/Geohash.d.ts +0 -85
  473. package/dist/spatial/Geohash.d.ts.map +0 -1
  474. package/dist/spatial/Geohash.js +0 -142
  475. package/dist/spatial/Geohash.js.map +0 -1
  476. package/dist/spatial/Haversine.d.ts +0 -24
  477. package/dist/spatial/Haversine.d.ts.map +0 -1
  478. package/dist/spatial/Haversine.js +0 -48
  479. package/dist/spatial/Haversine.js.map +0 -1
  480. package/dist/spatial/index.d.ts.map +0 -1
  481. package/dist/storage/ContentContainer.d.ts +0 -87
  482. package/dist/storage/ContentContainer.d.ts.map +0 -1
  483. package/dist/storage/ContentContainer.js +0 -131
  484. package/dist/storage/ContentContainer.js.map +0 -1
  485. package/dist/storage/LocalForageAdapter.d.ts +0 -36
  486. package/dist/storage/LocalForageAdapter.d.ts.map +0 -1
  487. package/dist/storage/LocalForageAdapter.js +0 -82
  488. package/dist/storage/LocalForageAdapter.js.map +0 -1
  489. package/dist/storage/LocalStorageAdapter.d.ts +0 -16
  490. package/dist/storage/LocalStorageAdapter.d.ts.map +0 -1
  491. package/dist/storage/LocalStorageAdapter.js +0 -50
  492. package/dist/storage/LocalStorageAdapter.js.map +0 -1
  493. package/dist/storage/MediaProviderFromContainer.d.ts +0 -21
  494. package/dist/storage/MediaProviderFromContainer.d.ts.map +0 -1
  495. package/dist/storage/MediaProviderFromContainer.js +0 -79
  496. package/dist/storage/MediaProviderFromContainer.js.map +0 -1
  497. package/dist/storage/MemoryStorageAdapter.d.ts +0 -15
  498. package/dist/storage/MemoryStorageAdapter.d.ts.map +0 -1
  499. package/dist/storage/MemoryStorageAdapter.js +0 -34
  500. package/dist/storage/MemoryStorageAdapter.js.map +0 -1
  501. package/dist/storage/ScopedContentContainer.d.ts +0 -44
  502. package/dist/storage/ScopedContentContainer.d.ts.map +0 -1
  503. package/dist/storage/ScopedContentContainer.js +0 -94
  504. package/dist/storage/ScopedContentContainer.js.map +0 -1
  505. package/dist/storage/Storage.d.ts +0 -23
  506. package/dist/storage/Storage.d.ts.map +0 -1
  507. package/dist/storage/Storage.js +0 -9
  508. package/dist/storage/Storage.js.map +0 -1
  509. package/dist/storage/index.d.ts.map +0 -1
  510. package/dist/timing/index.d.ts.map +0 -1
  511. package/dist/timing/narrationTiming.d.ts +0 -54
  512. package/dist/timing/narrationTiming.d.ts.map +0 -1
  513. package/dist/timing/narrationTiming.js +0 -190
  514. package/dist/timing/narrationTiming.js.map +0 -1
  515. package/dist/timing/readingTime.d.ts +0 -54
  516. package/dist/timing/readingTime.d.ts.map +0 -1
  517. package/dist/timing/readingTime.js +0 -49
  518. package/dist/timing/readingTime.js.map +0 -1
  519. package/dist/transform/applyTransform.d.ts +0 -22
  520. package/dist/transform/applyTransform.d.ts.map +0 -1
  521. package/dist/transform/applyTransform.js +0 -68
  522. package/dist/transform/applyTransform.js.map +0 -1
  523. package/dist/transform/blockAnalyzer.d.ts +0 -48
  524. package/dist/transform/blockAnalyzer.d.ts.map +0 -1
  525. package/dist/transform/blockAnalyzer.js +0 -135
  526. package/dist/transform/blockAnalyzer.js.map +0 -1
  527. package/dist/transform/index.d.ts.map +0 -1
  528. package/dist/transform/registry.d.ts +0 -19
  529. package/dist/transform/registry.d.ts.map +0 -1
  530. package/dist/transform/registry.js +0 -41
  531. package/dist/transform/registry.js.map +0 -1
  532. package/dist/transform/styles/dataDriven.d.ts +0 -4
  533. package/dist/transform/styles/dataDriven.d.ts.map +0 -1
  534. package/dist/transform/styles/dataDriven.js +0 -15
  535. package/dist/transform/styles/dataDriven.js.map +0 -1
  536. package/dist/transform/styles/documentary.d.ts +0 -4
  537. package/dist/transform/styles/documentary.d.ts.map +0 -1
  538. package/dist/transform/styles/documentary.js +0 -15
  539. package/dist/transform/styles/documentary.js.map +0 -1
  540. package/dist/transform/styles/index.d.ts +0 -6
  541. package/dist/transform/styles/index.d.ts.map +0 -1
  542. package/dist/transform/styles/index.js +0 -6
  543. package/dist/transform/styles/index.js.map +0 -1
  544. package/dist/transform/styles/magazine.d.ts +0 -4
  545. package/dist/transform/styles/magazine.d.ts.map +0 -1
  546. package/dist/transform/styles/magazine.js +0 -15
  547. package/dist/transform/styles/magazine.js.map +0 -1
  548. package/dist/transform/styles/minimal.d.ts +0 -4
  549. package/dist/transform/styles/minimal.d.ts.map +0 -1
  550. package/dist/transform/styles/minimal.js +0 -15
  551. package/dist/transform/styles/minimal.js.map +0 -1
  552. package/dist/transform/styles/narrative.d.ts +0 -4
  553. package/dist/transform/styles/narrative.d.ts.map +0 -1
  554. package/dist/transform/styles/narrative.js +0 -15
  555. package/dist/transform/styles/narrative.js.map +0 -1
  556. package/dist/transform/templateSelector.d.ts +0 -30
  557. package/dist/transform/templateSelector.d.ts.map +0 -1
  558. package/dist/transform/templateSelector.js +0 -218
  559. package/dist/transform/templateSelector.js.map +0 -1
  560. package/dist/transform/timingAllocator.d.ts +0 -21
  561. package/dist/transform/timingAllocator.d.ts.map +0 -1
  562. package/dist/transform/timingAllocator.js +0 -111
  563. package/dist/transform/timingAllocator.js.map +0 -1
  564. package/dist/transform/types.d.ts +0 -86
  565. package/dist/transform/types.d.ts.map +0 -1
  566. package/dist/transform/types.js +0 -9
  567. package/dist/transform/types.js.map +0 -1
  568. package/dist/versions/DocumentVersionManager.d.ts +0 -31
  569. package/dist/versions/DocumentVersionManager.d.ts.map +0 -1
  570. package/dist/versions/DocumentVersionManager.js +0 -33
  571. package/dist/versions/DocumentVersionManager.js.map +0 -1
  572. package/dist/versions/index.d.ts.map +0 -1
  573. package/dist/versions/operations.d.ts +0 -44
  574. package/dist/versions/operations.d.ts.map +0 -1
  575. package/dist/versions/operations.js +0 -190
  576. package/dist/versions/operations.js.map +0 -1
  577. package/dist/versions/paths.d.ts +0 -29
  578. package/dist/versions/paths.d.ts.map +0 -1
  579. package/dist/versions/paths.js +0 -66
  580. package/dist/versions/paths.js.map +0 -1
  581. package/dist/versions/timestamp.d.ts +0 -22
  582. package/dist/versions/timestamp.d.ts.map +0 -1
  583. package/dist/versions/timestamp.js +0 -44
  584. package/dist/versions/timestamp.js.map +0 -1
  585. package/dist/versions/types.d.ts +0 -92
  586. package/dist/versions/types.d.ts.map +0 -1
  587. package/dist/versions/types.js +0 -11
  588. package/dist/versions/types.js.map +0 -1
@@ -1,447 +0,0 @@
1
- /**
2
- * Persistent Layers Expansion
3
- *
4
- * Expands persistent layer templates (solid backgrounds, gradients, overlays)
5
- * into raw Layer arrays. These layers are injected into each block based on
6
- * per-block flags (useBottomLayer, useTopLayer).
7
- *
8
- * This is shared code used by both site and efb-app doc renderers.
9
- *
10
- * Related Files:
11
- * - schemas/BlockTemplates.ts - PersistentLayerConfig types
12
- */
13
- import { isPersistentLayerTemplate } from '../../schemas/BlockTemplates.js';
14
- // ============================================
15
- // Gradient Presets
16
- // ============================================
17
- const GRADIENT_PRESETS = {
18
- 'dark-vignette': 'radial-gradient(ellipse at center, rgba(26,32,44,0.8) 0%, rgba(0,0,0,0.95) 100%)',
19
- 'radial-dark': 'radial-gradient(ellipse at center, #1a202c 0%, #000000 100%)',
20
- 'warm-sunset': 'linear-gradient(135deg, rgba(124,58,48,0.9) 0%, rgba(26,32,44,0.95) 100%)',
21
- 'cool-blue': 'linear-gradient(135deg, rgba(26,54,93,0.9) 0%, rgba(26,32,44,0.95) 100%)',
22
- 'earth-tones': 'linear-gradient(135deg, rgba(68,51,34,0.9) 0%, rgba(26,32,44,0.95) 100%)',
23
- };
24
- // ============================================
25
- // Background Layer Expansion
26
- // ============================================
27
- /**
28
- * Expand a solid background config to a Layer.
29
- */
30
- function expandSolidBackground(config) {
31
- return {
32
- type: 'shape',
33
- id: 'persistent-bg-solid',
34
- content: {
35
- shape: 'rect',
36
- fill: config.color,
37
- },
38
- position: { x: 0, y: 0, width: '100%', height: '100%' },
39
- };
40
- }
41
- /**
42
- * Expand a gradient background config to a Layer.
43
- */
44
- function expandGradientBackground(config) {
45
- const gradient = config.gradient ?? GRADIENT_PRESETS[config.preset ?? 'dark-vignette'];
46
- return {
47
- type: 'shape',
48
- id: 'persistent-bg-gradient',
49
- content: {
50
- shape: 'rect',
51
- fill: gradient,
52
- },
53
- position: { x: 0, y: 0, width: '100%', height: '100%' },
54
- };
55
- }
56
- /**
57
- * Expand an image background config to Layers.
58
- * Returns multiple layers: base image + dark overlay for readability.
59
- */
60
- function expandImageBackground(config) {
61
- const layers = [];
62
- const opacity = config.opacity ?? 0.4;
63
- // Base image layer
64
- const imageLayer = {
65
- type: 'image',
66
- id: 'persistent-bg-image',
67
- content: {
68
- src: config.src,
69
- alt: 'Background',
70
- fit: 'cover',
71
- },
72
- position: { x: 0, y: 0, width: '100%', height: '100%' },
73
- animation: config.ambientMotion
74
- ? {
75
- type: config.ambientMotion,
76
- duration: 30, // Long ambient motion
77
- }
78
- : undefined,
79
- };
80
- layers.push(imageLayer);
81
- // Add dark overlay for text readability
82
- layers.push({
83
- type: 'shape',
84
- id: 'persistent-bg-overlay',
85
- content: {
86
- shape: 'rect',
87
- fill: `rgba(0,0,0,${0.5 + (1 - opacity) * 0.3})`,
88
- },
89
- position: { x: 0, y: 0, width: '100%', height: '100%' },
90
- });
91
- return layers;
92
- }
93
- /**
94
- * Expand a pattern background config to a Layer.
95
- */
96
- function expandPatternBackground(config) {
97
- const opacity = config.opacity ?? 0.1;
98
- const color = config.color ?? `rgba(255,255,255,${opacity})`;
99
- // Pattern as SVG data URI for rect patterns
100
- // For simplicity, use a solid subtle color with reduced opacity
101
- return {
102
- type: 'shape',
103
- id: 'persistent-bg-pattern',
104
- content: {
105
- shape: 'rect',
106
- fill: color,
107
- },
108
- position: { x: 0, y: 0, width: '100%', height: '100%' },
109
- };
110
- }
111
- // ============================================
112
- // Overlay Layer Expansion
113
- // ============================================
114
- /**
115
- * Expand a title caption config to Layers.
116
- */
117
- function expandTitleCaption(config) {
118
- const layers = [];
119
- const fontSize = config.fontSize ?? 18;
120
- const hasSubtitle = !!config.subtitle;
121
- // Position calculations
122
- const isBottom = config.position.includes('bottom');
123
- const isLeft = config.position.includes('left');
124
- // Even padding around the pill (3% from edges)
125
- const pad = 3; // percent
126
- // Pill dimensions — taller when subtitle present
127
- const pillHeight = hasSubtitle ? '15%' : '7%';
128
- // Position above player controls
129
- const bgYPos = isBottom ? (hasSubtitle ? '78%' : '84%') : '2%';
130
- const bgXPos = isLeft ? `${pad}%` : '68%';
131
- // Thumbnail sizing — use different width/height to appear square in 16:9 viewport
132
- // In 16:9, 6% of width ≈ 10.7% of height in pixels, so use ~6%w x 10%h for visual square
133
- const thumbW = hasSubtitle ? '6%' : '5%';
134
- const thumbH = hasSubtitle ? '10%' : '5%';
135
- const thumbPad = 1.5; // padding inside pill around thumbnail (percent)
136
- // Text X offset: after thumbnail + padding, or just pill padding
137
- const textX = config.showThumbnail && isLeft
138
- ? `${pad + thumbPad + 6 + thumbPad}%` // pill edge + thumb padding + thumb width + gap
139
- : `${pad + thumbPad}%`;
140
- // Text area width: pill width minus thumbnail area minus padding
141
- const textWidth = config.showThumbnail
142
- ? '19%' // narrower when thumbnail takes space
143
- : '24%';
144
- // Title Y: top of text area inside pill
145
- const titleYPos = isBottom ? (hasSubtitle ? '80%' : '86%') : '4%';
146
- // Background pill for readability
147
- layers.push({
148
- type: 'shape',
149
- id: 'persistent-caption-bg',
150
- content: {
151
- shape: 'rect',
152
- fill: 'rgba(0,0,0,0.6)',
153
- borderRadius: 8,
154
- },
155
- position: {
156
- x: bgXPos,
157
- y: bgYPos,
158
- width: config.showThumbnail ? '30%' : '28%',
159
- height: pillHeight,
160
- },
161
- });
162
- // Thumbnail if configured
163
- if (config.showThumbnail && config.thumbnailSrc) {
164
- const thumbX = isLeft ? `${pad + thumbPad}%` : '93%';
165
- // Center thumbnail vertically in pill
166
- const thumbY = isBottom ? (hasSubtitle ? `${78 + thumbPad}%` : '85%') : '3%';
167
- layers.push({
168
- type: 'image',
169
- id: 'persistent-caption-thumb',
170
- content: {
171
- src: config.thumbnailSrc,
172
- alt: 'Article thumbnail',
173
- fit: 'cover',
174
- },
175
- position: {
176
- x: thumbX,
177
- y: thumbY,
178
- width: thumbW,
179
- height: thumbH,
180
- },
181
- });
182
- }
183
- // Title text — single line, cropped with ellipsis
184
- layers.push({
185
- type: 'text',
186
- id: 'persistent-caption-title',
187
- content: {
188
- text: config.title,
189
- style: {
190
- fontSize,
191
- fontWeight: 'bold',
192
- color: 'rgba(255,255,255,0.9)',
193
- textAlign: isLeft ? 'left' : 'right',
194
- maxLines: 1,
195
- },
196
- },
197
- position: {
198
- x: textX,
199
- y: titleYPos,
200
- width: textWidth,
201
- },
202
- });
203
- // Subtitle text (e.g., short URL)
204
- if (hasSubtitle) {
205
- const subtitleYPos = isBottom ? '85.5%' : '8%';
206
- layers.push({
207
- type: 'text',
208
- id: 'persistent-caption-subtitle',
209
- content: {
210
- text: config.subtitle,
211
- style: {
212
- fontSize: 18,
213
- fontWeight: 'normal',
214
- color: 'rgba(255,255,255,0.55)',
215
- textAlign: isLeft ? 'left' : 'right',
216
- },
217
- },
218
- position: {
219
- x: textX,
220
- y: subtitleYPos,
221
- width: textWidth,
222
- },
223
- });
224
- }
225
- return layers;
226
- }
227
- /**
228
- * Expand a corner branding config to a Layer.
229
- */
230
- function expandCornerBranding(config) {
231
- const isBottom = config.position.includes('bottom');
232
- const isLeft = config.position.includes('left');
233
- const xPos = isLeft ? '3%' : '90%';
234
- const yPos = isBottom ? '94%' : '3%';
235
- if (config.isImage) {
236
- return {
237
- type: 'image',
238
- id: 'persistent-branding',
239
- content: {
240
- src: config.content,
241
- alt: 'Branding',
242
- fit: 'contain',
243
- },
244
- position: {
245
- x: xPos,
246
- y: yPos,
247
- width: '8%',
248
- height: '4%',
249
- },
250
- };
251
- }
252
- return {
253
- type: 'text',
254
- id: 'persistent-branding',
255
- content: {
256
- text: config.content,
257
- style: {
258
- fontSize: 14,
259
- fontWeight: 'normal',
260
- color: 'rgba(255,255,255,0.6)',
261
- },
262
- },
263
- position: {
264
- x: xPos,
265
- y: yPos,
266
- },
267
- };
268
- }
269
- /**
270
- * Expand a progress indicator config to a Layer.
271
- * Note: Progress requires block context, returns placeholder bar.
272
- */
273
- function expandProgressIndicator(config) {
274
- const color = config.color ?? 'rgba(255,255,255,0.3)';
275
- const y = config.position === 'top' ? '1%' : '98%';
276
- // Simple bar style - actual progress would need to be set per-block
277
- return {
278
- type: 'shape',
279
- id: 'persistent-progress',
280
- content: {
281
- shape: 'rect',
282
- fill: color,
283
- borderRadius: 2,
284
- },
285
- position: {
286
- x: '5%',
287
- y,
288
- width: '90%',
289
- height: '0.5%',
290
- },
291
- };
292
- }
293
- // ============================================
294
- // Main Expansion Function
295
- // ============================================
296
- /**
297
- * Expand a single persistent layer (template or raw) to raw Layer(s).
298
- */
299
- export function expandPersistentLayer(layer) {
300
- // If already a raw Layer, return as-is
301
- if (!isPersistentLayerTemplate(layer)) {
302
- return [layer];
303
- }
304
- const template = layer;
305
- const config = template.config;
306
- switch (config.type) {
307
- case 'solidBackground':
308
- return [expandSolidBackground(config)];
309
- case 'gradientBackground':
310
- return [expandGradientBackground(config)];
311
- case 'imageBackground':
312
- return expandImageBackground(config);
313
- case 'patternBackground':
314
- return [expandPatternBackground(config)];
315
- case 'titleCaption':
316
- return expandTitleCaption(config);
317
- case 'cornerBranding':
318
- return [expandCornerBranding(config)];
319
- case 'progressIndicator':
320
- return [expandProgressIndicator(config)];
321
- default:
322
- console.warn('Unknown persistent layer template:', config.type);
323
- return [];
324
- }
325
- }
326
- /**
327
- * Expand all persistent layers in a config to raw Layer arrays.
328
- */
329
- export function expandPersistentLayers(layers) {
330
- if (!layers || layers.length === 0) {
331
- return [];
332
- }
333
- // Use reduce+concat instead of flatMap for Coherent GT compatibility (ES2017)
334
- return layers.reduce((acc, layer) => acc.concat(expandPersistentLayer(layer)), []);
335
- }
336
- /**
337
- * Get a PersistentLayerConfig from a style preset.
338
- *
339
- * @param preset - Style preset name
340
- * @param articleTitle - Article title for title caption
341
- * @param heroSrc - Optional hero image for cinematic style
342
- */
343
- export function getDocStyleConfig(preset, articleTitle, heroSrc, subtitle) {
344
- switch (preset) {
345
- case 'minimal':
346
- return {};
347
- case 'documentary':
348
- return {
349
- bottomLayers: [
350
- {
351
- template: 'gradientBackground',
352
- config: { type: 'gradientBackground', preset: 'dark-vignette' },
353
- },
354
- ],
355
- topLayers: [
356
- {
357
- template: 'titleCaption',
358
- config: {
359
- type: 'titleCaption',
360
- title: articleTitle,
361
- subtitle,
362
- position: 'bottom-left',
363
- fontSize: 24,
364
- showThumbnail: !!heroSrc,
365
- thumbnailSrc: heroSrc,
366
- },
367
- },
368
- ],
369
- };
370
- case 'branded':
371
- return {
372
- bottomLayers: [
373
- {
374
- template: 'gradientBackground',
375
- config: { type: 'gradientBackground', preset: 'cool-blue' },
376
- },
377
- ],
378
- topLayers: [
379
- {
380
- template: 'titleCaption',
381
- config: {
382
- type: 'titleCaption',
383
- title: articleTitle,
384
- subtitle,
385
- position: 'bottom-left',
386
- fontSize: 26,
387
- showThumbnail: !!heroSrc,
388
- thumbnailSrc: heroSrc,
389
- },
390
- },
391
- ],
392
- };
393
- case 'cinematic':
394
- return {
395
- bottomLayers: heroSrc
396
- ? [
397
- {
398
- template: 'imageBackground',
399
- config: {
400
- type: 'imageBackground',
401
- src: heroSrc,
402
- blur: 12,
403
- opacity: 0.3,
404
- ambientMotion: 'zoomIn',
405
- },
406
- },
407
- ]
408
- : [
409
- {
410
- template: 'gradientBackground',
411
- config: { type: 'gradientBackground', preset: 'radial-dark' },
412
- },
413
- ],
414
- topLayers: [
415
- {
416
- template: 'titleCaption',
417
- config: {
418
- type: 'titleCaption',
419
- title: articleTitle,
420
- subtitle,
421
- position: 'bottom-right',
422
- fontSize: 22,
423
- },
424
- },
425
- ],
426
- };
427
- case 'clean':
428
- return {
429
- bottomLayers: [
430
- {
431
- template: 'solidBackground',
432
- config: { type: 'solidBackground', color: '#1a202c' },
433
- },
434
- ],
435
- };
436
- default:
437
- return {};
438
- }
439
- }
440
- /**
441
- * Get persistent layers from a Theme. Returns the theme's baked-in
442
- * persistentLayers config, or an empty config when the theme has none.
443
- */
444
- export function getPersistentLayersFromTheme(theme) {
445
- return theme.persistentLayers ?? {};
446
- }
447
- //# sourceMappingURL=persistentLayers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persistentLayers.js","sourceRoot":"","sources":["../../../src/doc/templates/persistentLayers.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Photo Grid Template
3
- *
4
- * Displays 2-4 images in a tiled layout for visual variety.
5
- * Layout adapts based on image count and viewport orientation:
6
- *
7
- * Landscape:
8
- * - 2 images: side-by-side 50/50
9
- * - 3 images: one large left (60%) + two stacked right
10
- * - 4 images: 2x2 grid
11
- *
12
- * Portrait (9:16): images stack horizontally (top/bottom) instead of
13
- * side-by-side, giving each image full width on narrow screens.
14
- *
15
- * This is shared code used by both site and efb-app doc renderers.
16
- */
17
- import type { Layer } from '../../schemas/Doc.js';
18
- import type { PhotoGridInput, TemplateContext } from '../../schemas/BlockTemplates.js';
19
- export declare function photoGrid(input: PhotoGridInput, context: TemplateContext): Layer[];
20
- //# sourceMappingURL=photoGrid.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"photoGrid.d.ts","sourceRoot":"","sources":["../../../src/doc/templates/photoGrid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAQvF,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK,EAAE,CAyHlF"}
@@ -1,175 +0,0 @@
1
- /**
2
- * Photo Grid Template
3
- *
4
- * Displays 2-4 images in a tiled layout for visual variety.
5
- * Layout adapts based on image count and viewport orientation:
6
- *
7
- * Landscape:
8
- * - 2 images: side-by-side 50/50
9
- * - 3 images: one large left (60%) + two stacked right
10
- * - 4 images: 2x2 grid
11
- *
12
- * Portrait (9:16): images stack horizontally (top/bottom) instead of
13
- * side-by-side, giving each image full width on narrow screens.
14
- *
15
- * This is shared code used by both site and efb-app doc renderers.
16
- */
17
- import { scaledFontSize } from '../../schemas/BlockTemplates.js';
18
- import { getThemeFont } from '../utils/themeUtils.js';
19
- import { cleanCaption } from './captionUtils.js';
20
- /** Gap between images as percentage */
21
- const GAP = 0.5;
22
- export function photoGrid(input, context) {
23
- const { images, caption: rawCaption, ambientMotion } = input;
24
- // Guard: images array is required
25
- if (!images || images.length === 0)
26
- return [];
27
- const caption = rawCaption ? cleanCaption(rawCaption) : rawCaption;
28
- const { theme, layout } = context;
29
- const layers = [
30
- // Black background (visible in gaps between images)
31
- {
32
- type: 'shape',
33
- id: 'bg',
34
- content: { shape: 'rect', fill: '#000000' },
35
- position: { x: 0, y: 0, width: '100%', height: '100%' },
36
- },
37
- ];
38
- // Reserve bottom space for caption — more room in landscape for larger text
39
- const captionHeight = caption ? (layout.stackColumns ? 18 : 22) : 0;
40
- const gridHeight = 100 - captionHeight;
41
- // Generate image positions based on count; stack vertically in portrait
42
- const positions = getGridPositions(images.length, gridHeight, layout.stackColumns);
43
- const altFontSize = scaledFontSize(24, context, false);
44
- for (let i = 0; i < Math.min(images.length, 4); i++) {
45
- const img = images[i];
46
- const pos = positions[i];
47
- // Placeholder behind image (visible if image fails to load)
48
- layers.push({
49
- type: 'shape',
50
- id: `grid-placeholder-${i}`,
51
- content: { shape: 'rect', fill: theme.colors.background },
52
- position: { x: `${pos.x}%`, y: `${pos.y}%`, width: `${pos.w}%`, height: `${pos.h}%` },
53
- });
54
- // Alt-text label on placeholder
55
- if (img.alt) {
56
- layers.push({
57
- type: 'text',
58
- id: `grid-alt-${i}`,
59
- content: {
60
- text: img.alt,
61
- style: {
62
- fontSize: altFontSize,
63
- fontFamily: getThemeFont(context, 'body'),
64
- color: theme.colors.textMuted,
65
- textAlign: 'center',
66
- },
67
- },
68
- position: { x: `${pos.x + pos.w / 2}%`, y: `${pos.y + pos.h / 2}%`, anchor: 'center' },
69
- });
70
- }
71
- // Image layer (covers placeholder when loaded)
72
- layers.push({
73
- type: 'image',
74
- id: `grid-img-${i}`,
75
- content: {
76
- src: img.src,
77
- alt: img.alt,
78
- fit: 'cover',
79
- credit: img.credit,
80
- license: img.license,
81
- },
82
- position: {
83
- x: `${pos.x}%`,
84
- y: `${pos.y}%`,
85
- width: `${pos.w}%`,
86
- height: `${pos.h}%`,
87
- },
88
- // Apply ambient motion to the first (largest) image only
89
- animation: i === 0 && ambientMotion
90
- ? { type: ambientMotion, duration: 15 }
91
- : { type: 'fadeIn', duration: 1, delay: 0.2 * i },
92
- });
93
- }
94
- // Caption with gradient overlay
95
- if (caption) {
96
- const captionFontSize = scaledFontSize(layout.stackColumns ? 28 : 40, context, false);
97
- layers.push({
98
- type: 'shape',
99
- id: 'caption-bg',
100
- content: {
101
- shape: 'rect',
102
- fill: 'linear-gradient(transparent, rgba(0,0,0,0.8))',
103
- },
104
- position: { x: 0, y: `${gridHeight - 4}%`, width: '100%', height: `${captionHeight + 4}%` },
105
- });
106
- layers.push({
107
- type: 'text',
108
- id: 'caption',
109
- content: {
110
- text: caption,
111
- style: {
112
- fontSize: captionFontSize,
113
- fontFamily: getThemeFont(context, 'body'),
114
- color: theme.colors.text,
115
- textAlign: 'center',
116
- shadow: true,
117
- },
118
- },
119
- position: {
120
- x: '50%',
121
- y: `${gridHeight + (layout.stackColumns ? captionHeight / 2 : captionHeight * 0.3)}%`,
122
- anchor: 'center',
123
- width: '90%',
124
- },
125
- animation: { type: 'fadeIn', duration: 1, delay: 0.5 },
126
- });
127
- }
128
- return layers;
129
- }
130
- function getGridPositions(count, gridHeight, stacked) {
131
- const halfW = 50 - GAP / 2;
132
- const halfH = gridHeight / 2 - GAP / 2;
133
- switch (count) {
134
- case 2:
135
- if (stacked) {
136
- // Portrait: stack top/bottom
137
- return [
138
- { x: 0, y: 0, w: 100, h: halfH },
139
- { x: 0, y: gridHeight / 2 + GAP / 2, w: 100, h: halfH },
140
- ];
141
- }
142
- return [
143
- { x: 0, y: 0, w: halfW, h: gridHeight },
144
- { x: 50 + GAP / 2, y: 0, w: halfW, h: gridHeight },
145
- ];
146
- case 3: {
147
- if (stacked) {
148
- // Portrait: stack all three vertically
149
- const thirdH = gridHeight / 3 - (GAP * 2) / 3;
150
- return [
151
- { x: 0, y: 0, w: 100, h: thirdH },
152
- { x: 0, y: gridHeight / 3 + GAP / 3, w: 100, h: thirdH },
153
- { x: 0, y: (gridHeight * 2) / 3 + (GAP * 2) / 3, w: 100, h: thirdH },
154
- ];
155
- }
156
- const leftW = 60 - GAP / 2;
157
- const rightW = 40 - GAP / 2;
158
- return [
159
- { x: 0, y: 0, w: leftW, h: gridHeight },
160
- { x: 60 + GAP / 2, y: 0, w: rightW, h: halfH },
161
- { x: 60 + GAP / 2, y: gridHeight / 2 + GAP / 2, w: rightW, h: halfH },
162
- ];
163
- }
164
- case 4:
165
- default:
166
- // 2x2 grid works well in both orientations
167
- return [
168
- { x: 0, y: 0, w: halfW, h: halfH },
169
- { x: 50 + GAP / 2, y: 0, w: halfW, h: halfH },
170
- { x: 0, y: gridHeight / 2 + GAP / 2, w: halfW, h: halfH },
171
- { x: 50 + GAP / 2, y: gridHeight / 2 + GAP / 2, w: halfW, h: halfH },
172
- ];
173
- }
174
- }
175
- //# sourceMappingURL=photoGrid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"photoGrid.js","sourceRoot":"","sources":["../../../src/doc/templates/photoGrid.ts"],"names":[],"mappings":"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"}