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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (683) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE.md +29 -0
  3. package/README.md +41 -0
  4. package/dist/_virtual/_rolldown/runtime.js +13 -0
  5. package/dist/ai-edits/apply.d.ts +35 -0
  6. package/dist/ai-edits/apply.js +683 -0
  7. package/dist/ai-edits/clean-text.d.ts +28 -0
  8. package/dist/ai-edits/clean-text.js +23 -0
  9. package/dist/ai-edits/headless.d.ts +225 -0
  10. package/dist/ai-edits/headless.js +513 -0
  11. package/dist/ai-edits/index.d.ts +6 -0
  12. package/dist/ai-edits/index.js +5 -0
  13. package/dist/ai-edits/inline-emphasis.d.ts +38 -0
  14. package/dist/ai-edits/inline-emphasis.js +78 -0
  15. package/dist/ai-edits/snapshot.d.ts +9 -0
  16. package/dist/ai-edits/snapshot.js +195 -0
  17. package/dist/ai-edits/types.d.ts +156 -0
  18. package/dist/ai-edits/types.js +0 -0
  19. package/dist/ai-edits/word-diff.d.ts +20 -0
  20. package/dist/ai-edits/word-diff.js +77 -0
  21. package/dist/ai-suggestions/apply.d.ts +17 -0
  22. package/dist/ai-suggestions/apply.js +64 -0
  23. package/dist/ai-suggestions/conflict.d.ts +22 -0
  24. package/dist/ai-suggestions/conflict.js +67 -0
  25. package/dist/ai-suggestions/text-positions.d.ts +21 -0
  26. package/dist/ai-suggestions/text-positions.js +48 -0
  27. package/dist/ai-suggestions/types.d.ts +199 -0
  28. package/dist/ai-suggestions/types.js +59 -0
  29. package/dist/content-controls/errors.d.ts +52 -0
  30. package/dist/content-controls/errors.js +36 -0
  31. package/dist/content-controls/findContentControls.d.ts +55 -0
  32. package/dist/content-controls/findContentControls.js +75 -0
  33. package/dist/content-controls/index.d.ts +4 -0
  34. package/dist/content-controls/index.js +4 -0
  35. package/dist/content-controls/mutateContentControls.d.ts +51 -0
  36. package/dist/content-controls/mutateContentControls.js +377 -0
  37. package/dist/controller/folioEditor.d.ts +21 -0
  38. package/dist/controller/folioEditor.js +29 -0
  39. package/dist/controller/folioEditorEvents.d.ts +23 -0
  40. package/dist/controller/folioEditorEvents.js +24 -0
  41. package/dist/controller/hiddenEditorApi.d.ts +35 -0
  42. package/dist/controller/hiddenEditorApi.js +112 -0
  43. package/dist/controller/hiddenEditorManager.d.ts +93 -0
  44. package/dist/controller/hiddenEditorManager.js +308 -0
  45. package/dist/controller/layoutPipeline.d.ts +63 -0
  46. package/dist/controller/layoutPipeline.js +406 -0
  47. package/dist/controller/layoutScheduler.d.ts +41 -0
  48. package/dist/controller/layoutScheduler.js +59 -0
  49. package/dist/controller/layoutSession.d.ts +24 -0
  50. package/dist/controller/layoutSession.js +13 -0
  51. package/dist/docx/blockContentParser.d.ts +13 -0
  52. package/dist/docx/blockContentParser.js +289 -0
  53. package/dist/docx/bookmarkParser.d.ts +178 -0
  54. package/dist/docx/bookmarkParser.js +246 -0
  55. package/dist/docx/bookmarkPlacement.d.ts +10 -0
  56. package/dist/docx/bookmarkPlacement.js +50 -0
  57. package/dist/docx/bulletMarkers.d.ts +4 -0
  58. package/dist/docx/bulletMarkers.js +42 -0
  59. package/dist/docx/commentParser.d.ts +34 -0
  60. package/dist/docx/commentParser.js +127 -0
  61. package/dist/docx/commentReferenceNormalization.d.ts +25 -0
  62. package/dist/docx/commentReferenceNormalization.js +97 -0
  63. package/dist/docx/commentReplyMarkers.d.ts +20 -0
  64. package/dist/docx/commentReplyMarkers.js +123 -0
  65. package/dist/docx/compatibility.d.ts +12 -0
  66. package/dist/docx/compatibility.js +77 -0
  67. package/dist/docx/documentParser.d.ts +65 -0
  68. package/dist/docx/documentParser.js +209 -0
  69. package/dist/docx/drawingUtils.d.ts +56 -0
  70. package/dist/docx/drawingUtils.js +305 -0
  71. package/dist/docx/fieldParser.d.ts +228 -0
  72. package/dist/docx/fieldParser.js +559 -0
  73. package/dist/docx/footnoteParser.d.ts +109 -0
  74. package/dist/docx/footnoteParser.js +270 -0
  75. package/dist/docx/headerFooterParser.d.ts +119 -0
  76. package/dist/docx/headerFooterParser.js +266 -0
  77. package/dist/docx/headerFooterRefParser.d.ts +22 -0
  78. package/dist/docx/headerFooterRefParser.js +52 -0
  79. package/dist/docx/headerFooterReferenceNormalization.d.ts +19 -0
  80. package/dist/docx/headerFooterReferenceNormalization.js +64 -0
  81. package/dist/docx/hyperlinkParser.d.ts +108 -0
  82. package/dist/docx/hyperlinkParser.js +230 -0
  83. package/dist/docx/imageParser.d.ts +93 -0
  84. package/dist/docx/imageParser.js +522 -0
  85. package/dist/docx/mathToMathml.d.ts +15 -0
  86. package/dist/docx/mathToMathml.js +357 -0
  87. package/dist/docx/modelValidation.d.ts +13 -0
  88. package/dist/docx/modelValidation.js +21 -0
  89. package/dist/docx/normalizeBaseDirection.d.ts +12 -0
  90. package/dist/docx/normalizeBaseDirection.js +81 -0
  91. package/dist/docx/notePropertiesParser.d.ts +16 -0
  92. package/dist/docx/notePropertiesParser.js +99 -0
  93. package/dist/docx/numberingParser.d.ts +86 -0
  94. package/dist/docx/numberingParser.js +735 -0
  95. package/dist/docx/numberingReferenceNormalization.d.ts +25 -0
  96. package/dist/docx/numberingReferenceNormalization.js +22 -0
  97. package/dist/docx/paragraphParser.d.ts +86 -0
  98. package/dist/docx/paragraphParser.js +1132 -0
  99. package/dist/docx/paragraphTraversal.d.ts +19 -0
  100. package/dist/docx/paragraphTraversal.js +76 -0
  101. package/dist/docx/parser.d.ts +67 -0
  102. package/dist/docx/parser.js +391 -0
  103. package/dist/docx/parserEnums.d.ts +45 -0
  104. package/dist/docx/parserEnums.js +70 -0
  105. package/dist/docx/relsParser.d.ts +160 -0
  106. package/dist/docx/relsParser.js +235 -0
  107. package/dist/docx/replyToComment.d.ts +29 -0
  108. package/dist/docx/replyToComment.js +73 -0
  109. package/dist/docx/rezip.d.ts +166 -0
  110. package/dist/docx/rezip.js +1194 -0
  111. package/dist/docx/runConsolidator.d.ts +57 -0
  112. package/dist/docx/runConsolidator.js +224 -0
  113. package/dist/docx/runParser.d.ts +78 -0
  114. package/dist/docx/runParser.js +661 -0
  115. package/dist/docx/sdtProperties.d.ts +15 -0
  116. package/dist/docx/sdtProperties.js +290 -0
  117. package/dist/docx/sdtPropertiesPatch.d.ts +16 -0
  118. package/dist/docx/sdtPropertiesPatch.js +144 -0
  119. package/dist/docx/sectionParser.d.ts +95 -0
  120. package/dist/docx/sectionParser.js +534 -0
  121. package/dist/docx/selectiveSave.d.ts +25 -0
  122. package/dist/docx/selectiveSave.js +247 -0
  123. package/dist/docx/selectiveSaveFlags.d.ts +33 -0
  124. package/dist/docx/selectiveSaveFlags.js +11 -0
  125. package/dist/docx/selectiveSaveTripwire.d.ts +33 -0
  126. package/dist/docx/selectiveSaveTripwire.js +79 -0
  127. package/dist/docx/selectiveXmlPatch.d.ts +103 -0
  128. package/dist/docx/selectiveXmlPatch.js +493 -0
  129. package/dist/docx/serializer/blockSdtSerializer.d.ts +6 -0
  130. package/dist/docx/serializer/blockSdtSerializer.js +88 -0
  131. package/dist/docx/serializer/borderSerializer.d.ts +25 -0
  132. package/dist/docx/serializer/borderSerializer.js +44 -0
  133. package/dist/docx/serializer/commentSerializer.d.ts +31 -0
  134. package/dist/docx/serializer/commentSerializer.js +184 -0
  135. package/dist/docx/serializer/documentSerializer.d.ts +65 -0
  136. package/dist/docx/serializer/documentSerializer.js +199 -0
  137. package/dist/docx/serializer/headerFooterSerializer.d.ts +12 -0
  138. package/dist/docx/serializer/headerFooterSerializer.js +84 -0
  139. package/dist/docx/serializer/noteSerializer.d.ts +19 -0
  140. package/dist/docx/serializer/noteSerializer.js +70 -0
  141. package/dist/docx/serializer/numberingSerializer.d.ts +12 -0
  142. package/dist/docx/serializer/numberingSerializer.js +93 -0
  143. package/dist/docx/serializer/paragraphSerializer.d.ts +48 -0
  144. package/dist/docx/serializer/paragraphSerializer.js +559 -0
  145. package/dist/docx/serializer/runSerializer.d.ts +56 -0
  146. package/dist/docx/serializer/runSerializer.js +621 -0
  147. package/dist/docx/serializer/sectionPropertiesSerializer.d.ts +6 -0
  148. package/dist/docx/serializer/sectionPropertiesSerializer.js +187 -0
  149. package/dist/docx/serializer/tableSerializer.d.ts +79 -0
  150. package/dist/docx/serializer/tableSerializer.js +422 -0
  151. package/dist/docx/serializer/xmlUtils.d.ts +20 -0
  152. package/dist/docx/serializer/xmlUtils.js +25 -0
  153. package/dist/docx/settingsParser.d.ts +8 -0
  154. package/dist/docx/settingsParser.js +36 -0
  155. package/dist/docx/shapeParser.d.ts +20 -0
  156. package/dist/docx/shapeParser.js +272 -0
  157. package/dist/docx/styleParser.d.ts +50 -0
  158. package/dist/docx/styleParser.js +905 -0
  159. package/dist/docx/tableParser.d.ts +202 -0
  160. package/dist/docx/tableParser.js +811 -0
  161. package/dist/docx/textBoxParser.d.ts +117 -0
  162. package/dist/docx/textBoxParser.js +262 -0
  163. package/dist/docx/themeParser.d.ts +77 -0
  164. package/dist/docx/themeParser.js +330 -0
  165. package/dist/docx/trackedMoveRangeNormalization.d.ts +22 -0
  166. package/dist/docx/trackedMoveRangeNormalization.js +100 -0
  167. package/dist/docx/unzip.d.ts +118 -0
  168. package/dist/docx/unzip.js +383 -0
  169. package/dist/docx/vmlImageParser.d.ts +16 -0
  170. package/dist/docx/vmlImageParser.js +100 -0
  171. package/dist/docx/watermarkParser.d.ts +45 -0
  172. package/dist/docx/watermarkParser.js +348 -0
  173. package/dist/docx/wrapTypes.d.ts +29 -0
  174. package/dist/docx/wrapTypes.js +48 -0
  175. package/dist/docx/xmlParser.d.ts +297 -0
  176. package/dist/docx/xmlParser.js +527 -0
  177. package/dist/fields/bookmarkPages.d.ts +13 -0
  178. package/dist/fields/bookmarkPages.js +66 -0
  179. package/dist/fields/bookmarkText.d.ts +16 -0
  180. package/dist/fields/bookmarkText.js +61 -0
  181. package/dist/fields/evaluateField.d.ts +23 -0
  182. package/dist/fields/evaluateField.js +77 -0
  183. package/dist/fields/fieldContext.d.ts +21 -0
  184. package/dist/fields/fieldContext.js +0 -0
  185. package/dist/fields/resolveFieldValues.d.ts +44 -0
  186. package/dist/fields/resolveFieldValues.js +204 -0
  187. package/dist/fields/sectionPageCounts.d.ts +11 -0
  188. package/dist/fields/sectionPageCounts.js +16 -0
  189. package/dist/fields/seqValues.d.ts +14 -0
  190. package/dist/fields/seqValues.js +36 -0
  191. package/dist/fonts/embeddedFontTable.d.ts +42 -0
  192. package/dist/fonts/embeddedFontTable.js +80 -0
  193. package/dist/fonts/embeddedFonts.d.ts +46 -0
  194. package/dist/fonts/embeddedFonts.js +112 -0
  195. package/dist/fonts/fontDeobfuscation.d.ts +30 -0
  196. package/dist/fonts/fontDeobfuscation.js +57 -0
  197. package/dist/index.d.ts +28 -0
  198. package/dist/index.js +23 -0
  199. package/dist/layout-bridge/convert/footnoteLayout.d.ts +57 -0
  200. package/dist/layout-bridge/convert/footnoteLayout.js +316 -0
  201. package/dist/layout-bridge/convert/headerFooterLayout.d.ts +74 -0
  202. package/dist/layout-bridge/convert/headerFooterLayout.js +432 -0
  203. package/dist/layout-bridge/convert/templatePreviewFlow.d.ts +36 -0
  204. package/dist/layout-bridge/convert/templatePreviewFlow.js +176 -0
  205. package/dist/layout-bridge/convert/toFlowBlocks.d.ts +65 -0
  206. package/dist/layout-bridge/convert/toFlowBlocks.js +1309 -0
  207. package/dist/layout-bridge/convert/wrapEditorViewAsSurface.d.ts +17 -0
  208. package/dist/layout-bridge/convert/wrapEditorViewAsSurface.js +36 -0
  209. package/dist/layout-bridge/dom/clickToPositionDom.d.ts +66 -0
  210. package/dist/layout-bridge/dom/clickToPositionDom.js +304 -0
  211. package/dist/layout-bridge/dom/findBodyPmSpans.d.ts +7 -0
  212. package/dist/layout-bridge/dom/findBodyPmSpans.js +17 -0
  213. package/dist/layout-bridge/dom/findHfPmSpans.d.ts +62 -0
  214. package/dist/layout-bridge/dom/findHfPmSpans.js +197 -0
  215. package/dist/layout-bridge/engine/clickToPosition.d.ts +66 -0
  216. package/dist/layout-bridge/engine/clickToPosition.js +403 -0
  217. package/dist/layout-bridge/engine/hitTest.d.ts +135 -0
  218. package/dist/layout-bridge/engine/hitTest.js +375 -0
  219. package/dist/layout-bridge/engine/measuring/index.d.ts +10 -0
  220. package/dist/layout-bridge/engine/measuring/index.js +9 -0
  221. package/dist/layout-bridge/engine/selectionRects.d.ts +59 -0
  222. package/dist/layout-bridge/engine/selectionRects.js +485 -0
  223. package/dist/layout-bridge/engine/tableWidthUtils.d.ts +7 -0
  224. package/dist/layout-bridge/engine/tableWidthUtils.js +25 -0
  225. package/dist/layout-engine/index.d.ts +44 -0
  226. package/dist/layout-engine/index.js +691 -0
  227. package/dist/layout-engine/keep-together.d.ts +43 -0
  228. package/dist/layout-engine/keep-together.js +98 -0
  229. package/dist/layout-engine/layoutInstrumentation.d.ts +50 -0
  230. package/dist/layout-engine/layoutInstrumentation.js +43 -0
  231. package/dist/layout-engine/lineFlow.d.ts +8 -0
  232. package/dist/layout-engine/lineFlow.js +17 -0
  233. package/dist/layout-engine/measure/cache.d.ts +93 -0
  234. package/dist/layout-engine/measure/cache.js +245 -0
  235. package/dist/layout-engine/measure/clampFloatingWrapMargins.d.ts +20 -0
  236. package/dist/layout-engine/measure/clampFloatingWrapMargins.js +29 -0
  237. package/dist/layout-engine/measure/featureFlags.d.ts +44 -0
  238. package/dist/layout-engine/measure/featureFlags.js +19 -0
  239. package/dist/layout-engine/measure/floatingZones.d.ts +89 -0
  240. package/dist/layout-engine/measure/floatingZones.js +152 -0
  241. package/dist/layout-engine/measure/font-metrics.worker.d.ts +17 -0
  242. package/dist/layout-engine/measure/font-metrics.worker.js +104 -0
  243. package/dist/layout-engine/measure/index.d.ts +9 -0
  244. package/dist/layout-engine/measure/index.js +8 -0
  245. package/dist/layout-engine/measure/listMarkerWidth.d.ts +40 -0
  246. package/dist/layout-engine/measure/listMarkerWidth.js +76 -0
  247. package/dist/layout-engine/measure/measureBlocks.d.ts +25 -0
  248. package/dist/layout-engine/measure/measureBlocks.js +450 -0
  249. package/dist/layout-engine/measure/measureContainer.d.ts +24 -0
  250. package/dist/layout-engine/measure/measureContainer.js +280 -0
  251. package/dist/layout-engine/measure/measureHelpers.d.ts +82 -0
  252. package/dist/layout-engine/measure/measureHelpers.js +156 -0
  253. package/dist/layout-engine/measure/measureParagraph.d.ts +61 -0
  254. package/dist/layout-engine/measure/measureParagraph.js +724 -0
  255. package/dist/layout-engine/measure/measureProvider.d.ts +23 -0
  256. package/dist/layout-engine/measure/measureProvider.js +35 -0
  257. package/dist/layout-engine/measure/measureTypes.d.ts +61 -0
  258. package/dist/layout-engine/measure/measureTypes.js +0 -0
  259. package/dist/layout-engine/measure/measureWorker.d.ts +54 -0
  260. package/dist/layout-engine/measure/measureWorker.js +249 -0
  261. package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +88 -0
  262. package/dist/layout-engine/measure/measureWorkerProtocol.js +20 -0
  263. package/dist/layout-engine/measure/tableCellFloating.d.ts +26 -0
  264. package/dist/layout-engine/measure/tableCellFloating.js +99 -0
  265. package/dist/layout-engine/paginator.d.ts +84 -0
  266. package/dist/layout-engine/paginator.js +348 -0
  267. package/dist/layout-engine/paragraphFragmentRange.d.ts +9 -0
  268. package/dist/layout-engine/paragraphFragmentRange.js +40 -0
  269. package/dist/layout-engine/section-breaks.d.ts +78 -0
  270. package/dist/layout-engine/section-breaks.js +182 -0
  271. package/dist/layout-engine/tableRowBreak.d.ts +23 -0
  272. package/dist/layout-engine/tableRowBreak.js +147 -0
  273. package/dist/layout-engine/textBoxFlow.d.ts +50 -0
  274. package/dist/layout-engine/textBoxFlow.js +160 -0
  275. package/dist/layout-engine/types.d.ts +1031 -0
  276. package/dist/layout-engine/types.js +100 -0
  277. package/dist/layout-painter/documentColors.d.ts +4 -0
  278. package/dist/layout-painter/documentColors.js +40 -0
  279. package/dist/layout-painter/index.d.ts +110 -0
  280. package/dist/layout-painter/index.js +182 -0
  281. package/dist/layout-painter/registry/modules/image.d.ts +6 -0
  282. package/dist/layout-painter/registry/modules/image.js +17 -0
  283. package/dist/layout-painter/registry/modules/paragraph.d.ts +6 -0
  284. package/dist/layout-painter/registry/modules/paragraph.js +18 -0
  285. package/dist/layout-painter/registry/modules/table.d.ts +6 -0
  286. package/dist/layout-painter/registry/modules/table.js +16 -0
  287. package/dist/layout-painter/registry/modules/textBox.d.ts +6 -0
  288. package/dist/layout-painter/registry/modules/textBox.js +13 -0
  289. package/dist/layout-painter/registry/modules.d.ts +6 -0
  290. package/dist/layout-painter/registry/modules.js +26 -0
  291. package/dist/layout-painter/registry/registry.d.ts +24 -0
  292. package/dist/layout-painter/registry/registry.js +53 -0
  293. package/dist/layout-painter/registry/types.d.ts +61 -0
  294. package/dist/layout-painter/registry/types.js +0 -0
  295. package/dist/layout-painter/renderFragment.d.ts +32 -0
  296. package/dist/layout-painter/renderFragment.js +114 -0
  297. package/dist/layout-painter/renderImage.d.ts +88 -0
  298. package/dist/layout-painter/renderImage.js +130 -0
  299. package/dist/layout-painter/renderPage.d.ts +264 -0
  300. package/dist/layout-painter/renderPage.js +1795 -0
  301. package/dist/layout-painter/renderParagraph.d.ts +93 -0
  302. package/dist/layout-painter/renderParagraph.js +1300 -0
  303. package/dist/layout-painter/renderTable.d.ts +36 -0
  304. package/dist/layout-painter/renderTable.js +432 -0
  305. package/dist/layout-painter/renderTextBox.d.ts +22 -0
  306. package/dist/layout-painter/renderTextBox.js +67 -0
  307. package/dist/layout-painter/renderUtils.d.ts +42 -0
  308. package/dist/layout-painter/renderUtils.js +30 -0
  309. package/dist/layout-painter/renderWatermark.d.ts +16 -0
  310. package/dist/layout-painter/renderWatermark.js +61 -0
  311. package/dist/layout-painter/sdtBoundary.d.ts +6 -0
  312. package/dist/layout-painter/sdtBoundary.js +28 -0
  313. package/dist/managers/ContextMenuManager.d.ts +28 -0
  314. package/dist/managers/ContextMenuManager.js +48 -0
  315. package/dist/managers/DocumentLoaderManager.d.ts +47 -0
  316. package/dist/managers/DocumentLoaderManager.js +69 -0
  317. package/dist/managers/EditorModeManager.d.ts +28 -0
  318. package/dist/managers/EditorModeManager.js +50 -0
  319. package/dist/managers/ErrorManager.d.ts +26 -0
  320. package/dist/managers/ErrorManager.js +85 -0
  321. package/dist/managers/FindReplaceManager.d.ts +54 -0
  322. package/dist/managers/FindReplaceManager.js +104 -0
  323. package/dist/managers/HistoryManager.d.ts +92 -0
  324. package/dist/managers/HistoryManager.js +193 -0
  325. package/dist/managers/Subscribable.d.ts +34 -0
  326. package/dist/managers/Subscribable.js +46 -0
  327. package/dist/managers/TableSelectionManager.d.ts +74 -0
  328. package/dist/managers/TableSelectionManager.js +225 -0
  329. package/dist/managers/editorShortcuts.d.ts +42 -0
  330. package/dist/managers/editorShortcuts.js +60 -0
  331. package/dist/managers/types.d.ts +41 -0
  332. package/dist/managers/types.js +0 -0
  333. package/dist/markdown/annotations.d.ts +14 -0
  334. package/dist/markdown/annotations.js +42 -0
  335. package/dist/markdown/escape.d.ts +36 -0
  336. package/dist/markdown/escape.js +59 -0
  337. package/dist/markdown/fromMarkdown.d.ts +11 -0
  338. package/dist/markdown/fromMarkdown.js +223 -0
  339. package/dist/markdown/headings.d.ts +13 -0
  340. package/dist/markdown/headings.js +20 -0
  341. package/dist/markdown/images.d.ts +13 -0
  342. package/dist/markdown/images.js +63 -0
  343. package/dist/markdown/index.d.ts +18 -0
  344. package/dist/markdown/index.js +33 -0
  345. package/dist/markdown/internals.d.ts +15 -0
  346. package/dist/markdown/internals.js +35 -0
  347. package/dist/markdown/renderBlock.d.ts +7 -0
  348. package/dist/markdown/renderBlock.js +68 -0
  349. package/dist/markdown/renderParagraph.d.ts +11 -0
  350. package/dist/markdown/renderParagraph.js +64 -0
  351. package/dist/markdown/renderRuns.d.ts +11 -0
  352. package/dist/markdown/renderRuns.js +265 -0
  353. package/dist/markdown/renderTable.d.ts +8 -0
  354. package/dist/markdown/renderTable.js +229 -0
  355. package/dist/markdown/trailers.d.ts +13 -0
  356. package/dist/markdown/trailers.js +54 -0
  357. package/dist/markdown/types.d.ts +118 -0
  358. package/dist/markdown/types.js +0 -0
  359. package/dist/model.d.ts +13 -0
  360. package/dist/model.js +4 -0
  361. package/dist/paged-layout/LayoutSelectionGate.d.ts +80 -0
  362. package/dist/paged-layout/LayoutSelectionGate.js +131 -0
  363. package/dist/paged-layout/headerFooterMargins.d.ts +73 -0
  364. package/dist/paged-layout/headerFooterMargins.js +120 -0
  365. package/dist/paged-layout/hiddenEditorScroll.d.ts +4 -0
  366. package/dist/paged-layout/hiddenEditorScroll.js +4 -0
  367. package/dist/paged-layout/incrementalMeasure.d.ts +33 -0
  368. package/dist/paged-layout/incrementalMeasure.js +56 -0
  369. package/dist/paged-layout/rangeProjection.d.ts +51 -0
  370. package/dist/paged-layout/rangeProjection.js +153 -0
  371. package/dist/paged-layout/readOnlyEditAttempt.d.ts +5 -0
  372. package/dist/paged-layout/readOnlyEditAttempt.js +22 -0
  373. package/dist/paged-layout/scrollNavigation.d.ts +23 -0
  374. package/dist/paged-layout/scrollNavigation.js +31 -0
  375. package/dist/paged-layout/scrollPageInfo.d.ts +41 -0
  376. package/dist/paged-layout/scrollPageInfo.js +34 -0
  377. package/dist/paged-layout/scrollToPmPosition.d.ts +17 -0
  378. package/dist/paged-layout/scrollToPmPosition.js +95 -0
  379. package/dist/paged-layout/sectionBlockWidths.d.ts +35 -0
  380. package/dist/paged-layout/sectionBlockWidths.js +52 -0
  381. package/dist/paged-layout/sectionGeometry.d.ts +21 -0
  382. package/dist/paged-layout/sectionGeometry.js +36 -0
  383. package/dist/paged-layout/selectionViewportRect.d.ts +29 -0
  384. package/dist/paged-layout/selectionViewportRect.js +55 -0
  385. package/dist/paged-layout/tableColumnResize.d.ts +19 -0
  386. package/dist/paged-layout/tableColumnResize.js +28 -0
  387. package/dist/paged-layout/tableInsertButtonGeometry.d.ts +15 -0
  388. package/dist/paged-layout/tableInsertButtonGeometry.js +15 -0
  389. package/dist/paged-layout/transactionDirtyRange.d.ts +7 -0
  390. package/dist/paged-layout/transactionDirtyRange.js +27 -0
  391. package/dist/paged-layout/zoomScrollAnchor.d.ts +40 -0
  392. package/dist/paged-layout/zoomScrollAnchor.js +25 -0
  393. package/dist/prosemirror/attrs/index.d.ts +80 -0
  394. package/dist/prosemirror/attrs/index.js +1218 -0
  395. package/dist/prosemirror/autospacingBase.d.ts +11 -0
  396. package/dist/prosemirror/autospacingBase.js +16 -0
  397. package/dist/prosemirror/commands/comments.d.ts +93 -0
  398. package/dist/prosemirror/commands/comments.js +435 -0
  399. package/dist/prosemirror/commands/contentControls.d.ts +45 -0
  400. package/dist/prosemirror/commands/contentControls.js +294 -0
  401. package/dist/prosemirror/commands/contentControlsBlockFill.d.ts +15 -0
  402. package/dist/prosemirror/commands/contentControlsBlockFill.js +19 -0
  403. package/dist/prosemirror/commands/formatPainter.d.ts +31 -0
  404. package/dist/prosemirror/commands/formatPainter.js +130 -0
  405. package/dist/prosemirror/commands/formatting.d.ts +32 -0
  406. package/dist/prosemirror/commands/formatting.js +45 -0
  407. package/dist/prosemirror/commands/hyperlink.d.ts +31 -0
  408. package/dist/prosemirror/commands/hyperlink.js +79 -0
  409. package/dist/prosemirror/commands/image.d.ts +59 -0
  410. package/dist/prosemirror/commands/image.js +219 -0
  411. package/dist/prosemirror/commands/index.d.ts +13 -0
  412. package/dist/prosemirror/commands/index.js +13 -0
  413. package/dist/prosemirror/commands/pageBreak.d.ts +10 -0
  414. package/dist/prosemirror/commands/pageBreak.js +47 -0
  415. package/dist/prosemirror/commands/paragraph.d.ts +39 -0
  416. package/dist/prosemirror/commands/paragraph.js +64 -0
  417. package/dist/prosemirror/commands/pastePlainText.d.ts +39 -0
  418. package/dist/prosemirror/commands/pastePlainText.js +67 -0
  419. package/dist/prosemirror/commands/table.d.ts +83 -0
  420. package/dist/prosemirror/commands/table.js +105 -0
  421. package/dist/prosemirror/conversion/fromProseDoc.d.ts +27 -0
  422. package/dist/prosemirror/conversion/fromProseDoc.js +1550 -0
  423. package/dist/prosemirror/conversion/index.d.ts +4 -0
  424. package/dist/prosemirror/conversion/index.js +4 -0
  425. package/dist/prosemirror/conversion/runShadingMark.d.ts +16 -0
  426. package/dist/prosemirror/conversion/runShadingMark.js +39 -0
  427. package/dist/prosemirror/conversion/toProseDoc.d.ts +39 -0
  428. package/dist/prosemirror/conversion/toProseDoc.js +1404 -0
  429. package/dist/prosemirror/extensions/ExtensionManager.d.ts +43 -0
  430. package/dist/prosemirror/extensions/ExtensionManager.js +86 -0
  431. package/dist/prosemirror/extensions/StarterKit.d.ts +16 -0
  432. package/dist/prosemirror/extensions/StarterKit.js +132 -0
  433. package/dist/prosemirror/extensions/core/DocExtension.d.ts +9 -0
  434. package/dist/prosemirror/extensions/core/DocExtension.js +12 -0
  435. package/dist/prosemirror/extensions/core/HistoryExtension.d.ts +13 -0
  436. package/dist/prosemirror/extensions/core/HistoryExtension.js +28 -0
  437. package/dist/prosemirror/extensions/core/ParagraphExtension.d.ts +25 -0
  438. package/dist/prosemirror/extensions/core/ParagraphExtension.js +619 -0
  439. package/dist/prosemirror/extensions/core/TextExtension.d.ts +9 -0
  440. package/dist/prosemirror/extensions/core/TextExtension.js +12 -0
  441. package/dist/prosemirror/extensions/create.d.ts +17 -0
  442. package/dist/prosemirror/extensions/create.js +129 -0
  443. package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.d.ts +23 -0
  444. package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.js +106 -0
  445. package/dist/prosemirror/extensions/features/BaseKeymapExtension.d.ts +8 -0
  446. package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +172 -0
  447. package/dist/prosemirror/extensions/features/BidiShortcutExtension.d.ts +16 -0
  448. package/dist/prosemirror/extensions/features/BidiShortcutExtension.js +38 -0
  449. package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.d.ts +16 -0
  450. package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.js +21 -0
  451. package/dist/prosemirror/extensions/features/DropCursorExtension.d.ts +12 -0
  452. package/dist/prosemirror/extensions/features/DropCursorExtension.js +20 -0
  453. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.d.ts +8 -0
  454. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.js +44 -0
  455. package/dist/prosemirror/extensions/features/GapCursorExtension.d.ts +19 -0
  456. package/dist/prosemirror/extensions/features/GapCursorExtension.js +24 -0
  457. package/dist/prosemirror/extensions/features/ImageDragExtension.d.ts +15 -0
  458. package/dist/prosemirror/extensions/features/ImageDragExtension.js +66 -0
  459. package/dist/prosemirror/extensions/features/ImagePasteExtension.d.ts +12 -0
  460. package/dist/prosemirror/extensions/features/ImagePasteExtension.js +91 -0
  461. package/dist/prosemirror/extensions/features/ListExtension.d.ts +14 -0
  462. package/dist/prosemirror/extensions/features/ListExtension.js +340 -0
  463. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +9 -0
  464. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +60 -0
  465. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +35 -0
  466. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +188 -0
  467. package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +20 -0
  468. package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +34 -0
  469. package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.d.ts +20 -0
  470. package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.js +145 -0
  471. package/dist/prosemirror/extensions/features/SelectionTrackerExtension.d.ts +10 -0
  472. package/dist/prosemirror/extensions/features/SelectionTrackerExtension.js +17 -0
  473. package/dist/prosemirror/extensions/features/bidiShortcutController.d.ts +31 -0
  474. package/dist/prosemirror/extensions/features/bidiShortcutController.js +27 -0
  475. package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +31 -0
  476. package/dist/prosemirror/extensions/features/pasteCleanup.js +159 -0
  477. package/dist/prosemirror/extensions/marks/AllCapsExtension.d.ts +9 -0
  478. package/dist/prosemirror/extensions/marks/AllCapsExtension.js +24 -0
  479. package/dist/prosemirror/extensions/marks/BoldExtension.d.ts +9 -0
  480. package/dist/prosemirror/extensions/marks/BoldExtension.js +41 -0
  481. package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.d.ts +14 -0
  482. package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.js +64 -0
  483. package/dist/prosemirror/extensions/marks/CharacterStyleExtension.d.ts +23 -0
  484. package/dist/prosemirror/extensions/marks/CharacterStyleExtension.js +47 -0
  485. package/dist/prosemirror/extensions/marks/CommentExtension.d.ts +12 -0
  486. package/dist/prosemirror/extensions/marks/CommentExtension.js +38 -0
  487. package/dist/prosemirror/extensions/marks/FontFamilyExtension.d.ts +9 -0
  488. package/dist/prosemirror/extensions/marks/FontFamilyExtension.js +55 -0
  489. package/dist/prosemirror/extensions/marks/FontSizeExtension.d.ts +9 -0
  490. package/dist/prosemirror/extensions/marks/FontSizeExtension.js +47 -0
  491. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.d.ts +11 -0
  492. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.js +92 -0
  493. package/dist/prosemirror/extensions/marks/HiddenTextExtension.d.ts +23 -0
  494. package/dist/prosemirror/extensions/marks/HiddenTextExtension.js +35 -0
  495. package/dist/prosemirror/extensions/marks/HighlightExtension.d.ts +10 -0
  496. package/dist/prosemirror/extensions/marks/HighlightExtension.js +115 -0
  497. package/dist/prosemirror/extensions/marks/HyperlinkExtension.d.ts +13 -0
  498. package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +146 -0
  499. package/dist/prosemirror/extensions/marks/ItalicExtension.d.ts +9 -0
  500. package/dist/prosemirror/extensions/marks/ItalicExtension.js +34 -0
  501. package/dist/prosemirror/extensions/marks/RtlExtension.d.ts +6 -0
  502. package/dist/prosemirror/extensions/marks/RtlExtension.js +21 -0
  503. package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.d.ts +11 -0
  504. package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.js +75 -0
  505. package/dist/prosemirror/extensions/marks/RunShadingExtension.d.ts +6 -0
  506. package/dist/prosemirror/extensions/marks/RunShadingExtension.js +38 -0
  507. package/dist/prosemirror/extensions/marks/SmallCapsExtension.d.ts +9 -0
  508. package/dist/prosemirror/extensions/marks/SmallCapsExtension.js +24 -0
  509. package/dist/prosemirror/extensions/marks/StrikeExtension.d.ts +9 -0
  510. package/dist/prosemirror/extensions/marks/StrikeExtension.js +33 -0
  511. package/dist/prosemirror/extensions/marks/SubscriptExtension.d.ts +9 -0
  512. package/dist/prosemirror/extensions/marks/SubscriptExtension.js +25 -0
  513. package/dist/prosemirror/extensions/marks/SuperscriptExtension.d.ts +9 -0
  514. package/dist/prosemirror/extensions/marks/SuperscriptExtension.js +25 -0
  515. package/dist/prosemirror/extensions/marks/TextColorExtension.d.ts +9 -0
  516. package/dist/prosemirror/extensions/marks/TextColorExtension.js +50 -0
  517. package/dist/prosemirror/extensions/marks/TextEffectExtension.d.ts +6 -0
  518. package/dist/prosemirror/extensions/marks/TextEffectExtension.js +35 -0
  519. package/dist/prosemirror/extensions/marks/TextEffectsExtensions.d.ts +31 -0
  520. package/dist/prosemirror/extensions/marks/TextEffectsExtensions.js +134 -0
  521. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.d.ts +22 -0
  522. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +113 -0
  523. package/dist/prosemirror/extensions/marks/UnderlineExtension.d.ts +9 -0
  524. package/dist/prosemirror/extensions/marks/UnderlineExtension.js +60 -0
  525. package/dist/prosemirror/extensions/marks/markUtils.d.ts +34 -0
  526. package/dist/prosemirror/extensions/marks/markUtils.js +233 -0
  527. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +22 -0
  528. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.js +122 -0
  529. package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +12 -0
  530. package/dist/prosemirror/extensions/nodes/FieldExtension.js +87 -0
  531. package/dist/prosemirror/extensions/nodes/HardBreakExtension.d.ts +9 -0
  532. package/dist/prosemirror/extensions/nodes/HardBreakExtension.js +38 -0
  533. package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.d.ts +9 -0
  534. package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.js +18 -0
  535. package/dist/prosemirror/extensions/nodes/ImageExtension.d.ts +9 -0
  536. package/dist/prosemirror/extensions/nodes/ImageExtension.js +132 -0
  537. package/dist/prosemirror/extensions/nodes/MathExtension.d.ts +13 -0
  538. package/dist/prosemirror/extensions/nodes/MathExtension.js +56 -0
  539. package/dist/prosemirror/extensions/nodes/PageBreakExtension.d.ts +9 -0
  540. package/dist/prosemirror/extensions/nodes/PageBreakExtension.js +20 -0
  541. package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +12 -0
  542. package/dist/prosemirror/extensions/nodes/SdtExtension.js +107 -0
  543. package/dist/prosemirror/extensions/nodes/ShapeExtension.d.ts +30 -0
  544. package/dist/prosemirror/extensions/nodes/ShapeExtension.js +502 -0
  545. package/dist/prosemirror/extensions/nodes/TabExtension.d.ts +9 -0
  546. package/dist/prosemirror/extensions/nodes/TabExtension.js +27 -0
  547. package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +34 -0
  548. package/dist/prosemirror/extensions/nodes/TableExtension.js +1972 -0
  549. package/dist/prosemirror/extensions/nodes/TextBoxExtension.d.ts +34 -0
  550. package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +150 -0
  551. package/dist/prosemirror/extensions/types.d.ts +101 -0
  552. package/dist/prosemirror/extensions/types.js +10 -0
  553. package/dist/prosemirror/findReplaceSelection.d.ts +23 -0
  554. package/dist/prosemirror/findReplaceSelection.js +86 -0
  555. package/dist/prosemirror/index.d.ts +25 -0
  556. package/dist/prosemirror/index.js +23 -0
  557. package/dist/prosemirror/insertOperations.d.ts +12 -0
  558. package/dist/prosemirror/insertOperations.js +19 -0
  559. package/dist/prosemirror/paragraphDirection.d.ts +42 -0
  560. package/dist/prosemirror/paragraphDirection.js +33 -0
  561. package/dist/prosemirror/plugins/aiCitationDecorations.d.ts +40 -0
  562. package/dist/prosemirror/plugins/aiCitationDecorations.js +90 -0
  563. package/dist/prosemirror/plugins/aiSuggestionDecorations.d.ts +42 -0
  564. package/dist/prosemirror/plugins/aiSuggestionDecorations.js +135 -0
  565. package/dist/prosemirror/plugins/anonymizationDecorations.d.ts +60 -0
  566. package/dist/prosemirror/plugins/anonymizationDecorations.js +120 -0
  567. package/dist/prosemirror/plugins/autocompleteSuggestion.d.ts +123 -0
  568. package/dist/prosemirror/plugins/autocompleteSuggestion.js +283 -0
  569. package/dist/prosemirror/plugins/contentControlWidgets.d.ts +56 -0
  570. package/dist/prosemirror/plugins/contentControlWidgets.js +192 -0
  571. package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +37 -0
  572. package/dist/prosemirror/plugins/createDocScanPlugin.js +55 -0
  573. package/dist/prosemirror/plugins/documentStyles.d.ts +18 -0
  574. package/dist/prosemirror/plugins/documentStyles.js +46 -0
  575. package/dist/prosemirror/plugins/index.d.ts +3 -0
  576. package/dist/prosemirror/plugins/index.js +3 -0
  577. package/dist/prosemirror/plugins/pmTextScan.d.ts +19 -0
  578. package/dist/prosemirror/plugins/pmTextScan.js +39 -0
  579. package/dist/prosemirror/plugins/selectionTracker.d.ts +43 -0
  580. package/dist/prosemirror/plugins/selectionTracker.js +179 -0
  581. package/dist/prosemirror/plugins/suggestionMode.d.ts +70 -0
  582. package/dist/prosemirror/plugins/suggestionMode.js +489 -0
  583. package/dist/prosemirror/plugins/templateDirectives.d.ts +25 -0
  584. package/dist/prosemirror/plugins/templateDirectives.js +67 -0
  585. package/dist/prosemirror/plugins/templatePreviewValues.d.ts +49 -0
  586. package/dist/prosemirror/plugins/templatePreviewValues.js +117 -0
  587. package/dist/prosemirror/plugins/templateSlashMenu.d.ts +57 -0
  588. package/dist/prosemirror/plugins/templateSlashMenu.js +184 -0
  589. package/dist/prosemirror/schema/index.d.ts +15 -0
  590. package/dist/prosemirror/schema/index.js +20 -0
  591. package/dist/prosemirror/schema/marks.d.ts +118 -0
  592. package/dist/prosemirror/schema/marks.js +0 -0
  593. package/dist/prosemirror/schema/nodes.d.ts +389 -0
  594. package/dist/prosemirror/schema/nodes.js +0 -0
  595. package/dist/prosemirror/selectionState.d.ts +23 -0
  596. package/dist/prosemirror/selectionState.js +111 -0
  597. package/dist/prosemirror/styles/index.d.ts +2 -0
  598. package/dist/prosemirror/styles/index.js +2 -0
  599. package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +32 -0
  600. package/dist/prosemirror/styles/resolvedStyleAttrs.js +108 -0
  601. package/dist/prosemirror/styles/styleResolver.d.ts +94 -0
  602. package/dist/prosemirror/styles/styleResolver.js +200 -0
  603. package/dist/prosemirror/utils/findParagraphByParaId.d.ts +26 -0
  604. package/dist/prosemirror/utils/findParagraphByParaId.js +37 -0
  605. package/dist/prosemirror/utils/tabCalculator.d.ts +110 -0
  606. package/dist/prosemirror/utils/tabCalculator.js +137 -0
  607. package/dist/prosemirror/validation.d.ts +20 -0
  608. package/dist/prosemirror/validation.js +177 -0
  609. package/dist/server.d.ts +7 -0
  610. package/dist/server.js +6 -0
  611. package/dist/style-engine/index.d.ts +3 -0
  612. package/dist/style-engine/index.js +2 -0
  613. package/dist/style-engine/styleEngine.d.ts +67 -0
  614. package/dist/style-engine/styleEngine.js +70 -0
  615. package/dist/types/block-id.d.ts +66 -0
  616. package/dist/types/block-id.js +73 -0
  617. package/dist/types/colors.d.ts +2 -0
  618. package/dist/types/colors.js +0 -0
  619. package/dist/types/content.d.ts +2 -0
  620. package/dist/types/content.js +0 -0
  621. package/dist/types/document.d.ts +7 -0
  622. package/dist/types/document.js +0 -0
  623. package/dist/types/documentEnumValues.d.ts +89 -0
  624. package/dist/types/documentEnumValues.js +693 -0
  625. package/dist/types/formatting.d.ts +2 -0
  626. package/dist/types/formatting.js +0 -0
  627. package/dist/types/index.d.ts +107 -0
  628. package/dist/types/index.js +0 -0
  629. package/dist/utils/authorColors.d.ts +16 -0
  630. package/dist/utils/authorColors.js +30 -0
  631. package/dist/utils/baseDirection.d.ts +23 -0
  632. package/dist/utils/baseDirection.js +34 -0
  633. package/dist/utils/clipboard.d.ts +126 -0
  634. package/dist/utils/clipboard.js +622 -0
  635. package/dist/utils/colorResolver.d.ts +158 -0
  636. package/dist/utils/colorResolver.js +557 -0
  637. package/dist/utils/createDocument.d.ts +50 -0
  638. package/dist/utils/createDocument.js +262 -0
  639. package/dist/utils/documentLoaderBehavior.d.ts +22 -0
  640. package/dist/utils/documentLoaderBehavior.js +14 -0
  641. package/dist/utils/docxInput.d.ts +22 -0
  642. package/dist/utils/docxInput.js +16 -0
  643. package/dist/utils/domGuards.d.ts +59 -0
  644. package/dist/utils/domGuards.js +82 -0
  645. package/dist/utils/fontFamilyMerge.d.ts +7 -0
  646. package/dist/utils/fontFamilyMerge.js +31 -0
  647. package/dist/utils/fontLoader.d.ts +50 -0
  648. package/dist/utils/fontLoader.js +177 -0
  649. package/dist/utils/fontResolver.d.ts +61 -0
  650. package/dist/utils/fontResolver.js +651 -0
  651. package/dist/utils/fontWeights.d.ts +4 -0
  652. package/dist/utils/fontWeights.js +4 -0
  653. package/dist/utils/formatToStyle.d.ts +103 -0
  654. package/dist/utils/formatToStyle.js +289 -0
  655. package/dist/utils/headerFooter.d.ts +74 -0
  656. package/dist/utils/headerFooter.js +257 -0
  657. package/dist/utils/headingCollector.d.ts +22 -0
  658. package/dist/utils/headingCollector.js +36 -0
  659. package/dist/utils/hexId.d.ts +33 -0
  660. package/dist/utils/hexId.js +37 -0
  661. package/dist/utils/imageValidation.d.ts +5 -0
  662. package/dist/utils/imageValidation.js +31 -0
  663. package/dist/utils/paragraphFormattingMerge.d.ts +14 -0
  664. package/dist/utils/paragraphFormattingMerge.js +68 -0
  665. package/dist/utils/replaceText.d.ts +17 -0
  666. package/dist/utils/replaceText.js +161 -0
  667. package/dist/utils/rotationBoundingBox.d.ts +12 -0
  668. package/dist/utils/rotationBoundingBox.js +36 -0
  669. package/dist/utils/scriptSegments.d.ts +36 -0
  670. package/dist/utils/scriptSegments.js +52 -0
  671. package/dist/utils/tableOperations.d.ts +87 -0
  672. package/dist/utils/tableOperations.js +259 -0
  673. package/dist/utils/textFormattingMerge.d.ts +6 -0
  674. package/dist/utils/textFormattingMerge.js +31 -0
  675. package/dist/utils/tiffConverter.d.ts +18 -0
  676. package/dist/utils/tiffConverter.js +83 -0
  677. package/dist/utils/units.d.ts +99 -0
  678. package/dist/utils/units.js +139 -0
  679. package/dist/utils/urlSecurity.d.ts +7 -0
  680. package/dist/utils/urlSecurity.js +65 -0
  681. package/dist/watermark/index.d.ts +39 -0
  682. package/dist/watermark/index.js +149 -0
  683. package/package.json +122 -2
@@ -0,0 +1,31 @@
1
+ import { Comment } from "../../types/content.js";
2
+
3
+ //#region src/docx/serializer/commentSerializer.d.ts
4
+ /**
5
+ * Serialize comments array to comments.xml content. Returns a valid empty
6
+ * `<w:comments/>` document for an empty array so callers can overwrite an
7
+ * existing `word/comments.xml` part when the editor has removed the last
8
+ * comment — leaving the previous file in place would otherwise re-emit
9
+ * the orphaned comment threads on every save.
10
+ */
11
+ declare function serializeComments(comments: Comment[]): string;
12
+ /**
13
+ * Assign a deterministic `w14:paraId` to the LAST paragraph of every comment
14
+ * that needs a commentsExtended entry (a reply, a reply's parent, or a resolved
15
+ * comment) but has none. A document authored or loaded without comment paraIds
16
+ * would otherwise have no stable key to thread through commentsExtended.xml, and
17
+ * the thread link would be silently dropped. Word-authored ids are preserved;
18
+ * only threaded, id-less paragraphs are filled. Deterministic (content- and
19
+ * id-derived) so repeated saves mint the SAME id. MUST run before serializing
20
+ * BOTH comments.xml and commentsExtended.xml so the two reference the same id.
21
+ */
22
+ declare function ensureThreadedCommentParaIds(comments: readonly Comment[]): void;
23
+ /**
24
+ * Serialize `commentsExtended.xml` (`w15:commentsEx`) for reply threading and
25
+ * resolved state, or `null` when no comment needs an entry (see
26
+ * {@link buildCommentExtendedEntries}). This is the part that makes Word render
27
+ * a comment as a REPLY rather than a separate top-level thread.
28
+ */
29
+ declare function serializeCommentsExtended(comments: readonly Comment[]): string | null;
30
+ //#endregion
31
+ export { ensureThreadedCommentParaIds, serializeComments, serializeCommentsExtended };
@@ -0,0 +1,184 @@
1
+ import { deterministicHexId } from "../../utils/hexId.js";
2
+ import { escapeXml } from "./xmlUtils.js";
3
+ //#region src/docx/serializer/commentSerializer.ts
4
+ /**
5
+ * Comment Serializer
6
+ *
7
+ * Serializes Comment[] to OOXML comments.xml format.
8
+ */
9
+ function serializeRunContent(run) {
10
+ let xml = "<w:r>";
11
+ const rPr = [];
12
+ if (run.formatting?.bold) rPr.push("<w:b/>");
13
+ if (run.formatting?.italic) rPr.push("<w:i/>");
14
+ if (rPr.length > 0) xml += `<w:rPr>${rPr.join("")}</w:rPr>`;
15
+ for (const c of run.content) if (c.type === "text") {
16
+ const preserveSpace = c.text !== c.text.trim() || c.text.includes(" ");
17
+ xml += preserveSpace ? `<w:t xml:space="preserve">${escapeXml(c.text)}</w:t>` : `<w:t>${escapeXml(c.text)}</w:t>`;
18
+ } else if (c.type === "break") xml += "<w:br/>";
19
+ xml += "</w:r>";
20
+ return xml;
21
+ }
22
+ /**
23
+ * `w14:paraId` / `w14:textId` open tag for a comment paragraph. Word keys
24
+ * commentsExtended.xml (reply threading) and commentsExtensible.xml (UTC
25
+ * dates) on the paraId of a comment's LAST paragraph, so the id must survive
26
+ * serialization; the parser stores it on `Paragraph.paraId`.
27
+ */
28
+ function commentParagraphOpenTag(p) {
29
+ const attrs = [];
30
+ if (p.paraId) attrs.push(`w14:paraId="${p.paraId}"`);
31
+ if (p.textId) attrs.push(`w14:textId="${p.textId}"`);
32
+ return attrs.length > 0 ? `<w:p ${attrs.join(" ")}>` : "<w:p>";
33
+ }
34
+ function serializeParagraph(p) {
35
+ let xml = commentParagraphOpenTag(p);
36
+ for (const item of p.content) if (item.type === "run") xml += serializeRunContent(item);
37
+ xml += "</w:p>";
38
+ return xml;
39
+ }
40
+ /** Serialize a paragraph, prepending an annotationRef run (required by Word in first paragraph of a comment) */
41
+ function serializeParagraphWithAnnotationRef(p) {
42
+ let xml = commentParagraphOpenTag(p);
43
+ xml += "<w:r><w:rPr><w:rStyle w:val=\"CommentReference\"/></w:rPr><w:annotationRef/></w:r>";
44
+ for (const item of p.content) if (item.type === "run") xml += serializeRunContent(item);
45
+ xml += "</w:p>";
46
+ return xml;
47
+ }
48
+ function serializeComment(comment) {
49
+ const attrs = [`w:id="${comment.id}"`];
50
+ if (comment.author) attrs.push(`w:author="${escapeXml(comment.author)}"`);
51
+ if (comment.initials) attrs.push(`w:initials="${escapeXml(comment.initials)}"`);
52
+ if (comment.date) attrs.push(`w:date="${escapeXml(comment.date)}"`);
53
+ let xml = `<w:comment ${attrs.join(" ")}>`;
54
+ if (comment.content.length > 0) {
55
+ xml += serializeParagraphWithAnnotationRef(comment.content[0]);
56
+ for (let i = 1; i < comment.content.length; i++) xml += serializeParagraph(comment.content[i]);
57
+ } else xml += "<w:p><w:r><w:rPr><w:rStyle w:val=\"CommentReference\"/></w:rPr><w:annotationRef/></w:r></w:p>";
58
+ xml += "</w:comment>";
59
+ return xml;
60
+ }
61
+ const COMMENTS_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<w:comments xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" mc:Ignorable=\"w14 wp14\">";
62
+ /**
63
+ * Serialize comments array to comments.xml content. Returns a valid empty
64
+ * `<w:comments/>` document for an empty array so callers can overwrite an
65
+ * existing `word/comments.xml` part when the editor has removed the last
66
+ * comment — leaving the previous file in place would otherwise re-emit
67
+ * the orphaned comment threads on every save.
68
+ */
69
+ function serializeComments(comments) {
70
+ const topLevel = [];
71
+ const replies = [];
72
+ for (const c of comments) {
73
+ const { parentId } = c;
74
+ (parentId === null || parentId === void 0 ? topLevel : replies).push(c);
75
+ }
76
+ let xml = COMMENTS_HEADER;
77
+ for (const comment of topLevel) xml += serializeComment(comment);
78
+ for (const reply of replies) xml += serializeComment(reply);
79
+ xml += "</w:comments>";
80
+ return xml;
81
+ }
82
+ /** The `w14:paraId` Word threads a comment by: its LAST paragraph's paraId. */
83
+ function commentThreadParaId(comment) {
84
+ return comment.content?.at(-1)?.paraId;
85
+ }
86
+ /**
87
+ * The ids of comments that need a `commentsExtended.xml` entry: a reply, a
88
+ * reply's parent (the thread root), or any comment carrying a resolved state.
89
+ * A plain top-level comment set yields an empty set, so no part is written.
90
+ */
91
+ function threadedCommentIds(comments) {
92
+ const replyParents = /* @__PURE__ */ new Set();
93
+ for (const comment of comments) if (comment.parentId !== void 0) replyParents.add(comment.parentId);
94
+ const ids = /* @__PURE__ */ new Set();
95
+ for (const comment of comments) if (comment.parentId !== void 0 || replyParents.has(comment.id) || comment.done !== void 0) ids.add(comment.id);
96
+ return ids;
97
+ }
98
+ const commentPlainText = (comment) => {
99
+ let text = "";
100
+ for (const paragraph of comment.content ?? []) for (const item of paragraph.content ?? []) {
101
+ if (item.type !== "run") continue;
102
+ for (const runItem of item.content ?? []) if (runItem.type === "text") text += runItem.text;
103
+ }
104
+ return text;
105
+ };
106
+ /**
107
+ * Assign a deterministic `w14:paraId` to the LAST paragraph of every comment
108
+ * that needs a commentsExtended entry (a reply, a reply's parent, or a resolved
109
+ * comment) but has none. A document authored or loaded without comment paraIds
110
+ * would otherwise have no stable key to thread through commentsExtended.xml, and
111
+ * the thread link would be silently dropped. Word-authored ids are preserved;
112
+ * only threaded, id-less paragraphs are filled. Deterministic (content- and
113
+ * id-derived) so repeated saves mint the SAME id. MUST run before serializing
114
+ * BOTH comments.xml and commentsExtended.xml so the two reference the same id.
115
+ */
116
+ function ensureThreadedCommentParaIds(comments) {
117
+ const threaded = threadedCommentIds(comments);
118
+ if (threaded.size === 0) return;
119
+ const used = /* @__PURE__ */ new Set();
120
+ for (const comment of comments) for (const paragraph of comment.content ?? []) if (paragraph.paraId) used.add(paragraph.paraId.toUpperCase());
121
+ for (const comment of comments) {
122
+ if (!threaded.has(comment.id)) continue;
123
+ const last = (comment.content ?? []).at(-1);
124
+ if (!last || last.paraId) continue;
125
+ let paraId = deterministicHexId(`comment:${comment.id}:${commentPlainText(comment)}`);
126
+ for (let salt = 1; used.has(paraId.toUpperCase()); salt++) paraId = deterministicHexId(`comment:${comment.id}:${salt}`);
127
+ used.add(paraId.toUpperCase());
128
+ last.paraId = paraId;
129
+ }
130
+ }
131
+ /**
132
+ * Build the `commentsExtended.xml` entries for the comments that participate in
133
+ * a thread or carry a resolved state. Returns `null` when no comment needs an
134
+ * entry (no replies, no parents-of-replies, no `done` state) so callers can
135
+ * leave any existing part untouched — a plain top-level comment set gets no
136
+ * `commentsExtended.xml`, matching how Word omits it.
137
+ *
138
+ * A `w15:commentEx` keys on the comment's LAST paragraph paraId; a reply's
139
+ * `w15:paraIdParent` points at its parent comment's last-paragraph paraId. Ids
140
+ * are guaranteed present by {@link ensureThreadedCommentParaIds}; the `!paraId`
141
+ * skip is a last-ditch safety for a malformed model.
142
+ */
143
+ function buildCommentExtendedEntries(comments) {
144
+ const threaded = threadedCommentIds(comments);
145
+ if (threaded.size === 0) return null;
146
+ const paraIdByCommentId = /* @__PURE__ */ new Map();
147
+ for (const comment of comments) {
148
+ const paraId = commentThreadParaId(comment);
149
+ if (paraId) paraIdByCommentId.set(comment.id, paraId);
150
+ }
151
+ const entries = [];
152
+ for (const comment of comments) {
153
+ if (!threaded.has(comment.id)) continue;
154
+ const paraId = paraIdByCommentId.get(comment.id);
155
+ if (!paraId) continue;
156
+ const parentParaId = comment.parentId !== void 0 ? paraIdByCommentId.get(comment.parentId) : void 0;
157
+ entries.push({
158
+ paraId,
159
+ ...parentParaId !== void 0 ? { paraIdParent: parentParaId } : {},
160
+ done: comment.done ?? false
161
+ });
162
+ }
163
+ return entries.length > 0 ? entries : null;
164
+ }
165
+ const COMMENTS_EXTENDED_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<w15:commentsEx xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" mc:Ignorable=\"w15\">";
166
+ /**
167
+ * Serialize `commentsExtended.xml` (`w15:commentsEx`) for reply threading and
168
+ * resolved state, or `null` when no comment needs an entry (see
169
+ * {@link buildCommentExtendedEntries}). This is the part that makes Word render
170
+ * a comment as a REPLY rather than a separate top-level thread.
171
+ */
172
+ function serializeCommentsExtended(comments) {
173
+ const entries = buildCommentExtendedEntries(comments);
174
+ if (!entries) return null;
175
+ let xml = COMMENTS_EXTENDED_HEADER;
176
+ for (const entry of entries) {
177
+ const parentAttr = entry.paraIdParent !== void 0 ? ` w15:paraIdParent="${entry.paraIdParent}"` : "";
178
+ xml += `<w15:commentEx w15:paraId="${entry.paraId}"${parentAttr} w15:done="${entry.done ? "1" : "0"}"/>`;
179
+ }
180
+ xml += "</w15:commentsEx>";
181
+ return xml;
182
+ }
183
+ //#endregion
184
+ export { ensureThreadedCommentParaIds, serializeComments, serializeCommentsExtended };
@@ -0,0 +1,65 @@
1
+ import { document_d_exports } from "../../types/document.js";
2
+
3
+ //#region src/docx/serializer/documentSerializer.d.ts
4
+ /**
5
+ * Serialize a DocumentBody to document.xml body content
6
+ *
7
+ * @param body - The document body to serialize
8
+ * @returns XML string for the body element (without body tags)
9
+ */
10
+ declare function serializeDocumentBody(body: document_d_exports.DocumentBody): string;
11
+ /**
12
+ * Serialize a complete Document to valid document.xml
13
+ *
14
+ * @param doc - The document to serialize
15
+ * @returns Complete XML string for document.xml
16
+ */
17
+ declare function serializeDocument(doc: document_d_exports.Document): string;
18
+ /**
19
+ * Serialize just the document body (useful for partial updates)
20
+ *
21
+ * @param body - The document body to serialize
22
+ * @returns XML string for the w:body element
23
+ */
24
+ declare function serializeDocumentBodyElement(body: document_d_exports.DocumentBody): string;
25
+ /**
26
+ * Check if document has any content
27
+ */
28
+ declare function hasDocumentContent(doc: document_d_exports.Document): boolean;
29
+ /**
30
+ * Check if document has sections
31
+ */
32
+ declare function hasDocumentSections(doc: document_d_exports.Document): boolean;
33
+ /**
34
+ * Check if document has section properties
35
+ */
36
+ declare function hasSectionProperties(doc: document_d_exports.Document): boolean;
37
+ /**
38
+ * Get document content count (paragraphs + tables)
39
+ */
40
+ declare function getDocumentContentCount(doc: document_d_exports.Document): number;
41
+ /**
42
+ * Get paragraph count in document
43
+ */
44
+ declare function getDocumentParagraphCount(doc: document_d_exports.Document): number;
45
+ /**
46
+ * Get table count in document
47
+ */
48
+ declare function getDocumentTableCount(doc: document_d_exports.Document): number;
49
+ /**
50
+ * Get plain text from document (for comparison/debugging)
51
+ */
52
+ declare function getDocumentPlainText(doc: document_d_exports.Document): string;
53
+ /**
54
+ * Create an empty document
55
+ */
56
+ declare function createEmptyDocument(): document_d_exports.Document;
57
+ /**
58
+ * Create a simple document with text content
59
+ */
60
+ declare function createSimpleDocument(paragraphs: {
61
+ text: string;
62
+ styleId?: string;
63
+ }[]): document_d_exports.Document;
64
+ //#endregion
65
+ export { createEmptyDocument, createSimpleDocument, getDocumentContentCount, getDocumentParagraphCount, getDocumentPlainText, getDocumentTableCount, hasDocumentContent, hasDocumentSections, hasSectionProperties, serializeDocument, serializeDocumentBody, serializeDocumentBodyElement };
@@ -0,0 +1,199 @@
1
+ import { serializeBlockSdt } from "./blockSdtSerializer.js";
2
+ import { resetAutoIdCounter } from "./runSerializer.js";
3
+ import { serializeSectionProperties } from "./sectionPropertiesSerializer.js";
4
+ import { serializeParagraph } from "./paragraphSerializer.js";
5
+ import { serializeTable } from "./tableSerializer.js";
6
+ //#region src/docx/serializer/documentSerializer.ts
7
+ /**
8
+ * Standard OOXML namespaces for document.xml
9
+ */
10
+ const NAMESPACES = {
11
+ wpc: "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas",
12
+ cx: "http://schemas.microsoft.com/office/drawing/2014/chartex",
13
+ cx1: "http://schemas.microsoft.com/office/drawing/2015/9/8/chartex",
14
+ cx2: "http://schemas.microsoft.com/office/drawing/2015/10/21/chartex",
15
+ cx3: "http://schemas.microsoft.com/office/drawing/2016/5/9/chartex",
16
+ cx4: "http://schemas.microsoft.com/office/drawing/2016/5/10/chartex",
17
+ cx5: "http://schemas.microsoft.com/office/drawing/2016/5/11/chartex",
18
+ cx6: "http://schemas.microsoft.com/office/drawing/2016/5/12/chartex",
19
+ cx7: "http://schemas.microsoft.com/office/drawing/2016/5/13/chartex",
20
+ cx8: "http://schemas.microsoft.com/office/drawing/2016/5/14/chartex",
21
+ mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
22
+ aink: "http://schemas.microsoft.com/office/drawing/2016/ink",
23
+ am3d: "http://schemas.microsoft.com/office/drawing/2017/model3d",
24
+ o: "urn:schemas-microsoft-com:office:office",
25
+ oel: "http://schemas.microsoft.com/office/2019/extlst",
26
+ r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
27
+ m: "http://schemas.openxmlformats.org/officeDocument/2006/math",
28
+ v: "urn:schemas-microsoft-com:vml",
29
+ wp14: "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing",
30
+ wp: "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
31
+ w10: "urn:schemas-microsoft-com:office:word",
32
+ w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
33
+ w14: "http://schemas.microsoft.com/office/word/2010/wordml",
34
+ w15: "http://schemas.microsoft.com/office/word/2012/wordml",
35
+ w16cex: "http://schemas.microsoft.com/office/word/2018/wordml/cex",
36
+ w16cid: "http://schemas.microsoft.com/office/word/2016/wordml/cid",
37
+ w16: "http://schemas.microsoft.com/office/word/2018/wordml",
38
+ w16sdtdh: "http://schemas.microsoft.com/office/word/2020/wordml/sdtdatahash",
39
+ w16se: "http://schemas.microsoft.com/office/word/2015/wordml/symex",
40
+ wpg: "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup",
41
+ wpi: "http://schemas.microsoft.com/office/word/2010/wordprocessingInk",
42
+ wne: "http://schemas.microsoft.com/office/word/2006/wordml",
43
+ wps: "http://schemas.microsoft.com/office/word/2010/wordprocessingShape"
44
+ };
45
+ /**
46
+ * Build namespace declaration string for document element
47
+ */
48
+ function buildNamespaceDeclarations() {
49
+ const declared = {
50
+ wpc: NAMESPACES.wpc,
51
+ mc: NAMESPACES.mc,
52
+ o: NAMESPACES.o,
53
+ r: NAMESPACES.r,
54
+ m: NAMESPACES.m,
55
+ v: NAMESPACES.v,
56
+ wp14: NAMESPACES.wp14,
57
+ wp: NAMESPACES.wp,
58
+ w10: NAMESPACES.w10,
59
+ w: NAMESPACES.w,
60
+ w14: NAMESPACES.w14,
61
+ w15: NAMESPACES.w15,
62
+ w16: NAMESPACES.w16,
63
+ w16cex: NAMESPACES.w16cex,
64
+ w16cid: NAMESPACES.w16cid,
65
+ w16sdtdh: NAMESPACES.w16sdtdh,
66
+ w16se: NAMESPACES.w16se,
67
+ wpg: NAMESPACES.wpg,
68
+ wps: NAMESPACES.wps
69
+ };
70
+ return Object.entries(declared).map(([prefix, uri]) => `xmlns:${prefix}="${uri}"`).join(" ");
71
+ }
72
+ /**
73
+ * Serialize a single block content item (paragraph, table, or block-level SDT).
74
+ */
75
+ function serializeBlockContent(block) {
76
+ if (block.type === "paragraph") return serializeParagraph(block);
77
+ if (block.type === "table") return serializeTable(block);
78
+ return serializeBlockSdt(block, serializeBlockContent);
79
+ }
80
+ /**
81
+ * Serialize document body content
82
+ */
83
+ function serializeBodyContent(content) {
84
+ return content.map((block) => serializeBlockContent(block)).join("");
85
+ }
86
+ /**
87
+ * Serialize a DocumentBody to document.xml body content
88
+ *
89
+ * @param body - The document body to serialize
90
+ * @returns XML string for the body element (without body tags)
91
+ */
92
+ function serializeDocumentBody(body) {
93
+ const parts = [];
94
+ parts.push(serializeBodyContent(body.content));
95
+ if (body.finalSectionProperties) parts.push(serializeSectionProperties(body.finalSectionProperties));
96
+ return parts.join("");
97
+ }
98
+ /**
99
+ * Serialize a complete Document to valid document.xml
100
+ *
101
+ * @param doc - The document to serialize
102
+ * @returns Complete XML string for document.xml
103
+ */
104
+ function serializeDocument(doc) {
105
+ resetAutoIdCounter();
106
+ const parts = [];
107
+ parts.push("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");
108
+ const nsDecl = buildNamespaceDeclarations();
109
+ parts.push(`<w:document ${nsDecl} mc:Ignorable="w14 w15 wp14">`);
110
+ parts.push("<w:body>");
111
+ parts.push(serializeDocumentBody(doc.package.document));
112
+ parts.push("</w:body>");
113
+ parts.push("</w:document>");
114
+ return parts.join("");
115
+ }
116
+ /**
117
+ * Serialize just the document body (useful for partial updates)
118
+ *
119
+ * @param body - The document body to serialize
120
+ * @returns XML string for the w:body element
121
+ */
122
+ function serializeDocumentBodyElement(body) {
123
+ return `<w:body>${serializeDocumentBody(body)}</w:body>`;
124
+ }
125
+ /**
126
+ * Check if document has any content
127
+ */
128
+ function hasDocumentContent(doc) {
129
+ return doc.package.document.content.length > 0;
130
+ }
131
+ /**
132
+ * Check if document has sections
133
+ */
134
+ function hasDocumentSections(doc) {
135
+ return (doc.package.document.sections?.length ?? 0) > 0;
136
+ }
137
+ /**
138
+ * Check if document has section properties
139
+ */
140
+ function hasSectionProperties(doc) {
141
+ return doc.package.document.finalSectionProperties !== void 0;
142
+ }
143
+ /**
144
+ * Get document content count (paragraphs + tables)
145
+ */
146
+ function getDocumentContentCount(doc) {
147
+ return doc.package.document.content.length;
148
+ }
149
+ /**
150
+ * Get paragraph count in document
151
+ */
152
+ function getDocumentParagraphCount(doc) {
153
+ return doc.package.document.content.filter((b) => b.type === "paragraph").length;
154
+ }
155
+ /**
156
+ * Get table count in document
157
+ */
158
+ function getDocumentTableCount(doc) {
159
+ return doc.package.document.content.filter((b) => b.type === "table").length;
160
+ }
161
+ /**
162
+ * Get plain text from document (for comparison/debugging)
163
+ */
164
+ function getDocumentPlainText(doc) {
165
+ const texts = [];
166
+ for (const block of doc.package.document.content) if (block.type === "paragraph") {
167
+ for (const content of block.content) if (content.type === "run") {
168
+ for (const item of content.content) if (item.type === "text") texts.push(item.text);
169
+ else if (item.type === "tab") texts.push(" ");
170
+ else if (item.type === "break") texts.push("\n");
171
+ }
172
+ texts.push("\n");
173
+ }
174
+ return texts.join("");
175
+ }
176
+ /**
177
+ * Create an empty document
178
+ */
179
+ function createEmptyDocument() {
180
+ return { package: { document: { content: [] } } };
181
+ }
182
+ /**
183
+ * Create a simple document with text content
184
+ */
185
+ function createSimpleDocument(paragraphs) {
186
+ return { package: { document: { content: paragraphs.map((p) => ({
187
+ type: "paragraph",
188
+ ...p.styleId ? { formatting: { styleId: p.styleId } } : {},
189
+ content: [{
190
+ type: "run",
191
+ content: [{
192
+ type: "text",
193
+ text: p.text
194
+ }]
195
+ }]
196
+ })) } } };
197
+ }
198
+ //#endregion
199
+ export { createEmptyDocument, createSimpleDocument, getDocumentContentCount, getDocumentParagraphCount, getDocumentPlainText, getDocumentTableCount, hasDocumentContent, hasDocumentSections, hasSectionProperties, serializeDocument, serializeDocumentBody, serializeDocumentBodyElement };
@@ -0,0 +1,12 @@
1
+ import { document_d_exports } from "../../types/document.js";
2
+
3
+ //#region src/docx/serializer/headerFooterSerializer.d.ts
4
+ /**
5
+ * Serialize a HeaderFooter object to valid OOXML XML
6
+ *
7
+ * @param hf - HeaderFooter object to serialize
8
+ * @returns Complete XML string for header*.xml or footer*.xml
9
+ */
10
+ declare function serializeHeaderFooter(hf: document_d_exports.HeaderFooter): string;
11
+ //#endregion
12
+ export { serializeHeaderFooter };
@@ -0,0 +1,84 @@
1
+ import { escapeXml } from "./xmlUtils.js";
2
+ import { serializeBlockSdt } from "./blockSdtSerializer.js";
3
+ import { serializeParagraph } from "./paragraphSerializer.js";
4
+ import { serializeTable } from "./tableSerializer.js";
5
+ //#region src/docx/serializer/headerFooterSerializer.ts
6
+ const NAMESPACES = {
7
+ wpc: "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas",
8
+ mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
9
+ o: "urn:schemas-microsoft-com:office:office",
10
+ r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
11
+ m: "http://schemas.openxmlformats.org/officeDocument/2006/math",
12
+ v: "urn:schemas-microsoft-com:vml",
13
+ a: "http://schemas.openxmlformats.org/drawingml/2006/main",
14
+ pic: "http://schemas.openxmlformats.org/drawingml/2006/picture",
15
+ wp14: "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing",
16
+ wp: "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
17
+ w10: "urn:schemas-microsoft-com:office:word",
18
+ w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
19
+ w14: "http://schemas.microsoft.com/office/word/2010/wordml",
20
+ w15: "http://schemas.microsoft.com/office/word/2012/wordml",
21
+ w16: "http://schemas.microsoft.com/office/word/2018/wordml",
22
+ w16cex: "http://schemas.microsoft.com/office/word/2018/wordml/cex",
23
+ w16cid: "http://schemas.microsoft.com/office/word/2016/wordml/cid",
24
+ w16sdtdh: "http://schemas.microsoft.com/office/word/2020/wordml/sdtdatahash",
25
+ w16se: "http://schemas.microsoft.com/office/word/2015/wordml/symex",
26
+ wpg: "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup",
27
+ wps: "http://schemas.microsoft.com/office/word/2010/wordprocessingShape"
28
+ };
29
+ function buildNamespaceDeclarations() {
30
+ return Object.entries(NAMESPACES).map(([prefix, uri]) => `xmlns:${prefix}="${uri}"`).join(" ");
31
+ }
32
+ /**
33
+ * Serialize a block content item (paragraph, table, or block-level SDT) for
34
+ * header/footer.
35
+ */
36
+ function serializeBlock(block) {
37
+ if (block.type === "paragraph") return serializeParagraph(block);
38
+ if (block.type === "table") return serializeTable(block);
39
+ return serializeBlockSdt(block, serializeBlock);
40
+ }
41
+ /**
42
+ * Serialize a HeaderFooter object to valid OOXML XML
43
+ *
44
+ * @param hf - HeaderFooter object to serialize
45
+ * @returns Complete XML string for header*.xml or footer*.xml
46
+ */
47
+ function serializeHeaderFooter(hf) {
48
+ const rootTag = hf.type === "header" ? "w:hdr" : "w:ftr";
49
+ const nsDecl = buildNamespaceDeclarations();
50
+ const watermarkXml = serializeWatermarkParagraph(hf);
51
+ const watermarkInsertIndex = hf.watermarkBlockIndex !== void 0 ? Math.max(0, Math.min(hf.watermarkBlockIndex, hf.content.length)) : 0;
52
+ const blocksXml = hf.content.map((block) => serializeBlock(block));
53
+ let contentXml;
54
+ if (watermarkXml) contentXml = blocksXml.slice(0, watermarkInsertIndex).join("") + watermarkXml + blocksXml.slice(watermarkInsertIndex).join("");
55
+ else contentXml = blocksXml.join("");
56
+ if (!contentXml) contentXml = "<w:p><w:pPr/></w:p>";
57
+ return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<${rootTag} ${nsDecl}>${contentXml}</${rootTag}>`;
58
+ }
59
+ function serializeWatermarkParagraph(hf) {
60
+ if (hf.rawWatermarkXml) return hf.rawWatermarkXml;
61
+ if (hf.watermark) return synthesizeWatermarkParagraph(hf.watermark);
62
+ return "";
63
+ }
64
+ function synthesizeWatermarkParagraph(watermark) {
65
+ if (watermark.kind === "text") return synthesizeTextWatermark(watermark);
66
+ return synthesizePictureWatermark(watermark);
67
+ }
68
+ function synthesizeTextWatermark(watermark) {
69
+ const rotation = watermark.diagonal === false ? 0 : 315;
70
+ const fillcolor = watermark.color && watermark.color !== "auto" ? `#${watermark.color}` : "#C0C0C0";
71
+ const fontFamily = watermark.font ?? "Calibri";
72
+ const text = escapeXml(watermark.text);
73
+ return `<w:p><w:r><w:pict><v:shape id="PowerPlusWaterMarkObject1" type="#_x0000_t136" style="position:absolute;margin-left:0;margin-top:0;width:415pt;height:207pt;rotation:${rotation};z-index:-251658240;mso-position-horizontal:center;mso-position-horizontal-relative:margin;mso-position-vertical:center;mso-position-vertical-relative:margin" fillcolor="${fillcolor}" stroked="f">${watermark.opacity !== void 0 ? `<v:fill opacity="${watermark.opacity}"/>` : ""}<v:textpath style="font-family:&quot;${escapeXml(fontFamily)}&quot;;font-size:1pt" string="${text}"/></v:shape></w:pict></w:r></w:p>`;
74
+ }
75
+ const PICTURE_WATERMARK_DEFAULT_WIDTH_PT = 415;
76
+ const PICTURE_WATERMARK_DEFAULT_HEIGHT_PT = 207;
77
+ const PICTURE_WATERMARK_WASHOUT_GAIN = "19661f";
78
+ const PICTURE_WATERMARK_WASHOUT_BLACKLEVEL = "22938f";
79
+ function synthesizePictureWatermark(watermark) {
80
+ const rId = escapeXml(watermark.imageRId);
81
+ return `<w:p><w:r><w:pict><v:shape id="WordPictureWatermark1" type="#_x0000_t75" style="position:absolute;margin-left:0;margin-top:0;width:${watermark.scale === void 0 ? watermark.widthPt ?? PICTURE_WATERMARK_DEFAULT_WIDTH_PT : PICTURE_WATERMARK_DEFAULT_WIDTH_PT * watermark.scale}pt;height:${watermark.scale === void 0 ? watermark.heightPt ?? PICTURE_WATERMARK_DEFAULT_HEIGHT_PT : PICTURE_WATERMARK_DEFAULT_HEIGHT_PT * watermark.scale}pt;z-index:-251658240;mso-position-horizontal:center;mso-position-horizontal-relative:margin;mso-position-vertical:center;mso-position-vertical-relative:margin"><v:imagedata r:id="${rId}" o:title=""${watermark.washout === false ? "" : ` gain="${PICTURE_WATERMARK_WASHOUT_GAIN}" blacklevel="${PICTURE_WATERMARK_WASHOUT_BLACKLEVEL}"`}/></v:shape></w:pict></w:r></w:p>`;
82
+ }
83
+ //#endregion
84
+ export { serializeHeaderFooter };
@@ -0,0 +1,19 @@
1
+ import { document_d_exports } from "../../types/document.js";
2
+
3
+ //#region src/docx/serializer/noteSerializer.d.ts
4
+ /**
5
+ * Serialize footnotes to a complete word/footnotes.xml string.
6
+ *
7
+ * @param footnotes - Notes to serialize (the model's normal footnotes).
8
+ * @returns Complete footnotes.xml string.
9
+ */
10
+ declare function serializeFootnotes(footnotes: readonly document_d_exports.Footnote[]): string;
11
+ /**
12
+ * Serialize endnotes to a complete word/endnotes.xml string.
13
+ *
14
+ * @param endnotes - Notes to serialize (the model's normal endnotes).
15
+ * @returns Complete endnotes.xml string.
16
+ */
17
+ declare function serializeEndnotes(endnotes: readonly document_d_exports.Endnote[]): string;
18
+ //#endregion
19
+ export { serializeEndnotes, serializeFootnotes };