@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,46 @@
1
+ //#region src/prosemirror/extensions/marks/noteReferenceDeletion.ts
2
+ /** Keep the text carrying one OOXML note reference together during deletion. */
3
+ const expandNoteReferenceDeletionRange = (doc, from, to) => {
4
+ let expandedFrom = from;
5
+ let expandedTo = to;
6
+ let intersectsReference = false;
7
+ doc.nodesBetween(from, to, (node, pos) => {
8
+ const reference = node.marks.find((mark) => mark.type.name === "footnoteRef");
9
+ if (!node.isText || !reference) return;
10
+ intersectsReference = true;
11
+ const $pos = doc.resolve(pos);
12
+ const parent = $pos.parent;
13
+ const index = $pos.index();
14
+ let referenceFrom = pos;
15
+ let referenceTo = pos + node.nodeSize;
16
+ for (let left = index - 1; left >= 0; left--) {
17
+ const sibling = parent.child(left);
18
+ if (!sibling.isText || !sibling.marks.some((mark) => mark.eq(reference))) break;
19
+ referenceFrom -= sibling.nodeSize;
20
+ }
21
+ for (let right = index + 1; right < parent.childCount; right++) {
22
+ const sibling = parent.child(right);
23
+ if (!sibling.isText || !sibling.marks.some((mark) => mark.eq(reference))) break;
24
+ referenceTo += sibling.nodeSize;
25
+ }
26
+ expandedFrom = Math.min(expandedFrom, referenceFrom);
27
+ expandedTo = Math.max(expandedTo, referenceTo);
28
+ });
29
+ return intersectsReference ? {
30
+ from: expandedFrom,
31
+ to: expandedTo
32
+ } : null;
33
+ };
34
+ /** Each whole note reference [`from`, `to`) of `doc` touches, in document order. */
35
+ const noteReferenceRanges = (doc, from, to) => {
36
+ const ranges = [];
37
+ doc.nodesBetween(from, to, (node, pos) => {
38
+ if (!node.isText || !node.marks.some((mark) => mark.type.name === "footnoteRef")) return;
39
+ const whole = expandNoteReferenceDeletionRange(doc, pos, pos + node.nodeSize);
40
+ const last = ranges.at(-1);
41
+ if (whole && (!last || whole.from >= last.to)) ranges.push(whole);
42
+ });
43
+ return ranges;
44
+ };
45
+ //#endregion
46
+ export { expandNoteReferenceDeletionRange, noteReferenceRanges };
@@ -0,0 +1,6 @@
1
+ import { NodeExtension } from "../types.js";
2
+ //#region src/prosemirror/extensions/nodes/BlockCustomXmlExtension.d.ts
3
+ /** An editable block sequence inside an authored custom XML wrapper. */
4
+ declare const BlockCustomXmlExtension: (options?: Partial<Record<string, unknown>> | undefined) => NodeExtension;
5
+ //#endregion
6
+ export { BlockCustomXmlExtension };
@@ -0,0 +1,52 @@
1
+ import { createNodeExtension } from "../create.js";
2
+ //#region src/prosemirror/extensions/nodes/BlockCustomXmlExtension.ts
3
+ /** An editable block sequence inside an authored custom XML wrapper. */
4
+ const BlockCustomXmlExtension = createNodeExtension({
5
+ name: "blockCustomXml",
6
+ schemaNodeName: "blockCustomXml",
7
+ nodeSpec: {
8
+ group: "block",
9
+ content: "block+",
10
+ isolating: true,
11
+ defining: true,
12
+ attrs: {
13
+ openingXml: { default: null },
14
+ closingXml: { default: null },
15
+ _originallyEmpty: { default: false }
16
+ },
17
+ parseDOM: [{
18
+ tag: "div[data-docx-block-custom-xml-open]",
19
+ getAttrs(dom) {
20
+ if (!(dom instanceof HTMLElement)) return false;
21
+ const openingXml = dom.dataset["docxBlockCustomXmlOpen"];
22
+ const closingXml = dom.dataset["docxBlockCustomXmlClose"];
23
+ if (!openingXml || !closingXml) return false;
24
+ return {
25
+ openingXml,
26
+ closingXml,
27
+ _originallyEmpty: dom.dataset["docxBlockCustomXmlEmpty"] === "true"
28
+ };
29
+ }
30
+ }],
31
+ toDOM(node) {
32
+ const { openingXml, closingXml, _originallyEmpty } = node.attrs;
33
+ if (typeof openingXml !== "string" || typeof closingXml !== "string") return [
34
+ "div",
35
+ { class: "docx-block-custom-xml" },
36
+ 0
37
+ ];
38
+ return [
39
+ "div",
40
+ {
41
+ class: "docx-block-custom-xml",
42
+ "data-docx-block-custom-xml-open": openingXml,
43
+ "data-docx-block-custom-xml-close": closingXml,
44
+ "data-docx-block-custom-xml-empty": String(_originallyEmpty === true)
45
+ },
46
+ 0
47
+ ];
48
+ }
49
+ }
50
+ });
51
+ //#endregion
52
+ export { BlockCustomXmlExtension };
@@ -80,9 +80,9 @@ const CommentReferenceExtension = createNodeExtension({
80
80
  }];
81
81
  }
82
82
  }),
83
- onSchemaReady: ({ schema }) => ({ plugins: [new Plugin({ appendTransaction(transactions, _oldState, newState) {
83
+ onSchemaReady: () => ({ plugins: [new Plugin({ appendTransaction(transactions, _oldState, newState) {
84
84
  if (!transactions.some(({ docChanged }) => docChanged)) return null;
85
- const referenceType = schema.nodes[COMMENT_REFERENCE_NODE_NAME];
85
+ const referenceType = newState.schema.nodes[COMMENT_REFERENCE_NODE_NAME];
86
86
  if (!referenceType) return null;
87
87
  const repairs = planCommentReferenceRepairs(surveyCommentReferences(newState.doc));
88
88
  if (repairs.length === 0) return null;
@@ -8,10 +8,10 @@ import { NodeExtension } from "../types.js";
8
8
  * Simple fields that must preserve hyperlink structure use a distinct atomic
9
9
  * node with inline children; their visible text comes from those children.
10
10
  */
11
- type StructuredFieldOptions = {
11
+ type FieldOptions = {
12
12
  getInternalClipboardToken?: () => string;
13
13
  };
14
- declare const FieldExtension: (options?: Partial<Record<string, unknown>> | undefined) => NodeExtension;
15
- declare const StructuredFieldExtension: (options?: Partial<StructuredFieldOptions> | undefined) => NodeExtension;
14
+ declare const FieldExtension: (options?: Partial<FieldOptions> | undefined) => NodeExtension;
15
+ declare const StructuredFieldExtension: (options?: Partial<FieldOptions> | undefined) => NodeExtension;
16
16
  //#endregion
17
17
  export { FieldExtension, StructuredFieldExtension };
@@ -1,5 +1,5 @@
1
1
  import { parseFieldInstruction } from "../../../docx/fieldParser.js";
2
- import { expectFieldAttrs } from "../../attrs/index.js";
2
+ import { expectFieldAttrs, isValidEmptyFieldResultRuns, isValidFieldCode } from "../../attrs/index.js";
3
3
  import { createNodeExtension } from "../create.js";
4
4
  //#region src/prosemirror/extensions/nodes/FieldExtension.ts
5
5
  const createFieldAttrs = () => ({
@@ -10,21 +10,48 @@ const createFieldAttrs = () => ({
10
10
  fieldKind: { default: "simple" },
11
11
  fldLock: { default: null },
12
12
  dirty: { default: null },
13
- fieldResultIsFallback: { default: null }
13
+ fieldResultIsFallback: { default: null },
14
+ formFieldDataXml: { default: null },
15
+ _docxEmptyResultRuns: { default: null },
16
+ _docxFieldCode: { default: null }
14
17
  });
15
18
  /** A `data-` flag a pasted field carried: absent states nothing. */
16
19
  const statedFlag = (value) => value === void 0 ? null : value === "true";
17
- const readFieldDomAttrs = (dom) => ({
18
- fieldType: dom.dataset["fieldType"] ?? "UNKNOWN",
19
- instruction: dom.dataset["instruction"] ?? "",
20
- displayText: dom.textContent ?? "",
21
- fieldKind: dom.dataset["fieldKind"] ?? "simple",
22
- fldLock: statedFlag(dom.dataset["fldLock"]),
23
- dirty: statedFlag(dom.dataset["dirty"]),
24
- fieldResultIsFallback: statedFlag(dom.dataset["fieldResultIsFallback"])
25
- });
20
+ const readEmptyResultRuns = (value) => {
21
+ if (value === void 0) return null;
22
+ try {
23
+ const parsed = JSON.parse(value);
24
+ return isValidEmptyFieldResultRuns(parsed) ? parsed : null;
25
+ } catch {
26
+ return null;
27
+ }
28
+ };
29
+ const readFieldCode = (value) => {
30
+ if (value === void 0) return null;
31
+ try {
32
+ const parsed = JSON.parse(value);
33
+ return isValidFieldCode(parsed) ? parsed : null;
34
+ } catch {
35
+ return null;
36
+ }
37
+ };
38
+ const readFieldDomAttrs = (dom) => {
39
+ const emptyResultRuns = readEmptyResultRuns(dom.dataset["emptyResultRuns"]);
40
+ return {
41
+ fieldType: dom.dataset["fieldType"] ?? "UNKNOWN",
42
+ instruction: dom.dataset["instruction"] ?? "",
43
+ displayText: (emptyResultRuns === null ? void 0 : dom.dataset["displayText"]) ?? dom.textContent ?? "",
44
+ fieldKind: dom.dataset["fieldKind"] ?? "simple",
45
+ fldLock: statedFlag(dom.dataset["fldLock"]),
46
+ dirty: statedFlag(dom.dataset["dirty"]),
47
+ fieldResultIsFallback: statedFlag(dom.dataset["fieldResultIsFallback"]),
48
+ formFieldDataXml: dom.dataset["formFieldDataXml"] ?? null,
49
+ _docxEmptyResultRuns: emptyResultRuns,
50
+ _docxFieldCode: readFieldCode(dom.dataset["fieldCode"])
51
+ };
52
+ };
26
53
  const getFieldDomAttrs = (node) => {
27
- const { fieldType, instruction, fieldKind, fldLock, dirty, fieldResultIsFallback } = expectFieldAttrs(node);
54
+ const { fieldType, instruction, fieldKind, fldLock, dirty, fieldResultIsFallback, formFieldDataXml, _docxEmptyResultRuns, _docxFieldCode } = expectFieldAttrs(node);
28
55
  return {
29
56
  class: `docx-field docx-field-${fieldType.toLowerCase()}`,
30
57
  "data-field-type": fieldType,
@@ -33,6 +60,9 @@ const getFieldDomAttrs = (node) => {
33
60
  ...fldLock === void 0 ? {} : { "data-fld-lock": String(fldLock) },
34
61
  ...dirty === void 0 ? {} : { "data-dirty": String(dirty) },
35
62
  ...fieldResultIsFallback === void 0 ? {} : { "data-field-result-is-fallback": String(fieldResultIsFallback) },
63
+ ...formFieldDataXml === void 0 ? {} : { "data-form-field-data-xml": formFieldDataXml },
64
+ ..._docxEmptyResultRuns === void 0 ? {} : { "data-empty-result-runs": JSON.stringify(_docxEmptyResultRuns) },
65
+ ..._docxFieldCode === void 0 ? {} : { "data-field-code": JSON.stringify(_docxFieldCode) },
36
66
  style: "outline: 1px solid var(--doc-field-outline, rgba(200,200,200,0.4)); padding: 0 1px; border-radius: 2px;"
37
67
  };
38
68
  };
@@ -53,7 +83,7 @@ const getFieldVisibleText = (node) => {
53
83
  const FieldExtension = createNodeExtension({
54
84
  name: "field",
55
85
  schemaNodeName: "field",
56
- nodeSpec: {
86
+ nodeSpec: (options) => ({
57
87
  inline: true,
58
88
  group: "inline",
59
89
  atom: true,
@@ -65,13 +95,18 @@ const FieldExtension = createNodeExtension({
65
95
  getAttrs: readFieldDomAttrs
66
96
  }],
67
97
  toDOM(node) {
98
+ const { displayText, _docxEmptyResultRuns } = expectFieldAttrs(node);
68
99
  return [
69
100
  "span",
70
- getFieldDomAttrs(node),
101
+ {
102
+ ...getFieldDomAttrs(node),
103
+ ...options.getInternalClipboardToken ? { "data-docx-internal-clipboard": options.getInternalClipboardToken() } : {},
104
+ ..._docxEmptyResultRuns ? { "data-display-text": displayText } : {}
105
+ },
71
106
  getFieldVisibleText(node)
72
107
  ];
73
108
  }
74
- }
109
+ })
75
110
  });
76
111
  const StructuredFieldExtension = createNodeExtension({
77
112
  name: "structuredField",
@@ -41,10 +41,12 @@ const HardBreakExtension = createNodeExtension({
41
41
  }
42
42
  },
43
43
  onSchemaReady(ctx) {
44
- const hardBreakType = ctx.schema.nodes["hardBreak"];
45
- if (!hardBreakType) panic("Missing node type: hardBreak");
44
+ if (!ctx.schema.nodes["hardBreak"]) panic("Missing node type: hardBreak");
46
45
  return { keyboardShortcuts: { "Shift-Enter": (state, dispatch) => {
47
- if (dispatch) dispatch(state.tr.replaceSelectionWith(hardBreakType.create()).scrollIntoView());
46
+ if (dispatch) {
47
+ const hardBreakType = state.schema.nodes["hardBreak"] ?? panic("Missing node type: hardBreak");
48
+ dispatch(state.tr.replaceSelectionWith(hardBreakType.create()).scrollIntoView());
49
+ }
48
50
  return true;
49
51
  } } };
50
52
  }
@@ -35,7 +35,10 @@ const PreservedBlockExtension = createNodeExtension({
35
35
  group: "block",
36
36
  atom: true,
37
37
  selectable: false,
38
- attrs: { xml: {} },
38
+ attrs: {
39
+ xml: {},
40
+ readerText: { default: null }
41
+ },
39
42
  parseDOM: [{
40
43
  tag: "div[data-docx-preserved-block]",
41
44
  getAttrs(dom) {
@@ -1,7 +1,7 @@
1
1
  import { ColorValue } from "../../../types/colors.js";
2
2
  import { AnyExtension, Extension, NodeExtension } from "../types.js";
3
- import { Command, EditorState } from "prosemirror-state";
4
3
  import { Node } from "prosemirror-model";
4
+ import { Command, EditorState } from "prosemirror-state";
5
5
  //#region src/prosemirror/extensions/nodes/TableExtension.d.ts
6
6
  type TableContextInfo = {
7
7
  isInTable: boolean;