@bendyline/squisq 2.1.0 → 2.3.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 (442) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE.md +24 -0
  3. package/README.md +8 -8
  4. package/dist/{ContentContainer-BXUlIf18.d.ts → ContentContainer-B2w9sUoL.d.ts} +15 -0
  5. package/dist/{Doc-DynJleo-.d.ts → Doc-COe-rPQB.d.ts} +7 -5
  6. package/dist/{ImageEditDoc-Ca4Tr9uN.d.ts → ImageEditDoc-dtKahVyD.d.ts} +1 -1
  7. package/dist/{annotationCoercion-Dr_DY9Hx.d.ts → annotationCoercion-PtRQhk5V.d.ts} +1 -1
  8. package/dist/{chunk-VWCJ2WXC.js → chunk-2ZWIXGAC.js} +0 -1
  9. package/dist/{chunk-VYFRI7R6.js → chunk-32R2RZAO.js} +72 -3
  10. package/dist/chunk-3IGPAPQ7.js +645 -0
  11. package/dist/{chunk-QE7TWGVT.js → chunk-4VOD55SX.js} +0 -1
  12. package/dist/{chunk-3E5F2XMR.js → chunk-67L6WRJN.js} +0 -1
  13. package/dist/{chunk-5DKBFXPY.js → chunk-6ECMNUIP.js} +26 -18
  14. package/dist/{chunk-DBS6RIFL.js → chunk-7N4G32LG.js} +0 -1
  15. package/dist/{chunk-JOQYPRDZ.js → chunk-7YEZFHLS.js} +10 -8
  16. package/dist/{chunk-2UQOHYE2.js → chunk-7ZAAICW4.js} +0 -1
  17. package/dist/{chunk-66QO7XFB.js → chunk-ACZOVWX3.js} +117 -7
  18. package/dist/{chunk-5J4HKRJF.js → chunk-BAOV476U.js} +0 -1
  19. package/dist/chunk-BCCXTMN5.js +699 -0
  20. package/dist/{chunk-JHZWYRSW.js → chunk-C33GTPUZ.js} +11 -4
  21. package/dist/{chunk-XNLB57UD.js → chunk-EK446BUE.js} +18 -2
  22. package/dist/{chunk-VR7UPJ7C.js → chunk-FCG3BIZN.js} +12 -1
  23. package/dist/{chunk-JI77MGAK.js → chunk-GIIOY6XR.js} +2178 -1291
  24. package/dist/{chunk-Q7LROV2H.js → chunk-NKNMGIIN.js} +0 -1
  25. package/dist/chunk-OPO5K4DZ.js +241 -0
  26. package/dist/{chunk-TUWMK62B.js → chunk-PUS54YU6.js} +45 -2
  27. package/dist/{chunk-OTKVFVL6.js → chunk-QNTQIEIV.js} +130 -47
  28. package/dist/{chunk-5UYI3RJB.js → chunk-QWCFK5FN.js} +55 -40
  29. package/dist/{chunk-GZY66SDN.js → chunk-R3KTTOMS.js} +0 -1
  30. package/dist/{chunk-ILWDXLUK.js → chunk-RS5AP3J4.js} +49 -10
  31. package/dist/{chunk-QUUPYOSP.js → chunk-SPTY4C6F.js} +136 -5
  32. package/dist/{chunk-4X3JQXNM.js → chunk-XOFT65EX.js} +1 -2
  33. package/dist/{chunk-FVTQSNR7.js → chunk-XRW6P7IF.js} +13 -5
  34. package/dist/{chunk-R2YZTCLO.js → chunk-ZQKZSJAX.js} +1 -2
  35. package/dist/doc/index.d.ts +311 -13
  36. package/dist/doc/index.js +25 -17
  37. package/dist/generate/index.d.ts +2 -2
  38. package/dist/generate/index.js +1 -3
  39. package/dist/icons/index.js +2 -4
  40. package/dist/icons/inlineIconMarker.js +1 -2
  41. package/dist/imageEdit/index.d.ts +48 -17
  42. package/dist/imageEdit/index.js +3 -4
  43. package/dist/index.d.ts +13 -13
  44. package/dist/index.js +67 -33
  45. package/dist/jsonForm/index.d.ts +10 -3
  46. package/dist/jsonForm/index.js +8 -7
  47. package/dist/markdown/index.d.ts +75 -11
  48. package/dist/markdown/index.js +32 -7
  49. package/dist/{materializePageSection-DDzubQXo.d.ts → materializePageSection-BSMOocve.d.ts} +2 -2
  50. package/dist/narration/index.d.ts +16 -3
  51. package/dist/narration/index.js +12 -14
  52. package/dist/random/index.d.ts +11 -2
  53. package/dist/random/index.js +1 -3
  54. package/dist/recommend/index.d.ts +1 -1
  55. package/dist/recommend/index.js +2 -4
  56. package/dist/schemas/index.d.ts +18 -6
  57. package/dist/schemas/index.js +7 -6
  58. package/dist/spatial/index.d.ts +2 -1
  59. package/dist/spatial/index.js +1 -2
  60. package/dist/storage/index.d.ts +4 -2
  61. package/dist/storage/index.js +1 -2
  62. package/dist/{themeLibrary-B72m0W1y.d.ts → themeLibrary-BUTWjufL.d.ts} +1 -1
  63. package/dist/timing/index.js +2 -4
  64. package/dist/transform/index.d.ts +3 -3
  65. package/dist/transform/index.js +6 -7
  66. package/dist/{types-C4kiRn_k.d.ts → types-8QjefM9J.d.ts} +38 -2
  67. package/dist/{types-BwMPl2CB.d.ts → types-CUNc9biN.d.ts} +24 -1
  68. package/dist/versions/index.d.ts +14 -11
  69. package/dist/versions/index.js +2 -3
  70. package/package.json +8 -3
  71. package/dist/chunk-2UQOHYE2.js.map +0 -1
  72. package/dist/chunk-3E5F2XMR.js.map +0 -1
  73. package/dist/chunk-4X3JQXNM.js.map +0 -1
  74. package/dist/chunk-5DKBFXPY.js.map +0 -1
  75. package/dist/chunk-5J4HKRJF.js.map +0 -1
  76. package/dist/chunk-5UYI3RJB.js.map +0 -1
  77. package/dist/chunk-66QO7XFB.js.map +0 -1
  78. package/dist/chunk-AMIR72JP.js +0 -380
  79. package/dist/chunk-AMIR72JP.js.map +0 -1
  80. package/dist/chunk-DBS6RIFL.js.map +0 -1
  81. package/dist/chunk-DNJKBAI7.js +0 -1
  82. package/dist/chunk-DNJKBAI7.js.map +0 -1
  83. package/dist/chunk-ET53IIEP.js +0 -1
  84. package/dist/chunk-ET53IIEP.js.map +0 -1
  85. package/dist/chunk-FVTQSNR7.js.map +0 -1
  86. package/dist/chunk-GZY66SDN.js.map +0 -1
  87. package/dist/chunk-ILWDXLUK.js.map +0 -1
  88. package/dist/chunk-JHZWYRSW.js.map +0 -1
  89. package/dist/chunk-JI77MGAK.js.map +0 -1
  90. package/dist/chunk-JOQYPRDZ.js.map +0 -1
  91. package/dist/chunk-OTKVFVL6.js.map +0 -1
  92. package/dist/chunk-PGGGKYWG.js +0 -1
  93. package/dist/chunk-PGGGKYWG.js.map +0 -1
  94. package/dist/chunk-Q7LROV2H.js.map +0 -1
  95. package/dist/chunk-QE7TWGVT.js.map +0 -1
  96. package/dist/chunk-QUUPYOSP.js.map +0 -1
  97. package/dist/chunk-R2GC6RLD.js +0 -344
  98. package/dist/chunk-R2GC6RLD.js.map +0 -1
  99. package/dist/chunk-R2YZTCLO.js.map +0 -1
  100. package/dist/chunk-S7A5D7ZJ.js +0 -174
  101. package/dist/chunk-S7A5D7ZJ.js.map +0 -1
  102. package/dist/chunk-TUWMK62B.js.map +0 -1
  103. package/dist/chunk-V543AI2F.js +0 -1
  104. package/dist/chunk-V543AI2F.js.map +0 -1
  105. package/dist/chunk-VR7UPJ7C.js.map +0 -1
  106. package/dist/chunk-VWCJ2WXC.js.map +0 -1
  107. package/dist/chunk-VYFRI7R6.js.map +0 -1
  108. package/dist/chunk-XNLB57UD.js.map +0 -1
  109. package/dist/chunk-ZLQKNOZQ.js +0 -1
  110. package/dist/chunk-ZLQKNOZQ.js.map +0 -1
  111. package/dist/doc/index.js.map +0 -1
  112. package/dist/generate/index.js.map +0 -1
  113. package/dist/icons/index.js.map +0 -1
  114. package/dist/icons/inlineIconMarker.js.map +0 -1
  115. package/dist/imageEdit/index.js.map +0 -1
  116. package/dist/index.js.map +0 -1
  117. package/dist/jsonForm/index.js.map +0 -1
  118. package/dist/markdown/index.js.map +0 -1
  119. package/dist/narration/index.js.map +0 -1
  120. package/dist/random/index.js.map +0 -1
  121. package/dist/recommend/index.js.map +0 -1
  122. package/dist/schemas/index.js.map +0 -1
  123. package/dist/spatial/index.js.map +0 -1
  124. package/dist/storage/index.js.map +0 -1
  125. package/dist/timing/index.js.map +0 -1
  126. package/dist/transform/index.js.map +0 -1
  127. package/dist/versions/index.js.map +0 -1
  128. package/src/__tests__/animationUtils.test.ts +0 -117
  129. package/src/__tests__/annotationCoercion.test.ts +0 -243
  130. package/src/__tests__/applyNarrationTiming.test.ts +0 -190
  131. package/src/__tests__/applyRenderStyle.test.ts +0 -146
  132. package/src/__tests__/asciiDiagramBattle.test.ts +0 -246
  133. package/src/__tests__/asciiDiagramDetect.test.ts +0 -162
  134. package/src/__tests__/asciiDiagramMapping.test.ts +0 -38
  135. package/src/__tests__/asciiDiagramParse.test.ts +0 -233
  136. package/src/__tests__/asciiDiagramPipeline.test.ts +0 -273
  137. package/src/__tests__/asciiDiagramRender.test.ts +0 -162
  138. package/src/__tests__/asciiDiagramRepair.test.ts +0 -84
  139. package/src/__tests__/asciiTimelineDetect.test.ts +0 -157
  140. package/src/__tests__/asciiTimelineParse.test.ts +0 -205
  141. package/src/__tests__/asciiTimelinePipeline.test.ts +0 -349
  142. package/src/__tests__/asciiTimelineRender.test.ts +0 -376
  143. package/src/__tests__/atmosphereLayers.test.ts +0 -108
  144. package/src/__tests__/attrTokens.test.ts +0 -167
  145. package/src/__tests__/colorUtils.test.ts +0 -112
  146. package/src/__tests__/contentContainer.test.ts +0 -325
  147. package/src/__tests__/contentExtractor.test.ts +0 -243
  148. package/src/__tests__/coverBlock.test.ts +0 -310
  149. package/src/__tests__/customTemplateSample.test.ts +0 -144
  150. package/src/__tests__/customTemplatesFrontmatter.test.ts +0 -221
  151. package/src/__tests__/customThemesFrontmatter.test.ts +0 -146
  152. package/src/__tests__/dataTable.test.ts +0 -145
  153. package/src/__tests__/diagramBlock.test.ts +0 -122
  154. package/src/__tests__/diagramLayout.test.ts +0 -134
  155. package/src/__tests__/diagramText.test.ts +0 -26
  156. package/src/__tests__/docToMarkdownMedia.test.ts +0 -83
  157. package/src/__tests__/drawing.test.ts +0 -109
  158. package/src/__tests__/drawingBlock.test.ts +0 -124
  159. package/src/__tests__/drawingLayout.test.ts +0 -171
  160. package/src/__tests__/fixtures/asciiDiagramBattle.ts +0 -512
  161. package/src/__tests__/fixtures/asciiDiagrams.ts +0 -287
  162. package/src/__tests__/fixtures/asciiTimelines.ts +0 -35
  163. package/src/__tests__/fixtures/treeviewFixtures.ts +0 -243
  164. package/src/__tests__/geohash.test.ts +0 -110
  165. package/src/__tests__/getLayers.test.ts +0 -243
  166. package/src/__tests__/getLayersFallback.test.ts +0 -103
  167. package/src/__tests__/haversine.test.ts +0 -63
  168. package/src/__tests__/iconResolve.test.ts +0 -122
  169. package/src/__tests__/imageEditExportSvg.test.ts +0 -70
  170. package/src/__tests__/imageEditState.test.ts +0 -74
  171. package/src/__tests__/imageEditVersions.test.ts +0 -243
  172. package/src/__tests__/inferDocumentTitle.test.ts +0 -50
  173. package/src/__tests__/inlineIconMarker.test.ts +0 -36
  174. package/src/__tests__/inputDescriptors.test.ts +0 -162
  175. package/src/__tests__/jsonForm.chooseControl.test.ts +0 -86
  176. package/src/__tests__/jsonForm.evaluateWhen.test.ts +0 -59
  177. package/src/__tests__/jsonForm.inferSchema.test.ts +0 -25
  178. package/src/__tests__/jsonForm.pointer.test.ts +0 -149
  179. package/src/__tests__/jsonForm.tokens.test.ts +0 -84
  180. package/src/__tests__/layoutBlock.test.ts +0 -83
  181. package/src/__tests__/layoutLayout.test.ts +0 -169
  182. package/src/__tests__/localForageAdapter.test.ts +0 -155
  183. package/src/__tests__/majorApiTypes.test.ts +0 -18
  184. package/src/__tests__/markdown.test.ts +0 -1009
  185. package/src/__tests__/markdownIcons.test.ts +0 -104
  186. package/src/__tests__/markdownSanitize.test.ts +0 -81
  187. package/src/__tests__/markdownToDoc.test.ts +0 -957
  188. package/src/__tests__/matchFontFamily.test.ts +0 -114
  189. package/src/__tests__/materializeBlockLayers.test.ts +0 -167
  190. package/src/__tests__/materializePageSections.test.ts +0 -404
  191. package/src/__tests__/materializeTestUtils.ts +0 -17
  192. package/src/__tests__/mediaAnnotations.test.ts +0 -91
  193. package/src/__tests__/mediaSchedule.test.ts +0 -118
  194. package/src/__tests__/narrationAlign.test.ts +0 -150
  195. package/src/__tests__/narrationFeatures.test.ts +0 -71
  196. package/src/__tests__/narrationNuclei.test.ts +0 -45
  197. package/src/__tests__/narrationPacing.test.ts +0 -189
  198. package/src/__tests__/narrationScript.test.ts +0 -149
  199. package/src/__tests__/narrationSessionRepro.test.ts +0 -62
  200. package/src/__tests__/narrationSidecar.test.ts +0 -88
  201. package/src/__tests__/narrationSyllables.test.ts +0 -65
  202. package/src/__tests__/narrationTestSignals.ts +0 -167
  203. package/src/__tests__/narrationVad.test.ts +0 -66
  204. package/src/__tests__/pageStyle.test.ts +0 -258
  205. package/src/__tests__/pandocAttrParse.test.ts +0 -187
  206. package/src/__tests__/recommendTemplates.test.ts +0 -183
  207. package/src/__tests__/resolveDocTheme.test.ts +0 -69
  208. package/src/__tests__/rootExports.test.ts +0 -61
  209. package/src/__tests__/scopedContentContainer.test.ts +0 -109
  210. package/src/__tests__/seededRandom.test.ts +0 -142
  211. package/src/__tests__/shapeGeometry.test.ts +0 -138
  212. package/src/__tests__/shapeVocabulary.test.ts +0 -133
  213. package/src/__tests__/storage.test.ts +0 -60
  214. package/src/__tests__/structuredData.test.ts +0 -249
  215. package/src/__tests__/surface.test.ts +0 -68
  216. package/src/__tests__/templateAnnotationParse.test.ts +0 -173
  217. package/src/__tests__/templateInputs.test.ts +0 -69
  218. package/src/__tests__/templateMetadata.test.ts +0 -32
  219. package/src/__tests__/templates.test.ts +0 -710
  220. package/src/__tests__/themeCompile.test.ts +0 -225
  221. package/src/__tests__/themeValidator.test.ts +0 -131
  222. package/src/__tests__/timing.test.ts +0 -167
  223. package/src/__tests__/transformProvenance.test.ts +0 -160
  224. package/src/__tests__/transformV2.test.ts +0 -163
  225. package/src/__tests__/transitionNormalize.test.ts +0 -61
  226. package/src/__tests__/treeviewBattle.test.ts +0 -76
  227. package/src/__tests__/treeviewDetect.test.ts +0 -168
  228. package/src/__tests__/treeviewParse.test.ts +0 -118
  229. package/src/__tests__/treeviewPipeline.test.ts +0 -183
  230. package/src/__tests__/treeviewRender.test.ts +0 -91
  231. package/src/__tests__/validateDoc.test.ts +0 -260
  232. package/src/__tests__/versions.test.ts +0 -459
  233. package/src/doc/annotationBlocks.ts +0 -117
  234. package/src/doc/applyNarrationTiming.ts +0 -244
  235. package/src/doc/asciiDiagram/chars.ts +0 -210
  236. package/src/doc/asciiDiagram/detect.ts +0 -175
  237. package/src/doc/asciiDiagram/index.ts +0 -38
  238. package/src/doc/asciiDiagram/mapping.ts +0 -225
  239. package/src/doc/asciiDiagram/parse.ts +0 -1095
  240. package/src/doc/asciiDiagram/render.ts +0 -963
  241. package/src/doc/asciiDiagram/repair.ts +0 -400
  242. package/src/doc/asciiDiagram/types.ts +0 -65
  243. package/src/doc/asciiTimeline/detect.ts +0 -138
  244. package/src/doc/asciiTimeline/index.ts +0 -26
  245. package/src/doc/asciiTimeline/mapping.ts +0 -43
  246. package/src/doc/asciiTimeline/parse.ts +0 -870
  247. package/src/doc/asciiTimeline/render.ts +0 -427
  248. package/src/doc/asciiTimeline/types.ts +0 -73
  249. package/src/doc/asciiTimeline/wrappedFlow.ts +0 -427
  250. package/src/doc/audioMapping.ts +0 -442
  251. package/src/doc/customTemplatesFrontmatter.ts +0 -273
  252. package/src/doc/customThemesFrontmatter.ts +0 -95
  253. package/src/doc/docToMarkdown.ts +0 -284
  254. package/src/doc/index.ts +0 -161
  255. package/src/doc/markdownToDoc.ts +0 -1054
  256. package/src/doc/materializeBlockLayers.ts +0 -465
  257. package/src/doc/mediaAnnotations.ts +0 -120
  258. package/src/doc/page/PageSection.ts +0 -174
  259. package/src/doc/page/materializePageSection.ts +0 -616
  260. package/src/doc/page/resolvePageBlock.ts +0 -108
  261. package/src/doc/page/sectionExtractors.ts +0 -466
  262. package/src/doc/pageCss.ts +0 -628
  263. package/src/doc/resolveDocTheme.ts +0 -56
  264. package/src/doc/standaloneAnnotation.ts +0 -58
  265. package/src/doc/structuredData.ts +0 -301
  266. package/src/doc/templateInputs.ts +0 -424
  267. package/src/doc/templates/__tests__/customTemplate.test.ts +0 -170
  268. package/src/doc/templates/__tests__/customTemplateRegistry.test.ts +0 -124
  269. package/src/doc/templates/__tests__/listBlock.test.ts +0 -64
  270. package/src/doc/templates/accentImage.ts +0 -362
  271. package/src/doc/templates/captionUtils.ts +0 -56
  272. package/src/doc/templates/comparisonBar.ts +0 -173
  273. package/src/doc/templates/coverBlock.ts +0 -255
  274. package/src/doc/templates/customTemplate.ts +0 -51
  275. package/src/doc/templates/dataTable.ts +0 -102
  276. package/src/doc/templates/dateEvent.ts +0 -147
  277. package/src/doc/templates/definitionCard.ts +0 -140
  278. package/src/doc/templates/diagramBlock.ts +0 -403
  279. package/src/doc/templates/diagramLayout.ts +0 -159
  280. package/src/doc/templates/drawingBlock.ts +0 -325
  281. package/src/doc/templates/drawingLayout.ts +0 -539
  282. package/src/doc/templates/factCard.ts +0 -146
  283. package/src/doc/templates/fallbackBlock.ts +0 -123
  284. package/src/doc/templates/featureBlock.ts +0 -209
  285. package/src/doc/templates/fullBleedQuote.ts +0 -83
  286. package/src/doc/templates/imageWithCaption.ts +0 -186
  287. package/src/doc/templates/index.ts +0 -642
  288. package/src/doc/templates/inputDescriptors.ts +0 -451
  289. package/src/doc/templates/layoutBlock.ts +0 -43
  290. package/src/doc/templates/layoutLayout.ts +0 -243
  291. package/src/doc/templates/listBlock.ts +0 -207
  292. package/src/doc/templates/mapBlock.ts +0 -138
  293. package/src/doc/templates/metadata.ts +0 -130
  294. package/src/doc/templates/persistentLayers.ts +0 -526
  295. package/src/doc/templates/photoGrid.ts +0 -190
  296. package/src/doc/templates/pullQuote.ts +0 -141
  297. package/src/doc/templates/quoteBlock.ts +0 -141
  298. package/src/doc/templates/registry.ts +0 -88
  299. package/src/doc/templates/sectionHeader.ts +0 -120
  300. package/src/doc/templates/statHighlight.ts +0 -146
  301. package/src/doc/templates/templateNames.ts +0 -22
  302. package/src/doc/templates/timelineBlock.ts +0 -613
  303. package/src/doc/templates/titleBlock.ts +0 -150
  304. package/src/doc/templates/tokens/__tests__/resolveTokens.test.ts +0 -487
  305. package/src/doc/templates/tokens/resolveTokens.ts +0 -453
  306. package/src/doc/templates/treeBlock.ts +0 -131
  307. package/src/doc/templates/twoColumn.ts +0 -263
  308. package/src/doc/templates/videoPullQuote.ts +0 -142
  309. package/src/doc/templates/videoWithCaption.ts +0 -135
  310. package/src/doc/treeview/chars.ts +0 -72
  311. package/src/doc/treeview/detect.ts +0 -145
  312. package/src/doc/treeview/index.ts +0 -30
  313. package/src/doc/treeview/mapping.ts +0 -95
  314. package/src/doc/treeview/parse.ts +0 -201
  315. package/src/doc/treeview/render.ts +0 -41
  316. package/src/doc/treeview/types.ts +0 -43
  317. package/src/doc/utils/animationUtils.ts +0 -399
  318. package/src/doc/utils/applyRenderStyle.ts +0 -106
  319. package/src/doc/utils/diagramText.ts +0 -78
  320. package/src/doc/utils/imageTreatment.ts +0 -70
  321. package/src/doc/utils/nearest.ts +0 -59
  322. package/src/doc/utils/shapeGeometry.ts +0 -614
  323. package/src/doc/utils/themeUtils.ts +0 -243
  324. package/src/doc/validate.ts +0 -575
  325. package/src/generate/contentExtractor.ts +0 -921
  326. package/src/generate/index.ts +0 -18
  327. package/src/generate/templateMapper.ts +0 -177
  328. package/src/icons/iconData.ts +0 -31
  329. package/src/icons/index.ts +0 -26
  330. package/src/icons/inlineIconMarker.ts +0 -73
  331. package/src/icons/resolve.ts +0 -139
  332. package/src/imageEdit/ImageEditVersionManager.ts +0 -73
  333. package/src/imageEdit/export.ts +0 -410
  334. package/src/imageEdit/index.ts +0 -72
  335. package/src/imageEdit/persistence.ts +0 -113
  336. package/src/imageEdit/state.ts +0 -112
  337. package/src/imageEdit/versionPaths.ts +0 -44
  338. package/src/imageEdit/versions.ts +0 -152
  339. package/src/index.ts +0 -15
  340. package/src/internal/immutable.ts +0 -58
  341. package/src/jsonForm/chooseControl.ts +0 -88
  342. package/src/jsonForm/evaluateWhen.ts +0 -59
  343. package/src/jsonForm/index.ts +0 -32
  344. package/src/jsonForm/inferSchema.ts +0 -25
  345. package/src/jsonForm/pointer.ts +0 -154
  346. package/src/jsonForm/tokens.ts +0 -78
  347. package/src/jsonForm/types.ts +0 -167
  348. package/src/markdown/annotationCoercion.ts +0 -295
  349. package/src/markdown/attrTokens.ts +0 -243
  350. package/src/markdown/convert.ts +0 -1353
  351. package/src/markdown/htmlParse.ts +0 -212
  352. package/src/markdown/index.ts +0 -152
  353. package/src/markdown/parse.ts +0 -103
  354. package/src/markdown/sanitize.ts +0 -318
  355. package/src/markdown/stringify.ts +0 -207
  356. package/src/markdown/types.ts +0 -710
  357. package/src/markdown/utils.ts +0 -459
  358. package/src/narration/align.ts +0 -514
  359. package/src/narration/features.ts +0 -231
  360. package/src/narration/index.ts +0 -86
  361. package/src/narration/nuclei.ts +0 -118
  362. package/src/narration/pacing.ts +0 -211
  363. package/src/narration/script.ts +0 -239
  364. package/src/narration/session.ts +0 -100
  365. package/src/narration/sidecar.ts +0 -187
  366. package/src/narration/syllables.ts +0 -85
  367. package/src/narration/trace.ts +0 -50
  368. package/src/narration/types.ts +0 -299
  369. package/src/narration/vad.ts +0 -131
  370. package/src/ngeohash.d.ts +0 -11
  371. package/src/random/SeededRandom.ts +0 -127
  372. package/src/random/index.ts +0 -1
  373. package/src/recommend/index.ts +0 -16
  374. package/src/recommend/numberHighlight.ts +0 -25
  375. package/src/recommend/templates.ts +0 -393
  376. package/src/schemas/BlockTemplates.ts +0 -1046
  377. package/src/schemas/CustomTemplates.ts +0 -126
  378. package/src/schemas/Doc.ts +0 -1073
  379. package/src/schemas/ImageEditDoc.ts +0 -102
  380. package/src/schemas/LayoutStrategy.ts +0 -178
  381. package/src/schemas/Media.ts +0 -179
  382. package/src/schemas/MediaProvider.ts +0 -70
  383. package/src/schemas/PageStyle.ts +0 -213
  384. package/src/schemas/Theme.ts +0 -413
  385. package/src/schemas/Transitions.ts +0 -224
  386. package/src/schemas/Types.ts +0 -15
  387. package/src/schemas/Viewport.ts +0 -91
  388. package/src/schemas/colorUtils.ts +0 -219
  389. package/src/schemas/fontStacks.ts +0 -339
  390. package/src/schemas/index.ts +0 -31
  391. package/src/schemas/pageStyleDefaults.ts +0 -204
  392. package/src/schemas/themeCompile.ts +0 -244
  393. package/src/schemas/themeConstants.ts +0 -2
  394. package/src/schemas/themeLibrary.ts +0 -60
  395. package/src/schemas/themeValidator.ts +0 -609
  396. package/src/schemas/themes/bold.json +0 -77
  397. package/src/schemas/themes/cinematic.json +0 -143
  398. package/src/schemas/themes/documentary.json +0 -125
  399. package/src/schemas/themes/gezellig.json +0 -123
  400. package/src/schemas/themes/index.ts +0 -53
  401. package/src/schemas/themes/magazine.json +0 -126
  402. package/src/schemas/themes/minimalist.json +0 -74
  403. package/src/schemas/themes/morning-light.json +0 -117
  404. package/src/schemas/themes/standard-dark.json +0 -109
  405. package/src/schemas/themes/standard.json +0 -98
  406. package/src/schemas/themes/tech-dark.json +0 -143
  407. package/src/schemas/themes/warm-earth.json +0 -74
  408. package/src/spatial/Geohash.ts +0 -196
  409. package/src/spatial/Haversine.ts +0 -59
  410. package/src/spatial/index.ts +0 -2
  411. package/src/storage/ContentContainer.ts +0 -220
  412. package/src/storage/LocalForageAdapter.ts +0 -103
  413. package/src/storage/LocalStorageAdapter.ts +0 -57
  414. package/src/storage/MediaProviderFromContainer.ts +0 -92
  415. package/src/storage/MemoryStorageAdapter.ts +0 -37
  416. package/src/storage/ScopedContentContainer.ts +0 -143
  417. package/src/storage/Storage.ts +0 -28
  418. package/src/storage/index.ts +0 -9
  419. package/src/timing/index.ts +0 -17
  420. package/src/timing/narrationTiming.ts +0 -220
  421. package/src/timing/readingTime.ts +0 -94
  422. package/src/transform/applyTransform.ts +0 -122
  423. package/src/transform/blockAnalyzer.ts +0 -181
  424. package/src/transform/index.ts +0 -23
  425. package/src/transform/registry.ts +0 -217
  426. package/src/transform/styles/dataDriven.ts +0 -18
  427. package/src/transform/styles/documentary.ts +0 -18
  428. package/src/transform/styles/index.ts +0 -5
  429. package/src/transform/styles/magazine.ts +0 -19
  430. package/src/transform/styles/minimal.ts +0 -18
  431. package/src/transform/styles/narrative.ts +0 -19
  432. package/src/transform/templateSelector.ts +0 -389
  433. package/src/transform/timingAllocator.ts +0 -257
  434. package/src/transform/types.ts +0 -158
  435. package/src/versions/DocumentVersionManager.ts +0 -70
  436. package/src/versions/gitignore.ts +0 -34
  437. package/src/versions/index.ts +0 -56
  438. package/src/versions/operations.ts +0 -144
  439. package/src/versions/paths.ts +0 -51
  440. package/src/versions/snapshotStore.ts +0 -202
  441. package/src/versions/timestamp.ts +0 -48
  442. package/src/versions/types.ts +0 -93
@@ -1,710 +0,0 @@
1
- /**
2
- * Markdown DOM Types
3
- *
4
- * A complete hierarchical JSON representation of a Markdown document.
5
- * Supports perfect-fidelity round-trip conversion between Markdown text
6
- * and this JSON format: parseMarkdown(stringifyMarkdown(doc)) ≡ doc.
7
- *
8
- * Coverage:
9
- * - CommonMark (headings, paragraphs, lists, code, blockquotes, etc.)
10
- * - GFM (tables, strikethrough, task lists, autolinks, footnotes)
11
- * - Math (inline $...$ and display $$...$$)
12
- * - Directives (:::container, ::leaf, :text — used for admonitions, etc.)
13
- * - Raw HTML (parsed into an HtmlNode sub-DOM for programmatic access)
14
- * - Definition lists (type only — for programmatic construction)
15
- */
16
-
17
- // ============================================
18
- // Position Tracking
19
- // ============================================
20
-
21
- /**
22
- * A specific point in the source markdown text.
23
- */
24
- export interface MarkdownPoint {
25
- /** 1-based line number */
26
- line: number;
27
- /** 1-based column number */
28
- column: number;
29
- /** 0-based byte offset from start of document */
30
- offset?: number;
31
- }
32
-
33
- /**
34
- * Source position range for a node (start inclusive, end exclusive).
35
- * Present when parsed from markdown, absent when constructed programmatically.
36
- */
37
- export interface MarkdownSourcePosition {
38
- start: MarkdownPoint;
39
- end: MarkdownPoint;
40
- }
41
-
42
- // ============================================
43
- // HTML Sub-DOM
44
- // ============================================
45
-
46
- /**
47
- * An HTML element with tag name, attributes, and children.
48
- */
49
- export interface HtmlElement {
50
- type: 'htmlElement';
51
- /** HTML tag name (lowercase, e.g., 'div', 'span', 'br') */
52
- tagName: string;
53
- /** HTML attributes as name→value pairs (uses HTML attribute names, e.g., 'class' not 'className') */
54
- attributes: Record<string, string>;
55
- /** Child nodes */
56
- children: HtmlNode[];
57
- /** Whether this is a void/self-closing element (br, hr, img, etc.) */
58
- selfClosing: boolean;
59
- }
60
-
61
- /**
62
- * A raw text node inside HTML.
63
- */
64
- export interface HtmlText {
65
- type: 'htmlText';
66
- value: string;
67
- }
68
-
69
- /**
70
- * An HTML comment (<!-- ... -->).
71
- */
72
- export interface HtmlComment {
73
- type: 'htmlComment';
74
- value: string;
75
- }
76
-
77
- /** Any node in the HTML sub-DOM tree. */
78
- export type HtmlNode = HtmlElement | HtmlText | HtmlComment;
79
-
80
- // ============================================
81
- // Document Root
82
- // ============================================
83
-
84
- /**
85
- * Root node of a parsed markdown document.
86
- */
87
- export interface MarkdownDocument {
88
- type: 'document';
89
- /** Top-level block content */
90
- children: MarkdownBlockNode[];
91
- /** Source position (present when parsed from markdown) */
92
- position?: MarkdownSourcePosition;
93
- /**
94
- * YAML frontmatter key-value pairs extracted from the `---` block
95
- * at the top of the document. Present only when the source contains
96
- * frontmatter and `frontmatter` parsing is enabled (default: true).
97
- */
98
- frontmatter?: Record<string, unknown>;
99
- }
100
-
101
- // ============================================
102
- // Block Content Types
103
- // ============================================
104
-
105
- /** Base properties shared by all markdown nodes. */
106
- interface MarkdownNodeBase {
107
- /** Source position (present when parsed from markdown, absent when programmatically constructed) */
108
- position?: MarkdownSourcePosition;
109
- }
110
-
111
- /**
112
- * Template annotation extracted from a heading's trailing `{[templateName key=value …]}` syntax.
113
- *
114
- * @example
115
- * ```markdown
116
- * ### Report Data {[chart colorScheme=blue]}
117
- * ```
118
- * → `{ template: 'chart', params: { colorScheme: 'blue' } }`
119
- */
120
- export interface HeadingTemplateAnnotation {
121
- /** Template name (first token inside `{[…]}`).
122
- * Optional when the annotation contains only key=value pairs
123
- * (e.g., `{[audio=intro.mp3]}`). */
124
- template?: string;
125
- /** Optional key-value parameters (remaining `key=value` tokens) */
126
- params?: Record<string, string>;
127
- }
128
-
129
- /**
130
- * A directed connection from one block to another, parsed from a heading
131
- * attribute `connectsTo=target1,target2:type,target3`. Mirrors the schema
132
- * `BlockConnection` type — duplicated here so this module stays
133
- * dependency-free from the doc schema.
134
- */
135
- export interface BlockConnection {
136
- /** Target block id. */
137
- target: string;
138
- /** Optional connection type/label (e.g., "flow", "requires"). */
139
- type?: string;
140
- }
141
-
142
- /**
143
- * Pandoc-style heading attribute block, parsed from `{#id .class key=value}`
144
- * appearing at the end of a heading line (alongside, or instead of, the
145
- * squisq-native `{[templateName …]}` block).
146
- *
147
- * @example
148
- * ```markdown
149
- * ## Architecture {#arch x=600 y=300 connectsTo=foo:flow,bar:requires}
150
- * ```
151
- * →
152
- * ```ts
153
- * {
154
- * id: 'arch',
155
- * params: { x: '600', y: '300', connectsTo: 'foo:flow,bar:requires' },
156
- * blockMeta: {
157
- * x: 600,
158
- * y: 300,
159
- * connectsTo: [{ target: 'foo', type: 'flow' }, { target: 'bar', type: 'requires' }],
160
- * },
161
- * }
162
- * ```
163
- *
164
- * `params` carries the raw pre-coercion strings (lossless for round-tripping),
165
- * while `blockMeta` carries the typed values for known keys. Unknown keys flow
166
- * to `metadata`.
167
- */
168
- export interface HeadingAttributes {
169
- /** Block id from `#identifier` (overrides slug-from-heading). */
170
- id?: string;
171
- /** Class tokens from `.classname` (reserved for downstream use). */
172
- classes?: string[];
173
- /** All key=value attributes as raw strings (lossless source for serialization). */
174
- params?: Record<string, string>;
175
- /** Typed values for known block-meta keys (coerced from `params`). */
176
- blockMeta?: {
177
- x?: number;
178
- y?: number;
179
- startTime?: number;
180
- duration?: number;
181
- connectsTo?: BlockConnection[];
182
- transition?: import('../schemas/Transitions.js').Transition;
183
- };
184
- /** Subset of `params` whose keys are NOT in the known-key registry. */
185
- metadata?: Record<string, string>;
186
- }
187
-
188
- /**
189
- * ATX or setext heading (# Heading).
190
- */
191
- export interface MarkdownHeading extends MarkdownNodeBase {
192
- type: 'heading';
193
- /** Heading level (1–6) */
194
- depth: 1 | 2 | 3 | 4 | 5 | 6;
195
- /** Inline content */
196
- children: MarkdownInlineNode[];
197
- /**
198
- * Template annotation parsed from trailing `{[templateName …]}` syntax.
199
- * Present only when the heading text ends with `{[…]}`. The annotation
200
- * is stripped from `children` during parsing and re-injected during
201
- * stringification, so it round-trips transparently.
202
- */
203
- templateAnnotation?: HeadingTemplateAnnotation;
204
- /**
205
- * Pandoc-style heading attributes parsed from trailing `{#id .class key=value}`
206
- * syntax. Independent from `templateAnnotation` — both may appear on the
207
- * same heading in either order. Stripped from `children` during parsing
208
- * and re-injected during stringification.
209
- */
210
- attributes?: HeadingAttributes;
211
- }
212
-
213
- /**
214
- * A paragraph of inline content.
215
- */
216
- export interface MarkdownParagraph extends MarkdownNodeBase {
217
- type: 'paragraph';
218
- children: MarkdownInlineNode[];
219
- }
220
-
221
- /**
222
- * A blockquote (> ...).
223
- */
224
- export interface MarkdownBlockquote extends MarkdownNodeBase {
225
- type: 'blockquote';
226
- children: MarkdownBlockNode[];
227
- }
228
-
229
- /**
230
- * An ordered or unordered list.
231
- */
232
- export interface MarkdownList extends MarkdownNodeBase {
233
- type: 'list';
234
- /** Whether the list is ordered (numbered) or unordered (bulleted) */
235
- ordered: boolean;
236
- /** Starting number for ordered lists (default: 1) */
237
- start?: number | null;
238
- /** Whether items are separated by blank lines (loose list) */
239
- spread?: boolean | null;
240
- children: MarkdownListItem[];
241
- }
242
-
243
- /**
244
- * A single item in a list. May be a task list item if `checked` is non-null.
245
- */
246
- export interface MarkdownListItem extends MarkdownNodeBase {
247
- type: 'listItem';
248
- /** null = not a task item, true = checked [x], false = unchecked [ ] */
249
- checked?: boolean | null;
250
- /** Whether this item contains blank lines (loose) */
251
- spread?: boolean | null;
252
- /** Block content (typically paragraphs, but can contain nested lists, etc.) */
253
- children: MarkdownBlockNode[];
254
- }
255
-
256
- /**
257
- * A fenced or indented code block.
258
- */
259
- export interface MarkdownCodeBlock extends MarkdownNodeBase {
260
- type: 'code';
261
- /** Language identifier (e.g., 'typescript', 'python') */
262
- lang?: string | null;
263
- /** Additional metadata after the language on the fence line */
264
- meta?: string | null;
265
- /** The code content (no trailing newline) */
266
- value: string;
267
- }
268
-
269
- /**
270
- * A thematic break (---, ***, or ___).
271
- */
272
- export interface MarkdownThematicBreak extends MarkdownNodeBase {
273
- type: 'thematicBreak';
274
- }
275
-
276
- /**
277
- * A GFM table.
278
- */
279
- export interface MarkdownTable extends MarkdownNodeBase {
280
- type: 'table';
281
- /** Column alignment: null = default, 'left', 'center', 'right' */
282
- align?: (('left' | 'right' | 'center') | null)[];
283
- /** First row is always the header row */
284
- children: MarkdownTableRow[];
285
- }
286
-
287
- /**
288
- * A row in a table.
289
- */
290
- export interface MarkdownTableRow extends MarkdownNodeBase {
291
- type: 'tableRow';
292
- children: MarkdownTableCell[];
293
- }
294
-
295
- /**
296
- * A cell in a table row.
297
- */
298
- export interface MarkdownTableCell extends MarkdownNodeBase {
299
- type: 'tableCell';
300
- /** Whether this cell is in the header row */
301
- isHeader?: boolean;
302
- children: MarkdownInlineNode[];
303
- }
304
-
305
- /**
306
- * A block of raw HTML.
307
- *
308
- * The `rawHtml` field contains the original HTML string and is used for
309
- * serialization (round-tripping). The `htmlChildren` field contains a
310
- * parsed HTML DOM tree for programmatic traversal.
311
- *
312
- * Note: For partial HTML tags (e.g., just `<div>` without `</div>`),
313
- * `htmlChildren` may not fully represent the structure. The `rawHtml`
314
- * field always preserves the exact original text.
315
- */
316
- export interface MarkdownHtmlBlock extends MarkdownNodeBase {
317
- type: 'htmlBlock';
318
- /** The original raw HTML string (source of truth for serialization) */
319
- rawHtml: string;
320
- /** Parsed HTML DOM tree (for programmatic access) */
321
- htmlChildren: HtmlNode[];
322
- }
323
-
324
- /**
325
- * A display math block ($$...$$).
326
- */
327
- export interface MarkdownMathBlock extends MarkdownNodeBase {
328
- type: 'math';
329
- /** The math content (without $$ delimiters) */
330
- value: string;
331
- /** Optional metadata after the opening $$ */
332
- meta?: string | null;
333
- }
334
-
335
- /**
336
- * A link reference definition: [id]: url "title"
337
- * These are typically not rendered but define targets for reference links.
338
- */
339
- export interface MarkdownLinkDefinition extends MarkdownNodeBase {
340
- type: 'definition';
341
- /** Reference identifier (lowercase, normalized) */
342
- identifier: string;
343
- /** Original label text */
344
- label?: string;
345
- /** URL target */
346
- url: string;
347
- /** Optional title */
348
- title?: string | null;
349
- }
350
-
351
- /**
352
- * A footnote definition: [^id]: content
353
- */
354
- export interface MarkdownFootnoteDefinition extends MarkdownNodeBase {
355
- type: 'footnoteDefinition';
356
- /** Footnote identifier */
357
- identifier: string;
358
- /** Original label text */
359
- label?: string;
360
- /** Footnote content (block-level) */
361
- children: MarkdownBlockNode[];
362
- }
363
-
364
- /**
365
- * A container directive (:::name[label]{attrs}\ncontent\n:::).
366
- * Used for admonitions, callouts, and other structural extensions.
367
- */
368
- export interface MarkdownContainerDirective extends MarkdownNodeBase {
369
- type: 'containerDirective';
370
- /** Directive name (e.g., 'note', 'warning', 'tip') */
371
- name: string;
372
- /** Key-value attributes from {attr=value} */
373
- attributes?: Record<string, string>;
374
- /** Label text from [label] (extracted from children for clean round-tripping) */
375
- label?: string;
376
- /** Block content inside the directive */
377
- children: MarkdownBlockNode[];
378
- }
379
-
380
- /**
381
- * A leaf directive (::name[label]{attrs}).
382
- * Self-contained block-level directive with no content body.
383
- */
384
- export interface MarkdownLeafDirective extends MarkdownNodeBase {
385
- type: 'leafDirective';
386
- /** Directive name */
387
- name: string;
388
- /** Key-value attributes */
389
- attributes?: Record<string, string>;
390
- /** Inline content from [label] */
391
- children: MarkdownInlineNode[];
392
- }
393
-
394
- /**
395
- * A definition list (<dl>).
396
- * This type is for programmatic construction — no standard remark parser
397
- * produces these nodes, but they can be built and rendered.
398
- */
399
- export interface MarkdownDefinitionList extends MarkdownNodeBase {
400
- type: 'definitionList';
401
- children: (MarkdownDefinitionTerm | MarkdownDefinitionDescription)[];
402
- }
403
-
404
- /**
405
- * A term in a definition list (<dt>).
406
- */
407
- export interface MarkdownDefinitionTerm extends MarkdownNodeBase {
408
- type: 'definitionTerm';
409
- children: MarkdownInlineNode[];
410
- }
411
-
412
- /**
413
- * A description in a definition list (<dd>).
414
- */
415
- export interface MarkdownDefinitionDescription extends MarkdownNodeBase {
416
- type: 'definitionDescription';
417
- children: MarkdownBlockNode[];
418
- }
419
-
420
- // ============================================
421
- // Inline Content Types
422
- // ============================================
423
-
424
- /**
425
- * Plain text content.
426
- */
427
- export interface MarkdownText extends MarkdownNodeBase {
428
- type: 'text';
429
- value: string;
430
- }
431
-
432
- /**
433
- * Emphasized text (*text* or _text_).
434
- */
435
- export interface MarkdownEmphasis extends MarkdownNodeBase {
436
- type: 'emphasis';
437
- children: MarkdownInlineNode[];
438
- }
439
-
440
- /**
441
- * Strong emphasis (**text** or __text__).
442
- */
443
- export interface MarkdownStrong extends MarkdownNodeBase {
444
- type: 'strong';
445
- children: MarkdownInlineNode[];
446
- }
447
-
448
- /**
449
- * Strikethrough text (~~text~~). GFM extension.
450
- */
451
- export interface MarkdownStrikethrough extends MarkdownNodeBase {
452
- type: 'delete';
453
- children: MarkdownInlineNode[];
454
- }
455
-
456
- /**
457
- * Inline code (`code`).
458
- */
459
- export interface MarkdownInlineCode extends MarkdownNodeBase {
460
- type: 'inlineCode';
461
- value: string;
462
- }
463
-
464
- /**
465
- * A hyperlink [text](url "title").
466
- */
467
- export interface MarkdownLink extends MarkdownNodeBase {
468
- type: 'link';
469
- /** URL target */
470
- url: string;
471
- /** Optional title (shown on hover) */
472
- title?: string | null;
473
- /** Link text (inline content) */
474
- children: MarkdownInlineNode[];
475
- }
476
-
477
- /**
478
- * An image ![alt](url "title").
479
- */
480
- export interface MarkdownImage extends MarkdownNodeBase {
481
- type: 'image';
482
- /** Image URL */
483
- url: string;
484
- /** Alt text */
485
- alt?: string;
486
- /** Optional title */
487
- title?: string | null;
488
- }
489
-
490
- /**
491
- * A hard line break (two trailing spaces or backslash before newline).
492
- */
493
- export interface MarkdownBreak extends MarkdownNodeBase {
494
- type: 'break';
495
- }
496
-
497
- /**
498
- * Inline raw HTML.
499
- *
500
- * In markdown, individual HTML tags like `<em>` or `</em>` appear as
501
- * separate inline nodes. The `rawHtml` preserves the exact tag text.
502
- * The `htmlChildren` is a best-effort parse (partial tags may not
503
- * produce meaningful trees).
504
- */
505
- export interface MarkdownInlineHtml extends MarkdownNodeBase {
506
- type: 'htmlInline';
507
- /** The original raw HTML string */
508
- rawHtml: string;
509
- /** Parsed HTML DOM tree (best-effort for partial tags) */
510
- htmlChildren: HtmlNode[];
511
- }
512
-
513
- /**
514
- * Inline math ($...$).
515
- */
516
- export interface MarkdownInlineMath extends MarkdownNodeBase {
517
- type: 'inlineMath';
518
- /** Math content (without $ delimiters) */
519
- value: string;
520
- }
521
-
522
- /**
523
- * Inline FontAwesome icon. Authored as `{[name]}` (bare) or
524
- * `{[fa-<family>:name]}` (qualified) in markdown source. The parser
525
- * resolves the token against the FA Free catalog and emits this node;
526
- * unknown / ambiguous tokens stay as literal text.
527
- */
528
- export interface MarkdownInlineIcon extends MarkdownNodeBase {
529
- type: 'inlineIcon';
530
- /** Token exactly as authored — e.g. `github` or `fa-solid:user`. */
531
- token: string;
532
- /** Resolved icon family. */
533
- family: 'brands' | 'solid' | 'regular';
534
- /** Resolved icon name (without the `fa-` prefix). */
535
- name: string;
536
- }
537
-
538
- /**
539
- * A footnote reference [^id]. GFM extension.
540
- */
541
- export interface MarkdownFootnoteReference extends MarkdownNodeBase {
542
- type: 'footnoteReference';
543
- /** Footnote identifier */
544
- identifier: string;
545
- /** Original label text */
546
- label?: string;
547
- }
548
-
549
- /**
550
- * A link via reference [text][id] or [text][] or [text].
551
- */
552
- export interface MarkdownLinkReference extends MarkdownNodeBase {
553
- type: 'linkReference';
554
- /** Reference identifier (normalized) */
555
- identifier: string;
556
- /** Original label text */
557
- label?: string;
558
- /** How the reference is written */
559
- referenceType: 'full' | 'collapsed' | 'shortcut';
560
- /** Link text (inline content) */
561
- children: MarkdownInlineNode[];
562
- }
563
-
564
- /**
565
- * An image via reference ![alt][id].
566
- */
567
- export interface MarkdownImageReference extends MarkdownNodeBase {
568
- type: 'imageReference';
569
- /** Reference identifier (normalized) */
570
- identifier: string;
571
- /** Original label text */
572
- label?: string;
573
- /** How the reference is written */
574
- referenceType: 'full' | 'collapsed' | 'shortcut';
575
- /** Alt text */
576
- alt?: string;
577
- }
578
-
579
- /**
580
- * An inline text directive (:name[label]{attrs}).
581
- */
582
- export interface MarkdownTextDirective extends MarkdownNodeBase {
583
- type: 'textDirective';
584
- /** Directive name */
585
- name: string;
586
- /** Key-value attributes */
587
- attributes?: Record<string, string>;
588
- /** Inline content from [label] */
589
- children: MarkdownInlineNode[];
590
- }
591
-
592
- /**
593
- * An @-mention of a named entity such as a user or agent.
594
- *
595
- * Wire format: `@[Display Name](scheme:id)` — a regular Markdown link
596
- * preceded by `@`, with a namespaced URL scheme that identifies what
597
- * kind of entity is being mentioned. Parsers that don't know about
598
- * mentions still render it as a link with text "Display Name" pointing
599
- * at "scheme:id" — graceful fallback.
600
- */
601
- export interface MarkdownMention extends MarkdownNodeBase {
602
- type: 'mention';
603
- /** Namespace for the mentioned entity (e.g. `"user"`). */
604
- targetKind: string;
605
- /** Stable identifier within the namespace. */
606
- targetId: string;
607
- /** Text shown to the reader. */
608
- displayName: string;
609
- }
610
-
611
- // ============================================
612
- // Union Types
613
- // ============================================
614
-
615
- /** Block-level content that can appear as direct children of the document root, blockquotes, list items, etc. */
616
- export type MarkdownBlockNode =
617
- | MarkdownHeading
618
- | MarkdownParagraph
619
- | MarkdownBlockquote
620
- | MarkdownList
621
- | MarkdownCodeBlock
622
- | MarkdownThematicBreak
623
- | MarkdownTable
624
- | MarkdownHtmlBlock
625
- | MarkdownMathBlock
626
- | MarkdownLinkDefinition
627
- | MarkdownFootnoteDefinition
628
- | MarkdownContainerDirective
629
- | MarkdownLeafDirective
630
- | MarkdownDefinitionList;
631
-
632
- /** Inline/phrasing content that appears inside paragraphs, headings, links, etc. */
633
- export type MarkdownInlineNode =
634
- | MarkdownText
635
- | MarkdownEmphasis
636
- | MarkdownStrong
637
- | MarkdownStrikethrough
638
- | MarkdownInlineCode
639
- | MarkdownLink
640
- | MarkdownImage
641
- | MarkdownBreak
642
- | MarkdownInlineHtml
643
- | MarkdownInlineMath
644
- | MarkdownFootnoteReference
645
- | MarkdownLinkReference
646
- | MarkdownImageReference
647
- | MarkdownTextDirective
648
- | MarkdownMention
649
- | MarkdownInlineIcon;
650
-
651
- /**
652
- * Any node in the markdown tree. Includes structural nodes (listItem,
653
- * tableRow, tableCell, etc.) that only appear as children of specific parents.
654
- * Useful for generic tree-walking functions.
655
- */
656
- export type MarkdownNode =
657
- | MarkdownDocument
658
- | MarkdownBlockNode
659
- | MarkdownInlineNode
660
- | MarkdownListItem
661
- | MarkdownTableRow
662
- | MarkdownTableCell
663
- | MarkdownDefinitionTerm
664
- | MarkdownDefinitionDescription;
665
-
666
- // ============================================
667
- // Options
668
- // ============================================
669
-
670
- /**
671
- * Options for parseMarkdown().
672
- */
673
- export interface ParseOptions {
674
- /** Enable GFM extensions (tables, strikethrough, task lists, autolinks, footnotes). Default: true */
675
- gfm?: boolean;
676
- /** Enable math extensions ($...$ and $$...$$). Default: true */
677
- math?: boolean;
678
- /** Enable directive extensions (:::container, ::leaf, :text). Default: true */
679
- directive?: boolean;
680
- /** Parse raw HTML into HtmlNode sub-DOM trees. Default: true */
681
- parseHtml?: boolean;
682
- /** Enable YAML frontmatter parsing (--- blocks at top of document). Default: true */
683
- frontmatter?: boolean;
684
- }
685
-
686
- /**
687
- * Options for stringifyMarkdown().
688
- */
689
- export interface StringifyOptions {
690
- /** Enable GFM extensions in output. Default: true */
691
- gfm?: boolean;
692
- /** Enable math extensions in output. Default: true */
693
- math?: boolean;
694
- /** Enable directive extensions in output. Default: true */
695
- directive?: boolean;
696
- /** Bullet character for unordered lists. Default: '-' */
697
- bullet?: '-' | '*' | '+';
698
- /** Ordered list delimiter. Default: '.' */
699
- bulletOrdered?: '.' | ')';
700
- /** Emphasis marker character. Default: '*' */
701
- emphasis?: '*' | '_';
702
- /** Strong emphasis marker character. Default: '*' */
703
- strong?: '*' | '_';
704
- /** Thematic break character. Default: '-' */
705
- rule?: '-' | '*' | '_';
706
- /** Code fence character. Default: '`' */
707
- fence?: '`' | '~';
708
- /** Use setext-style headings (underlined) for depth 1-2. Default: false */
709
- setext?: boolean;
710
- }