@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,17 @@
1
+ import { EditorState, Transaction } from "prosemirror-state";
2
+ import { EditorView } from "prosemirror-view";
3
+
4
+ //#region src/layout-bridge/convert/wrapEditorViewAsSurface.d.ts
5
+ type Surface = {
6
+ /** Identity tag — `"body"` for the body PM, `"hf"` for any HF PM. */kind: "body" | "hf"; /** rId of the source HF part; `null` for the body surface. */
7
+ rId: string | null;
8
+ getState: () => EditorState | null;
9
+ getView: () => EditorView | null;
10
+ focus: () => void;
11
+ isFocused: () => boolean;
12
+ dispatch: (tr: Transaction) => void;
13
+ setSelection: (anchor: number, head?: number) => void;
14
+ };
15
+ declare function wrapEditorViewAsSurface(view: EditorView | null, rId: string): Surface;
16
+ //#endregion
17
+ export { Surface, wrapEditorViewAsSurface };
@@ -0,0 +1,36 @@
1
+ import { Selection, TextSelection } from "prosemirror-state";
2
+ //#region src/layout-bridge/convert/wrapEditorViewAsSurface.ts
3
+ /**
4
+ * Surface adapter — gives the pointer pipeline a uniform shape for the body
5
+ * PM and any HF PM, so a single resolved `activeSurface()` can drive click
6
+ * routing / drag-select / focus from one code path.
7
+ *
8
+ * The body PM ref (`HiddenProseMirrorRef`) and the persistent HF PMs (raw
9
+ * `EditorView` from `HiddenHeaderFooterPMs.getView()`) carry different APIs;
10
+ * this adapter projects both onto a small intersection: focus, set selection,
11
+ * get state, dispatch.
12
+ */
13
+ function wrapEditorViewAsSurface(view, rId) {
14
+ return {
15
+ kind: "hf",
16
+ rId,
17
+ getState: () => view?.state ?? null,
18
+ getView: () => view,
19
+ focus: () => view?.focus(),
20
+ isFocused: () => view?.hasFocus() ?? false,
21
+ dispatch: (tr) => view?.dispatch(tr),
22
+ setSelection(anchor, head) {
23
+ if (!view) return;
24
+ const { state, dispatch } = view;
25
+ const docEnd = state.doc.content.size;
26
+ const clampedAnchor = Math.max(0, Math.min(anchor, docEnd));
27
+ const clampedHead = head === void 0 ? clampedAnchor : Math.max(0, Math.min(head, docEnd));
28
+ const $anchor = state.doc.resolve(clampedAnchor);
29
+ const $head = state.doc.resolve(clampedHead);
30
+ const selection = head === void 0 ? Selection.near($anchor) : TextSelection.between($anchor, $head);
31
+ dispatch(state.tr.setSelection(selection));
32
+ }
33
+ };
34
+ }
35
+ //#endregion
36
+ export { wrapEditorViewAsSurface };
@@ -0,0 +1,66 @@
1
+ //#region src/layout-bridge/dom/clickToPositionDom.d.ts
2
+ /**
3
+ * DOM-based Click-to-Position Mapping
4
+ *
5
+ * Uses the browser's actual rendered DOM to find ProseMirror positions.
6
+ * This is more accurate than geometry-based calculation because it uses
7
+ * the browser's own text rendering with document.elementsFromPoint().
8
+ *
9
+ * DOM elements are tagged with data-pm-start and data-pm-end attributes,
10
+ * enabling binary search to find exact character positions.
11
+ */
12
+ /**
13
+ * Find ProseMirror position from a click using DOM-based detection.
14
+ *
15
+ * @param container - The pages container element
16
+ * @param clientX - Client X coordinate from mouse event
17
+ * @param clientY - Client Y coordinate from mouse event
18
+ * @param zoom - Current zoom level (default 1)
19
+ * @returns ProseMirror position, or null if not found
20
+ */
21
+ declare function clickToPositionDom(container: HTMLElement, clientX: number, clientY: number, zoom?: number): number | null;
22
+ /**
23
+ * Find exact position within a text span. Defers to the
24
+ * browser's own hit-tester (`caretPositionFromPoint` /
25
+ * `caretRangeFromPoint`) — that's what every native text
26
+ * editor uses, and it correctly handles bidi runs, kerning,
27
+ * variable fonts, sub-pixel rendering, and line wrap. Falls
28
+ * back to a per-glyph rect scan when the browser API is
29
+ * unavailable or returns a point outside this span (e.g. the
30
+ * caret API resolved to a sibling text node at the same y).
31
+ */
32
+ declare function findPositionInSpan(spanEl: HTMLElement, clientX: number, clientY: number): number | null;
33
+ /**
34
+ * Get selection rectangles for a PM range using DOM-based detection.
35
+ *
36
+ * @param container - The pages container element
37
+ * @param from - Start PM position
38
+ * @param to - End PM position
39
+ * @param overlayRect - Bounding rect of the selection overlay
40
+ * @returns Array of selection rectangles in overlay coordinates
41
+ */
42
+ type DomSelectionRect = {
43
+ x: number;
44
+ y: number;
45
+ width: number;
46
+ height: number;
47
+ pageIndex: number;
48
+ };
49
+ declare function getSelectionRectsFromDom(container: HTMLElement, from: number, to: number, overlayRect: DOMRect): DomSelectionRect[];
50
+ /**
51
+ * Get caret position from DOM for a PM position.
52
+ *
53
+ * @param container - The pages container element
54
+ * @param pmPos - ProseMirror position
55
+ * @param overlayRect - Bounding rect of the selection overlay
56
+ * @returns Caret position in overlay coordinates, or null
57
+ */
58
+ type DomCaretPosition = {
59
+ x: number;
60
+ y: number;
61
+ height: number;
62
+ pageIndex: number;
63
+ };
64
+ declare function getCaretPositionFromDom(container: HTMLElement, pmPos: number, overlayRect: DOMRect): DomCaretPosition | null;
65
+ //#endregion
66
+ export { DomCaretPosition, DomSelectionRect, clickToPositionDom, findPositionInSpan, getCaretPositionFromDom, getSelectionRectsFromDom };
@@ -0,0 +1,304 @@
1
+ import { closestHtmlElement, findHtmlElement, htmlQueryAll, queryHtmlElement } from "../../utils/domGuards.js";
2
+ //#region src/layout-bridge/dom/clickToPositionDom.ts
3
+ /**
4
+ * DOM-based Click-to-Position Mapping
5
+ *
6
+ * Uses the browser's actual rendered DOM to find ProseMirror positions.
7
+ * This is more accurate than geometry-based calculation because it uses
8
+ * the browser's own text rendering with document.elementsFromPoint().
9
+ *
10
+ * DOM elements are tagged with data-pm-start and data-pm-end attributes,
11
+ * enabling binary search to find exact character positions.
12
+ */
13
+ /**
14
+ * Find ProseMirror position from a click using DOM-based detection.
15
+ *
16
+ * @param container - The pages container element
17
+ * @param clientX - Client X coordinate from mouse event
18
+ * @param clientY - Client Y coordinate from mouse event
19
+ * @param zoom - Current zoom level (default 1)
20
+ * @returns ProseMirror position, or null if not found
21
+ */
22
+ function clickToPositionDom(container, clientX, clientY, zoom = 1) {
23
+ const elements = document.elementsFromPoint(clientX, clientY);
24
+ const pageEl = findHtmlElement(elements, (el) => el.classList.contains("layout-page"));
25
+ if (!pageEl) return null;
26
+ const spanEl = findHtmlElement(elements, (el) => el.tagName === "SPAN" && el.dataset["pmStart"] !== void 0 && el.dataset["pmEnd"] !== void 0);
27
+ if (spanEl) return findPositionInSpan(spanEl, clientX, clientY);
28
+ const emptyRun = findHtmlElement(elements, (el) => el.classList.contains("layout-empty-run"));
29
+ if (emptyRun) {
30
+ const paragraph = closestHtmlElement(emptyRun, ".layout-paragraph");
31
+ if (paragraph && paragraph.dataset["pmStart"]) return Number(paragraph.dataset["pmStart"]);
32
+ }
33
+ const paragraphEl = findHtmlElement(elements, (el) => el.classList.contains("layout-paragraph") && el.dataset["pmStart"] !== void 0);
34
+ if (paragraphEl && paragraphEl.dataset["pmStart"]) {
35
+ const nearestPos = findNearestSpanInElement(paragraphEl, clientX, clientY);
36
+ if (nearestPos !== null) return nearestPos;
37
+ return Number(paragraphEl.dataset["pmStart"]);
38
+ }
39
+ const cellEl = findHtmlElement(elements, (el) => el.classList.contains("layout-table-cell"));
40
+ if (cellEl) return findNearestSpanInElement(cellEl, clientX, clientY);
41
+ return findNearestSpan(container, pageEl, clientX, clientY, zoom);
42
+ }
43
+ /**
44
+ * Find exact position within a text span. Defers to the
45
+ * browser's own hit-tester (`caretPositionFromPoint` /
46
+ * `caretRangeFromPoint`) — that's what every native text
47
+ * editor uses, and it correctly handles bidi runs, kerning,
48
+ * variable fonts, sub-pixel rendering, and line wrap. Falls
49
+ * back to a per-glyph rect scan when the browser API is
50
+ * unavailable or returns a point outside this span (e.g. the
51
+ * caret API resolved to a sibling text node at the same y).
52
+ */
53
+ function findPositionInSpan(spanEl, clientX, clientY) {
54
+ const pmStart = Number(spanEl.dataset["pmStart"]);
55
+ const pmEnd = Number(spanEl.dataset["pmEnd"]);
56
+ if (spanEl.classList.contains("layout-run-tab")) {
57
+ const rect = spanEl.getBoundingClientRect();
58
+ return clientX < (rect.left + rect.right) / 2 ? pmStart : pmEnd;
59
+ }
60
+ const textNode = spanEl.firstChild;
61
+ if (!textNode || textNode.nodeType !== Node.TEXT_NODE) return pmStart;
62
+ const text = textNode;
63
+ const textLength = text.length;
64
+ if (textLength === 0) return pmStart;
65
+ const ownerDoc = spanEl.ownerDocument;
66
+ const native = caretOffsetFromPoint(ownerDoc, text, clientX, clientY);
67
+ if (native !== null) return pmStart + Math.min(native, pmEnd - pmStart);
68
+ const range = ownerDoc.createRange();
69
+ let bestOffset = 0;
70
+ let bestDistance = Number.POSITIVE_INFINITY;
71
+ for (let i = 0; i < textLength; i++) {
72
+ range.setStart(text, i);
73
+ range.setEnd(text, i + 1);
74
+ const rect = range.getBoundingClientRect();
75
+ if (rect.width === 0 && rect.height === 0) continue;
76
+ const midpoint = rect.left + rect.width / 2;
77
+ const distance = Math.abs(clientX - midpoint);
78
+ if (distance < bestDistance) {
79
+ bestDistance = distance;
80
+ bestOffset = clientX < midpoint ? i : i + 1;
81
+ }
82
+ }
83
+ return pmStart + Math.min(bestOffset, pmEnd - pmStart);
84
+ }
85
+ /**
86
+ * Resolve `(clientX, clientY)` to a character offset
87
+ * inside `text` using the browser's caret hit-tester.
88
+ * Returns `null` if the API is unavailable or resolved to
89
+ * a different node — callers fall back to a glyph-by-glyph
90
+ * scan in that case.
91
+ */
92
+ function caretOffsetFromPoint(ownerDoc, text, clientX, clientY) {
93
+ const doc = ownerDoc;
94
+ if (typeof doc.caretPositionFromPoint === "function") {
95
+ const pos = doc.caretPositionFromPoint(clientX, clientY);
96
+ if (pos && pos.offsetNode === text) return pos.offset;
97
+ }
98
+ if (typeof doc.caretRangeFromPoint === "function") {
99
+ const range = doc.caretRangeFromPoint(clientX, clientY);
100
+ if (range && range.startContainer === text) return range.startOffset;
101
+ }
102
+ return null;
103
+ }
104
+ /**
105
+ * Find the nearest text span within a specific element (e.g. a table cell).
106
+ * Used when a click lands in empty space within a cell to keep the cursor
107
+ * inside that cell rather than jumping to a different one.
108
+ */
109
+ function findNearestSpanInElement(element, clientX, clientY) {
110
+ const emptyRun = queryHtmlElement(element, ".layout-empty-run");
111
+ if (emptyRun) {
112
+ if (emptyRun.dataset["pmStart"]) return Number(emptyRun.dataset["pmStart"]);
113
+ const paragraph = closestHtmlElement(emptyRun, ".layout-paragraph");
114
+ if (paragraph && paragraph.dataset["pmStart"]) return Number(paragraph.dataset["pmStart"]);
115
+ }
116
+ const lines = htmlQueryAll(element, ".layout-line");
117
+ let closestLine = null;
118
+ let closestLineDistance = Infinity;
119
+ for (const line of lines) {
120
+ const rect = line.getBoundingClientRect();
121
+ const centerY = (rect.top + rect.bottom) / 2;
122
+ const distance = Math.abs(clientY - centerY);
123
+ if (distance < closestLineDistance) {
124
+ closestLineDistance = distance;
125
+ closestLine = line;
126
+ }
127
+ }
128
+ if (!closestLine) {
129
+ const paragraph = queryHtmlElement(element, ".layout-paragraph[data-pm-start]");
130
+ if (paragraph?.dataset["pmStart"]) return Number(paragraph.dataset["pmStart"]);
131
+ if (element.dataset["pmStart"]) return Number(element.dataset["pmStart"]);
132
+ return null;
133
+ }
134
+ const lineSpans = htmlQueryAll(closestLine, "span[data-pm-start][data-pm-end]");
135
+ if (lineSpans.length === 0) {
136
+ const paragraph = closestHtmlElement(closestLine, ".layout-paragraph");
137
+ if (paragraph?.dataset["pmStart"]) return Number(paragraph.dataset["pmStart"]);
138
+ return null;
139
+ }
140
+ let closestSpan = null;
141
+ let closestSpanDistance = Infinity;
142
+ for (const spanEl of lineSpans) {
143
+ const rect = spanEl.getBoundingClientRect();
144
+ if (clientX >= rect.left && clientX <= rect.right) return findPositionInSpan(spanEl, clientX, clientY);
145
+ const distance = clientX < rect.left ? rect.left - clientX : clientX - rect.right;
146
+ if (distance < closestSpanDistance) {
147
+ closestSpanDistance = distance;
148
+ closestSpan = spanEl;
149
+ }
150
+ }
151
+ if (!closestSpan) return null;
152
+ if (clientX < closestSpan.getBoundingClientRect().left) return Number(closestSpan.dataset["pmStart"]);
153
+ return Number(closestSpan.dataset["pmEnd"]);
154
+ }
155
+ /**
156
+ * Find the nearest text span when click is not directly on text.
157
+ * This handles clicks in margins, between lines, etc.
158
+ */
159
+ function findNearestSpan(_container, pageEl, clientX, clientY, _zoom) {
160
+ if (htmlQueryAll(pageEl, ".layout-page-content span[data-pm-start][data-pm-end]").length === 0) {
161
+ const firstP = htmlQueryAll(pageEl, ".layout-page-content .layout-paragraph").at(0);
162
+ if (firstP) return Number(firstP.dataset["pmStart"]) || 0;
163
+ return null;
164
+ }
165
+ const lines = htmlQueryAll(pageEl, ".layout-page-content .layout-line");
166
+ let closestLine = null;
167
+ let closestLineDistance = Infinity;
168
+ for (const line of lines) {
169
+ const rect = line.getBoundingClientRect();
170
+ const centerY = (rect.top + rect.bottom) / 2;
171
+ const distance = Math.abs(clientY - centerY);
172
+ if (distance < closestLineDistance) {
173
+ closestLineDistance = distance;
174
+ closestLine = line;
175
+ }
176
+ }
177
+ if (!closestLine) return null;
178
+ const lineSpans = htmlQueryAll(closestLine, "span[data-pm-start][data-pm-end]");
179
+ if (lineSpans.length === 0) {
180
+ const paragraph = closestHtmlElement(closestLine, ".layout-paragraph");
181
+ if (paragraph?.dataset["pmStart"]) return Number(paragraph.dataset["pmStart"]);
182
+ return null;
183
+ }
184
+ let closestSpan = null;
185
+ let closestSpanDistance = Infinity;
186
+ for (const spanEl of lineSpans) {
187
+ const rect = spanEl.getBoundingClientRect();
188
+ if (clientX >= rect.left && clientX <= rect.right) return findPositionInSpan(spanEl, clientX, clientY);
189
+ const distance = clientX < rect.left ? rect.left - clientX : clientX - rect.right;
190
+ if (distance < closestSpanDistance) {
191
+ closestSpanDistance = distance;
192
+ closestSpan = spanEl;
193
+ }
194
+ }
195
+ if (!closestSpan) return null;
196
+ if (clientX < closestSpan.getBoundingClientRect().left) return Number(closestSpan.dataset["pmStart"]);
197
+ return Number(closestSpan.dataset["pmEnd"]);
198
+ }
199
+ function getSelectionRectsFromDom(container, from, to, overlayRect) {
200
+ const rects = [];
201
+ const spans = htmlQueryAll(container, ".layout-page-content span[data-pm-start][data-pm-end]");
202
+ for (const spanEl of spans) {
203
+ const pmStart = Number(spanEl.dataset["pmStart"]);
204
+ if (Number(spanEl.dataset["pmEnd"]) <= from || pmStart >= to) continue;
205
+ const textNode = spanEl.firstChild;
206
+ if (!textNode || textNode.nodeType !== Node.TEXT_NODE) continue;
207
+ const text = textNode;
208
+ const ownerDoc = spanEl.ownerDocument;
209
+ const startChar = Math.max(0, from - pmStart);
210
+ const endChar = Math.min(text.length, to - pmStart);
211
+ if (startChar >= endChar) continue;
212
+ const range = ownerDoc.createRange();
213
+ range.setStart(text, startChar);
214
+ range.setEnd(text, endChar);
215
+ const clientRects = range.getClientRects();
216
+ const pageEl = closestHtmlElement(spanEl, ".layout-page");
217
+ const pageIndex = pageEl ? Number(pageEl.dataset["pageNumber"] || 1) - 1 : 0;
218
+ for (const clientRect of Array.from(clientRects)) rects.push({
219
+ x: clientRect.left - overlayRect.left,
220
+ y: clientRect.top - overlayRect.top,
221
+ width: clientRect.width,
222
+ height: clientRect.height,
223
+ pageIndex
224
+ });
225
+ }
226
+ return rects;
227
+ }
228
+ function getCaretPositionFromDom(container, pmPos, overlayRect) {
229
+ const spans = htmlQueryAll(container, ".layout-page-content span[data-pm-start][data-pm-end]");
230
+ for (const spanEl of spans) {
231
+ const pmStart = Number(spanEl.dataset["pmStart"]);
232
+ const pmEnd = Number(spanEl.dataset["pmEnd"]);
233
+ if (spanEl.classList.contains("layout-run-tab")) {
234
+ if (pmPos >= pmStart && pmPos < pmEnd) {
235
+ const spanRect = spanEl.getBoundingClientRect();
236
+ const pageEl = closestHtmlElement(spanEl, ".layout-page");
237
+ const pageIndex = pageEl ? Number(pageEl.dataset["pageNumber"] || 1) - 1 : 0;
238
+ const lineEl = closestHtmlElement(spanEl, ".layout-line");
239
+ const lineHeight = lineEl ? lineEl.offsetHeight : 16;
240
+ return {
241
+ x: spanRect.left - overlayRect.left,
242
+ y: spanRect.top - overlayRect.top,
243
+ height: lineHeight,
244
+ pageIndex
245
+ };
246
+ }
247
+ continue;
248
+ }
249
+ if (pmPos >= pmStart && pmPos <= pmEnd) {
250
+ const textNode = spanEl.firstChild;
251
+ if (!textNode || textNode.nodeType !== Node.TEXT_NODE) {
252
+ const spanRect = spanEl.getBoundingClientRect();
253
+ const pageEl = closestHtmlElement(spanEl, ".layout-page");
254
+ const pageIndex = pageEl ? Number(pageEl.dataset["pageNumber"] || 1) - 1 : 0;
255
+ const lineEl = closestHtmlElement(spanEl, ".layout-line");
256
+ const lineHeight = lineEl ? lineEl.offsetHeight : 16;
257
+ return {
258
+ x: spanRect.left - overlayRect.left,
259
+ y: spanRect.top - overlayRect.top,
260
+ height: lineHeight,
261
+ pageIndex
262
+ };
263
+ }
264
+ const text = textNode;
265
+ const charIndex = Math.min(pmPos - pmStart, text.length);
266
+ const range = spanEl.ownerDocument.createRange();
267
+ range.setStart(text, charIndex);
268
+ range.setEnd(text, charIndex);
269
+ const rangeRect = range.getBoundingClientRect();
270
+ const pageEl = closestHtmlElement(spanEl, ".layout-page");
271
+ const pageIndex = pageEl ? Number(pageEl.dataset["pageNumber"] || 1) - 1 : 0;
272
+ const lineEl = closestHtmlElement(spanEl, ".layout-line");
273
+ const lineHeight = lineEl ? lineEl.offsetHeight : 16;
274
+ return {
275
+ x: rangeRect.left - overlayRect.left,
276
+ y: rangeRect.top - overlayRect.top,
277
+ height: rangeRect.height || lineHeight,
278
+ pageIndex
279
+ };
280
+ }
281
+ }
282
+ const paragraphs = htmlQueryAll(container, ".layout-paragraph");
283
+ for (const pEl of paragraphs) {
284
+ const pStart = Number(pEl.dataset["pmStart"]);
285
+ const pEnd = Number(pEl.dataset["pmEnd"]);
286
+ if (pmPos >= pStart && pmPos <= pEnd) {
287
+ const targetEl = pEl.querySelector(".layout-empty-run") || pEl;
288
+ const rect = targetEl.getBoundingClientRect();
289
+ const pageEl = closestHtmlElement(pEl, ".layout-page");
290
+ const pageIndex = pageEl ? Number(pageEl.dataset["pageNumber"] || 1) - 1 : 0;
291
+ const lineCandidate = targetEl.closest(".layout-line") ?? targetEl;
292
+ const lineHeight = lineCandidate instanceof HTMLElement ? lineCandidate.offsetHeight : 16;
293
+ return {
294
+ x: rect.left - overlayRect.left,
295
+ y: rect.top - overlayRect.top,
296
+ height: lineHeight,
297
+ pageIndex
298
+ };
299
+ }
300
+ }
301
+ return null;
302
+ }
303
+ //#endregion
304
+ export { clickToPositionDom, findPositionInSpan, getCaretPositionFromDom, getSelectionRectsFromDom };
@@ -0,0 +1,7 @@
1
+ //#region src/layout-bridge/dom/findBodyPmSpans.d.ts
2
+ declare function findBodyPmSpans(container: ParentNode): HTMLElement[];
3
+ declare function findBodyEmptyRuns(container: ParentNode): HTMLElement[];
4
+ declare function findBodyPmAnchors(container: ParentNode): HTMLElement[];
5
+ declare function findBodyPmAnchor(container: ParentNode, pmStart: number): HTMLElement | null;
6
+ //#endregion
7
+ export { findBodyEmptyRuns, findBodyPmAnchor, findBodyPmAnchors, findBodyPmSpans };
@@ -0,0 +1,17 @@
1
+ //#region src/layout-bridge/dom/findBodyPmSpans.ts
2
+ const BODY_SCOPE = ".layout-page-content";
3
+ function findBodyPmSpans(container) {
4
+ return Array.from(container.querySelectorAll(`${BODY_SCOPE} span[data-pm-start][data-pm-end]`));
5
+ }
6
+ function findBodyEmptyRuns(container) {
7
+ return Array.from(container.querySelectorAll(`${BODY_SCOPE} .layout-empty-run`));
8
+ }
9
+ function findBodyPmAnchors(container) {
10
+ return Array.from(container.querySelectorAll(`${BODY_SCOPE} [data-pm-start]`));
11
+ }
12
+ function findBodyPmAnchor(container, pmStart) {
13
+ if (!Number.isFinite(pmStart)) return null;
14
+ return container.querySelector(`${BODY_SCOPE} [data-pm-start="${String(pmStart)}"]`);
15
+ }
16
+ //#endregion
17
+ export { findBodyEmptyRuns, findBodyPmAnchor, findBodyPmAnchors, findBodyPmSpans };
@@ -0,0 +1,62 @@
1
+ //#region src/layout-bridge/dom/findHfPmSpans.d.ts
2
+ /**
3
+ * Slot-scoped sibling of `findBodyPmSpans` — locates `data-pm-start` markers
4
+ * inside a single painted header/footer slot. The pointer pipeline uses these
5
+ * to translate a click coordinate inside `.layout-page-header[data-rid="…"]`
6
+ * (or footer) to a PM position on the matching hidden HF EditorView.
7
+ *
8
+ * Slot identity is the part-relationship id (`rId`) emitted by the painter on
9
+ * the HF DOM node — never the `(hdrFtrType, kind)` tuple (two sections that
10
+ * share a header by rId share both the painted spans and the EditorView).
11
+ */
12
+ type HfSlotKind = "header" | "footer";
13
+ declare function findHfPmSpans(container: ParentNode, kind: HfSlotKind, rId: string): HTMLElement[];
14
+ declare function findHfPmAnchors(container: ParentNode, kind: HfSlotKind, rId: string): HTMLElement[];
15
+ declare function findHfPmAnchor(container: ParentNode, kind: HfSlotKind, rId: string, pmStart: number): HTMLElement | null;
16
+ /**
17
+ * Locate the span that covers a PM position for caret rendering, including
18
+ * `pmEnd` boundaries. `findHfPmAnchor` only matches `data-pm-start="${pos}"`
19
+ * exactly; when the caret sits at the end of a run / paragraph,
20
+ * `selection.from` equals that span's `data-pm-end` and the exact lookup
21
+ * returns null. This helper falls back to a range scan over the slot's
22
+ * `[data-pm-start][data-pm-end]` spans and reports the edge the caret
23
+ * should hug so the renderer can pick `left` vs `right`.
24
+ */
25
+ type HfCaretSpanHit = {
26
+ element: HTMLElement; /** Which edge of the span's getBoundingClientRect to anchor the caret to. */
27
+ edge: "left" | "right";
28
+ };
29
+ declare function findHfCaretSpan(container: ParentNode, kind: HfSlotKind, rId: string, pos: number): HfCaretSpanHit | null;
30
+ /**
31
+ * Slot-scoped click-to-position mapper. `clickToPositionDom`'s fallback
32
+ * (`findNearestSpan`) is hardcoded to `.layout-page-content` — body — so when
33
+ * the user clicks HF whitespace (right of the text, between lines, etc.),
34
+ * the body fallback can return a body PM position that the HF dispatch then
35
+ * applies to the HF EditorView (clamped) and the caret leaps to an
36
+ * unrelated HF doc position (Codex #487 P2: 21:02 review).
37
+ *
38
+ * Scope everything to the slot element: try the exact-span lookup via
39
+ * `document.elementsFromPoint` filtered to descendants of `slot`; fall back
40
+ * to nearest-span-in-line + start/end edge math within the same slot.
41
+ */
42
+ declare function clickToPositionInHfSlot(container: ParentNode, kind: HfSlotKind, rId: string, clientX: number, clientY: number): number | null;
43
+ declare function findHfSlotForTarget(target: Node | null): {
44
+ kind: HfSlotKind;
45
+ rId: string;
46
+ element: HTMLElement;
47
+ } | null;
48
+ /**
49
+ * Resolve only the header/footer KIND of the slot under `target`, whether or
50
+ * not it has an assigned rId yet. `findHfSlotForTarget` matches only a slot
51
+ * that already carries a `data-rid` (an existing HF part); but the painter also
52
+ * renders an EMPTY `.layout-page-header` / `.layout-page-footer` box — the
53
+ * hover-hint and double-click-to-add target — that has no rId. Entering edit
54
+ * mode to *create* a header needs only the kind (the handler mints the part),
55
+ * so this looser resolver matches that empty box too.
56
+ */
57
+ declare function findHfSlotKindForTarget(target: Node | null): {
58
+ kind: HfSlotKind;
59
+ element: HTMLElement;
60
+ } | null;
61
+ //#endregion
62
+ export { HfCaretSpanHit, HfSlotKind, clickToPositionInHfSlot, findHfCaretSpan, findHfPmAnchor, findHfPmAnchors, findHfPmSpans, findHfSlotForTarget, findHfSlotKindForTarget };