@stll/folio-core 0.0.1-placeholder.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +66 -0
  616. package/dist/types/block-id.js +73 -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,61 @@
1
+ import { resolveFontFamily } from "../utils/fontResolver.js";
2
+ //#region src/layout-painter/renderWatermark.ts
3
+ const WATERMARK_CLASS = "layout-page-watermark";
4
+ /**
5
+ * Build the watermark overlay element for a page. Returns `null` when
6
+ * the watermark is a picture without a resolved `imageSrc` (the
7
+ * relationship-id resolver lives outside the painter; without a src
8
+ * there's nothing visible to draw).
9
+ */
10
+ function renderWatermarkLayer(watermark, page, doc, options = {}) {
11
+ if (watermark.kind === "picture" && !options.imageSrc) return null;
12
+ const layer = doc.createElement("div");
13
+ layer.className = WATERMARK_CLASS;
14
+ layer.style.position = "absolute";
15
+ layer.style.top = "0";
16
+ layer.style.left = "0";
17
+ layer.style.width = `${page.size.w}px`;
18
+ layer.style.height = `${page.size.h}px`;
19
+ layer.style.zIndex = "0";
20
+ layer.style.pointerEvents = "none";
21
+ layer.style.overflow = "hidden";
22
+ layer.style.display = "flex";
23
+ layer.style.alignItems = "center";
24
+ layer.style.justifyContent = "center";
25
+ if (watermark.kind === "text") layer.append(renderTextWatermark(watermark, doc));
26
+ else {
27
+ const imageSrc = options.imageSrc;
28
+ if (!imageSrc) return null;
29
+ layer.append(renderPictureWatermark(watermark, imageSrc, doc));
30
+ }
31
+ return layer;
32
+ }
33
+ function renderTextWatermark(watermark, doc) {
34
+ const el = doc.createElement("div");
35
+ el.textContent = watermark.text;
36
+ el.style.fontFamily = resolveFontFamily(watermark.font ?? "Calibri").cssFallback;
37
+ el.style.fontSize = "144px";
38
+ el.style.fontWeight = "bold";
39
+ el.style.whiteSpace = "nowrap";
40
+ const color = watermark.color && watermark.color !== "auto" ? `#${watermark.color}` : "#C0C0C0";
41
+ el.style.color = color;
42
+ el.style.opacity = String(watermark.opacity ?? .5);
43
+ const rotation = watermark.diagonal === false ? 0 : -45;
44
+ el.style.transform = `rotate(${rotation}deg)`;
45
+ el.style.transformOrigin = "center center";
46
+ return el;
47
+ }
48
+ function renderPictureWatermark(watermark, imageSrc, doc) {
49
+ const img = doc.createElement("img");
50
+ img.src = imageSrc;
51
+ img.alt = "";
52
+ img.setAttribute("aria-hidden", "true");
53
+ const scalePct = (watermark.scale ?? 1) * 100;
54
+ img.style.maxWidth = `${scalePct}%`;
55
+ img.style.maxHeight = `${scalePct}%`;
56
+ img.style.opacity = watermark.washout === false ? "1" : "0.4";
57
+ img.style.objectFit = "contain";
58
+ return img;
59
+ }
60
+ //#endregion
61
+ export { renderWatermarkLayer };
@@ -0,0 +1,6 @@
1
+ import { SdtGroup } from "../layout-engine/types.js";
2
+
3
+ //#region src/layout-painter/sdtBoundary.d.ts
4
+ declare function applySdtDataAttrs(el: HTMLElement, sdtGroups: readonly SdtGroup[] | undefined): void;
5
+ //#endregion
6
+ export { applySdtDataAttrs };
@@ -0,0 +1,28 @@
1
+ //#region src/layout-painter/sdtBoundary.ts
2
+ function applySdtDataAttrs(el, sdtGroups) {
3
+ if (!sdtGroups || sdtGroups.length === 0) return;
4
+ el.dataset["sdtBoundary"] = "true";
5
+ const innermost = sdtGroups.at(-1);
6
+ if (innermost) {
7
+ el.dataset["sdtId"] = innermost.id;
8
+ el.dataset["sdtPmPos"] = String(innermost.pmPos);
9
+ el.dataset["sdtType"] = innermost.sdtType;
10
+ if (innermost.position) el.dataset["sdtPosition"] = innermost.position;
11
+ if (innermost.alias) el.dataset["sdtAlias"] = innermost.alias;
12
+ if (innermost.tag) el.dataset["sdtTag"] = innermost.tag;
13
+ if (innermost.sdtId !== void 0) el.dataset["sdtOoxmlId"] = String(innermost.sdtId);
14
+ if (innermost.lock) el.dataset["sdtLock"] = innermost.lock;
15
+ if (innermost.showingPlaceholder) el.dataset["sdtShowingPlaceholder"] = "true";
16
+ if (innermost.checked !== void 0) el.dataset["sdtChecked"] = String(innermost.checked);
17
+ if (innermost.dateFormat) el.dataset["sdtDateFormat"] = innermost.dateFormat;
18
+ if (innermost.listItemsJson) el.dataset["sdtListItems"] = innermost.listItemsJson;
19
+ }
20
+ el.dataset["sdtStack"] = JSON.stringify(sdtGroups.map((g) => ({
21
+ id: g.id,
22
+ sdtType: g.sdtType,
23
+ tag: g.tag ?? null,
24
+ alias: g.alias ?? null
25
+ })));
26
+ }
27
+ //#endregion
28
+ export { applySdtDataAttrs };
@@ -0,0 +1,28 @@
1
+ import { Subscribable } from "./Subscribable.js";
2
+ import { ContextMenuAnchor, ContextMenuSnapshot } from "./types.js";
3
+ import { EditorState } from "prosemirror-state";
4
+
5
+ //#region src/managers/ContextMenuManager.d.ts
6
+ type OpenContextMenuOptions = {
7
+ /** Live editor state, or null when the editor view is not mounted. */state: EditorState | null;
8
+ /**
9
+ * For the PagedEditor child callback path, which already knows from a
10
+ * layout-overlay selection whether the user highlighted text. When omitted,
11
+ * `hasSelection` is derived from the ProseMirror selection.
12
+ */
13
+ hasSelectionOverride?: boolean | undefined; /** Whether the cursor sits inside a tracked change (detected by the adapter). */
14
+ cursorInTrackedChange: boolean;
15
+ };
16
+ declare class ContextMenuManager extends Subscribable<ContextMenuSnapshot> {
17
+ constructor();
18
+ /** Open the menu at `anchor`, deriving menu flags from the editor state. */
19
+ openMenu(anchor: ContextMenuAnchor, {
20
+ state,
21
+ hasSelectionOverride,
22
+ cursorInTrackedChange
23
+ }: OpenContextMenuOptions): void;
24
+ /** Close the menu. */
25
+ closeMenu(): void;
26
+ }
27
+ //#endregion
28
+ export { ContextMenuManager, OpenContextMenuOptions };
@@ -0,0 +1,48 @@
1
+ import { isInTable as isInTableCell } from "../prosemirror/extensions/nodes/TableExtension.js";
2
+ import { Subscribable } from "./Subscribable.js";
3
+ //#region src/managers/ContextMenuManager.ts
4
+ const CLOSED_STATE = {
5
+ isOpen: false,
6
+ position: {
7
+ x: 0,
8
+ y: 0
9
+ },
10
+ hasSelection: false,
11
+ selectionRange: {
12
+ from: 0,
13
+ to: 0
14
+ },
15
+ cursorInTable: false,
16
+ cursorInTrackedChange: false
17
+ };
18
+ var ContextMenuManager = class extends Subscribable {
19
+ constructor() {
20
+ super(CLOSED_STATE);
21
+ }
22
+ /** Open the menu at `anchor`, deriving menu flags from the editor state. */
23
+ openMenu(anchor, { state, hasSelectionOverride, cursorInTrackedChange }) {
24
+ const selection = state?.selection ?? {
25
+ from: 0,
26
+ to: 0
27
+ };
28
+ const hasSelection = hasSelectionOverride ?? selection.from !== selection.to;
29
+ const cursorInTable = state ? isInTableCell(state) : false;
30
+ this.setSnapshot({
31
+ isOpen: true,
32
+ position: anchor,
33
+ hasSelection,
34
+ selectionRange: {
35
+ from: selection.from,
36
+ to: selection.to
37
+ },
38
+ cursorInTable,
39
+ cursorInTrackedChange
40
+ });
41
+ }
42
+ /** Close the menu. */
43
+ closeMenu() {
44
+ this.setSnapshot(CLOSED_STATE);
45
+ }
46
+ };
47
+ //#endregion
48
+ export { ContextMenuManager };
@@ -0,0 +1,47 @@
1
+ import { document_d_exports } from "../types/document.js";
2
+ import { DocxCompatibility } from "../docx/compatibility.js";
3
+ import { DocxInput } from "../utils/docxInput.js";
4
+
5
+ //#region src/managers/DocumentLoaderManager.d.ts
6
+ type DocumentLoadState = {
7
+ status: "loading";
8
+ } | {
9
+ status: "ready";
10
+ } | {
11
+ status: "error";
12
+ message: string;
13
+ };
14
+ /**
15
+ * Minimal structural view of the editor history the loader drives. Declared
16
+ * here so core does not depend on the React `useHistory` return type.
17
+ */
18
+ type DocumentLoaderHistory = {
19
+ /** The current document, or null before any load. */readonly state: document_d_exports.Document | null; /** Reset history to a freshly loaded document. */
20
+ reset: (document: document_d_exports.Document) => void;
21
+ };
22
+ type DocumentLoaderCallbacks = {
23
+ /** Editor history to reset/seed with the loaded document. */history: DocumentLoaderHistory; /** Called when an unrecoverable parse error occurs. */
24
+ onError: ((error: Error) => void) | undefined; /** Called after parsing to report whether editing can preserve fidelity. */
25
+ onCompatibilityChange: ((compatibility: DocxCompatibility) => void) | undefined; /** Clears UI state coupled to the previous document at the start of a load. */
26
+ onReset: () => void; /** Sets the document loading slice of editor state. */
27
+ setDocumentLoadState: (state: DocumentLoadState) => void;
28
+ };
29
+ declare class DocumentLoaderManager {
30
+ private loadGeneration;
31
+ private callbacks;
32
+ constructor(callbacks: DocumentLoaderCallbacks);
33
+ /** Re-bind the host callbacks (the adapter refreshes these every render). */
34
+ setCallbacks(callbacks: DocumentLoaderCallbacks): void;
35
+ /** Reset color/UI state coupled to the previous document. */
36
+ resetForNewDocument(): void;
37
+ /** Load an already-parsed document. */
38
+ loadParsedDocument(doc: document_d_exports.Document): void;
39
+ /**
40
+ * Parse and load a raw DOCX buffer. A monotonic generation counter discards
41
+ * the result (and any error) when a newer load started while this one was in
42
+ * flight.
43
+ */
44
+ loadBuffer(buffer: DocxInput): Promise<void>;
45
+ }
46
+ //#endregion
47
+ export { DocumentLoadState, DocumentLoaderCallbacks, DocumentLoaderHistory, DocumentLoaderManager };
@@ -0,0 +1,69 @@
1
+ import { resetAuthorColors } from "../utils/authorColors.js";
2
+ import { loadFontsWithMapping } from "../utils/fontLoader.js";
3
+ import { parseDocx } from "../docx/parser.js";
4
+ import { inspectDocxCompatibility } from "../docx/compatibility.js";
5
+ //#region src/managers/DocumentLoaderManager.ts
6
+ /**
7
+ * DocumentLoaderManager
8
+ *
9
+ * Framework-agnostic DOCX load/state orchestration, extracted from the React
10
+ * `useDocumentLoader` hook. Owns the monotonic load-generation counter that
11
+ * discards stale async loads and runs the parse → reset → history → fonts
12
+ * sequence. The pure load-source resolution lives in `documentLoaderBehavior`.
13
+ *
14
+ * The adapter keeps only React concerns: the prop-change effects, the original
15
+ * buffer ref, and the host callbacks (which it re-binds via `setCallbacks`).
16
+ */
17
+ var DocumentLoaderManager = class {
18
+ loadGeneration = 0;
19
+ callbacks;
20
+ constructor(callbacks) {
21
+ this.callbacks = callbacks;
22
+ }
23
+ /** Re-bind the host callbacks (the adapter refreshes these every render). */
24
+ setCallbacks(callbacks) {
25
+ this.callbacks = callbacks;
26
+ }
27
+ /** Reset color/UI state coupled to the previous document. */
28
+ resetForNewDocument() {
29
+ resetAuthorColors();
30
+ this.callbacks.onReset();
31
+ }
32
+ /** Load an already-parsed document. */
33
+ loadParsedDocument(doc) {
34
+ const { history, onCompatibilityChange, setDocumentLoadState } = this.callbacks;
35
+ this.resetForNewDocument();
36
+ history.reset(doc);
37
+ onCompatibilityChange?.(inspectDocxCompatibility(doc));
38
+ setDocumentLoadState({ status: "ready" });
39
+ if (doc.requiredFonts && doc.requiredFonts.length > 0) loadFontsWithMapping(doc.requiredFonts).catch(() => void 0);
40
+ }
41
+ /**
42
+ * Parse and load a raw DOCX buffer. A monotonic generation counter discards
43
+ * the result (and any error) when a newer load started while this one was in
44
+ * flight.
45
+ */
46
+ async loadBuffer(buffer) {
47
+ const { history, onError, setDocumentLoadState } = this.callbacks;
48
+ const generation = ++this.loadGeneration;
49
+ if (!(history.state !== null)) setDocumentLoadState({ status: "loading" });
50
+ try {
51
+ const doc = await parseDocx(buffer, {
52
+ detectVariables: false,
53
+ preloadFonts: false
54
+ });
55
+ if (this.loadGeneration !== generation) return;
56
+ this.loadParsedDocument(doc);
57
+ } catch (error) {
58
+ if (this.loadGeneration !== generation) return;
59
+ const message = error instanceof Error ? error.message : "Failed to parse document";
60
+ setDocumentLoadState({
61
+ status: "error",
62
+ message
63
+ });
64
+ onError?.(error instanceof Error ? error : new Error(message));
65
+ }
66
+ }
67
+ };
68
+ //#endregion
69
+ export { DocumentLoaderManager };
@@ -0,0 +1,28 @@
1
+ import { Subscribable } from "./Subscribable.js";
2
+
3
+ //#region src/managers/EditorModeManager.d.ts
4
+ /** Editor mode. Mirrors Google Docs editing/suggesting/viewing semantics. */
5
+ type EditorMode = "editing" | "suggesting" | "viewing";
6
+ /** How tracked changes render. Drives the display mode dropdown. */
7
+ declare const DISPLAY_MODES: readonly ["all-markup", "simple-markup", "no-markup", "original"];
8
+ type DisplayMode = (typeof DISPLAY_MODES)[number];
9
+ /** EditorModeManager snapshot. */
10
+ type EditorModeSnapshot = {
11
+ /** Uncontrolled internal editing mode (the host's controlled prop wins over this). */editingMode: EditorMode; /** Tracked-changes display mode (`all-markup` by default). */
12
+ displayMode: DisplayMode;
13
+ };
14
+ /** True when the host opts into read-only OR the mode is `"viewing"`. */
15
+ declare const isReadOnlyMode: (editingMode: EditorMode, readOnlyProp: boolean) => boolean;
16
+ /** True when the mode is `"suggesting"`. */
17
+ declare const isTrackChangesMode: (editingMode: EditorMode) => boolean;
18
+ /** The mode produced by toggling track changes between `"editing"` and `"suggesting"`. */
19
+ declare const toggledTrackChangesMode: (editingMode: EditorMode) => EditorMode;
20
+ declare class EditorModeManager extends Subscribable<EditorModeSnapshot> {
21
+ constructor(initialEditingMode: EditorMode);
22
+ /** Set the internal editing mode. */
23
+ setEditingMode(mode: EditorMode): void;
24
+ /** Set the tracked-changes display mode. */
25
+ setDisplayMode(mode: DisplayMode): void;
26
+ }
27
+ //#endregion
28
+ export { DISPLAY_MODES, DisplayMode, EditorMode, EditorModeManager, EditorModeSnapshot, isReadOnlyMode, isTrackChangesMode, toggledTrackChangesMode };
@@ -0,0 +1,50 @@
1
+ import { Subscribable } from "./Subscribable.js";
2
+ //#region src/managers/EditorModeManager.ts
3
+ /**
4
+ * EditorModeManager
5
+ *
6
+ * Framework-agnostic store for the editor's mode state.
7
+ * Extracted from the React `useEditorMode` hook.
8
+ *
9
+ * Holds the uncontrolled internal editing mode and the tracked-changes display
10
+ * mode; the host adapter layers controlled-prop reconciliation on top. The
11
+ * mode derivations (read-only, track-changes, toggle target) are pure helpers
12
+ * so any adapter can compute them without the store.
13
+ */
14
+ /** How tracked changes render. Drives the display mode dropdown. */
15
+ const DISPLAY_MODES = [
16
+ "all-markup",
17
+ "simple-markup",
18
+ "no-markup",
19
+ "original"
20
+ ];
21
+ /** True when the host opts into read-only OR the mode is `"viewing"`. */
22
+ const isReadOnlyMode = (editingMode, readOnlyProp) => readOnlyProp || editingMode === "viewing";
23
+ /** True when the mode is `"suggesting"`. */
24
+ const isTrackChangesMode = (editingMode) => editingMode === "suggesting";
25
+ /** The mode produced by toggling track changes between `"editing"` and `"suggesting"`. */
26
+ const toggledTrackChangesMode = (editingMode) => isTrackChangesMode(editingMode) ? "editing" : "suggesting";
27
+ var EditorModeManager = class extends Subscribable {
28
+ constructor(initialEditingMode) {
29
+ super({
30
+ editingMode: initialEditingMode,
31
+ displayMode: "all-markup"
32
+ });
33
+ }
34
+ /** Set the internal editing mode. */
35
+ setEditingMode(mode) {
36
+ this.setSnapshot({
37
+ ...this.getSnapshot(),
38
+ editingMode: mode
39
+ });
40
+ }
41
+ /** Set the tracked-changes display mode. */
42
+ setDisplayMode(mode) {
43
+ this.setSnapshot({
44
+ ...this.getSnapshot(),
45
+ displayMode: mode
46
+ });
47
+ }
48
+ };
49
+ //#endregion
50
+ export { DISPLAY_MODES, EditorModeManager, isReadOnlyMode, isTrackChangesMode, toggledTrackChangesMode };
@@ -0,0 +1,26 @@
1
+ import { Subscribable } from "./Subscribable.js";
2
+ import { ErrorManagerSnapshot } from "./types.js";
3
+
4
+ //#region src/managers/ErrorManager.d.ts
5
+ declare class ErrorManager extends Subscribable<ErrorManagerSnapshot> {
6
+ private notifications;
7
+ private idCounter;
8
+ private readonly timers;
9
+ constructor();
10
+ /** Show an error notification (persistent, not auto-dismissed). */
11
+ showError(message: string, details?: string): string;
12
+ /** Show a warning notification (auto-dismissed after 5s). */
13
+ showWarning(message: string, details?: string): string;
14
+ /** Show an info notification (auto-dismissed after 5s). */
15
+ showInfo(message: string, details?: string): string;
16
+ /** Dismiss a notification by ID. */
17
+ dismiss(id: string): void;
18
+ /** Clear all notifications and cancel pending timers. */
19
+ clearAll(): void;
20
+ /** Destroy the manager and clean up all timers. */
21
+ destroy(): void;
22
+ private addNotification;
23
+ private emitSnapshot;
24
+ }
25
+ //#endregion
26
+ export { ErrorManager };
@@ -0,0 +1,85 @@
1
+ import { Subscribable } from "./Subscribable.js";
2
+ //#region src/managers/ErrorManager.ts
3
+ /**
4
+ * ErrorManager
5
+ *
6
+ * Framework-agnostic pub/sub error notification system.
7
+ * Replaces React's `componentDidCatch` + context pattern for error notifications.
8
+ *
9
+ * Usage with React:
10
+ * ```ts
11
+ * const { notifications } = useSyncExternalStore(manager.subscribe, manager.getSnapshot);
12
+ * ```
13
+ */
14
+ var ErrorManager = class extends Subscribable {
15
+ notifications = [];
16
+ idCounter = 0;
17
+ timers = /* @__PURE__ */ new Set();
18
+ constructor() {
19
+ super({ notifications: [] });
20
+ }
21
+ /** Show an error notification (persistent, not auto-dismissed). */
22
+ showError(message, details) {
23
+ return this.addNotification(message, "error", details);
24
+ }
25
+ /** Show a warning notification (auto-dismissed after 5s). */
26
+ showWarning(message, details) {
27
+ return this.addNotification(message, "warning", details);
28
+ }
29
+ /** Show an info notification (auto-dismissed after 5s). */
30
+ showInfo(message, details) {
31
+ return this.addNotification(message, "info", details);
32
+ }
33
+ /** Dismiss a notification by ID. */
34
+ dismiss(id) {
35
+ this.notifications = this.notifications.map((n) => n.id === id ? {
36
+ ...n,
37
+ dismissed: true
38
+ } : n);
39
+ this.emitSnapshot();
40
+ const timer = setTimeout(() => {
41
+ this.timers.delete(timer);
42
+ this.notifications = this.notifications.filter((n) => n.id !== id);
43
+ this.emitSnapshot();
44
+ }, 300);
45
+ this.timers.add(timer);
46
+ }
47
+ /** Clear all notifications and cancel pending timers. */
48
+ clearAll() {
49
+ this.notifications = [];
50
+ for (const timer of this.timers) clearTimeout(timer);
51
+ this.timers.clear();
52
+ this.emitSnapshot();
53
+ }
54
+ /** Destroy the manager and clean up all timers. */
55
+ destroy() {
56
+ for (const timer of this.timers) clearTimeout(timer);
57
+ this.timers.clear();
58
+ this.notifications = [];
59
+ }
60
+ addNotification(message, severity, details) {
61
+ const id = `error-${++this.idCounter}-${Date.now()}`;
62
+ const notification = {
63
+ id,
64
+ message,
65
+ severity,
66
+ ...details !== void 0 ? { details } : {},
67
+ timestamp: Date.now()
68
+ };
69
+ this.notifications = [...this.notifications, notification];
70
+ this.emitSnapshot();
71
+ if (severity !== "error") {
72
+ const timer = setTimeout(() => {
73
+ this.timers.delete(timer);
74
+ this.dismiss(id);
75
+ }, 5e3);
76
+ this.timers.add(timer);
77
+ }
78
+ return id;
79
+ }
80
+ emitSnapshot() {
81
+ this.setSnapshot({ notifications: this.notifications });
82
+ }
83
+ };
84
+ //#endregion
85
+ export { ErrorManager };
@@ -0,0 +1,54 @@
1
+ import { document_d_exports } from "../types/document.js";
2
+ import { FindMatchPosition } from "../prosemirror/findReplaceSelection.js";
3
+
4
+ //#region src/managers/FindReplaceManager.d.ts
5
+ type FindDirection = "next" | "previous";
6
+ type FindReplaceResult<TMatch> = {
7
+ matches: TMatch[];
8
+ totalCount: number;
9
+ currentIndex: number;
10
+ };
11
+ type ReplaceAllOutcome = {
12
+ document: document_d_exports.Document;
13
+ replacedCount: number;
14
+ };
15
+ /**
16
+ * The cursor index after stepping `direction` over `totalCount` matches,
17
+ * wrapping at both ends. Returns 0 when there are no matches.
18
+ */
19
+ declare const getAdjacentFindIndex: (currentIndex: number, totalCount: number, direction: FindDirection) => number;
20
+ declare class FindReplaceManager<TMatch extends FindMatchPosition> {
21
+ private result;
22
+ /** The active find result, or null when there is no active search. */
23
+ getResult(): FindReplaceResult<TMatch> | null;
24
+ /** Discard the active search. */
25
+ clear(): void;
26
+ /**
27
+ * Store a fresh set of matches as the active result, with the cursor on the
28
+ * first match. The result is kept even when `matches` is empty so callers can
29
+ * surface a "no results" state.
30
+ */
31
+ setMatches(matches: TMatch[]): FindReplaceResult<TMatch>;
32
+ /**
33
+ * Step the cursor and return the now-current match with its index, or null
34
+ * when there are no matches to navigate.
35
+ */
36
+ navigate(direction: FindDirection): {
37
+ match: TMatch;
38
+ index: number;
39
+ } | null;
40
+ /**
41
+ * Replace the current match's text. Returns the new document, or null when
42
+ * there is no current match or the replace fails.
43
+ */
44
+ replaceCurrent(document: document_d_exports.Document, replaceText: string): document_d_exports.Document | null;
45
+ /**
46
+ * Replace every match. Matches are replaced from the end of the document
47
+ * backwards so earlier offsets stay valid as the text shifts. Clears the
48
+ * active result and returns the new document plus the match count, or null
49
+ * when there is nothing to replace.
50
+ */
51
+ replaceAll(document: document_d_exports.Document, matches: readonly TMatch[], replaceText: string): ReplaceAllOutcome | null;
52
+ }
53
+ //#endregion
54
+ export { FindDirection, FindReplaceManager, FindReplaceResult, ReplaceAllOutcome, getAdjacentFindIndex };
@@ -0,0 +1,104 @@
1
+ import { replaceTextInDocument } from "../utils/replaceText.js";
2
+ //#region src/managers/FindReplaceManager.ts
3
+ /**
4
+ * The cursor index after stepping `direction` over `totalCount` matches,
5
+ * wrapping at both ends. Returns 0 when there are no matches.
6
+ */
7
+ const getAdjacentFindIndex = (currentIndex, totalCount, direction) => {
8
+ if (totalCount <= 0) return 0;
9
+ if (direction === "previous") return currentIndex === 0 ? totalCount - 1 : currentIndex - 1;
10
+ return (currentIndex + 1) % totalCount;
11
+ };
12
+ const toReplaceRange = (match) => ({
13
+ start: {
14
+ paragraphIndex: match.paragraphIndex,
15
+ offset: match.startOffset
16
+ },
17
+ end: {
18
+ paragraphIndex: match.paragraphIndex,
19
+ offset: match.endOffset
20
+ }
21
+ });
22
+ var FindReplaceManager = class {
23
+ result = null;
24
+ /** The active find result, or null when there is no active search. */
25
+ getResult() {
26
+ return this.result;
27
+ }
28
+ /** Discard the active search. */
29
+ clear() {
30
+ this.result = null;
31
+ }
32
+ /**
33
+ * Store a fresh set of matches as the active result, with the cursor on the
34
+ * first match. The result is kept even when `matches` is empty so callers can
35
+ * surface a "no results" state.
36
+ */
37
+ setMatches(matches) {
38
+ this.result = {
39
+ matches,
40
+ totalCount: matches.length,
41
+ currentIndex: 0
42
+ };
43
+ return this.result;
44
+ }
45
+ /**
46
+ * Step the cursor and return the now-current match with its index, or null
47
+ * when there are no matches to navigate.
48
+ */
49
+ navigate(direction) {
50
+ const result = this.result;
51
+ if (!result || result.matches.length === 0) return null;
52
+ const index = getAdjacentFindIndex(result.currentIndex, result.matches.length, direction);
53
+ this.result = {
54
+ ...result,
55
+ currentIndex: index
56
+ };
57
+ const match = result.matches[index];
58
+ return match ? {
59
+ match,
60
+ index
61
+ } : null;
62
+ }
63
+ /**
64
+ * Replace the current match's text. Returns the new document, or null when
65
+ * there is no current match or the replace fails.
66
+ */
67
+ replaceCurrent(document, replaceText) {
68
+ const result = this.result;
69
+ if (!result || result.matches.length === 0) return null;
70
+ const match = result.matches[result.currentIndex];
71
+ if (!match) return null;
72
+ try {
73
+ return replaceTextInDocument(document, toReplaceRange(match), replaceText);
74
+ } catch {
75
+ return null;
76
+ }
77
+ }
78
+ /**
79
+ * Replace every match. Matches are replaced from the end of the document
80
+ * backwards so earlier offsets stay valid as the text shifts. Clears the
81
+ * active result and returns the new document plus the match count, or null
82
+ * when there is nothing to replace.
83
+ */
84
+ replaceAll(document, matches, replaceText) {
85
+ if (matches.length === 0) return null;
86
+ const sortedMatches = [...matches].toSorted((a, b) => {
87
+ if (a.paragraphIndex !== b.paragraphIndex) return b.paragraphIndex - a.paragraphIndex;
88
+ return b.startOffset - a.startOffset;
89
+ });
90
+ let nextDocument = document;
91
+ for (const match of sortedMatches) try {
92
+ nextDocument = replaceTextInDocument(nextDocument, toReplaceRange(match), replaceText);
93
+ } catch {
94
+ continue;
95
+ }
96
+ this.result = null;
97
+ return {
98
+ document: nextDocument,
99
+ replacedCount: matches.length
100
+ };
101
+ }
102
+ };
103
+ //#endregion
104
+ export { FindReplaceManager, getAdjacentFindIndex };