@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
@@ -374,6 +374,7 @@ const readPreservedBlockAttrs = (node) => {
374
374
  const issues = [];
375
375
  expectNodeType(node, "preservedBlock", issues);
376
376
  requiredString(attrs, "xml", "preservedBlock.attrs.xml", issues);
377
+ optionalString(attrs, "readerText", "preservedBlock.attrs.readerText", issues);
377
378
  return attrsResult(attrs, issues);
378
379
  };
379
380
  const expectPreservedBlockAttrs = (node) => expectCachedNodeAttrs(node, preservedBlockAttrsCache, readPreservedBlockAttrs, "preservedBlock attrs");
@@ -402,6 +403,7 @@ const readTableAttrsUncached = (node) => {
402
403
  optionalRecord(attrs, "_originalFormatting", "table.attrs._originalFormatting", issues);
403
404
  optionalPositionedBookmarks(attrs, "table.attrs._bookmarks", issues);
404
405
  optionalTablePreservedMarkup(attrs, "_preserved", "table.attrs._preserved", issues);
406
+ optionalTableContentCarriers(attrs, "carrierStack", "table.attrs.carrierStack", issues);
405
407
  return attrsResult(attrs, issues);
406
408
  };
407
409
  const readTableAttrs = memoizeNodeAttrsReader(readTableAttrsUncached);
@@ -426,6 +428,7 @@ const readTableRowAttrsUncached = (node) => {
426
428
  optionalPreservedAttributes(attrs, "_preservedAttributes", "tableRow.attrs._preservedAttributes", issues);
427
429
  optionalPositionedBookmarks(attrs, "tableRow.attrs._bookmarks", issues);
428
430
  optionalContentControls(attrs, "tableRow.attrs.contentControls", issues);
431
+ optionalTableContentCarriers(attrs, "carrierStack", "tableRow.attrs.carrierStack", issues);
429
432
  optionalTablePreservedMarkup(attrs, "_preserved", "tableRow.attrs._preserved", issues);
430
433
  return attrsResult(attrs, issues);
431
434
  };
@@ -461,6 +464,7 @@ const readTableCellAttrs = (node) => {
461
464
  optionalRecord(attrs, "_originalFormatting", "tableCell.attrs._originalFormatting", issues);
462
465
  optionalTableCellRevision(attrs, issues);
463
466
  optionalContentControls(attrs, "tableCell.attrs.contentControls", issues);
467
+ optionalTableContentCarriers(attrs, "carrierStack", "tableCell.attrs.carrierStack", issues);
464
468
  optionalBoolean(attrs, "_preserveVMergeRestart", "tableCell.attrs._preserveVMergeRestart", issues);
465
469
  return attrsResult(attrs, issues);
466
470
  };
@@ -529,6 +533,81 @@ const readImageAttrs = (node) => {
529
533
  return attrsResult(attrs, issues);
530
534
  };
531
535
  const expectImageAttrs = (node) => expectCachedNodeAttrs(node, imageAttrsCache, readImageAttrs, "image attrs");
536
+ const validateEmptyFieldResultRuns = (value, issues) => {
537
+ if (!Array.isArray(value) || value.length === 0) {
538
+ issues.push({
539
+ path: "field.attrs._docxEmptyResultRuns",
540
+ message: "Expected a nonempty array of empty runs."
541
+ });
542
+ return;
543
+ }
544
+ for (const [index, run] of value.entries()) {
545
+ const path = `field.attrs._docxEmptyResultRuns[${index}]`;
546
+ if (!isRecord(run) || run["type"] !== "run") {
547
+ issues.push({
548
+ path,
549
+ message: "Expected a run."
550
+ });
551
+ continue;
552
+ }
553
+ const content = run["content"];
554
+ if (!Array.isArray(content) || !content.every((item) => isRecord(item) && item["type"] === "text" && item["text"] === "")) issues.push({
555
+ path: `${path}.content`,
556
+ message: "Expected only empty text."
557
+ });
558
+ const formatting = run["formatting"];
559
+ if (formatting !== void 0) if (!isRecord(formatting)) issues.push({
560
+ path: `${path}.formatting`,
561
+ message: "Expected formatting object."
562
+ });
563
+ else validateTextFormatting(formatting, `${path}.formatting`, issues);
564
+ optionalPropertyChanges(run, "propertyChanges", `${path}.propertyChanges`, issues, ["runPropertyChange"]);
565
+ optionalPreservedAttributes(run, "preservedAttributes", `${path}.preservedAttributes`, issues);
566
+ }
567
+ };
568
+ const isValidEmptyFieldResultRuns = (value) => {
569
+ const issues = [];
570
+ validateEmptyFieldResultRuns(value, issues);
571
+ return issues.length === 0;
572
+ };
573
+ const isFieldCodeContent = (value) => {
574
+ if (!isRecord(value)) return false;
575
+ switch (value["type"]) {
576
+ case "text":
577
+ case "instrText": return typeof value["text"] === "string";
578
+ case "fieldChar": return value["charType"] === "begin" || value["charType"] === "separate" || value["charType"] === "end";
579
+ case "preservedXml": return typeof value["xml"] === "string" && isSafePreservedChildXml(value["xml"]) && typeof value["text"] === "string";
580
+ case "symbol": return typeof value["font"] === "string" && typeof value["char"] === "string";
581
+ case "footnoteRef":
582
+ case "endnoteRef": return typeof value["id"] === "number";
583
+ case "drawing": return isRecord(value["image"]);
584
+ case "shape": return isRecord(value["shape"]);
585
+ case "tab":
586
+ case "break":
587
+ case "softHyphen":
588
+ case "noBreakHyphen":
589
+ case "renderedPageBreak": return true;
590
+ default: return false;
591
+ }
592
+ };
593
+ const isValidFieldCode = (value) => {
594
+ if (!isRecord(value) || typeof value["instruction"] !== "string") return false;
595
+ const runs = value["runs"];
596
+ if (!Array.isArray(runs) || runs.length === 0) return false;
597
+ const issues = [];
598
+ for (const [index, run] of runs.entries()) {
599
+ if (!isRecord(run) || run["type"] !== "run" || !Array.isArray(run["content"])) return false;
600
+ if (!run["content"].every(isFieldCodeContent)) return false;
601
+ const path = `field.attrs._docxFieldCode.runs[${index}]`;
602
+ if (run["formatting"] !== void 0) {
603
+ if (!isRecord(run["formatting"])) return false;
604
+ validateTextFormatting(run["formatting"], `${path}.formatting`, issues);
605
+ }
606
+ optionalPropertyChanges(run, "propertyChanges", `${path}.propertyChanges`, issues, ["runPropertyChange"]);
607
+ optionalPreservedAttributes(run, "preservedAttributes", `${path}.preservedAttributes`, issues);
608
+ }
609
+ return issues.length === 0;
610
+ };
532
611
  const readFieldAttrs = (node) => {
533
612
  const attrs = attrsRecord(node.attrs);
534
613
  const issues = [];
@@ -541,6 +620,34 @@ const readFieldAttrs = (node) => {
541
620
  optionalBoolean(attrs, "fldLock", "field.attrs.fldLock", issues);
542
621
  optionalBoolean(attrs, "dirty", "field.attrs.dirty", issues);
543
622
  optionalBoolean(attrs, "fieldResultIsFallback", "field.attrs.fieldResultIsFallback", issues);
623
+ optionalString(attrs, "formFieldDataXml", "field.attrs.formFieldDataXml", issues);
624
+ if (attrs["fieldKind"] === "simple") {
625
+ if (attrs["fieldResultIsFallback"] !== void 0 && attrs["fieldResultIsFallback"] !== null) issues.push({
626
+ path: "field.attrs.fieldResultIsFallback",
627
+ message: "Simple fields cannot have a synthesized complex-field result."
628
+ });
629
+ if (attrs["formFieldDataXml"] !== void 0 && attrs["formFieldDataXml"] !== null) issues.push({
630
+ path: "field.attrs.formFieldDataXml",
631
+ message: "Simple fields cannot carry complex-field form data."
632
+ });
633
+ }
634
+ const emptyResultRuns = attrs["_docxEmptyResultRuns"];
635
+ if (emptyResultRuns !== void 0 && emptyResultRuns !== null) validateEmptyFieldResultRuns(emptyResultRuns, issues);
636
+ const fieldCode = attrs["_docxFieldCode"];
637
+ if (fieldCode !== void 0 && fieldCode !== null && !isValidFieldCode(fieldCode)) issues.push({
638
+ path: "field.attrs._docxFieldCode",
639
+ message: "Expected source field code runs."
640
+ });
641
+ if (attrs["fieldKind"] === "simple") {
642
+ if (fieldCode !== void 0 && fieldCode !== null) issues.push({
643
+ path: "field.attrs._docxFieldCode",
644
+ message: "Simple fields cannot carry complex-field code runs."
645
+ });
646
+ if (attrs["fieldResultIsFallback"] !== void 0 && attrs["fieldResultIsFallback"] !== null) issues.push({
647
+ path: "field.attrs.fieldResultIsFallback",
648
+ message: "Simple fields cannot have a synthesized complex-field result."
649
+ });
650
+ }
544
651
  return attrsResult(attrs, issues);
545
652
  };
546
653
  const expectFieldAttrs = (node) => expectCachedNodeAttrs(node, fieldAttrsCache, readFieldAttrs, "field attrs");
@@ -563,6 +670,17 @@ const readSdtAttrs = (node) => {
563
670
  };
564
671
  const expectSdtAttrs = (node) => expectCachedNodeAttrs(node, sdtAttrsCache, readSdtAttrs, "sdt attrs");
565
672
  const blockSdtAttrsCache = /* @__PURE__ */ new WeakMap();
673
+ const blockCustomXmlAttrsCache = /* @__PURE__ */ new WeakMap();
674
+ const readBlockCustomXmlAttrs = (node) => {
675
+ const attrs = attrsRecord(node.attrs);
676
+ const issues = [];
677
+ expectNodeType(node, "blockCustomXml", issues);
678
+ requiredString(attrs, "openingXml", "blockCustomXml.attrs.openingXml", issues);
679
+ requiredString(attrs, "closingXml", "blockCustomXml.attrs.closingXml", issues);
680
+ optionalBoolean(attrs, "_originallyEmpty", "blockCustomXml.attrs._originallyEmpty", issues);
681
+ return attrsResult(attrs, issues);
682
+ };
683
+ const expectBlockCustomXmlAttrs = (node) => expectCachedNodeAttrs(node, blockCustomXmlAttrsCache, readBlockCustomXmlAttrs, "blockCustomXml attrs");
566
684
  const readBlockSdtAttrs = (node) => {
567
685
  const attrs = attrsRecord(node.attrs);
568
686
  const issues = [];
@@ -1724,6 +1842,57 @@ const optionalContentControls = (attrs, path, issues) => {
1724
1842
  requiredString(entry, "sdtType", `${entryPath}.sdtType`, issues);
1725
1843
  }
1726
1844
  };
1845
+ const optionalTableContentCarriers = (attrs, key, path, issues) => {
1846
+ const value = attrs[key];
1847
+ if (value === void 0 || value === null) return;
1848
+ if (!Array.isArray(value)) {
1849
+ issues.push({
1850
+ path,
1851
+ message: "Expected an array."
1852
+ });
1853
+ return;
1854
+ }
1855
+ for (const [index, carrier] of value.entries()) {
1856
+ const carrierPath = `${path}[${index}]`;
1857
+ if (!isRecord(carrier)) {
1858
+ issues.push({
1859
+ path: carrierPath,
1860
+ message: "Expected an object."
1861
+ });
1862
+ continue;
1863
+ }
1864
+ if (carrier["type"] === "customXml") {
1865
+ const wrapper = carrier["wrapper"];
1866
+ if (!isRecord(wrapper)) {
1867
+ issues.push({
1868
+ path: `${carrierPath}.wrapper`,
1869
+ message: "Expected an object."
1870
+ });
1871
+ continue;
1872
+ }
1873
+ requiredNumber(wrapper, "id", `${carrierPath}.wrapper.id`, issues);
1874
+ requiredString(wrapper, "openingXml", `${carrierPath}.wrapper.openingXml`, issues);
1875
+ requiredString(wrapper, "closingXml", `${carrierPath}.wrapper.closingXml`, issues);
1876
+ continue;
1877
+ }
1878
+ if (carrier["type"] === "sdt") {
1879
+ const properties = carrier["properties"];
1880
+ if (!isRecord(properties)) {
1881
+ issues.push({
1882
+ path: `${carrierPath}.properties`,
1883
+ message: "Expected an object."
1884
+ });
1885
+ continue;
1886
+ }
1887
+ requiredString(properties, "sdtType", `${carrierPath}.properties.sdtType`, issues);
1888
+ continue;
1889
+ }
1890
+ issues.push({
1891
+ path: `${carrierPath}.type`,
1892
+ message: "Expected \"customXml\" or \"sdt\"."
1893
+ });
1894
+ }
1895
+ };
1727
1896
  /** A table sink entry may itself sit inside a row- or cell-level control. */
1728
1897
  const optionalTablePreservedMarkup = (attrs, key, path, issues) => {
1729
1898
  optionalPreservedMarkup(attrs, key, path, issues);
@@ -1821,6 +1990,7 @@ const optionalPreservedMarkup = (attrs, key, path, issues) => {
1821
1990
  }
1822
1991
  requiredNumber(entry, "index", `${entryPath}.index`, issues);
1823
1992
  requiredString(entry, "xml", `${entryPath}.xml`, issues);
1993
+ optionalTableContentCarriers(entry, "carrierStack", `${entryPath}.carrierStack`, issues);
1824
1994
  const xml = entry["xml"];
1825
1995
  if (typeof xml === "string" && !isSafePreservedChildXml(xml)) issues.push({
1826
1996
  path: `${entryPath}.xml`,
@@ -1855,6 +2025,7 @@ const optionalPositionedBookmarks = (attrs, path, issues) => {
1855
2025
  continue;
1856
2026
  }
1857
2027
  validateNonNegativeSafeInteger(entry["index"], `${entryPath}.index`, issues);
2028
+ optionalTableContentCarriers(entry, "carrierStack", `${entryPath}.carrierStack`, issues);
1858
2029
  const marker = entry["marker"];
1859
2030
  if (!isRecord(marker)) {
1860
2031
  issues.push({
@@ -2839,4 +3010,4 @@ const optionalEmptyHyperlinkArray = (value, issues) => {
2839
3010
  }
2840
3011
  };
2841
3012
  //#endregion
2842
- export { expectBlockSdtAttrs, expectCharacterSpacingMarkAttrs, expectCharacterStyleMarkAttrs, expectCommentMarkAttrs, expectEmphasisMarkAttrs, expectFieldAttrs, expectFontFamilyMarkAttrs, expectFontSizeMarkAttrs, expectFootnoteRefMarkAttrs, expectHardBreakAttrs, expectHighlightMarkAttrs, expectHyperlinkMarkAttrs, expectImageAttrs, expectInlineWrapperMarkAttrs, expectLanguageMarkAttrs, expectMathAttrs, expectPageBreakRunAttrs, expectParagraphAttrs, expectPreservedBlockAttrs, expectPreservedXmlAttrs, expectRunFormattingOverrideMarkAttrs, expectRunIdentityMarkAttrs, expectRunPropertyChangeMarkAttrs, expectRunShadingMarkAttrs, expectSdtAttrs, expectShapeAttrs, expectStrikeMarkAttrs, expectSymbolAttrs, expectTabAttrs, expectTableAttrs, expectTableCellAttrs, expectTableRowAttrs, expectTextBoxAttrs, expectTextColorMarkAttrs, expectTextEffectMarkAttrs, expectTrackedChangeMarkAttrs, expectUnderlineMarkAttrs, isTrackedRevisionAncestorArray, mergeImageAttrs, mergeParagraphAttrs, mergeTableAttrs, mergeTableCellAttrs, mergeTableRowAttrs, readBlockSdtAttrs, readCharacterSpacingMarkAttrs, readCharacterStyleMarkAttrs, readCommentMarkAttrs, readEmphasisMarkAttrs, readFieldAttrs, readFontFamilyMarkAttrs, readFontSizeMarkAttrs, readFootnoteRefMarkAttrs, readHardBreakAttrs, readHighlightMarkAttrs, readHyperlinkMarkAttrs, readImageAttrs, readInlineWrapperMarkAttrs, readInlineWrapperStack, readLanguageMarkAttrs, readMathAttrs, readPageBreakRunAttrs, readParagraphAttrs, readPreservedBlockAttrs, readPreservedXmlAttrs, readRunFormattingOverrideMarkAttrs, readRunIdentityMarkAttrs, readRunPropertyChangeMarkAttrs, readRunShadingMarkAttrs, readSdtAttrs, readShapeAttrs, readStrikeMarkAttrs, readSymbolAttrs, readTabAttrs, readTableAttrs, readTableCellAttrs, readTableRowAttrs, readTextBoxAttrs, readTextColorMarkAttrs, readTextEffectMarkAttrs, readTrackedChangeMarkAttrs, readUnderlineMarkAttrs };
3013
+ export { expectBlockCustomXmlAttrs, expectBlockSdtAttrs, expectCharacterSpacingMarkAttrs, expectCharacterStyleMarkAttrs, expectCommentMarkAttrs, expectEmphasisMarkAttrs, expectFieldAttrs, expectFontFamilyMarkAttrs, expectFontSizeMarkAttrs, expectFootnoteRefMarkAttrs, expectHardBreakAttrs, expectHighlightMarkAttrs, expectHyperlinkMarkAttrs, expectImageAttrs, expectInlineWrapperMarkAttrs, expectLanguageMarkAttrs, expectMathAttrs, expectPageBreakRunAttrs, expectParagraphAttrs, expectPreservedBlockAttrs, expectPreservedXmlAttrs, expectRunFormattingOverrideMarkAttrs, expectRunIdentityMarkAttrs, expectRunPropertyChangeMarkAttrs, expectRunShadingMarkAttrs, expectSdtAttrs, expectShapeAttrs, expectStrikeMarkAttrs, expectSymbolAttrs, expectTabAttrs, expectTableAttrs, expectTableCellAttrs, expectTableRowAttrs, expectTextBoxAttrs, expectTextColorMarkAttrs, expectTextEffectMarkAttrs, expectTrackedChangeMarkAttrs, expectUnderlineMarkAttrs, isTrackedRevisionAncestorArray, isValidEmptyFieldResultRuns, isValidFieldCode, mergeImageAttrs, mergeParagraphAttrs, mergeTableAttrs, mergeTableCellAttrs, mergeTableRowAttrs, readBlockCustomXmlAttrs, readBlockSdtAttrs, readCharacterSpacingMarkAttrs, readCharacterStyleMarkAttrs, readCommentMarkAttrs, readEmphasisMarkAttrs, readFieldAttrs, readFontFamilyMarkAttrs, readFontSizeMarkAttrs, readFootnoteRefMarkAttrs, readHardBreakAttrs, readHighlightMarkAttrs, readHyperlinkMarkAttrs, readImageAttrs, readInlineWrapperMarkAttrs, readInlineWrapperStack, readLanguageMarkAttrs, readMathAttrs, readPageBreakRunAttrs, readParagraphAttrs, readPreservedBlockAttrs, readPreservedXmlAttrs, readRunFormattingOverrideMarkAttrs, readRunIdentityMarkAttrs, readRunPropertyChangeMarkAttrs, readRunShadingMarkAttrs, readSdtAttrs, readShapeAttrs, readStrikeMarkAttrs, readSymbolAttrs, readTabAttrs, readTableAttrs, readTableCellAttrs, readTableRowAttrs, readTextBoxAttrs, readTextColorMarkAttrs, readTextEffectMarkAttrs, readTrackedChangeMarkAttrs, readUnderlineMarkAttrs };
@@ -0,0 +1,6 @@
1
+ import { Command } from "prosemirror-state";
2
+ //#region src/prosemirror/clearRunColor.d.ts
3
+ /** Clearing direct color reveals the run's character/paragraph style color. */
4
+ declare const clearRunColor: () => Command;
5
+ //#endregion
6
+ export { clearRunColor };
@@ -0,0 +1,46 @@
1
+ import { getDocumentStyleResolver } from "./plugins/documentStyleState.js";
2
+ import { applyMarksToRunFormattingRepresentation, selectRunFormattingCarrierRepresentations } from "./runFormattingInlineCarriers.js";
3
+ import { readAuthoredRunFormatting, reconcileRunFormattingMarks } from "./runFormattingReconciliation.js";
4
+ import { paragraphRunStyleContextAt } from "./runStyleFormatting.js";
5
+ //#region src/prosemirror/clearRunColor.ts
6
+ /** Clearing direct color reveals the run's character/paragraph style color. */
7
+ const clearRunColor = () => (state, dispatch) => {
8
+ if (!dispatch) return true;
9
+ const styleResolver = getDocumentStyleResolver(state);
10
+ const tr = state.tr;
11
+ const { from, to, empty } = state.selection;
12
+ const clearedMarks = (node, position) => {
13
+ const context = paragraphRunStyleContextAt({
14
+ doc: state.doc,
15
+ pos: position,
16
+ styleResolver
17
+ });
18
+ const { color: _color, ...authoredFormatting } = readAuthoredRunFormatting({
19
+ context,
20
+ marks: node.marks,
21
+ styleResolver
22
+ });
23
+ return reconcileRunFormattingMarks({
24
+ authoredFormatting,
25
+ context,
26
+ node,
27
+ styleResolver
28
+ });
29
+ };
30
+ if (empty) {
31
+ const node = state.schema.text(" ", state.storedMarks ?? state.selection.$from.marks());
32
+ tr.setStoredMarks(clearedMarks(node, from));
33
+ } else for (const representation of selectRunFormattingCarrierRepresentations({
34
+ doc: state.doc,
35
+ from,
36
+ to
37
+ })) applyMarksToRunFormattingRepresentation({
38
+ tr,
39
+ representation,
40
+ marks: clearedMarks(representation.node, representation.position)
41
+ });
42
+ dispatch(tr.scrollIntoView());
43
+ return true;
44
+ };
45
+ //#endregion
46
+ export { clearRunColor };
@@ -32,7 +32,8 @@ declare function acceptChange(from: number, to: number): Command;
32
32
  */
33
33
  declare function rejectChange(from: number, to: number): Command;
34
34
  /**
35
- * Accept all tracked changes in the document.
35
+ * Accept all tracked changes in the document. Returns `false` while pending
36
+ * suggestions are present because this command cannot restage them.
36
37
  */
37
38
  declare function acceptAllChanges(): Command;
38
39
  /**
@@ -42,15 +43,11 @@ declare function rejectAllChanges(): Command;
42
43
  /**
43
44
  * Resolve a complete state synchronously for a headless reader or writer.
44
45
  *
45
- * @internal The replacement transaction is consumed here and never exposed:
46
- * it is deliberately not an editor command and must not be transported or
47
- * mapped through concurrent edits.
46
+ * Uses the same single-step resolver as the interactive editor command.
48
47
  */
49
48
  declare function resolveAllChangesInHeadlessState(state: EditorState, mode: ResolveMode): EditorState;
50
49
  /**
51
- * Resolve through the editor command path when a caller must map a position in
52
- * the reviewed document back to the tracked source. The bulk resolver is
53
- * faster, but deliberately replaces inline content without retaining mapping.
50
+ * Resolve a story and retain its position map for callers addressing the tracked source.
54
51
  */
55
52
  declare const resolveAllChangesInHeadlessStateWithMapping: (state: EditorState, mode: ResolveMode) => {
56
53
  state: EditorState;
@@ -109,6 +106,8 @@ type FolioSuggestion = {
109
106
  * accepting it applies (tracked vs direct).
110
107
  */
111
108
  declare function getSuggestions(state: EditorState): FolioSuggestion[];
109
+ /** The suggestion a revision belongs to, or `null` for an ordinary tracked change. */
110
+ declare function suggestionIdOfRevision(state: EditorState, revisionId: number): string | null;
112
111
  /**
113
112
  * The document range covering every mark belonging to `suggestionId`, plus the
114
113
  * revision ids those marks carry. Returns null when the suggestion is absent
@@ -184,4 +183,4 @@ declare function findNextChange(state: EditorState, startPos: number): ChangeRan
184
183
  */
185
184
  declare function findPreviousChange(state: EditorState, startPos: number): ChangeRange | null;
186
185
  //#endregion
187
- export { AcceptSuggestionOptions, FolioSuggestion, ParagraphBoundaryChange, SuggestionAppliedAs, SuggestionKind, acceptAIEditRevision, acceptAllChanges, acceptAllSuggestions, acceptChange, acceptSuggestion, addCommentMark, findAIEditRevisionRange, findChangeAtPosition, findNextChange, findParagraphBoundaryChangeAtPosition, findPreviousChange, findSuggestionRange, getSuggestions, rejectAIEditRevision, rejectAllChanges, rejectAllSuggestions, rejectChange, rejectSuggestion, removeCommentMark, resolveAllChangesInHeadlessState, resolveAllChangesInHeadlessStateWithMapping };
186
+ export { AcceptSuggestionOptions, FolioSuggestion, ParagraphBoundaryChange, SuggestionAppliedAs, SuggestionKind, acceptAIEditRevision, acceptAllChanges, acceptAllSuggestions, acceptChange, acceptSuggestion, addCommentMark, findAIEditRevisionRange, findChangeAtPosition, findNextChange, findParagraphBoundaryChangeAtPosition, findPreviousChange, findSuggestionRange, getSuggestions, rejectAIEditRevision, rejectAllChanges, rejectAllSuggestions, rejectChange, rejectSuggestion, removeCommentMark, resolveAllChangesInHeadlessState, resolveAllChangesInHeadlessStateWithMapping, suggestionIdOfRevision };