@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
@@ -1,715 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { parseMarkdown, stringifyMarkdown, parseHtmlToNodes, stringifyHtmlNodes, getChildren, walkMarkdownTree, findNodesByType, extractPlainText, countNodes, createDocument, parseFrontmatter, } from '../markdown/index';
3
- // ============================================
4
- // Helper: strip positions for cleaner assertions
5
- // ============================================
6
- function stripPositions(obj) {
7
- if (obj === null || obj === undefined)
8
- return obj;
9
- if (typeof obj !== 'object')
10
- return obj;
11
- if (Array.isArray(obj))
12
- return obj.map(stripPositions);
13
- const result = {};
14
- for (const [key, value] of Object.entries(obj)) {
15
- if (key === 'position')
16
- continue;
17
- result[key] = stripPositions(value);
18
- }
19
- return result;
20
- }
21
- /**
22
- * Parse, strip positions, and return the tree.
23
- */
24
- function parse(md) {
25
- return stripPositions(parseMarkdown(md));
26
- }
27
- // ============================================
28
- // CommonMark Basics
29
- // ============================================
30
- describe('parseMarkdown / stringifyMarkdown', () => {
31
- describe('CommonMark basics', () => {
32
- it('parses headings', () => {
33
- const doc = parse('# H1\n\n## H2\n\n### H3');
34
- expect(doc.children).toHaveLength(3);
35
- const h1 = doc.children[0];
36
- expect(h1.type).toBe('heading');
37
- expect(h1.depth).toBe(1);
38
- expect(h1.children[0]).toEqual({ type: 'text', value: 'H1' });
39
- const h2 = doc.children[1];
40
- expect(h2.depth).toBe(2);
41
- const h3 = doc.children[2];
42
- expect(h3.depth).toBe(3);
43
- });
44
- it('parses paragraphs with inline formatting', () => {
45
- const doc = parse('Hello **bold** and *italic* text');
46
- const p = doc.children[0];
47
- expect(p.type).toBe('paragraph');
48
- expect(p.children).toHaveLength(5);
49
- expect(p.children[0]).toEqual({ type: 'text', value: 'Hello ' });
50
- expect(p.children[1]).toEqual({
51
- type: 'strong',
52
- children: [{ type: 'text', value: 'bold' }],
53
- });
54
- expect(p.children[2]).toEqual({ type: 'text', value: ' and ' });
55
- expect(p.children[3]).toEqual({
56
- type: 'emphasis',
57
- children: [{ type: 'text', value: 'italic' }],
58
- });
59
- expect(p.children[4]).toEqual({ type: 'text', value: ' text' });
60
- });
61
- it('parses unordered lists', () => {
62
- const doc = parse('- Item 1\n- Item 2\n- Item 3');
63
- const list = doc.children[0];
64
- expect(list.type).toBe('list');
65
- expect(list.ordered).toBe(false);
66
- expect(list.children).toHaveLength(3);
67
- const item = list.children[0];
68
- expect(item.type).toBe('listItem');
69
- const itemP = item.children[0];
70
- expect(itemP.children[0]).toEqual({ type: 'text', value: 'Item 1' });
71
- });
72
- it('parses ordered lists', () => {
73
- const doc = parse('1. First\n2. Second\n3. Third');
74
- const list = doc.children[0];
75
- expect(list.ordered).toBe(true);
76
- expect(list.start).toBe(1);
77
- expect(list.children).toHaveLength(3);
78
- });
79
- it('parses code blocks', () => {
80
- const doc = parse('```typescript\nconst x = 1;\n```');
81
- const code = doc.children[0];
82
- expect(code.type).toBe('code');
83
- expect(code.lang).toBe('typescript');
84
- expect(code.value).toBe('const x = 1;');
85
- });
86
- it('parses blockquotes', () => {
87
- const doc = parse('> This is a quote\n>\n> With two paragraphs');
88
- const bq = doc.children[0];
89
- expect(bq.type).toBe('blockquote');
90
- expect(bq.children).toHaveLength(2);
91
- });
92
- it('parses inline code', () => {
93
- const doc = parse('Use `console.log()` for debugging');
94
- const p = doc.children[0];
95
- expect(p.children[1]).toEqual({ type: 'inlineCode', value: 'console.log()' });
96
- });
97
- it('parses links', () => {
98
- const doc = parse('[Click here](https://example.com "Title")');
99
- const p = doc.children[0];
100
- const link = p.children[0];
101
- expect(link.type).toBe('link');
102
- expect(link.url).toBe('https://example.com');
103
- expect(link.title).toBe('Title');
104
- expect(link.children[0]).toEqual({ type: 'text', value: 'Click here' });
105
- });
106
- it('parses mentions from @[Name](scheme:id)', () => {
107
- const doc = parse('Hey @[Leo](gezel:leo), take a look.');
108
- const p = doc.children[0];
109
- const text0 = p.children[0];
110
- expect(text0).toEqual({ type: 'text', value: 'Hey ' });
111
- const mention = p.children[1];
112
- expect(mention).toEqual({
113
- type: 'mention',
114
- targetKind: 'gezel',
115
- targetId: 'leo',
116
- displayName: 'Leo',
117
- });
118
- const text2 = p.children[2];
119
- expect(text2.value).toBe(', take a look.');
120
- });
121
- it('round-trips a mention back to markdown', () => {
122
- // remark-stringify escapes `:` in link URLs that follow an `@` (to
123
- // disambiguate from autolink syntax). The escape is idempotent —
124
- // re-parsing `\:` produces the unescaped url, so the round-trip
125
- // preserves the mention semantically even if the raw text changes
126
- // on the first pass.
127
- const input = 'Hey @[Leo](gezel:leo), ping @[Tess](gezel:tess) too.\n';
128
- const once = stringifyMarkdown(parseMarkdown(input));
129
- const twice = stringifyMarkdown(parseMarkdown(once));
130
- expect(twice).toBe(once);
131
- // Semantics are preserved: re-parsing yields mentions.
132
- const doc = parseMarkdown(once);
133
- const p = doc.children[0];
134
- const m1 = p.children.find((c) => c.type === 'mention');
135
- expect(m1.targetKind).toBe('gezel');
136
- expect(m1.targetId).toBe('leo');
137
- expect(m1.displayName).toBe('Leo');
138
- });
139
- it('does not collapse @ + link when the url has no scheme', () => {
140
- const doc = parse('Cost @[100]($100)');
141
- const p = doc.children[0];
142
- // "$100" doesn't match scheme:id because $ isn't a scheme character
143
- // → stays as text("Cost @") + link
144
- expect(p.children[1].type).toBe('link');
145
- });
146
- it('parses images', () => {
147
- const doc = parse('![Alt text](image.png "Image title")');
148
- const p = doc.children[0];
149
- const img = p.children[0];
150
- expect(img.type).toBe('image');
151
- expect(img.url).toBe('image.png');
152
- expect(img.alt).toBe('Alt text');
153
- expect(img.title).toBe('Image title');
154
- });
155
- it('parses thematic breaks', () => {
156
- const doc = parse('Before\n\n---\n\nAfter');
157
- expect(doc.children).toHaveLength(3);
158
- expect(doc.children[1].type).toBe('thematicBreak');
159
- });
160
- it('parses hard line breaks', () => {
161
- const doc = parse('Line one \nLine two');
162
- const p = doc.children[0];
163
- expect(p.children).toHaveLength(3);
164
- expect(p.children[1].type).toBe('break');
165
- });
166
- });
167
- // ============================================
168
- // GFM Extensions
169
- // ============================================
170
- describe('GFM extensions', () => {
171
- it('parses tables', () => {
172
- const md = '| Name | Age |\n| --- | --- |\n| Alice | 30 |\n| Bob | 25 |';
173
- const doc = parse(md);
174
- const table = doc.children[0];
175
- expect(table.type).toBe('table');
176
- expect(table.children).toHaveLength(3); // header + 2 data rows
177
- // Header row
178
- const headerRow = table.children[0];
179
- expect(headerRow.children[0].isHeader).toBe(true);
180
- expect(headerRow.children[0].children[0]).toEqual({ type: 'text', value: 'Name' });
181
- // Data row
182
- const dataRow = table.children[1];
183
- expect(dataRow.children[0].isHeader).toBeUndefined();
184
- });
185
- it('parses strikethrough', () => {
186
- const doc = parse('This is ~~deleted~~ text');
187
- const p = doc.children[0];
188
- const del = p.children[1];
189
- expect(del.type).toBe('delete');
190
- expect(del.children[0]).toEqual({ type: 'text', value: 'deleted' });
191
- });
192
- it('parses task lists', () => {
193
- const doc = parse('- [x] Done\n- [ ] Todo\n- Regular');
194
- const list = doc.children[0];
195
- expect(list.children[0].checked).toBe(true);
196
- expect(list.children[1].checked).toBe(false);
197
- // Regular item has no checked property
198
- expect(list.children[2].checked).toBeUndefined();
199
- });
200
- it('parses footnotes', () => {
201
- const md = 'Text with a footnote[^1].\n\n[^1]: This is the footnote content.';
202
- const doc = parse(md);
203
- // Find footnote reference in the paragraph
204
- const p = doc.children[0];
205
- const ref = p.children.find((c) => c.type === 'footnoteReference');
206
- expect(ref).toBeDefined();
207
- expect(ref.identifier).toBe('1');
208
- // Find footnote definition
209
- const fnDef = doc.children.find((c) => c.type === 'footnoteDefinition');
210
- expect(fnDef).toBeDefined();
211
- expect(fnDef.identifier).toBe('1');
212
- });
213
- });
214
- // ============================================
215
- // Math Extensions
216
- // ============================================
217
- describe('Math extensions', () => {
218
- it('parses inline math', () => {
219
- const doc = parse('The equation $E = mc^2$ is famous');
220
- const p = doc.children[0];
221
- const math = p.children.find((c) => c.type === 'inlineMath');
222
- expect(math).toBeDefined();
223
- expect(math.value).toBe('E = mc^2');
224
- });
225
- it('parses display math blocks', () => {
226
- const doc = parse('$$\nx = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}\n$$');
227
- const math = doc.children[0];
228
- expect(math.type).toBe('math');
229
- expect(math.value).toContain('\\frac{-b');
230
- });
231
- });
232
- // ============================================
233
- // Link/Image References
234
- // ============================================
235
- describe('Reference links', () => {
236
- it('parses link reference definitions', () => {
237
- const md = '[example]: https://example.com "Example"\n\nSee [example].';
238
- const doc = parse(md);
239
- const def = doc.children.find((c) => c.type === 'definition');
240
- expect(def).toBeDefined();
241
- expect(def.identifier).toBe('example');
242
- expect(def.url).toBe('https://example.com');
243
- expect(def.title).toBe('Example');
244
- });
245
- it('parses link references', () => {
246
- const md = '[Click here][ref]\n\n[ref]: https://example.com';
247
- const doc = parse(md);
248
- const p = doc.children[0];
249
- const ref = p.children[0];
250
- expect(ref.type).toBe('linkReference');
251
- expect(ref.identifier).toBe('ref');
252
- expect(ref.referenceType).toBe('full');
253
- });
254
- it('parses image references', () => {
255
- const md = '![Alt text][img]\n\n[img]: image.png';
256
- const doc = parse(md);
257
- const p = doc.children[0];
258
- const ref = p.children[0];
259
- expect(ref.type).toBe('imageReference');
260
- expect(ref.identifier).toBe('img');
261
- });
262
- });
263
- // ============================================
264
- // HTML Handling
265
- // ============================================
266
- describe('HTML handling', () => {
267
- it('parses block-level HTML', () => {
268
- const doc = parse('<div class="container">\n <p>Hello</p>\n</div>');
269
- const html = doc.children[0];
270
- expect(html.type).toBe('htmlBlock');
271
- expect(html.rawHtml).toContain('<div');
272
- expect(html.htmlChildren.length).toBeGreaterThan(0);
273
- });
274
- it('parses inline HTML', () => {
275
- const doc = parse('Text with <em>emphasis</em> inline');
276
- const p = doc.children[0];
277
- const htmlNodes = p.children.filter((c) => c.type === 'htmlInline');
278
- expect(htmlNodes.length).toBeGreaterThan(0);
279
- });
280
- it('preserves rawHtml for round-tripping', () => {
281
- const input = '<div class="test">content</div>';
282
- const doc = parse(input);
283
- const html = doc.children[0];
284
- expect(html.rawHtml).toBe(input);
285
- });
286
- });
287
- // ============================================
288
- // Nested Structures
289
- // ============================================
290
- describe('Nested structures', () => {
291
- it('handles blockquote containing list', () => {
292
- const md = '> - Item 1\n> - Item 2';
293
- const doc = parse(md);
294
- const bq = doc.children[0];
295
- expect(bq.type).toBe('blockquote');
296
- const list = bq.children[0];
297
- expect(list.type).toBe('list');
298
- expect(list.children).toHaveLength(2);
299
- });
300
- it('handles nested lists', () => {
301
- const md = '- Outer\n - Inner 1\n - Inner 2';
302
- const doc = parse(md);
303
- const outerList = doc.children[0];
304
- const firstItem = outerList.children[0];
305
- // First item should have a paragraph and a nested list
306
- expect(firstItem.children.length).toBeGreaterThanOrEqual(2);
307
- const nestedList = firstItem.children.find((c) => c.type === 'list');
308
- expect(nestedList).toBeDefined();
309
- expect(nestedList.children).toHaveLength(2);
310
- });
311
- it('handles emphasis inside links', () => {
312
- const md = '[**Bold link**](https://example.com)';
313
- const doc = parse(md);
314
- const p = doc.children[0];
315
- const link = p.children[0];
316
- expect(link.type).toBe('link');
317
- expect(link.children[0].type).toBe('strong');
318
- });
319
- });
320
- // ============================================
321
- // Round-Trip Tests
322
- // ============================================
323
- describe('Round-trip (parse → stringify → parse)', () => {
324
- function roundTrip(md) {
325
- const doc1 = parseMarkdown(md);
326
- const output = stringifyMarkdown(doc1);
327
- const doc2 = parseMarkdown(output);
328
- // Strip positions before comparing (positions will differ between parse runs)
329
- expect(stripPositions(doc2)).toEqual(stripPositions(doc1));
330
- }
331
- it('round-trips headings', () => {
332
- roundTrip('# Heading 1\n\n## Heading 2\n\n### Heading 3\n');
333
- });
334
- it('round-trips paragraphs with inline formatting', () => {
335
- roundTrip('Hello **bold** and *italic* text\n');
336
- });
337
- it('round-trips unordered lists', () => {
338
- roundTrip('- Item 1\n- Item 2\n- Item 3\n');
339
- });
340
- it('round-trips ordered lists', () => {
341
- roundTrip('1. First\n2. Second\n3. Third\n');
342
- });
343
- it('round-trips code blocks', () => {
344
- roundTrip('```js\nconst x = 1;\n```\n');
345
- });
346
- it('round-trips blockquotes', () => {
347
- roundTrip('> A quote\n>\n> Second paragraph\n');
348
- });
349
- it('round-trips links and images', () => {
350
- roundTrip('[Link](https://example.com)\n');
351
- roundTrip('![Alt](image.png)\n');
352
- });
353
- it('round-trips thematic breaks', () => {
354
- roundTrip('---\n');
355
- });
356
- it('round-trips tables', () => {
357
- roundTrip('| A | B |\n| - | - |\n| 1 | 2 |\n');
358
- });
359
- it('round-trips task lists', () => {
360
- roundTrip('- [x] Done\n- [ ] Todo\n');
361
- });
362
- it('round-trips inline math', () => {
363
- roundTrip('The formula $E = mc^2$ is famous.\n');
364
- });
365
- it('round-trips display math', () => {
366
- roundTrip('$$\nx^2 + y^2 = z^2\n$$\n');
367
- });
368
- it('round-trips strikethrough', () => {
369
- roundTrip('This is ~~deleted~~ text.\n');
370
- });
371
- });
372
- // ============================================
373
- // Edge Cases
374
- // ============================================
375
- describe('Edge cases', () => {
376
- it('handles empty document', () => {
377
- const doc = parse('');
378
- expect(doc.type).toBe('document');
379
- expect(doc.children).toHaveLength(0);
380
- });
381
- it('handles single text paragraph', () => {
382
- const doc = parse('Hello');
383
- expect(doc.children).toHaveLength(1);
384
- const p = doc.children[0];
385
- expect(p.type).toBe('paragraph');
386
- expect(p.children[0]).toEqual({ type: 'text', value: 'Hello' });
387
- });
388
- it('handles deeply nested blockquotes', () => {
389
- const doc = parse('> > > Deep');
390
- expect(doc.children[0].type).toBe('blockquote');
391
- const bq1 = doc.children[0];
392
- const bq2 = bq1.children[0];
393
- const bq3 = bq2.children[0];
394
- expect(bq3.type).toBe('blockquote');
395
- });
396
- it('preserves source positions when parsing', () => {
397
- const doc = parseMarkdown('# Hello\n\nWorld');
398
- expect(doc.position).toBeDefined();
399
- expect(doc.children[0].position).toBeDefined();
400
- expect(doc.children[0].position.start.line).toBe(1);
401
- expect(doc.children[1].position.start.line).toBe(3);
402
- });
403
- it('handles parseHtml: false option', () => {
404
- const doc = parseMarkdown('<div>content</div>', { parseHtml: false });
405
- const html = doc.children[0];
406
- expect(html.rawHtml).toBe('<div>content</div>');
407
- expect(html.htmlChildren).toEqual([]);
408
- });
409
- });
410
- });
411
- // ============================================
412
- // HTML Sub-DOM Tests
413
- // ============================================
414
- describe('HTML sub-DOM (parseHtmlToNodes / stringifyHtmlNodes)', () => {
415
- it('parses a simple element', () => {
416
- const nodes = parseHtmlToNodes('<b>bold</b>');
417
- expect(nodes).toHaveLength(1);
418
- expect(nodes[0].type).toBe('htmlElement');
419
- const el = nodes[0];
420
- expect(el.tagName).toBe('b');
421
- expect(el.children).toHaveLength(1);
422
- expect(el.children[0]).toEqual({ type: 'htmlText', value: 'bold' });
423
- });
424
- it('parses attributes', () => {
425
- const nodes = parseHtmlToNodes('<div class="foo" id="bar">content</div>');
426
- const el = nodes[0];
427
- expect(el.attributes.class).toBe('foo');
428
- expect(el.attributes.id).toBe('bar');
429
- });
430
- it('handles self-closing elements', () => {
431
- const nodes = parseHtmlToNodes('<br>');
432
- const el = nodes[0];
433
- expect(el.tagName).toBe('br');
434
- expect(el.selfClosing).toBe(true);
435
- });
436
- it('handles nested elements', () => {
437
- const nodes = parseHtmlToNodes('<div><span>inner</span></div>');
438
- const outer = nodes[0];
439
- expect(outer.tagName).toBe('div');
440
- const inner = outer.children[0];
441
- expect(inner.tagName).toBe('span');
442
- expect(inner.children[0]).toEqual({ type: 'htmlText', value: 'inner' });
443
- });
444
- it('handles empty input', () => {
445
- expect(parseHtmlToNodes('')).toEqual([]);
446
- expect(parseHtmlToNodes(' ')).toEqual([]);
447
- });
448
- it('stringifies nodes back to HTML', () => {
449
- const nodes = parseHtmlToNodes('<b>bold</b>');
450
- const html = stringifyHtmlNodes(nodes);
451
- expect(html).toBe('<b>bold</b>');
452
- });
453
- it('stringifies void elements', () => {
454
- const nodes = parseHtmlToNodes('<br>');
455
- const html = stringifyHtmlNodes(nodes);
456
- expect(html).toBe('<br>');
457
- });
458
- });
459
- // ============================================
460
- // Tree Utility Tests
461
- // ============================================
462
- describe('Tree utilities', () => {
463
- const doc = {
464
- type: 'document',
465
- children: [
466
- {
467
- type: 'heading',
468
- depth: 1,
469
- children: [{ type: 'text', value: 'Title' }],
470
- },
471
- {
472
- type: 'paragraph',
473
- children: [
474
- { type: 'text', value: 'Hello ' },
475
- {
476
- type: 'link',
477
- url: 'https://example.com',
478
- children: [{ type: 'text', value: 'world' }],
479
- },
480
- ],
481
- },
482
- ],
483
- };
484
- it('getChildren returns children for parent nodes', () => {
485
- expect(getChildren(doc)).toEqual(doc.children);
486
- });
487
- it('getChildren returns empty array for leaf nodes', () => {
488
- expect(getChildren({ type: 'text', value: 'hi' })).toEqual([]);
489
- });
490
- it('walkMarkdownTree visits all nodes', () => {
491
- const types = [];
492
- walkMarkdownTree(doc, (node) => {
493
- types.push(node.type);
494
- });
495
- expect(types).toEqual(['document', 'heading', 'text', 'paragraph', 'text', 'link', 'text']);
496
- });
497
- it('walkMarkdownTree supports pruning', () => {
498
- const types = [];
499
- walkMarkdownTree(doc, (node) => {
500
- types.push(node.type);
501
- if (node.type === 'paragraph')
502
- return true; // skip children
503
- });
504
- expect(types).toEqual(['document', 'heading', 'text', 'paragraph']);
505
- });
506
- it('findNodesByType finds matching nodes', () => {
507
- const headings = findNodesByType(doc, 'heading');
508
- expect(headings).toHaveLength(1);
509
- expect(headings[0].depth).toBe(1);
510
- const texts = findNodesByType(doc, 'text');
511
- expect(texts).toHaveLength(3);
512
- });
513
- it('extractPlainText extracts all text', () => {
514
- expect(extractPlainText(doc)).toBe('TitleHello world');
515
- });
516
- it('extractPlainText preserves list item boundaries', () => {
517
- const list = {
518
- type: 'list',
519
- ordered: false,
520
- children: [
521
- {
522
- type: 'listItem',
523
- children: [{ type: 'paragraph', children: [{ type: 'text', value: 'Apple' }] }],
524
- },
525
- {
526
- type: 'listItem',
527
- children: [{ type: 'paragraph', children: [{ type: 'text', value: 'Banana' }] }],
528
- },
529
- {
530
- type: 'listItem',
531
- children: [{ type: 'paragraph', children: [{ type: 'text', value: 'Cherry' }] }],
532
- },
533
- ],
534
- };
535
- expect(extractPlainText(list)).toBe('Apple\nBanana\nCherry');
536
- });
537
- it('countNodes counts all nodes', () => {
538
- expect(countNodes(doc)).toBe(7); // document + heading + text + paragraph + text + link + text
539
- });
540
- it('createDocument creates a minimal document', () => {
541
- const d = createDocument({ type: 'paragraph', children: [{ type: 'text', value: 'Hello' }] });
542
- expect(d.type).toBe('document');
543
- expect(d.children).toHaveLength(1);
544
- });
545
- });
546
- // ============================================
547
- // AST Stability Test
548
- // ============================================
549
- describe('AST stability', () => {
550
- it('parse(stringify(parse(input))) === parse(input)', () => {
551
- const input = `# Hello World
552
-
553
- This is a **bold** and *italic* paragraph with \`code\`.
554
-
555
- - Item 1
556
- - Item 2
557
- - Nested
558
-
559
- > A blockquote
560
-
561
- \`\`\`js
562
- const x = 1;
563
- \`\`\`
564
-
565
- | A | B |
566
- | - | - |
567
- | 1 | 2 |
568
-
569
- ---
570
-
571
- [Link](https://example.com)
572
-
573
- ![Image](image.png)
574
- `;
575
- const doc1 = parseMarkdown(input);
576
- const output = stringifyMarkdown(doc1);
577
- const doc2 = parseMarkdown(output);
578
- const output2 = stringifyMarkdown(doc2);
579
- const doc3 = parseMarkdown(output2);
580
- // After one round-trip, the AST should be stable
581
- expect(stripPositions(doc3)).toEqual(stripPositions(doc2));
582
- });
583
- });
584
- // ============================================
585
- // Template Annotation on Headings
586
- // ============================================
587
- describe('heading template annotation', () => {
588
- it('parses {[templateName]} from heading text', () => {
589
- const doc = parseMarkdown('### Report Data {[chart]}');
590
- const heading = doc.children[0];
591
- expect(heading.type).toBe('heading');
592
- expect(heading.depth).toBe(3);
593
- expect(heading.templateAnnotation).toEqual({ template: 'chart' });
594
- // The annotation text should be stripped from children
595
- expect(heading.children).toHaveLength(1);
596
- expect(heading.children[0].type).toBe('text');
597
- expect(heading.children[0].value).toBe('Report Data');
598
- });
599
- it('parses template name with key=value params', () => {
600
- const doc = parseMarkdown('## Data {[statHighlight colorScheme=blue size=large]}');
601
- const heading = doc.children[0];
602
- expect(heading.templateAnnotation).toEqual({
603
- template: 'statHighlight',
604
- params: { colorScheme: 'blue', size: 'large' },
605
- });
606
- expect(heading.children[0].value).toBe('Data');
607
- });
608
- it('returns no annotation for plain headings', () => {
609
- const doc = parseMarkdown('# Just a title');
610
- const heading = doc.children[0];
611
- expect(heading.templateAnnotation).toBeUndefined();
612
- expect(heading.children[0].value).toBe('Just a title');
613
- });
614
- it('does not match incomplete bracket syntax', () => {
615
- const doc = parseMarkdown('## Title {chart}');
616
- const heading = doc.children[0];
617
- // Regular curly braces should not trigger annotation parsing
618
- expect(heading.templateAnnotation).toBeUndefined();
619
- });
620
- it('does not match {[...]} in the middle of heading text', () => {
621
- // The annotation must be trailing
622
- const doc = parseMarkdown('## The {[chart]} section');
623
- const heading = doc.children[0];
624
- // remark may split this into multiple text nodes or keep as one;
625
- // either way, no trailing annotation should be extracted
626
- expect(heading.templateAnnotation).toBeUndefined();
627
- });
628
- it('round-trips annotation through parse → stringify → parse', () => {
629
- const input = '### My Section {[factCard colorScheme=warm]}';
630
- const doc1 = parseMarkdown(input);
631
- const output = stringifyMarkdown(doc1);
632
- const doc2 = parseMarkdown(output);
633
- const h1 = doc1.children[0];
634
- const h2 = doc2.children[0];
635
- expect(h2.templateAnnotation).toEqual(h1.templateAnnotation);
636
- expect(stripPositions(h2.children)).toEqual(stripPositions(h1.children));
637
- });
638
- it('handles heading with only annotation (no display text)', () => {
639
- const doc = parseMarkdown('## {[chart]}');
640
- const heading = doc.children[0];
641
- expect(heading.templateAnnotation).toEqual({ template: 'chart' });
642
- // Children should be empty after stripping the annotation
643
- expect(heading.children).toHaveLength(0);
644
- });
645
- it('handles heading with bold text before annotation', () => {
646
- const doc = parseMarkdown('## **Bold Title** {[quoteBlock]}');
647
- const heading = doc.children[0];
648
- expect(heading.templateAnnotation).toEqual({ template: 'quoteBlock' });
649
- // The bold node should remain, trailing text stripped
650
- const types = heading.children.map((c) => c.type);
651
- expect(types).toContain('strong');
652
- });
653
- it('preserves annotation through stringify', () => {
654
- const input = '## Section {[chart]}';
655
- const doc = parseMarkdown(input);
656
- const output = stringifyMarkdown(doc);
657
- // Output should contain the annotation
658
- expect(output).toContain('{[chart]}');
659
- // The heading text should be there too
660
- expect(output).toContain('Section');
661
- });
662
- });
663
- // ============================================
664
- // YAML Frontmatter
665
- // ============================================
666
- describe('parseFrontmatter', () => {
667
- it('parses simple key-value pairs', () => {
668
- const result = parseFrontmatter('title: My Doc\nauthor: Jane');
669
- expect(result).toEqual({ title: 'My Doc', author: 'Jane' });
670
- });
671
- it('parses booleans and numbers', () => {
672
- const result = parseFrontmatter('draft: true\ncount: 42\nratio: 3.14');
673
- expect(result).toEqual({ draft: true, count: 42, ratio: 3.14 });
674
- });
675
- it('strips surrounding quotes', () => {
676
- const result = parseFrontmatter('title: "Hello World"\nname: \'Jane\'');
677
- expect(result).toEqual({ title: 'Hello World', name: 'Jane' });
678
- });
679
- it('skips comment lines and blank lines', () => {
680
- const result = parseFrontmatter('# comment\n\ntitle: Test');
681
- expect(result).toEqual({ title: 'Test' });
682
- });
683
- it('returns null for empty input', () => {
684
- expect(parseFrontmatter('')).toBeNull();
685
- expect(parseFrontmatter(' \n ')).toBeNull();
686
- });
687
- });
688
- describe('frontmatter in parseMarkdown', () => {
689
- it('extracts frontmatter from markdown with YAML header', () => {
690
- const md = '---\ndocument-render-as: landscape\ntitle: Test\n---\n\n# Hello';
691
- const doc = parseMarkdown(md);
692
- expect(doc.frontmatter).toEqual({ 'document-render-as': 'landscape', title: 'Test' });
693
- // The heading should still be there
694
- expect(doc.children.length).toBeGreaterThanOrEqual(1);
695
- expect(doc.children[0].type).toBe('heading');
696
- });
697
- it('has no frontmatter when YAML header is absent', () => {
698
- const doc = parseMarkdown('# Just a heading');
699
- expect(doc.frontmatter).toBeUndefined();
700
- });
701
- it('round-trips frontmatter through stringify', () => {
702
- const md = '---\ndocument-render-as: portrait\n---\n\n# Test';
703
- const doc = parseMarkdown(md);
704
- const output = stringifyMarkdown(doc);
705
- expect(output).toContain('---');
706
- expect(output).toContain('document-render-as: portrait');
707
- expect(output).toContain('# Test');
708
- });
709
- it('can disable frontmatter parsing', () => {
710
- const md = '---\ntitle: Disabled\n---\n\n# Hello';
711
- const doc = parseMarkdown(md, { frontmatter: false });
712
- expect(doc.frontmatter).toBeUndefined();
713
- });
714
- });
715
- //# sourceMappingURL=markdown.test.js.map