@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,182 @@
1
+ //#region src/layout-engine/section-breaks.ts
2
+ /**
3
+ * Default single-column layout.
4
+ */
5
+ const DEFAULT_COLUMNS = {
6
+ count: 1,
7
+ gap: 0
8
+ };
9
+ /**
10
+ * Create initial section state from default options.
11
+ */
12
+ function createInitialSectionState(margins, pageSize, columns) {
13
+ return {
14
+ activeTopMargin: margins.top,
15
+ activeBottomMargin: margins.bottom,
16
+ activeLeftMargin: margins.left,
17
+ activeRightMargin: margins.right,
18
+ pendingTopMargin: null,
19
+ pendingBottomMargin: null,
20
+ pendingLeftMargin: null,
21
+ pendingRightMargin: null,
22
+ activePageSize: { ...pageSize },
23
+ pendingPageSize: null,
24
+ activeColumns: columns ? { ...columns } : { ...DEFAULT_COLUMNS },
25
+ pendingColumns: null,
26
+ activeOrientation: null,
27
+ pendingOrientation: null,
28
+ hasAnyPages: false
29
+ };
30
+ }
31
+ /**
32
+ * Check if column configuration is changing.
33
+ */
34
+ function isColumnsChanging(newColumns, activeColumns) {
35
+ if (newColumns) return newColumns.count !== activeColumns.count || newColumns.gap !== activeColumns.gap;
36
+ return activeColumns.count > 1;
37
+ }
38
+ /**
39
+ * Get column configuration, defaulting to single column if not specified.
40
+ */
41
+ function getColumnConfig(columns) {
42
+ return columns ? {
43
+ count: columns.count,
44
+ gap: columns.gap
45
+ } : { ...DEFAULT_COLUMNS };
46
+ }
47
+ /**
48
+ * Schedule section break effects by analyzing the break type and updating state.
49
+ *
50
+ * This determines what layout changes should occur (page break, column changes)
51
+ * and schedules the new section properties to be applied at the appropriate boundary.
52
+ */
53
+ function scheduleSectionBreak(block, state, _baseMargins) {
54
+ const next = { ...state };
55
+ const sectionType = block.type ?? "continuous";
56
+ const sectionMargins = block.margins;
57
+ const sectionPageSize = block.pageSize;
58
+ const sectionOrientation = block.orientation;
59
+ if (sectionMargins) {
60
+ if (typeof sectionMargins.top === "number") next.pendingTopMargin = Math.max(0, sectionMargins.top);
61
+ if (typeof sectionMargins.bottom === "number") next.pendingBottomMargin = Math.max(0, sectionMargins.bottom);
62
+ if (typeof sectionMargins.left === "number") next.pendingLeftMargin = Math.max(0, sectionMargins.left);
63
+ if (typeof sectionMargins.right === "number") next.pendingRightMargin = Math.max(0, sectionMargins.right);
64
+ }
65
+ if (sectionPageSize) next.pendingPageSize = {
66
+ w: sectionPageSize.w,
67
+ h: sectionPageSize.h
68
+ };
69
+ if (sectionOrientation) next.pendingOrientation = sectionOrientation;
70
+ const columnsChanging = isColumnsChanging(void 0, next.activeColumns);
71
+ switch (sectionType) {
72
+ case "nextPage":
73
+ next.pendingColumns = getColumnConfig();
74
+ return {
75
+ decision: {
76
+ forcePageBreak: true,
77
+ forceMidPageRegion: false
78
+ },
79
+ state: next
80
+ };
81
+ case "evenPage":
82
+ next.pendingColumns = getColumnConfig();
83
+ return {
84
+ decision: {
85
+ forcePageBreak: true,
86
+ forceMidPageRegion: false,
87
+ requiredParity: "even"
88
+ },
89
+ state: next
90
+ };
91
+ case "oddPage":
92
+ next.pendingColumns = getColumnConfig();
93
+ return {
94
+ decision: {
95
+ forcePageBreak: true,
96
+ forceMidPageRegion: false,
97
+ requiredParity: "odd"
98
+ },
99
+ state: next
100
+ };
101
+ default:
102
+ if (columnsChanging) {
103
+ next.pendingColumns = getColumnConfig();
104
+ return {
105
+ decision: {
106
+ forcePageBreak: false,
107
+ forceMidPageRegion: true
108
+ },
109
+ state: next
110
+ };
111
+ }
112
+ return {
113
+ decision: {
114
+ forcePageBreak: false,
115
+ forceMidPageRegion: false
116
+ },
117
+ state: next
118
+ };
119
+ }
120
+ }
121
+ /**
122
+ * Apply pending section state to active state at a page boundary.
123
+ * Transfers all pending values to active and clears pending.
124
+ */
125
+ function applyPendingToActive(state) {
126
+ const next = { ...state };
127
+ if (next.pendingTopMargin !== null) {
128
+ next.activeTopMargin = next.pendingTopMargin;
129
+ next.pendingTopMargin = null;
130
+ }
131
+ if (next.pendingBottomMargin !== null) {
132
+ next.activeBottomMargin = next.pendingBottomMargin;
133
+ next.pendingBottomMargin = null;
134
+ }
135
+ if (next.pendingLeftMargin !== null) {
136
+ next.activeLeftMargin = next.pendingLeftMargin;
137
+ next.pendingLeftMargin = null;
138
+ }
139
+ if (next.pendingRightMargin !== null) {
140
+ next.activeRightMargin = next.pendingRightMargin;
141
+ next.pendingRightMargin = null;
142
+ }
143
+ if (next.pendingPageSize !== null) {
144
+ next.activePageSize = next.pendingPageSize;
145
+ next.pendingPageSize = null;
146
+ }
147
+ if (next.pendingColumns !== null) {
148
+ next.activeColumns = next.pendingColumns;
149
+ next.pendingColumns = null;
150
+ }
151
+ if (next.pendingOrientation !== null) {
152
+ next.activeOrientation = next.pendingOrientation;
153
+ next.pendingOrientation = null;
154
+ }
155
+ return next;
156
+ }
157
+ /**
158
+ * Get the effective margins for the current section state.
159
+ * Returns active margins, or pending if scheduled.
160
+ */
161
+ function getEffectiveMargins(state) {
162
+ return {
163
+ top: state.pendingTopMargin ?? state.activeTopMargin,
164
+ bottom: state.pendingBottomMargin ?? state.activeBottomMargin,
165
+ left: state.pendingLeftMargin ?? state.activeLeftMargin,
166
+ right: state.pendingRightMargin ?? state.activeRightMargin
167
+ };
168
+ }
169
+ /**
170
+ * Get the effective page size for the current section state.
171
+ */
172
+ function getEffectivePageSize(state) {
173
+ return state.pendingPageSize ?? state.activePageSize;
174
+ }
175
+ /**
176
+ * Get the effective columns for the current section state.
177
+ */
178
+ function getEffectiveColumns(state) {
179
+ return state.pendingColumns ?? state.activeColumns;
180
+ }
181
+ //#endregion
182
+ export { applyPendingToActive, createInitialSectionState, getEffectiveColumns, getEffectiveMargins, getEffectivePageSize, scheduleSectionBreak };
@@ -0,0 +1,23 @@
1
+ import { TableBlock, TableMeasure } from "./types.js";
2
+
3
+ //#region src/layout-engine/tableRowBreak.d.ts
4
+ /** Precomputed break geometry for a table. */
5
+ type TableRowBreakInfo = {
6
+ /** Cumulative y of the top of each row; `rowTops[rows.length]` is the table height. */rowTops: number[];
7
+ /**
8
+ * Per-row sorted, de-duplicated line-bottom offsets (relative to the row top)
9
+ * at which a break is clean. Always includes the row's full height as the
10
+ * final boundary.
11
+ */
12
+ breakOffsets: number[][];
13
+ };
14
+ /** Build break geometry for a table from its block + measure. */
15
+ declare function buildTableRowBreakInfo(block: TableBlock, measure: TableMeasure): TableRowBreakInfo;
16
+ /**
17
+ * Given a row and how much of it has already been placed (`fromOffset`), return
18
+ * how many more px can be placed ending on a whole line, without exceeding
19
+ * `maxSlice`. Returns 0 when not even the first line fits.
20
+ */
21
+ declare function snapRowBreak(info: TableRowBreakInfo, rowIndex: number, fromOffset: number, maxSlice: number): number;
22
+ //#endregion
23
+ export { TableRowBreakInfo, buildTableRowBreakInfo, snapRowBreak };
@@ -0,0 +1,147 @@
1
+ import { measureParagraph } from "./measure/measureParagraph.js";
2
+ import { buildTableCellFloatingZones, getTableCellContentWidth, getTableCellFloatingImages } from "./measure/tableCellFloating.js";
3
+ //#region src/layout-engine/tableRowBreak.ts
4
+ /**
5
+ * Table row-break geometry. Ported from eigenpal/docx-editor#698 (folio subset).
6
+ *
7
+ * Word lets a table row break across a page boundary ("allow row to break
8
+ * across pages", on by default). When a row is taller than a whole page it
9
+ * cannot fit anywhere, so the portion that fits stays and the rest continues on
10
+ * the next page — broken between whole text lines, never through a glyph.
11
+ * Without this folio forced the oversized row onto one page and the overflow
12
+ * was clipped (content lost; upstream #570).
13
+ *
14
+ * This computes, per row, the safe break offsets (the y of every line bottom in
15
+ * the row's cells) so the paginator can snap a break to the deepest whole line
16
+ * that still fits. Vertically-merged cells that span into a row are not modeled
17
+ * here yet (a separate follow-up); each row uses its own cells' content.
18
+ */
19
+ const DEFAULT_TABLE_CELL_PADDING_TOP = 1;
20
+ function getAtomicBlockHeight(measure) {
21
+ if ("totalHeight" in measure) return measure.totalHeight;
22
+ if ("height" in measure) return measure.height;
23
+ return 0;
24
+ }
25
+ function isInsideRange(offset, range) {
26
+ return offset > range.top && offset < range.bottom;
27
+ }
28
+ function getVerticalAlignmentOffset(cell, measure, rowHeight) {
29
+ const spareHeight = Math.max(0, rowHeight - measure.height);
30
+ if (cell?.verticalAlign === "bottom") return spareHeight;
31
+ if (cell?.verticalAlign === "center") return spareHeight / 2;
32
+ return 0;
33
+ }
34
+ function shiftCellGeometry(geometry, offset) {
35
+ if (offset <= 0) return geometry;
36
+ return {
37
+ bottoms: geometry.bottoms.map((bottom) => bottom + offset),
38
+ unsafeRanges: geometry.unsafeRanges.map((range) => ({
39
+ top: range.top + offset,
40
+ bottom: range.bottom + offset
41
+ }))
42
+ };
43
+ }
44
+ /** Cumulative break geometry within a single cell's content. */
45
+ function cellBreakGeometry(cell, measure) {
46
+ const bottoms = [];
47
+ const unsafeRanges = [];
48
+ const cellBlocks = cell?.blocks;
49
+ const blockMeasures = measure.blocks;
50
+ const padTop = cell?.padding?.top ?? DEFAULT_TABLE_CELL_PADDING_TOP;
51
+ const contentWidth = getTableCellContentWidth(cell, measure);
52
+ const floatingZones = buildTableCellFloatingZones(cell !== void 0 ? getTableCellFloatingImages(cell, measure, contentWidth) : [], contentWidth);
53
+ let y = padTop;
54
+ let paragraphY = 0;
55
+ for (let i = 0; i < blockMeasures.length; i++) {
56
+ let blockMeasure = blockMeasures[i];
57
+ if (blockMeasure?.kind === "paragraph") {
58
+ const block = cellBlocks?.[i];
59
+ if (block?.kind === "paragraph" && floatingZones.length > 0) blockMeasure = measureParagraph(block, contentWidth, {
60
+ floatingZones,
61
+ paragraphYOffset: paragraphY
62
+ });
63
+ const blockTop = y;
64
+ for (const line of blockMeasure.lines) {
65
+ y += line.floatSkipBefore ?? 0;
66
+ const top = y;
67
+ y += line.lineHeight;
68
+ unsafeRanges.push({
69
+ top,
70
+ bottom: y
71
+ });
72
+ bottoms.push(y);
73
+ }
74
+ y = blockTop + blockMeasure.totalHeight;
75
+ paragraphY += blockMeasure.totalHeight;
76
+ } else if (blockMeasure) {
77
+ const blockHeight = getAtomicBlockHeight(blockMeasure);
78
+ if (blockHeight > 0) {
79
+ const top = y;
80
+ y += blockHeight;
81
+ paragraphY += blockHeight;
82
+ unsafeRanges.push({
83
+ top,
84
+ bottom: y
85
+ });
86
+ bottoms.push(y);
87
+ }
88
+ }
89
+ }
90
+ return {
91
+ bottoms,
92
+ unsafeRanges
93
+ };
94
+ }
95
+ /** Build break geometry for a table from its block + measure. */
96
+ function buildTableRowBreakInfo(block, measure) {
97
+ const rowCount = measure.rows.length;
98
+ const rowTops = [];
99
+ let acc = 0;
100
+ for (let r = 0; r < rowCount; r++) {
101
+ rowTops.push(acc);
102
+ acc += measure.rows[r]?.height ?? 0;
103
+ }
104
+ rowTops.push(acc);
105
+ const breakOffsets = [];
106
+ for (let r = 0; r < rowCount; r++) {
107
+ const rowHeight = measure.rows[r]?.height ?? 0;
108
+ const offsets = /* @__PURE__ */ new Set();
109
+ offsets.add(rowHeight);
110
+ const sourceCells = block.rows[r]?.cells ?? [];
111
+ const measuredCells = measure.rows[r]?.cells ?? [];
112
+ const cellGeometries = [];
113
+ for (let c = 0; c < measuredCells.length; c++) {
114
+ const measuredCell = measuredCells[c];
115
+ if (!measuredCell) continue;
116
+ const sourceCell = sourceCells[c];
117
+ const geometry = shiftCellGeometry(cellBreakGeometry(sourceCell, measuredCell), getVerticalAlignmentOffset(sourceCell, measuredCell, rowHeight));
118
+ cellGeometries.push(geometry);
119
+ for (const b of geometry.bottoms) if (b > 0 && b < rowHeight) offsets.add(b);
120
+ }
121
+ const safeOffsets = [...offsets].filter((offset) => offset === rowHeight || cellGeometries.every((geometry) => geometry.unsafeRanges.every((range) => !isInsideRange(offset, range))));
122
+ breakOffsets.push(safeOffsets.sort((a, b) => a - b));
123
+ }
124
+ return {
125
+ rowTops,
126
+ breakOffsets
127
+ };
128
+ }
129
+ /**
130
+ * Given a row and how much of it has already been placed (`fromOffset`), return
131
+ * how many more px can be placed ending on a whole line, without exceeding
132
+ * `maxSlice`. Returns 0 when not even the first line fits.
133
+ */
134
+ function snapRowBreak(info, rowIndex, fromOffset, maxSlice) {
135
+ const offsets = info.breakOffsets[rowIndex];
136
+ if (!offsets || offsets.length === 0) return 0;
137
+ const limit = fromOffset + maxSlice;
138
+ let best = 0;
139
+ for (const off of offsets) {
140
+ if (off <= fromOffset) continue;
141
+ if (off <= limit) best = off - fromOffset;
142
+ else break;
143
+ }
144
+ return best;
145
+ }
146
+ //#endregion
147
+ export { buildTableRowBreakInfo, snapRowBreak };
@@ -0,0 +1,50 @@
1
+ import { ImageRunPosition } from "./types.js";
2
+
3
+ //#region src/layout-engine/textBoxFlow.d.ts
4
+ type VerticalRelativeTo = NonNullable<ImageRunPosition["vertical"]>["relativeTo"];
5
+ /**
6
+ * `true` when a vertical anchor pins the box to a fixed position on the page
7
+ * (page body, text margin, or a margin strip) rather than to the surrounding
8
+ * text flow. A `topAndBottom` box with such an anchor reserves a full-width
9
+ * band; `paragraph`/`line` anchors keep folio's in-flow handling. Exhaustive
10
+ * over the OOXML `ST_RelFromV` set so a new relativeFrom value forces a decision
11
+ * here instead of silently falling through. eigenpal #694.
12
+ */
13
+ declare function isPageFrameRelativeAnchor(relativeTo: VerticalRelativeTo): boolean;
14
+ /** Page geometry needed to resolve a band box's vertical anchor. */
15
+ type BandVerticalGeometry = {
16
+ pageHeight: number;
17
+ marginTop: number;
18
+ marginBottom: number;
19
+ boxHeight: number;
20
+ };
21
+ /**
22
+ * Content-area top Y (px) of a `topAndBottom` band box's reserved band, resolved
23
+ * from its OOXML vertical anchor. Shared by the measure pass
24
+ * (`extractFloatingZones`) and the layout pass (`layoutTextBox`) so the reserved
25
+ * band and the painted box land at the same Y. Within the anchor's frame an
26
+ * explicit `posOffset` wins, then `align` (top/center/bottom/inside/outside);
27
+ * otherwise the box sits at the frame top. The result is content-relative
28
+ * (0 = content top), so a page/margin-strip frame is converted by subtracting
29
+ * the top margin. Ported from eigenpal #694.
30
+ */
31
+ declare function bandTopContentY(vertical: ImageRunPosition["vertical"], geometry: BandVerticalGeometry): number;
32
+ /** Page geometry needed to resolve a band box's horizontal anchor. */
33
+ type BandHorizontalGeometry = {
34
+ pageWidth: number;
35
+ marginLeft: number;
36
+ marginRight: number;
37
+ boxWidth: number;
38
+ };
39
+ /**
40
+ * Page-absolute left X (px) of a `topAndBottom` band box, resolved from its
41
+ * OOXML horizontal anchor. Picks the anchor's frame (page, content box, or a
42
+ * left/right margin strip), then within it an explicit `posOffset` wins, else
43
+ * `align` (left/center/right/inside/outside); otherwise the box sits at the
44
+ * frame's left edge. The band itself is always full-width, so this only shifts
45
+ * where the box paints, not the reserved vertical space. Ported from eigenpal
46
+ * #694.
47
+ */
48
+ declare function bandFragmentX(horizontal: ImageRunPosition["horizontal"], geometry: BandHorizontalGeometry): number;
49
+ //#endregion
50
+ export { BandHorizontalGeometry, BandVerticalGeometry, bandFragmentX, bandTopContentY, isPageFrameRelativeAnchor };
@@ -0,0 +1,160 @@
1
+ import { emuToPixels } from "../utils/units.js";
2
+ //#region src/layout-engine/textBoxFlow.ts
3
+ /**
4
+ * Floating text-box band geometry. Ported from eigenpal docx-editor #474/#694.
5
+ *
6
+ * The floating-box predicates (`isFloatingTextBoxBlock`,
7
+ * `floatingTextBoxWrapsText`, `floatingTextBoxReservesBand`) and the
8
+ * `TextBoxFlowAttrs` type are pure data and live in the model layer
9
+ * (`./types`); this module holds the page-anchor band geometry that depends on
10
+ * pixel/EMU unit conversion.
11
+ */
12
+ /**
13
+ * `true` when a vertical anchor pins the box to a fixed position on the page
14
+ * (page body, text margin, or a margin strip) rather than to the surrounding
15
+ * text flow. A `topAndBottom` box with such an anchor reserves a full-width
16
+ * band; `paragraph`/`line` anchors keep folio's in-flow handling. Exhaustive
17
+ * over the OOXML `ST_RelFromV` set so a new relativeFrom value forces a decision
18
+ * here instead of silently falling through. eigenpal #694.
19
+ */
20
+ function isPageFrameRelativeAnchor(relativeTo) {
21
+ switch (relativeTo) {
22
+ case "page":
23
+ case "margin":
24
+ case "topMargin":
25
+ case "bottomMargin":
26
+ case "insideMargin":
27
+ case "outsideMargin": return true;
28
+ case "paragraph":
29
+ case "line":
30
+ case void 0: return false;
31
+ default: return false;
32
+ }
33
+ }
34
+ /**
35
+ * Page-absolute `[top, bottom]` (px) of the frame a vertical anchor positions
36
+ * within. `insideMargin`/`outsideMargin` map to the top/bottom margin strips
37
+ * (vertical page parity is not modelled); flow-relative anchors fall back to the
38
+ * content box, which is also where a page-pinned band with no usable anchor
39
+ * sits. eigenpal #694.
40
+ */
41
+ function bandVerticalFrame(relativeTo, geometry) {
42
+ const { pageHeight, marginTop, marginBottom } = geometry;
43
+ switch (relativeTo) {
44
+ case "page": return {
45
+ top: 0,
46
+ bottom: pageHeight
47
+ };
48
+ case "topMargin":
49
+ case "insideMargin": return {
50
+ top: 0,
51
+ bottom: marginTop
52
+ };
53
+ case "bottomMargin":
54
+ case "outsideMargin": return {
55
+ top: pageHeight - marginBottom,
56
+ bottom: pageHeight
57
+ };
58
+ case "margin":
59
+ case "paragraph":
60
+ case "line":
61
+ case void 0: return {
62
+ top: marginTop,
63
+ bottom: pageHeight - marginBottom
64
+ };
65
+ default: return {
66
+ top: marginTop,
67
+ bottom: pageHeight - marginBottom
68
+ };
69
+ }
70
+ }
71
+ /** Page-absolute top Y (px) of the box within its frame for a bare `align`. */
72
+ function alignedFrameTop(align, frame, boxHeight) {
73
+ switch (align) {
74
+ case "center": return frame.top + (frame.bottom - frame.top - boxHeight) / 2;
75
+ case "bottom":
76
+ case "outside": return frame.bottom - boxHeight;
77
+ case "top":
78
+ case "inside":
79
+ case void 0: return frame.top;
80
+ default: return frame.top;
81
+ }
82
+ }
83
+ /**
84
+ * Content-area top Y (px) of a `topAndBottom` band box's reserved band, resolved
85
+ * from its OOXML vertical anchor. Shared by the measure pass
86
+ * (`extractFloatingZones`) and the layout pass (`layoutTextBox`) so the reserved
87
+ * band and the painted box land at the same Y. Within the anchor's frame an
88
+ * explicit `posOffset` wins, then `align` (top/center/bottom/inside/outside);
89
+ * otherwise the box sits at the frame top. The result is content-relative
90
+ * (0 = content top), so a page/margin-strip frame is converted by subtracting
91
+ * the top margin. Ported from eigenpal #694.
92
+ */
93
+ function bandTopContentY(vertical, geometry) {
94
+ const frame = bandVerticalFrame(vertical?.relativeTo, geometry);
95
+ return (vertical?.posOffset !== void 0 ? frame.top + emuToPixels(vertical.posOffset) : alignedFrameTop(vertical?.align, frame, geometry.boxHeight)) - geometry.marginTop;
96
+ }
97
+ /**
98
+ * Page-absolute `[left, right]` (px) of the frame a horizontal anchor positions
99
+ * within. `inside`/`outsideMargin` map to the left/right margin strips (page
100
+ * parity is not modelled); `column`/`character` fall back to the content box
101
+ * (folio has no per-column/character X here). eigenpal #694.
102
+ */
103
+ function bandHorizontalFrame(relativeTo, geometry) {
104
+ const { pageWidth, marginLeft, marginRight } = geometry;
105
+ switch (relativeTo) {
106
+ case "page": return {
107
+ left: 0,
108
+ right: pageWidth
109
+ };
110
+ case "leftMargin":
111
+ case "insideMargin": return {
112
+ left: 0,
113
+ right: marginLeft
114
+ };
115
+ case "rightMargin":
116
+ case "outsideMargin": return {
117
+ left: pageWidth - marginRight,
118
+ right: pageWidth
119
+ };
120
+ case "margin":
121
+ case "column":
122
+ case "character":
123
+ case void 0: return {
124
+ left: marginLeft,
125
+ right: pageWidth - marginRight
126
+ };
127
+ default: return {
128
+ left: marginLeft,
129
+ right: pageWidth - marginRight
130
+ };
131
+ }
132
+ }
133
+ /** Page-absolute left X (px) of the box within its frame for a bare `align`. */
134
+ function alignedFrameLeft(align, frame, boxWidth) {
135
+ switch (align) {
136
+ case "center": return frame.left + (frame.right - frame.left - boxWidth) / 2;
137
+ case "right":
138
+ case "outside": return frame.right - boxWidth;
139
+ case "left":
140
+ case "inside":
141
+ case void 0: return frame.left;
142
+ default: return frame.left;
143
+ }
144
+ }
145
+ /**
146
+ * Page-absolute left X (px) of a `topAndBottom` band box, resolved from its
147
+ * OOXML horizontal anchor. Picks the anchor's frame (page, content box, or a
148
+ * left/right margin strip), then within it an explicit `posOffset` wins, else
149
+ * `align` (left/center/right/inside/outside); otherwise the box sits at the
150
+ * frame's left edge. The band itself is always full-width, so this only shifts
151
+ * where the box paints, not the reserved vertical space. Ported from eigenpal
152
+ * #694.
153
+ */
154
+ function bandFragmentX(horizontal, geometry) {
155
+ const frame = bandHorizontalFrame(horizontal?.relativeTo, geometry);
156
+ if (horizontal?.posOffset !== void 0) return frame.left + emuToPixels(horizontal.posOffset);
157
+ return alignedFrameLeft(horizontal?.align, frame, geometry.boxWidth);
158
+ }
159
+ //#endregion
160
+ export { bandFragmentX, bandTopContentY, isPageFrameRelativeAnchor };