@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,73 @@
1
+ import { HeaderFooterContent, PageMargins, SectionBreakBlock } from "../layout-engine/types.js";
2
+ //#region src/paged-layout/headerFooterMargins.d.ts
3
+ type EffectiveHeaderFooterMarginsInput = {
4
+ margins: PageMargins;
5
+ headerContent?: HeaderFooterContent | undefined;
6
+ footerContent?: HeaderFooterContent | undefined;
7
+ firstPageHeaderContent?: HeaderFooterContent | undefined;
8
+ firstPageFooterContent?: HeaderFooterContent | undefined;
9
+ pageSize?: {
10
+ w: number;
11
+ h: number;
12
+ } | undefined;
13
+ warn?: ((message: string) => void) | undefined;
14
+ };
15
+ /**
16
+ * A function that extends a `PageMargins` to clear the HF overflow computed
17
+ * from a given set of header/footer content. Returned by
18
+ * `computeHeaderFooterMarginExtender` and applied at every margins site:
19
+ * the body fallback, `finalMargins`, and per-section `sectionBreak.margins`.
20
+ *
21
+ * Eigenpal #400 — pre-PR the extension only applied to the body fallback,
22
+ * so a section break carrying its own `sb.margins` from `<w:sectPr>`
23
+ * silently overrode the extension and the footer rendered on top of body
24
+ * text.
25
+ */
26
+ type PageMarginsExtender = (margins: PageMargins) => PageMargins;
27
+ declare function computeHeaderFooterMarginExtender(input: Omit<EffectiveHeaderFooterMarginsInput, "margins">): PageMarginsExtender;
28
+ /**
29
+ * Like `computeHeaderFooterMarginExtender` but also accounts for the
30
+ * first-page header/footer content. Apply this only to the margins used
31
+ * for page 1 of a `<w:titlePg/>`-enabled section.
32
+ */
33
+ declare function computeFirstPageHeaderFooterMarginExtender(input: Omit<EffectiveHeaderFooterMarginsInput, "margins">): PageMarginsExtender;
34
+ declare function computeEffectiveHeaderFooterMargins({
35
+ margins,
36
+ headerContent,
37
+ footerContent,
38
+ firstPageHeaderContent,
39
+ firstPageFooterContent,
40
+ pageSize,
41
+ warn
42
+ }: EffectiveHeaderFooterMarginsInput): PageMargins;
43
+ /** Rendered header/footer content shared by every extender on a page. */
44
+ type HeaderFooterExtenderContent = Omit<EffectiveHeaderFooterMarginsInput, "margins" | "pageSize" | "warn">;
45
+ type ExtendSectionBreakMarginsInput = {
46
+ content: HeaderFooterExtenderContent; /** Body page size and effective margins — the inheritance seed. */
47
+ bodyPageSize: {
48
+ w: number;
49
+ h: number;
50
+ };
51
+ bodyMargins: PageMargins;
52
+ warn?: ((message: string) => void) | undefined;
53
+ };
54
+ /**
55
+ * Extend every section break's margins to clear the same header/footer
56
+ * overflow the body margins do (eigenpal #400), so an overflowing footer
57
+ * never re-overlaps body text on a later section.
58
+ *
59
+ * The walk mirrors `collectSectionConfigs`: a break that omits its own
60
+ * `pageSize` or `margins` inherits the previous section's. Each break's
61
+ * authored-or-inherited margins are extended against the section's *own*
62
+ * resolved page height, so a taller page never keeps a smaller page's
63
+ * clamped reservation (and vice versa). Materializes `margins` on every
64
+ * non-inheriting break in place.
65
+ */
66
+ declare function extendSectionBreakMargins(sectionBreaks: SectionBreakBlock[], {
67
+ content,
68
+ bodyPageSize,
69
+ bodyMargins,
70
+ warn
71
+ }: ExtendSectionBreakMarginsInput): void;
72
+ //#endregion
73
+ export { HeaderFooterExtenderContent, PageMarginsExtender, computeEffectiveHeaderFooterMargins, computeFirstPageHeaderFooterMarginExtender, computeHeaderFooterMarginExtender, extendSectionBreakMargins };
@@ -0,0 +1,120 @@
1
+ //#region src/paged-layout/headerFooterMargins.ts
2
+ /**
3
+ * Floor on the body content area, in pixels. Header/footer overflow can
4
+ * never shrink the content band below this, so a degenerate document
5
+ * (a header taller than the page) still renders some body text.
6
+ */
7
+ const MIN_CONTENT_HEIGHT_PX = 24;
8
+ function headerHeight(content) {
9
+ if (!content) return 0;
10
+ return content.marginPushBottom ?? content.visualBottom ?? content.height;
11
+ }
12
+ function footerHeight(content) {
13
+ if (!content) return 0;
14
+ const bottom = content.marginPushBottom ?? content.visualBottom ?? content.height;
15
+ const top = content.marginPushTop ?? content.visualTop ?? 0;
16
+ return Math.max(bottom - top, content.height);
17
+ }
18
+ /**
19
+ * Build a function that, applied to any `PageMargins`, extends `top`/`bottom`
20
+ * to clear the same header/footer content the body's effective margins do.
21
+ * Returns the identity function when no extension is needed.
22
+ *
23
+ * Header/footer distances are taken from the *given* margins (the source
24
+ * paragraph's section margins), not the body's, so each section's authored
25
+ * `w:header`/`w:footer` distances are honored.
26
+ */
27
+ /**
28
+ * Build an extender that pushes body margins clear of HF content.
29
+ *
30
+ * `mode === "default"` ignores `firstPageHeaderContent` /
31
+ * `firstPageFooterContent`. The first-page H/F only renders on page 1 of
32
+ * a `<w:titlePg/>`-enabled section, so margins for pages 2+ within the
33
+ * same section must NOT be extended for first-page overflow — extending
34
+ * them would push body content down on every page even though only page
35
+ * 1 actually carries the overflowing header. This produced visible
36
+ * regressions on NVCA-style first-page-header docs, where pages 2+
37
+ * inherited page 1's title-page header reservation.
38
+ *
39
+ * `mode === "firstPage"` uses the larger of the default and first-page
40
+ * H/F heights — applied only to the first-page margins of a titlePg
41
+ * section.
42
+ */
43
+ function buildExtender({ headerContent, footerContent, firstPageHeaderContent, firstPageFooterContent, pageSize, warn, mode }) {
44
+ const headerContentHeight = mode === "firstPage" ? Math.max(headerHeight(headerContent), headerHeight(firstPageHeaderContent)) : headerHeight(headerContent);
45
+ const footerContentHeight = mode === "firstPage" ? Math.max(footerHeight(footerContent), footerHeight(firstPageFooterContent)) : footerHeight(footerContent);
46
+ return (margins) => {
47
+ const headerDistance = margins.header ?? 48;
48
+ const footerDistance = margins.footer ?? 48;
49
+ const availableHeaderSpace = margins.top - headerDistance;
50
+ const availableFooterSpace = margins.bottom - footerDistance;
51
+ const maxMargins = pageSize ? Math.max(0, pageSize.h - MIN_CONTENT_HEIGHT_PX) : void 0;
52
+ const fitsContent = headerContentHeight <= availableHeaderSpace && footerContentHeight <= availableFooterSpace;
53
+ const fitsPage = maxMargins === void 0 || margins.top + margins.bottom <= maxMargins;
54
+ if (fitsContent && fitsPage) return margins;
55
+ const out = { ...margins };
56
+ if (headerContentHeight > availableHeaderSpace) out.top = Math.max(margins.top, headerDistance + headerContentHeight);
57
+ if (footerContentHeight > availableFooterSpace) out.bottom = Math.max(margins.bottom, footerDistance + footerContentHeight);
58
+ if (pageSize && maxMargins !== void 0 && out.top + out.bottom > maxMargins) {
59
+ if (warn) warn(`header/footer content exceeds page height; clamping margins to preserve a content area. pageHeight=${Math.round(pageSize.h)} top=${Math.round(out.top)} bottom=${Math.round(out.bottom)}`);
60
+ out.bottom = Math.max(0, Math.min(out.bottom, maxMargins - out.top));
61
+ if (out.top + out.bottom > maxMargins) out.top = Math.max(0, maxMargins - out.bottom);
62
+ }
63
+ return out;
64
+ };
65
+ }
66
+ function computeHeaderFooterMarginExtender(input) {
67
+ return buildExtender({
68
+ ...input,
69
+ mode: "default"
70
+ });
71
+ }
72
+ /**
73
+ * Like `computeHeaderFooterMarginExtender` but also accounts for the
74
+ * first-page header/footer content. Apply this only to the margins used
75
+ * for page 1 of a `<w:titlePg/>`-enabled section.
76
+ */
77
+ function computeFirstPageHeaderFooterMarginExtender(input) {
78
+ return buildExtender({
79
+ ...input,
80
+ mode: "firstPage"
81
+ });
82
+ }
83
+ function computeEffectiveHeaderFooterMargins({ margins, headerContent, footerContent, firstPageHeaderContent, firstPageFooterContent, pageSize, warn }) {
84
+ return computeHeaderFooterMarginExtender({
85
+ headerContent,
86
+ footerContent,
87
+ firstPageHeaderContent,
88
+ firstPageFooterContent,
89
+ pageSize,
90
+ warn
91
+ })(margins);
92
+ }
93
+ /**
94
+ * Extend every section break's margins to clear the same header/footer
95
+ * overflow the body margins do (eigenpal #400), so an overflowing footer
96
+ * never re-overlaps body text on a later section.
97
+ *
98
+ * The walk mirrors `collectSectionConfigs`: a break that omits its own
99
+ * `pageSize` or `margins` inherits the previous section's. Each break's
100
+ * authored-or-inherited margins are extended against the section's *own*
101
+ * resolved page height, so a taller page never keeps a smaller page's
102
+ * clamped reservation (and vice versa). Materializes `margins` on every
103
+ * non-inheriting break in place.
104
+ */
105
+ function extendSectionBreakMargins(sectionBreaks, { content, bodyPageSize, bodyMargins, warn }) {
106
+ let pageSize = bodyPageSize;
107
+ let margins = bodyMargins;
108
+ for (const sb of sectionBreaks) {
109
+ if (!sb.pageSize && !sb.margins) continue;
110
+ pageSize = sb.pageSize ?? pageSize;
111
+ margins = computeHeaderFooterMarginExtender({
112
+ ...content,
113
+ pageSize,
114
+ warn
115
+ })(sb.margins ?? margins);
116
+ sb.margins = margins;
117
+ }
118
+ }
119
+ //#endregion
120
+ export { computeEffectiveHeaderFooterMargins, computeFirstPageHeaderFooterMarginExtender, computeHeaderFooterMarginExtender, extendSectionBreakMargins };
@@ -0,0 +1,4 @@
1
+ //#region src/paged-layout/hiddenEditorScroll.d.ts
2
+ declare const suppressHiddenEditorScrollToSelection: () => true;
3
+ //#endregion
4
+ export { suppressHiddenEditorScrollToSelection };
@@ -0,0 +1,4 @@
1
+ //#region src/paged-layout/hiddenEditorScroll.ts
2
+ const suppressHiddenEditorScrollToSelection = () => true;
3
+ //#endregion
4
+ export { suppressHiddenEditorScrollToSelection };
@@ -0,0 +1,33 @@
1
+ import { FlowBlock, Measure } from "../layout-engine/types.js";
2
+
3
+ //#region src/paged-layout/incrementalMeasure.d.ts
4
+ type DirtyRange = {
5
+ from: number;
6
+ to: number;
7
+ };
8
+ type IncrementalMeasureInput = {
9
+ previousBlocks: FlowBlock[];
10
+ previousMeasures: Measure[];
11
+ previousBlockWidths: number[];
12
+ nextBlocks: FlowBlock[];
13
+ nextBlockWidths: number[];
14
+ dirtyRange: DirtyRange;
15
+ measureBlock: (block: FlowBlock, blockWidth: number, blockIndex: number) => Measure;
16
+ };
17
+ type IncrementalMeasureResult = {
18
+ measures: Measure[];
19
+ measuredBlockIndexes: number[];
20
+ };
21
+ declare function mergeDirtyRanges(first: DirtyRange | null, second: DirtyRange | null): DirtyRange | null;
22
+ declare function findDirtyBlockIndexes(blocks: FlowBlock[], dirtyRange: DirtyRange): number[];
23
+ declare function tryBuildIncrementalMeasures({
24
+ previousBlocks,
25
+ previousMeasures,
26
+ previousBlockWidths,
27
+ nextBlocks,
28
+ nextBlockWidths,
29
+ dirtyRange,
30
+ measureBlock
31
+ }: IncrementalMeasureInput): IncrementalMeasureResult | null;
32
+ //#endregion
33
+ export { DirtyRange, IncrementalMeasureInput, IncrementalMeasureResult, findDirtyBlockIndexes, mergeDirtyRanges, tryBuildIncrementalMeasures };
@@ -0,0 +1,56 @@
1
+ //#region src/paged-layout/incrementalMeasure.ts
2
+ function mergeDirtyRanges(first, second) {
3
+ if (!first) return second;
4
+ if (!second) return first;
5
+ return {
6
+ from: Math.min(first.from, second.from),
7
+ to: Math.max(first.to, second.to)
8
+ };
9
+ }
10
+ function findDirtyBlockIndexes(blocks, dirtyRange) {
11
+ const indexes = [];
12
+ const dirtyFrom = Math.min(dirtyRange.from, dirtyRange.to);
13
+ const dirtyTo = Math.max(dirtyRange.from, dirtyRange.to);
14
+ for (let i = 0; i < blocks.length; i += 1) {
15
+ const block = blocks[i];
16
+ if (!block) continue;
17
+ const blockStart = "pmStart" in block ? block.pmStart : void 0;
18
+ const blockEnd = "pmEnd" in block ? block.pmEnd : void 0;
19
+ if (blockStart === void 0 || blockEnd === void 0) return [];
20
+ if (rangesTouch(blockStart, blockEnd, dirtyFrom, dirtyTo)) indexes.push(i);
21
+ }
22
+ return indexes;
23
+ }
24
+ function tryBuildIncrementalMeasures({ previousBlocks, previousMeasures, previousBlockWidths, nextBlocks, nextBlockWidths, dirtyRange, measureBlock }) {
25
+ if (previousBlocks.length !== nextBlocks.length || previousMeasures.length !== nextBlocks.length || previousBlockWidths.length !== nextBlockWidths.length) return null;
26
+ for (let i = 0; i < nextBlockWidths.length; i += 1) if (previousBlockWidths[i] !== nextBlockWidths[i]) return null;
27
+ if (!nextBlocks.every(isIncrementalMeasureEligibleBlock)) return null;
28
+ const dirtyBlockIndexes = findDirtyBlockIndexes(nextBlocks, dirtyRange);
29
+ if (dirtyBlockIndexes.length === 0) return null;
30
+ const measures = previousMeasures.slice();
31
+ for (const blockIndex of dirtyBlockIndexes) {
32
+ const block = nextBlocks[blockIndex];
33
+ const blockWidth = nextBlockWidths[blockIndex];
34
+ if (!block || blockWidth === void 0) return null;
35
+ measures[blockIndex] = measureBlock(block, blockWidth, blockIndex);
36
+ }
37
+ return {
38
+ measures,
39
+ measuredBlockIndexes: dirtyBlockIndexes
40
+ };
41
+ }
42
+ function rangesTouch(blockStart, blockEnd, dirtyFrom, dirtyTo) {
43
+ if (dirtyFrom === dirtyTo) return dirtyFrom >= blockStart && dirtyFrom <= blockEnd;
44
+ return dirtyFrom <= blockEnd && dirtyTo >= blockStart;
45
+ }
46
+ function isIncrementalMeasureEligibleBlock(block) {
47
+ if (block.kind !== "paragraph") return false;
48
+ const paragraph = block;
49
+ if (paragraph.attrs?.listMarker || paragraph.attrs?.contextualSpacing || paragraph.attrs?.borders) return false;
50
+ return paragraph.runs.every((run) => {
51
+ if (run.kind === "field" || run.kind === "image") return false;
52
+ return !("footnoteRefId" in run || "endnoteRefId" in run || "isInsertion" in run || "isDeletion" in run || "changeRevisionId" in run);
53
+ });
54
+ }
55
+ //#endregion
56
+ export { findDirtyBlockIndexes, mergeDirtyRanges, tryBuildIncrementalMeasures };
@@ -0,0 +1,51 @@
1
+ import { FlowBlock, Layout, Measure } from "../layout-engine/types.js";
2
+ import { SelectionRect } from "../layout-bridge/engine/selectionRects.js";
3
+
4
+ //#region src/paged-layout/rangeProjection.d.ts
5
+ type ProjectableRange = {
6
+ from: number;
7
+ to: number;
8
+ };
9
+ type ProjectedRange<T extends ProjectableRange> = {
10
+ range: T;
11
+ rects: SelectionRect[];
12
+ };
13
+ type RangeProjectionContext = {
14
+ pagesContainer: HTMLElement;
15
+ zoom: number;
16
+ layout: Layout | null;
17
+ blocks: FlowBlock[];
18
+ measures: Measure[];
19
+ };
20
+ /**
21
+ * Stable text-column left edge in container space: the minimum painted run-span
22
+ * left on the first page. Gutter widgets (e.g. the block-directive rail) anchor
23
+ * to this instead of a single re-projected range's `rects[0].x`, which can flip
24
+ * horizontally between paint passes while content above reflows. The page's
25
+ * left margin is fixed, so this value holds steady as text is edited.
26
+ */
27
+ declare const measureContentLeft: (pagesContainer: HTMLElement, zoom: number) => number | null;
28
+ /**
29
+ * Computed text style of the painted run at a PM position. Overlays
30
+ * that paint substituted text over the pages (template fill preview,
31
+ * AI suggestion replacement) copy these so the injected text matches
32
+ * the surrounding run instead of the overlay container's base font.
33
+ */
34
+ type ProjectedRunFont = {
35
+ fontFamily: string;
36
+ fontSize: string;
37
+ fontWeight: string;
38
+ fontStyle: string;
39
+ letterSpacing: string;
40
+ color: string;
41
+ };
42
+ /**
43
+ * Sample the painted-run text style at each position in a single walk
44
+ * over the rendered run spans. Positions outside the rendered buffer
45
+ * (virtualized pages) simply stay absent from the result; callers fall
46
+ * back to the overlay's inherited font.
47
+ */
48
+ declare const collectRunFontsAtPmPositions: (pagesContainer: HTMLElement, positions: readonly number[]) => Map<number, ProjectedRunFont>;
49
+ declare const projectRangesToRects: <T extends ProjectableRange>(ranges: readonly T[], ctx: RangeProjectionContext) => Promise<ProjectedRange<T>[]>;
50
+ //#endregion
51
+ export { ProjectableRange, ProjectedRange, ProjectedRunFont, RangeProjectionContext, collectRunFontsAtPmPositions, measureContentLeft, projectRangesToRects };
@@ -0,0 +1,153 @@
1
+ import { findBodyPmSpans } from "../layout-bridge/dom/findBodyPmSpans.js";
2
+ //#region src/paged-layout/rangeProjection.ts
3
+ /**
4
+ * Shared range → paged-canvas rectangle projection.
5
+ *
6
+ * Folio's editor lives off-screen, so features that paint over the
7
+ * document (anonymization highlights, template-directive widgets)
8
+ * must project their `{ from, to }` PM ranges onto container-space
9
+ * rectangles. This mirrors the SelectionOverlay flow: prefer real
10
+ * painted-DOM rects (correct for indents, tabs, justified text, line
11
+ * wraps) and fall back to the layout-coordinate `selectionToRects`
12
+ * projection only for ranges whose DOM spans aren't mounted yet
13
+ * (initial paint, off-screen pages).
14
+ */
15
+ const isTextNode = (node) => node?.nodeType === Node.TEXT_NODE;
16
+ const pageIndexOf = (el) => {
17
+ const page = el.closest(".layout-page");
18
+ const raw = page instanceof HTMLElement ? page.dataset["pageNumber"] : void 0;
19
+ return raw ? Number(raw) - 1 : 0;
20
+ };
21
+ /** Real painted-DOM rects for a PM range via `Range.getClientRects`. */
22
+ const domRectsForRange = (pmSpans, overlayRect, zoom, from, to) => {
23
+ const rects = [];
24
+ for (const spanEl of pmSpans) {
25
+ const pmStart = Number(spanEl.dataset["pmStart"]);
26
+ if (!(Number(spanEl.dataset["pmEnd"]) > from && pmStart < to)) continue;
27
+ if (spanEl.classList.contains("layout-run-tab")) {
28
+ const spanRect = spanEl.getBoundingClientRect();
29
+ rects.push({
30
+ x: (spanRect.left - overlayRect.left) / zoom,
31
+ y: (spanRect.top - overlayRect.top) / zoom,
32
+ width: spanRect.width / zoom,
33
+ height: spanRect.height / zoom,
34
+ pageIndex: pageIndexOf(spanEl)
35
+ });
36
+ continue;
37
+ }
38
+ let textNode = null;
39
+ if (isTextNode(spanEl.firstChild)) textNode = spanEl.firstChild;
40
+ else if (spanEl.firstChild instanceof HTMLElement && spanEl.firstChild.tagName === "A" && isTextNode(spanEl.firstChild.firstChild)) textNode = spanEl.firstChild.firstChild;
41
+ if (!textNode) continue;
42
+ const startChar = Math.max(0, from - pmStart);
43
+ const endChar = Math.min(textNode.length, to - pmStart);
44
+ if (startChar >= endChar) continue;
45
+ const range = spanEl.ownerDocument.createRange();
46
+ range.setStart(textNode, startChar);
47
+ range.setEnd(textNode, endChar);
48
+ const pageIndex = pageIndexOf(spanEl);
49
+ for (const rect of Array.from(range.getClientRects())) rects.push({
50
+ x: (rect.left - overlayRect.left) / zoom,
51
+ y: (rect.top - overlayRect.top) / zoom,
52
+ width: rect.width / zoom,
53
+ height: rect.height / zoom,
54
+ pageIndex
55
+ });
56
+ }
57
+ return rects;
58
+ };
59
+ /**
60
+ * Stable text-column left edge in container space: the minimum painted run-span
61
+ * left on the first page. Gutter widgets (e.g. the block-directive rail) anchor
62
+ * to this instead of a single re-projected range's `rects[0].x`, which can flip
63
+ * horizontally between paint passes while content above reflows. The page's
64
+ * left margin is fixed, so this value holds steady as text is edited.
65
+ */
66
+ const measureContentLeft = (pagesContainer, zoom) => {
67
+ const overlay = pagesContainer.parentElement?.querySelector("[data-testid=\"selection-overlay\"]");
68
+ const firstPage = pagesContainer.querySelector(".layout-page");
69
+ if (!overlay || !firstPage) return null;
70
+ const spans = findBodyPmSpans(firstPage);
71
+ if (spans.length === 0) return null;
72
+ const overlayLeft = overlay.getBoundingClientRect().left;
73
+ let min = Number.POSITIVE_INFINITY;
74
+ for (const span of spans) {
75
+ const left = span.getBoundingClientRect().left;
76
+ if (left < min) min = left;
77
+ }
78
+ return Number.isFinite(min) ? (min - overlayLeft) / zoom : null;
79
+ };
80
+ /**
81
+ * Sample the painted-run text style at each position in a single walk
82
+ * over the rendered run spans. Positions outside the rendered buffer
83
+ * (virtualized pages) simply stay absent from the result; callers fall
84
+ * back to the overlay's inherited font.
85
+ */
86
+ const collectRunFontsAtPmPositions = (pagesContainer, positions) => {
87
+ const fonts = /* @__PURE__ */ new Map();
88
+ if (positions.length === 0) return fonts;
89
+ const remaining = new Set(positions);
90
+ for (const spanEl of findBodyPmSpans(pagesContainer)) {
91
+ if (remaining.size === 0) break;
92
+ const pmStart = Number(spanEl.dataset["pmStart"]);
93
+ const pmEnd = Number(spanEl.dataset["pmEnd"]);
94
+ if (Number.isNaN(pmStart) || Number.isNaN(pmEnd)) continue;
95
+ for (const pos of remaining) {
96
+ if (!(pmStart <= pos && pos < pmEnd)) continue;
97
+ const win = spanEl.ownerDocument.defaultView;
98
+ if (!win) continue;
99
+ const style = win.getComputedStyle(spanEl);
100
+ fonts.set(pos, {
101
+ fontFamily: style.fontFamily,
102
+ fontSize: style.fontSize,
103
+ fontWeight: style.fontWeight,
104
+ fontStyle: style.fontStyle,
105
+ letterSpacing: style.letterSpacing,
106
+ color: style.color
107
+ });
108
+ remaining.delete(pos);
109
+ }
110
+ }
111
+ return fonts;
112
+ };
113
+ const projectRangesToRects = async (ranges, ctx) => {
114
+ const { pagesContainer, zoom, layout, blocks, measures } = ctx;
115
+ if (ranges.length === 0) return [];
116
+ const overlay = pagesContainer.parentElement?.querySelector("[data-testid=\"selection-overlay\"]");
117
+ const firstPage = pagesContainer.querySelector(".layout-page");
118
+ if (!overlay || !firstPage) return [];
119
+ const overlayRect = overlay.getBoundingClientRect();
120
+ const pageRect = firstPage.getBoundingClientRect();
121
+ const pageOffsetX = (pageRect.left - overlayRect.left) / zoom;
122
+ const pageOffsetY = (pageRect.top - overlayRect.top) / zoom;
123
+ const pmSpans = findBodyPmSpans(pagesContainer);
124
+ const result = [];
125
+ const fallback = [];
126
+ for (const range of ranges) {
127
+ const rects = domRectsForRange(pmSpans, overlayRect, zoom, range.from, range.to);
128
+ if (rects.length > 0) result.push({
129
+ range,
130
+ rects
131
+ });
132
+ else fallback.push(range);
133
+ }
134
+ if (fallback.length > 0 && layout && blocks.length > 0) {
135
+ const { selectionToRects } = await import("../layout-bridge/engine/selectionRects.js");
136
+ for (const range of fallback) {
137
+ const rects = selectionToRects(layout, blocks, measures, range.from, range.to).map((rect) => ({
138
+ height: rect.height,
139
+ pageIndex: rect.pageIndex,
140
+ width: rect.width,
141
+ x: rect.x + pageOffsetX,
142
+ y: rect.y + pageOffsetY
143
+ }));
144
+ if (rects.length > 0) result.push({
145
+ range,
146
+ rects
147
+ });
148
+ }
149
+ }
150
+ return result;
151
+ };
152
+ //#endregion
153
+ export { collectRunFontsAtPmPositions, measureContentLeft, projectRangesToRects };
@@ -0,0 +1,5 @@
1
+ //#region src/paged-layout/readOnlyEditAttempt.d.ts
2
+ type ReadOnlyEditKeyEvent = Pick<KeyboardEvent, "altKey" | "ctrlKey" | "key" | "metaKey">;
3
+ declare const isReadOnlyEditKey: (event: ReadOnlyEditKeyEvent) => boolean;
4
+ //#endregion
5
+ export { isReadOnlyEditKey };
@@ -0,0 +1,22 @@
1
+ //#region src/paged-layout/readOnlyEditAttempt.ts
2
+ const MODIFIED_EDIT_KEYS = /* @__PURE__ */ new Set([
3
+ "b",
4
+ "i",
5
+ "u",
6
+ "v",
7
+ "x",
8
+ "y",
9
+ "z"
10
+ ]);
11
+ const PLAIN_EDIT_KEYS = /* @__PURE__ */ new Set([
12
+ "Backspace",
13
+ "Delete",
14
+ "Enter"
15
+ ]);
16
+ const isReadOnlyEditKey = (event) => {
17
+ if (event.metaKey || event.ctrlKey) return MODIFIED_EDIT_KEYS.has(event.key.toLowerCase());
18
+ if (event.altKey) return false;
19
+ return event.key.length === 1 || PLAIN_EDIT_KEYS.has(event.key);
20
+ };
21
+ //#endregion
22
+ export { isReadOnlyEditKey };
@@ -0,0 +1,23 @@
1
+ import { Layout } from "../layout-engine/types.js";
2
+
3
+ //#region src/paged-layout/scrollNavigation.d.ts
4
+ type PageScrollTarget = {
5
+ type: "position";
6
+ pmPos: number;
7
+ } | {
8
+ type: "pageShell";
9
+ pageIndex: number;
10
+ };
11
+ declare const isValidPmScrollPosition: (pmPos: number) => boolean;
12
+ /**
13
+ * Pick a `scrollIntoView` / `scrollTo` `behavior` that respects the
14
+ * user's `prefers-reduced-motion` setting. Chrome silently no-ops
15
+ * `behavior: "smooth"` when reduced motion is on (instead of falling
16
+ * back to instant), so a stale "smooth" call from scroll-to-block
17
+ * leaves the user wondering why the chip "doesn't work". Use the
18
+ * helper everywhere we'd otherwise hard-code `"smooth"`.
19
+ */
20
+ declare const prefersReducedMotionBehavior: () => ScrollBehavior;
21
+ declare const getPageScrollTarget: (layout: Layout | null, pageNumber: number) => PageScrollTarget | null;
22
+ //#endregion
23
+ export { PageScrollTarget, getPageScrollTarget, isValidPmScrollPosition, prefersReducedMotionBehavior };
@@ -0,0 +1,31 @@
1
+ //#region src/paged-layout/scrollNavigation.ts
2
+ const isValidPmScrollPosition = (pmPos) => Number.isInteger(pmPos) && pmPos >= 0;
3
+ /**
4
+ * Pick a `scrollIntoView` / `scrollTo` `behavior` that respects the
5
+ * user's `prefers-reduced-motion` setting. Chrome silently no-ops
6
+ * `behavior: "smooth"` when reduced motion is on (instead of falling
7
+ * back to instant), so a stale "smooth" call from scroll-to-block
8
+ * leaves the user wondering why the chip "doesn't work". Use the
9
+ * helper everywhere we'd otherwise hard-code `"smooth"`.
10
+ */
11
+ const prefersReducedMotionBehavior = () => {
12
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") return "smooth";
13
+ return window.matchMedia("(prefers-reduced-motion: reduce)").matches ? "auto" : "smooth";
14
+ };
15
+ const getPageScrollTarget = (layout, pageNumber) => {
16
+ if (!layout || !Number.isInteger(pageNumber) || pageNumber < 1) return null;
17
+ const pageIndex = pageNumber - 1;
18
+ const page = layout.pages[pageIndex];
19
+ if (!page) return null;
20
+ const pmStart = page.fragments.at(0)?.pmStart;
21
+ if (typeof pmStart === "number" && Number.isInteger(pmStart) && pmStart >= 0) return {
22
+ type: "position",
23
+ pmPos: pmStart
24
+ };
25
+ return {
26
+ type: "pageShell",
27
+ pageIndex
28
+ };
29
+ };
30
+ //#endregion
31
+ export { getPageScrollTarget, isValidPmScrollPosition, prefersReducedMotionBehavior };
@@ -0,0 +1,41 @@
1
+ //#region src/paged-layout/scrollPageInfo.d.ts
2
+ /**
3
+ * scrollPageInfo
4
+ *
5
+ * Framework-agnostic page-indicator state for the scrollable editor: the
6
+ * current/total page derivation and the total-count clamp. The React
7
+ * `useZoomAndPageInfo` hook owns the React state and the scroll/layout DOM
8
+ * reads; this module owns the pure geometry.
9
+ */
10
+ type ScrollPageInfo = {
11
+ currentPage: number;
12
+ totalPages: number;
13
+ visible: boolean;
14
+ };
15
+ declare const updateScrollPageTotal: (previous: ScrollPageInfo, totalPages: number) => ScrollPageInfo;
16
+ type ScrollPageMetrics = {
17
+ /** Laid-out page heights (unscaled), top to bottom. */pageHeights: readonly number[]; /** Current scroll offset of the container (scaled by zoom). */
18
+ scrollTop: number; /** Visible height of the scroll container. */
19
+ clientHeight: number; /** Current zoom factor. */
20
+ zoom: number; /** Padding above the first page in the scroll container. */
21
+ viewportPaddingTop: number; /** Gap rendered between consecutive pages. */
22
+ pageGap: number;
23
+ };
24
+ /**
25
+ * Derive the current page (the one under the viewport center) and total page
26
+ * count from the laid-out page heights and the live scroll position. Returns
27
+ * null when there are no pages to measure.
28
+ */
29
+ declare const computeScrollPageInfo: ({
30
+ pageHeights,
31
+ scrollTop,
32
+ clientHeight,
33
+ zoom,
34
+ viewportPaddingTop,
35
+ pageGap
36
+ }: ScrollPageMetrics) => {
37
+ currentPage: number;
38
+ totalPages: number;
39
+ } | null;
40
+ //#endregion
41
+ export { ScrollPageInfo, ScrollPageMetrics, computeScrollPageInfo, updateScrollPageTotal };
@@ -0,0 +1,34 @@
1
+ //#region src/paged-layout/scrollPageInfo.ts
2
+ const updateScrollPageTotal = (previous, totalPages) => ({
3
+ ...previous,
4
+ currentPage: Math.min(previous.currentPage, totalPages),
5
+ totalPages
6
+ });
7
+ /**
8
+ * Derive the current page (the one under the viewport center) and total page
9
+ * count from the laid-out page heights and the live scroll position. Returns
10
+ * null when there are no pages to measure.
11
+ */
12
+ const computeScrollPageInfo = ({ pageHeights, scrollTop, clientHeight, zoom, viewportPaddingTop, pageGap }) => {
13
+ const totalPages = pageHeights.length;
14
+ if (totalPages === 0) return null;
15
+ const viewportCenter = (scrollTop + clientHeight / 2) / Math.max(zoom, Number.EPSILON);
16
+ let accumulatedY = viewportPaddingTop;
17
+ let currentPage = 1;
18
+ for (let i = 0; i < totalPages; i++) {
19
+ const pageHeight = pageHeights[i];
20
+ const pageEnd = accumulatedY + pageHeight;
21
+ if (viewportCenter < pageEnd) {
22
+ currentPage = i + 1;
23
+ break;
24
+ }
25
+ accumulatedY = pageEnd + pageGap;
26
+ currentPage = i + 2;
27
+ }
28
+ return {
29
+ currentPage: Math.min(currentPage, totalPages),
30
+ totalPages
31
+ };
32
+ };
33
+ //#endregion
34
+ export { computeScrollPageInfo, updateScrollPageTotal };