@stll/folio-core 0.0.1-placeholder.0 → 0.1.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 (683) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE.md +29 -0
  3. package/README.md +41 -0
  4. package/dist/_virtual/_rolldown/runtime.js +13 -0
  5. package/dist/ai-edits/apply.d.ts +35 -0
  6. package/dist/ai-edits/apply.js +683 -0
  7. package/dist/ai-edits/clean-text.d.ts +28 -0
  8. package/dist/ai-edits/clean-text.js +23 -0
  9. package/dist/ai-edits/headless.d.ts +225 -0
  10. package/dist/ai-edits/headless.js +513 -0
  11. package/dist/ai-edits/index.d.ts +6 -0
  12. package/dist/ai-edits/index.js +5 -0
  13. package/dist/ai-edits/inline-emphasis.d.ts +38 -0
  14. package/dist/ai-edits/inline-emphasis.js +78 -0
  15. package/dist/ai-edits/snapshot.d.ts +9 -0
  16. package/dist/ai-edits/snapshot.js +195 -0
  17. package/dist/ai-edits/types.d.ts +156 -0
  18. package/dist/ai-edits/types.js +0 -0
  19. package/dist/ai-edits/word-diff.d.ts +20 -0
  20. package/dist/ai-edits/word-diff.js +77 -0
  21. package/dist/ai-suggestions/apply.d.ts +17 -0
  22. package/dist/ai-suggestions/apply.js +64 -0
  23. package/dist/ai-suggestions/conflict.d.ts +22 -0
  24. package/dist/ai-suggestions/conflict.js +67 -0
  25. package/dist/ai-suggestions/text-positions.d.ts +21 -0
  26. package/dist/ai-suggestions/text-positions.js +48 -0
  27. package/dist/ai-suggestions/types.d.ts +199 -0
  28. package/dist/ai-suggestions/types.js +59 -0
  29. package/dist/content-controls/errors.d.ts +52 -0
  30. package/dist/content-controls/errors.js +36 -0
  31. package/dist/content-controls/findContentControls.d.ts +55 -0
  32. package/dist/content-controls/findContentControls.js +75 -0
  33. package/dist/content-controls/index.d.ts +4 -0
  34. package/dist/content-controls/index.js +4 -0
  35. package/dist/content-controls/mutateContentControls.d.ts +51 -0
  36. package/dist/content-controls/mutateContentControls.js +377 -0
  37. package/dist/controller/folioEditor.d.ts +21 -0
  38. package/dist/controller/folioEditor.js +29 -0
  39. package/dist/controller/folioEditorEvents.d.ts +23 -0
  40. package/dist/controller/folioEditorEvents.js +24 -0
  41. package/dist/controller/hiddenEditorApi.d.ts +35 -0
  42. package/dist/controller/hiddenEditorApi.js +112 -0
  43. package/dist/controller/hiddenEditorManager.d.ts +93 -0
  44. package/dist/controller/hiddenEditorManager.js +308 -0
  45. package/dist/controller/layoutPipeline.d.ts +63 -0
  46. package/dist/controller/layoutPipeline.js +406 -0
  47. package/dist/controller/layoutScheduler.d.ts +41 -0
  48. package/dist/controller/layoutScheduler.js +59 -0
  49. package/dist/controller/layoutSession.d.ts +24 -0
  50. package/dist/controller/layoutSession.js +13 -0
  51. package/dist/docx/blockContentParser.d.ts +13 -0
  52. package/dist/docx/blockContentParser.js +289 -0
  53. package/dist/docx/bookmarkParser.d.ts +178 -0
  54. package/dist/docx/bookmarkParser.js +246 -0
  55. package/dist/docx/bookmarkPlacement.d.ts +10 -0
  56. package/dist/docx/bookmarkPlacement.js +50 -0
  57. package/dist/docx/bulletMarkers.d.ts +4 -0
  58. package/dist/docx/bulletMarkers.js +42 -0
  59. package/dist/docx/commentParser.d.ts +34 -0
  60. package/dist/docx/commentParser.js +127 -0
  61. package/dist/docx/commentReferenceNormalization.d.ts +25 -0
  62. package/dist/docx/commentReferenceNormalization.js +97 -0
  63. package/dist/docx/commentReplyMarkers.d.ts +20 -0
  64. package/dist/docx/commentReplyMarkers.js +123 -0
  65. package/dist/docx/compatibility.d.ts +12 -0
  66. package/dist/docx/compatibility.js +77 -0
  67. package/dist/docx/documentParser.d.ts +65 -0
  68. package/dist/docx/documentParser.js +209 -0
  69. package/dist/docx/drawingUtils.d.ts +56 -0
  70. package/dist/docx/drawingUtils.js +305 -0
  71. package/dist/docx/fieldParser.d.ts +228 -0
  72. package/dist/docx/fieldParser.js +559 -0
  73. package/dist/docx/footnoteParser.d.ts +109 -0
  74. package/dist/docx/footnoteParser.js +270 -0
  75. package/dist/docx/headerFooterParser.d.ts +119 -0
  76. package/dist/docx/headerFooterParser.js +266 -0
  77. package/dist/docx/headerFooterRefParser.d.ts +22 -0
  78. package/dist/docx/headerFooterRefParser.js +52 -0
  79. package/dist/docx/headerFooterReferenceNormalization.d.ts +19 -0
  80. package/dist/docx/headerFooterReferenceNormalization.js +64 -0
  81. package/dist/docx/hyperlinkParser.d.ts +108 -0
  82. package/dist/docx/hyperlinkParser.js +230 -0
  83. package/dist/docx/imageParser.d.ts +93 -0
  84. package/dist/docx/imageParser.js +522 -0
  85. package/dist/docx/mathToMathml.d.ts +15 -0
  86. package/dist/docx/mathToMathml.js +357 -0
  87. package/dist/docx/modelValidation.d.ts +13 -0
  88. package/dist/docx/modelValidation.js +21 -0
  89. package/dist/docx/normalizeBaseDirection.d.ts +12 -0
  90. package/dist/docx/normalizeBaseDirection.js +81 -0
  91. package/dist/docx/notePropertiesParser.d.ts +16 -0
  92. package/dist/docx/notePropertiesParser.js +99 -0
  93. package/dist/docx/numberingParser.d.ts +86 -0
  94. package/dist/docx/numberingParser.js +735 -0
  95. package/dist/docx/numberingReferenceNormalization.d.ts +25 -0
  96. package/dist/docx/numberingReferenceNormalization.js +22 -0
  97. package/dist/docx/paragraphParser.d.ts +86 -0
  98. package/dist/docx/paragraphParser.js +1132 -0
  99. package/dist/docx/paragraphTraversal.d.ts +19 -0
  100. package/dist/docx/paragraphTraversal.js +76 -0
  101. package/dist/docx/parser.d.ts +67 -0
  102. package/dist/docx/parser.js +391 -0
  103. package/dist/docx/parserEnums.d.ts +45 -0
  104. package/dist/docx/parserEnums.js +70 -0
  105. package/dist/docx/relsParser.d.ts +160 -0
  106. package/dist/docx/relsParser.js +235 -0
  107. package/dist/docx/replyToComment.d.ts +29 -0
  108. package/dist/docx/replyToComment.js +73 -0
  109. package/dist/docx/rezip.d.ts +166 -0
  110. package/dist/docx/rezip.js +1194 -0
  111. package/dist/docx/runConsolidator.d.ts +57 -0
  112. package/dist/docx/runConsolidator.js +224 -0
  113. package/dist/docx/runParser.d.ts +78 -0
  114. package/dist/docx/runParser.js +661 -0
  115. package/dist/docx/sdtProperties.d.ts +15 -0
  116. package/dist/docx/sdtProperties.js +290 -0
  117. package/dist/docx/sdtPropertiesPatch.d.ts +16 -0
  118. package/dist/docx/sdtPropertiesPatch.js +144 -0
  119. package/dist/docx/sectionParser.d.ts +95 -0
  120. package/dist/docx/sectionParser.js +534 -0
  121. package/dist/docx/selectiveSave.d.ts +25 -0
  122. package/dist/docx/selectiveSave.js +247 -0
  123. package/dist/docx/selectiveSaveFlags.d.ts +33 -0
  124. package/dist/docx/selectiveSaveFlags.js +11 -0
  125. package/dist/docx/selectiveSaveTripwire.d.ts +33 -0
  126. package/dist/docx/selectiveSaveTripwire.js +79 -0
  127. package/dist/docx/selectiveXmlPatch.d.ts +103 -0
  128. package/dist/docx/selectiveXmlPatch.js +493 -0
  129. package/dist/docx/serializer/blockSdtSerializer.d.ts +6 -0
  130. package/dist/docx/serializer/blockSdtSerializer.js +88 -0
  131. package/dist/docx/serializer/borderSerializer.d.ts +25 -0
  132. package/dist/docx/serializer/borderSerializer.js +44 -0
  133. package/dist/docx/serializer/commentSerializer.d.ts +31 -0
  134. package/dist/docx/serializer/commentSerializer.js +184 -0
  135. package/dist/docx/serializer/documentSerializer.d.ts +65 -0
  136. package/dist/docx/serializer/documentSerializer.js +199 -0
  137. package/dist/docx/serializer/headerFooterSerializer.d.ts +12 -0
  138. package/dist/docx/serializer/headerFooterSerializer.js +84 -0
  139. package/dist/docx/serializer/noteSerializer.d.ts +19 -0
  140. package/dist/docx/serializer/noteSerializer.js +70 -0
  141. package/dist/docx/serializer/numberingSerializer.d.ts +12 -0
  142. package/dist/docx/serializer/numberingSerializer.js +93 -0
  143. package/dist/docx/serializer/paragraphSerializer.d.ts +48 -0
  144. package/dist/docx/serializer/paragraphSerializer.js +559 -0
  145. package/dist/docx/serializer/runSerializer.d.ts +56 -0
  146. package/dist/docx/serializer/runSerializer.js +621 -0
  147. package/dist/docx/serializer/sectionPropertiesSerializer.d.ts +6 -0
  148. package/dist/docx/serializer/sectionPropertiesSerializer.js +187 -0
  149. package/dist/docx/serializer/tableSerializer.d.ts +79 -0
  150. package/dist/docx/serializer/tableSerializer.js +422 -0
  151. package/dist/docx/serializer/xmlUtils.d.ts +20 -0
  152. package/dist/docx/serializer/xmlUtils.js +25 -0
  153. package/dist/docx/settingsParser.d.ts +8 -0
  154. package/dist/docx/settingsParser.js +36 -0
  155. package/dist/docx/shapeParser.d.ts +20 -0
  156. package/dist/docx/shapeParser.js +272 -0
  157. package/dist/docx/styleParser.d.ts +50 -0
  158. package/dist/docx/styleParser.js +905 -0
  159. package/dist/docx/tableParser.d.ts +202 -0
  160. package/dist/docx/tableParser.js +811 -0
  161. package/dist/docx/textBoxParser.d.ts +117 -0
  162. package/dist/docx/textBoxParser.js +262 -0
  163. package/dist/docx/themeParser.d.ts +77 -0
  164. package/dist/docx/themeParser.js +330 -0
  165. package/dist/docx/trackedMoveRangeNormalization.d.ts +22 -0
  166. package/dist/docx/trackedMoveRangeNormalization.js +100 -0
  167. package/dist/docx/unzip.d.ts +118 -0
  168. package/dist/docx/unzip.js +383 -0
  169. package/dist/docx/vmlImageParser.d.ts +16 -0
  170. package/dist/docx/vmlImageParser.js +100 -0
  171. package/dist/docx/watermarkParser.d.ts +45 -0
  172. package/dist/docx/watermarkParser.js +348 -0
  173. package/dist/docx/wrapTypes.d.ts +29 -0
  174. package/dist/docx/wrapTypes.js +48 -0
  175. package/dist/docx/xmlParser.d.ts +297 -0
  176. package/dist/docx/xmlParser.js +527 -0
  177. package/dist/fields/bookmarkPages.d.ts +13 -0
  178. package/dist/fields/bookmarkPages.js +66 -0
  179. package/dist/fields/bookmarkText.d.ts +16 -0
  180. package/dist/fields/bookmarkText.js +61 -0
  181. package/dist/fields/evaluateField.d.ts +23 -0
  182. package/dist/fields/evaluateField.js +77 -0
  183. package/dist/fields/fieldContext.d.ts +21 -0
  184. package/dist/fields/fieldContext.js +0 -0
  185. package/dist/fields/resolveFieldValues.d.ts +44 -0
  186. package/dist/fields/resolveFieldValues.js +204 -0
  187. package/dist/fields/sectionPageCounts.d.ts +11 -0
  188. package/dist/fields/sectionPageCounts.js +16 -0
  189. package/dist/fields/seqValues.d.ts +14 -0
  190. package/dist/fields/seqValues.js +36 -0
  191. package/dist/fonts/embeddedFontTable.d.ts +42 -0
  192. package/dist/fonts/embeddedFontTable.js +80 -0
  193. package/dist/fonts/embeddedFonts.d.ts +46 -0
  194. package/dist/fonts/embeddedFonts.js +112 -0
  195. package/dist/fonts/fontDeobfuscation.d.ts +30 -0
  196. package/dist/fonts/fontDeobfuscation.js +57 -0
  197. package/dist/index.d.ts +28 -0
  198. package/dist/index.js +23 -0
  199. package/dist/layout-bridge/convert/footnoteLayout.d.ts +57 -0
  200. package/dist/layout-bridge/convert/footnoteLayout.js +316 -0
  201. package/dist/layout-bridge/convert/headerFooterLayout.d.ts +74 -0
  202. package/dist/layout-bridge/convert/headerFooterLayout.js +432 -0
  203. package/dist/layout-bridge/convert/templatePreviewFlow.d.ts +36 -0
  204. package/dist/layout-bridge/convert/templatePreviewFlow.js +176 -0
  205. package/dist/layout-bridge/convert/toFlowBlocks.d.ts +65 -0
  206. package/dist/layout-bridge/convert/toFlowBlocks.js +1309 -0
  207. package/dist/layout-bridge/convert/wrapEditorViewAsSurface.d.ts +17 -0
  208. package/dist/layout-bridge/convert/wrapEditorViewAsSurface.js +36 -0
  209. package/dist/layout-bridge/dom/clickToPositionDom.d.ts +66 -0
  210. package/dist/layout-bridge/dom/clickToPositionDom.js +304 -0
  211. package/dist/layout-bridge/dom/findBodyPmSpans.d.ts +7 -0
  212. package/dist/layout-bridge/dom/findBodyPmSpans.js +17 -0
  213. package/dist/layout-bridge/dom/findHfPmSpans.d.ts +62 -0
  214. package/dist/layout-bridge/dom/findHfPmSpans.js +197 -0
  215. package/dist/layout-bridge/engine/clickToPosition.d.ts +66 -0
  216. package/dist/layout-bridge/engine/clickToPosition.js +403 -0
  217. package/dist/layout-bridge/engine/hitTest.d.ts +135 -0
  218. package/dist/layout-bridge/engine/hitTest.js +375 -0
  219. package/dist/layout-bridge/engine/measuring/index.d.ts +10 -0
  220. package/dist/layout-bridge/engine/measuring/index.js +9 -0
  221. package/dist/layout-bridge/engine/selectionRects.d.ts +59 -0
  222. package/dist/layout-bridge/engine/selectionRects.js +485 -0
  223. package/dist/layout-bridge/engine/tableWidthUtils.d.ts +7 -0
  224. package/dist/layout-bridge/engine/tableWidthUtils.js +25 -0
  225. package/dist/layout-engine/index.d.ts +44 -0
  226. package/dist/layout-engine/index.js +691 -0
  227. package/dist/layout-engine/keep-together.d.ts +43 -0
  228. package/dist/layout-engine/keep-together.js +98 -0
  229. package/dist/layout-engine/layoutInstrumentation.d.ts +50 -0
  230. package/dist/layout-engine/layoutInstrumentation.js +43 -0
  231. package/dist/layout-engine/lineFlow.d.ts +8 -0
  232. package/dist/layout-engine/lineFlow.js +17 -0
  233. package/dist/layout-engine/measure/cache.d.ts +93 -0
  234. package/dist/layout-engine/measure/cache.js +245 -0
  235. package/dist/layout-engine/measure/clampFloatingWrapMargins.d.ts +20 -0
  236. package/dist/layout-engine/measure/clampFloatingWrapMargins.js +29 -0
  237. package/dist/layout-engine/measure/featureFlags.d.ts +44 -0
  238. package/dist/layout-engine/measure/featureFlags.js +19 -0
  239. package/dist/layout-engine/measure/floatingZones.d.ts +89 -0
  240. package/dist/layout-engine/measure/floatingZones.js +152 -0
  241. package/dist/layout-engine/measure/font-metrics.worker.d.ts +17 -0
  242. package/dist/layout-engine/measure/font-metrics.worker.js +104 -0
  243. package/dist/layout-engine/measure/index.d.ts +9 -0
  244. package/dist/layout-engine/measure/index.js +8 -0
  245. package/dist/layout-engine/measure/listMarkerWidth.d.ts +40 -0
  246. package/dist/layout-engine/measure/listMarkerWidth.js +76 -0
  247. package/dist/layout-engine/measure/measureBlocks.d.ts +25 -0
  248. package/dist/layout-engine/measure/measureBlocks.js +450 -0
  249. package/dist/layout-engine/measure/measureContainer.d.ts +24 -0
  250. package/dist/layout-engine/measure/measureContainer.js +280 -0
  251. package/dist/layout-engine/measure/measureHelpers.d.ts +82 -0
  252. package/dist/layout-engine/measure/measureHelpers.js +156 -0
  253. package/dist/layout-engine/measure/measureParagraph.d.ts +61 -0
  254. package/dist/layout-engine/measure/measureParagraph.js +724 -0
  255. package/dist/layout-engine/measure/measureProvider.d.ts +23 -0
  256. package/dist/layout-engine/measure/measureProvider.js +35 -0
  257. package/dist/layout-engine/measure/measureTypes.d.ts +61 -0
  258. package/dist/layout-engine/measure/measureTypes.js +0 -0
  259. package/dist/layout-engine/measure/measureWorker.d.ts +54 -0
  260. package/dist/layout-engine/measure/measureWorker.js +249 -0
  261. package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +88 -0
  262. package/dist/layout-engine/measure/measureWorkerProtocol.js +20 -0
  263. package/dist/layout-engine/measure/tableCellFloating.d.ts +26 -0
  264. package/dist/layout-engine/measure/tableCellFloating.js +99 -0
  265. package/dist/layout-engine/paginator.d.ts +84 -0
  266. package/dist/layout-engine/paginator.js +348 -0
  267. package/dist/layout-engine/paragraphFragmentRange.d.ts +9 -0
  268. package/dist/layout-engine/paragraphFragmentRange.js +40 -0
  269. package/dist/layout-engine/section-breaks.d.ts +78 -0
  270. package/dist/layout-engine/section-breaks.js +182 -0
  271. package/dist/layout-engine/tableRowBreak.d.ts +23 -0
  272. package/dist/layout-engine/tableRowBreak.js +147 -0
  273. package/dist/layout-engine/textBoxFlow.d.ts +50 -0
  274. package/dist/layout-engine/textBoxFlow.js +160 -0
  275. package/dist/layout-engine/types.d.ts +1031 -0
  276. package/dist/layout-engine/types.js +100 -0
  277. package/dist/layout-painter/documentColors.d.ts +4 -0
  278. package/dist/layout-painter/documentColors.js +40 -0
  279. package/dist/layout-painter/index.d.ts +110 -0
  280. package/dist/layout-painter/index.js +182 -0
  281. package/dist/layout-painter/registry/modules/image.d.ts +6 -0
  282. package/dist/layout-painter/registry/modules/image.js +17 -0
  283. package/dist/layout-painter/registry/modules/paragraph.d.ts +6 -0
  284. package/dist/layout-painter/registry/modules/paragraph.js +18 -0
  285. package/dist/layout-painter/registry/modules/table.d.ts +6 -0
  286. package/dist/layout-painter/registry/modules/table.js +16 -0
  287. package/dist/layout-painter/registry/modules/textBox.d.ts +6 -0
  288. package/dist/layout-painter/registry/modules/textBox.js +13 -0
  289. package/dist/layout-painter/registry/modules.d.ts +6 -0
  290. package/dist/layout-painter/registry/modules.js +26 -0
  291. package/dist/layout-painter/registry/registry.d.ts +24 -0
  292. package/dist/layout-painter/registry/registry.js +53 -0
  293. package/dist/layout-painter/registry/types.d.ts +61 -0
  294. package/dist/layout-painter/registry/types.js +0 -0
  295. package/dist/layout-painter/renderFragment.d.ts +32 -0
  296. package/dist/layout-painter/renderFragment.js +114 -0
  297. package/dist/layout-painter/renderImage.d.ts +88 -0
  298. package/dist/layout-painter/renderImage.js +130 -0
  299. package/dist/layout-painter/renderPage.d.ts +264 -0
  300. package/dist/layout-painter/renderPage.js +1795 -0
  301. package/dist/layout-painter/renderParagraph.d.ts +93 -0
  302. package/dist/layout-painter/renderParagraph.js +1300 -0
  303. package/dist/layout-painter/renderTable.d.ts +36 -0
  304. package/dist/layout-painter/renderTable.js +432 -0
  305. package/dist/layout-painter/renderTextBox.d.ts +22 -0
  306. package/dist/layout-painter/renderTextBox.js +67 -0
  307. package/dist/layout-painter/renderUtils.d.ts +42 -0
  308. package/dist/layout-painter/renderUtils.js +30 -0
  309. package/dist/layout-painter/renderWatermark.d.ts +16 -0
  310. package/dist/layout-painter/renderWatermark.js +61 -0
  311. package/dist/layout-painter/sdtBoundary.d.ts +6 -0
  312. package/dist/layout-painter/sdtBoundary.js +28 -0
  313. package/dist/managers/ContextMenuManager.d.ts +28 -0
  314. package/dist/managers/ContextMenuManager.js +48 -0
  315. package/dist/managers/DocumentLoaderManager.d.ts +47 -0
  316. package/dist/managers/DocumentLoaderManager.js +69 -0
  317. package/dist/managers/EditorModeManager.d.ts +28 -0
  318. package/dist/managers/EditorModeManager.js +50 -0
  319. package/dist/managers/ErrorManager.d.ts +26 -0
  320. package/dist/managers/ErrorManager.js +85 -0
  321. package/dist/managers/FindReplaceManager.d.ts +54 -0
  322. package/dist/managers/FindReplaceManager.js +104 -0
  323. package/dist/managers/HistoryManager.d.ts +92 -0
  324. package/dist/managers/HistoryManager.js +193 -0
  325. package/dist/managers/Subscribable.d.ts +34 -0
  326. package/dist/managers/Subscribable.js +46 -0
  327. package/dist/managers/TableSelectionManager.d.ts +74 -0
  328. package/dist/managers/TableSelectionManager.js +225 -0
  329. package/dist/managers/editorShortcuts.d.ts +42 -0
  330. package/dist/managers/editorShortcuts.js +60 -0
  331. package/dist/managers/types.d.ts +41 -0
  332. package/dist/managers/types.js +0 -0
  333. package/dist/markdown/annotations.d.ts +14 -0
  334. package/dist/markdown/annotations.js +42 -0
  335. package/dist/markdown/escape.d.ts +36 -0
  336. package/dist/markdown/escape.js +59 -0
  337. package/dist/markdown/fromMarkdown.d.ts +11 -0
  338. package/dist/markdown/fromMarkdown.js +223 -0
  339. package/dist/markdown/headings.d.ts +13 -0
  340. package/dist/markdown/headings.js +20 -0
  341. package/dist/markdown/images.d.ts +13 -0
  342. package/dist/markdown/images.js +63 -0
  343. package/dist/markdown/index.d.ts +18 -0
  344. package/dist/markdown/index.js +33 -0
  345. package/dist/markdown/internals.d.ts +15 -0
  346. package/dist/markdown/internals.js +35 -0
  347. package/dist/markdown/renderBlock.d.ts +7 -0
  348. package/dist/markdown/renderBlock.js +68 -0
  349. package/dist/markdown/renderParagraph.d.ts +11 -0
  350. package/dist/markdown/renderParagraph.js +64 -0
  351. package/dist/markdown/renderRuns.d.ts +11 -0
  352. package/dist/markdown/renderRuns.js +265 -0
  353. package/dist/markdown/renderTable.d.ts +8 -0
  354. package/dist/markdown/renderTable.js +229 -0
  355. package/dist/markdown/trailers.d.ts +13 -0
  356. package/dist/markdown/trailers.js +54 -0
  357. package/dist/markdown/types.d.ts +118 -0
  358. package/dist/markdown/types.js +0 -0
  359. package/dist/model.d.ts +13 -0
  360. package/dist/model.js +4 -0
  361. package/dist/paged-layout/LayoutSelectionGate.d.ts +80 -0
  362. package/dist/paged-layout/LayoutSelectionGate.js +131 -0
  363. package/dist/paged-layout/headerFooterMargins.d.ts +73 -0
  364. package/dist/paged-layout/headerFooterMargins.js +120 -0
  365. package/dist/paged-layout/hiddenEditorScroll.d.ts +4 -0
  366. package/dist/paged-layout/hiddenEditorScroll.js +4 -0
  367. package/dist/paged-layout/incrementalMeasure.d.ts +33 -0
  368. package/dist/paged-layout/incrementalMeasure.js +56 -0
  369. package/dist/paged-layout/rangeProjection.d.ts +51 -0
  370. package/dist/paged-layout/rangeProjection.js +153 -0
  371. package/dist/paged-layout/readOnlyEditAttempt.d.ts +5 -0
  372. package/dist/paged-layout/readOnlyEditAttempt.js +22 -0
  373. package/dist/paged-layout/scrollNavigation.d.ts +23 -0
  374. package/dist/paged-layout/scrollNavigation.js +31 -0
  375. package/dist/paged-layout/scrollPageInfo.d.ts +41 -0
  376. package/dist/paged-layout/scrollPageInfo.js +34 -0
  377. package/dist/paged-layout/scrollToPmPosition.d.ts +17 -0
  378. package/dist/paged-layout/scrollToPmPosition.js +95 -0
  379. package/dist/paged-layout/sectionBlockWidths.d.ts +35 -0
  380. package/dist/paged-layout/sectionBlockWidths.js +52 -0
  381. package/dist/paged-layout/sectionGeometry.d.ts +21 -0
  382. package/dist/paged-layout/sectionGeometry.js +36 -0
  383. package/dist/paged-layout/selectionViewportRect.d.ts +29 -0
  384. package/dist/paged-layout/selectionViewportRect.js +55 -0
  385. package/dist/paged-layout/tableColumnResize.d.ts +19 -0
  386. package/dist/paged-layout/tableColumnResize.js +28 -0
  387. package/dist/paged-layout/tableInsertButtonGeometry.d.ts +15 -0
  388. package/dist/paged-layout/tableInsertButtonGeometry.js +15 -0
  389. package/dist/paged-layout/transactionDirtyRange.d.ts +7 -0
  390. package/dist/paged-layout/transactionDirtyRange.js +27 -0
  391. package/dist/paged-layout/zoomScrollAnchor.d.ts +40 -0
  392. package/dist/paged-layout/zoomScrollAnchor.js +25 -0
  393. package/dist/prosemirror/attrs/index.d.ts +80 -0
  394. package/dist/prosemirror/attrs/index.js +1218 -0
  395. package/dist/prosemirror/autospacingBase.d.ts +11 -0
  396. package/dist/prosemirror/autospacingBase.js +16 -0
  397. package/dist/prosemirror/commands/comments.d.ts +93 -0
  398. package/dist/prosemirror/commands/comments.js +435 -0
  399. package/dist/prosemirror/commands/contentControls.d.ts +45 -0
  400. package/dist/prosemirror/commands/contentControls.js +294 -0
  401. package/dist/prosemirror/commands/contentControlsBlockFill.d.ts +15 -0
  402. package/dist/prosemirror/commands/contentControlsBlockFill.js +19 -0
  403. package/dist/prosemirror/commands/formatPainter.d.ts +31 -0
  404. package/dist/prosemirror/commands/formatPainter.js +130 -0
  405. package/dist/prosemirror/commands/formatting.d.ts +32 -0
  406. package/dist/prosemirror/commands/formatting.js +45 -0
  407. package/dist/prosemirror/commands/hyperlink.d.ts +31 -0
  408. package/dist/prosemirror/commands/hyperlink.js +79 -0
  409. package/dist/prosemirror/commands/image.d.ts +59 -0
  410. package/dist/prosemirror/commands/image.js +219 -0
  411. package/dist/prosemirror/commands/index.d.ts +13 -0
  412. package/dist/prosemirror/commands/index.js +13 -0
  413. package/dist/prosemirror/commands/pageBreak.d.ts +10 -0
  414. package/dist/prosemirror/commands/pageBreak.js +47 -0
  415. package/dist/prosemirror/commands/paragraph.d.ts +39 -0
  416. package/dist/prosemirror/commands/paragraph.js +64 -0
  417. package/dist/prosemirror/commands/pastePlainText.d.ts +39 -0
  418. package/dist/prosemirror/commands/pastePlainText.js +67 -0
  419. package/dist/prosemirror/commands/table.d.ts +83 -0
  420. package/dist/prosemirror/commands/table.js +105 -0
  421. package/dist/prosemirror/conversion/fromProseDoc.d.ts +27 -0
  422. package/dist/prosemirror/conversion/fromProseDoc.js +1550 -0
  423. package/dist/prosemirror/conversion/index.d.ts +4 -0
  424. package/dist/prosemirror/conversion/index.js +4 -0
  425. package/dist/prosemirror/conversion/runShadingMark.d.ts +16 -0
  426. package/dist/prosemirror/conversion/runShadingMark.js +39 -0
  427. package/dist/prosemirror/conversion/toProseDoc.d.ts +39 -0
  428. package/dist/prosemirror/conversion/toProseDoc.js +1404 -0
  429. package/dist/prosemirror/extensions/ExtensionManager.d.ts +43 -0
  430. package/dist/prosemirror/extensions/ExtensionManager.js +86 -0
  431. package/dist/prosemirror/extensions/StarterKit.d.ts +16 -0
  432. package/dist/prosemirror/extensions/StarterKit.js +132 -0
  433. package/dist/prosemirror/extensions/core/DocExtension.d.ts +9 -0
  434. package/dist/prosemirror/extensions/core/DocExtension.js +12 -0
  435. package/dist/prosemirror/extensions/core/HistoryExtension.d.ts +13 -0
  436. package/dist/prosemirror/extensions/core/HistoryExtension.js +28 -0
  437. package/dist/prosemirror/extensions/core/ParagraphExtension.d.ts +25 -0
  438. package/dist/prosemirror/extensions/core/ParagraphExtension.js +619 -0
  439. package/dist/prosemirror/extensions/core/TextExtension.d.ts +9 -0
  440. package/dist/prosemirror/extensions/core/TextExtension.js +12 -0
  441. package/dist/prosemirror/extensions/create.d.ts +17 -0
  442. package/dist/prosemirror/extensions/create.js +129 -0
  443. package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.d.ts +23 -0
  444. package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.js +106 -0
  445. package/dist/prosemirror/extensions/features/BaseKeymapExtension.d.ts +8 -0
  446. package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +172 -0
  447. package/dist/prosemirror/extensions/features/BidiShortcutExtension.d.ts +16 -0
  448. package/dist/prosemirror/extensions/features/BidiShortcutExtension.js +38 -0
  449. package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.d.ts +16 -0
  450. package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.js +21 -0
  451. package/dist/prosemirror/extensions/features/DropCursorExtension.d.ts +12 -0
  452. package/dist/prosemirror/extensions/features/DropCursorExtension.js +20 -0
  453. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.d.ts +8 -0
  454. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.js +44 -0
  455. package/dist/prosemirror/extensions/features/GapCursorExtension.d.ts +19 -0
  456. package/dist/prosemirror/extensions/features/GapCursorExtension.js +24 -0
  457. package/dist/prosemirror/extensions/features/ImageDragExtension.d.ts +15 -0
  458. package/dist/prosemirror/extensions/features/ImageDragExtension.js +66 -0
  459. package/dist/prosemirror/extensions/features/ImagePasteExtension.d.ts +12 -0
  460. package/dist/prosemirror/extensions/features/ImagePasteExtension.js +91 -0
  461. package/dist/prosemirror/extensions/features/ListExtension.d.ts +14 -0
  462. package/dist/prosemirror/extensions/features/ListExtension.js +340 -0
  463. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +9 -0
  464. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +60 -0
  465. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +35 -0
  466. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +188 -0
  467. package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +20 -0
  468. package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +34 -0
  469. package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.d.ts +20 -0
  470. package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.js +145 -0
  471. package/dist/prosemirror/extensions/features/SelectionTrackerExtension.d.ts +10 -0
  472. package/dist/prosemirror/extensions/features/SelectionTrackerExtension.js +17 -0
  473. package/dist/prosemirror/extensions/features/bidiShortcutController.d.ts +31 -0
  474. package/dist/prosemirror/extensions/features/bidiShortcutController.js +27 -0
  475. package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +31 -0
  476. package/dist/prosemirror/extensions/features/pasteCleanup.js +159 -0
  477. package/dist/prosemirror/extensions/marks/AllCapsExtension.d.ts +9 -0
  478. package/dist/prosemirror/extensions/marks/AllCapsExtension.js +24 -0
  479. package/dist/prosemirror/extensions/marks/BoldExtension.d.ts +9 -0
  480. package/dist/prosemirror/extensions/marks/BoldExtension.js +41 -0
  481. package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.d.ts +14 -0
  482. package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.js +64 -0
  483. package/dist/prosemirror/extensions/marks/CharacterStyleExtension.d.ts +23 -0
  484. package/dist/prosemirror/extensions/marks/CharacterStyleExtension.js +47 -0
  485. package/dist/prosemirror/extensions/marks/CommentExtension.d.ts +12 -0
  486. package/dist/prosemirror/extensions/marks/CommentExtension.js +38 -0
  487. package/dist/prosemirror/extensions/marks/FontFamilyExtension.d.ts +9 -0
  488. package/dist/prosemirror/extensions/marks/FontFamilyExtension.js +55 -0
  489. package/dist/prosemirror/extensions/marks/FontSizeExtension.d.ts +9 -0
  490. package/dist/prosemirror/extensions/marks/FontSizeExtension.js +47 -0
  491. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.d.ts +11 -0
  492. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.js +92 -0
  493. package/dist/prosemirror/extensions/marks/HiddenTextExtension.d.ts +23 -0
  494. package/dist/prosemirror/extensions/marks/HiddenTextExtension.js +35 -0
  495. package/dist/prosemirror/extensions/marks/HighlightExtension.d.ts +10 -0
  496. package/dist/prosemirror/extensions/marks/HighlightExtension.js +115 -0
  497. package/dist/prosemirror/extensions/marks/HyperlinkExtension.d.ts +13 -0
  498. package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +146 -0
  499. package/dist/prosemirror/extensions/marks/ItalicExtension.d.ts +9 -0
  500. package/dist/prosemirror/extensions/marks/ItalicExtension.js +34 -0
  501. package/dist/prosemirror/extensions/marks/RtlExtension.d.ts +6 -0
  502. package/dist/prosemirror/extensions/marks/RtlExtension.js +21 -0
  503. package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.d.ts +11 -0
  504. package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.js +75 -0
  505. package/dist/prosemirror/extensions/marks/RunShadingExtension.d.ts +6 -0
  506. package/dist/prosemirror/extensions/marks/RunShadingExtension.js +38 -0
  507. package/dist/prosemirror/extensions/marks/SmallCapsExtension.d.ts +9 -0
  508. package/dist/prosemirror/extensions/marks/SmallCapsExtension.js +24 -0
  509. package/dist/prosemirror/extensions/marks/StrikeExtension.d.ts +9 -0
  510. package/dist/prosemirror/extensions/marks/StrikeExtension.js +33 -0
  511. package/dist/prosemirror/extensions/marks/SubscriptExtension.d.ts +9 -0
  512. package/dist/prosemirror/extensions/marks/SubscriptExtension.js +25 -0
  513. package/dist/prosemirror/extensions/marks/SuperscriptExtension.d.ts +9 -0
  514. package/dist/prosemirror/extensions/marks/SuperscriptExtension.js +25 -0
  515. package/dist/prosemirror/extensions/marks/TextColorExtension.d.ts +9 -0
  516. package/dist/prosemirror/extensions/marks/TextColorExtension.js +50 -0
  517. package/dist/prosemirror/extensions/marks/TextEffectExtension.d.ts +6 -0
  518. package/dist/prosemirror/extensions/marks/TextEffectExtension.js +35 -0
  519. package/dist/prosemirror/extensions/marks/TextEffectsExtensions.d.ts +31 -0
  520. package/dist/prosemirror/extensions/marks/TextEffectsExtensions.js +134 -0
  521. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.d.ts +22 -0
  522. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +113 -0
  523. package/dist/prosemirror/extensions/marks/UnderlineExtension.d.ts +9 -0
  524. package/dist/prosemirror/extensions/marks/UnderlineExtension.js +60 -0
  525. package/dist/prosemirror/extensions/marks/markUtils.d.ts +34 -0
  526. package/dist/prosemirror/extensions/marks/markUtils.js +233 -0
  527. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +22 -0
  528. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.js +122 -0
  529. package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +12 -0
  530. package/dist/prosemirror/extensions/nodes/FieldExtension.js +87 -0
  531. package/dist/prosemirror/extensions/nodes/HardBreakExtension.d.ts +9 -0
  532. package/dist/prosemirror/extensions/nodes/HardBreakExtension.js +38 -0
  533. package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.d.ts +9 -0
  534. package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.js +18 -0
  535. package/dist/prosemirror/extensions/nodes/ImageExtension.d.ts +9 -0
  536. package/dist/prosemirror/extensions/nodes/ImageExtension.js +132 -0
  537. package/dist/prosemirror/extensions/nodes/MathExtension.d.ts +13 -0
  538. package/dist/prosemirror/extensions/nodes/MathExtension.js +56 -0
  539. package/dist/prosemirror/extensions/nodes/PageBreakExtension.d.ts +9 -0
  540. package/dist/prosemirror/extensions/nodes/PageBreakExtension.js +20 -0
  541. package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +12 -0
  542. package/dist/prosemirror/extensions/nodes/SdtExtension.js +107 -0
  543. package/dist/prosemirror/extensions/nodes/ShapeExtension.d.ts +30 -0
  544. package/dist/prosemirror/extensions/nodes/ShapeExtension.js +502 -0
  545. package/dist/prosemirror/extensions/nodes/TabExtension.d.ts +9 -0
  546. package/dist/prosemirror/extensions/nodes/TabExtension.js +27 -0
  547. package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +34 -0
  548. package/dist/prosemirror/extensions/nodes/TableExtension.js +1972 -0
  549. package/dist/prosemirror/extensions/nodes/TextBoxExtension.d.ts +34 -0
  550. package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +150 -0
  551. package/dist/prosemirror/extensions/types.d.ts +101 -0
  552. package/dist/prosemirror/extensions/types.js +10 -0
  553. package/dist/prosemirror/findReplaceSelection.d.ts +23 -0
  554. package/dist/prosemirror/findReplaceSelection.js +86 -0
  555. package/dist/prosemirror/index.d.ts +25 -0
  556. package/dist/prosemirror/index.js +23 -0
  557. package/dist/prosemirror/insertOperations.d.ts +12 -0
  558. package/dist/prosemirror/insertOperations.js +19 -0
  559. package/dist/prosemirror/paragraphDirection.d.ts +42 -0
  560. package/dist/prosemirror/paragraphDirection.js +33 -0
  561. package/dist/prosemirror/plugins/aiCitationDecorations.d.ts +40 -0
  562. package/dist/prosemirror/plugins/aiCitationDecorations.js +90 -0
  563. package/dist/prosemirror/plugins/aiSuggestionDecorations.d.ts +42 -0
  564. package/dist/prosemirror/plugins/aiSuggestionDecorations.js +135 -0
  565. package/dist/prosemirror/plugins/anonymizationDecorations.d.ts +60 -0
  566. package/dist/prosemirror/plugins/anonymizationDecorations.js +120 -0
  567. package/dist/prosemirror/plugins/autocompleteSuggestion.d.ts +123 -0
  568. package/dist/prosemirror/plugins/autocompleteSuggestion.js +283 -0
  569. package/dist/prosemirror/plugins/contentControlWidgets.d.ts +56 -0
  570. package/dist/prosemirror/plugins/contentControlWidgets.js +192 -0
  571. package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +37 -0
  572. package/dist/prosemirror/plugins/createDocScanPlugin.js +55 -0
  573. package/dist/prosemirror/plugins/documentStyles.d.ts +18 -0
  574. package/dist/prosemirror/plugins/documentStyles.js +46 -0
  575. package/dist/prosemirror/plugins/index.d.ts +3 -0
  576. package/dist/prosemirror/plugins/index.js +3 -0
  577. package/dist/prosemirror/plugins/pmTextScan.d.ts +19 -0
  578. package/dist/prosemirror/plugins/pmTextScan.js +39 -0
  579. package/dist/prosemirror/plugins/selectionTracker.d.ts +43 -0
  580. package/dist/prosemirror/plugins/selectionTracker.js +179 -0
  581. package/dist/prosemirror/plugins/suggestionMode.d.ts +70 -0
  582. package/dist/prosemirror/plugins/suggestionMode.js +489 -0
  583. package/dist/prosemirror/plugins/templateDirectives.d.ts +25 -0
  584. package/dist/prosemirror/plugins/templateDirectives.js +67 -0
  585. package/dist/prosemirror/plugins/templatePreviewValues.d.ts +49 -0
  586. package/dist/prosemirror/plugins/templatePreviewValues.js +117 -0
  587. package/dist/prosemirror/plugins/templateSlashMenu.d.ts +57 -0
  588. package/dist/prosemirror/plugins/templateSlashMenu.js +184 -0
  589. package/dist/prosemirror/schema/index.d.ts +15 -0
  590. package/dist/prosemirror/schema/index.js +20 -0
  591. package/dist/prosemirror/schema/marks.d.ts +118 -0
  592. package/dist/prosemirror/schema/marks.js +0 -0
  593. package/dist/prosemirror/schema/nodes.d.ts +389 -0
  594. package/dist/prosemirror/schema/nodes.js +0 -0
  595. package/dist/prosemirror/selectionState.d.ts +23 -0
  596. package/dist/prosemirror/selectionState.js +111 -0
  597. package/dist/prosemirror/styles/index.d.ts +2 -0
  598. package/dist/prosemirror/styles/index.js +2 -0
  599. package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +32 -0
  600. package/dist/prosemirror/styles/resolvedStyleAttrs.js +108 -0
  601. package/dist/prosemirror/styles/styleResolver.d.ts +94 -0
  602. package/dist/prosemirror/styles/styleResolver.js +200 -0
  603. package/dist/prosemirror/utils/findParagraphByParaId.d.ts +26 -0
  604. package/dist/prosemirror/utils/findParagraphByParaId.js +37 -0
  605. package/dist/prosemirror/utils/tabCalculator.d.ts +110 -0
  606. package/dist/prosemirror/utils/tabCalculator.js +137 -0
  607. package/dist/prosemirror/validation.d.ts +20 -0
  608. package/dist/prosemirror/validation.js +177 -0
  609. package/dist/server.d.ts +7 -0
  610. package/dist/server.js +6 -0
  611. package/dist/style-engine/index.d.ts +3 -0
  612. package/dist/style-engine/index.js +2 -0
  613. package/dist/style-engine/styleEngine.d.ts +67 -0
  614. package/dist/style-engine/styleEngine.js +70 -0
  615. package/dist/types/block-id.d.ts +58 -0
  616. package/dist/types/block-id.js +61 -0
  617. package/dist/types/colors.d.ts +2 -0
  618. package/dist/types/colors.js +0 -0
  619. package/dist/types/content.d.ts +2 -0
  620. package/dist/types/content.js +0 -0
  621. package/dist/types/document.d.ts +7 -0
  622. package/dist/types/document.js +0 -0
  623. package/dist/types/documentEnumValues.d.ts +89 -0
  624. package/dist/types/documentEnumValues.js +693 -0
  625. package/dist/types/formatting.d.ts +2 -0
  626. package/dist/types/formatting.js +0 -0
  627. package/dist/types/index.d.ts +107 -0
  628. package/dist/types/index.js +0 -0
  629. package/dist/utils/authorColors.d.ts +16 -0
  630. package/dist/utils/authorColors.js +30 -0
  631. package/dist/utils/baseDirection.d.ts +23 -0
  632. package/dist/utils/baseDirection.js +34 -0
  633. package/dist/utils/clipboard.d.ts +126 -0
  634. package/dist/utils/clipboard.js +622 -0
  635. package/dist/utils/colorResolver.d.ts +158 -0
  636. package/dist/utils/colorResolver.js +557 -0
  637. package/dist/utils/createDocument.d.ts +50 -0
  638. package/dist/utils/createDocument.js +262 -0
  639. package/dist/utils/documentLoaderBehavior.d.ts +22 -0
  640. package/dist/utils/documentLoaderBehavior.js +14 -0
  641. package/dist/utils/docxInput.d.ts +22 -0
  642. package/dist/utils/docxInput.js +16 -0
  643. package/dist/utils/domGuards.d.ts +59 -0
  644. package/dist/utils/domGuards.js +82 -0
  645. package/dist/utils/fontFamilyMerge.d.ts +7 -0
  646. package/dist/utils/fontFamilyMerge.js +31 -0
  647. package/dist/utils/fontLoader.d.ts +50 -0
  648. package/dist/utils/fontLoader.js +177 -0
  649. package/dist/utils/fontResolver.d.ts +61 -0
  650. package/dist/utils/fontResolver.js +651 -0
  651. package/dist/utils/fontWeights.d.ts +4 -0
  652. package/dist/utils/fontWeights.js +4 -0
  653. package/dist/utils/formatToStyle.d.ts +103 -0
  654. package/dist/utils/formatToStyle.js +289 -0
  655. package/dist/utils/headerFooter.d.ts +74 -0
  656. package/dist/utils/headerFooter.js +257 -0
  657. package/dist/utils/headingCollector.d.ts +22 -0
  658. package/dist/utils/headingCollector.js +36 -0
  659. package/dist/utils/hexId.d.ts +33 -0
  660. package/dist/utils/hexId.js +37 -0
  661. package/dist/utils/imageValidation.d.ts +5 -0
  662. package/dist/utils/imageValidation.js +31 -0
  663. package/dist/utils/paragraphFormattingMerge.d.ts +14 -0
  664. package/dist/utils/paragraphFormattingMerge.js +68 -0
  665. package/dist/utils/replaceText.d.ts +17 -0
  666. package/dist/utils/replaceText.js +161 -0
  667. package/dist/utils/rotationBoundingBox.d.ts +12 -0
  668. package/dist/utils/rotationBoundingBox.js +36 -0
  669. package/dist/utils/scriptSegments.d.ts +36 -0
  670. package/dist/utils/scriptSegments.js +52 -0
  671. package/dist/utils/tableOperations.d.ts +87 -0
  672. package/dist/utils/tableOperations.js +259 -0
  673. package/dist/utils/textFormattingMerge.d.ts +6 -0
  674. package/dist/utils/textFormattingMerge.js +31 -0
  675. package/dist/utils/tiffConverter.d.ts +18 -0
  676. package/dist/utils/tiffConverter.js +83 -0
  677. package/dist/utils/units.d.ts +99 -0
  678. package/dist/utils/units.js +139 -0
  679. package/dist/utils/urlSecurity.d.ts +7 -0
  680. package/dist/utils/urlSecurity.js +65 -0
  681. package/dist/watermark/index.d.ts +39 -0
  682. package/dist/watermark/index.js +149 -0
  683. package/package.json +122 -2
@@ -0,0 +1,92 @@
1
+ import { Subscribable } from "./Subscribable.js";
2
+
3
+ //#region src/managers/HistoryManager.d.ts
4
+ /** History entry containing state and metadata. */
5
+ type HistoryEntry<T> = {
6
+ /** The state at this point. */state: T; /** Timestamp when this entry was created. */
7
+ timestamp: number; /** Optional description of what changed. */
8
+ description?: string;
9
+ };
10
+ /** Reactive snapshot adapters render from. */
11
+ type HistorySnapshot<T> = {
12
+ /** Current state. */state: T; /** Whether undo is available. */
13
+ canUndo: boolean; /** Whether redo is available. */
14
+ canRedo: boolean; /** Number of entries in the undo stack. */
15
+ undoCount: number; /** Number of entries in the redo stack. */
16
+ redoCount: number;
17
+ };
18
+ type HistoryManagerOptions<T> = {
19
+ /** Maximum number of entries in the undo stack (default: 100). */maxEntries?: number; /** Time in ms within which rapid pushes are grouped (default: 500). */
20
+ groupingInterval?: number; /** Custom comparison used to skip no-op pushes (default: JSON compare). */
21
+ isEqual?: (a: T, b: T) => boolean;
22
+ };
23
+ /** Default equality check using JSON stringify. */
24
+ declare const defaultHistoryIsEqual: <T>(a: T, b: T) => boolean;
25
+ /** History action a keyboard chord maps to. */
26
+ type HistoryShortcut = "undo" | "redo";
27
+ /** Minimal keyboard-event shape the shortcut classifier reads. */
28
+ type HistoryShortcutEvent = {
29
+ key: string;
30
+ ctrlKey: boolean;
31
+ metaKey: boolean;
32
+ shiftKey: boolean;
33
+ };
34
+ /**
35
+ * Classify a keydown as an undo/redo shortcut, framework-agnostically.
36
+ *
37
+ * `key` is compared case-insensitively: while Shift is held the browser reports
38
+ * the uppercase `"Z"`, so the standard redo chord Ctrl/Cmd+Shift+Z would slip
39
+ * past an exact `=== "z"` check and never trigger redo. Ctrl/Cmd+Z is undo;
40
+ * Ctrl/Cmd+Shift+Z and Ctrl/Cmd+Y are redo.
41
+ */
42
+ declare const classifyHistoryShortcut: (event: HistoryShortcutEvent) => HistoryShortcut | null;
43
+ declare class HistoryManager<T> extends Subscribable<HistorySnapshot<T>> {
44
+ private currentState;
45
+ private readonly initialState;
46
+ private undoStack;
47
+ private redoStack;
48
+ private lastPushTime;
49
+ /**
50
+ * Raised while an undo/redo is settling. Pushes that arrive during this
51
+ * window (e.g. the editor re-syncing to the restored document) adopt the new
52
+ * state without creating a fresh history entry. The adapter lowers it once
53
+ * its render cycle has flushed.
54
+ */
55
+ private undoRedoActive;
56
+ private readonly maxEntries;
57
+ private readonly groupingInterval;
58
+ private readonly isEqual;
59
+ constructor(initialState: T, options?: HistoryManagerOptions<T>);
60
+ /** The current state (satisfies `DocumentLoaderHistory.state`). */
61
+ get state(): T;
62
+ /** Whether the undo/redo re-entrancy guard is currently raised. */
63
+ get isUndoRedoActive(): boolean;
64
+ /** Push a new state to history. */
65
+ push(newState: T, description?: string): void;
66
+ /** Undo to the previous state, raising the re-entrancy guard. */
67
+ undo(): T | undefined;
68
+ /** Redo to the next state, raising the re-entrancy guard. */
69
+ redo(): T | undefined;
70
+ /**
71
+ * Lower the undo/redo re-entrancy guard. The adapter calls this once its
72
+ * render cycle (and the effects it triggered) has flushed, so a follow-up
73
+ * edit records a fresh entry again.
74
+ */
75
+ endUndoRedo(): void;
76
+ /** Clear both stacks, keeping the current state. */
77
+ clear(): void;
78
+ /** Reset to the initial (or a supplied) state and clear history. */
79
+ reset(newInitialState?: T): void;
80
+ /** Snapshot copy of the undo stack (for debugging/display). */
81
+ getUndoStack(): HistoryEntry<T>[];
82
+ /** Snapshot copy of the redo stack (for debugging/display). */
83
+ getRedoStack(): HistoryEntry<T>[];
84
+ /**
85
+ * Transform every stored state (current + both stacks). Useful for bulk
86
+ * cleanup such as stripping cached snapshots.
87
+ */
88
+ transformAll(fn: (state: T) => T): void;
89
+ private emit;
90
+ }
91
+ //#endregion
92
+ export { HistoryEntry, HistoryManager, HistoryManagerOptions, HistoryShortcut, HistoryShortcutEvent, HistorySnapshot, classifyHistoryShortcut, defaultHistoryIsEqual };
@@ -0,0 +1,193 @@
1
+ import { Subscribable } from "./Subscribable.js";
2
+ //#region src/managers/HistoryManager.ts
3
+ /**
4
+ * HistoryManager
5
+ *
6
+ * Framework-agnostic undo/redo stack and document-snapshot history, extracted
7
+ * from the React `useHistory` hook. Owns the current state plus the undo/redo
8
+ * stacks and runs push (with rapid-change grouping), undo, redo, redo
9
+ * invalidation, stack-size capping, and bulk state transforms.
10
+ *
11
+ * Adapters bind to it through `Subscribable` (React:
12
+ * `useSyncExternalStore(manager.subscribe, manager.getSnapshot)`). The adapter
13
+ * keeps the genuinely framework-bound concerns: keyboard shortcuts, the
14
+ * render-cycle timing that lowers the undo/redo re-entrancy guard, and routing
15
+ * the optional `onUndo` / `onRedo` host callbacks.
16
+ *
17
+ * `HistoryManager<Document | null>` structurally satisfies the
18
+ * `DocumentLoaderHistory` shape that `DocumentLoaderManager` consumes
19
+ * (`{ readonly state; reset(document) }`).
20
+ */
21
+ /** Default equality check using JSON stringify. */
22
+ const defaultHistoryIsEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
23
+ /**
24
+ * Classify a keydown as an undo/redo shortcut, framework-agnostically.
25
+ *
26
+ * `key` is compared case-insensitively: while Shift is held the browser reports
27
+ * the uppercase `"Z"`, so the standard redo chord Ctrl/Cmd+Shift+Z would slip
28
+ * past an exact `=== "z"` check and never trigger redo. Ctrl/Cmd+Z is undo;
29
+ * Ctrl/Cmd+Shift+Z and Ctrl/Cmd+Y are redo.
30
+ */
31
+ const classifyHistoryShortcut = (event) => {
32
+ if (!event.ctrlKey && !event.metaKey) return null;
33
+ const key = event.key.toLowerCase();
34
+ if (key === "y") return "redo";
35
+ if (key === "z") return event.shiftKey ? "redo" : "undo";
36
+ return null;
37
+ };
38
+ var HistoryManager = class extends Subscribable {
39
+ currentState;
40
+ initialState;
41
+ undoStack = [];
42
+ redoStack = [];
43
+ lastPushTime = 0;
44
+ /**
45
+ * Raised while an undo/redo is settling. Pushes that arrive during this
46
+ * window (e.g. the editor re-syncing to the restored document) adopt the new
47
+ * state without creating a fresh history entry. The adapter lowers it once
48
+ * its render cycle has flushed.
49
+ */
50
+ undoRedoActive = false;
51
+ maxEntries;
52
+ groupingInterval;
53
+ isEqual;
54
+ constructor(initialState, options = {}) {
55
+ super({
56
+ state: initialState,
57
+ canUndo: false,
58
+ canRedo: false,
59
+ undoCount: 0,
60
+ redoCount: 0
61
+ });
62
+ this.currentState = initialState;
63
+ this.initialState = initialState;
64
+ this.maxEntries = options.maxEntries ?? 100;
65
+ this.groupingInterval = options.groupingInterval ?? 500;
66
+ this.isEqual = options.isEqual ?? defaultHistoryIsEqual;
67
+ }
68
+ /** The current state (satisfies `DocumentLoaderHistory.state`). */
69
+ get state() {
70
+ return this.currentState;
71
+ }
72
+ /** Whether the undo/redo re-entrancy guard is currently raised. */
73
+ get isUndoRedoActive() {
74
+ return this.undoRedoActive;
75
+ }
76
+ /** Push a new state to history. */
77
+ push(newState, description) {
78
+ if (this.isEqual(this.currentState, newState)) return;
79
+ if (this.undoRedoActive) {
80
+ this.currentState = newState;
81
+ this.emit();
82
+ return;
83
+ }
84
+ const now = Date.now();
85
+ if (now - this.lastPushTime < this.groupingInterval && this.undoStack.length > 0) {
86
+ const last = this.undoStack.at(-1);
87
+ const desc = description || last?.description;
88
+ this.undoStack[this.undoStack.length - 1] = {
89
+ state: last?.state ?? this.currentState,
90
+ timestamp: now,
91
+ ...desc !== void 0 ? { description: desc } : {}
92
+ };
93
+ } else {
94
+ this.undoStack.push({
95
+ state: this.currentState,
96
+ timestamp: now,
97
+ ...description !== void 0 ? { description } : {}
98
+ });
99
+ if (this.undoStack.length > this.maxEntries) this.undoStack = this.undoStack.slice(this.undoStack.length - this.maxEntries);
100
+ }
101
+ this.redoStack = [];
102
+ this.currentState = newState;
103
+ this.lastPushTime = now;
104
+ this.emit();
105
+ }
106
+ /** Undo to the previous state, raising the re-entrancy guard. */
107
+ undo() {
108
+ if (this.undoStack.length === 0) return;
109
+ this.undoRedoActive = true;
110
+ const prevEntry = this.undoStack.at(-1);
111
+ if (!prevEntry) return;
112
+ this.undoStack = this.undoStack.slice(0, -1);
113
+ this.redoStack = [...this.redoStack, {
114
+ state: this.currentState,
115
+ timestamp: Date.now()
116
+ }];
117
+ this.currentState = prevEntry.state;
118
+ this.emit();
119
+ return prevEntry.state;
120
+ }
121
+ /** Redo to the next state, raising the re-entrancy guard. */
122
+ redo() {
123
+ if (this.redoStack.length === 0) return;
124
+ this.undoRedoActive = true;
125
+ const nextEntry = this.redoStack.at(-1);
126
+ if (!nextEntry) return;
127
+ this.redoStack = this.redoStack.slice(0, -1);
128
+ this.undoStack = [...this.undoStack, {
129
+ state: this.currentState,
130
+ timestamp: Date.now()
131
+ }];
132
+ this.currentState = nextEntry.state;
133
+ this.emit();
134
+ return nextEntry.state;
135
+ }
136
+ /**
137
+ * Lower the undo/redo re-entrancy guard. The adapter calls this once its
138
+ * render cycle (and the effects it triggered) has flushed, so a follow-up
139
+ * edit records a fresh entry again.
140
+ */
141
+ endUndoRedo() {
142
+ this.undoRedoActive = false;
143
+ }
144
+ /** Clear both stacks, keeping the current state. */
145
+ clear() {
146
+ this.undoStack = [];
147
+ this.redoStack = [];
148
+ this.emit();
149
+ }
150
+ /** Reset to the initial (or a supplied) state and clear history. */
151
+ reset(newInitialState) {
152
+ this.currentState = newInitialState ?? this.initialState;
153
+ this.undoStack = [];
154
+ this.redoStack = [];
155
+ this.lastPushTime = 0;
156
+ this.emit();
157
+ }
158
+ /** Snapshot copy of the undo stack (for debugging/display). */
159
+ getUndoStack() {
160
+ return [...this.undoStack];
161
+ }
162
+ /** Snapshot copy of the redo stack (for debugging/display). */
163
+ getRedoStack() {
164
+ return [...this.redoStack];
165
+ }
166
+ /**
167
+ * Transform every stored state (current + both stacks). Useful for bulk
168
+ * cleanup such as stripping cached snapshots.
169
+ */
170
+ transformAll(fn) {
171
+ this.currentState = fn(this.currentState);
172
+ this.undoStack = this.undoStack.map((entry) => ({
173
+ ...entry,
174
+ state: fn(entry.state)
175
+ }));
176
+ this.redoStack = this.redoStack.map((entry) => ({
177
+ ...entry,
178
+ state: fn(entry.state)
179
+ }));
180
+ this.emit();
181
+ }
182
+ emit() {
183
+ this.setSnapshot({
184
+ state: this.currentState,
185
+ canUndo: this.undoStack.length > 0,
186
+ canRedo: this.redoStack.length > 0,
187
+ undoCount: this.undoStack.length,
188
+ redoCount: this.redoStack.length
189
+ });
190
+ }
191
+ };
192
+ //#endregion
193
+ export { HistoryManager, classifyHistoryShortcut, defaultHistoryIsEqual };
@@ -0,0 +1,34 @@
1
+ //#region src/managers/Subscribable.d.ts
2
+ /**
3
+ * Subscribable Base Class
4
+ *
5
+ * Framework-agnostic base for manager classes that need to notify
6
+ * UI frameworks of state changes.
7
+ *
8
+ * Compatible with:
9
+ * - React: useSyncExternalStore(manager.subscribe, manager.getSnapshot)
10
+ * - Vue: watchEffect(() => { manager.subscribe(triggerRef) })
11
+ */
12
+ declare abstract class Subscribable<TSnapshot> {
13
+ private readonly listeners;
14
+ private snapshot;
15
+ constructor(initialSnapshot: TSnapshot);
16
+ /**
17
+ * Subscribe to state changes. Returns an unsubscribe function.
18
+ * Bound method — safe to pass as `useSyncExternalStore(manager.subscribe, ...)`.
19
+ */
20
+ subscribe: (listener: () => void) => (() => void);
21
+ /**
22
+ * Get the current snapshot. Returns a stable reference unless state has changed.
23
+ * Bound method — safe to pass as `useSyncExternalStore(..., manager.getSnapshot)`.
24
+ */
25
+ getSnapshot: () => TSnapshot;
26
+ /**
27
+ * Update the snapshot and notify all subscribers.
28
+ * Subclasses should call this whenever their state changes.
29
+ */
30
+ protected setSnapshot(snapshot: TSnapshot): void;
31
+ private notify;
32
+ }
33
+ //#endregion
34
+ export { Subscribable };
@@ -0,0 +1,46 @@
1
+ //#region src/managers/Subscribable.ts
2
+ /**
3
+ * Subscribable Base Class
4
+ *
5
+ * Framework-agnostic base for manager classes that need to notify
6
+ * UI frameworks of state changes.
7
+ *
8
+ * Compatible with:
9
+ * - React: useSyncExternalStore(manager.subscribe, manager.getSnapshot)
10
+ * - Vue: watchEffect(() => { manager.subscribe(triggerRef) })
11
+ */
12
+ var Subscribable = class {
13
+ listeners = /* @__PURE__ */ new Set();
14
+ snapshot;
15
+ constructor(initialSnapshot) {
16
+ this.snapshot = initialSnapshot;
17
+ }
18
+ /**
19
+ * Subscribe to state changes. Returns an unsubscribe function.
20
+ * Bound method — safe to pass as `useSyncExternalStore(manager.subscribe, ...)`.
21
+ */
22
+ subscribe = (listener) => {
23
+ this.listeners.add(listener);
24
+ return () => {
25
+ this.listeners.delete(listener);
26
+ };
27
+ };
28
+ /**
29
+ * Get the current snapshot. Returns a stable reference unless state has changed.
30
+ * Bound method — safe to pass as `useSyncExternalStore(..., manager.getSnapshot)`.
31
+ */
32
+ getSnapshot = () => this.snapshot;
33
+ /**
34
+ * Update the snapshot and notify all subscribers.
35
+ * Subclasses should call this whenever their state changes.
36
+ */
37
+ setSnapshot(snapshot) {
38
+ this.snapshot = snapshot;
39
+ this.notify();
40
+ }
41
+ notify() {
42
+ for (const listener of this.listeners) listener();
43
+ }
44
+ };
45
+ //#endregion
46
+ export { Subscribable };
@@ -0,0 +1,74 @@
1
+ import { document_d_exports } from "../types/document.js";
2
+ import { Subscribable } from "./Subscribable.js";
3
+ import { CellCoordinates } from "./types.js";
4
+ import { TableAction, TableContext } from "../utils/tableOperations.js";
5
+
6
+ //#region src/managers/TableSelectionManager.d.ts
7
+ /** Data attributes for table elements in the rendered DOM */
8
+ declare const TABLE_DATA_ATTRIBUTES: {
9
+ readonly TABLE_INDEX: "data-table-index";
10
+ readonly ROW_INDEX: "data-row";
11
+ readonly COLUMN_INDEX: "data-col";
12
+ readonly TABLE_CELL: "data-table-cell";
13
+ };
14
+ /**
15
+ * Find table cell coordinates from a click target by walking up the DOM
16
+ * and reading data attributes.
17
+ */
18
+ declare function findTableFromClick(target: EventTarget | null, container?: HTMLElement | null): CellCoordinates | null;
19
+ /** Get a table from the document by index. */
20
+ declare function getTableFromDocument(doc: document_d_exports.Document, tableIndex: number): document_d_exports.Table | null;
21
+ /** Update a table in the document immutably. */
22
+ declare function updateTableInDocument(doc: document_d_exports.Document, tableIndex: number, newTable: document_d_exports.Table): document_d_exports.Document;
23
+ /** Delete a table from the document immutably. */
24
+ declare function deleteTableFromDocument(doc: document_d_exports.Document, tableIndex: number): document_d_exports.Document;
25
+ /**
26
+ * Tracked table-selection state: the selected cell coordinates plus the derived
27
+ * {@link TableContext} (and the resolved table) for the current document.
28
+ */
29
+ type TableSelectionState = {
30
+ context: TableContext | null;
31
+ table: document_d_exports.Table | null;
32
+ tableIndex: number | null;
33
+ rowIndex: number | null;
34
+ columnIndex: number | null;
35
+ };
36
+ /**
37
+ * Outcome of dispatching a structural {@link TableAction} against a document.
38
+ * - `noop`: nothing to apply here (no live selection, or a border/selection
39
+ * action that the toolbar handles directly).
40
+ * - `deleted`: the table was removed and the selection cleared.
41
+ * - `updated`: the table was mutated; the selection now tracks the new table.
42
+ */
43
+ type TableActionResult = {
44
+ type: "noop";
45
+ } | {
46
+ type: "deleted";
47
+ document: document_d_exports.Document;
48
+ } | {
49
+ type: "updated";
50
+ document: document_d_exports.Document;
51
+ context: TableContext;
52
+ };
53
+ declare class TableSelectionManager extends Subscribable<TableSelectionState> {
54
+ constructor();
55
+ /**
56
+ * Select a cell within `doc`. Resolves the table at `coords.tableIndex` and
57
+ * derives the full {@link TableContext}. Returns the context, or `null` (and
58
+ * clears the selection) when that table no longer exists.
59
+ */
60
+ selectCell(doc: document_d_exports.Document, coords: CellCoordinates): TableContext | null;
61
+ /** Clear the current selection. */
62
+ clearSelection(): void;
63
+ /** Check if a specific cell is the current selection. */
64
+ isCellSelected(tableIndex: number, rowIndex: number, columnIndex: number): boolean;
65
+ /**
66
+ * Dispatch a structural table action against `doc`. Mutating actions
67
+ * (add/delete row or column, merge, split, delete table) return the resulting
68
+ * document and re-track the selection against it; border-style and selection
69
+ * actions are routed through the toolbar's own handlers and resolve to `noop`.
70
+ */
71
+ handleAction(doc: document_d_exports.Document, action: TableAction): TableActionResult;
72
+ }
73
+ //#endregion
74
+ export { TABLE_DATA_ATTRIBUTES, TableActionResult, TableSelectionManager, TableSelectionState, deleteTableFromDocument, findTableFromClick, getTableFromDocument, updateTableInDocument };
@@ -0,0 +1,225 @@
1
+ import { Subscribable } from "./Subscribable.js";
2
+ import { addColumn, addRow, createTableContext, deleteColumn, deleteRow, getColumnCount, mergeCells, splitCell } from "../utils/tableOperations.js";
3
+ //#region src/managers/TableSelectionManager.ts
4
+ /** Data attributes for table elements in the rendered DOM */
5
+ const TABLE_DATA_ATTRIBUTES = {
6
+ TABLE_INDEX: "data-table-index",
7
+ ROW_INDEX: "data-row",
8
+ COLUMN_INDEX: "data-col",
9
+ TABLE_CELL: "data-table-cell"
10
+ };
11
+ /**
12
+ * Find table cell coordinates from a click target by walking up the DOM
13
+ * and reading data attributes.
14
+ */
15
+ function findTableFromClick(target, container) {
16
+ if (!(target instanceof Element)) return null;
17
+ let current = target;
18
+ while (current && current !== container) {
19
+ if (current.tagName === "TD" || current.tagName === "TH") {
20
+ const rowAttr = current.getAttribute(TABLE_DATA_ATTRIBUTES.ROW_INDEX);
21
+ const colAttr = current.getAttribute(TABLE_DATA_ATTRIBUTES.COLUMN_INDEX);
22
+ if (rowAttr !== null && colAttr !== null) {
23
+ let tableElement = current;
24
+ while (tableElement && tableElement !== container) {
25
+ if (tableElement.tagName === "TABLE") {
26
+ const tableIndexAttr = tableElement.getAttribute(TABLE_DATA_ATTRIBUTES.TABLE_INDEX);
27
+ if (tableIndexAttr !== null) return {
28
+ tableIndex: Number.parseInt(tableIndexAttr, 10),
29
+ rowIndex: Number.parseInt(rowAttr, 10),
30
+ columnIndex: Number.parseInt(colAttr, 10)
31
+ };
32
+ break;
33
+ }
34
+ tableElement = tableElement.parentElement;
35
+ }
36
+ }
37
+ break;
38
+ }
39
+ current = current.parentElement;
40
+ }
41
+ return null;
42
+ }
43
+ /** Get a table from the document by index. */
44
+ function getTableFromDocument(doc, tableIndex) {
45
+ let currentTableIndex = 0;
46
+ for (const block of doc.package.document.content) if (block.type === "table") {
47
+ if (currentTableIndex === tableIndex) return block;
48
+ currentTableIndex++;
49
+ }
50
+ return null;
51
+ }
52
+ /** Update a table in the document immutably. */
53
+ function updateTableInDocument(doc, tableIndex, newTable) {
54
+ let currentTableIndex = 0;
55
+ const newContent = doc.package.document.content.map((block) => {
56
+ if (block.type === "table") {
57
+ if (currentTableIndex === tableIndex) {
58
+ currentTableIndex++;
59
+ return newTable;
60
+ }
61
+ currentTableIndex++;
62
+ }
63
+ return block;
64
+ });
65
+ return {
66
+ ...doc,
67
+ package: {
68
+ ...doc.package,
69
+ document: {
70
+ ...doc.package.document,
71
+ content: newContent
72
+ }
73
+ }
74
+ };
75
+ }
76
+ /** Delete a table from the document immutably. */
77
+ function deleteTableFromDocument(doc, tableIndex) {
78
+ let currentTableIndex = 0;
79
+ const newContent = doc.package.document.content.filter((block) => {
80
+ if (block.type === "table") {
81
+ const shouldDelete = currentTableIndex === tableIndex;
82
+ currentTableIndex++;
83
+ return !shouldDelete;
84
+ }
85
+ return true;
86
+ });
87
+ return {
88
+ ...doc,
89
+ package: {
90
+ ...doc.package,
91
+ document: {
92
+ ...doc.package.document,
93
+ content: newContent
94
+ }
95
+ }
96
+ };
97
+ }
98
+ const EMPTY_SELECTION = {
99
+ context: null,
100
+ table: null,
101
+ tableIndex: null,
102
+ rowIndex: null,
103
+ columnIndex: null
104
+ };
105
+ var TableSelectionManager = class extends Subscribable {
106
+ constructor() {
107
+ super(EMPTY_SELECTION);
108
+ }
109
+ /**
110
+ * Select a cell within `doc`. Resolves the table at `coords.tableIndex` and
111
+ * derives the full {@link TableContext}. Returns the context, or `null` (and
112
+ * clears the selection) when that table no longer exists.
113
+ */
114
+ selectCell(doc, coords) {
115
+ const table = getTableFromDocument(doc, coords.tableIndex);
116
+ if (!table) {
117
+ this.setSnapshot(EMPTY_SELECTION);
118
+ return null;
119
+ }
120
+ const context = createTableContext(table, {
121
+ tableIndex: coords.tableIndex,
122
+ rowIndex: coords.rowIndex,
123
+ columnIndex: coords.columnIndex
124
+ });
125
+ this.setSnapshot({
126
+ context,
127
+ table,
128
+ tableIndex: coords.tableIndex,
129
+ rowIndex: coords.rowIndex,
130
+ columnIndex: coords.columnIndex
131
+ });
132
+ return context;
133
+ }
134
+ /** Clear the current selection. */
135
+ clearSelection() {
136
+ this.setSnapshot(EMPTY_SELECTION);
137
+ }
138
+ /** Check if a specific cell is the current selection. */
139
+ isCellSelected(tableIndex, rowIndex, columnIndex) {
140
+ const snapshot = this.getSnapshot();
141
+ return snapshot.tableIndex === tableIndex && snapshot.rowIndex === rowIndex && snapshot.columnIndex === columnIndex;
142
+ }
143
+ /**
144
+ * Dispatch a structural table action against `doc`. Mutating actions
145
+ * (add/delete row or column, merge, split, delete table) return the resulting
146
+ * document and re-track the selection against it; border-style and selection
147
+ * actions are routed through the toolbar's own handlers and resolve to `noop`.
148
+ */
149
+ handleAction(doc, action) {
150
+ const { context, table, tableIndex, rowIndex, columnIndex } = this.getSnapshot();
151
+ if (context === null || table === null || tableIndex === null || rowIndex === null || columnIndex === null) return { type: "noop" };
152
+ let newTable = null;
153
+ let newRowIndex = rowIndex;
154
+ let newColumnIndex = columnIndex;
155
+ switch (action) {
156
+ case "addRowAbove":
157
+ newTable = addRow(table, rowIndex, "before");
158
+ newRowIndex = rowIndex + 1;
159
+ break;
160
+ case "addRowBelow":
161
+ newTable = addRow(table, rowIndex, "after");
162
+ break;
163
+ case "addColumnLeft":
164
+ newTable = addColumn(table, columnIndex, "before");
165
+ newColumnIndex = columnIndex + 1;
166
+ break;
167
+ case "addColumnRight":
168
+ newTable = addColumn(table, columnIndex, "after");
169
+ break;
170
+ case "deleteRow":
171
+ if (table.rows.length > 1) {
172
+ newTable = deleteRow(table, rowIndex);
173
+ if (newRowIndex >= newTable.rows.length) newRowIndex = newTable.rows.length - 1;
174
+ }
175
+ break;
176
+ case "deleteColumn":
177
+ if (getColumnCount(table) > 1) {
178
+ newTable = deleteColumn(table, columnIndex);
179
+ const newColCount = getColumnCount(newTable);
180
+ if (newColumnIndex >= newColCount) newColumnIndex = newColCount - 1;
181
+ }
182
+ break;
183
+ case "mergeCells":
184
+ if (context.selection.selectedCells) newTable = mergeCells(table, context.selection);
185
+ break;
186
+ case "splitCell":
187
+ if (context.canSplitCell) newTable = splitCell(table, rowIndex, columnIndex);
188
+ break;
189
+ case "deleteTable": {
190
+ const newDoc = deleteTableFromDocument(doc, tableIndex);
191
+ this.clearSelection();
192
+ return {
193
+ type: "deleted",
194
+ document: newDoc
195
+ };
196
+ }
197
+ case "borderAll":
198
+ case "borderBottom":
199
+ case "borderInside":
200
+ case "borderLeft":
201
+ case "borderNone":
202
+ case "borderOutside":
203
+ case "borderRight":
204
+ case "borderTop":
205
+ case "selectColumn":
206
+ case "selectRow":
207
+ case "selectTable": break;
208
+ }
209
+ if (!newTable) return { type: "noop" };
210
+ const newDoc = updateTableInDocument(doc, tableIndex, newTable);
211
+ const nextContext = this.selectCell(newDoc, {
212
+ tableIndex,
213
+ rowIndex: newRowIndex,
214
+ columnIndex: newColumnIndex
215
+ });
216
+ if (!nextContext) return { type: "noop" };
217
+ return {
218
+ type: "updated",
219
+ document: newDoc,
220
+ context: nextContext
221
+ };
222
+ }
223
+ };
224
+ //#endregion
225
+ export { TABLE_DATA_ATTRIBUTES, TableSelectionManager, deleteTableFromDocument, findTableFromClick, getTableFromDocument, updateTableInDocument };