@stll/folio-core 0.62.0 → 0.63.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 (1333) hide show
  1. package/README.md +17 -6
  2. package/dist/ai-edits/apply.d.ts +40 -10
  3. package/dist/ai-edits/apply.js +563 -219
  4. package/dist/ai-edits/batch-claims.d.ts +13 -4
  5. package/dist/ai-edits/batch-claims.js +6 -6
  6. package/dist/ai-edits/block-identity.d.ts +3 -4
  7. package/dist/ai-edits/block-identity.js +15 -1
  8. package/dist/ai-edits/blockRange.d.ts +7 -7
  9. package/dist/ai-edits/blockRange.js +2 -1
  10. package/dist/ai-edits/character-boundaries.d.ts +5 -6
  11. package/dist/ai-edits/clean-text.d.ts +8 -8
  12. package/dist/ai-edits/comment-lifecycle.d.ts +15 -6
  13. package/dist/ai-edits/comment-lifecycle.js +74 -23
  14. package/dist/ai-edits/headless.d.ts +42 -39
  15. package/dist/ai-edits/headless.js +157 -114
  16. package/dist/ai-edits/index.d.ts +2 -1
  17. package/dist/ai-edits/index.js +2 -1
  18. package/dist/ai-edits/inline-emphasis.d.ts +5 -6
  19. package/dist/ai-edits/minimal-replacement.d.ts +12 -13
  20. package/dist/ai-edits/newListNumbering.d.ts +16 -3
  21. package/dist/ai-edits/newListNumbering.js +97 -34
  22. package/dist/ai-edits/note-references.d.ts +14 -14
  23. package/dist/ai-edits/note-story-inventory.d.ts +2 -2
  24. package/dist/ai-edits/pending-suggestions.d.ts +8 -8
  25. package/dist/ai-edits/pending-suggestions.js +5 -1
  26. package/dist/ai-edits/read.d.ts +10 -11
  27. package/dist/ai-edits/read.js +6 -0
  28. package/dist/ai-edits/referenceClassification.d.ts +2 -2
  29. package/dist/ai-edits/removed-blocks.d.ts +20 -0
  30. package/dist/ai-edits/removed-blocks.js +69 -0
  31. package/dist/ai-edits/result-validation.d.ts +4 -5
  32. package/dist/ai-edits/result-validation.js +4 -3
  33. package/dist/ai-edits/revisionStretches.d.ts +3 -3
  34. package/dist/ai-edits/revisionStretches.js +17 -0
  35. package/dist/ai-edits/scoped-reading.d.ts +3 -4
  36. package/dist/ai-edits/snapshot.d.ts +24 -23
  37. package/dist/ai-edits/snapshot.js +44 -30
  38. package/dist/ai-edits/table-cell-mutations.d.ts +6 -6
  39. package/dist/ai-edits/table-cell-mutations.js +7 -4
  40. package/dist/ai-edits/table-geometry.d.ts +6 -6
  41. package/dist/ai-edits/table-mutation-plan.d.ts +5 -5
  42. package/dist/ai-edits/table-mutation-plan.js +1 -4
  43. package/dist/ai-edits/table-row-column-mutations.d.ts +16 -16
  44. package/dist/ai-edits/table-targets.d.ts +8 -9
  45. package/dist/ai-edits/table-template.d.ts +6 -6
  46. package/dist/ai-edits/types.d.ts +48 -44
  47. package/dist/ai-edits/word-diff.d.ts +12 -13
  48. package/dist/ai-edits/word-diff.js +23 -21
  49. package/dist/ai-suggestions/apply.d.ts +3 -3
  50. package/dist/ai-suggestions/apply.js +0 -12
  51. package/dist/ai-suggestions/conflict.d.ts +4 -5
  52. package/dist/ai-suggestions/conflict.js +3 -1
  53. package/dist/ai-suggestions/text-positions.d.ts +3 -4
  54. package/dist/ai-suggestions/types.d.ts +13 -14
  55. package/dist/compare/column-alignment.d.ts +4 -5
  56. package/dist/compare/compare.d.ts +12 -12
  57. package/dist/compare/compare.js +2 -1
  58. package/dist/compare/content-alignment.d.ts +16 -16
  59. package/dist/compare/content-alignment.js +29 -25
  60. package/dist/compare/content-types.d.ts +23 -24
  61. package/dist/compare/content.d.ts +27 -27
  62. package/dist/compare/content.js +6 -3
  63. package/dist/compare/formatting.d.ts +2 -2
  64. package/dist/compare/import-style-closure.d.ts +2 -2
  65. package/dist/compare/inline-atom-resources.d.ts +2 -3
  66. package/dist/compare/inline-atoms.d.ts +6 -7
  67. package/dist/compare/inline-provenance.d.ts +6 -7
  68. package/dist/compare/inline-provenance.js +22 -20
  69. package/dist/compare/inserted-resource-snapshot.d.ts +3 -3
  70. package/dist/compare/plan.d.ts +5 -6
  71. package/dist/compare/plan.js +5 -6
  72. package/dist/compare/reproducible-package.d.ts +2 -3
  73. package/dist/compare/reproducible-package.js +1 -1
  74. package/dist/compare/scenario.d.ts +9 -9
  75. package/dist/compare/section-boundary-properties.d.ts +6 -6
  76. package/dist/compare/section-boundary-properties.js +4 -4
  77. package/dist/compare/style-resources.d.ts +5 -6
  78. package/dist/compare/types.d.ts +29 -28
  79. package/dist/compare/types.js +14 -7
  80. package/dist/compare/verification.d.ts +11 -11
  81. package/dist/content-controls/checkboxDisplay.d.ts +2 -2
  82. package/dist/content-controls/checkboxDisplay.js +2 -1
  83. package/dist/content-controls/errors.d.ts +8 -7
  84. package/dist/content-controls/errors.js +6 -3
  85. package/dist/content-controls/findContentControls.d.ts +7 -8
  86. package/dist/content-controls/mutateContentControls.d.ts +17 -6
  87. package/dist/content-controls/mutateContentControls.js +3 -2
  88. package/dist/controller/activeEditorStory.d.ts +4 -5
  89. package/dist/controller/canonicalClipboard.d.ts +3 -3
  90. package/dist/controller/canonicalClipboard.js +3 -1
  91. package/dist/controller/canonicalClipboardResources.d.ts +3 -3
  92. package/dist/controller/canonicalClipboardResources.js +3 -2
  93. package/dist/controller/canonicalComments.d.ts +7 -6
  94. package/dist/controller/canonicalComments.js +2 -1
  95. package/dist/controller/canonicalComposition.d.ts +2 -2
  96. package/dist/controller/canonicalComposition.js +11 -14
  97. package/dist/controller/canonicalInlineProjection.d.ts +11 -10
  98. package/dist/controller/canonicalInlineProjection.js +70 -38
  99. package/dist/controller/canonicalInput.d.ts +3 -3
  100. package/dist/controller/canonicalInput.js +1 -3
  101. package/dist/controller/canonicalInputTimer.d.ts +5 -6
  102. package/dist/controller/canonicalListRendering.d.ts +6 -5
  103. package/dist/controller/canonicalOperations.d.ts +6 -6
  104. package/dist/controller/canonicalPublicOperations.d.ts +13 -13
  105. package/dist/controller/canonicalPublicOperations.js +14 -15
  106. package/dist/controller/canonicalReview.d.ts +2 -2
  107. package/dist/controller/canonicalSelection.d.ts +2 -2
  108. package/dist/controller/canonicalSelection.js +15 -0
  109. package/dist/controller/canonicalSession.d.ts +25 -17
  110. package/dist/controller/canonicalSession.js +231 -43
  111. package/dist/controller/canonicalStoryEditor.d.ts +2 -2
  112. package/dist/controller/canonicalStructure.d.ts +3 -3
  113. package/dist/controller/canonicalStructure.js +144 -21
  114. package/dist/controller/canonicalTocSelection.d.ts +2 -2
  115. package/dist/controller/collaborationModules.d.ts +2 -3
  116. package/dist/controller/committedLayoutDiff.d.ts +4 -5
  117. package/dist/controller/contentControlWidgetController.d.ts +7 -8
  118. package/dist/controller/folioEditor.d.ts +6 -6
  119. package/dist/controller/folioEditorEvents.d.ts +7 -8
  120. package/dist/controller/fontReadiness.d.ts +12 -12
  121. package/dist/controller/fontReadiness.js +123 -31
  122. package/dist/controller/headerFooterEditorManager.d.ts +9 -10
  123. package/dist/controller/headerFooterEditorManager.js +3 -10
  124. package/dist/controller/hiddenEditorApi.d.ts +5 -5
  125. package/dist/controller/hiddenEditorManager.d.ts +15 -14
  126. package/dist/controller/hiddenEditorManager.js +4 -1
  127. package/dist/controller/hyphenationReadiness.d.ts +4 -5
  128. package/dist/controller/hyphenationReadiness.js +0 -1
  129. package/dist/controller/latestRequestGate.d.ts +3 -4
  130. package/dist/controller/layoutPipeline.d.ts +7 -8
  131. package/dist/controller/layoutPipeline.js +16 -5
  132. package/dist/controller/layoutRunOptions.d.ts +4 -5
  133. package/dist/controller/layoutScheduler.d.ts +8 -9
  134. package/dist/controller/layoutSession.d.ts +7 -7
  135. package/dist/controller/noteEditorManager.d.ts +7 -7
  136. package/dist/controller/noteEditorManager.js +0 -1
  137. package/dist/controller/readOnlySelection.d.ts +12 -0
  138. package/dist/controller/readOnlySelection.js +62 -0
  139. package/dist/display-list/build/buildContext.d.ts +8 -6
  140. package/dist/display-list/build/buildDisplayList.d.ts +6 -6
  141. package/dist/display-list/build/buildDisplayList.js +20 -2
  142. package/dist/display-list/build/colors.d.ts +6 -7
  143. package/dist/display-list/build/commentAnnotations.d.ts +3 -4
  144. package/dist/display-list/build/floatingImages.d.ts +5 -6
  145. package/dist/display-list/build/fontTable.d.ts +4 -5
  146. package/dist/display-list/build/fontTable.js +2 -1
  147. package/dist/display-list/build/furniture.d.ts +7 -6
  148. package/dist/display-list/build/furniture.js +1 -0
  149. package/dist/display-list/build/glyphs.d.ts +7 -7
  150. package/dist/display-list/build/glyphs.js +17 -26
  151. package/dist/display-list/build/headerFooterPrimitives.d.ts +4 -5
  152. package/dist/display-list/build/headerFooterPrimitives.js +5 -1
  153. package/dist/display-list/build/imagePrimitives.d.ts +5 -5
  154. package/dist/display-list/build/imagePrimitives.js +0 -10
  155. package/dist/display-list/build/pageBorderPrimitives.d.ts +4 -5
  156. package/dist/display-list/build/pageBorderPrimitives.js +8 -11
  157. package/dist/display-list/build/pageFurniture.d.ts +6 -7
  158. package/dist/display-list/build/pageFurniture.js +5 -1
  159. package/dist/display-list/build/paragraphPrimitives.d.ts +5 -4
  160. package/dist/display-list/build/paragraphPrimitives.js +138 -108
  161. package/dist/display-list/build/previewPrimitives.d.ts +2 -3
  162. package/dist/display-list/build/previewPrimitives.js +38 -9
  163. package/dist/display-list/build/regions.d.ts +5 -5
  164. package/dist/display-list/build/storyPrimitives.d.ts +4 -4
  165. package/dist/display-list/build/strokes.d.ts +10 -10
  166. package/dist/display-list/build/tablePrimitives.d.ts +5 -5
  167. package/dist/display-list/build/tablePrimitives.js +15 -2
  168. package/dist/display-list/build/textBoxPrimitives.d.ts +3 -4
  169. package/dist/display-list/build/textBoxPrimitives.js +4 -0
  170. package/dist/display-list/build/textDecorations.d.ts +10 -11
  171. package/dist/display-list/build/unsupported.d.ts +4 -5
  172. package/dist/display-list/build/watermarkPrimitives.d.ts +5 -4
  173. package/dist/display-list/build/watermarkPrimitives.js +5 -17
  174. package/dist/display-list/dom/renderDisplayListToDom.d.ts +8 -8
  175. package/dist/display-list/dom/renderDisplayListToDom.js +52 -10
  176. package/dist/display-list/editor/displayListPagePainter.d.ts +4 -5
  177. package/dist/display-list/editor/pageRenderer.d.ts +5 -6
  178. package/dist/display-list/editor/pageRenderer.js +1 -0
  179. package/dist/display-list/html/renderDisplayListToHtml.d.ts +5 -6
  180. package/dist/display-list/pageResourceOwnership.d.ts +4 -0
  181. package/dist/display-list/pageResourceOwnership.js +32 -0
  182. package/dist/display-list/primitives.d.ts +13 -13
  183. package/dist/display-list/primitives.js +2 -0
  184. package/dist/display-list/selectDisplayPages.d.ts +2 -3
  185. package/dist/display-list/types.d.ts +54 -33
  186. package/dist/document-operations.d.ts +59 -46
  187. package/dist/document-operations.js +41 -4
  188. package/dist/document-stories.d.ts +3 -4
  189. package/dist/docx/altChunk.d.ts +5 -6
  190. package/dist/docx/appVersionNormalization.d.ts +6 -5
  191. package/dist/docx/appVersionNormalization.js +2 -1
  192. package/dist/docx/archiveInflation.d.ts +16 -16
  193. package/dist/docx/archiveInflation.js +1 -1
  194. package/dist/docx/attributeRemainder.d.ts +10 -9
  195. package/dist/docx/attributeRemainder.js +36 -1
  196. package/dist/docx/blockContentParser.d.ts +15 -7
  197. package/dist/docx/blockContentParser.js +5 -6
  198. package/dist/docx/blockCustomXmlShell.d.ts +2 -3
  199. package/dist/docx/blockPlainText.d.ts +3 -4
  200. package/dist/docx/blockPlainText.js +5 -1
  201. package/dist/docx/bookmarkIdNormalization.d.ts +2 -3
  202. package/dist/docx/bookmarkIds.d.ts +5 -6
  203. package/dist/docx/bookmarkParser.d.ts +20 -21
  204. package/dist/docx/bookmarkParser.js +3 -2
  205. package/dist/docx/borderParser.d.ts +2 -3
  206. package/dist/docx/builtInStyles.d.ts +11 -11
  207. package/dist/docx/bulletMarkers.d.ts +8 -3
  208. package/dist/docx/bulletMarkers.js +3 -43
  209. package/dist/docx/canonicalModel.d.ts +2 -0
  210. package/dist/docx/canonicalModel.js +1 -0
  211. package/dist/docx/canonicalResourceSave.d.ts +5 -4
  212. package/dist/docx/canonicalResourceSave.js +2 -1
  213. package/dist/docx/canonicalSave.d.ts +8 -6
  214. package/dist/docx/canonicalSave.js +2 -1
  215. package/dist/docx/canonicalSessionInput.d.ts +5 -4
  216. package/dist/docx/canonicalSessionInput.js +2 -1
  217. package/dist/docx/canonicalStoryRepack.d.ts +2 -2
  218. package/dist/docx/chartPreview.d.ts +6 -0
  219. package/dist/docx/chartPreview.js +302 -0
  220. package/dist/docx/commentAnchorIndex.d.ts +6 -5
  221. package/dist/docx/commentAnchorIndex.js +236 -1
  222. package/dist/docx/commentIdNormalization.d.ts +4 -5
  223. package/dist/docx/commentParser.d.ts +4 -5
  224. package/dist/docx/commentParser.js +2 -1
  225. package/dist/docx/commentRangeIntegrity.d.ts +6 -5
  226. package/dist/docx/commentRangeIntegrity.js +17 -1
  227. package/dist/docx/commentRangeJoin.d.ts +2 -3
  228. package/dist/docx/commentReferenceCompletion.d.ts +2 -3
  229. package/dist/docx/commentReferenceNormalization.d.ts +4 -4
  230. package/dist/docx/commentReplyMarkers.d.ts +3 -4
  231. package/dist/docx/commentTextParagraph.d.ts +2 -3
  232. package/dist/docx/commentThreadKey.d.ts +2 -3
  233. package/dist/docx/compatibility.d.ts +12 -13
  234. package/dist/docx/conformance.d.ts +2 -3
  235. package/dist/docx/conformance.js +1 -1
  236. package/dist/docx/containerChildren.d.ts +18 -18
  237. package/dist/docx/containerChildren.gen.d.ts +5 -6
  238. package/dist/docx/contentTypeRegistry.d.ts +2 -2
  239. package/dist/docx/corePropertiesParser.d.ts +2 -2
  240. package/dist/docx/danglingRelationshipReferences.d.ts +3 -3
  241. package/dist/docx/defaultParagraphStyle.d.ts +6 -6
  242. package/dist/docx/diagramPreview.d.ts +5 -4
  243. package/dist/docx/diagramPreview.js +8 -3
  244. package/dist/docx/documentClone.js +1 -2
  245. package/dist/docx/documentGrid.d.ts +2 -2
  246. package/dist/docx/documentParser.d.ts +11 -11
  247. package/dist/docx/documentSectionFacts.d.ts +5 -6
  248. package/dist/docx/drawingAnchor.d.ts +14 -14
  249. package/dist/docx/drawingGroupChildren.d.ts +8 -8
  250. package/dist/docx/drawingIdNormalization.d.ts +3 -4
  251. package/dist/docx/drawingRelationships.d.ts +2 -2
  252. package/dist/docx/drawingUtils.d.ts +16 -17
  253. package/dist/docx/drawingUtils.js +4 -2
  254. package/dist/docx/encryption/agileDecryption.d.ts +2 -3
  255. package/dist/docx/encryption/compoundFile.d.ts +5 -6
  256. package/dist/docx/encryption/containerFormat.d.ts +4 -5
  257. package/dist/docx/encryption/cryptoBytes.d.ts +8 -9
  258. package/dist/docx/encryption/encryptionInfo.d.ts +5 -6
  259. package/dist/docx/encryption/errors.d.ts +7 -6
  260. package/dist/docx/encryption/errors.js +2 -1
  261. package/dist/docx/encryption/openEncryptedDocx.d.ts +5 -6
  262. package/dist/docx/ensureParaIds.d.ts +8 -7
  263. package/dist/docx/ensureParaIds.js +3 -2
  264. package/dist/docx/fieldParser.d.ts +32 -33
  265. package/dist/docx/fieldParser.js +8 -6
  266. package/dist/docx/fieldState.d.ts +5 -6
  267. package/dist/docx/foldedListNumberFields.d.ts +15 -16
  268. package/dist/docx/fontTableParser.d.ts +2 -3
  269. package/dist/docx/footnoteParser.d.ts +11 -11
  270. package/dist/docx/footnoteParser.js +19 -0
  271. package/dist/docx/graphicFrameLocks.d.ts +5 -6
  272. package/dist/docx/groupDrawingParser.d.ts +4 -5
  273. package/dist/docx/groupDrawingParser.js +10 -5
  274. package/dist/docx/headerFooterParser.d.ts +14 -14
  275. package/dist/docx/headerFooterRefParser.d.ts +6 -7
  276. package/dist/docx/headerFooterReferenceNormalization.d.ts +5 -5
  277. package/dist/docx/headerFooterVerbatim.d.ts +16 -16
  278. package/dist/docx/hyperlinkParser.d.ts +20 -21
  279. package/dist/docx/hyperlinkParser.js +54 -11
  280. package/dist/docx/imageParser.d.ts +19 -19
  281. package/dist/docx/imageParser.js +6 -3
  282. package/dist/docx/imageRawXml.d.ts +9 -10
  283. package/dist/docx/importedIdCollisions.d.ts +3 -4
  284. package/dist/docx/index.d.ts +1 -0
  285. package/dist/docx/inlineContentRemovals.d.ts +2 -3
  286. package/dist/docx/inlineWrapperContent.d.ts +38 -33
  287. package/dist/docx/inlineWrapperContent.js +29 -23
  288. package/dist/docx/inlineWrapperParser.d.ts +4 -5
  289. package/dist/docx/inlineWrapperParser.js +14 -0
  290. package/dist/docx/linkedSdtPreservation.d.ts +6 -4
  291. package/dist/docx/linkedSdtPreservation.js +2 -1
  292. package/dist/docx/listMarkerComputation.d.ts +4 -5
  293. package/dist/docx/listModelNormalization.d.ts +2 -2
  294. package/dist/docx/listModelNormalization.js +15 -11
  295. package/dist/docx/listNumberingInstances.d.ts +8 -8
  296. package/dist/docx/listRendering.d.ts +5 -6
  297. package/dist/docx/listTemplate.d.ts +5 -5
  298. package/dist/docx/markupRangeMarker.d.ts +21 -4
  299. package/dist/docx/markupRangeMarker.js +35 -1
  300. package/dist/docx/mathToMathml.d.ts +8 -3
  301. package/dist/docx/mathToMathml.js +72 -4
  302. package/dist/docx/metadataPrivacy.d.ts +17 -16
  303. package/dist/docx/metadataPrivacy.js +7 -5
  304. package/dist/docx/metafileRaster.d.ts +4 -5
  305. package/dist/docx/metafileSvg.d.ts +2 -3
  306. package/dist/docx/metafileSvg.js +28 -39
  307. package/dist/docx/metafileSvgShared.d.ts +27 -0
  308. package/dist/docx/metafileSvgShared.js +28 -0
  309. package/dist/docx/modelValidation.d.ts +5 -6
  310. package/dist/docx/modelValidation.js +144 -1
  311. package/dist/docx/newImage.d.ts +2 -3
  312. package/dist/docx/nonVisualDrawingProps.d.ts +3 -3
  313. package/dist/docx/normalizeBaseDirection.d.ts +2 -3
  314. package/dist/docx/normalizeBaseDirection.js +6 -2
  315. package/dist/docx/noteIds.d.ts +2 -3
  316. package/dist/docx/notePropertiesParser.d.ts +3 -4
  317. package/dist/docx/noteReferenceMark.d.ts +6 -6
  318. package/dist/docx/noteReferenceStyles.d.ts +7 -8
  319. package/dist/docx/noteReferenceStyles.js +0 -13
  320. package/dist/docx/numberingIds.d.ts +3 -3
  321. package/dist/docx/numberingParser.d.ts +15 -16
  322. package/dist/docx/numberingParser.js +6 -30
  323. package/dist/docx/numberingReference.d.ts +2 -2
  324. package/dist/docx/numberingReferenceNormalization.d.ts +5 -5
  325. package/dist/docx/numberingReferenceNormalization.js +6 -9
  326. package/dist/docx/numericIdAllocator.d.ts +2 -2
  327. package/dist/docx/numericIdAllocator.js +2 -1
  328. package/dist/docx/numericIdNormalization.d.ts +3 -3
  329. package/dist/docx/numericIdNormalization.js +0 -1
  330. package/dist/docx/ooxmlCounterFormatter.d.ts +3 -4
  331. package/dist/docx/opaqueCarrier.d.ts +5 -6
  332. package/dist/docx/packageParts.d.ts +8 -9
  333. package/dist/docx/paraIdAttribute.d.ts +11 -12
  334. package/dist/docx/paraIdRangeNormalization.d.ts +3 -4
  335. package/dist/docx/paragraphMarkPropertyPresence.d.ts +4 -5
  336. package/dist/docx/paragraphParser.d.ts +9 -9
  337. package/dist/docx/paragraphParser.js +45 -23
  338. package/dist/docx/paragraphProperties.d.ts +2 -3
  339. package/dist/docx/paragraphProperties.js +15 -2
  340. package/dist/docx/paragraphPropertySource.d.ts +58 -57
  341. package/dist/docx/paragraphPropertySource.js +39 -2
  342. package/dist/docx/paragraphTextBoxEnrichment.d.ts +2 -3
  343. package/dist/docx/paragraphTextBoxEnrichment.js +21 -6
  344. package/dist/docx/paragraphTraversal.d.ts +19 -10
  345. package/dist/docx/paragraphTraversal.js +110 -75
  346. package/dist/docx/parseContext.d.ts +5 -6
  347. package/dist/docx/parseWarningMessage.d.ts +3 -4
  348. package/dist/docx/parser.d.ts +13 -12
  349. package/dist/docx/parser.js +45 -16
  350. package/dist/docx/parserEnums.d.ts +37 -38
  351. package/dist/docx/preservedRunContent.d.ts +5 -6
  352. package/dist/docx/preservedRunContent.js +16 -0
  353. package/dist/docx/previewBudget.d.ts +6 -6
  354. package/dist/docx/previewBudget.js +1 -1
  355. package/dist/docx/propertyElementAttributes.d.ts +10 -11
  356. package/dist/docx/rasterMime.d.ts +4 -4
  357. package/dist/docx/relsParser.d.ts +20 -21
  358. package/dist/docx/removeHeaderFooterParts.d.ts +2 -2
  359. package/dist/docx/renderedPageBreakNormalization.d.ts +2 -2
  360. package/dist/docx/replyToComment.d.ts +4 -5
  361. package/dist/docx/replyToComment.js +2 -1
  362. package/dist/docx/reviewHistoryNamespace.d.ts +2 -3
  363. package/dist/docx/reviewResolutionProvenance.d.ts +17 -13
  364. package/dist/docx/reviewResolutionProvenance.js +17 -5
  365. package/dist/docx/revisionIdNormalization.d.ts +6 -5
  366. package/dist/docx/revisionIdNormalization.js +2 -1
  367. package/dist/docx/rezip.d.ts +43 -42
  368. package/dist/docx/rezip.js +117 -125
  369. package/dist/docx/runConsolidator.d.ts +7 -7
  370. package/dist/docx/runConsolidator.js +13 -0
  371. package/dist/docx/runParser.d.ts +12 -13
  372. package/dist/docx/runParser.js +31 -10
  373. package/dist/docx/runPayload.d.ts +2 -3
  374. package/dist/docx/runPropertyPresence.d.ts +7 -8
  375. package/dist/docx/saveDiagnostics.d.ts +3 -4
  376. package/dist/docx/sdtProperties.d.ts +6 -7
  377. package/dist/docx/sdtPropertiesPatch.d.ts +2 -3
  378. package/dist/docx/sectionParser.d.ts +15 -16
  379. package/dist/docx/sectionReferenceHistory.d.ts +8 -7
  380. package/dist/docx/sectionReferenceHistory.js +2 -1
  381. package/dist/docx/selectedXmlIdentityScan.d.ts +2 -3
  382. package/dist/docx/selectiveSave.d.ts +3 -4
  383. package/dist/docx/selectiveSave.js +6 -3
  384. package/dist/docx/selectiveSaveFlags.d.ts +5 -6
  385. package/dist/docx/selectiveSaveFlags.js +1 -1
  386. package/dist/docx/selectiveSaveTripwire.d.ts +3 -4
  387. package/dist/docx/selectiveXmlPatch.d.ts +28 -28
  388. package/dist/docx/serializer/blockCustomXmlSerializer.d.ts +2 -3
  389. package/dist/docx/serializer/blockSdtSerializer.d.ts +2 -3
  390. package/dist/docx/serializer/blockSdtSerializer.js +2 -1
  391. package/dist/docx/serializer/borderSerializer.d.ts +2 -2
  392. package/dist/docx/serializer/borderSerializer.js +8 -0
  393. package/dist/docx/serializer/commentSerializer.d.ts +7 -8
  394. package/dist/docx/serializer/documentSerializer.d.ts +13 -14
  395. package/dist/docx/serializer/documentSerializer.js +17 -1
  396. package/dist/docx/serializer/fontTableSerializer.d.ts +2 -3
  397. package/dist/docx/serializer/groupTextBoxWriteBack.d.ts +2 -2
  398. package/dist/docx/serializer/groupTextBoxWriteBack.js +1 -4
  399. package/dist/docx/serializer/headerFooterSerializer.d.ts +2 -2
  400. package/dist/docx/serializer/headerFooterSerializer.js +5 -1
  401. package/dist/docx/serializer/markupRangeAttributes.d.ts +11 -6
  402. package/dist/docx/serializer/markupRangeAttributes.js +33 -6
  403. package/dist/docx/serializer/noteSerializer.d.ts +5 -6
  404. package/dist/docx/serializer/noteSerializer.js +26 -1
  405. package/dist/docx/serializer/numberingSerializer.d.ts +2 -3
  406. package/dist/docx/serializer/numberingSerializer.js +14 -0
  407. package/dist/docx/serializer/paragraphSerializer.d.ts +8 -9
  408. package/dist/docx/serializer/paragraphSerializer.js +33 -20
  409. package/dist/docx/serializer/partNamespaces.d.ts +11 -10
  410. package/dist/docx/serializer/partNamespaces.js +2 -1
  411. package/dist/docx/serializer/runSerializer.d.ts +11 -12
  412. package/dist/docx/serializer/runSerializer.js +7 -2
  413. package/dist/docx/serializer/sdtPropertiesSerializer.d.ts +5 -6
  414. package/dist/docx/serializer/sectionPropertiesSerializer.d.ts +2 -3
  415. package/dist/docx/serializer/settingsSerializer.d.ts +2 -3
  416. package/dist/docx/serializer/settingsSerializer.js +9 -6
  417. package/dist/docx/serializer/stylesSerializer.d.ts +3 -4
  418. package/dist/docx/serializer/stylesSerializer.js +4 -1
  419. package/dist/docx/serializer/tableSerializer.d.ts +18 -18
  420. package/dist/docx/serializer/tableSerializer.js +22 -2
  421. package/dist/docx/serializer/textFormattingSerializer.d.ts +3 -3
  422. package/dist/docx/serializer/themeSerializer.d.ts +2 -3
  423. package/dist/docx/serializer/trackedChangeAttributes.d.ts +4 -4
  424. package/dist/docx/serializer/xmlUtils.d.ts +3 -4
  425. package/dist/docx/server/applyDocxXmlPatchProposal.d.ts +12 -11
  426. package/dist/docx/server/applyDocxXmlPatchProposal.js +5 -3
  427. package/dist/docx/server/boundedArchive.d.ts +13 -12
  428. package/dist/docx/server/boundedArchive.js +5 -4
  429. package/dist/docx/server/build.d.ts +16 -15
  430. package/dist/docx/server/build.js +11 -7
  431. package/dist/docx/server/createBilingualDocument.d.ts +15 -14
  432. package/dist/docx/server/createBilingualDocument.js +60 -23
  433. package/dist/docx/server/createBilingualDocx.d.ts +5 -6
  434. package/dist/docx/server/createBilingualDocx.js +7 -3
  435. package/dist/docx/server/docxToMarkdown.d.ts +2 -3
  436. package/dist/docx/server/docxToMarkdown.js +2 -1
  437. package/dist/docx/server/evaluateDocxXmlPatchProposal.d.ts +20 -19
  438. package/dist/docx/server/evaluateDocxXmlPatchProposal.js +6 -4
  439. package/dist/docx/server/extractDocxText.d.ts +10 -11
  440. package/dist/docx/server/extractDocxText.js +3 -2
  441. package/dist/docx/server/inspectDocxPackage.d.ts +16 -15
  442. package/dist/docx/server/inspectDocxPackage.js +5 -4
  443. package/dist/docx/server/materializeYjsDocx.d.ts +10 -9
  444. package/dist/docx/server/materializeYjsDocx.js +3 -2
  445. package/dist/docx/server/migrateYjsAttrSchema.d.ts +8 -8
  446. package/dist/docx/server/migrateYjsAttrSchema.js +5 -4
  447. package/dist/docx/server/validateDocxConformance.d.ts +14 -15
  448. package/dist/docx/settingsHeaderFooterUpdate.d.ts +2 -3
  449. package/dist/docx/settingsParser.d.ts +2 -2
  450. package/dist/docx/settingsParser.js +12 -0
  451. package/dist/docx/shadingParser.d.ts +2 -3
  452. package/dist/docx/shapeAlternateContent.d.ts +8 -7
  453. package/dist/docx/shapeAlternateContent.js +84 -9
  454. package/dist/docx/shapeParser.d.ts +4 -5
  455. package/dist/docx/shapeParser.js +2 -1
  456. package/dist/docx/storyBlockReplay.d.ts +5 -5
  457. package/dist/docx/storyBlockReplay.js +10 -2
  458. package/dist/docx/storyPlainText.d.ts +9 -10
  459. package/dist/docx/streamingXmlParser.d.ts +8 -8
  460. package/dist/docx/strictNames.d.ts +4 -5
  461. package/dist/docx/strictNames.gen.d.ts +6 -7
  462. package/dist/docx/strictValueEncodings.gen.d.ts +5 -6
  463. package/dist/docx/structuralXmlPatch.d.ts +2 -2
  464. package/dist/docx/styleParser.d.ts +11 -12
  465. package/dist/docx/styleParser.js +1 -3
  466. package/dist/docx/styleReferenceResolution.d.ts +3 -4
  467. package/dist/docx/tableLook.d.ts +7 -7
  468. package/dist/docx/tableParser.d.ts +47 -39
  469. package/dist/docx/tableParser.js +2 -4
  470. package/dist/docx/tableRowPropertyPresence.d.ts +5 -6
  471. package/dist/docx/textBoxParser.d.ts +25 -26
  472. package/dist/docx/textBoxParser.js +18 -19
  473. package/dist/docx/themeColorAttribute.d.ts +3 -4
  474. package/dist/docx/themeParser.d.ts +9 -10
  475. package/dist/docx/trackedChangeInfo.d.ts +5 -6
  476. package/dist/docx/trackedMoveRangeNormalization.d.ts +3 -3
  477. package/dist/docx/trackedMoveRangeNormalization.js +52 -21
  478. package/dist/docx/transitionalSpelling.d.ts +7 -8
  479. package/dist/docx/universalMeasure.d.ts +5 -6
  480. package/dist/docx/unzip.d.ts +15 -16
  481. package/dist/docx/unzip.js +2 -2
  482. package/dist/docx/verbatimCapture.d.ts +8 -7
  483. package/dist/docx/verbatimCapture.js +5 -3
  484. package/dist/docx/verticalMergeProjection.d.ts +4 -5
  485. package/dist/docx/verticalMergeProjection.js +1 -1
  486. package/dist/docx/vmlImageParser.d.ts +4 -5
  487. package/dist/docx/vmlPreview.d.ts +9 -10
  488. package/dist/docx/vmlPreview.js +0 -3
  489. package/dist/docx/watermarkParser.d.ts +4 -5
  490. package/dist/docx/wmfSvg.d.ts +10 -0
  491. package/dist/docx/wmfSvg.js +451 -0
  492. package/dist/docx/wordprocessingPrefixes.d.ts +12 -13
  493. package/dist/docx/wrapPolygon.d.ts +5 -6
  494. package/dist/docx/wrapTypes.js +1 -2
  495. package/dist/docx/xmlEncoding.d.ts +2 -3
  496. package/dist/docx/xmlNamespaceContext.d.ts +5 -6
  497. package/dist/docx/xmlParser.d.ts +49 -50
  498. package/dist/docx/xmlParser.js +12 -12
  499. package/dist/docx/xmlResourceLimits.d.ts +12 -11
  500. package/dist/docx/xmlResourceLimits.js +5 -2
  501. package/dist/docx/xmlSafety.d.ts +3 -4
  502. package/dist/export-pdf.d.ts +13 -13
  503. package/dist/export-pdf.js +4 -2
  504. package/dist/fields/bookmarkPages.d.ts +2 -3
  505. package/dist/fields/bookmarkText.d.ts +2 -2
  506. package/dist/fields/bookmarkText.js +3 -2
  507. package/dist/fields/evaluateField.d.ts +3 -3
  508. package/dist/fields/fieldContext.d.ts +2 -3
  509. package/dist/fields/resolveFieldValues.d.ts +7 -8
  510. package/dist/fields/sectionPageCounts.d.ts +2 -3
  511. package/dist/fields/seqValues.d.ts +2 -3
  512. package/dist/fonts/FontFaceLifecycle.d.ts +12 -0
  513. package/dist/fonts/FontFaceLifecycle.js +56 -0
  514. package/dist/fonts/documentFontFacts.d.ts +17 -0
  515. package/dist/fonts/documentFontFacts.js +41 -0
  516. package/dist/fonts/embeddedFontFingerprint.d.ts +2 -3
  517. package/dist/fonts/embeddedFontFingerprint.js +3 -2
  518. package/dist/fonts/embeddedFonts.d.ts +7 -8
  519. package/dist/fonts/fontAlternates.d.ts +4 -5
  520. package/dist/fonts/fontAlternates.js +2 -1
  521. package/dist/fonts/fontDeobfuscation.d.ts +3 -4
  522. package/dist/fonts/fontDeobfuscation.js +7 -3
  523. package/dist/fonts/fontsourceFaces.d.ts +7 -8
  524. package/dist/fonts/fontsourceFaces.js +16 -0
  525. package/dist/fonts/headlessMeasure.d.ts +12 -12
  526. package/dist/fonts/headlessMeasure.js +2 -1
  527. package/dist/fonts/sfnt/parse.d.ts +7 -7
  528. package/dist/fonts/sfnt/parse.js +4 -2
  529. package/dist/fonts/sfnt/subset.d.ts +6 -6
  530. package/dist/fonts/sfnt/subset.js +2 -1
  531. package/dist/fonts/sfnt/tables.d.ts +16 -16
  532. package/dist/fonts/sfnt/tables.js +2 -1
  533. package/dist/fonts/sfnt/woff.d.ts +6 -6
  534. package/dist/fonts/sfnt/woff.js +2 -1
  535. package/dist/headless-layout.d.ts +9 -9
  536. package/dist/headless-layout.js +9 -1
  537. package/dist/i18n/messages/ar.gen.d.ts +2 -2
  538. package/dist/i18n/messages/catalogs.gen.d.ts +2 -3
  539. package/dist/i18n/messages/cs.gen.d.ts +2 -2
  540. package/dist/i18n/messages/de.gen.d.ts +2 -2
  541. package/dist/i18n/messages/en.gen.d.ts +2 -2
  542. package/dist/i18n/messages/es.gen.d.ts +2 -2
  543. package/dist/i18n/messages/et.gen.d.ts +2 -2
  544. package/dist/i18n/messages/fr.gen.d.ts +2 -2
  545. package/dist/i18n/messages/he.gen.d.ts +2 -2
  546. package/dist/i18n/messages/hi.gen.d.ts +2 -2
  547. package/dist/i18n/messages/hu.gen.d.ts +2 -2
  548. package/dist/i18n/messages/locales.d.ts +3 -4
  549. package/dist/i18n/messages/lt.gen.d.ts +2 -2
  550. package/dist/i18n/messages/lv.gen.d.ts +2 -2
  551. package/dist/i18n/messages/pl.gen.d.ts +2 -2
  552. package/dist/i18n/messages/pt-BR.gen.d.ts +2 -2
  553. package/dist/i18n/messages/sk.gen.d.ts +2 -2
  554. package/dist/i18n/messages/tr.gen.d.ts +2 -2
  555. package/dist/i18n/messages/zh-CN.gen.d.ts +2 -2
  556. package/dist/i18n/messages.d.ts +4 -4
  557. package/dist/internal/acceptedBlockProjection.d.ts +2 -3
  558. package/dist/internal/acceptedBlockProjection.js +5 -1
  559. package/dist/internal/compare/inline-presentation.d.ts +4 -4
  560. package/dist/internal/headlessRevisionResolutionGuard.d.ts +2 -3
  561. package/dist/internal/indexedPositionMap.d.ts +2 -3
  562. package/dist/internal/noteMarkerAttrs.d.ts +3 -4
  563. package/dist/internal/pageBreakRunDescendantIndex.d.ts +3 -4
  564. package/dist/internal/pageBreakRunPartition.d.ts +4 -4
  565. package/dist/internal/pageBreakRunSourceDescendantIndex.d.ts +4 -5
  566. package/dist/internal/pageBreakRunSourceDescendantIndex.js +5 -1
  567. package/dist/internal/paragraphFormattingSerialization.d.ts +6 -6
  568. package/dist/internal/paragraphFormattingSerialization.js +3 -1
  569. package/dist/internal/prosemirrorAttrBoundary.d.ts +9 -10
  570. package/dist/internal/prosemirrorAttrBoundary.js +2 -1
  571. package/dist/internal/revisionResolutionEdits.d.ts +2 -2
  572. package/dist/internal/revisionResolutionInline.d.ts +4 -3
  573. package/dist/internal/revisionResolutionInline.js +69 -48
  574. package/dist/internal/revisionResolutionStep.d.ts +3 -3
  575. package/dist/internal/revisionResolutionTracking.d.ts +2 -2
  576. package/dist/internal/revisionResolutionTracking.js +3 -3
  577. package/dist/internal/sectionEndpointResolution.d.ts +5 -5
  578. package/dist/internal/sectionReferenceResolution.d.ts +6 -7
  579. package/dist/internal/wholeStoryRevisionResolution.d.ts +6 -4
  580. package/dist/internal/wholeStoryRevisionResolution.js +168 -52
  581. package/dist/layout-bridge/cellSelectionHighlight.d.ts +2 -3
  582. package/dist/layout-bridge/convert/endnoteLayout.d.ts +8 -8
  583. package/dist/layout-bridge/convert/endnoteLayout.js +2 -1
  584. package/dist/layout-bridge/convert/fixedTableColumnWidths.d.ts +2 -3
  585. package/dist/layout-bridge/convert/flowBlockPostprocessing.d.ts +5 -6
  586. package/dist/layout-bridge/convert/flowBorders.d.ts +3 -4
  587. package/dist/layout-bridge/convert/flowConversionShared.d.ts +9 -7
  588. package/dist/layout-bridge/convert/footnoteLayout.d.ts +14 -14
  589. package/dist/layout-bridge/convert/footnoteLayout.js +10 -0
  590. package/dist/layout-bridge/convert/headerFooterLayout.d.ts +13 -12
  591. package/dist/layout-bridge/convert/headerFooterLayout.js +10 -4
  592. package/dist/layout-bridge/convert/imageConversion.d.ts +6 -7
  593. package/dist/layout-bridge/convert/listMarkers.d.ts +9 -9
  594. package/dist/layout-bridge/convert/markupViewFlow.d.ts +3 -3
  595. package/dist/layout-bridge/convert/noteReferences.d.ts +2 -3
  596. package/dist/layout-bridge/convert/pageBreakSplitting.d.ts +4 -4
  597. package/dist/layout-bridge/convert/pageBreakSplitting.js +4 -0
  598. package/dist/layout-bridge/convert/paragraphAttrs.d.ts +2 -2
  599. package/dist/layout-bridge/convert/paragraphAttrs.js +18 -11
  600. package/dist/layout-bridge/convert/paragraphConversion.d.ts +4 -5
  601. package/dist/layout-bridge/convert/paragraphConversion.js +9 -2
  602. package/dist/layout-bridge/convert/paragraphFrames.d.ts +2 -2
  603. package/dist/layout-bridge/convert/paragraphFrames.js +1 -1
  604. package/dist/layout-bridge/convert/paragraphMarkFormatting.d.ts +3 -4
  605. package/dist/layout-bridge/convert/paragraphRuns.d.ts +3 -4
  606. package/dist/layout-bridge/convert/paragraphRuns.js +35 -14
  607. package/dist/layout-bridge/convert/runFormattingMerge.d.ts +5 -5
  608. package/dist/layout-bridge/convert/runFormattingMerge.js +1 -0
  609. package/dist/layout-bridge/convert/runMarkFormatting.d.ts +2 -3
  610. package/dist/layout-bridge/convert/runMarkFormatting.js +12 -4
  611. package/dist/layout-bridge/convert/sectionBoundaries.d.ts +6 -6
  612. package/dist/layout-bridge/convert/tableConversion.d.ts +3 -4
  613. package/dist/layout-bridge/convert/tableConversion.js +1 -1
  614. package/dist/layout-bridge/convert/templatePreviewFlow.d.ts +6 -7
  615. package/dist/layout-bridge/convert/textBoxFill.d.ts +3 -4
  616. package/dist/layout-bridge/convert/textFormattingConversion.d.ts +8 -7
  617. package/dist/layout-bridge/convert/textFormattingConversion.js +10 -1
  618. package/dist/layout-bridge/convert/toFlowBlocks.d.ts +3 -3
  619. package/dist/layout-bridge/convert/toFlowBlocks.js +19 -11
  620. package/dist/layout-bridge/convert/wrapEditorViewAsSurface.d.ts +3 -4
  621. package/dist/layout-bridge/dom/clickToPositionDom.d.ts +12 -13
  622. package/dist/layout-bridge/dom/clickToPositionDom.js +30 -4
  623. package/dist/layout-bridge/dom/findBodyPmSpans.d.ts +5 -6
  624. package/dist/layout-bridge/dom/findHfPmSpans.d.ts +10 -11
  625. package/dist/layout-bridge/dom/imeCaretAnchor.d.ts +3 -3
  626. package/dist/layout-bridge/dom/noteStoryDom.d.ts +2 -3
  627. package/dist/layout-bridge/dom/textStreamDom.d.ts +16 -9
  628. package/dist/layout-bridge/dom/textStreamDom.js +18 -3
  629. package/dist/layout-bridge/engine/clickToPosition.d.ts +8 -9
  630. package/dist/layout-bridge/engine/clickToPosition.js +77 -94
  631. package/dist/layout-bridge/engine/hitTest.d.ts +18 -19
  632. package/dist/layout-bridge/engine/hitTest.js +2 -1
  633. package/dist/layout-bridge/engine/linePmRange.d.ts +7 -0
  634. package/dist/layout-bridge/engine/linePmRange.js +34 -0
  635. package/dist/layout-bridge/engine/selectionRects.d.ts +7 -8
  636. package/dist/layout-bridge/engine/selectionRects.js +53 -77
  637. package/dist/layout-bridge/headerFooterLayout.d.ts +4 -5
  638. package/dist/layout-bridge/measuring/measureBlocksPipeline.d.ts +2 -3
  639. package/dist/layout-bridge/sectionColumns.d.ts +2 -3
  640. package/dist/layout-bridge/tableInsertHover.d.ts +6 -7
  641. package/dist/layout-engine/anchorLayoutInCellCompatibility.d.ts +2 -3
  642. package/dist/layout-engine/footnoteColumnReflow.d.ts +2 -2
  643. package/dist/layout-engine/headerFooterRefs.d.ts +2 -3
  644. package/dist/layout-engine/imageLayout.d.ts +2 -3
  645. package/dist/layout-engine/index.d.ts +3 -3
  646. package/dist/layout-engine/index.js +9 -6
  647. package/dist/layout-engine/justificationCompatibility.d.ts +2 -3
  648. package/dist/layout-engine/keep-together.d.ts +7 -8
  649. package/dist/layout-engine/keep-together.js +1 -1
  650. package/dist/layout-engine/layoutFlowShared.d.ts +3 -4
  651. package/dist/layout-engine/layoutInstrumentation.d.ts +18 -19
  652. package/dist/layout-engine/lineFlow.d.ts +4 -5
  653. package/dist/layout-engine/measure/advanceComposition.d.ts +8 -8
  654. package/dist/layout-engine/measure/advanceComposition.js +24 -5
  655. package/dist/layout-engine/measure/automaticTextSpacing.d.ts +36 -0
  656. package/dist/layout-engine/measure/automaticTextSpacing.js +178 -0
  657. package/dist/layout-engine/measure/cache.d.ts +22 -22
  658. package/dist/layout-engine/measure/cache.js +50 -14
  659. package/dist/layout-engine/measure/clampFloatingWrapMargins.d.ts +2 -3
  660. package/dist/layout-engine/measure/complexScriptFormatting.d.ts +5 -5
  661. package/dist/layout-engine/measure/crossRunWords.d.ts +8 -8
  662. package/dist/layout-engine/measure/crossRunWords.js +9 -4
  663. package/dist/layout-engine/measure/effectiveLineBreakPolicy.d.ts +3 -3
  664. package/dist/layout-engine/measure/effectiveLineBreakPolicy.js +3 -1
  665. package/dist/layout-engine/measure/featureFlags.d.ts +4 -5
  666. package/dist/layout-engine/measure/floatingLineClearance.d.ts +3 -4
  667. package/dist/layout-engine/measure/floatingTablePosition.d.ts +3 -3
  668. package/dist/layout-engine/measure/floatingZones.d.ts +11 -10
  669. package/dist/layout-engine/measure/font-metrics.worker.d.ts +3 -4
  670. package/dist/layout-engine/measure/font-metrics.worker.js +2 -1
  671. package/dist/layout-engine/measure/hyperlinkInstance.d.ts +3 -4
  672. package/dist/layout-engine/measure/hyphenationDictionaries.d.ts +17 -34
  673. package/dist/layout-engine/measure/hyphenationDictionaries.js +6 -5
  674. package/dist/layout-engine/measure/hyphenationPreload.d.ts +2 -3
  675. package/dist/layout-engine/measure/inlineObjectMetrics.d.ts +3 -4
  676. package/dist/layout-engine/measure/justification.d.ts +7 -7
  677. package/dist/layout-engine/measure/lineBreakProvider.d.ts +16 -11
  678. package/dist/layout-engine/measure/lineBreakProvider.js +29 -4
  679. package/dist/layout-engine/measure/lineBreaks.d.ts +7 -8
  680. package/dist/layout-engine/measure/lineBreaks.js +5 -2
  681. package/dist/layout-engine/measure/lineFitting.d.ts +11 -11
  682. package/dist/layout-engine/measure/lineFitting.js +17 -6
  683. package/dist/layout-engine/measure/lineTypography.d.ts +7 -8
  684. package/dist/layout-engine/measure/lineTypography.js +1 -0
  685. package/dist/layout-engine/measure/listMarkerWidth.d.ts +9 -6
  686. package/dist/layout-engine/measure/listMarkerWidth.js +7 -3
  687. package/dist/layout-engine/measure/measureBlocks.d.ts +7 -7
  688. package/dist/layout-engine/measure/measureBlocks.js +13 -7
  689. package/dist/layout-engine/measure/measureContainer.d.ts +5 -6
  690. package/dist/layout-engine/measure/measureContainer.js +27 -6
  691. package/dist/layout-engine/measure/measureHelpers.d.ts +21 -18
  692. package/dist/layout-engine/measure/measureHelpers.js +12 -3
  693. package/dist/layout-engine/measure/measureParagraph.d.ts +5 -5
  694. package/dist/layout-engine/measure/measureParagraph.js +57 -11
  695. package/dist/layout-engine/measure/measureProvider.d.ts +15 -9
  696. package/dist/layout-engine/measure/measureProvider.js +66 -4
  697. package/dist/layout-engine/measure/measureTypes.d.ts +17 -14
  698. package/dist/layout-engine/measure/measureWorker.d.ts +8 -8
  699. package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +6 -7
  700. package/dist/layout-engine/measure/paragraphMeasureShared.d.ts +19 -20
  701. package/dist/layout-engine/measure/paragraphTabs.d.ts +6 -7
  702. package/dist/layout-engine/measure/paragraphTabs.js +16 -17
  703. package/dist/layout-engine/measure/smallCapsCasing.d.ts +6 -7
  704. package/dist/layout-engine/measure/tabCalculator.d.ts +15 -16
  705. package/dist/layout-engine/measure/tableCellFloating.d.ts +6 -6
  706. package/dist/layout-engine/measure/tableCellFlow.d.ts +7 -7
  707. package/dist/layout-engine/measure/tableCellGrid.d.ts +14 -14
  708. package/dist/layout-engine/measure/tableFragmentBorderGeometry.d.ts +2 -2
  709. package/dist/layout-engine/measure/tableInlinePlacement.d.ts +3 -3
  710. package/dist/layout-engine/measure/textBoxParagraphLayout.d.ts +4 -4
  711. package/dist/layout-engine/measure/textMeasurementPolicy.d.ts +8 -8
  712. package/dist/layout-engine/noColumnBalanceCompatibility.d.ts +7 -0
  713. package/dist/layout-engine/noColumnBalanceCompatibility.js +5 -0
  714. package/dist/layout-engine/noteAreaFlow.d.ts +4 -5
  715. package/dist/layout-engine/paginator.d.ts +18 -11
  716. package/dist/layout-engine/paginator.js +51 -11
  717. package/dist/layout-engine/paragraphFragmentRange.d.ts +2 -3
  718. package/dist/layout-engine/paragraphFrame.d.ts +2 -21
  719. package/dist/layout-engine/paragraphFrame.js +1 -17
  720. package/dist/layout-engine/paragraphLayout.d.ts +2 -2
  721. package/dist/layout-engine/paragraphLayout.js +28 -9
  722. package/dist/layout-engine/paragraphSequence.d.ts +3 -4
  723. package/dist/layout-engine/paragraphSpacing.d.ts +10 -10
  724. package/dist/layout-engine/pmPageIndex.d.ts +3 -4
  725. package/dist/layout-engine/renderedBreakReconciliation.d.ts +7 -7
  726. package/dist/layout-engine/section-breaks.d.ts +15 -15
  727. package/dist/layout-engine/sectionLayout.d.ts +7 -7
  728. package/dist/layout-engine/sectionLayout.js +1 -4
  729. package/dist/layout-engine/sectionVerticalAlignment.d.ts +2 -3
  730. package/dist/layout-engine/tableIndentCompatibility.d.ts +2 -3
  731. package/dist/layout-engine/tableLayout.d.ts +4 -5
  732. package/dist/layout-engine/tableLayout.js +17 -9
  733. package/dist/layout-engine/tableRowBreak.d.ts +6 -6
  734. package/dist/layout-engine/tableRowBreak.js +10 -5
  735. package/dist/layout-engine/textBoxFlow.d.ts +6 -6
  736. package/dist/layout-engine/textBoxGroup.d.ts +3 -4
  737. package/dist/layout-engine/textBoxLayout.d.ts +2 -2
  738. package/dist/layout-engine/types.d.ts +108 -88
  739. package/dist/layout-painter/anchoredImagePosition.d.ts +4 -5
  740. package/dist/layout-painter/borderStroke.d.ts +4 -4
  741. package/dist/layout-painter/cursiveJoiners.d.ts +7 -7
  742. package/dist/layout-painter/documentColors.d.ts +6 -7
  743. package/dist/layout-painter/imageLayout.d.ts +13 -14
  744. package/dist/layout-painter/index.d.ts +8 -7
  745. package/dist/layout-painter/index.js +7 -2
  746. package/dist/layout-painter/registry/modules/image.d.ts +2 -3
  747. package/dist/layout-painter/registry/modules/paragraph.d.ts +2 -3
  748. package/dist/layout-painter/registry/modules/table.d.ts +2 -3
  749. package/dist/layout-painter/registry/modules/textBox.d.ts +2 -3
  750. package/dist/layout-painter/registry/modules.d.ts +2 -3
  751. package/dist/layout-painter/registry/registry.d.ts +4 -5
  752. package/dist/layout-painter/registry/types.d.ts +8 -9
  753. package/dist/layout-painter/renderFragment.d.ts +4 -5
  754. package/dist/layout-painter/renderImage.d.ts +12 -13
  755. package/dist/layout-painter/renderPage.d.ts +27 -25
  756. package/dist/layout-painter/renderPage.js +116 -31
  757. package/dist/layout-painter/renderParagraph.d.ts +19 -15
  758. package/dist/layout-painter/renderParagraph.js +186 -46
  759. package/dist/layout-painter/renderTable.d.ts +7 -8
  760. package/dist/layout-painter/renderTable.js +27 -15
  761. package/dist/layout-painter/renderTextBox.d.ts +5 -6
  762. package/dist/layout-painter/renderTextBox.js +9 -1
  763. package/dist/layout-painter/renderUtils.d.ts +11 -14
  764. package/dist/layout-painter/renderUtils.js +1 -19
  765. package/dist/layout-painter/renderWatermark.d.ts +5 -4
  766. package/dist/layout-painter/sdtBoundary.d.ts +4 -5
  767. package/dist/layout-painter/tableRowPaintGeometry.d.ts +2 -2
  768. package/dist/managers/AutoSaveManager.d.ts +11 -12
  769. package/dist/managers/AutoSaveManager.js +17 -3
  770. package/dist/managers/ClipboardManager.d.ts +7 -8
  771. package/dist/managers/ContextMenuManager.d.ts +3 -4
  772. package/dist/managers/DocumentLoaderManager.d.ts +5 -6
  773. package/dist/managers/EditorModeManager.d.ts +12 -12
  774. package/dist/managers/ErrorManager.d.ts +2 -3
  775. package/dist/managers/FindReplaceManager.d.ts +6 -6
  776. package/dist/managers/HistoryManager.d.ts +9 -10
  777. package/dist/managers/Subscribable.d.ts +2 -3
  778. package/dist/managers/TableSelectionManager.d.ts +9 -10
  779. package/dist/managers/TableSelectionManager.js +3 -13
  780. package/dist/managers/autoSaveCodec.d.ts +8 -9
  781. package/dist/managers/editorShortcuts.d.ts +14 -15
  782. package/dist/managers/reviewDisplayMode.d.ts +4 -5
  783. package/dist/managers/types.d.ts +7 -8
  784. package/dist/markdown/annotations.d.ts +6 -7
  785. package/dist/markdown/escape.d.ts +6 -7
  786. package/dist/markdown/fromMarkdown.d.ts +2 -3
  787. package/dist/markdown/images.d.ts +2 -3
  788. package/dist/markdown/index.d.ts +3 -3
  789. package/dist/markdown/index.js +28 -2
  790. package/dist/markdown/internals.d.ts +4 -5
  791. package/dist/markdown/internals.js +3 -2
  792. package/dist/markdown/renderBlock.d.ts +2 -3
  793. package/dist/markdown/renderBlock.js +5 -1
  794. package/dist/markdown/renderParagraph.d.ts +4 -5
  795. package/dist/markdown/renderParagraph.js +42 -17
  796. package/dist/markdown/renderRuns.d.ts +3 -3
  797. package/dist/markdown/renderRuns.js +15 -10
  798. package/dist/markdown/renderTable.d.ts +2 -3
  799. package/dist/markdown/renderTable.js +21 -8
  800. package/dist/markdown/trailers.d.ts +2 -3
  801. package/dist/markdown/types.d.ts +7 -8
  802. package/dist/model.d.ts +1 -1
  803. package/dist/paged-layout/LayoutSelectionGate.d.ts +2 -2
  804. package/dist/paged-layout/blockGeometry.d.ts +5 -6
  805. package/dist/paged-layout/editorScrollRoot.d.ts +5 -5
  806. package/dist/paged-layout/fitWidthZoom.d.ts +36 -0
  807. package/dist/paged-layout/fitWidthZoom.js +31 -0
  808. package/dist/paged-layout/hiddenEditorScroll.d.ts +2 -3
  809. package/dist/paged-layout/incrementalMeasure.d.ts +6 -7
  810. package/dist/paged-layout/pageText.d.ts +2 -2
  811. package/dist/paged-layout/paragraphFlash.d.ts +7 -7
  812. package/dist/paged-layout/paragraphFlashTypes.d.ts +3 -4
  813. package/dist/paged-layout/rangeProjection.d.ts +11 -12
  814. package/dist/paged-layout/readOnlyEditAttempt.d.ts +2 -2
  815. package/dist/paged-layout/scrollNavigation.d.ts +5 -6
  816. package/dist/paged-layout/scrollPageInfo.d.ts +5 -6
  817. package/dist/paged-layout/scrollToPmPosition.d.ts +4 -5
  818. package/dist/paged-layout/sectionBlockWidths.d.ts +3 -3
  819. package/dist/paged-layout/sectionBlockWidths.js +0 -3
  820. package/dist/paged-layout/sectionGeometry.d.ts +10 -11
  821. package/dist/paged-layout/selectionViewportRect.d.ts +5 -6
  822. package/dist/paged-layout/tableColumnResize.d.ts +2 -3
  823. package/dist/paged-layout/tableInsertButtonGeometry.d.ts +2 -3
  824. package/dist/paged-layout/transactionDirtyRange.d.ts +2 -3
  825. package/dist/paged-layout/zoomScrollAnchor.d.ts +5 -5
  826. package/dist/panel-layout.d.ts +11 -12
  827. package/dist/pdf/contentStream.d.ts +11 -12
  828. package/dist/pdf/fonts.d.ts +11 -11
  829. package/dist/pdf/fonts.js +2 -20
  830. package/dist/pdf/images.d.ts +7 -7
  831. package/dist/pdf/images.js +6 -2
  832. package/dist/pdf/objects.d.ts +23 -24
  833. package/dist/pdf/pageSpace.d.ts +9 -10
  834. package/dist/pdf/paint.d.ts +8 -8
  835. package/dist/pdf/paint.js +30 -2
  836. package/dist/pdf/writePdf.d.ts +8 -8
  837. package/dist/pdf/writePdf.js +2 -1
  838. package/dist/prosemirror/addTrackedDeletionMark.d.ts +2 -2
  839. package/dist/prosemirror/alternateContentAttrs.d.ts +5 -4
  840. package/dist/prosemirror/alternateContentAttrs.js +13 -3
  841. package/dist/prosemirror/anchoredTextBoxes.d.ts +10 -11
  842. package/dist/prosemirror/attrs/index.d.ts +86 -86
  843. package/dist/prosemirror/attrs/index.js +127 -99
  844. package/dist/prosemirror/authoredTransformAttrs.d.ts +3 -3
  845. package/dist/prosemirror/autospacingBase.d.ts +5 -5
  846. package/dist/prosemirror/bookmarkBoundaryAttrs.d.ts +7 -7
  847. package/dist/prosemirror/bookmarkBoundaryAttrs.js +31 -2
  848. package/dist/prosemirror/bookmarkBoundaryIntegrity.d.ts +3 -4
  849. package/dist/prosemirror/canonicalCommands.d.ts +38 -21
  850. package/dist/prosemirror/canonicalCommands.js +5 -4
  851. package/dist/prosemirror/canonicalSelectionRange.d.ts +14 -4
  852. package/dist/prosemirror/canonicalSelectionRange.js +20 -1
  853. package/dist/prosemirror/cellDragSelection.d.ts +6 -7
  854. package/dist/prosemirror/cellDragSelection.js +9 -0
  855. package/dist/prosemirror/clearRunColor.d.ts +2 -3
  856. package/dist/prosemirror/clearRunColor.js +8 -5
  857. package/dist/prosemirror/clipboardIntent.d.ts +3 -4
  858. package/dist/prosemirror/commands/clearParagraphIndent.d.ts +2 -3
  859. package/dist/prosemirror/commands/comments.d.ts +28 -28
  860. package/dist/prosemirror/commands/comments.js +220 -83
  861. package/dist/prosemirror/commands/contentControls.d.ts +9 -9
  862. package/dist/prosemirror/commands/contentControls.js +2 -1
  863. package/dist/prosemirror/commands/contentControlsBlockFill.d.ts +2 -3
  864. package/dist/prosemirror/commands/contentControlsBlockFill.js +2 -1
  865. package/dist/prosemirror/commands/formatPainter.d.ts +5 -5
  866. package/dist/prosemirror/commands/formatPainter.js +14 -11
  867. package/dist/prosemirror/commands/formatting.d.ts +20 -20
  868. package/dist/prosemirror/commands/hyperlink.d.ts +5 -6
  869. package/dist/prosemirror/commands/hyperlink.js +7 -6
  870. package/dist/prosemirror/commands/image.d.ts +14 -14
  871. package/dist/prosemirror/commands/pageBreak.d.ts +2 -3
  872. package/dist/prosemirror/commands/pageBreak.js +2 -1
  873. package/dist/prosemirror/commands/paragraph.d.ts +35 -35
  874. package/dist/prosemirror/commands/paragraphBookmarkJoin.d.ts +5 -5
  875. package/dist/prosemirror/commands/paragraphBookmarkJoin.js +4 -7
  876. package/dist/prosemirror/commands/pastePlainText.d.ts +4 -5
  877. package/dist/prosemirror/commands/propertyChangeScope.d.ts +13 -13
  878. package/dist/prosemirror/commands/propertyChangeScope.js +2 -0
  879. package/dist/prosemirror/commands/resolveAllTableChanges.d.ts +3 -3
  880. package/dist/prosemirror/commands/resolveNodePropertyChangeAttrs.d.ts +3 -3
  881. package/dist/prosemirror/commands/resolveParagraphProperties.d.ts +3 -3
  882. package/dist/prosemirror/commands/resolveParagraphProperties.js +1 -1
  883. package/dist/prosemirror/commands/sectionBreak.d.ts +9 -8
  884. package/dist/prosemirror/commands/sectionBreak.js +14 -1
  885. package/dist/prosemirror/commands/table.d.ts +34 -34
  886. package/dist/prosemirror/commands/tableCellMergeResolution.d.ts +8 -8
  887. package/dist/prosemirror/commands/tableCellMergeResolution.js +3 -2
  888. package/dist/prosemirror/commands/tableMergeFoldDecisions.d.ts +19 -18
  889. package/dist/prosemirror/commentBoundaryOwnership.d.ts +15 -0
  890. package/dist/prosemirror/commentBoundaryOwnership.js +4 -0
  891. package/dist/prosemirror/commentIdAllocator.d.ts +10 -9
  892. package/dist/prosemirror/commentIdAllocator.js +4 -1
  893. package/dist/prosemirror/commentOps.d.ts +6 -7
  894. package/dist/prosemirror/commentOps.js +3 -19
  895. package/dist/prosemirror/commentRangeBoundaryAttrs.d.ts +16 -0
  896. package/dist/prosemirror/commentRangeBoundaryAttrs.js +51 -0
  897. package/dist/prosemirror/commentRangeInlineAtoms.d.ts +5 -5
  898. package/dist/prosemirror/commentRangeInlineAtoms.js +1 -0
  899. package/dist/prosemirror/commentReferenceAttrs.d.ts +3 -4
  900. package/dist/prosemirror/commentReferenceAttrs.js +4 -1
  901. package/dist/prosemirror/commentReferenceIntegrity.d.ts +15 -6
  902. package/dist/prosemirror/commentReferenceIntegrity.js +93 -1
  903. package/dist/prosemirror/containerFinalParagraph.d.ts +4 -4
  904. package/dist/prosemirror/contentControlRevisions.d.ts +7 -7
  905. package/dist/prosemirror/conversion/effectiveTableCellFormatting.d.ts +4 -4
  906. package/dist/prosemirror/conversion/fromProseDoc.d.ts +10 -10
  907. package/dist/prosemirror/conversion/fromProseDoc.js +477 -178
  908. package/dist/prosemirror/conversion/hyphenTextCarriers.d.ts +2 -3
  909. package/dist/prosemirror/conversion/markInterner.d.ts +2 -3
  910. package/dist/prosemirror/conversion/preservedSinkCarriers.d.ts +5 -5
  911. package/dist/prosemirror/conversion/runShadingMark.d.ts +3 -4
  912. package/dist/prosemirror/conversion/sdtAttrs.d.ts +6 -7
  913. package/dist/prosemirror/conversion/toProseDoc.d.ts +15 -9
  914. package/dist/prosemirror/conversion/toProseDoc.js +318 -202
  915. package/dist/prosemirror/copyOriginDom.d.ts +8 -0
  916. package/dist/prosemirror/copyOriginDom.js +21 -0
  917. package/dist/prosemirror/copyOriginResolution.d.ts +15 -0
  918. package/dist/prosemirror/copyOriginResolution.js +202 -0
  919. package/dist/prosemirror/documentSchema.d.ts +2 -3
  920. package/dist/prosemirror/emptyFieldResultRuns.d.ts +3 -3
  921. package/dist/prosemirror/emptyRangeAnchor.d.ts +6 -6
  922. package/dist/prosemirror/executeEditorCommand.d.ts +4 -5
  923. package/dist/prosemirror/extensions/ExtensionManager.d.ts +2 -3
  924. package/dist/prosemirror/extensions/StarterKit.d.ts +3 -4
  925. package/dist/prosemirror/extensions/StarterKit.js +5 -1
  926. package/dist/prosemirror/extensions/core/DocExtension.d.ts +2 -6
  927. package/dist/prosemirror/extensions/core/DocExtension.js +1 -1
  928. package/dist/prosemirror/extensions/core/HistoryExtension.d.ts +3 -6
  929. package/dist/prosemirror/extensions/core/HistoryExtension.js +5 -4
  930. package/dist/prosemirror/extensions/core/ParagraphExtension.d.ts +8 -9
  931. package/dist/prosemirror/extensions/core/ParagraphExtension.js +17 -9
  932. package/dist/prosemirror/extensions/core/TextExtension.d.ts +2 -6
  933. package/dist/prosemirror/extensions/create.d.ts +4 -5
  934. package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.d.ts +6 -7
  935. package/dist/prosemirror/extensions/features/BaseKeymapExtension.d.ts +3 -4
  936. package/dist/prosemirror/extensions/features/BidiShortcutExtension.d.ts +2 -13
  937. package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.d.ts +2 -13
  938. package/dist/prosemirror/extensions/features/DropCursorExtension.d.ts +2 -9
  939. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.d.ts +7 -8
  940. package/dist/prosemirror/extensions/features/GapCursorExtension.d.ts +2 -16
  941. package/dist/prosemirror/extensions/features/ImageDragExtension.d.ts +2 -12
  942. package/dist/prosemirror/extensions/features/ImagePasteExtension.d.ts +2 -9
  943. package/dist/prosemirror/extensions/features/ImagePasteExtension.js +2 -1
  944. package/dist/prosemirror/extensions/features/JoinedRunStyleExtension.d.ts +3 -18
  945. package/dist/prosemirror/extensions/features/ListExtension.d.ts +6 -7
  946. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +11 -10
  947. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +94 -53
  948. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +20 -20
  949. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +2 -1
  950. package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +2 -19
  951. package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.d.ts +4 -15
  952. package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.js +5 -2
  953. package/dist/prosemirror/extensions/features/SelectionTrackerExtension.d.ts +2 -2
  954. package/dist/prosemirror/extensions/features/SelectionTrackerExtension.js +2 -8
  955. package/dist/prosemirror/extensions/features/bidiShortcutController.d.ts +5 -6
  956. package/dist/prosemirror/extensions/features/clipboardTrackedRevisions.d.ts +4 -0
  957. package/dist/prosemirror/extensions/features/clipboardTrackedRevisions.js +72 -0
  958. package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +4 -4
  959. package/dist/prosemirror/extensions/features/pasteCleanup.js +3 -2
  960. package/dist/prosemirror/extensions/features/pastedHeadingStyles.d.ts +2 -3
  961. package/dist/prosemirror/extensions/features/pastedHtmlLists.d.ts +3 -4
  962. package/dist/prosemirror/extensions/markRegistry.d.ts +4 -5
  963. package/dist/prosemirror/extensions/marks/AllCapsExtension.d.ts +2 -6
  964. package/dist/prosemirror/extensions/marks/BoldExtension.d.ts +2 -6
  965. package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.d.ts +2 -11
  966. package/dist/prosemirror/extensions/marks/CharacterStyleExtension.d.ts +2 -17
  967. package/dist/prosemirror/extensions/marks/CommentExtension.d.ts +2 -9
  968. package/dist/prosemirror/extensions/marks/FontFamilyExtension.d.ts +2 -6
  969. package/dist/prosemirror/extensions/marks/FontFamilyExtension.js +12 -4
  970. package/dist/prosemirror/extensions/marks/FontSizeExtension.d.ts +2 -6
  971. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.d.ts +2 -8
  972. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.js +42 -4
  973. package/dist/prosemirror/extensions/marks/HiddenTextExtension.d.ts +2 -20
  974. package/dist/prosemirror/extensions/marks/HighlightExtension.d.ts +4 -4
  975. package/dist/prosemirror/extensions/marks/HighlightExtension.js +6 -4
  976. package/dist/prosemirror/extensions/marks/HyperlinkExtension.d.ts +5 -6
  977. package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +9 -3
  978. package/dist/prosemirror/extensions/marks/InlineWrapperExtension.d.ts +3 -16
  979. package/dist/prosemirror/extensions/marks/ItalicExtension.d.ts +2 -6
  980. package/dist/prosemirror/extensions/marks/LanguageExtension.d.ts +2 -3
  981. package/dist/prosemirror/extensions/marks/RtlExtension.d.ts +2 -3
  982. package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.d.ts +5 -5
  983. package/dist/prosemirror/extensions/marks/RunIdentityExtension.d.ts +3 -3
  984. package/dist/prosemirror/extensions/marks/RunShadingExtension.d.ts +2 -3
  985. package/dist/prosemirror/extensions/marks/SmallCapsExtension.d.ts +2 -6
  986. package/dist/prosemirror/extensions/marks/StrikeExtension.d.ts +2 -6
  987. package/dist/prosemirror/extensions/marks/StrikeExtension.js +9 -3
  988. package/dist/prosemirror/extensions/marks/SubscriptExtension.d.ts +2 -6
  989. package/dist/prosemirror/extensions/marks/SubscriptExtension.js +3 -2
  990. package/dist/prosemirror/extensions/marks/SuperscriptExtension.d.ts +2 -6
  991. package/dist/prosemirror/extensions/marks/SuperscriptExtension.js +3 -2
  992. package/dist/prosemirror/extensions/marks/TextColorExtension.d.ts +2 -6
  993. package/dist/prosemirror/extensions/marks/TextColorExtension.js +7 -6
  994. package/dist/prosemirror/extensions/marks/TextEffectExtension.d.ts +2 -3
  995. package/dist/prosemirror/extensions/marks/TextEffectsExtensions.d.ts +6 -13
  996. package/dist/prosemirror/extensions/marks/TextEffectsExtensions.js +1 -4
  997. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.d.ts +4 -12
  998. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +18 -2
  999. package/dist/prosemirror/extensions/marks/UnderlineExtension.d.ts +2 -6
  1000. package/dist/prosemirror/extensions/marks/UnderlineExtension.js +10 -3
  1001. package/dist/prosemirror/extensions/marks/markUtils.d.ts +83 -25
  1002. package/dist/prosemirror/extensions/marks/markUtils.js +138 -74
  1003. package/dist/prosemirror/extensions/marks/noteReferenceDeletion.d.ts +3 -3
  1004. package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.d.ts +6 -25
  1005. package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.js +4 -4
  1006. package/dist/prosemirror/extensions/nodes/BlockCustomXmlExtension.d.ts +2 -3
  1007. package/dist/prosemirror/extensions/nodes/BlockMoveRangeBoundaryExtension.d.ts +10 -0
  1008. package/dist/prosemirror/extensions/nodes/BlockMoveRangeBoundaryExtension.js +59 -0
  1009. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +2 -20
  1010. package/dist/prosemirror/extensions/nodes/BookmarkBoundaryExtension.d.ts +3 -4
  1011. package/dist/prosemirror/extensions/nodes/BookmarkBoundaryExtension.js +1 -1
  1012. package/dist/prosemirror/extensions/nodes/CommentRangeBoundaryExtension.d.ts +10 -0
  1013. package/dist/prosemirror/extensions/nodes/CommentRangeBoundaryExtension.js +43 -0
  1014. package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.d.ts +3 -5
  1015. package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.js +5 -73
  1016. package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +3 -11
  1017. package/dist/prosemirror/extensions/nodes/FieldExtension.js +12 -2
  1018. package/dist/prosemirror/extensions/nodes/HardBreakExtension.d.ts +2 -6
  1019. package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.d.ts +2 -6
  1020. package/dist/prosemirror/extensions/nodes/ImageExtension.d.ts +2 -6
  1021. package/dist/prosemirror/extensions/nodes/MathExtension.d.ts +2 -10
  1022. package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.d.ts +4 -5
  1023. package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.js +8 -4
  1024. package/dist/prosemirror/extensions/nodes/NoteMarkerExtension.d.ts +3 -4
  1025. package/dist/prosemirror/extensions/nodes/PageBreakExtension.d.ts +2 -6
  1026. package/dist/prosemirror/extensions/nodes/PageBreakRunExtension.d.ts +2 -4
  1027. package/dist/prosemirror/extensions/nodes/PreservedBlockExtension.d.ts +3 -29
  1028. package/dist/prosemirror/extensions/nodes/PreservedXmlExtension.d.ts +3 -13
  1029. package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.d.ts +4 -5
  1030. package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.js +20 -4
  1031. package/dist/prosemirror/extensions/nodes/RenderedPageBreakExtension.d.ts +3 -5
  1032. package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +3 -10
  1033. package/dist/prosemirror/extensions/nodes/ShapeExtension.d.ts +11 -11
  1034. package/dist/prosemirror/extensions/nodes/ShapeExtension.js +5 -6
  1035. package/dist/prosemirror/extensions/nodes/SymbolExtension.d.ts +2 -3
  1036. package/dist/prosemirror/extensions/nodes/SymbolExtension.js +3 -3
  1037. package/dist/prosemirror/extensions/nodes/TabExtension.d.ts +2 -6
  1038. package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +10 -10
  1039. package/dist/prosemirror/extensions/nodes/TableExtension.js +11 -13
  1040. package/dist/prosemirror/extensions/nodes/TextBoxAnchorExtension.d.ts +3 -10
  1041. package/dist/prosemirror/extensions/nodes/TextBoxExtension.d.ts +4 -5
  1042. package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.d.ts +7 -5
  1043. package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.js +9 -3
  1044. package/dist/prosemirror/extensions/types.d.ts +27 -27
  1045. package/dist/prosemirror/fieldRepresentation.d.ts +6 -5
  1046. package/dist/prosemirror/fieldRepresentation.js +13 -3
  1047. package/dist/prosemirror/findReplaceSelection.d.ts +9 -9
  1048. package/dist/prosemirror/hyperlinkRemoval.d.ts +6 -5
  1049. package/dist/prosemirror/hyperlinkRemoval.js +14 -1
  1050. package/dist/prosemirror/imageCommit.d.ts +5 -23
  1051. package/dist/prosemirror/imageCommit.js +1 -29
  1052. package/dist/prosemirror/imagePictureNames.d.ts +4 -5
  1053. package/dist/prosemirror/indexedNodeLookup.d.ts +4 -4
  1054. package/dist/prosemirror/inlineDisplayText.d.ts +4 -5
  1055. package/dist/prosemirror/inlineWrapperStack.d.ts +8 -9
  1056. package/dist/prosemirror/insertOperations.d.ts +4 -4
  1057. package/dist/prosemirror/keptRangeBoundaries.d.ts +76 -0
  1058. package/dist/prosemirror/keptRangeBoundaries.js +381 -0
  1059. package/dist/prosemirror/listAutoformatMarkers.d.ts +3 -4
  1060. package/dist/prosemirror/listInstanceReferences.d.ts +3 -4
  1061. package/dist/prosemirror/listInstanceReferences.js +1 -1
  1062. package/dist/prosemirror/listLabels.d.ts +15 -5
  1063. package/dist/prosemirror/listLabels.js +101 -16
  1064. package/dist/prosemirror/listMarker.d.ts +13 -13
  1065. package/dist/prosemirror/listMarker.js +7 -2
  1066. package/dist/prosemirror/listNumbering.d.ts +11 -11
  1067. package/dist/prosemirror/listNumbering.js +0 -16
  1068. package/dist/prosemirror/listRendering.d.ts +5 -5
  1069. package/dist/prosemirror/listRendering.js +4 -0
  1070. package/dist/prosemirror/listRenderingAttrs.d.ts +12 -11
  1071. package/dist/prosemirror/listRenderingAttrs.js +9 -5
  1072. package/dist/prosemirror/listState.d.ts +9 -10
  1073. package/dist/prosemirror/markupViewNotes.d.ts +2 -3
  1074. package/dist/prosemirror/markupViewProjection.d.ts +12 -11
  1075. package/dist/prosemirror/moveRangeBoundaryAttrs.d.ts +7 -6
  1076. package/dist/prosemirror/moveRangeBoundaryAttrs.js +27 -4
  1077. package/dist/prosemirror/noteReferenceOccurrenceId.d.ts +2 -3
  1078. package/dist/prosemirror/noteReferenceOccurrences.d.ts +12 -11
  1079. package/dist/prosemirror/noteReferenceOccurrences.js +4 -2
  1080. package/dist/prosemirror/noteReferenceReview.d.ts +13 -13
  1081. package/dist/prosemirror/noteReferenceReview.js +4 -10
  1082. package/dist/prosemirror/numberedRefFields.d.ts +5 -5
  1083. package/dist/prosemirror/numberingAttr.d.ts +14 -14
  1084. package/dist/prosemirror/outlineLevelAttr.d.ts +3 -4
  1085. package/dist/prosemirror/pageBreakRunProjection.d.ts +5 -5
  1086. package/dist/prosemirror/paraText.d.ts +4 -5
  1087. package/dist/prosemirror/paragraphAlignment.d.ts +2 -3
  1088. package/dist/prosemirror/paragraphDirection.d.ts +8 -9
  1089. package/dist/prosemirror/paragraphFormattingProvenance.d.ts +14 -7
  1090. package/dist/prosemirror/paragraphFormattingProvenance.js +8 -0
  1091. package/dist/prosemirror/paragraphIndentation.d.ts +7 -7
  1092. package/dist/prosemirror/paragraphList.d.ts +39 -0
  1093. package/dist/prosemirror/paragraphList.js +81 -0
  1094. package/dist/prosemirror/paragraphMarkJoin.d.ts +12 -2
  1095. package/dist/prosemirror/paragraphMarkJoin.js +34 -3
  1096. package/dist/prosemirror/paragraphPropertyCarry.d.ts +7 -7
  1097. package/dist/prosemirror/paragraphSpacing.d.ts +9 -9
  1098. package/dist/prosemirror/paragraphSpacing.js +16 -10
  1099. package/dist/prosemirror/pluginKeyOwner.d.ts +3 -4
  1100. package/dist/prosemirror/plugins/aiCitationDecorations.d.ts +10 -10
  1101. package/dist/prosemirror/plugins/aiCitationDecorations.js +0 -12
  1102. package/dist/prosemirror/plugins/aiSuggestionDecorations.d.ts +10 -10
  1103. package/dist/prosemirror/plugins/aiSuggestionDecorations.js +0 -14
  1104. package/dist/prosemirror/plugins/anonymizationDecorations.d.ts +11 -11
  1105. package/dist/prosemirror/plugins/anonymizationDecorations.js +0 -18
  1106. package/dist/prosemirror/plugins/autocompleteSuggestion.d.ts +21 -21
  1107. package/dist/prosemirror/plugins/autocompleteSuggestion.js +3 -25
  1108. package/dist/prosemirror/plugins/contentControlWidgets.d.ts +14 -14
  1109. package/dist/prosemirror/plugins/contentControlWidgets.js +13 -7
  1110. package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +6 -6
  1111. package/dist/prosemirror/plugins/documentNumbering.d.ts +11 -9
  1112. package/dist/prosemirror/plugins/documentNumbering.js +42 -42
  1113. package/dist/prosemirror/plugins/documentStyleState.d.ts +9 -10
  1114. package/dist/prosemirror/plugins/documentStyles.d.ts +4 -4
  1115. package/dist/prosemirror/plugins/documentStyles.js +2 -1
  1116. package/dist/prosemirror/plugins/lockedControlKeyHandling.d.ts +4 -0
  1117. package/dist/prosemirror/plugins/lockedControlKeyHandling.js +16 -0
  1118. package/dist/prosemirror/plugins/paragraphStyleResolution.d.ts +3 -3
  1119. package/dist/prosemirror/plugins/paragraphStyleResolution.js +23 -1
  1120. package/dist/prosemirror/plugins/pmTextScan.d.ts +5 -6
  1121. package/dist/prosemirror/plugins/revisionIds.d.ts +13 -12
  1122. package/dist/prosemirror/plugins/revisionIds.js +13 -1
  1123. package/dist/prosemirror/plugins/selectionTracker.d.ts +9 -10
  1124. package/dist/prosemirror/plugins/suggestionMode.d.ts +18 -18
  1125. package/dist/prosemirror/plugins/suggestionMode.js +11 -3
  1126. package/dist/prosemirror/plugins/templateDirectives.d.ts +12 -12
  1127. package/dist/prosemirror/plugins/templateDirectives.js +0 -17
  1128. package/dist/prosemirror/plugins/templatePreviewValues.d.ts +16 -16
  1129. package/dist/prosemirror/plugins/templatePreviewValues.js +0 -23
  1130. package/dist/prosemirror/plugins/templateSlashMenu.d.ts +12 -13
  1131. package/dist/prosemirror/plugins/templateSlashMenu.js +3 -21
  1132. package/dist/prosemirror/plugins/transactionInvariants.d.ts +7 -8
  1133. package/dist/prosemirror/positionSweep.d.ts +4 -5
  1134. package/dist/prosemirror/positionSweep.js +1 -1
  1135. package/dist/prosemirror/preservedXmlReview.d.ts +3 -4
  1136. package/dist/prosemirror/queries.d.ts +5 -6
  1137. package/dist/prosemirror/rangeAnchorAttrs.d.ts +4 -5
  1138. package/dist/prosemirror/rangeAnchorAttrs.js +4 -1
  1139. package/dist/prosemirror/rebaseParagraphRunFormatting.d.ts +3 -3
  1140. package/dist/prosemirror/rebaseParagraphRunFormatting.js +6 -5
  1141. package/dist/prosemirror/rebaseParagraphRuns.d.ts +4 -4
  1142. package/dist/prosemirror/rebaseParagraphRuns.js +15 -11
  1143. package/dist/prosemirror/rejoinRunCarriers.d.ts +3 -3
  1144. package/dist/prosemirror/replacedAnnotations.d.ts +31 -17
  1145. package/dist/prosemirror/replacedAnnotations.js +80 -11
  1146. package/dist/prosemirror/revisionCarriers.d.ts +13 -13
  1147. package/dist/prosemirror/runContentProjection.d.ts +6 -0
  1148. package/dist/prosemirror/runContentProjection.js +24 -0
  1149. package/dist/prosemirror/runFormattingFromMarks.d.ts +5 -6
  1150. package/dist/prosemirror/runFormattingFromMarks.js +19 -17
  1151. package/dist/prosemirror/runFormattingInlineCarriers.d.ts +16 -15
  1152. package/dist/prosemirror/runFormattingInlineCarriers.js +1 -0
  1153. package/dist/prosemirror/runFormattingMarkNames.d.ts +2 -3
  1154. package/dist/prosemirror/runFormattingProvenance.d.ts +5 -6
  1155. package/dist/prosemirror/runFormattingReconciliation.d.ts +4 -4
  1156. package/dist/prosemirror/runFormattingReconciliation.js +6 -4
  1157. package/dist/prosemirror/runIdentity.d.ts +6 -7
  1158. package/dist/prosemirror/runIdentityAcrossRevisions.d.ts +16 -5
  1159. package/dist/prosemirror/runIdentityAcrossRevisions.js +92 -32
  1160. package/dist/prosemirror/runPropertyChangeResolution.d.ts +3 -3
  1161. package/dist/prosemirror/runPropertyChangeResolution.js +11 -10
  1162. package/dist/prosemirror/runStyleFormatting.d.ts +23 -23
  1163. package/dist/prosemirror/runStyleFormatting.js +4 -2
  1164. package/dist/prosemirror/schema/index.d.ts +7 -6
  1165. package/dist/prosemirror/schema/index.js +0 -7
  1166. package/dist/prosemirror/schema/marks.d.ts +36 -39
  1167. package/dist/prosemirror/schema/nodes.d.ts +42 -35
  1168. package/dist/prosemirror/sectionCarrier.d.ts +7 -8
  1169. package/dist/prosemirror/sectionMarkEdits.d.ts +3 -4
  1170. package/dist/prosemirror/sectionMarkEdits.js +21 -1
  1171. package/dist/prosemirror/selectionMarks.d.ts +2 -2
  1172. package/dist/prosemirror/selectionState.d.ts +5 -6
  1173. package/dist/prosemirror/selectionState.js +1 -4
  1174. package/dist/prosemirror/shapeGeometryAdjustments.d.ts +2 -3
  1175. package/dist/prosemirror/storyListNumbering.d.ts +2 -2
  1176. package/dist/prosemirror/storyListNumbering.js +2 -1
  1177. package/dist/prosemirror/styles/index.js +1 -2
  1178. package/dist/prosemirror/styles/paragraphStyleCascade.d.ts +9 -9
  1179. package/dist/prosemirror/styles/paragraphStyleCascade.js +17 -2
  1180. package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +8 -8
  1181. package/dist/prosemirror/styles/styleResolver.d.ts +6 -7
  1182. package/dist/prosemirror/styles/styleResolver.js +17 -0
  1183. package/dist/prosemirror/styles/styleToggleCascade.d.ts +4 -4
  1184. package/dist/prosemirror/styles/tableStyleRegions.d.ts +5 -6
  1185. package/dist/prosemirror/tableCellMergeRevision.d.ts +3 -4
  1186. package/dist/prosemirror/tableCellPaste.d.ts +11 -12
  1187. package/dist/prosemirror/tableCellRevisionVisibility.d.ts +2 -3
  1188. package/dist/prosemirror/tableGridMutation.d.ts +12 -12
  1189. package/dist/prosemirror/tableResize.d.ts +18 -18
  1190. package/dist/prosemirror/tableResize.js +64 -53
  1191. package/dist/prosemirror/tableRunIn.d.ts +10 -5
  1192. package/dist/prosemirror/tableRunIn.js +44 -9
  1193. package/dist/prosemirror/textBoxAnchorAttrs.d.ts +3 -4
  1194. package/dist/prosemirror/textBoxAnchorAttrs.js +4 -1
  1195. package/dist/prosemirror/textBoxHostCollapse.d.ts +8 -0
  1196. package/dist/prosemirror/textBoxHostCollapse.js +79 -0
  1197. package/dist/prosemirror/textBoxHostParagraph.d.ts +2 -3
  1198. package/dist/prosemirror/textInput.d.ts +13 -6
  1199. package/dist/prosemirror/textInput.js +26 -2
  1200. package/dist/prosemirror/trackedRevisionPath.d.ts +6 -6
  1201. package/dist/prosemirror/trackedRevisionPath.js +7 -4
  1202. package/dist/prosemirror/trackedRunInlineAtoms.d.ts +8 -8
  1203. package/dist/prosemirror/trackedRunInlineAtoms.js +3 -2
  1204. package/dist/prosemirror/utils/extractTrackedChanges.d.ts +4 -5
  1205. package/dist/prosemirror/utils/findParagraphByParaId.d.ts +3 -4
  1206. package/dist/prosemirror/utils/tabCalculator.js +1 -2
  1207. package/dist/prosemirror/utils/visualLineNavigation.d.ts +7 -7
  1208. package/dist/prosemirror/utils/visualLineNavigation.js +2 -14
  1209. package/dist/prosemirror/validation.d.ts +7 -8
  1210. package/dist/prosemirror/validation.js +25 -10
  1211. package/dist/prosemirror/yjsDocumentMetadata.d.ts +19 -19
  1212. package/dist/prosemirror/yjsDocumentMetadata.js +21 -15
  1213. package/dist/prosemirror/zeroWidthAnchors.d.ts +7 -6
  1214. package/dist/prosemirror/zeroWidthAnchors.js +53 -16
  1215. package/dist/redline.d.ts +11 -10
  1216. package/dist/redline.js +6 -3
  1217. package/dist/redlineOperationLimit.d.ts +5 -4
  1218. package/dist/redlineOperationLimit.js +2 -1
  1219. package/dist/render-dom/BodySelectionOverlay.d.ts +4 -5
  1220. package/dist/render-dom/HeaderFooterSelectionOverlay.d.ts +6 -7
  1221. package/dist/render-dom/RemoteSelectionOverlay.d.ts +5 -6
  1222. package/dist/render-dom/RenderedDomContext.d.ts +6 -7
  1223. package/dist/render-dom/commentAnchorAttributes.d.ts +6 -6
  1224. package/dist/render-dom/resolveSidebarItemPositions.d.ts +5 -6
  1225. package/dist/reviewHistoryLimits.d.ts +3 -0
  1226. package/dist/reviewHistoryLimits.js +4 -0
  1227. package/dist/server.d.ts +2 -1
  1228. package/dist/server.js +2 -1
  1229. package/dist/shaping/placeRun.d.ts +7 -8
  1230. package/dist/shaping/shaper.d.ts +18 -36
  1231. package/dist/shaping/shaper.js +2 -1
  1232. package/dist/style-engine/index.js +1 -2
  1233. package/dist/style-engine/styleEngine.d.ts +5 -6
  1234. package/dist/style-sets/extract.d.ts +8 -9
  1235. package/dist/style-sets/stellaStyle.d.ts +4 -5
  1236. package/dist/style-sets/styleSetNormalization.d.ts +6 -7
  1237. package/dist/style-sets/types.d.ts +5 -6
  1238. package/dist/symbols.d.ts +8 -9
  1239. package/dist/types/block-id.d.ts +11 -12
  1240. package/dist/types/canonicalCapabilities.d.ts +11 -19
  1241. package/dist/types/canonicalCapabilities.js +5 -12
  1242. package/dist/types/canonicalComments.d.ts +3 -4
  1243. package/dist/types/canonicalSave.d.ts +2 -3
  1244. package/dist/types/canonicalSections.d.ts +2 -3
  1245. package/dist/types/documentEnumValues.d.ts +48 -49
  1246. package/dist/types/docxSerialization.d.ts +4 -5
  1247. package/dist/types/editor-story.d.ts +2 -3
  1248. package/dist/types/remote-selection.d.ts +2 -3
  1249. package/dist/types/wrap.d.ts +5 -6
  1250. package/dist/utils/authorColors.d.ts +4 -5
  1251. package/dist/utils/base64.d.ts +2 -2
  1252. package/dist/utils/baseDirection.d.ts +4 -5
  1253. package/dist/utils/borderCss.d.ts +9 -10
  1254. package/dist/utils/boundedContentIdentity.d.ts +13 -0
  1255. package/dist/utils/boundedContentIdentity.js +42 -0
  1256. package/dist/utils/canonicalJson.d.ts +2 -3
  1257. package/dist/utils/clipboard.d.ts +23 -23
  1258. package/dist/utils/clipboard.js +11 -8
  1259. package/dist/utils/colorResolver.d.ts +22 -23
  1260. package/dist/utils/colorResolver.js +0 -20
  1261. package/dist/utils/createDocument.d.ts +4 -4
  1262. package/dist/utils/cursiveJoining.d.ts +7 -8
  1263. package/dist/utils/documentLoaderBehavior.d.ts +3 -4
  1264. package/dist/utils/documentPointerDown.d.ts +5 -0
  1265. package/dist/utils/documentPointerDown.js +28 -0
  1266. package/dist/utils/docxInput.d.ts +3 -4
  1267. package/dist/utils/domGuards.d.ts +7 -8
  1268. package/dist/utils/findMatchView.d.ts +4 -4
  1269. package/dist/utils/findReplace.d.ts +16 -16
  1270. package/dist/utils/findSearchKey.d.ts +5 -5
  1271. package/dist/utils/findVerticalScrollParent.d.ts +3 -4
  1272. package/dist/utils/fontFamilyMerge.d.ts +2 -2
  1273. package/dist/utils/fontLoader.d.ts +12 -13
  1274. package/dist/utils/fontResolver.d.ts +16 -14
  1275. package/dist/utils/fontResolver.js +33 -5
  1276. package/dist/utils/fontWeights.d.ts +2 -3
  1277. package/dist/utils/formatToStyle.d.ts +14 -14
  1278. package/dist/utils/formatToStyle.js +17 -15
  1279. package/dist/utils/headerFooter.d.ts +11 -12
  1280. package/dist/utils/headerFooter.js +10 -0
  1281. package/dist/utils/headingCollector.d.ts +3 -4
  1282. package/dist/utils/hexId.d.ts +6 -7
  1283. package/dist/utils/hexId.js +1 -1
  1284. package/dist/utils/horizontalScale.d.ts +5 -6
  1285. package/dist/utils/htmlComments.d.ts +2 -3
  1286. package/dist/utils/imageLuminance.d.ts +4 -5
  1287. package/dist/utils/imageResize.d.ts +18 -0
  1288. package/dist/utils/imageResize.js +37 -0
  1289. package/dist/utils/imageValidation.d.ts +3 -4
  1290. package/dist/utils/imageValidation.js +1 -1
  1291. package/dist/utils/joiningTypes.gen.d.ts +5 -6
  1292. package/dist/utils/mergeDocumentContent.d.ts +2 -3
  1293. package/dist/utils/mergeDocumentContent.js +7 -0
  1294. package/dist/utils/noteReferenceLabels.d.ts +7 -8
  1295. package/dist/utils/ooxmlSymbol.d.ts +5 -3
  1296. package/dist/utils/ooxmlSymbol.js +51 -1
  1297. package/dist/utils/outlineDepth.d.ts +4 -5
  1298. package/dist/utils/paragraphBaseDirection.d.ts +2 -3
  1299. package/dist/utils/paragraphBaseDirection.js +2 -1
  1300. package/dist/utils/paragraphFormattingMerge.d.ts +4 -5
  1301. package/dist/utils/paragraphFormattingMerge.js +2 -0
  1302. package/dist/utils/paragraphFrame.d.ts +20 -0
  1303. package/dist/utils/paragraphFrame.js +13 -0
  1304. package/dist/utils/paragraphInlineLayout.d.ts +101 -4
  1305. package/dist/utils/paragraphInlineLayout.js +164 -1
  1306. package/dist/utils/replaceText.d.ts +2 -2
  1307. package/dist/utils/replaceText.js +4 -0
  1308. package/dist/utils/rotationBoundingBox.d.ts +7 -8
  1309. package/dist/utils/sanitizeImageSrc.d.ts +3 -4
  1310. package/dist/utils/scriptSegments.d.ts +34 -16
  1311. package/dist/utils/scriptSegments.js +26 -6
  1312. package/dist/utils/sliceText.js +1 -2
  1313. package/dist/utils/stripXmlDeclarations.d.ts +2 -3
  1314. package/dist/utils/tableOfContentsStyle.d.ts +2 -2
  1315. package/dist/utils/tableOperations.d.ts +16 -17
  1316. package/dist/utils/tableOperations.js +44 -41
  1317. package/dist/utils/tablePlacement.d.ts +3 -4
  1318. package/dist/utils/textAdvanceGapsDom.d.ts +8 -0
  1319. package/dist/utils/textAdvanceGapsDom.js +49 -0
  1320. package/dist/utils/textDirectionFlow.d.ts +3 -4
  1321. package/dist/utils/textEncoding.js +1 -2
  1322. package/dist/utils/textFormattingMerge.d.ts +4 -5
  1323. package/dist/utils/tiffConverter.d.ts +5 -6
  1324. package/dist/utils/trailingText.d.ts +4 -5
  1325. package/dist/utils/units.d.ts +19 -20
  1326. package/dist/utils/urlSecurity.d.ts +6 -6
  1327. package/dist/utils/urlSecurity.js +2 -1
  1328. package/dist/utils/zoom.d.ts +4 -5
  1329. package/dist/version-comparison.d.ts +30 -29
  1330. package/dist/version-comparison.js +10 -8
  1331. package/dist/watermark/index.d.ts +5 -5
  1332. package/dist/watermark/index.js +9 -0
  1333. package/package.json +16 -16
@@ -1,3 +1,4 @@
1
+ import { isNumberingReference } from "../docx/numberingReference.js";
1
2
  import { formattingEquals } from "../docx/runConsolidator.js";
2
3
  import { isStyleSourcedParagraphNumbering } from "../internal/paragraphFormattingSerialization.js";
3
4
  import { addTrackedDeletionMark } from "../prosemirror/addTrackedDeletionMark.js";
@@ -11,8 +12,8 @@ import { encloseWholeControls } from "../prosemirror/contentControlRevisions.js"
11
12
  import { JOINED_RUNS_RESTYLED_META } from "../prosemirror/extensions/features/JoinedRunStyleExtension.js";
12
13
  import { requestDeterministicParaIds } from "../prosemirror/extensions/features/ParaIdAllocatorExtension.js";
13
14
  import { markStructuralChange } from "../prosemirror/extensions/features/ParagraphChangeTrackerExtension.js";
14
- import "../prosemirror/extensions/nodes/RangeAnchorExtension.js";
15
15
  import "../prosemirror/extensions/nodes/TextBoxAnchorExtension.js";
16
+ import { blockBoundariesOf, carriesCommentAnchor, inlineBoundariesOf, isBlockBoundaryNode, removeResolvedSubtree } from "../prosemirror/keptRangeBoundaries.js";
16
17
  import { CLEARED_LIST_RENDERING_ATTRS } from "../prosemirror/listMarker.js";
17
18
  import { effectiveParagraphNumbering, paragraphNumberingAttr, paragraphNumberingSourcesFromBoundary, readParagraphNumberingAttr, removedNumberingAttr } from "../prosemirror/numberingAttr.js";
18
19
  import { directParagraphAlignment } from "../prosemirror/paragraphAlignment.js";
@@ -24,9 +25,8 @@ import { directParagraphSpacing, paragraphSpacingAttrPatch, paragraphSpacingEqua
24
25
  import { getDocumentNumbering, getDocumentNumberingInstanceIds } from "../prosemirror/plugins/documentNumbering.js";
25
26
  import { getDocumentStyleDefinitions, getDocumentStyleResolver } from "../prosemirror/plugins/documentStyleState.js";
26
27
  import { claimRevisionIds, nextRevisionId, nextRevisionIdRange, reserveRevisionIds, seedRevisionIdsFromDoc } from "../prosemirror/plugins/revisionIds.js";
27
- import { readRangeAnchorAttrs } from "../prosemirror/rangeAnchorAttrs.js";
28
28
  import { rebaseParagraphRuns } from "../prosemirror/rebaseParagraphRuns.js";
29
- import { NON_INCLUSIVE_MARK_DISPOSITION, addCarriedMarks, annotatedReplacement, commentPoint, commentsAcrossBlockBoundary, commentsForTrackedInsertion, hasReplacedAnnotations, inheritedReplacementMarks, placeTrackedInsertion, surveyReplacedAnnotations } from "../prosemirror/replacedAnnotations.js";
29
+ import { NON_INCLUSIVE_MARK_DISPOSITION, addCarriedMarks, annotatedReplacement, commentsAcrossBlockBoundary, commentsForTrackedInsertion, hasReplacedAnnotations, inheritedReplacementMarks, joinCommentStretches, placeTrackedInsertion, surveyReplacedAnnotations } from "../prosemirror/replacedAnnotations.js";
30
30
  import { applyMarksToRunFormattingRepresentation, runFormattingInlineControlNodeName, selectRunFormattingCarrierRepresentations } from "../prosemirror/runFormattingInlineCarriers.js";
31
31
  import { RUN_FORMATTING_MARK_NAMES } from "../prosemirror/runFormattingMarkNames.js";
32
32
  import { readAuthoredRunFormatting, readAuthoredRunPropertySnapshot, reconcileRunFormattingMarks } from "../prosemirror/runFormattingReconciliation.js";
@@ -37,15 +37,16 @@ import { removeRowsWithoutCellsAfterBatch } from "../prosemirror/tableGridMutati
37
37
  import { isZeroWidthAnchor } from "../prosemirror/zeroWidthAnchors.js";
38
38
  import { getFolioParaIdFromBlockId } from "../types/block-id.js";
39
39
  import { CANONICAL_GAP } from "../types/canonicalCapabilities.js";
40
- import { BatchClaims, compareBatchTieOrder } from "./batch-claims.js";
40
+ import { BatchClaims } from "./batch-claims.js";
41
41
  import { stripBlockIdentityAttrs } from "./block-identity.js";
42
42
  import { describeCharacterSplit } from "./character-boundaries.js";
43
43
  import { buildCleanBlockText, resolveCleanTextRange } from "./clean-text.js";
44
44
  import { hasInlineEmphasis, parseInlineEmphasisRuns, stripInlineEmphasisMarkers } from "./inline-emphasis.js";
45
45
  import { applyTextChanges, changesFromSegments, keepAtomicSpans, planTextChanges, widenChangesToAtomicSpans } from "./minimal-replacement.js";
46
- import { resolveNewListOperations } from "./newListNumbering.js";
46
+ import { assertNewListsAllocated, resolveNewListOperations, stageNewListOperations } from "./newListNumbering.js";
47
47
  import { cutsIntoNoteReference, noteReferenceEditsAllowed, noteReferenceOf, noteReferenceSpansWithin, planChangesAroundNoteReferences, segmentsAroundNoteReferences } from "./note-references.js";
48
48
  import { classifyResourceReference } from "./referenceClassification.js";
49
+ import { getFolioDocumentOperationRemovedBlockIds, getTrackedFolioDocumentOperationCarrierBlockId, getTrackedFolioDocumentOperationRemovedBlockIds } from "./removed-blocks.js";
49
50
  import { separateRevisionStretches } from "./revisionStretches.js";
50
51
  import { collectNoteReferenceLabels, hashFolioAIBlockStructuralBoundaries, hashFolioAIBlockText, isHiddenTableRow, normalizeFolioAIBlockText } from "./snapshot.js";
51
52
  import { isEmptyTableCell, mergeTableRectangle, mergeTrackedVerticalTableCells, splitTableRectangle, splitTrackedVerticalTableCell } from "./table-cell-mutations.js";
@@ -58,6 +59,7 @@ import { panic } from "better-result";
58
59
  import { Fragment, Mark } from "prosemirror-model";
59
60
  import { TableMap } from "prosemirror-tables";
60
61
  import { canSplit } from "prosemirror-transform";
62
+ import { contentRank, groupInsertionRuns, orderBatchOperations } from "@stll/docx-core/ops";
61
63
  //#region src/ai-edits/apply.ts
62
64
  const coarseWordDiff = (before, after) => {
63
65
  if (before === after) return before.length === 0 ? [] : [{
@@ -428,7 +430,8 @@ const preserveRunFormattingAcrossTrackedStyleChange = ({ allocateRevisionInfo, n
428
430
  revisionIds: []
429
431
  };
430
432
  const previousContext = paragraphRunStyleContext(paragraph, styleResolver);
431
- const nextContext = paragraphRunStyleContext(paragraph.type.create(nextParagraphAttrs, paragraph.content, paragraph.marks), styleResolver);
433
+ const nextParagraph = paragraph.type.create(nextParagraphAttrs, paragraph.content, paragraph.marks);
434
+ const nextContext = paragraphRunStyleContext(nextParagraph, styleResolver);
432
435
  const representations = selectRunFormattingCarrierRepresentations({
433
436
  doc: tr.doc,
434
437
  from: paragraphPosition + 1,
@@ -444,27 +447,29 @@ const preserveRunFormattingAcrossTrackedStyleChange = ({ allocateRevisionInfo, n
444
447
  marks: representation.node.marks,
445
448
  styleResolver
446
449
  });
447
- if (formattingEquals(previousFormatting, readAuthoredRunFormatting({
450
+ const nextFormatting = readAuthoredRunFormatting({
448
451
  context: nextContext,
449
452
  marks: representation.node.marks,
450
453
  styleResolver
451
- }))) continue;
454
+ });
455
+ if (formattingEquals(previousFormatting, nextFormatting)) continue;
452
456
  const info = allocateRevisionInfo();
453
457
  const suggestionAttrs = info.provenance === "suggested" && info.suggestionId !== void 0 && info.suggestionId !== null ? {
454
458
  provenance: "suggested",
455
459
  suggestionId: info.suggestionId
456
460
  } : {};
461
+ const propertyChange = propertyChangeType.create({
462
+ changes: [{
463
+ type: "runPropertyChange",
464
+ info,
465
+ ...Object.keys(previousFormatting).length > 0 && { previousFormatting }
466
+ }],
467
+ ...suggestionAttrs
468
+ });
457
469
  applyMarksToRunFormattingRepresentation({
458
470
  tr,
459
471
  representation,
460
- marks: propertyChangeType.create({
461
- changes: [{
462
- type: "runPropertyChange",
463
- info,
464
- ...Object.keys(previousFormatting).length > 0 && { previousFormatting }
465
- }],
466
- ...suggestionAttrs
467
- }).addToSet(representation.node.marks)
472
+ marks: propertyChange.addToSet(representation.node.marks)
468
473
  });
469
474
  revisionIds.push(info.id);
470
475
  }
@@ -535,9 +540,10 @@ const applyBlockParagraphProperties = ({ tr, position, node, properties, styleRe
535
540
  tr,
536
541
  revisionIds: []
537
542
  };
543
+ const styled = bridgeResult.tr.setNodeMarkup(position, void 0, nextAttrs);
538
544
  return {
539
545
  tr: rebaseParagraphRuns({
540
- tr: bridgeResult.tr.setNodeMarkup(position, void 0, nextAttrs),
546
+ tr: styled,
541
547
  position,
542
548
  previous: node,
543
549
  styleResolver,
@@ -613,9 +619,10 @@ const applyReplaceBlockStyleId = ({ item, tr, styleResolver, revisionInfo }) =>
613
619
  tr,
614
620
  revisionIds: []
615
621
  };
622
+ const styled = bridgeResult.tr.setNodeMarkup(blockPosition, void 0, nextAttrs);
616
623
  return {
617
624
  tr: rebaseParagraphRuns({
618
- tr: bridgeResult.tr.setNodeMarkup(blockPosition, void 0, nextAttrs),
625
+ tr: styled,
619
626
  position: blockPosition,
620
627
  previous: block,
621
628
  styleResolver,
@@ -638,22 +645,30 @@ const patchAuthoredRunFormatting = ({ authoredFormatting, formatting, includedPr
638
645
  if (value === null) Reflect.deleteProperty(next, property);
639
646
  else next[property] = value;
640
647
  }
641
- if (formatting.underline !== void 0 && includedFormattingProperty(includedProperties, "underline")) if (formatting.underline === null) delete next.underline;
642
- else next.underline = { style: formatting.underline ? "single" : "none" };
648
+ if (formatting.underline !== void 0 && includedFormattingProperty(includedProperties, "underline")) {
649
+ if (formatting.underline === null) delete next.underline;
650
+ else next.underline = { style: formatting.underline ? "single" : "none" };
651
+ }
643
652
  if (formatting.strike !== void 0 && includedFormattingProperty(includedProperties, "strike")) {
644
653
  delete next.doubleStrike;
645
654
  if (formatting.strike === null) delete next.strike;
646
655
  else next.strike = formatting.strike;
647
656
  }
648
- if (formatting.fontFamily !== void 0 && includedFormattingProperty(includedProperties, "fontFamily")) if (formatting.fontFamily === null) delete next.fontFamily;
649
- else next.fontFamily = {
650
- ascii: formatting.fontFamily,
651
- hAnsi: formatting.fontFamily
652
- };
653
- if (formatting.fontSizePt !== void 0 && includedFormattingProperty(includedProperties, "fontSizePt")) if (formatting.fontSizePt === null) delete next.fontSize;
654
- else next.fontSize = formatting.fontSizePt * 2;
655
- if (formatting.color !== void 0 && includedFormattingProperty(includedProperties, "color")) if (formatting.color === null) delete next.color;
656
- else next.color = { rgb: formatting.color.replace(/^#/u, "").toUpperCase() };
657
+ if (formatting.fontFamily !== void 0 && includedFormattingProperty(includedProperties, "fontFamily")) {
658
+ if (formatting.fontFamily === null) delete next.fontFamily;
659
+ else next.fontFamily = {
660
+ ascii: formatting.fontFamily,
661
+ hAnsi: formatting.fontFamily
662
+ };
663
+ }
664
+ if (formatting.fontSizePt !== void 0 && includedFormattingProperty(includedProperties, "fontSizePt")) {
665
+ if (formatting.fontSizePt === null) delete next.fontSize;
666
+ else next.fontSize = formatting.fontSizePt * 2;
667
+ }
668
+ if (formatting.color !== void 0 && includedFormattingProperty(includedProperties, "color")) {
669
+ if (formatting.color === null) delete next.color;
670
+ else next.color = { rgb: formatting.color.replace(/^#/u, "").toUpperCase() };
671
+ }
657
672
  if (formatting.highlight === false && includedFormattingProperty(includedProperties, "highlight")) delete next.highlight;
658
673
  if (formatting.runShading === false && includedFormattingProperty(includedProperties, "runShading")) delete next.shading;
659
674
  return next;
@@ -675,19 +690,21 @@ const applyInlineFormatting = ({ tr, from, to, formatting, includedProperties, s
675
690
  marks: representation.node.marks,
676
691
  ...styleResolver !== void 0 ? { styleResolver } : {}
677
692
  });
693
+ const nextAuthoredFormatting = patchAuthoredRunFormatting({
694
+ authoredFormatting,
695
+ formatting,
696
+ ...includedProperties !== void 0 ? { includedProperties } : {}
697
+ });
698
+ const marks = reconcileRunFormattingMarks({
699
+ authoredFormatting: nextAuthoredFormatting,
700
+ context: styleContext,
701
+ node: representation.node,
702
+ ...styleResolver !== void 0 ? { styleResolver } : {}
703
+ });
678
704
  applyMarksToRunFormattingRepresentation({
679
705
  tr,
680
706
  representation,
681
- marks: reconcileRunFormattingMarks({
682
- authoredFormatting: patchAuthoredRunFormatting({
683
- authoredFormatting,
684
- formatting,
685
- ...includedProperties !== void 0 ? { includedProperties } : {}
686
- }),
687
- context: styleContext,
688
- node: representation.node,
689
- ...styleResolver !== void 0 ? { styleResolver } : {}
690
- })
707
+ marks
691
708
  });
692
709
  }
693
710
  return tr;
@@ -802,12 +819,13 @@ const applyTrackedInlineFormattingToRanges = ({ tr, schema, doc = tr.doc, ranges
802
819
  hasPendingRunPropertyChange = true;
803
820
  continue;
804
821
  }
822
+ const nextAuthoredFormatting = patchAuthoredRunFormatting({
823
+ authoredFormatting: previousFormatting ?? {},
824
+ formatting,
825
+ includedProperties
826
+ });
805
827
  const formattingMarks = reconcileRunFormattingMarks({
806
- authoredFormatting: patchAuthoredRunFormatting({
807
- authoredFormatting: previousFormatting ?? {},
808
- formatting,
809
- includedProperties
810
- }),
828
+ authoredFormatting: nextAuthoredFormatting,
811
829
  context: styleContext,
812
830
  node,
813
831
  ...styleResolver !== void 0 ? { styleResolver } : {}
@@ -1061,7 +1079,8 @@ const batchClaimOf = ({ item, doc, producesTrackedChanges }) => {
1061
1079
  type: "merge",
1062
1080
  block,
1063
1081
  next: item.blockTo,
1064
- joinsNow: !producesTrackedChanges
1082
+ joinsNow: !producesTrackedChanges,
1083
+ setsProperties: item.operation.mergedParagraphProperties !== void 0
1065
1084
  };
1066
1085
  case "deleteBlock": {
1067
1086
  const at = doc.resolve(block);
@@ -1294,6 +1313,17 @@ const isBatchableParagraphInsertion = (item, mode) => {
1294
1313
  const isEmptyInsert = insertTexts.length === 1 && insertTexts[0]?.length === 0;
1295
1314
  return !(mode === "tracked-changes" && item.operation.pageBreakBefore === true && isEmptyInsert);
1296
1315
  };
1316
+ const insertionWithLiveAnchor = (item, tr) => {
1317
+ if (item.operation.type !== "insertAfterBlock" && item.operation.type !== "insertBeforeBlock") panic("Only paragraph insertions have insertion anchors", { operationId: item.operation.id });
1318
+ const mapped = tr.mapping.mapResult(item.blockFrom, 1);
1319
+ const anchor = mapped.deletedAcross ? null : tr.doc.nodeAt(mapped.pos);
1320
+ const paraId = item.blockNode.attrs["paraId"];
1321
+ if (!anchor?.isTextblock || anchor.type !== item.blockNode.type || typeof paraId === "string" && anchor.attrs["paraId"] !== paraId) return null;
1322
+ return {
1323
+ ...item,
1324
+ blockNode: anchor
1325
+ };
1326
+ };
1297
1327
  /** The comments running across both edges of the table at `tablePosition`: over all of it. */
1298
1328
  const commentsAcrossTable = (doc, tablePosition) => {
1299
1329
  const table = doc.nodeAt(tablePosition);
@@ -1366,6 +1396,57 @@ const holdsOnlyInsertedContent = (paragraph, revisions) => {
1366
1396
  return whollyInserted;
1367
1397
  };
1368
1398
  /**
1399
+ * Remove the paragraph between `from` and `to`, its content with it but not
1400
+ * the range boundaries it holds: those stay where it was, as rejecting a
1401
+ * pending paragraph or accepting a deleted one leaves them. With a paragraph
1402
+ * after it they open that paragraph, where the joined break leaves them,
1403
+ * with any standing between the two; before a table they stand between
1404
+ * blocks; ending its container, they close the paragraph before it.
1405
+ */
1406
+ const removeParagraph = (tr, from, to) => {
1407
+ const paragraph = tr.doc.nodeAt(from);
1408
+ const kept = paragraph === null ? [] : removeResolvedSubtree(paragraph, {
1409
+ mode: "reject",
1410
+ resolves: () => true
1411
+ }).kept;
1412
+ if (kept.length === 0) return tr.delete(from, to);
1413
+ const at = tr.doc.resolve(from);
1414
+ let followingIndex = at.index() + 1;
1415
+ while (isBlockBoundaryNode(at.parent.maybeChild(followingIndex))) followingIndex++;
1416
+ const following = at.parent.maybeChild(followingIndex);
1417
+ if (following?.type.name === "paragraph") {
1418
+ const between = [];
1419
+ let opening = to;
1420
+ for (let index = at.index() + 1; index < followingIndex; index++) {
1421
+ between.push(at.parent.child(index));
1422
+ opening += at.parent.child(index).nodeSize;
1423
+ }
1424
+ const joined = inlineBoundariesOf(between);
1425
+ if (joined === null) return tr.delete(from, to);
1426
+ return tr.insert(opening + 1, [...kept, ...joined]).delete(from, opening);
1427
+ }
1428
+ if (following !== null) {
1429
+ const comments = kept.filter(carriesCommentAnchor);
1430
+ const between = blockBoundariesOf(kept.filter((node) => !carriesCommentAnchor(node)));
1431
+ if (comments.length === 0) return tr.replaceWith(from, to, between);
1432
+ if (at.nodeBefore?.type.name !== "paragraph") return tr.replaceWith(from + 1, to - 1, kept).setNodeAttribute(from, "pPrMark", null);
1433
+ return tr.replaceWith(from, to, between).insert(from - 1, comments);
1434
+ }
1435
+ return tr.delete(from, to).insert(from - 1, kept);
1436
+ };
1437
+ /**
1438
+ * Empty the paragraph between `from` and `to`, which ends its container and
1439
+ * so stays: its content goes, the range boundaries it holds stay in it.
1440
+ */
1441
+ const emptyParagraph = (tr, from, to) => {
1442
+ const paragraph = tr.doc.nodeAt(from);
1443
+ const kept = paragraph === null ? [] : removeResolvedSubtree(paragraph, {
1444
+ mode: "reject",
1445
+ resolves: () => true
1446
+ }).kept;
1447
+ return kept.length === 0 ? tr.delete(from + 1, to - 1) : tr.replaceWith(from + 1, to - 1, kept);
1448
+ };
1449
+ /**
1369
1450
  * How to take back the paragraph at `position` when it is wholly a pending
1370
1451
  * insertion (the break that introduced it inserted, and everything in it
1371
1452
  * inserted text), or `null` when it is not. Such a paragraph goes outright:
@@ -1384,7 +1465,7 @@ const pendingParagraphRetraction = (doc, position) => {
1384
1465
  const endsItsContainer = paragraphEndsItsContainer(at, paragraph.type.name);
1385
1466
  if (at.parent.childCount < 2 || endsItsContainer && before?.type.name !== paragraph.type.name) return null;
1386
1467
  let followingIndex = at.index() + 1;
1387
- while (at.parent.maybeChild(followingIndex)?.type.name === "blockBookmarkBoundary") followingIndex++;
1468
+ while (isBlockBoundaryNode(at.parent.maybeChild(followingIndex))) followingIndex++;
1388
1469
  const following = at.parent.maybeChild(followingIndex);
1389
1470
  if (expectParagraphAttrs(paragraph).pPrMark?.kind === "moveTo" && following?.type.spec["tableRole"] === "table" && holdsOnlyInsertedContent(paragraph, "including-moves")) return { clearBreakAt: null };
1390
1471
  if (!holdsOnlyInsertedContent(paragraph, "ordinary")) return null;
@@ -1419,6 +1500,60 @@ const holdsOnlyDeletedContent = (paragraph) => {
1419
1500
  return whollyDeleted;
1420
1501
  };
1421
1502
  /**
1503
+ * Where the paragraph at `position` runs on into the next paragraph when its
1504
+ * added break is retracted, across the tables between them: the next
1505
+ * paragraph's position, or null when no table stands between or one cannot
1506
+ * be crossed.
1507
+ *
1508
+ * Retracting the break puts the paragraph's words in the next paragraph, so
1509
+ * a table between them changes sides of those words. That reads the same
1510
+ * only when, in each resolution, either the words or the table are gone:
1511
+ * words that stay on accepting may cross only a wholly deleted table, and
1512
+ * words that stay on rejecting only a wholly inserted one.
1513
+ */
1514
+ const paragraphAcrossVanishingTables = (doc, position) => {
1515
+ const paragraph = doc.nodeAt(position);
1516
+ if (paragraph?.type.name !== "paragraph") return null;
1517
+ const $at = doc.resolve(position);
1518
+ const staysOnAccept = !holdsOnlyDeletedContent(paragraph);
1519
+ const staysOnReject = !holdsOnlyInsertedContent(paragraph, "including-moves");
1520
+ let next = position + paragraph.nodeSize;
1521
+ let crossed = false;
1522
+ for (let index = $at.index() + 1; index < $at.parent.childCount; index++) {
1523
+ const node = $at.parent.child(index);
1524
+ if (node.type === paragraph.type) return crossed ? next : null;
1525
+ if (node.type.spec["tableRole"] !== "table" || node.childCount === 0) return null;
1526
+ let deleted = true;
1527
+ let inserted = true;
1528
+ node.forEach((row) => {
1529
+ const { trIns, trDel } = expectTableRowAttrs(row);
1530
+ deleted &&= trDel != null;
1531
+ inserted &&= trIns != null;
1532
+ });
1533
+ if (staysOnAccept && !deleted || staysOnReject && !inserted) return null;
1534
+ next += node.nodeSize;
1535
+ crossed = true;
1536
+ }
1537
+ return null;
1538
+ };
1539
+ /** The paragraph a retracted added break on `predecessor` runs it into. */
1540
+ const retractedBreakTargetPosition = (doc, predecessor) => {
1541
+ const adjacent = predecessor.position + predecessor.node.nodeSize;
1542
+ return paragraphAcrossVanishingTables(doc, predecessor.position) ?? adjacent;
1543
+ };
1544
+ /**
1545
+ * Move the paragraph at `from` to just before `before`, past the tables
1546
+ * `paragraphAcrossVanishingTables` found it may cross; returns where it
1547
+ * now starts.
1548
+ */
1549
+ const moveParagraphPastTables = (tr, from, before) => {
1550
+ const paragraph = tr.doc.nodeAt(from);
1551
+ if (!paragraph) return panic("A paragraph moved past tables vanished", { from });
1552
+ const target = before - paragraph.nodeSize;
1553
+ tr.delete(from, from + paragraph.nodeSize).insert(target, paragraph);
1554
+ return target;
1555
+ };
1556
+ /**
1422
1557
  * Whether everything after `position` in its container is paragraphs pending
1423
1558
  * deletion: a join there, once accepted, has no words after it.
1424
1559
  */
@@ -1446,12 +1581,22 @@ const hasDeletedContent = (paragraph) => {
1446
1581
  });
1447
1582
  return found;
1448
1583
  };
1449
- /** The final paragraph reached by a chain of wholly deleted paragraphs. */
1450
- const deletedFinalParagraphAfter = (at, paragraphTypeName) => {
1584
+ /**
1585
+ * The final paragraph reached by a chain of wholly deleted paragraphs, and of
1586
+ * paragraphs wholly inserted under `insertedBy` (revisions of the running
1587
+ * batch) when given.
1588
+ */
1589
+ const deletedFinalParagraphAfter = (at, paragraphTypeName, insertedBy) => {
1451
1590
  let position = at.pos;
1452
1591
  for (let index = at.index(); index < at.parent.childCount; index++) {
1453
1592
  const paragraph = at.parent.child(index);
1454
- if (paragraph.type.name !== paragraphTypeName || !holdsOnlyDeletedContent(paragraph)) return null;
1593
+ if (paragraph.type.name !== paragraphTypeName) return null;
1594
+ const insertedBreak = addedBreakRevisionId(paragraph.attrs["pPrMark"]);
1595
+ if (index < at.parent.childCount - 1 && insertedBreak !== null && insertedBy?.has(insertedBreak) === true && holdsOnlyInsertedContent(paragraph, "ordinary")) {
1596
+ position += paragraph.nodeSize;
1597
+ continue;
1598
+ }
1599
+ if (!holdsOnlyDeletedContent(paragraph)) return null;
1455
1600
  if (index === at.parent.childCount - 1) return paragraph.attrs["pPrMark"] == null && hasDeletedContent(paragraph) ? position : null;
1456
1601
  if (!isPlainDeletedPPrMark(paragraph.attrs["pPrMark"])) return null;
1457
1602
  position += paragraph.nodeSize;
@@ -1537,6 +1682,60 @@ const finalParagraphPredecessor = (doc, at) => {
1537
1682
  return null;
1538
1683
  };
1539
1684
  /**
1685
+ * The paragraph whose break a recorded final deletion retires, if any. A
1686
+ * deletion that nothing preceded when it ran keeps its paragraph emptied, as
1687
+ * the deletion alone does: a paragraph the batch places before it afterwards
1688
+ * (an insertion after a table, a deleted table's predecessor) lands after the
1689
+ * deletion and keeps its own break.
1690
+ */
1691
+ const retiredFinalBreak = (doc, at, deletion) => deletion.precededWhenDeleted ? finalParagraphPredecessor(doc, at) : null;
1692
+ /**
1693
+ * The paragraph a direct replay leaves at a container's end when the batch
1694
+ * deletes every paragraph back to the container's start or a table.
1695
+ *
1696
+ * Applied directly, the batch runs right to left: each deleted paragraph that
1697
+ * a paragraph precedes goes, and the leftmost of the run is the one emptied
1698
+ * and kept, with its own properties. Tracked, the run's breaks are deleted
1699
+ * and the container's own last mark stays on the emptied final paragraph, so
1700
+ * that paragraph must take the leftmost one's properties for accepting to
1701
+ * read the same. Paragraphs and tables an earlier batch deleted are absent
1702
+ * from the direct document and are looked past; a table this batch deletes
1703
+ * still stands when the run collapses, so the run starts after it.
1704
+ *
1705
+ * Null when a surviving paragraph precedes the run (its break retires
1706
+ * instead) or the run is the emptied paragraph alone.
1707
+ */
1708
+ const collapsedFinalRunSource = (doc, at, batchRevisionIds) => {
1709
+ const emptied = doc.nodeAt(at);
1710
+ if (emptied?.type.name !== "paragraph") return null;
1711
+ const $emptied = doc.resolve(at);
1712
+ if (!paragraphEndsItsContainer($emptied, emptied.type.name)) return null;
1713
+ let source = null;
1714
+ let position = at;
1715
+ for (let index = $emptied.index() - 1; index >= 0; index--) {
1716
+ const node = $emptied.parent.child(index);
1717
+ position -= node.nodeSize;
1718
+ if (node.type.spec["tableRole"] === "table") {
1719
+ let deletedEarlier = node.childCount > 0;
1720
+ node.forEach((row) => {
1721
+ const { trDel } = expectTableRowAttrs(row);
1722
+ deletedEarlier &&= trDel != null && !batchRevisionIds.has(trDel.revisionId);
1723
+ });
1724
+ if (deletedEarlier) continue;
1725
+ return source;
1726
+ }
1727
+ if (node.type !== emptied.type) return source;
1728
+ const mark = node.attrs["pPrMark"];
1729
+ if (!isPlainDeletedPPrMark(mark) || !holdsOnlyDeletedContent(node)) return null;
1730
+ const revisionId = addedOrDeletedBreakRevisionId(mark);
1731
+ if (revisionId !== null && batchRevisionIds.has(revisionId)) source = {
1732
+ node,
1733
+ position
1734
+ };
1735
+ }
1736
+ return source;
1737
+ };
1738
+ /**
1540
1739
  * Whether a sibling between a final carrier's predecessor and the carrier
1541
1740
  * has its break deleted by this batch.
1542
1741
  */
@@ -1561,7 +1760,7 @@ const pendingRemovedFinalBreakPositions = (tr, deletions) => {
1561
1760
  const positions = /* @__PURE__ */ new Set();
1562
1761
  for (const deletion of deletions) {
1563
1762
  const at = tr.mapping.slice(deletion.mappedFrom).map(deletion.position);
1564
- const predecessor = finalParagraphPredecessor(tr.doc, at);
1763
+ const predecessor = retiredFinalBreak(tr.doc, at, deletion);
1565
1764
  if (!predecessor || predecessor.node.attrs["pPrMark"] != null) continue;
1566
1765
  positions.add(predecessor.position);
1567
1766
  }
@@ -1594,14 +1793,14 @@ const hasDeferredParagraphPropertyWrite = ({ tr, deletions, targets, mergedPrope
1594
1793
  const at = tr.mapping.slice(deletion.mappedFrom).map(deletion.position);
1595
1794
  const target = tr.doc.nodeAt(at);
1596
1795
  if (!target) continue;
1597
- const predecessor = finalParagraphPredecessor(tr.doc, at);
1796
+ const predecessor = retiredFinalBreak(tr.doc, at, deletion);
1598
1797
  if (!predecessor) continue;
1599
1798
  const mark = predecessor.node.attrs["pPrMark"];
1600
1799
  if (mark == null && mergedPropertyTargets.some(({ position, mappedFrom }) => {
1601
1800
  const mapped = tr.mapping.slice(mappedFrom).mapResult(position);
1602
1801
  return !mapped.deleted && mapped.pos === at;
1603
1802
  })) continue;
1604
- const writeTarget = mark == null ? target : tr.doc.nodeAt(predecessor.position + predecessor.node.nodeSize);
1803
+ const writeTarget = mark == null ? target : tr.doc.nodeAt(retractedBreakTargetPosition(tr.doc, predecessor));
1605
1804
  if (!writeTarget || !targets.includes(writeTarget)) continue;
1606
1805
  if (mark != null && !(addedBreakRevisionId(mark) !== null && canRetractFinalBreak({
1607
1806
  predecessor: predecessor.node,
@@ -1635,9 +1834,9 @@ const paragraphPropertyRevisionTargets = ({ item, tr, deletedFinalParagraphs })
1635
1834
  const removedBreakPositions = pendingRemovedFinalBreakPositions(tr, deletedFinalParagraphs);
1636
1835
  for (const deletion of deletedFinalParagraphs) {
1637
1836
  const at = tr.mapping.slice(deletion.mappedFrom).map(deletion.position);
1638
- const predecessor = finalParagraphPredecessor(tr.doc, at);
1837
+ const predecessor = retiredFinalBreak(tr.doc, at, deletion);
1639
1838
  if (!predecessor || addedBreakRevisionId(predecessor.node.attrs["pPrMark"]) === null) continue;
1640
- const target = tr.doc.nodeAt(predecessor.position + predecessor.node.nodeSize);
1839
+ const target = tr.doc.nodeAt(retractedBreakTargetPosition(tr.doc, predecessor));
1641
1840
  if (!target) continue;
1642
1841
  if (canRetractFinalBreak({
1643
1842
  predecessor: predecessor.node,
@@ -1685,12 +1884,41 @@ const withRetiredFinalParagraphs = ({ tr, deletions, mergedPropertyTargets, appl
1685
1884
  deletion,
1686
1885
  at: tr.mapping.slice(deletion.mappedFrom).map(deletion.position)
1687
1886
  })).toSorted((left, right) => right.at - left.at);
1688
- for (const { deletion: { operationId, revisionExtras }, at } of located) {
1887
+ for (const { deletion, at } of located) {
1888
+ const { operationId, revisionExtras } = deletion;
1689
1889
  const emptied = tr.doc.nodeAt(at);
1690
1890
  if (emptied?.type.name !== "paragraph") continue;
1691
- const predecessor = finalParagraphPredecessor(tr.doc, at);
1692
- if (!predecessor) continue;
1693
- const { node: previous, position } = predecessor;
1891
+ const predecessor = retiredFinalBreak(tr.doc, at, deletion);
1892
+ if (!predecessor) {
1893
+ const source = deletion.precededWhenDeleted ? collapsedFinalRunSource(tr.doc, at, batchRevisionIds) : null;
1894
+ if (!source) continue;
1895
+ const revisionId = nextRevisionId;
1896
+ const carried = carryParagraphProperties({
1897
+ tr,
1898
+ position: at,
1899
+ source: source.node,
1900
+ styleResolver,
1901
+ numbering,
1902
+ revision: {
1903
+ id: revisionId,
1904
+ author,
1905
+ date,
1906
+ ...revisionExtras
1907
+ },
1908
+ keep: /* @__PURE__ */ new Set()
1909
+ });
1910
+ if (carried.tracked) {
1911
+ nextRevisionId++;
1912
+ addedRevisions.push({
1913
+ operationId,
1914
+ revisionId
1915
+ });
1916
+ }
1917
+ if (carried.changed) resolvedOperationIds.add(operationId);
1918
+ continue;
1919
+ }
1920
+ const { node: previous } = predecessor;
1921
+ let { position } = predecessor;
1694
1922
  const mark = previous.attrs["pPrMark"];
1695
1923
  if (mark == null) {
1696
1924
  const revisionId = nextRevisionId++;
@@ -1735,11 +1963,13 @@ const withRetiredFinalParagraphs = ({ tr, deletions, mergedPropertyTargets, appl
1735
1963
  continue;
1736
1964
  }
1737
1965
  if (addedBreakRevisionId(mark) !== null) {
1738
- const following = tr.doc.nodeAt(position + previous.nodeSize);
1966
+ const targetPosition = retractedBreakTargetPosition(tr.doc, predecessor);
1967
+ const following = tr.doc.nodeAt(targetPosition);
1739
1968
  if (!following || !canRetractFinalBreak({
1740
1969
  predecessor: previous,
1741
1970
  target: following
1742
1971
  })) continue;
1972
+ if (targetPosition !== position + previous.nodeSize) position = moveParagraphPastTables(tr, position, targetPosition);
1743
1973
  joinAtParagraphMark({
1744
1974
  tr,
1745
1975
  paragraphPos: position,
@@ -1750,10 +1980,15 @@ const withRetiredFinalParagraphs = ({ tr, deletions, mergedPropertyTargets, appl
1750
1980
  resolvedOperationIds.add(operationId);
1751
1981
  const retracted = addedBreakRevisionId(mark);
1752
1982
  if (retracted !== null) retractedRevisionIds.push(retracted);
1983
+ const carryPosition = isDeletedPPrMark(tr.doc.nodeAt(position)?.attrs["pPrMark"]) ? paragraphLeftAfter({
1984
+ doc: tr.doc,
1985
+ paragraphPos: position
1986
+ }) ?? position : position;
1987
+ const carryTarget = tr.doc.nodeAt(carryPosition) ?? following;
1753
1988
  const revisionId = nextRevisionId;
1754
1989
  if (carryParagraphProperties({
1755
1990
  tr,
1756
- position,
1991
+ position: carryPosition,
1757
1992
  source: previous,
1758
1993
  styleResolver,
1759
1994
  numbering,
@@ -1763,7 +1998,7 @@ const withRetiredFinalParagraphs = ({ tr, deletions, mergedPropertyTargets, appl
1763
1998
  date,
1764
1999
  ...revisionExtras
1765
2000
  },
1766
- keep: propertiesSetInBatch(following, batchRevisionIds)
2001
+ keep: propertiesSetInBatch(carryTarget, batchRevisionIds)
1767
2002
  }).tracked) {
1768
2003
  nextRevisionId++;
1769
2004
  addedRevisions.push({
@@ -1819,26 +2054,38 @@ const withRotatedAddedFinalBreaks = ({ tr, batchRevisionIds, revisionSeed, autho
1819
2054
  const supersededDeletedBreaks = [];
1820
2055
  const collectSupersededDeletedBreaks = (parent, contentStart) => {
1821
2056
  let previous = null;
2057
+ let carriedDeletedMark = null;
2058
+ let carriedDeletedFormatting = null;
1822
2059
  parent.forEach((node, offset) => {
1823
2060
  const position = contentStart + offset;
1824
2061
  if (node.type.name !== "paragraph") {
1825
2062
  previous = null;
2063
+ carriedDeletedMark = null;
2064
+ carriedDeletedFormatting = null;
1826
2065
  if (!node.isTextblock && node.childCount > 0) collectSupersededDeletedBreaks(node, position + 1);
1827
2066
  return;
1828
2067
  }
1829
2068
  if (previous) {
1830
- const deletedMark = previous.node.attrs["pPrMark"];
2069
+ const deletedMark = carriedDeletedMark ?? previous.node.attrs["pPrMark"];
1831
2070
  const insertedMark = node.attrs["pPrMark"];
1832
2071
  const insertedRevisionId = addedBreakRevisionId(insertedMark);
1833
2072
  const trackedInsertion = insertedRevisionId !== null && batchRevisionIds.has(insertedRevisionId);
1834
2073
  const suggestedInsertion = isSuggestedParagraphInsert(node);
1835
2074
  const deletedBreakRevisionId = addedOrDeletedBreakRevisionId(deletedMark);
1836
- if (isPlainDeletedPPrMark(deletedMark) && deletedBreakRevisionId !== null && !batchRevisionIds.has(deletedBreakRevisionId) && !holdsOnlyDeletedContent(previous.node) && (trackedInsertion || suggestedInsertion) && holdsOnlyInsertedContent(node, "ordinary")) supersededDeletedBreaks.push({
1837
- preceding: previous.position,
1838
- inserted: position,
1839
- deletedMark,
1840
- precedingMark: trackedInsertion ? insertedMark : null
1841
- });
2075
+ if (isPlainDeletedPPrMark(deletedMark) && deletedBreakRevisionId !== null && !batchRevisionIds.has(deletedBreakRevisionId) && !holdsOnlyDeletedContent(previous.node) && (trackedInsertion || suggestedInsertion) && holdsOnlyInsertedContent(node, "ordinary")) {
2076
+ supersededDeletedBreaks.push({
2077
+ preceding: previous.position,
2078
+ inserted: position,
2079
+ deletedMark,
2080
+ precedingMark: trackedInsertion ? insertedMark : null,
2081
+ precedingFormatting: carriedDeletedFormatting ?? paragraphPropertiesOnReject(previous.node)
2082
+ });
2083
+ carriedDeletedMark = deletedMark;
2084
+ carriedDeletedFormatting ??= paragraphPropertiesOnReject(previous.node);
2085
+ } else {
2086
+ carriedDeletedMark = null;
2087
+ carriedDeletedFormatting = null;
2088
+ }
1842
2089
  }
1843
2090
  previous = {
1844
2091
  node,
@@ -1847,24 +2094,26 @@ const withRotatedAddedFinalBreaks = ({ tr, batchRevisionIds, revisionSeed, autho
1847
2094
  });
1848
2095
  };
1849
2096
  collectSupersededDeletedBreaks(tr.doc, 0);
1850
- for (const { preceding, inserted, deletedMark, precedingMark } of supersededDeletedBreaks) {
2097
+ for (const { preceding, inserted, deletedMark, precedingMark, precedingFormatting } of supersededDeletedBreaks) {
1851
2098
  const insertionRevisionId = addedBreakRevisionId(precedingMark);
1852
2099
  if (insertionRevisionId !== null) {
1853
2100
  const previous = tr.doc.nodeAt(preceding);
1854
2101
  const current = tr.doc.nodeAt(inserted);
1855
2102
  if (!previous || !current) panic("A shifted paragraph break lost its carrier");
1856
- const previousFormatting = paragraphPropertiesOnReject(previous);
1857
2103
  const existing = expectParagraphAttrs(current)._propertyChanges;
1858
- if (!hasSerializableParagraphPropertyChange(existing) && JSON.stringify(previousFormatting) !== JSON.stringify(paragraphPropertiesSnapshot(current))) tr.setNodeAttribute(inserted, "_propertyChanges", [...Array.isArray(existing) ? existing : [], {
1859
- type: "paragraphPropertyChange",
1860
- info: {
1861
- id: insertionRevisionId,
1862
- author,
1863
- date,
1864
- ...initials ? { initials } : {}
1865
- },
1866
- previousFormatting
1867
- }]);
2104
+ if (hasSerializableParagraphPropertyChange(existing) || JSON.stringify(precedingFormatting) !== JSON.stringify(paragraphPropertiesSnapshot(current))) {
2105
+ const inverse = {
2106
+ type: "paragraphPropertyChange",
2107
+ info: {
2108
+ id: insertionRevisionId,
2109
+ author,
2110
+ date,
2111
+ ...initials ? { initials } : {}
2112
+ },
2113
+ previousFormatting: precedingFormatting
2114
+ };
2115
+ tr.setNodeAttribute(inserted, "_propertyChanges", [inverse]);
2116
+ }
1868
2117
  }
1869
2118
  tr.setNodeAttribute(preceding, "pPrMark", precedingMark);
1870
2119
  tr.setNodeAttribute(inserted, "pPrMark", deletedMark);
@@ -2020,6 +2269,7 @@ const restyledListAttrs = ({ attrs, styleNumbering, removesNumbering, numbering
2020
2269
  };
2021
2270
  };
2022
2271
  const buildInsertedParagraphs = ({ item, schema, formattingFromStyle, mode, author, date, initials, commentMark, suggestionId, revisionSeed, isPairedMove, numbering, styleResolver }) => {
2272
+ assertNewListsAllocated(item.operation);
2023
2273
  const operation = item.operation;
2024
2274
  if (operation.type !== "insertAfterBlock" && operation.type !== "insertBeforeBlock") panic("Only paragraph insertions can build inserted paragraphs", { type: operation.type });
2025
2275
  const insertionType = schema.marks["insertion"];
@@ -2035,6 +2285,7 @@ const buildInsertedParagraphs = ({ item, schema, formattingFromStyle, mode, auth
2035
2285
  const formatsEveryParagraph = operation.formattingScope === "allParagraphs";
2036
2286
  const baseAttrs = operation.inheritFormatting === false ? {} : {
2037
2287
  ...stripBlockIdentityAttrs(item.blockNode.attrs),
2288
+ _preservedAttributes: null,
2038
2289
  _propertyChanges: null,
2039
2290
  pPrMark: null,
2040
2291
  _suggestedInsert: null
@@ -2189,12 +2440,13 @@ const buildInsertedParagraphs = ({ item, schema, formattingFromStyle, mode, auth
2189
2440
  reconciled.push(child);
2190
2441
  return;
2191
2442
  }
2443
+ const authoredFormatting = readAuthoredRunFormatting({
2444
+ context: sourceContext,
2445
+ marks: child.marks,
2446
+ styleResolver
2447
+ });
2192
2448
  const reconciledMarks = reconcileRunFormattingMarks({
2193
- authoredFormatting: readAuthoredRunFormatting({
2194
- context: sourceContext,
2195
- marks: child.marks,
2196
- styleResolver
2197
- }),
2449
+ authoredFormatting,
2198
2450
  context: targetContext,
2199
2451
  node: child,
2200
2452
  styleResolver
@@ -2259,7 +2511,8 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
2259
2511
  };
2260
2512
  const styleResolver = getDocumentStyleResolver(view.state);
2261
2513
  const styleDefinitions = getDocumentStyleDefinitions(view.state);
2262
- const { operations, numbering } = resolveNewListOperations(requestedOperations, getDocumentNumbering(view.state));
2514
+ const operations = stageNewListOperations(requestedOperations);
2515
+ let numbering = getDocumentNumbering(view.state);
2263
2516
  const formattingFromStyleForInsertion = (item) => {
2264
2517
  if (item.operation.type !== "insertAfterBlock" && item.operation.type !== "insertBeforeBlock") return;
2265
2518
  const anchorAttrs = expectParagraphAttrs(item.blockNode);
@@ -2274,6 +2527,7 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
2274
2527
  const claimedTableRows = /* @__PURE__ */ new Set();
2275
2528
  const claimedTableColumns = /* @__PURE__ */ new Set();
2276
2529
  const batchClaims = new BatchClaims();
2530
+ const removedBlocksBy = /* @__PURE__ */ new Map();
2277
2531
  const diffText = wordDiffMode === "coarse" ? coarseWordDiff : wordDiffSessionFromOptions(wordDiff).diff;
2278
2532
  const producesTrackedChanges = mode !== "direct";
2279
2533
  const isSuggested = mode === "suggested";
@@ -2370,6 +2624,29 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
2370
2624
  continue;
2371
2625
  }
2372
2626
  }
2627
+ const targetBlockId = "range" in operation ? operation.range.blockId : operation.blockId;
2628
+ const removedBy = ![
2629
+ "insertAfterBlock",
2630
+ "insertBeforeBlock",
2631
+ "insertSignatureTable",
2632
+ "insertTable",
2633
+ "deleteTable",
2634
+ "insertTableRow",
2635
+ "deleteTableRow",
2636
+ "insertTableColumn",
2637
+ "deleteTableColumn",
2638
+ "mergeTableCells",
2639
+ "splitTableCell"
2640
+ ].includes(operation.type) ? removedBlocksBy.get(targetBlockId) : void 0;
2641
+ const continuesMergeChain = operation.type === "mergeBlockWithNext" && removedBy?.type === "mergeBlockWithNext";
2642
+ if (removedBy !== void 0 && !continuesMergeChain) {
2643
+ skipped.push({
2644
+ id: operation.id,
2645
+ reason: "overlappingOperation",
2646
+ message: `operation ${JSON.stringify(removedBy.id)}, earlier in this batch, already claims its target.`
2647
+ });
2648
+ continue;
2649
+ }
2373
2650
  const claim = batchClaimOf({
2374
2651
  item: resolution.operation,
2375
2652
  doc: view.state.doc,
@@ -2385,6 +2662,14 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
2385
2662
  continue;
2386
2663
  }
2387
2664
  batchClaims.add(operation.id, claim);
2665
+ const carrierBlockId = producesTrackedChanges ? getTrackedFolioDocumentOperationCarrierBlockId(snapshot.blocks, requestedOperations[index] ?? panic("A planned operation lost its input", { index }), removedBlocksBy) : void 0;
2666
+ const getRemovedBlockIds = producesTrackedChanges ? getTrackedFolioDocumentOperationRemovedBlockIds : getFolioDocumentOperationRemovedBlockIds;
2667
+ const requestedOperation = requestedOperations[index] ?? panic("A planned operation lost its input", { index });
2668
+ for (const removedBlockId of getRemovedBlockIds(snapshot.blocks, requestedOperation)) if (!removedBlocksBy.has(removedBlockId)) removedBlocksBy.set(removedBlockId, {
2669
+ id: operation.id,
2670
+ type: operation.type
2671
+ });
2672
+ if (carrierBlockId !== void 0) removedBlocksBy.delete(carrierBlockId);
2388
2673
  if (deletion) claimedTableRows.add(`${deletion.tablePosition}:${deletion.rowIndex}`);
2389
2674
  if (columnDeletion) claimedTableColumns.add(getTableColumnCoordinateKey(columnDeletion));
2390
2675
  if ((operation.type === "insertAfterBlock" || operation.type === "insertBeforeBlock") && operation.lineBreakMode !== "inline" && LINE_BREAK_PATTERN.test(operation.text)) normalizations.push({
@@ -2423,8 +2708,14 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
2423
2708
  else counts.to += 1;
2424
2709
  moveSideCounts.set(moveId, counts);
2425
2710
  }
2711
+ const refusedMoveIds = /* @__PURE__ */ new Set();
2712
+ if (isSuggested) for (const candidate of executableResolved) {
2713
+ if (candidate.operation.type !== "insertBeforeBlock" || candidate.operation.moveId === void 0) continue;
2714
+ const moveId = candidate.operation.moveId;
2715
+ if (executableResolved.some(({ operation, blockFrom }) => operation.type === "deleteBlock" && operation.moveId === moveId && blockFrom === candidate.blockFrom)) refusedMoveIds.add(moveId);
2716
+ }
2426
2717
  const isPairedMove = (moveId) => {
2427
- if (moveId === void 0) return false;
2718
+ if (moveId === void 0 || refusedMoveIds.has(moveId)) return false;
2428
2719
  const counts = moveSideCounts.get(moveId);
2429
2720
  return counts?.from === 1 && counts.to === 1;
2430
2721
  };
@@ -2479,40 +2770,76 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
2479
2770
  if (afterTables.get(item.blockFrom)?.has(item.blockTo)) tableAfterDeletedSplit.set(item.blockFrom, commentsAcrossBlockBoundary(view.state.doc, item.blockTo));
2480
2771
  }
2481
2772
  }
2482
- const executionOrder = executableResolved.toSorted((left, right) => {
2483
- if (left.blockFrom === right.blockFrom && tableAfterDeletedSplit.has(left.blockFrom)) {
2484
- if (left.operation.type === "deleteBlock" && right.operation.type === "insertTable" && right.from === left.blockTo) return -1;
2485
- if (left.operation.type === "insertTable" && right.operation.type === "deleteBlock" && left.from === right.blockTo) return 1;
2486
- }
2487
- const leftAnnotates = ANNOTATION_OPERATION_TYPES.has(left.operation.type);
2488
- if (leftAnnotates !== ANNOTATION_OPERATION_TYPES.has(right.operation.type)) return leftAnnotates ? -1 : 1;
2489
- const leftCellShape = left.tableCellMerge ?? left.tableCellSplit;
2490
- const rightCellShape = right.tableCellMerge ?? right.tableCellSplit;
2491
- if (!leftCellShape && rightCellShape) return -1;
2492
- if (leftCellShape && !rightCellShape) return 1;
2493
- if (leftCellShape && rightCellShape) {
2494
- if (leftCellShape.tablePosition !== rightCellShape.tablePosition) return rightCellShape.tablePosition - leftCellShape.tablePosition;
2495
- if (leftCellShape.rectangle.bottom !== rightCellShape.rectangle.bottom) return rightCellShape.rectangle.bottom - leftCellShape.rectangle.bottom;
2496
- if (leftCellShape.rectangle.right !== rightCellShape.rectangle.right) return rightCellShape.rectangle.right - leftCellShape.rectangle.right;
2497
- return compareBatchTieOrder(left.originalIndex, right.originalIndex);
2498
- }
2499
- const leftColumn = left.tableColumnInsertion ?? left.tableColumnDeletion;
2500
- const rightColumn = right.tableColumnInsertion ?? right.tableColumnDeletion;
2501
- if (!leftColumn && rightColumn) return -1;
2502
- if (leftColumn && !rightColumn) return 1;
2503
- if (leftColumn && rightColumn) {
2504
- if (leftColumn.tablePosition !== rightColumn.tablePosition) return rightColumn.tablePosition - leftColumn.tablePosition;
2505
- if (leftColumn.columnIndex !== rightColumn.columnIndex) return rightColumn.columnIndex - leftColumn.columnIndex;
2506
- const leftIsInsertion = left.tableColumnInsertion !== void 0;
2507
- if (leftIsInsertion !== (right.tableColumnInsertion !== void 0)) return leftIsInsertion ? -1 : 1;
2508
- return compareBatchTieOrder(left.originalIndex, right.originalIndex);
2509
- }
2510
- if (left.from !== right.from) return right.from - left.from;
2511
- return compareBatchTieOrder(left.originalIndex, right.originalIndex);
2512
- });
2513
- for (let executionIndex = 0; executionIndex < executionOrder.length; executionIndex++) {
2514
- const item = executionOrder[executionIndex];
2515
- if (!item) panic("The operation execution index exceeded the resolved plan", { executionIndex });
2773
+ const batchAddress = (item) => {
2774
+ const cell = item.tableCellMerge ?? item.tableCellSplit;
2775
+ if (cell) return {
2776
+ type: "cell",
2777
+ tablePosition: cell.tablePosition,
2778
+ bottom: cell.rectangle.bottom,
2779
+ right: cell.rectangle.right,
2780
+ inputIndex: item.originalIndex
2781
+ };
2782
+ const column = item.tableColumnInsertion ?? item.tableColumnDeletion;
2783
+ if (column) return {
2784
+ type: "column",
2785
+ tablePosition: column.tablePosition,
2786
+ columnIndex: column.columnIndex,
2787
+ insertion: item.tableColumnInsertion !== void 0,
2788
+ inputIndex: item.originalIndex
2789
+ };
2790
+ if (ANNOTATION_OPERATION_TYPES.has(item.operation.type)) return {
2791
+ type: "annotation",
2792
+ position: item.from,
2793
+ inputIndex: item.originalIndex
2794
+ };
2795
+ const hasDeletedSplit = tableAfterDeletedSplit.has(item.blockFrom);
2796
+ return {
2797
+ type: "content",
2798
+ position: hasDeletedSplit && item.operation.type === "deleteBlock" ? item.blockTo : item.from,
2799
+ rank: contentRank(item.operation, { hasDeletedSplit }),
2800
+ inputIndex: item.originalIndex
2801
+ };
2802
+ };
2803
+ const executionOrder = orderBatchOperations(executableResolved, batchAddress);
2804
+ const allocateNewLists = ({ items }) => {
2805
+ const allocated = resolveNewListOperations(items.map(({ operation }) => operation), numbering);
2806
+ numbering = allocated.numbering;
2807
+ for (const [index, candidate] of items.entries()) candidate.operation = allocated.operations[index] ?? panic("A will-apply operation lost its new-list allocation", { id: candidate.operation.id });
2808
+ };
2809
+ const executionGroups = groupInsertionRuns(executionOrder, (candidate) => isBatchableParagraphInsertion(candidate, mode) ? candidate.from : null, (candidate) => candidate.operation.type === "setBlockParagraphProperties");
2810
+ for (const executionGroup of executionGroups) {
2811
+ const insertionState = tr;
2812
+ const insertionRun = executionGroup.flatMap((candidate) => {
2813
+ if (candidate.operation.type !== "insertAfterBlock" && candidate.operation.type !== "insertBeforeBlock") return [candidate];
2814
+ const liveCandidate = insertionWithLiveAnchor(candidate, insertionState);
2815
+ if (!liveCandidate) {
2816
+ if (!isSuggested) return [candidate];
2817
+ if (candidate.operation.moveId !== void 0) refusedMoveIds.add(candidate.operation.moveId);
2818
+ skipped.push({
2819
+ id: candidate.operation.id,
2820
+ reason: isSuggested ? "pendingDeletion" : "missingBlock"
2821
+ });
2822
+ return [];
2823
+ }
2824
+ if (isSuggested) {
2825
+ const blockFrom = insertionState.mapping.map(candidate.blockFrom, 1);
2826
+ if (isPendingDeletion(insertionState.doc, blockFrom, liveCandidate.blockNode, buildCleanBlockText(liveCandidate.blockNode, blockFrom, {
2827
+ fieldResults: "text",
2828
+ noteReferences
2829
+ }).text)) {
2830
+ if (candidate.operation.moveId !== void 0) refusedMoveIds.add(candidate.operation.moveId);
2831
+ skipped.push({
2832
+ id: candidate.operation.id,
2833
+ reason: "pendingDeletion"
2834
+ });
2835
+ return [];
2836
+ }
2837
+ }
2838
+ return [liveCandidate];
2839
+ });
2840
+ if (insertionRun.length === 0) continue;
2841
+ const item = insertionRun.at(0);
2842
+ if (!item) panic("The operation execution group was empty");
2516
2843
  continueSharedRevisionIds();
2517
2844
  if (mode === "tracked-changes" && writesParagraphPropertyChange(item)) {
2518
2845
  const appliedIds = new Set(applied.map(({ id }) => id));
@@ -2538,52 +2865,47 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
2538
2865
  continue;
2539
2866
  }
2540
2867
  }
2541
- if (isBatchableParagraphInsertion(item, mode)) {
2542
- const insertionRun = [item];
2543
- for (let lookahead = executionIndex + 1; lookahead < executionOrder.length; lookahead++) {
2544
- const candidate = executionOrder[lookahead];
2545
- if (!candidate || candidate.from !== item.from || !isBatchableParagraphInsertion(candidate, mode)) break;
2546
- insertionRun.push(candidate);
2547
- }
2548
- if (insertionRun.length > 1) {
2549
- const nodeGroups = [];
2550
- const runApplied = [];
2551
- for (const insertion of insertionRun) {
2552
- const insertionSuggestionId = isSuggested ? insertion.operation.suggestionId ?? insertion.operation.id : null;
2553
- const built = buildInsertedParagraphs({
2554
- item: insertion,
2555
- schema: view.state.schema,
2556
- formattingFromStyle: formattingFromStyleForInsertion(insertion),
2557
- mode,
2558
- author,
2559
- date,
2560
- initials,
2561
- commentMark: null,
2562
- suggestionId: insertionSuggestionId,
2563
- revisionSeed,
2564
- isPairedMove,
2565
- numbering,
2566
- styleResolver
2567
- });
2568
- revisionSeed = built.nextRevisionId;
2569
- claimSharedRevisionIds(revisionSeed);
2570
- nodeGroups.push(built.nodes);
2571
- runApplied.push({
2572
- id: insertion.operation.id,
2573
- ...built.revisionIds[0] !== void 0 && {
2574
- revisionId: built.revisionIds[0],
2575
- revisionIds: built.revisionIds
2576
- },
2577
- ...insertionSuggestionId !== null && { suggestionId: insertionSuggestionId }
2578
- });
2579
- }
2580
- const nodes = [];
2581
- for (const group of nodeGroups.toReversed()) for (const node of group) nodes.push(node);
2582
- tr = tr.insert(item.from, nodes);
2583
- applied.push(...runApplied);
2584
- executionIndex += insertionRun.length - 1;
2585
- continue;
2868
+ if (insertionRun.length > 1) {
2869
+ allocateNewLists({
2870
+ status: "willApply",
2871
+ items: insertionRun
2872
+ });
2873
+ const nodeGroups = [];
2874
+ const runApplied = [];
2875
+ for (const insertion of insertionRun) {
2876
+ const insertionSuggestionId = isSuggested ? insertion.operation.suggestionId ?? insertion.operation.id : null;
2877
+ const built = buildInsertedParagraphs({
2878
+ item: insertion,
2879
+ schema: view.state.schema,
2880
+ formattingFromStyle: formattingFromStyleForInsertion(insertion),
2881
+ mode,
2882
+ author,
2883
+ date,
2884
+ initials,
2885
+ commentMark: null,
2886
+ suggestionId: insertionSuggestionId,
2887
+ revisionSeed,
2888
+ isPairedMove,
2889
+ numbering,
2890
+ styleResolver
2891
+ });
2892
+ revisionSeed = built.nextRevisionId;
2893
+ claimSharedRevisionIds(revisionSeed);
2894
+ nodeGroups.push(built.nodes);
2895
+ runApplied.push({
2896
+ id: insertion.operation.id,
2897
+ ...built.revisionIds[0] !== void 0 && {
2898
+ revisionId: built.revisionIds[0],
2899
+ revisionIds: built.revisionIds
2900
+ },
2901
+ ...insertionSuggestionId !== null && { suggestionId: insertionSuggestionId }
2902
+ });
2586
2903
  }
2904
+ const nodes = [];
2905
+ for (const group of nodeGroups.toReversed()) for (const node of group) nodes.push(node);
2906
+ tr = tr.insert(item.from, nodes);
2907
+ applied.push(...runApplied);
2908
+ continue;
2587
2909
  }
2588
2910
  const provisionalCommentId = item.commentText !== void 0 ? reserveProvisionalCommentId() : void 0;
2589
2911
  const commentMark = provisionalCommentId !== void 0 && commentType ? commentType.create({ commentId: provisionalCommentId }) : null;
@@ -2941,16 +3263,11 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
2941
3263
  }
2942
3264
  case "insertAfterBlock":
2943
3265
  case "insertBeforeBlock": {
2944
- if (isSuggested && isPendingDeletion(tr.doc, item.blockFrom, item.blockNode, buildCleanBlockText(item.blockNode, item.blockFrom, {
2945
- fieldResults: "text",
2946
- noteReferences
2947
- }).text)) {
2948
- skipped.push({
2949
- id: item.operation.id,
2950
- reason: "pendingDeletion"
2951
- });
2952
- continue;
2953
- }
3266
+ allocateNewLists({
3267
+ status: "willApply",
3268
+ items: [item]
3269
+ });
3270
+ assertNewListsAllocated(item.operation);
2954
3271
  const built = buildInsertedParagraphs({
2955
3272
  item,
2956
3273
  schema: view.state.schema,
@@ -3231,7 +3548,7 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
3231
3548
  }
3232
3549
  if (mode === "direct") {
3233
3550
  const at = tr.doc.resolve(item.blockFrom);
3234
- tr = !paragraphEndsItsContainer(at, item.blockNode.type.name) || at.nodeBefore?.type.name === item.blockNode.type.name ? tr.delete(item.blockFrom, item.blockTo) : tr.delete(item.blockFrom + 1, item.blockTo - 1);
3551
+ tr = !paragraphEndsItsContainer(at, item.blockNode.type.name) || at.nodeBefore?.type.name === item.blockNode.type.name ? removeParagraph(tr, item.blockFrom, item.blockTo) : emptyParagraph(tr, item.blockFrom, item.blockTo);
3235
3552
  break;
3236
3553
  }
3237
3554
  const retraction = isPairedMove(item.operation.moveId) ? null : pendingParagraphRetraction(tr.doc, item.blockFrom);
@@ -3244,7 +3561,7 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
3244
3561
  continue;
3245
3562
  }
3246
3563
  const retracted = tr.doc.nodeAt(item.blockFrom);
3247
- tr = tr.delete(item.blockFrom, item.blockTo);
3564
+ tr = removeParagraph(tr, item.blockFrom, item.blockTo);
3248
3565
  if (retraction.clearBreakAt !== null) {
3249
3566
  tr = tr.setNodeAttribute(retraction.clearBreakAt, "pPrMark", null);
3250
3567
  const revisionIdProperties = operationRevisionSeed;
@@ -3298,8 +3615,12 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
3298
3615
  });
3299
3616
  const inlineRevisionApplied = item.from < item.to || atomRanges.length > 0;
3300
3617
  appliedRevisionIds = inlineRevisionApplied ? [revisionId] : [];
3301
- const markPosition = tr.mapping.map(item.blockFrom);
3302
- const endsItsContainer = paragraphEndsItsContainer(tr.doc.resolve(markPosition), item.blockNode.type.name);
3618
+ let markPosition = tr.mapping.map(item.blockFrom);
3619
+ const markOwner = tr.doc.nodeAt(markPosition);
3620
+ const across = markOwner && !isPairedMove(item.operation.moveId) && addedBreakRevisionId(markOwner.attrs["pPrMark"]) !== null ? paragraphAcrossVanishingTables(tr.doc, markPosition) : null;
3621
+ if (across !== null) markPosition = moveParagraphPastTables(tr, markPosition, across);
3622
+ const markPlace = tr.doc.resolve(markPosition);
3623
+ const endsItsContainer = paragraphEndsItsContainer(markPlace, item.blockNode.type.name);
3303
3624
  const deleted = tr.doc.nodeAt(markPosition);
3304
3625
  const following = deleted && paragraphJoinAfter(tr.doc, markPosition + deleted.nodeSize)?.next;
3305
3626
  if (deleted && following?.type === deleted.type && !isPairedMove(item.operation.moveId) && addedBreakRevisionId(deleted.attrs["pPrMark"]) !== null) {
@@ -3345,14 +3666,16 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
3345
3666
  appliedRevisionIds = inlineRevisionApplied ? [revisionId, markRevisionId] : [markRevisionId];
3346
3667
  } else if (endsItsContainer && !isPairedMove(item.operation.moveId)) deletedFinalParagraphs.push({
3347
3668
  operationId: item.operation.id,
3669
+ precededWhenDeleted: finalParagraphPredecessor(tr.doc, markPosition) !== null,
3348
3670
  position: markPosition,
3349
3671
  mappedFrom: tr.mapping.maps.length,
3350
3672
  revisionExtras: trackedRevisionExtras
3351
3673
  });
3352
3674
  else if (deleted && !isPairedMove(item.operation.moveId) && isPlainDeletedPPrMark(deleted.attrs["pPrMark"]) && holdsOnlyDeletedContent(deleted)) {
3353
- const finalPosition = deletedFinalParagraphAfter(tr.doc.resolve(markPosition), deleted.type.name);
3675
+ const finalPosition = deletedFinalParagraphAfter(tr.doc.resolve(markPosition), deleted.type.name, new Set(applied.flatMap(({ revisionIds }) => revisionIds ?? [])));
3354
3676
  if (finalPosition !== null) deletedFinalParagraphs.push({
3355
3677
  operationId: item.operation.id,
3678
+ precededWhenDeleted: true,
3356
3679
  position: finalPosition,
3357
3680
  mappedFrom: tr.mapping.maps.length,
3358
3681
  revisionExtras: trackedRevisionExtras
@@ -3533,6 +3856,11 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
3533
3856
  });
3534
3857
  continue;
3535
3858
  }
3859
+ allocateNewLists({
3860
+ status: "willApply",
3861
+ items: [item]
3862
+ });
3863
+ assertNewListsAllocated(item.operation);
3536
3864
  const appliedProperties = applyBlockParagraphProperties({
3537
3865
  tr,
3538
3866
  position: blockPosition,
@@ -3560,16 +3888,22 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
3560
3888
  }
3561
3889
  case "splitBlock": {
3562
3890
  const splitsFromItsTextBoxes = textBoxAnchorIdsBetween(tr.doc, item.blockFrom, item.from).size > 0 && endOfParagraphWithItsTextBoxes(tr.doc, item.blockFrom) > item.blockTo;
3563
- if (mode === "direct") {
3564
- if (item.to > item.from) tr = tr.delete(item.from, item.to);
3565
- tr = tr.split(item.from);
3566
- if (splitsFromItsTextBoxes) gatherTextBoxesAfterParagraph(tr, item.blockFrom);
3567
- } else if (splitsFromItsTextBoxes) {
3891
+ if (mode !== "direct" && splitsFromItsTextBoxes) {
3568
3892
  skipped.push({
3569
3893
  id: item.operation.id,
3570
3894
  reason: "unsupportedBlock"
3571
3895
  });
3572
3896
  continue;
3897
+ }
3898
+ allocateNewLists({
3899
+ status: "willApply",
3900
+ items: [item]
3901
+ });
3902
+ assertNewListsAllocated(item.operation);
3903
+ if (mode === "direct") {
3904
+ if (item.to > item.from) tr = tr.delete(item.from, item.to);
3905
+ tr = tr.split(item.from);
3906
+ if (splitsFromItsTextBoxes) gatherTextBoxesAfterParagraph(tr, item.blockFrom);
3573
3907
  } else {
3574
3908
  const revisionIdMark = operationRevisionSeed++;
3575
3909
  const info = {
@@ -3653,10 +3987,16 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
3653
3987
  });
3654
3988
  continue;
3655
3989
  }
3990
+ allocateNewLists({
3991
+ status: "willApply",
3992
+ items: [item]
3993
+ });
3994
+ assertNewListsAllocated(item.operation);
3656
3995
  const separator = followedOnlyByDeletedParagraphs(tr.doc, blockTo) ? "" : item.operation.separator ?? "";
3657
3996
  const insertAt = blockTo - 1;
3658
3997
  let mergedPropertiesAt = blockFrom;
3659
3998
  let mergedPropertiesRecorded = false;
3999
+ let mergedPropertiesApplied = false;
3660
4000
  const second = join.next;
3661
4001
  const spanningComments = commentsAcrossBlockBoundary(tr.doc, blockTo);
3662
4002
  const withSeparator = (transaction) => {
@@ -3699,6 +4039,18 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
3699
4039
  if (joined && sectionPropertiesOf(joined) !== secondSection) tr = tr.setNodeAttribute(blockFrom, "_sectionProperties", secondSection);
3700
4040
  const endingMark = second ? expectParagraphAttrs(second).pPrMark : null;
3701
4041
  if (joined && (endingMark?.kind === "del" || endingMark?.kind === "moveFrom")) {
4042
+ if (item.operation.mergedParagraphProperties) {
4043
+ const ending = tr.doc.nodeAt(blockFrom) ?? joined;
4044
+ tr = applyBlockParagraphProperties({
4045
+ tr,
4046
+ position: blockFrom,
4047
+ node: ending,
4048
+ properties: item.operation.mergedParagraphProperties,
4049
+ styleResolver,
4050
+ numbering
4051
+ }).tr;
4052
+ mergedPropertiesApplied = true;
4053
+ }
3702
4054
  const survivor = paragraphLeftAfter({
3703
4055
  doc: tr.doc,
3704
4056
  paragraphPos: blockFrom
@@ -3706,7 +4058,7 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
3706
4058
  if (survivor !== null) tr = carryParagraphProperties({
3707
4059
  tr,
3708
4060
  position: survivor,
3709
- source: joined,
4061
+ source: tr.doc.nodeAt(blockFrom) ?? joined,
3710
4062
  styleResolver,
3711
4063
  numbering,
3712
4064
  revision: endingMark.info
@@ -3795,7 +4147,7 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
3795
4147
  mergedPropertiesAt = survivorPos;
3796
4148
  }
3797
4149
  }
3798
- if (item.operation.mergedParagraphProperties) {
4150
+ if (item.operation.mergedParagraphProperties && !mergedPropertiesApplied) {
3799
4151
  const mergedParagraph = tr.doc.nodeAt(mergedPropertiesAt);
3800
4152
  if (!mergedParagraph) panic("A resolved merge did not produce a paragraph");
3801
4153
  const appliedProperties = applyBlockParagraphProperties({
@@ -3821,10 +4173,7 @@ const applyFolioAIEditOperationsInternal = ({ view, snapshot, operations: reques
3821
4173
  });
3822
4174
  break;
3823
4175
  }
3824
- case "commentOnBlock":
3825
- if (commentMark) tr = tr.addMark(item.from, item.to, commentMark);
3826
- break;
3827
- default: break;
4176
+ case "commentOnBlock": if (commentMark) tr = tr.addMark(item.from, item.to, commentMark);
3828
4177
  }
3829
4178
  if (commentPlan !== null) tr = applyAlignedReplacementComments({
3830
4179
  tr,
@@ -4043,18 +4392,27 @@ const insertCleanText = ({ tr, from, to, text, standsInFor, keepsReplacedText =
4043
4392
  const annotations = surveyReplacedAnnotations(tr.doc, from, to);
4044
4393
  const carried = standsInFor ? surveyReplacedAnnotations(tr.doc, standsInFor.from, standsInFor.to).carried : [];
4045
4394
  const replaced = keepsReplacedText ? commentsForTrackedInsertion(tr.doc, from, [carried])[0] ?? [] : carried;
4046
- if (!hasReplacedAnnotations(annotations) && replaced.length === 0 && !hasCleanTextControls(text)) return {
4047
- transaction: tr.insertText(text, from, to),
4048
- start: from,
4049
- end: from + text.length
4050
- };
4395
+ const baseMarks = (tr.selection.from === from && tr.selection.to === to ? tr.storedMarks : null) ?? inheritedReplacementMarks(tr.doc, from, to);
4396
+ if (!hasReplacedAnnotations(annotations) && replaced.length === 0 && !hasCleanTextControls(text)) {
4397
+ if (text.length === 0) return {
4398
+ transaction: tr.delete(from, to),
4399
+ start: from,
4400
+ end: from
4401
+ };
4402
+ const replacement = tr.doc.type.schema.text(text, baseMarks);
4403
+ return {
4404
+ transaction: tr.replaceWith(from, to, replacement),
4405
+ start: from,
4406
+ end: from + text.length
4407
+ };
4408
+ }
4051
4409
  const schema = tr.doc.type.schema;
4052
4410
  const { fragment, leadingSize, contentSize } = annotatedReplacement({
4053
4411
  annotations,
4054
4412
  content: Fragment.fromArray(cleanTextInlineNodes({
4055
4413
  schema,
4056
4414
  text,
4057
- marks: addCarriedMarks(inheritedReplacementMarks(tr.doc, from, to), replaced)
4415
+ marks: addCarriedMarks(baseMarks, replaced)
4058
4416
  }))
4059
4417
  });
4060
4418
  const start = from + leadingSize;
@@ -4436,23 +4794,6 @@ const applyAlignedReplacementComments = ({ tr, source, item, plan, stepsBefore,
4436
4794
  for (const comment of comments) if (comment.isInSet(expected)) tr.addMark(from, from + 1, comment);
4437
4795
  else tr.removeMark(from, from + 1, comment);
4438
4796
  }
4439
- const visible = /* @__PURE__ */ new Set();
4440
- const points = /* @__PURE__ */ new Set();
4441
- tr.doc.descendants((node) => {
4442
- if (node.type.name === "rangeAnchor") {
4443
- const attrs = readRangeAnchorAttrs(node);
4444
- if (attrs.ok && attrs.value.start.type === "commentRangeStart") points.add(attrs.value.start.id);
4445
- }
4446
- if (!node.isInline || isZeroWidthAnchor(node) || node.marks.some((mark) => mark.type.name === "deletion")) return;
4447
- for (const mark of node.marks) if (mark.type.name === "comment") visible.add(mark.attrs["commentId"]);
4448
- });
4449
- const at = clean.offsets[plan.spanStart];
4450
- if (at === void 0) panic("Replacement lost its start gap");
4451
- for (const comment of comments) {
4452
- const id = comment.attrs["commentId"];
4453
- if (visible.has(id) || points.has(id)) continue;
4454
- tr.insert(at, commentPoint(tr.doc.type.schema, id));
4455
- }
4456
4797
  return tr;
4457
4798
  };
4458
4799
  /**
@@ -4715,6 +5056,7 @@ const applyMinimalTrackedReplacement = ({ tr, item, noteReferences, replacement,
4715
5056
  nextTr = nextTr.addMark(run.at, end, insertion);
4716
5057
  if (commentMark) nextTr = nextTr.addMark(run.at, end, commentMark);
4717
5058
  }
5059
+ if (removedFrom !== null) nextTr = joinCommentStretches(nextTr, removedFrom);
4718
5060
  }
4719
5061
  return {
4720
5062
  type: "applied",
@@ -4970,10 +5312,11 @@ const resolveOperationTarget = ({ snapshot, operation, liveBlocks, liveBlocksByP
4970
5312
  };
4971
5313
  }
4972
5314
  if (operation.type === "insertTableRow") {
5315
+ const position = operation.position ?? "after";
4973
5316
  const insertion = findTableRowInsertion({
4974
5317
  doc,
4975
5318
  blockFrom,
4976
- position: operation.position ?? "after"
5319
+ position
4977
5320
  });
4978
5321
  if (!insertion) return {
4979
5322
  type: "skip",
@@ -5028,10 +5371,11 @@ const resolveOperationTarget = ({ snapshot, operation, liveBlocks, liveBlocksByP
5028
5371
  };
5029
5372
  }
5030
5373
  if (operation.type === "insertTableColumn") {
5374
+ const position = operation.position ?? "after";
5031
5375
  const insertion = findTableColumnInsertion({
5032
5376
  doc,
5033
5377
  blockFrom,
5034
- position: operation.position ?? "after"
5378
+ position
5035
5379
  });
5036
5380
  if (!insertion) return {
5037
5381
  type: "skip",
@@ -5523,7 +5867,7 @@ const describeUndefinedParagraphStyle = ({ path, styleId, definedAs }, definitio
5523
5867
  return `${path} "${styleId}" ${definedAs === void 0 ? "names no style in this document" : `names a ${definedAs} style, not a paragraph style`} (${available}).`;
5524
5868
  };
5525
5869
  /** The `w:num` id a stated numbering names, when it names one. */
5526
- const statedNumberingInstance = (numbering) => numbering?.kind === "reference" ? numbering.numId : void 0;
5870
+ const statedNumberingInstance = (numbering) => numbering?.kind === "reference" && isNumberingReference(numbering.numId) ? numbering.numId : void 0;
5527
5871
  /**
5528
5872
  * Every numbering instance an operation names, with the field that names it.
5529
5873
  * Only reference variants name an instance; inheritance, cancellation and level-only do not.
@@ -5582,4 +5926,4 @@ const getOperationQuote = (operation) => {
5582
5926
  if (operation.type === "commentOnBlock") return operation.quote;
5583
5927
  };
5584
5928
  //#endregion
5585
- export { applyFolioAIEditOperations, previewFolioAIEditOperations, previewFolioAIEditOperationsWithResult };
5929
+ export { applyFolioAIEditOperations, insertCleanText, previewFolioAIEditOperations, previewFolioAIEditOperationsWithResult };