@stll/folio-core 0.52.0 → 0.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/README.md +23 -0
  2. package/dist/ai-edits/apply.d.ts +26 -1
  3. package/dist/ai-edits/apply.js +1779 -141
  4. package/dist/ai-edits/batch-claims.d.ts +145 -0
  5. package/dist/ai-edits/batch-claims.js +275 -0
  6. package/dist/ai-edits/blockRange.js +9 -3
  7. package/dist/ai-edits/character-boundaries.d.ts +43 -0
  8. package/dist/ai-edits/character-boundaries.js +95 -0
  9. package/dist/ai-edits/clean-text.d.ts +33 -3
  10. package/dist/ai-edits/clean-text.js +52 -6
  11. package/dist/ai-edits/comment-lifecycle.d.ts +18 -0
  12. package/dist/ai-edits/comment-lifecycle.js +52 -0
  13. package/dist/ai-edits/headless.d.ts +91 -7
  14. package/dist/ai-edits/headless.js +520 -51
  15. package/dist/ai-edits/index.d.ts +2 -1
  16. package/dist/ai-edits/index.js +2 -1
  17. package/dist/ai-edits/minimal-replacement.d.ts +21 -6
  18. package/dist/ai-edits/minimal-replacement.js +134 -15
  19. package/dist/ai-edits/newListNumbering.d.ts +23 -0
  20. package/dist/ai-edits/newListNumbering.js +94 -0
  21. package/dist/ai-edits/note-references.d.ts +96 -0
  22. package/dist/ai-edits/note-references.js +139 -0
  23. package/dist/ai-edits/pending-suggestions.d.ts +79 -0
  24. package/dist/ai-edits/pending-suggestions.js +306 -0
  25. package/dist/ai-edits/read.d.ts +6 -4
  26. package/dist/ai-edits/read.js +113 -50
  27. package/dist/ai-edits/result-validation.d.ts +29 -0
  28. package/dist/ai-edits/result-validation.js +164 -0
  29. package/dist/ai-edits/revisionStretches.d.ts +17 -0
  30. package/dist/ai-edits/revisionStretches.js +80 -0
  31. package/dist/ai-edits/snapshot.d.ts +36 -3
  32. package/dist/ai-edits/snapshot.js +180 -25
  33. package/dist/ai-edits/table-cell-mutations.d.ts +4 -2
  34. package/dist/ai-edits/table-cell-mutations.js +6 -2
  35. package/dist/ai-edits/table-geometry.d.ts +1 -1
  36. package/dist/ai-edits/table-row-column-mutations.d.ts +44 -17
  37. package/dist/ai-edits/table-row-column-mutations.js +86 -34
  38. package/dist/ai-edits/types.d.ts +155 -16
  39. package/dist/compare/compare.d.ts +1 -1
  40. package/dist/compare/compare.js +65 -16
  41. package/dist/compare/content-alignment.d.ts +5 -1
  42. package/dist/compare/content-alignment.js +52 -34
  43. package/dist/compare/content-types.d.ts +7 -0
  44. package/dist/compare/content.d.ts +4 -1
  45. package/dist/compare/content.js +6 -1
  46. package/dist/compare/formatting.js +2 -1
  47. package/dist/compare/inline-atoms.d.ts +21 -4
  48. package/dist/compare/inline-atoms.js +138 -16
  49. package/dist/compare/inline-provenance.js +1 -1
  50. package/dist/compare/plan.js +10 -5
  51. package/dist/compare/scenario.js +14 -3
  52. package/dist/compare/section-boundary-properties.js +1 -1
  53. package/dist/compare/types.d.ts +4 -2
  54. package/dist/compare/types.js +2 -1
  55. package/dist/compare/verification.d.ts +1 -1
  56. package/dist/compare/verification.js +15 -3
  57. package/dist/controller/committedLayoutDiff.d.ts +25 -0
  58. package/dist/controller/committedLayoutDiff.js +71 -0
  59. package/dist/controller/contentControlWidgetController.d.ts +1 -1
  60. package/dist/controller/folioEditor.d.ts +1 -1
  61. package/dist/controller/fontReadiness.d.ts +70 -3
  62. package/dist/controller/fontReadiness.js +100 -10
  63. package/dist/controller/headerFooterEditorManager.js +6 -1
  64. package/dist/controller/layoutPipeline.d.ts +12 -10
  65. package/dist/controller/layoutPipeline.js +65 -11
  66. package/dist/controller/layoutRunOptions.d.ts +24 -0
  67. package/dist/controller/layoutRunOptions.js +17 -0
  68. package/dist/controller/layoutScheduler.d.ts +19 -14
  69. package/dist/controller/layoutScheduler.js +15 -12
  70. package/dist/controller/layoutSession.d.ts +26 -2
  71. package/dist/controller/layoutSession.js +1 -1
  72. package/dist/controller/noteEditorManager.js +8 -3
  73. package/dist/document-operations.d.ts +11 -2
  74. package/dist/document-operations.js +230 -21
  75. package/dist/docx/altChunk.d.ts +8 -0
  76. package/dist/docx/altChunk.js +17 -0
  77. package/dist/docx/archiveInflation.d.ts +127 -0
  78. package/dist/docx/archiveInflation.js +181 -0
  79. package/dist/docx/attributeRemainder.d.ts +1 -1
  80. package/dist/docx/blockContentParser.d.ts +64 -1
  81. package/dist/docx/blockContentParser.js +17 -4
  82. package/dist/docx/blockCustomXmlShell.d.ts +7 -0
  83. package/dist/docx/blockCustomXmlShell.js +14 -0
  84. package/dist/docx/blockPlainText.js +7 -0
  85. package/dist/docx/commentAnchorIndex.js +1 -1
  86. package/dist/docx/commentRangeIntegrity.js +8 -3
  87. package/dist/docx/commentReferenceNormalization.js +1 -1
  88. package/dist/docx/commentReplyMarkers.js +20 -1
  89. package/dist/docx/compatibility.d.ts +1 -1
  90. package/dist/docx/compatibility.js +34 -13
  91. package/dist/docx/containerChildren.gen.d.ts +1 -1
  92. package/dist/docx/containerChildren.gen.js +1 -0
  93. package/dist/docx/documentParser.js +12 -12
  94. package/dist/docx/drawingIdNormalization.d.ts +3 -1
  95. package/dist/docx/drawingIdNormalization.js +6 -1
  96. package/dist/docx/ensureParaIds.js +119 -97
  97. package/dist/docx/footnoteParser.js +8 -4
  98. package/dist/docx/headerFooterParser.js +3 -3
  99. package/dist/docx/headerFooterReferenceNormalization.d.ts +20 -1
  100. package/dist/docx/headerFooterReferenceNormalization.js +52 -27
  101. package/dist/docx/hyperlinkParser.d.ts +1 -1
  102. package/dist/docx/index.d.ts +1 -1
  103. package/dist/docx/listNumberingInstances.d.ts +59 -0
  104. package/dist/docx/listNumberingInstances.js +249 -0
  105. package/dist/docx/metadataPrivacy.js +24 -1
  106. package/dist/docx/normalizeBaseDirection.js +2 -1
  107. package/dist/docx/noteReferenceMark.d.ts +15 -0
  108. package/dist/docx/noteReferenceMark.js +48 -0
  109. package/dist/docx/opaqueCarrier.d.ts +7 -0
  110. package/dist/docx/opaqueCarrier.js +38 -0
  111. package/dist/docx/packageParts.js +4 -1
  112. package/dist/docx/paragraphParser.js +96 -27
  113. package/dist/docx/paragraphPropertySource.d.ts +4 -2
  114. package/dist/docx/paragraphPropertySource.js +10 -2
  115. package/dist/docx/paragraphTraversal.js +1 -0
  116. package/dist/docx/parseWarningMessage.js +4 -1
  117. package/dist/docx/parser.js +175 -22
  118. package/dist/docx/rezip.js +31 -7
  119. package/dist/docx/sdtProperties.js +1 -1
  120. package/dist/docx/sdtPropertiesPatch.js +3 -0
  121. package/dist/docx/selectiveSave.js +16 -9
  122. package/dist/docx/selectiveXmlPatch.d.ts +3 -1
  123. package/dist/docx/selectiveXmlPatch.js +186 -39
  124. package/dist/docx/serializer/blockCustomXmlSerializer.d.ts +5 -0
  125. package/dist/docx/serializer/blockCustomXmlSerializer.js +4 -0
  126. package/dist/docx/serializer/documentSerializer.js +2 -0
  127. package/dist/docx/serializer/headerFooterSerializer.js +2 -0
  128. package/dist/docx/serializer/noteSerializer.js +3 -1
  129. package/dist/docx/serializer/paragraphSerializer.js +33 -9
  130. package/dist/docx/serializer/tableSerializer.js +25 -38
  131. package/dist/docx/server/boundedArchive.d.ts +8 -13
  132. package/dist/docx/server/boundedArchive.js +70 -59
  133. package/dist/docx/server/createBilingualDocument.js +3 -3
  134. package/dist/docx/server/extractDocxText.d.ts +8 -2
  135. package/dist/docx/server/extractDocxText.js +2 -2
  136. package/dist/docx/server/validateDocxConformance.d.ts +1 -1
  137. package/dist/docx/server/validateDocxConformance.js +1 -0
  138. package/dist/docx/tableParser.d.ts +157 -1
  139. package/dist/docx/tableParser.js +89 -10
  140. package/dist/docx/textBoxParser.js +1 -1
  141. package/dist/docx/unzip.d.ts +20 -2
  142. package/dist/docx/unzip.js +136 -25
  143. package/dist/docx/wordprocessingPrefixes.d.ts +78 -0
  144. package/dist/docx/wordprocessingPrefixes.js +286 -0
  145. package/dist/fonts/embeddedFonts.js +1 -1
  146. package/dist/i18n/messages/catalogs.gen.d.ts +170 -34
  147. package/dist/i18n/messages/catalogs.gen.js +187 -51
  148. package/dist/i18n/messages/messages.gen.d.ts +10 -2
  149. package/dist/internal/compare/inline-presentation.d.ts +2 -1
  150. package/dist/internal/compare/inline-presentation.js +11 -10
  151. package/dist/internal/headlessRevisionResolutionGuard.d.ts +2 -8
  152. package/dist/internal/headlessRevisionResolutionGuard.js +2 -11
  153. package/dist/internal/indexedPositionMap.d.ts +11 -0
  154. package/dist/internal/indexedPositionMap.js +42 -0
  155. package/dist/internal/pageBreakRunSourceDescendantIndex.js +2 -1
  156. package/dist/internal/revisionResolutionEdits.d.ts +13 -0
  157. package/dist/internal/revisionResolutionEdits.js +19 -0
  158. package/dist/internal/revisionResolutionInline.d.ts +24 -0
  159. package/dist/internal/{headlessRevisionResolution.js → revisionResolutionInline.js} +61 -43
  160. package/dist/internal/revisionResolutionStep.d.ts +34 -0
  161. package/dist/internal/revisionResolutionStep.js +282 -0
  162. package/dist/internal/revisionResolutionTracking.d.ts +11 -0
  163. package/dist/internal/revisionResolutionTracking.js +124 -0
  164. package/dist/internal/wholeStoryRevisionResolution.d.ts +56 -0
  165. package/dist/internal/wholeStoryRevisionResolution.js +600 -0
  166. package/dist/layout-bridge/convert/markupViewFlow.d.ts +20 -0
  167. package/dist/layout-bridge/convert/markupViewFlow.js +123 -0
  168. package/dist/layout-bridge/convert/tableConversion.js +1 -1
  169. package/dist/layout-bridge/convert/toFlowBlocks.js +10 -1
  170. package/dist/layout-engine/layoutInstrumentation.d.ts +9 -1
  171. package/dist/layout-engine/layoutInstrumentation.js +4 -1
  172. package/dist/layout-engine/measure/cache.d.ts +18 -1
  173. package/dist/layout-engine/measure/cache.js +31 -1
  174. package/dist/layout-engine/measure/font-metrics.worker.js +3 -7
  175. package/dist/layout-engine/measure/measureContainer.js +7 -47
  176. package/dist/layout-engine/measure/measureHelpers.d.ts +6 -1
  177. package/dist/layout-engine/measure/measureHelpers.js +22 -2
  178. package/dist/layout-engine/measure/measureParagraph.js +2 -2
  179. package/dist/layout-engine/measure/measureWorker.js +2 -3
  180. package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +6 -7
  181. package/dist/layout-engine/measure/measureWorkerProtocol.js +1 -2
  182. package/dist/layout-engine/measure/paragraphMeasureShared.d.ts +12 -1
  183. package/dist/layout-engine/measure/paragraphMeasureShared.js +14 -1
  184. package/dist/layout-engine/types.d.ts +6 -0
  185. package/dist/layout-painter/renderPage.js +1 -0
  186. package/dist/layout-painter/renderParagraph.js +1 -1
  187. package/dist/managers/ContextMenuManager.js +5 -2
  188. package/dist/managers/types.d.ts +3 -0
  189. package/dist/markdown/escape.d.ts +2 -2
  190. package/dist/markdown/escape.js +4 -5
  191. package/dist/markdown/fromMarkdown.js +2 -1
  192. package/dist/markdown/internals.d.ts +11 -1
  193. package/dist/markdown/internals.js +24 -3
  194. package/dist/markdown/renderBlock.js +121 -25
  195. package/dist/markdown/renderParagraph.d.ts +13 -1
  196. package/dist/markdown/renderParagraph.js +85 -38
  197. package/dist/markdown/renderRuns.d.ts +10 -1
  198. package/dist/markdown/renderRuns.js +323 -69
  199. package/dist/markdown/renderTable.js +24 -12
  200. package/dist/markdown/trailers.js +2 -2
  201. package/dist/markdown/types.d.ts +29 -7
  202. package/dist/paged-layout/incrementalMeasure.d.ts +1 -2
  203. package/dist/paged-layout/incrementalMeasure.js +1 -9
  204. package/dist/paged-layout/transactionDirtyRange.d.ts +1 -3
  205. package/dist/paged-layout/transactionDirtyRange.js +29 -41
  206. package/dist/panel-layout.d.ts +83 -0
  207. package/dist/panel-layout.js +96 -0
  208. package/dist/prosemirror/anchoredTextBoxes.d.ts +37 -0
  209. package/dist/prosemirror/anchoredTextBoxes.js +156 -0
  210. package/dist/prosemirror/attrs/index.d.ts +6 -2
  211. package/dist/prosemirror/attrs/index.js +172 -1
  212. package/dist/prosemirror/clearRunColor.d.ts +6 -0
  213. package/dist/prosemirror/clearRunColor.js +46 -0
  214. package/dist/prosemirror/commands/comments.d.ts +7 -8
  215. package/dist/prosemirror/commands/comments.js +281 -212
  216. package/dist/prosemirror/commands/contentControls.d.ts +1 -1
  217. package/dist/prosemirror/commands/formatPainter.d.ts +1 -1
  218. package/dist/prosemirror/commands/formatPainter.js +1 -1
  219. package/dist/prosemirror/commands/formatting.d.ts +1 -1
  220. package/dist/prosemirror/commands/hyperlink.js +2 -1
  221. package/dist/prosemirror/commands/index.d.ts +2 -2
  222. package/dist/prosemirror/commands/index.js +2 -2
  223. package/dist/prosemirror/commands/paragraph.d.ts +7 -1
  224. package/dist/prosemirror/commands/paragraph.js +9 -1
  225. package/dist/prosemirror/commands/paragraphBookmarkJoin.d.ts +13 -0
  226. package/dist/prosemirror/commands/paragraphBookmarkJoin.js +22 -0
  227. package/dist/prosemirror/commands/pastePlainText.d.ts +1 -1
  228. package/dist/prosemirror/commands/propertyChangeScope.d.ts +3 -2
  229. package/dist/prosemirror/commands/propertyChangeScope.js +24 -3
  230. package/dist/prosemirror/commands/resolveAllTableChanges.d.ts +40 -0
  231. package/dist/prosemirror/commands/resolveAllTableChanges.js +620 -0
  232. package/dist/prosemirror/commands/resolveNodePropertyChangeAttrs.d.ts +15 -0
  233. package/dist/prosemirror/commands/resolveNodePropertyChangeAttrs.js +46 -0
  234. package/dist/prosemirror/commands/resolveParagraphProperties.d.ts +16 -0
  235. package/dist/prosemirror/commands/resolveParagraphProperties.js +73 -0
  236. package/dist/prosemirror/commands/sectionBreak.js +2 -1
  237. package/dist/prosemirror/commands/tableCellMergeResolution.d.ts +15 -2
  238. package/dist/prosemirror/commands/tableCellMergeResolution.js +23 -7
  239. package/dist/prosemirror/containerFinalParagraph.d.ts +11 -5
  240. package/dist/prosemirror/containerFinalParagraph.js +7 -6
  241. package/dist/prosemirror/contentControlRevisions.d.ts +1 -1
  242. package/dist/prosemirror/conversion/fromProseDoc.d.ts +2 -13
  243. package/dist/prosemirror/conversion/fromProseDoc.js +177 -605
  244. package/dist/prosemirror/conversion/toProseDoc.d.ts +4 -11
  245. package/dist/prosemirror/conversion/toProseDoc.js +70 -154
  246. package/dist/prosemirror/documentSchema.d.ts +8 -0
  247. package/dist/prosemirror/documentSchema.js +18 -0
  248. package/dist/prosemirror/emptyFieldResultRuns.d.ts +18 -0
  249. package/dist/prosemirror/emptyFieldResultRuns.js +33 -0
  250. package/dist/prosemirror/extensions/ExtensionManager.d.ts +1 -1
  251. package/dist/prosemirror/extensions/ExtensionManager.js +3 -1
  252. package/dist/prosemirror/extensions/StarterKit.js +5 -1
  253. package/dist/prosemirror/extensions/core/DocExtension.js +1 -1
  254. package/dist/prosemirror/extensions/core/ParagraphExtension.js +116 -63
  255. package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +4 -1
  256. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.js +24 -3
  257. package/dist/prosemirror/extensions/features/JoinedRunStyleExtension.d.ts +20 -0
  258. package/dist/prosemirror/extensions/features/JoinedRunStyleExtension.js +43 -0
  259. package/dist/prosemirror/extensions/features/ListExtension.js +167 -128
  260. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +19 -2
  261. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +33 -20
  262. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +31 -2
  263. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +270 -99
  264. package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +3 -2
  265. package/dist/prosemirror/extensions/features/pasteCleanup.js +2 -1
  266. package/dist/prosemirror/extensions/features/pastedHeadingStyles.js +1 -1
  267. package/dist/prosemirror/extensions/features/pastedHtmlLists.d.ts +12 -0
  268. package/dist/prosemirror/extensions/features/pastedHtmlLists.js +124 -0
  269. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.js +33 -11
  270. package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +8 -4
  271. package/dist/prosemirror/extensions/marks/RunIdentityExtension.d.ts +21 -18
  272. package/dist/prosemirror/extensions/marks/RunIdentityExtension.js +37 -17
  273. package/dist/prosemirror/extensions/marks/StrikeExtension.js +2 -2
  274. package/dist/prosemirror/extensions/marks/SubscriptExtension.js +2 -2
  275. package/dist/prosemirror/extensions/marks/SuperscriptExtension.js +2 -2
  276. package/dist/prosemirror/extensions/marks/TextColorExtension.js +4 -3
  277. package/dist/prosemirror/extensions/marks/markUtils.d.ts +15 -8
  278. package/dist/prosemirror/extensions/marks/markUtils.js +25 -10
  279. package/dist/prosemirror/extensions/marks/noteReferenceDeletion.d.ts +12 -0
  280. package/dist/prosemirror/extensions/marks/noteReferenceDeletion.js +46 -0
  281. package/dist/prosemirror/extensions/nodes/BlockCustomXmlExtension.d.ts +6 -0
  282. package/dist/prosemirror/extensions/nodes/BlockCustomXmlExtension.js +52 -0
  283. package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.js +2 -2
  284. package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +3 -3
  285. package/dist/prosemirror/extensions/nodes/FieldExtension.js +50 -15
  286. package/dist/prosemirror/extensions/nodes/HardBreakExtension.js +5 -3
  287. package/dist/prosemirror/extensions/nodes/PreservedBlockExtension.js +4 -1
  288. package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +1 -1
  289. package/dist/prosemirror/extensions/nodes/TableExtension.js +121 -226
  290. package/dist/prosemirror/extensions/types.d.ts +11 -1
  291. package/dist/prosemirror/findReplaceSelection.js +1 -1
  292. package/dist/prosemirror/hyperlinkRemoval.d.ts +9 -0
  293. package/dist/prosemirror/hyperlinkRemoval.js +129 -0
  294. package/dist/prosemirror/index.d.ts +5 -3
  295. package/dist/prosemirror/index.js +5 -3
  296. package/dist/prosemirror/indexedNodeLookup.d.ts +17 -0
  297. package/dist/prosemirror/indexedNodeLookup.js +103 -0
  298. package/dist/prosemirror/listAutoformatMarkers.d.ts +19 -0
  299. package/dist/prosemirror/listAutoformatMarkers.js +98 -0
  300. package/dist/prosemirror/listInstanceReferences.d.ts +12 -0
  301. package/dist/prosemirror/listInstanceReferences.js +72 -0
  302. package/dist/prosemirror/listLabels.d.ts +24 -0
  303. package/dist/prosemirror/listLabels.js +111 -0
  304. package/dist/prosemirror/listNumbering.d.ts +92 -0
  305. package/dist/prosemirror/listNumbering.js +330 -0
  306. package/dist/prosemirror/listRendering.d.ts +27 -0
  307. package/dist/prosemirror/listRendering.js +27 -0
  308. package/dist/prosemirror/listRenderingAttrs.d.ts +11 -2
  309. package/dist/prosemirror/listRenderingAttrs.js +8 -1
  310. package/dist/prosemirror/markupViewNotes.d.ts +8 -0
  311. package/dist/prosemirror/markupViewNotes.js +49 -0
  312. package/dist/prosemirror/markupViewProjection.d.ts +97 -0
  313. package/dist/prosemirror/markupViewProjection.js +88 -0
  314. package/dist/prosemirror/noteReferenceReview.d.ts +77 -0
  315. package/dist/prosemirror/noteReferenceReview.js +332 -0
  316. package/dist/prosemirror/numberingAttr.d.ts +9 -1
  317. package/dist/prosemirror/numberingAttr.js +9 -1
  318. package/dist/prosemirror/outlineLevelAttr.js +1 -1
  319. package/dist/prosemirror/paragraphIndentation.d.ts +10 -1
  320. package/dist/prosemirror/paragraphIndentation.js +32 -7
  321. package/dist/prosemirror/paragraphMarkJoin.d.ts +21 -0
  322. package/dist/prosemirror/paragraphMarkJoin.js +26 -0
  323. package/dist/prosemirror/paragraphPropertyCarry.d.ts +64 -0
  324. package/dist/prosemirror/paragraphPropertyCarry.js +158 -0
  325. package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +1 -1
  326. package/dist/prosemirror/plugins/documentNumbering.d.ts +27 -1
  327. package/dist/prosemirror/plugins/documentNumbering.js +97 -11
  328. package/dist/prosemirror/plugins/documentStyleState.d.ts +26 -0
  329. package/dist/prosemirror/plugins/documentStyleState.js +32 -0
  330. package/dist/prosemirror/plugins/documentStyles.d.ts +3 -13
  331. package/dist/prosemirror/plugins/documentStyles.js +67 -17
  332. package/dist/prosemirror/plugins/index.d.ts +2 -1
  333. package/dist/prosemirror/plugins/index.js +2 -1
  334. package/dist/prosemirror/plugins/paragraphStyleResolution.d.ts +15 -0
  335. package/dist/prosemirror/plugins/paragraphStyleResolution.js +230 -0
  336. package/dist/prosemirror/plugins/suggestionMode.d.ts +27 -3
  337. package/dist/prosemirror/plugins/suggestionMode.js +490 -63
  338. package/dist/prosemirror/plugins/templateDirectives.d.ts +1 -1
  339. package/dist/prosemirror/plugins/transactionInvariants.d.ts +32 -0
  340. package/dist/prosemirror/plugins/transactionInvariants.js +86 -0
  341. package/dist/prosemirror/positionSweep.d.ts +24 -0
  342. package/dist/prosemirror/positionSweep.js +222 -0
  343. package/dist/prosemirror/rebaseParagraphRunFormatting.d.ts +23 -3
  344. package/dist/prosemirror/rebaseParagraphRunFormatting.js +39 -13
  345. package/dist/prosemirror/rebaseParagraphRuns.d.ts +36 -0
  346. package/dist/prosemirror/rebaseParagraphRuns.js +99 -0
  347. package/dist/prosemirror/rejoinRunCarriers.d.ts +1 -1
  348. package/dist/prosemirror/replacedAnnotations.d.ts +33 -1
  349. package/dist/prosemirror/replacedAnnotations.js +170 -1
  350. package/dist/prosemirror/runFormattingFromMarks.d.ts +18 -0
  351. package/dist/prosemirror/runFormattingFromMarks.js +567 -0
  352. package/dist/prosemirror/runFormattingInlineCarriers.d.ts +1 -1
  353. package/dist/prosemirror/runFormattingReconciliation.js +10 -9
  354. package/dist/prosemirror/schema/index.d.ts +2 -2
  355. package/dist/prosemirror/schema/index.js +3 -0
  356. package/dist/prosemirror/schema/nodes.d.ts +44 -11
  357. package/dist/prosemirror/sectionMarkEdits.d.ts +20 -0
  358. package/dist/prosemirror/sectionMarkEdits.js +59 -0
  359. package/dist/prosemirror/storyListNumbering.d.ts +17 -0
  360. package/dist/prosemirror/storyListNumbering.js +102 -0
  361. package/dist/prosemirror/styles/paragraphStyleCascade.d.ts +59 -0
  362. package/dist/prosemirror/styles/paragraphStyleCascade.js +145 -0
  363. package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +21 -2
  364. package/dist/prosemirror/styles/resolvedStyleAttrs.js +38 -1
  365. package/dist/prosemirror/styles/tableStyleRegions.d.ts +31 -0
  366. package/dist/prosemirror/styles/tableStyleRegions.js +55 -0
  367. package/dist/prosemirror/tableCellPaste.d.ts +74 -0
  368. package/dist/prosemirror/tableCellPaste.js +525 -0
  369. package/dist/prosemirror/tableGridMutation.d.ts +87 -2
  370. package/dist/prosemirror/tableGridMutation.js +255 -2
  371. package/dist/prosemirror/tableRunIn.d.ts +51 -0
  372. package/dist/prosemirror/tableRunIn.js +165 -0
  373. package/dist/prosemirror/textInput.js +11 -2
  374. package/dist/prosemirror/trackedRevisionPath.d.ts +17 -0
  375. package/dist/prosemirror/trackedRevisionPath.js +32 -0
  376. package/dist/prosemirror/validation.js +5 -1
  377. package/dist/redline.js +93 -9
  378. package/dist/render-dom/BodySelectionOverlay.d.ts +4 -1
  379. package/dist/render-dom/BodySelectionOverlay.js +3 -2
  380. package/dist/server.d.ts +2 -2
  381. package/dist/utils/findReplace.js +2 -2
  382. package/dist/utils/mergeDocumentContent.js +1 -1
  383. package/dist/utils/noteReferenceLabels.d.ts +36 -0
  384. package/dist/utils/noteReferenceLabels.js +32 -0
  385. package/dist/utils/replaceText.js +1 -1
  386. package/dist/version-comparison.d.ts +1 -0
  387. package/dist/version-comparison.js +1 -0
  388. package/package.json +6 -5
  389. package/dist/internal/headlessRevisionResolution.d.ts +0 -23
@@ -0,0 +1,16 @@
1
+ import { RunStyleResolver } from "../runStyleFormatting.js";
2
+ import { NumberingMap } from "../../docx/numberingParser.js";
3
+ import { Node } from "prosemirror-model";
4
+ //#region src/prosemirror/commands/resolveParagraphProperties.d.ts
5
+ type ResolveParagraphPropertiesOptions = {
6
+ node: Node;
7
+ boundaryCovered: boolean;
8
+ mode: "accept" | "reject";
9
+ revisionSet: ReadonlySet<number> | null;
10
+ styleResolver: RunStyleResolver | null;
11
+ numbering: NumberingMap | null;
12
+ };
13
+ /** Resolve paragraph and section property records before resolving their inline content. */
14
+ declare const resolveParagraphChangeAttrs: ({ node, boundaryCovered, mode, revisionSet, styleResolver, numbering }: ResolveParagraphPropertiesOptions) => Record<string, unknown> | null;
15
+ //#endregion
16
+ export { resolveParagraphChangeAttrs };
@@ -0,0 +1,73 @@
1
+ import { expectParagraphAttrs } from "../attrs/index.js";
2
+ import { rejectedListRenderingPatch } from "../listRendering.js";
3
+ import { styleResolvedParagraphFormatting } from "../paragraphFormattingProvenance.js";
4
+ import { resolveParagraphDefaultTextFormatting } from "../styles/paragraphStyleCascade.js";
5
+ import { paragraphRejectAttrPatch, paragraphRejectOriginalFormatting, removeParagraphPropertyChanges, sectionRejectProperties } from "./propertyChangeScope.js";
6
+ //#region src/prosemirror/commands/resolveParagraphProperties.ts
7
+ /** Resolve paragraph and section property records before resolving their inline content. */
8
+ const resolveParagraphChangeAttrs = ({ node, boundaryCovered, mode, revisionSet, styleResolver, numbering }) => {
9
+ let nextAttrs = null;
10
+ const propertyChanges = expectParagraphAttrs(node)._propertyChanges;
11
+ if (Array.isArray(propertyChanges) && propertyChanges.length > 0 && boundaryCovered) {
12
+ const matchesPropertyChange = (change) => revisionSet === null || revisionSet.has(change.info.id);
13
+ if (propertyChanges.some(matchesPropertyChange)) {
14
+ const rejection = mode === "reject" ? removeParagraphPropertyChanges(propertyChanges, matchesPropertyChange) : null;
15
+ let remaining;
16
+ if (rejection === null) remaining = propertyChanges.filter((change) => !matchesPropertyChange(change));
17
+ else if (rejection.type === "unchanged") remaining = propertyChanges;
18
+ else remaining = rejection.remaining;
19
+ nextAttrs = {
20
+ ...node.attrs,
21
+ _propertyChanges: remaining.length > 0 ? remaining : null
22
+ };
23
+ if (rejection?.type === "restore-previous") {
24
+ const currentAttrs = expectParagraphAttrs(node);
25
+ const inheritedAlignment = currentAttrs.alignmentFromStyle;
26
+ const restoredStyleId = rejection.previousFormatting?.styleId ?? void 0;
27
+ const sameStyle = restoredStyleId === (currentAttrs.styleId ?? void 0);
28
+ let previousFormattingFromStyle;
29
+ let resolvedFromStyle = sameStyle ? currentAttrs._resolvedFormatting : void 0;
30
+ if (styleResolver) {
31
+ previousFormattingFromStyle = styleResolver.resolveParagraphStyle(restoredStyleId).paragraphFormatting;
32
+ if (!sameStyle) {
33
+ resolvedFromStyle = styleResolvedParagraphFormatting(previousFormattingFromStyle);
34
+ nextAttrs["_resolvedFormatting"] = resolvedFromStyle;
35
+ }
36
+ } else if (inheritedAlignment !== void 0) previousFormattingFromStyle = { alignment: inheritedAlignment };
37
+ const inheritedFormatting = previousFormattingFromStyle === void 0 && resolvedFromStyle === void 0 ? void 0 : {
38
+ ...previousFormattingFromStyle,
39
+ ...resolvedFromStyle
40
+ };
41
+ Object.assign(nextAttrs, paragraphRejectAttrPatch(rejection.previousFormatting, inheritedFormatting), rejectedListRenderingPatch({
42
+ current: expectParagraphAttrs(node),
43
+ previousFormatting: rejection.previousFormatting,
44
+ numbering
45
+ }));
46
+ const restoredFormatting = paragraphRejectOriginalFormatting(rejection.previousFormatting, node.attrs["_originalFormatting"]);
47
+ nextAttrs["_originalFormatting"] = restoredFormatting;
48
+ if (styleResolver) nextAttrs["defaultTextFormatting"] = resolveParagraphDefaultTextFormatting(rejection.previousFormatting?.styleId, restoredFormatting ?? void 0, styleResolver) ?? null;
49
+ }
50
+ }
51
+ }
52
+ const sectionProperties = expectParagraphAttrs(node)._sectionProperties;
53
+ const sectionChanges = sectionProperties?.propertyChanges;
54
+ if (sectionProperties && Array.isArray(sectionChanges) && sectionChanges.length > 0 && boundaryCovered) {
55
+ const matches = sectionChanges.filter((c) => revisionSet === null || c.info && revisionSet.has(c.info.id));
56
+ if (matches.length > 0) {
57
+ const remaining = sectionChanges.filter((c) => revisionSet !== null && (!c.info || !revisionSet.has(c.info.id)));
58
+ let restored = { ...sectionProperties };
59
+ if (mode === "reject") for (const change of matches.toReversed()) restored = sectionRejectProperties({
60
+ live: restored,
61
+ previousProperties: change.previousProperties,
62
+ previousReferences: change.previousReferences
63
+ });
64
+ delete restored.propertyChanges;
65
+ if (remaining.length > 0) restored.propertyChanges = remaining;
66
+ nextAttrs = nextAttrs ?? { ...node.attrs };
67
+ nextAttrs["_sectionProperties"] = restored;
68
+ }
69
+ }
70
+ return nextAttrs;
71
+ };
72
+ //#endregion
73
+ export { resolveParagraphChangeAttrs };
@@ -1,3 +1,4 @@
1
+ import { markSectionBreakRemoval } from "../extensions/features/ParagraphChangeTrackerExtension.js";
1
2
  import { mintSectionProperties, sectionPropertiesOf } from "../sectionCarrier.js";
2
3
  import { TextSelection } from "prosemirror-state";
3
4
  //#region src/prosemirror/commands/sectionBreak.ts
@@ -150,7 +151,7 @@ const rewriteSelectedSectionRecords = (rewrite) => (state, dispatch) => {
150
151
  const paragraph = transaction.doc.nodeAt(position);
151
152
  if (paragraph) transaction.setNodeMarkup(position, void 0, withSectionProperties(paragraph.attrs, properties));
152
153
  }
153
- dispatch(transaction.scrollIntoView());
154
+ dispatch(markSectionBreakRemoval(transaction, state.doc).scrollIntoView());
154
155
  }
155
156
  return true;
156
157
  };
@@ -1,8 +1,21 @@
1
- import { Transaction } from "prosemirror-state";
1
+ import { document_d_exports } from "../../types/document.js";
2
+ import { DecodedTableCellParagraphSourcePayload } from "../../docx/paragraphPropertySource.js";
2
3
  import { Node } from "prosemirror-model";
4
+ import { Transaction } from "prosemirror-state";
3
5
  //#region src/prosemirror/commands/tableCellMergeResolution.d.ts
6
+ declare const tableCellContinuationPayload: (node: Node) => DecodedTableCellParagraphSourcePayload | null;
4
7
  declare const hasMatchingCollapsedTableCellMerge: (node: Node, revisionSet: Set<number> | null) => boolean;
8
+ /**
9
+ * Whether accepting a pending vertical merge folds the cell into the one above.
10
+ * The saved `w:vMerge` continuation is read back as its own cell when it carries
11
+ * content, so accepting such a merge keeps the cell standing; folding it would
12
+ * hide text that reappears when the document is reopened.
13
+ */
14
+ declare const acceptedMergeFoldsIntoCellAbove: (cell: Node) => boolean;
5
15
  declare const resolveVisibleTableCellMerge: (tr: Transaction, cellPos: number, mode: "accept" | "reject") => boolean;
16
+ declare const tableCellContinuationCells: (cell: Node, rowspan: number) => document_d_exports.TableCell[];
17
+ declare const tableCellContinuationFromNode: (cell: Node) => document_d_exports.TableCell;
6
18
  declare const resolveCollapsedTableCellMerge: (tr: Transaction, cellPos: number, mode: "accept" | "reject", revisionSet: Set<number> | null) => boolean;
19
+ declare const createRestoredTableCell: (origin: Node, source: document_d_exports.TableCell) => Node | null;
7
20
  //#endregion
8
- export { hasMatchingCollapsedTableCellMerge, resolveCollapsedTableCellMerge, resolveVisibleTableCellMerge };
21
+ export { acceptedMergeFoldsIntoCellAbove, createRestoredTableCell, hasMatchingCollapsedTableCellMerge, resolveCollapsedTableCellMerge, resolveVisibleTableCellMerge, tableCellContinuationCells, tableCellContinuationFromNode, tableCellContinuationPayload };
@@ -1,8 +1,10 @@
1
1
  import { decodeTableCellParagraphSourcePayload, restoreTableCellsWithParagraphPropertySources, transportTableCellsWithParagraphPropertySources } from "../../docx/paragraphPropertySource.js";
2
+ import { isTableCellMergeRevisionContinuation } from "../../docx/tableParser.js";
2
3
  import { standaloneTableCellFromProseMirror } from "../conversion/fromProseDoc.js";
3
- import { standaloneTableCellToProseMirror } from "../conversion/toProseDoc.js";
4
+ import { standaloneTableCellToProseMirror, tableCellHasMeaningfulContent } from "../conversion/toProseDoc.js";
4
5
  import { getTableCellMergeChange } from "../tableCellMergeRevision.js";
5
- import { Result } from "better-result";
6
+ import { removeRowsWithoutCellsInRange } from "../tableGridMutation.js";
7
+ import { Result, panic } from "better-result";
6
8
  import { TableMap } from "prosemirror-tables";
7
9
  //#region src/prosemirror/commands/tableCellMergeResolution.ts
8
10
  const tableCellContinuationPayload = (node) => {
@@ -35,15 +37,22 @@ const tableCellContext = (doc, cellPos) => {
35
37
  }
36
38
  return null;
37
39
  };
40
+ /**
41
+ * Whether accepting a pending vertical merge folds the cell into the one above.
42
+ * The saved `w:vMerge` continuation is read back as its own cell when it carries
43
+ * content, so accepting such a merge keeps the cell standing; folding it would
44
+ * hide text that reappears when the document is reopened.
45
+ */
46
+ const acceptedMergeFoldsIntoCellAbove = (cell) => !tableCellHasMeaningfulContent(standaloneTableCellFromProseMirror(cell));
38
47
  const resolveVisibleTableCellMerge = (tr, cellPos, mode) => {
39
48
  const cell = tr.doc.nodeAt(cellPos);
40
49
  const marker = cell?.attrs["cellMarker"];
41
50
  if (!cell || !isTableCellMergeRevisionAttr(marker)) return false;
51
+ if (mode === "accept" ? isTableCellMergeRevisionContinuation(marker.verticalMerge) && acceptedMergeFoldsIntoCellAbove(cell) : isTableCellMergeRevisionContinuation(marker.verticalMergeOriginal)) return mergeTableCellWithCellAbove(tr, cellPos);
42
52
  if (mode === "accept") {
43
53
  tr.setNodeAttribute(cellPos, "cellMarker", null);
44
54
  return true;
45
55
  }
46
- if ((marker.verticalMergeOriginal ?? "rest") === "continue") return mergeTableCellWithCellAbove(tr, cellPos);
47
56
  const originalFormatting = cell.attrs["_originalFormatting"];
48
57
  let nextOriginalFormatting = originalFormatting;
49
58
  if (typeof originalFormatting === "object" && originalFormatting !== null) {
@@ -73,11 +82,18 @@ const mergeTableCellWithCellAbove = (tr, cellPos) => {
73
82
  const aboveRowspan = aboveCell?.attrs["rowspan"];
74
83
  const cellRowspan = cell.attrs["rowspan"];
75
84
  if (!aboveCell || typeof aboveRowspan !== "number" || typeof cellRowspan !== "number" || aboveRowspan < 1 || cellRowspan < 1) return false;
85
+ removeRowsWithoutCellsInRange({
86
+ tr,
87
+ from: cellPos + 1,
88
+ to: cellPos + cell.nodeSize - 1
89
+ });
90
+ const capturedCell = tr.doc.nodeAt(cellPos);
91
+ if (!capturedCell) panic("Nested table cleanup removed its owning cell");
76
92
  const continuationCells = tableCellContinuationCells(aboveCell, aboveRowspan);
77
- continuationCells.push(tableCellContinuationFromNode(cell));
78
- const nestedPayload = tableCellContinuationPayload(cell);
93
+ continuationCells.push(tableCellContinuationFromNode(capturedCell));
94
+ const nestedPayload = tableCellContinuationPayload(capturedCell);
79
95
  if (nestedPayload) continuationCells.push(...nestedPayload.cells);
80
- tr.delete(cellPos, cellPos + cell.nodeSize);
96
+ tr.delete(cellPos, cellPos + capturedCell.nodeSize);
81
97
  tr.setNodeMarkup(abovePos, void 0, {
82
98
  ...aboveCell.attrs,
83
99
  rowspan: aboveRowspan + cellRowspan,
@@ -185,4 +201,4 @@ const createRestoredTableCell = (origin, source) => {
185
201
  return Result.try(() => origin.type.schema.nodeFromJSON(restored.toJSON())).unwrapOr(null);
186
202
  };
187
203
  //#endregion
188
- export { hasMatchingCollapsedTableCellMerge, resolveCollapsedTableCellMerge, resolveVisibleTableCellMerge };
204
+ export { acceptedMergeFoldsIntoCellAbove, createRestoredTableCell, hasMatchingCollapsedTableCellMerge, resolveCollapsedTableCellMerge, resolveVisibleTableCellMerge, tableCellContinuationCells, tableCellContinuationFromNode, tableCellContinuationPayload };
@@ -28,18 +28,24 @@ declare const finalParagraphsOf: (doc: Node, paragraphTypeName: string) => {
28
28
  position: number;
29
29
  node: Node;
30
30
  }[];
31
+ type AddedBreakCarrierBeforeOptions = {
32
+ at: ResolvedPos;
33
+ paragraphTypeName: string;
34
+ canCrossTable?: (table: Node) => boolean;
35
+ };
31
36
  /**
32
37
  * The paragraph an added break can rotate BACK onto from the one at `at`: the
33
38
  * paragraph the run of inserted ones was appended after.
34
39
  *
35
40
  * The walk crosses the inserted paragraphs — their own marks stay where they
36
41
  * are, and only which paragraph is left markless changes — and stops at the
37
- * first one whose mark is free. `null` when there is none: a table in between,
38
- * which no mark joins across; a paragraph whose mark says something else,
39
- * which the rotation must not overwrite; or a container whose every paragraph
40
- * is new.
42
+ * first one whose mark is free. A table blocks the walk unless the caller
43
+ * authorizes a wholly inserted table: rejecting it removes that barrier too.
44
+ * `null` when there is no carrier: a table the caller cannot cross, a
45
+ * paragraph whose mark the rotation must not overwrite, or a container whose
46
+ * every paragraph is new.
41
47
  */
42
- declare const addedBreakCarrierBefore: (at: ResolvedPos, paragraphTypeName: string) => {
48
+ declare const addedBreakCarrierBefore: ({ at, paragraphTypeName, canCrossTable }: AddedBreakCarrierBeforeOptions) => {
43
49
  position: number;
44
50
  node: Node;
45
51
  } | null;
@@ -66,18 +66,19 @@ const marksAnAddedBreak = (node) => {
66
66
  *
67
67
  * The walk crosses the inserted paragraphs — their own marks stay where they
68
68
  * are, and only which paragraph is left markless changes — and stops at the
69
- * first one whose mark is free. `null` when there is none: a table in between,
70
- * which no mark joins across; a paragraph whose mark says something else,
71
- * which the rotation must not overwrite; or a container whose every paragraph
72
- * is new.
69
+ * first one whose mark is free. A table blocks the walk unless the caller
70
+ * authorizes a wholly inserted table: rejecting it removes that barrier too.
71
+ * `null` when there is no carrier: a table the caller cannot cross, a
72
+ * paragraph whose mark the rotation must not overwrite, or a container whose
73
+ * every paragraph is new.
73
74
  */
74
- const addedBreakCarrierBefore = (at, paragraphTypeName) => {
75
+ const addedBreakCarrierBefore = ({ at, paragraphTypeName, canCrossTable }) => {
75
76
  let position = at.pos;
76
77
  for (let index = at.index() - 1; index >= 0; index--) {
77
78
  const sibling = at.parent.child(index);
78
79
  position -= sibling.nodeSize;
79
80
  if (sibling.type.name !== paragraphTypeName) {
80
- if (isAContainerChild(sibling, paragraphTypeName)) return null;
81
+ if (isAContainerChild(sibling, paragraphTypeName) && !canCrossTable?.(sibling)) return null;
81
82
  continue;
82
83
  }
83
84
  if (sibling.attrs["pPrMark"] == null) return {
@@ -1,5 +1,5 @@
1
- import { Transaction } from "prosemirror-state";
2
1
  import { MarkType, Node } from "prosemirror-model";
2
+ import { Transaction } from "prosemirror-state";
3
3
  //#region src/prosemirror/contentControlRevisions.d.ts
4
4
  declare const ENCLOSING_REVISION_IDS_ATTR = "_docxEnclosingRevisionIds";
5
5
  /** The revisions whose element encloses `control`. */
@@ -1,7 +1,7 @@
1
1
  import { document_d_exports } from "../../types/document.js";
2
2
  import { TableAttrs, TableCellAttrs, TableRowAttrs } from "../schema/nodes.js";
3
- import { RunStyleResolver } from "../runStyleFormatting.js";
4
- import { Mark, Node } from "prosemirror-model";
3
+ import { marksToTextFormatting } from "../runFormattingFromMarks.js";
4
+ import { Node } from "prosemirror-model";
5
5
  //#region src/prosemirror/conversion/fromProseDoc.d.ts
6
6
  /**
7
7
  * Whether a record the editor did not change may come back from the base
@@ -21,17 +21,6 @@ type FromProseDocOptions = {
21
21
  };
22
22
  /** Convert a ProseMirror document to the document model. */
23
23
  declare function fromProseDoc(pmDoc: Node, baseDocument?: document_d_exports.Document, { reuse }?: FromProseDocOptions): document_d_exports.Document;
24
- /**
25
- * Convert ProseMirror marks to TextFormatting
26
- */
27
- type MarksToTextFormattingOptions = {
28
- baseParagraphFormatting?: document_d_exports.TextFormatting | undefined;
29
- inheritedFormatting?: document_d_exports.TextFormatting | undefined;
30
- paragraphMarkFormatting?: document_d_exports.TextFormatting | undefined;
31
- paragraphMarkPrecedesStyle?: boolean | undefined;
32
- styleResolver?: RunStyleResolver | null | undefined;
33
- };
34
- declare function marksToTextFormatting(marks: readonly Mark[], options?: MarksToTextFormattingOptions): document_d_exports.TextFormatting;
35
24
  declare function tableAttrsToFormatting(attrs: TableAttrs): document_d_exports.TableFormatting | undefined;
36
25
  /**
37
26
  * Convert ProseMirror table row attrs to TableRowFormatting