@bendyline/squisq 2.1.0 → 2.2.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 (446) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE.md +24 -0
  3. package/dist/{ContentContainer-BXUlIf18.d.ts → ContentContainer-B2w9sUoL.d.ts} +15 -0
  4. package/dist/{Doc-DynJleo-.d.ts → Doc-BubIpWsp.d.ts} +1 -1
  5. package/dist/{ImageEditDoc-Ca4Tr9uN.d.ts → ImageEditDoc-CGxk5CHc.d.ts} +1 -1
  6. package/dist/{annotationCoercion-Dr_DY9Hx.d.ts → annotationCoercion-PtRQhk5V.d.ts} +1 -1
  7. package/dist/chunk-2L55443L.js +0 -0
  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-JI77MGAK.js → chunk-7ARJZYQY.js} +159 -120
  15. package/dist/{chunk-DBS6RIFL.js → chunk-7N4G32LG.js} +0 -1
  16. package/dist/{chunk-JOQYPRDZ.js → chunk-7YEZFHLS.js} +10 -8
  17. package/dist/{chunk-2UQOHYE2.js → chunk-7ZAAICW4.js} +0 -1
  18. package/dist/{chunk-66QO7XFB.js → chunk-ACZOVWX3.js} +117 -7
  19. package/dist/{chunk-5J4HKRJF.js → chunk-BAOV476U.js} +0 -1
  20. package/dist/chunk-BCCXTMN5.js +699 -0
  21. package/dist/{chunk-JHZWYRSW.js → chunk-C33GTPUZ.js} +11 -4
  22. package/dist/{chunk-QUUPYOSP.js → chunk-CB45YGAM.js} +2 -3
  23. package/dist/{chunk-XNLB57UD.js → chunk-DYPMOPIW.js} +18 -2
  24. package/dist/{chunk-VR7UPJ7C.js → chunk-FCG3BIZN.js} +12 -1
  25. package/dist/{chunk-5UYI3RJB.js → chunk-FDYDYL77.js} +54 -40
  26. package/dist/{chunk-OTKVFVL6.js → chunk-I2O6W7DX.js} +116 -44
  27. package/dist/{chunk-Q7LROV2H.js → chunk-NKNMGIIN.js} +0 -1
  28. package/dist/chunk-OPO5K4DZ.js +241 -0
  29. package/dist/{chunk-TUWMK62B.js → chunk-PUS54YU6.js} +45 -2
  30. package/dist/chunk-QKPXHDLR.js +0 -0
  31. package/dist/{chunk-GZY66SDN.js → chunk-R3KTTOMS.js} +0 -1
  32. package/dist/{chunk-ILWDXLUK.js → chunk-RS5AP3J4.js} +49 -10
  33. package/dist/chunk-WV5ARNDA.js +0 -0
  34. package/dist/{chunk-4X3JQXNM.js → chunk-XOFT65EX.js} +1 -2
  35. package/dist/{chunk-FVTQSNR7.js → chunk-XRW6P7IF.js} +13 -5
  36. package/dist/chunk-XWNNA3KE.js +0 -0
  37. package/dist/chunk-YZNGMV3G.js +0 -0
  38. package/dist/{chunk-R2YZTCLO.js → chunk-ZQKZSJAX.js} +1 -2
  39. package/dist/doc/index.d.ts +27 -12
  40. package/dist/doc/index.js +16 -17
  41. package/dist/generate/index.d.ts +2 -2
  42. package/dist/generate/index.js +2 -3
  43. package/dist/icons/index.js +3 -4
  44. package/dist/icons/inlineIconMarker.js +1 -2
  45. package/dist/imageEdit/index.d.ts +48 -17
  46. package/dist/imageEdit/index.js +3 -4
  47. package/dist/index.d.ts +11 -11
  48. package/dist/index.js +60 -33
  49. package/dist/jsonForm/index.d.ts +10 -3
  50. package/dist/jsonForm/index.js +8 -7
  51. package/dist/markdown/index.d.ts +75 -11
  52. package/dist/markdown/index.js +32 -7
  53. package/dist/{materializePageSection-DDzubQXo.d.ts → materializePageSection-wSLA2A1g.d.ts} +2 -2
  54. package/dist/narration/index.d.ts +16 -3
  55. package/dist/narration/index.js +13 -14
  56. package/dist/random/index.d.ts +11 -2
  57. package/dist/random/index.js +2 -3
  58. package/dist/recommend/index.d.ts +1 -1
  59. package/dist/recommend/index.js +3 -4
  60. package/dist/schemas/index.d.ts +5 -5
  61. package/dist/schemas/index.js +5 -6
  62. package/dist/spatial/index.d.ts +2 -1
  63. package/dist/spatial/index.js +1 -2
  64. package/dist/storage/index.d.ts +4 -2
  65. package/dist/storage/index.js +1 -2
  66. package/dist/{themeLibrary-B72m0W1y.d.ts → themeLibrary-DU9mUmVl.d.ts} +1 -1
  67. package/dist/timing/index.js +3 -4
  68. package/dist/transform/index.d.ts +3 -3
  69. package/dist/transform/index.js +6 -7
  70. package/dist/{types-C4kiRn_k.d.ts → types-8QjefM9J.d.ts} +38 -2
  71. package/dist/{types-BwMPl2CB.d.ts → types-CUNc9biN.d.ts} +24 -1
  72. package/dist/versions/index.d.ts +14 -11
  73. package/dist/versions/index.js +2 -3
  74. package/package.json +4 -2
  75. package/dist/chunk-2UQOHYE2.js.map +0 -1
  76. package/dist/chunk-3E5F2XMR.js.map +0 -1
  77. package/dist/chunk-4X3JQXNM.js.map +0 -1
  78. package/dist/chunk-5DKBFXPY.js.map +0 -1
  79. package/dist/chunk-5J4HKRJF.js.map +0 -1
  80. package/dist/chunk-5UYI3RJB.js.map +0 -1
  81. package/dist/chunk-66QO7XFB.js.map +0 -1
  82. package/dist/chunk-AMIR72JP.js +0 -380
  83. package/dist/chunk-AMIR72JP.js.map +0 -1
  84. package/dist/chunk-DBS6RIFL.js.map +0 -1
  85. package/dist/chunk-DNJKBAI7.js +0 -1
  86. package/dist/chunk-DNJKBAI7.js.map +0 -1
  87. package/dist/chunk-ET53IIEP.js +0 -1
  88. package/dist/chunk-ET53IIEP.js.map +0 -1
  89. package/dist/chunk-FVTQSNR7.js.map +0 -1
  90. package/dist/chunk-GZY66SDN.js.map +0 -1
  91. package/dist/chunk-ILWDXLUK.js.map +0 -1
  92. package/dist/chunk-JHZWYRSW.js.map +0 -1
  93. package/dist/chunk-JI77MGAK.js.map +0 -1
  94. package/dist/chunk-JOQYPRDZ.js.map +0 -1
  95. package/dist/chunk-OTKVFVL6.js.map +0 -1
  96. package/dist/chunk-PGGGKYWG.js +0 -1
  97. package/dist/chunk-PGGGKYWG.js.map +0 -1
  98. package/dist/chunk-Q7LROV2H.js.map +0 -1
  99. package/dist/chunk-QE7TWGVT.js.map +0 -1
  100. package/dist/chunk-QUUPYOSP.js.map +0 -1
  101. package/dist/chunk-R2GC6RLD.js +0 -344
  102. package/dist/chunk-R2GC6RLD.js.map +0 -1
  103. package/dist/chunk-R2YZTCLO.js.map +0 -1
  104. package/dist/chunk-S7A5D7ZJ.js +0 -174
  105. package/dist/chunk-S7A5D7ZJ.js.map +0 -1
  106. package/dist/chunk-TUWMK62B.js.map +0 -1
  107. package/dist/chunk-V543AI2F.js +0 -1
  108. package/dist/chunk-V543AI2F.js.map +0 -1
  109. package/dist/chunk-VR7UPJ7C.js.map +0 -1
  110. package/dist/chunk-VWCJ2WXC.js.map +0 -1
  111. package/dist/chunk-VYFRI7R6.js.map +0 -1
  112. package/dist/chunk-XNLB57UD.js.map +0 -1
  113. package/dist/chunk-ZLQKNOZQ.js +0 -1
  114. package/dist/chunk-ZLQKNOZQ.js.map +0 -1
  115. package/dist/doc/index.js.map +0 -1
  116. package/dist/generate/index.js.map +0 -1
  117. package/dist/icons/index.js.map +0 -1
  118. package/dist/icons/inlineIconMarker.js.map +0 -1
  119. package/dist/imageEdit/index.js.map +0 -1
  120. package/dist/index.js.map +0 -1
  121. package/dist/jsonForm/index.js.map +0 -1
  122. package/dist/markdown/index.js.map +0 -1
  123. package/dist/narration/index.js.map +0 -1
  124. package/dist/random/index.js.map +0 -1
  125. package/dist/recommend/index.js.map +0 -1
  126. package/dist/schemas/index.js.map +0 -1
  127. package/dist/spatial/index.js.map +0 -1
  128. package/dist/storage/index.js.map +0 -1
  129. package/dist/timing/index.js.map +0 -1
  130. package/dist/transform/index.js.map +0 -1
  131. package/dist/versions/index.js.map +0 -1
  132. package/src/__tests__/animationUtils.test.ts +0 -117
  133. package/src/__tests__/annotationCoercion.test.ts +0 -243
  134. package/src/__tests__/applyNarrationTiming.test.ts +0 -190
  135. package/src/__tests__/applyRenderStyle.test.ts +0 -146
  136. package/src/__tests__/asciiDiagramBattle.test.ts +0 -246
  137. package/src/__tests__/asciiDiagramDetect.test.ts +0 -162
  138. package/src/__tests__/asciiDiagramMapping.test.ts +0 -38
  139. package/src/__tests__/asciiDiagramParse.test.ts +0 -233
  140. package/src/__tests__/asciiDiagramPipeline.test.ts +0 -273
  141. package/src/__tests__/asciiDiagramRender.test.ts +0 -162
  142. package/src/__tests__/asciiDiagramRepair.test.ts +0 -84
  143. package/src/__tests__/asciiTimelineDetect.test.ts +0 -157
  144. package/src/__tests__/asciiTimelineParse.test.ts +0 -205
  145. package/src/__tests__/asciiTimelinePipeline.test.ts +0 -349
  146. package/src/__tests__/asciiTimelineRender.test.ts +0 -376
  147. package/src/__tests__/atmosphereLayers.test.ts +0 -108
  148. package/src/__tests__/attrTokens.test.ts +0 -167
  149. package/src/__tests__/colorUtils.test.ts +0 -112
  150. package/src/__tests__/contentContainer.test.ts +0 -325
  151. package/src/__tests__/contentExtractor.test.ts +0 -243
  152. package/src/__tests__/coverBlock.test.ts +0 -310
  153. package/src/__tests__/customTemplateSample.test.ts +0 -144
  154. package/src/__tests__/customTemplatesFrontmatter.test.ts +0 -221
  155. package/src/__tests__/customThemesFrontmatter.test.ts +0 -146
  156. package/src/__tests__/dataTable.test.ts +0 -145
  157. package/src/__tests__/diagramBlock.test.ts +0 -122
  158. package/src/__tests__/diagramLayout.test.ts +0 -134
  159. package/src/__tests__/diagramText.test.ts +0 -26
  160. package/src/__tests__/docToMarkdownMedia.test.ts +0 -83
  161. package/src/__tests__/drawing.test.ts +0 -109
  162. package/src/__tests__/drawingBlock.test.ts +0 -124
  163. package/src/__tests__/drawingLayout.test.ts +0 -171
  164. package/src/__tests__/fixtures/asciiDiagramBattle.ts +0 -512
  165. package/src/__tests__/fixtures/asciiDiagrams.ts +0 -287
  166. package/src/__tests__/fixtures/asciiTimelines.ts +0 -35
  167. package/src/__tests__/fixtures/treeviewFixtures.ts +0 -243
  168. package/src/__tests__/geohash.test.ts +0 -110
  169. package/src/__tests__/getLayers.test.ts +0 -243
  170. package/src/__tests__/getLayersFallback.test.ts +0 -103
  171. package/src/__tests__/haversine.test.ts +0 -63
  172. package/src/__tests__/iconResolve.test.ts +0 -122
  173. package/src/__tests__/imageEditExportSvg.test.ts +0 -70
  174. package/src/__tests__/imageEditState.test.ts +0 -74
  175. package/src/__tests__/imageEditVersions.test.ts +0 -243
  176. package/src/__tests__/inferDocumentTitle.test.ts +0 -50
  177. package/src/__tests__/inlineIconMarker.test.ts +0 -36
  178. package/src/__tests__/inputDescriptors.test.ts +0 -162
  179. package/src/__tests__/jsonForm.chooseControl.test.ts +0 -86
  180. package/src/__tests__/jsonForm.evaluateWhen.test.ts +0 -59
  181. package/src/__tests__/jsonForm.inferSchema.test.ts +0 -25
  182. package/src/__tests__/jsonForm.pointer.test.ts +0 -149
  183. package/src/__tests__/jsonForm.tokens.test.ts +0 -84
  184. package/src/__tests__/layoutBlock.test.ts +0 -83
  185. package/src/__tests__/layoutLayout.test.ts +0 -169
  186. package/src/__tests__/localForageAdapter.test.ts +0 -155
  187. package/src/__tests__/majorApiTypes.test.ts +0 -18
  188. package/src/__tests__/markdown.test.ts +0 -1009
  189. package/src/__tests__/markdownIcons.test.ts +0 -104
  190. package/src/__tests__/markdownSanitize.test.ts +0 -81
  191. package/src/__tests__/markdownToDoc.test.ts +0 -957
  192. package/src/__tests__/matchFontFamily.test.ts +0 -114
  193. package/src/__tests__/materializeBlockLayers.test.ts +0 -167
  194. package/src/__tests__/materializePageSections.test.ts +0 -404
  195. package/src/__tests__/materializeTestUtils.ts +0 -17
  196. package/src/__tests__/mediaAnnotations.test.ts +0 -91
  197. package/src/__tests__/mediaSchedule.test.ts +0 -118
  198. package/src/__tests__/narrationAlign.test.ts +0 -150
  199. package/src/__tests__/narrationFeatures.test.ts +0 -71
  200. package/src/__tests__/narrationNuclei.test.ts +0 -45
  201. package/src/__tests__/narrationPacing.test.ts +0 -189
  202. package/src/__tests__/narrationScript.test.ts +0 -149
  203. package/src/__tests__/narrationSessionRepro.test.ts +0 -62
  204. package/src/__tests__/narrationSidecar.test.ts +0 -88
  205. package/src/__tests__/narrationSyllables.test.ts +0 -65
  206. package/src/__tests__/narrationTestSignals.ts +0 -167
  207. package/src/__tests__/narrationVad.test.ts +0 -66
  208. package/src/__tests__/pageStyle.test.ts +0 -258
  209. package/src/__tests__/pandocAttrParse.test.ts +0 -187
  210. package/src/__tests__/recommendTemplates.test.ts +0 -183
  211. package/src/__tests__/resolveDocTheme.test.ts +0 -69
  212. package/src/__tests__/rootExports.test.ts +0 -61
  213. package/src/__tests__/scopedContentContainer.test.ts +0 -109
  214. package/src/__tests__/seededRandom.test.ts +0 -142
  215. package/src/__tests__/shapeGeometry.test.ts +0 -138
  216. package/src/__tests__/shapeVocabulary.test.ts +0 -133
  217. package/src/__tests__/storage.test.ts +0 -60
  218. package/src/__tests__/structuredData.test.ts +0 -249
  219. package/src/__tests__/surface.test.ts +0 -68
  220. package/src/__tests__/templateAnnotationParse.test.ts +0 -173
  221. package/src/__tests__/templateInputs.test.ts +0 -69
  222. package/src/__tests__/templateMetadata.test.ts +0 -32
  223. package/src/__tests__/templates.test.ts +0 -710
  224. package/src/__tests__/themeCompile.test.ts +0 -225
  225. package/src/__tests__/themeValidator.test.ts +0 -131
  226. package/src/__tests__/timing.test.ts +0 -167
  227. package/src/__tests__/transformProvenance.test.ts +0 -160
  228. package/src/__tests__/transformV2.test.ts +0 -163
  229. package/src/__tests__/transitionNormalize.test.ts +0 -61
  230. package/src/__tests__/treeviewBattle.test.ts +0 -76
  231. package/src/__tests__/treeviewDetect.test.ts +0 -168
  232. package/src/__tests__/treeviewParse.test.ts +0 -118
  233. package/src/__tests__/treeviewPipeline.test.ts +0 -183
  234. package/src/__tests__/treeviewRender.test.ts +0 -91
  235. package/src/__tests__/validateDoc.test.ts +0 -260
  236. package/src/__tests__/versions.test.ts +0 -459
  237. package/src/doc/annotationBlocks.ts +0 -117
  238. package/src/doc/applyNarrationTiming.ts +0 -244
  239. package/src/doc/asciiDiagram/chars.ts +0 -210
  240. package/src/doc/asciiDiagram/detect.ts +0 -175
  241. package/src/doc/asciiDiagram/index.ts +0 -38
  242. package/src/doc/asciiDiagram/mapping.ts +0 -225
  243. package/src/doc/asciiDiagram/parse.ts +0 -1095
  244. package/src/doc/asciiDiagram/render.ts +0 -963
  245. package/src/doc/asciiDiagram/repair.ts +0 -400
  246. package/src/doc/asciiDiagram/types.ts +0 -65
  247. package/src/doc/asciiTimeline/detect.ts +0 -138
  248. package/src/doc/asciiTimeline/index.ts +0 -26
  249. package/src/doc/asciiTimeline/mapping.ts +0 -43
  250. package/src/doc/asciiTimeline/parse.ts +0 -870
  251. package/src/doc/asciiTimeline/render.ts +0 -427
  252. package/src/doc/asciiTimeline/types.ts +0 -73
  253. package/src/doc/asciiTimeline/wrappedFlow.ts +0 -427
  254. package/src/doc/audioMapping.ts +0 -442
  255. package/src/doc/customTemplatesFrontmatter.ts +0 -273
  256. package/src/doc/customThemesFrontmatter.ts +0 -95
  257. package/src/doc/docToMarkdown.ts +0 -284
  258. package/src/doc/index.ts +0 -161
  259. package/src/doc/markdownToDoc.ts +0 -1054
  260. package/src/doc/materializeBlockLayers.ts +0 -465
  261. package/src/doc/mediaAnnotations.ts +0 -120
  262. package/src/doc/page/PageSection.ts +0 -174
  263. package/src/doc/page/materializePageSection.ts +0 -616
  264. package/src/doc/page/resolvePageBlock.ts +0 -108
  265. package/src/doc/page/sectionExtractors.ts +0 -466
  266. package/src/doc/pageCss.ts +0 -628
  267. package/src/doc/resolveDocTheme.ts +0 -56
  268. package/src/doc/standaloneAnnotation.ts +0 -58
  269. package/src/doc/structuredData.ts +0 -301
  270. package/src/doc/templateInputs.ts +0 -424
  271. package/src/doc/templates/__tests__/customTemplate.test.ts +0 -170
  272. package/src/doc/templates/__tests__/customTemplateRegistry.test.ts +0 -124
  273. package/src/doc/templates/__tests__/listBlock.test.ts +0 -64
  274. package/src/doc/templates/accentImage.ts +0 -362
  275. package/src/doc/templates/captionUtils.ts +0 -56
  276. package/src/doc/templates/comparisonBar.ts +0 -173
  277. package/src/doc/templates/coverBlock.ts +0 -255
  278. package/src/doc/templates/customTemplate.ts +0 -51
  279. package/src/doc/templates/dataTable.ts +0 -102
  280. package/src/doc/templates/dateEvent.ts +0 -147
  281. package/src/doc/templates/definitionCard.ts +0 -140
  282. package/src/doc/templates/diagramBlock.ts +0 -403
  283. package/src/doc/templates/diagramLayout.ts +0 -159
  284. package/src/doc/templates/drawingBlock.ts +0 -325
  285. package/src/doc/templates/drawingLayout.ts +0 -539
  286. package/src/doc/templates/factCard.ts +0 -146
  287. package/src/doc/templates/fallbackBlock.ts +0 -123
  288. package/src/doc/templates/featureBlock.ts +0 -209
  289. package/src/doc/templates/fullBleedQuote.ts +0 -83
  290. package/src/doc/templates/imageWithCaption.ts +0 -186
  291. package/src/doc/templates/index.ts +0 -642
  292. package/src/doc/templates/inputDescriptors.ts +0 -451
  293. package/src/doc/templates/layoutBlock.ts +0 -43
  294. package/src/doc/templates/layoutLayout.ts +0 -243
  295. package/src/doc/templates/listBlock.ts +0 -207
  296. package/src/doc/templates/mapBlock.ts +0 -138
  297. package/src/doc/templates/metadata.ts +0 -130
  298. package/src/doc/templates/persistentLayers.ts +0 -526
  299. package/src/doc/templates/photoGrid.ts +0 -190
  300. package/src/doc/templates/pullQuote.ts +0 -141
  301. package/src/doc/templates/quoteBlock.ts +0 -141
  302. package/src/doc/templates/registry.ts +0 -88
  303. package/src/doc/templates/sectionHeader.ts +0 -120
  304. package/src/doc/templates/statHighlight.ts +0 -146
  305. package/src/doc/templates/templateNames.ts +0 -22
  306. package/src/doc/templates/timelineBlock.ts +0 -613
  307. package/src/doc/templates/titleBlock.ts +0 -150
  308. package/src/doc/templates/tokens/__tests__/resolveTokens.test.ts +0 -487
  309. package/src/doc/templates/tokens/resolveTokens.ts +0 -453
  310. package/src/doc/templates/treeBlock.ts +0 -131
  311. package/src/doc/templates/twoColumn.ts +0 -263
  312. package/src/doc/templates/videoPullQuote.ts +0 -142
  313. package/src/doc/templates/videoWithCaption.ts +0 -135
  314. package/src/doc/treeview/chars.ts +0 -72
  315. package/src/doc/treeview/detect.ts +0 -145
  316. package/src/doc/treeview/index.ts +0 -30
  317. package/src/doc/treeview/mapping.ts +0 -95
  318. package/src/doc/treeview/parse.ts +0 -201
  319. package/src/doc/treeview/render.ts +0 -41
  320. package/src/doc/treeview/types.ts +0 -43
  321. package/src/doc/utils/animationUtils.ts +0 -399
  322. package/src/doc/utils/applyRenderStyle.ts +0 -106
  323. package/src/doc/utils/diagramText.ts +0 -78
  324. package/src/doc/utils/imageTreatment.ts +0 -70
  325. package/src/doc/utils/nearest.ts +0 -59
  326. package/src/doc/utils/shapeGeometry.ts +0 -614
  327. package/src/doc/utils/themeUtils.ts +0 -243
  328. package/src/doc/validate.ts +0 -575
  329. package/src/generate/contentExtractor.ts +0 -921
  330. package/src/generate/index.ts +0 -18
  331. package/src/generate/templateMapper.ts +0 -177
  332. package/src/icons/iconData.ts +0 -31
  333. package/src/icons/index.ts +0 -26
  334. package/src/icons/inlineIconMarker.ts +0 -73
  335. package/src/icons/resolve.ts +0 -139
  336. package/src/imageEdit/ImageEditVersionManager.ts +0 -73
  337. package/src/imageEdit/export.ts +0 -410
  338. package/src/imageEdit/index.ts +0 -72
  339. package/src/imageEdit/persistence.ts +0 -113
  340. package/src/imageEdit/state.ts +0 -112
  341. package/src/imageEdit/versionPaths.ts +0 -44
  342. package/src/imageEdit/versions.ts +0 -152
  343. package/src/index.ts +0 -15
  344. package/src/internal/immutable.ts +0 -58
  345. package/src/jsonForm/chooseControl.ts +0 -88
  346. package/src/jsonForm/evaluateWhen.ts +0 -59
  347. package/src/jsonForm/index.ts +0 -32
  348. package/src/jsonForm/inferSchema.ts +0 -25
  349. package/src/jsonForm/pointer.ts +0 -154
  350. package/src/jsonForm/tokens.ts +0 -78
  351. package/src/jsonForm/types.ts +0 -167
  352. package/src/markdown/annotationCoercion.ts +0 -295
  353. package/src/markdown/attrTokens.ts +0 -243
  354. package/src/markdown/convert.ts +0 -1353
  355. package/src/markdown/htmlParse.ts +0 -212
  356. package/src/markdown/index.ts +0 -152
  357. package/src/markdown/parse.ts +0 -103
  358. package/src/markdown/sanitize.ts +0 -318
  359. package/src/markdown/stringify.ts +0 -207
  360. package/src/markdown/types.ts +0 -710
  361. package/src/markdown/utils.ts +0 -459
  362. package/src/narration/align.ts +0 -514
  363. package/src/narration/features.ts +0 -231
  364. package/src/narration/index.ts +0 -86
  365. package/src/narration/nuclei.ts +0 -118
  366. package/src/narration/pacing.ts +0 -211
  367. package/src/narration/script.ts +0 -239
  368. package/src/narration/session.ts +0 -100
  369. package/src/narration/sidecar.ts +0 -187
  370. package/src/narration/syllables.ts +0 -85
  371. package/src/narration/trace.ts +0 -50
  372. package/src/narration/types.ts +0 -299
  373. package/src/narration/vad.ts +0 -131
  374. package/src/ngeohash.d.ts +0 -11
  375. package/src/random/SeededRandom.ts +0 -127
  376. package/src/random/index.ts +0 -1
  377. package/src/recommend/index.ts +0 -16
  378. package/src/recommend/numberHighlight.ts +0 -25
  379. package/src/recommend/templates.ts +0 -393
  380. package/src/schemas/BlockTemplates.ts +0 -1046
  381. package/src/schemas/CustomTemplates.ts +0 -126
  382. package/src/schemas/Doc.ts +0 -1073
  383. package/src/schemas/ImageEditDoc.ts +0 -102
  384. package/src/schemas/LayoutStrategy.ts +0 -178
  385. package/src/schemas/Media.ts +0 -179
  386. package/src/schemas/MediaProvider.ts +0 -70
  387. package/src/schemas/PageStyle.ts +0 -213
  388. package/src/schemas/Theme.ts +0 -413
  389. package/src/schemas/Transitions.ts +0 -224
  390. package/src/schemas/Types.ts +0 -15
  391. package/src/schemas/Viewport.ts +0 -91
  392. package/src/schemas/colorUtils.ts +0 -219
  393. package/src/schemas/fontStacks.ts +0 -339
  394. package/src/schemas/index.ts +0 -31
  395. package/src/schemas/pageStyleDefaults.ts +0 -204
  396. package/src/schemas/themeCompile.ts +0 -244
  397. package/src/schemas/themeConstants.ts +0 -2
  398. package/src/schemas/themeLibrary.ts +0 -60
  399. package/src/schemas/themeValidator.ts +0 -609
  400. package/src/schemas/themes/bold.json +0 -77
  401. package/src/schemas/themes/cinematic.json +0 -143
  402. package/src/schemas/themes/documentary.json +0 -125
  403. package/src/schemas/themes/gezellig.json +0 -123
  404. package/src/schemas/themes/index.ts +0 -53
  405. package/src/schemas/themes/magazine.json +0 -126
  406. package/src/schemas/themes/minimalist.json +0 -74
  407. package/src/schemas/themes/morning-light.json +0 -117
  408. package/src/schemas/themes/standard-dark.json +0 -109
  409. package/src/schemas/themes/standard.json +0 -98
  410. package/src/schemas/themes/tech-dark.json +0 -143
  411. package/src/schemas/themes/warm-earth.json +0 -74
  412. package/src/spatial/Geohash.ts +0 -196
  413. package/src/spatial/Haversine.ts +0 -59
  414. package/src/spatial/index.ts +0 -2
  415. package/src/storage/ContentContainer.ts +0 -220
  416. package/src/storage/LocalForageAdapter.ts +0 -103
  417. package/src/storage/LocalStorageAdapter.ts +0 -57
  418. package/src/storage/MediaProviderFromContainer.ts +0 -92
  419. package/src/storage/MemoryStorageAdapter.ts +0 -37
  420. package/src/storage/ScopedContentContainer.ts +0 -143
  421. package/src/storage/Storage.ts +0 -28
  422. package/src/storage/index.ts +0 -9
  423. package/src/timing/index.ts +0 -17
  424. package/src/timing/narrationTiming.ts +0 -220
  425. package/src/timing/readingTime.ts +0 -94
  426. package/src/transform/applyTransform.ts +0 -122
  427. package/src/transform/blockAnalyzer.ts +0 -181
  428. package/src/transform/index.ts +0 -23
  429. package/src/transform/registry.ts +0 -217
  430. package/src/transform/styles/dataDriven.ts +0 -18
  431. package/src/transform/styles/documentary.ts +0 -18
  432. package/src/transform/styles/index.ts +0 -5
  433. package/src/transform/styles/magazine.ts +0 -19
  434. package/src/transform/styles/minimal.ts +0 -18
  435. package/src/transform/styles/narrative.ts +0 -19
  436. package/src/transform/templateSelector.ts +0 -389
  437. package/src/transform/timingAllocator.ts +0 -257
  438. package/src/transform/types.ts +0 -158
  439. package/src/versions/DocumentVersionManager.ts +0 -70
  440. package/src/versions/gitignore.ts +0 -34
  441. package/src/versions/index.ts +0 -56
  442. package/src/versions/operations.ts +0 -144
  443. package/src/versions/paths.ts +0 -51
  444. package/src/versions/snapshotStore.ts +0 -202
  445. package/src/versions/timestamp.ts +0 -48
  446. 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
- }