@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,280 @@
1
+ import { setMeasureProvider } from "./measureProvider.js";
2
+ import { buildFontString, getResolvedData, ptToPx } from "./measureHelpers.js";
3
+ import { getCachedFontMetrics, getCachedTextWidth, getTextWidthCacheGeneration, setCachedFontMetrics, setCachedTextWidth } from "./cache.js";
4
+ import { hasCjk, isCjkCodePoint, segmentByScript } from "../../utils/scriptSegments.js";
5
+ import { canPrefetchMeasurement, prefetchMeasurement } from "./measureWorker.js";
6
+ import { WORKER_FONT_FINGERPRINT_TEXT, countCodePoints } from "./measureWorkerProtocol.js";
7
+ import { panic } from "better-result";
8
+ //#region src/layout-engine/measure/measureContainer.ts
9
+ /**
10
+ * Canvas-backed text measurement (the default MeasureProvider).
11
+ *
12
+ * Uses the HTML5 Canvas API to measure text runs and calculate typography
13
+ * metrics. Canvas-based measurement is more accurate and performant than
14
+ * DOM-based approaches. This module touches canvas/`document`/the worker, so it
15
+ * lives off the layout engine's import path: the engine measures through the
16
+ * pure `measureProvider.ts` seam, and a composition root installs this backend
17
+ * via `installCanvasMeasureProvider()` (the React editor and the bun test
18
+ * preload do so).
19
+ *
20
+ * Typography conventions (matching Word behavior):
21
+ * - ascent ≈ fontSize * 0.8 (baseline to top)
22
+ * - descent ≈ fontSize * 0.2 (baseline to bottom)
23
+ * - lineHeight from font metrics (fontBoundingBoxAscent + fontBoundingBoxDescent),
24
+ * falling back to fontSize * 1.0 (OOXML spec default single spacing)
25
+ */
26
+ const DEFAULT_LINE_HEIGHT_MULTIPLIER = 1;
27
+ const DEFAULT_ASCENT_RATIO = .8;
28
+ const DEFAULT_DESCENT_RATIO = .2;
29
+ let canvasContext = null;
30
+ const workerFontFingerprintCache = /* @__PURE__ */ new Map();
31
+ /**
32
+ * Get or create a canvas 2D context for text measurement
33
+ */
34
+ function getCanvasContext() {
35
+ if (!canvasContext) {
36
+ const canvas = typeof document !== "undefined" ? document.createElement("canvas") : null;
37
+ if (!canvas) panic("Canvas not available. Ensure this runs in a DOM environment.");
38
+ canvasContext = canvas.getContext("2d");
39
+ if (!canvasContext) panic("Failed to get 2D context from canvas");
40
+ }
41
+ return canvasContext;
42
+ }
43
+ /**
44
+ * Reset the canvas context (useful for testing)
45
+ */
46
+ function resetCanvasContext() {
47
+ canvasContext = null;
48
+ }
49
+ function getWorkerFontFingerprintWidth(ctx, font) {
50
+ const generation = getTextWidthCacheGeneration();
51
+ const cached = workerFontFingerprintCache.get(font);
52
+ if (cached?.generation === generation) return cached.width;
53
+ ctx.font = font;
54
+ const width = ctx.measureText(WORKER_FONT_FINGERPRINT_TEXT).width;
55
+ workerFontFingerprintCache.set(font, {
56
+ generation,
57
+ width
58
+ });
59
+ return width;
60
+ }
61
+ /**
62
+ * Get typography metrics for a given font size and family
63
+ *
64
+ * Uses Canvas TextMetrics API when available for precise metrics,
65
+ * falls back to ratio-based approximations.
66
+ */
67
+ function canvasGetFontMetrics(style) {
68
+ const fontSize = style.fontSize ?? 11;
69
+ const fontFamily = style.fontFamily ?? "Calibri";
70
+ const bold = style.bold ?? false;
71
+ const italic = style.italic ?? false;
72
+ const fontVariant = style.fontVariant;
73
+ const cached = getCachedFontMetrics(fontFamily, fontSize, bold, italic, fontVariant);
74
+ if (cached !== void 0) return {
75
+ fontSize,
76
+ ascent: cached.ascent,
77
+ descent: cached.descent,
78
+ lineHeight: cached.lineHeight,
79
+ fontFamily,
80
+ singleLineRatio: cached.singleLineRatio
81
+ };
82
+ const fontSizePx = ptToPx(fontSize);
83
+ let ascent = fontSizePx * DEFAULT_ASCENT_RATIO;
84
+ let descent = fontSizePx * DEFAULT_DESCENT_RATIO;
85
+ let lineHeight = fontSizePx * DEFAULT_LINE_HEIGHT_MULTIPLIER;
86
+ try {
87
+ const ctx = getCanvasContext();
88
+ ctx.font = buildFontString(style);
89
+ const metrics = ctx.measureText("Hg");
90
+ if (typeof metrics.actualBoundingBoxAscent === "number" && typeof metrics.actualBoundingBoxDescent === "number") {
91
+ ascent = metrics.actualBoundingBoxAscent;
92
+ descent = metrics.actualBoundingBoxDescent;
93
+ }
94
+ } catch {}
95
+ lineHeight = Math.max(lineHeight, ascent + descent);
96
+ const singleLineRatio = getResolvedData(fontFamily).singleLineRatio;
97
+ const result = {
98
+ fontSize,
99
+ ascent,
100
+ descent,
101
+ lineHeight,
102
+ fontFamily,
103
+ singleLineRatio
104
+ };
105
+ setCachedFontMetrics(fontFamily, fontSize, bold, italic, result, fontVariant);
106
+ return result;
107
+ }
108
+ /**
109
+ * Measure the width of a text string with specific styling
110
+ *
111
+ * @param text - The text to measure
112
+ * @param style - Font styling properties
113
+ * @returns Width in pixels
114
+ */
115
+ function canvasMeasureTextWidth(text, style) {
116
+ if (!text) return 0;
117
+ const measuredText = applyTextTransform(text, style);
118
+ if (style.eastAsiaFontFamily && !style.letterSpacing && hasCjk(measuredText)) return measureMixedScriptWidth(measuredText, style);
119
+ const ctx = getCanvasContext();
120
+ const font = buildFontString(style);
121
+ const letterSpacing = style.letterSpacing ?? 0;
122
+ const horizontalScale = getHorizontalScaleFactor(style);
123
+ const fontCacheKey = `${font}|scale:${horizontalScale}`;
124
+ const cached = getCachedTextWidth(measuredText, fontCacheKey, letterSpacing);
125
+ if (cached !== void 0) return cached;
126
+ ctx.font = font;
127
+ let width = ctx.measureText(measuredText).width;
128
+ if (letterSpacing) {
129
+ const codePoints = countCodePoints(measuredText);
130
+ if (codePoints > 1) width += letterSpacing * (codePoints - 1);
131
+ }
132
+ const scaledWidth = width * horizontalScale;
133
+ setCachedTextWidth(measuredText, fontCacheKey, letterSpacing, scaledWidth);
134
+ if (!canPrefetchMeasurement()) return scaledWidth;
135
+ const fontFingerprintWidth = getWorkerFontFingerprintWidth(ctx, font);
136
+ prefetchMeasurement(measuredText, font, letterSpacing, horizontalScale, fontCacheKey, fontFingerprintWidth);
137
+ prefetchBinarySearchProbes(measuredText, font, fontCacheKey, fontFingerprintWidth, letterSpacing, horizontalScale);
138
+ return scaledWidth;
139
+ }
140
+ /**
141
+ * Build a glyph-advance-only style for one script segment: keep the properties
142
+ * that change advance width (family, size, bold/italic, small-caps) and drop
143
+ * letter spacing, horizontal scale, transform, and the EA font so the segment
144
+ * takes the single-font path (no double-counting, no recursion).
145
+ */
146
+ function glyphAdvanceStyle(style, fontFamily) {
147
+ const result = {};
148
+ if (fontFamily !== void 0) result.fontFamily = fontFamily;
149
+ if (style.fontSize !== void 0) result.fontSize = style.fontSize;
150
+ if (style.bold !== void 0) result.bold = style.bold;
151
+ if (style.italic !== void 0) result.italic = style.italic;
152
+ if (style.fontVariant !== void 0) result.fontVariant = style.fontVariant;
153
+ return result;
154
+ }
155
+ /**
156
+ * Width of text whose CJK code points use `style.eastAsiaFontFamily` and whose
157
+ * other code points use `style.fontFamily`. Each script segment is measured
158
+ * with its own font (reusing the single-font cache); letter spacing and
159
+ * horizontal scale are applied once over the whole string so the total matches
160
+ * the painter, which renders the same segments as sibling spans.
161
+ */
162
+ function measureMixedScriptWidth(measuredText, style) {
163
+ const letterSpacing = style.letterSpacing ?? 0;
164
+ const horizontalScale = getHorizontalScaleFactor(style);
165
+ let glyphWidth = 0;
166
+ for (const segment of segmentByScript(measuredText)) {
167
+ const fontFamily = segment.isCjk ? style.eastAsiaFontFamily : style.fontFamily;
168
+ glyphWidth += canvasMeasureTextWidth(segment.text, glyphAdvanceStyle(style, fontFamily));
169
+ }
170
+ let width = glyphWidth;
171
+ if (letterSpacing) {
172
+ const codePoints = countCodePoints(measuredText);
173
+ if (codePoints > 1) width += letterSpacing * (codePoints - 1);
174
+ }
175
+ return width * horizontalScale;
176
+ }
177
+ /**
178
+ * Speculatively enqueue the slice lengths that a subsequent
179
+ * `findMaxFittingLength` binary search is likely to probe. We pick the
180
+ * geometric series (full, half, quarter, eighth) which covers the
181
+ * majority of probe points the binary search uses, without flooding
182
+ * the worker for runs that will never trigger a line break.
183
+ *
184
+ * The worker is racing the main thread here: if the main thread asks
185
+ * for slice(0, n/2) before the worker has answered, the cache miss
186
+ * pays the main-thread cost as usual. When the worker wins, that probe
187
+ * lands on a hit.
188
+ */
189
+ function prefetchBinarySearchProbes(text, font, fontCacheKey, fontFingerprintWidth, letterSpacing, horizontalScale) {
190
+ if (text.length < 4) return;
191
+ for (let denom = 2; denom <= 8; denom *= 2) {
192
+ const len = Math.floor(text.length / denom);
193
+ if (len < 2) break;
194
+ prefetchMeasurement(text.slice(0, len), font, letterSpacing, horizontalScale, fontCacheKey, fontFingerprintWidth);
195
+ }
196
+ }
197
+ /**
198
+ * Measure text and return full metrics
199
+ */
200
+ function canvasMeasureText(text, style) {
201
+ const width = canvasMeasureTextWidth(text, style);
202
+ const metrics = canvasGetFontMetrics(style);
203
+ return {
204
+ width,
205
+ height: metrics.ascent + metrics.descent,
206
+ ascent: metrics.ascent,
207
+ descent: metrics.descent
208
+ };
209
+ }
210
+ /**
211
+ * Measure a run of text and return per-character widths for click positioning
212
+ *
213
+ * @param text - The text to measure
214
+ * @param style - Font styling properties
215
+ * @returns Run measurement with width and per-character widths
216
+ */
217
+ function canvasMeasureRun(text, style) {
218
+ const metrics = canvasGetFontMetrics(style);
219
+ if (!text) return {
220
+ width: 0,
221
+ charWidths: [],
222
+ metrics
223
+ };
224
+ const ctx = getCanvasContext();
225
+ const baseFont = buildFontString(style);
226
+ ctx.font = baseFont;
227
+ const eastAsiaFont = style.eastAsiaFontFamily !== void 0 && !style.letterSpacing ? buildFontString({
228
+ ...style,
229
+ fontFamily: style.eastAsiaFontFamily
230
+ }) : void 0;
231
+ const letterSpacing = style.letterSpacing ?? 0;
232
+ const scale = getHorizontalScaleFactor(style);
233
+ const charWidths = [];
234
+ let totalWidth = 0;
235
+ let offset = 0;
236
+ for (const char of text) {
237
+ const cp = char.codePointAt(0);
238
+ const measured = applyTextTransform(char, style);
239
+ if (eastAsiaFont !== void 0) ctx.font = isCjkCodePoint(cp) ? eastAsiaFont : baseFont;
240
+ let charWidth = ctx.measureText(measured).width;
241
+ if (letterSpacing && offset + char.length < text.length) charWidth += letterSpacing;
242
+ charWidth *= scale;
243
+ charWidths.push(charWidth);
244
+ if (char.length === 2) charWidths.push(0);
245
+ totalWidth += charWidth;
246
+ offset += char.length;
247
+ }
248
+ return {
249
+ width: totalWidth,
250
+ charWidths,
251
+ metrics
252
+ };
253
+ }
254
+ /**
255
+ * Default provider backed by the canvas measurement functions above.
256
+ */
257
+ const canvasMeasureProvider = {
258
+ getFontMetrics: canvasGetFontMetrics,
259
+ measureTextWidth: canvasMeasureTextWidth,
260
+ measureText: canvasMeasureText,
261
+ measureRun: canvasMeasureRun
262
+ };
263
+ /**
264
+ * Install the canvas backend as the active MeasureProvider. Called once at each
265
+ * composition root (the React editor's layout pipeline and the bun test
266
+ * preload) before any layout runs. Explicit call, not a module side effect, so
267
+ * importing this module never silently swaps the active provider.
268
+ */
269
+ const installCanvasMeasureProvider = () => {
270
+ setMeasureProvider(canvasMeasureProvider);
271
+ };
272
+ function applyTextTransform(text, style) {
273
+ if (style.textTransform === "uppercase") return text.toLocaleUpperCase();
274
+ return text;
275
+ }
276
+ function getHorizontalScaleFactor(style) {
277
+ return (style.horizontalScale ?? 100) / 100;
278
+ }
279
+ //#endregion
280
+ export { canvasMeasureProvider, getCanvasContext, installCanvasMeasureProvider, resetCanvasContext };
@@ -0,0 +1,82 @@
1
+ import { RunFormatting } from "../types.js";
2
+ import { FontStyle } from "./measureTypes.js";
3
+
4
+ //#region src/layout-engine/measure/measureHelpers.d.ts
5
+ declare const DEFAULT_FONT_SIZE = 11;
6
+ declare const DEFAULT_FONT_FAMILY = "Calibri";
7
+ /**
8
+ * Build a measurement `FontStyle` from a run's formatting. Single source of
9
+ * truth for run → FontStyle so every measurement path (layout line-breaking,
10
+ * click-to-position, selection rects) carries the same fields — notably
11
+ * `eastAsiaFontFamily`, which must reach the measurer for CJK click/selection
12
+ * offsets to match what was wrapped and painted. Callers pass their own family
13
+ * and size fallbacks for runs that declare neither.
14
+ */
15
+ declare function buildRunFontStyle(run: RunFormatting, fallbackFontFamily: string, fallbackFontSize: number): FontStyle;
16
+ /** Cached resolved font data (CSS fallback + single-line ratio) */
17
+ type ResolvedFontCache = {
18
+ cssFallback: string;
19
+ singleLineRatio: number;
20
+ };
21
+ /**
22
+ * Get the resolved font data for a font family, with caching.
23
+ */
24
+ declare function getResolvedData(fontFamily: string): ResolvedFontCache;
25
+ /**
26
+ * Build a CSS font string from styling properties
27
+ *
28
+ * Font sizes are in points and need to be converted to pixels for canvas.
29
+ * 1pt = 96/72 px ≈ 1.333px at standard web DPI.
30
+ *
31
+ * Uses the font resolver to get category-appropriate fallback stacks
32
+ * (serif fonts get serif fallbacks, sans-serif get sans-serif, etc.)
33
+ * matching the same stacks used in rendering for consistent measurements.
34
+ *
35
+ * @example
36
+ * buildFontString({ fontFamily: "Arial", fontSize: 12, bold: true })
37
+ * // Returns: "800 16px Arial, Arimo, Helvetica, sans-serif" (12pt = 16px)
38
+ */
39
+ declare function buildFontString(style: FontStyle): string;
40
+ /**
41
+ * Find the character offset at a given X position within a text run
42
+ *
43
+ * @param x - X position relative to run start
44
+ * @param charWidths - Per-character widths from measureRun
45
+ * @returns Character offset (0-based index)
46
+ */
47
+ declare function findCharacterAtX(x: number, charWidths: number[]): number;
48
+ /**
49
+ * Get the X position of a character offset within a text run
50
+ *
51
+ * @param offset - Character offset (0-based index)
52
+ * @param charWidths - Per-character widths from measureRun
53
+ * @returns X position in pixels
54
+ */
55
+ declare function getXForCharacter(offset: number, charWidths: number[]): number;
56
+ /**
57
+ * Convert twips to pixels
58
+ */
59
+ declare function twipsToPx(twips: number): number;
60
+ /**
61
+ * Convert pixels to twips
62
+ */
63
+ declare function pxToTwips(px: number): number;
64
+ /**
65
+ * Convert points to pixels
66
+ */
67
+ declare function ptToPx(pt: number): number;
68
+ /**
69
+ * Convert pixels to points
70
+ */
71
+ declare function pxToPt(px: number): number;
72
+ /**
73
+ * Convert OOXML half-points to pixels
74
+ * OOXML font sizes are in half-points (24 = 12pt)
75
+ */
76
+ declare function halfPtToPx(halfPt: number): number;
77
+ /**
78
+ * Convert pixels to OOXML half-points
79
+ */
80
+ declare function pxToHalfPt(px: number): number;
81
+ //#endregion
82
+ export { DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, buildFontString, buildRunFontStyle, findCharacterAtX, getResolvedData, getXForCharacter, halfPtToPx, ptToPx, pxToHalfPt, pxToPt, pxToTwips, twipsToPx };
@@ -0,0 +1,156 @@
1
+ import { resolveFontFamily } from "../../utils/fontResolver.js";
2
+ import "../../utils/fontWeights.js";
3
+ //#region src/layout-engine/measure/measureHelpers.ts
4
+ /**
5
+ * Pure measurement helpers — no canvas, no DOM, no worker.
6
+ *
7
+ * Unit conversions, font-string construction, run → FontStyle mapping, and
8
+ * char-offset geometry. The layout engine imports these directly so it never
9
+ * transitively pulls the canvas measurement backend; the canvas implementation
10
+ * (`measureContainer.ts`) consumes them too.
11
+ */
12
+ const TWIPS_PER_INCH = 1440;
13
+ const PX_PER_INCH = 96;
14
+ const TWIPS_PER_PX = TWIPS_PER_INCH / PX_PER_INCH;
15
+ const DEFAULT_FONT_SIZE = 11;
16
+ const DEFAULT_FONT_FAMILY = "Calibri";
17
+ /**
18
+ * Build a measurement `FontStyle` from a run's formatting. Single source of
19
+ * truth for run → FontStyle so every measurement path (layout line-breaking,
20
+ * click-to-position, selection rects) carries the same fields — notably
21
+ * `eastAsiaFontFamily`, which must reach the measurer for CJK click/selection
22
+ * offsets to match what was wrapped and painted. Callers pass their own family
23
+ * and size fallbacks for runs that declare neither.
24
+ */
25
+ function buildRunFontStyle(run, fallbackFontFamily, fallbackFontSize) {
26
+ return {
27
+ fontFamily: run.fontFamily ?? fallbackFontFamily,
28
+ ...run.eastAsiaFontFamily !== void 0 ? { eastAsiaFontFamily: run.eastAsiaFontFamily } : {},
29
+ fontSize: run.fontSize ?? fallbackFontSize,
30
+ ...run.bold !== void 0 ? { bold: run.bold } : {},
31
+ ...run.italic !== void 0 ? { italic: run.italic } : {},
32
+ ...run.letterSpacing !== void 0 ? { letterSpacing: run.letterSpacing } : {},
33
+ ...run.allCaps ? { textTransform: "uppercase" } : {},
34
+ ...run.smallCaps ? { fontVariant: "small-caps" } : {},
35
+ ...run.horizontalScale !== void 0 ? { horizontalScale: run.horizontalScale } : {}
36
+ };
37
+ }
38
+ /** Cache for resolved font data */
39
+ const fontResolvedCache = /* @__PURE__ */ new Map();
40
+ /**
41
+ * Get the resolved font data for a font family, with caching.
42
+ */
43
+ function getResolvedData(fontFamily) {
44
+ let cached = fontResolvedCache.get(fontFamily);
45
+ if (cached === void 0) {
46
+ const resolved = resolveFontFamily(fontFamily);
47
+ cached = {
48
+ cssFallback: resolved.cssFallback,
49
+ singleLineRatio: resolved.singleLineRatio
50
+ };
51
+ fontResolvedCache.set(fontFamily, cached);
52
+ }
53
+ return cached;
54
+ }
55
+ /**
56
+ * Get the CSS fallback string for a font family, with caching.
57
+ */
58
+ function getResolvedFallback(fontFamily) {
59
+ return getResolvedData(fontFamily).cssFallback;
60
+ }
61
+ /**
62
+ * Build a CSS font string from styling properties
63
+ *
64
+ * Font sizes are in points and need to be converted to pixels for canvas.
65
+ * 1pt = 96/72 px ≈ 1.333px at standard web DPI.
66
+ *
67
+ * Uses the font resolver to get category-appropriate fallback stacks
68
+ * (serif fonts get serif fallbacks, sans-serif get sans-serif, etc.)
69
+ * matching the same stacks used in rendering for consistent measurements.
70
+ *
71
+ * @example
72
+ * buildFontString({ fontFamily: "Arial", fontSize: 12, bold: true })
73
+ * // Returns: "800 16px Arial, Arimo, Helvetica, sans-serif" (12pt = 16px)
74
+ */
75
+ function buildFontString(style) {
76
+ const parts = [];
77
+ if (style.italic) parts.push("italic");
78
+ if (style.fontVariant) parts.push(style.fontVariant);
79
+ if (style.bold) parts.push("800");
80
+ const fontSizePx = ptToPx(style.fontSize ?? 11);
81
+ parts.push(`${fontSizePx}px`);
82
+ const fontFamily = style.fontFamily ?? "Calibri";
83
+ parts.push(getResolvedFallback(fontFamily));
84
+ return parts.join(" ");
85
+ }
86
+ /**
87
+ * Find the character offset at a given X position within a text run
88
+ *
89
+ * @param x - X position relative to run start
90
+ * @param charWidths - Per-character widths from measureRun
91
+ * @returns Character offset (0-based index)
92
+ */
93
+ function findCharacterAtX(x, charWidths) {
94
+ if (charWidths.length === 0) return 0;
95
+ if (x <= 0) return 0;
96
+ let accumulatedWidth = 0;
97
+ for (let i = 0; i < charWidths.length; i++) {
98
+ const charWidth = charWidths[i];
99
+ if (x <= accumulatedWidth + charWidth / 2) return i;
100
+ accumulatedWidth += charWidth;
101
+ }
102
+ return charWidths.length;
103
+ }
104
+ /**
105
+ * Get the X position of a character offset within a text run
106
+ *
107
+ * @param offset - Character offset (0-based index)
108
+ * @param charWidths - Per-character widths from measureRun
109
+ * @returns X position in pixels
110
+ */
111
+ function getXForCharacter(offset, charWidths) {
112
+ if (offset <= 0 || charWidths.length === 0) return 0;
113
+ const clampedOffset = Math.min(offset, charWidths.length);
114
+ let x = 0;
115
+ for (let i = 0; i < clampedOffset; i++) x += charWidths[i];
116
+ return x;
117
+ }
118
+ /**
119
+ * Convert twips to pixels
120
+ */
121
+ function twipsToPx(twips) {
122
+ return twips / TWIPS_PER_PX;
123
+ }
124
+ /**
125
+ * Convert pixels to twips
126
+ */
127
+ function pxToTwips(px) {
128
+ return Math.round(px * TWIPS_PER_PX);
129
+ }
130
+ /**
131
+ * Convert points to pixels
132
+ */
133
+ function ptToPx(pt) {
134
+ return pt * PX_PER_INCH / 72;
135
+ }
136
+ /**
137
+ * Convert pixels to points
138
+ */
139
+ function pxToPt(px) {
140
+ return px * 72 / PX_PER_INCH;
141
+ }
142
+ /**
143
+ * Convert OOXML half-points to pixels
144
+ * OOXML font sizes are in half-points (24 = 12pt)
145
+ */
146
+ function halfPtToPx(halfPt) {
147
+ return ptToPx(halfPt / 2);
148
+ }
149
+ /**
150
+ * Convert pixels to OOXML half-points
151
+ */
152
+ function pxToHalfPt(px) {
153
+ return pxToPt(px) * 2;
154
+ }
155
+ //#endregion
156
+ export { DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, buildFontString, buildRunFontStyle, findCharacterAtX, getResolvedData, getXForCharacter, halfPtToPx, ptToPx, pxToHalfPt, pxToPt, pxToTwips, twipsToPx };
@@ -0,0 +1,61 @@
1
+ import { ParagraphBlock, ParagraphMeasure, TextRun } from "../types.js";
2
+ import { FloatingImageZone } from "./floatingZones.js";
3
+ import { clampFloatingWrapMargins } from "./clampFloatingWrapMargins.js";
4
+
5
+ //#region src/layout-engine/measure/measureParagraph.d.ts
6
+ /**
7
+ * Options for paragraph measurement
8
+ */
9
+ type MeasureParagraphOptions = {
10
+ /** Floating image exclusion zones that affect line widths */floatingZones?: FloatingImageZone[]; /** Y offset of this paragraph relative to the exclusion zones (default: 0) */
11
+ paragraphYOffset?: number;
12
+ /** Field run `pmStart` -> resolved display text, so a field measures at its
13
+ * painted width instead of the cached fallback. */
14
+ fieldValues?: ReadonlyMap<number, string>;
15
+ };
16
+ /**
17
+ * Minimum horizontal room a line must offer before we treat it as usable for
18
+ * body text. Below this threshold the line is bumped past obstructing floats
19
+ * via `findClearLineY` instead of being rendered into the unusable sliver.
20
+ * Without this guard, a near-full-width float (e.g. floating table) produces
21
+ * a ~2px segment that collapses every wrap line to one glyph per row.
22
+ */
23
+ declare const MIN_WRAP_SEGMENT_WIDTH = 24;
24
+ /**
25
+ * Find the next vertical position at or below `startY` where the available
26
+ * text width is at least `minWidth`. Used to skip lines past stacked floats
27
+ * when there is no horizontal room for meaningful text at the current Y.
28
+ *
29
+ * Returns `startY` if the current position already has enough room, otherwise
30
+ * the lowest `bottomY` of any zone currently obstructing the line. The caller
31
+ * is expected to re-query margins at the returned Y.
32
+ *
33
+ * Coordinates are absolute (i.e., already include any paragraphYOffset).
34
+ */
35
+ declare function findClearLineY(startY: number, lineHeight: number, zones: FloatingImageZone[] | undefined, contentWidth: number, minWidth: number): number;
36
+ /**
37
+ * Measure a paragraph block and compute line breaks
38
+ *
39
+ * @param block - The paragraph block to measure
40
+ * @param maxWidth - Maximum available width for the paragraph
41
+ * @param options - Optional measurement options (floating zones, Y offset)
42
+ * @returns ParagraphMeasure with lines and total height
43
+ */
44
+ declare function measureParagraph(block: ParagraphBlock, maxWidth: number, options?: MeasureParagraphOptions): ParagraphMeasure;
45
+ /**
46
+ * Measure multiple paragraph blocks
47
+ *
48
+ * @param blocks - Array of paragraph blocks to measure
49
+ * @param maxWidth - Maximum available width
50
+ * @returns Array of ParagraphMeasure results
51
+ */
52
+ declare function measureParagraphs(blocks: ParagraphBlock[], maxWidth: number): ParagraphMeasure[];
53
+ /**
54
+ * Get per-character widths for a text run (for click positioning)
55
+ *
56
+ * @param run - The text run to measure
57
+ * @returns Array of character widths
58
+ */
59
+ declare function getRunCharWidths(run: TextRun): number[];
60
+ //#endregion
61
+ export { type FloatingImageZone, MIN_WRAP_SEGMENT_WIDTH, MeasureParagraphOptions, clampFloatingWrapMargins, findClearLineY, getRunCharWidths, measureParagraph, measureParagraphs };