@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.
- package/README.md +23 -0
- package/dist/ai-edits/apply.d.ts +26 -1
- package/dist/ai-edits/apply.js +1779 -141
- package/dist/ai-edits/batch-claims.d.ts +145 -0
- package/dist/ai-edits/batch-claims.js +275 -0
- package/dist/ai-edits/blockRange.js +9 -3
- package/dist/ai-edits/character-boundaries.d.ts +43 -0
- package/dist/ai-edits/character-boundaries.js +95 -0
- package/dist/ai-edits/clean-text.d.ts +33 -3
- package/dist/ai-edits/clean-text.js +52 -6
- package/dist/ai-edits/comment-lifecycle.d.ts +18 -0
- package/dist/ai-edits/comment-lifecycle.js +52 -0
- package/dist/ai-edits/headless.d.ts +91 -7
- package/dist/ai-edits/headless.js +520 -51
- package/dist/ai-edits/index.d.ts +2 -1
- package/dist/ai-edits/index.js +2 -1
- package/dist/ai-edits/minimal-replacement.d.ts +21 -6
- package/dist/ai-edits/minimal-replacement.js +134 -15
- package/dist/ai-edits/newListNumbering.d.ts +23 -0
- package/dist/ai-edits/newListNumbering.js +94 -0
- package/dist/ai-edits/note-references.d.ts +96 -0
- package/dist/ai-edits/note-references.js +139 -0
- package/dist/ai-edits/pending-suggestions.d.ts +79 -0
- package/dist/ai-edits/pending-suggestions.js +306 -0
- package/dist/ai-edits/read.d.ts +6 -4
- package/dist/ai-edits/read.js +113 -50
- package/dist/ai-edits/result-validation.d.ts +29 -0
- package/dist/ai-edits/result-validation.js +164 -0
- package/dist/ai-edits/revisionStretches.d.ts +17 -0
- package/dist/ai-edits/revisionStretches.js +80 -0
- package/dist/ai-edits/snapshot.d.ts +36 -3
- package/dist/ai-edits/snapshot.js +180 -25
- package/dist/ai-edits/table-cell-mutations.d.ts +4 -2
- package/dist/ai-edits/table-cell-mutations.js +6 -2
- package/dist/ai-edits/table-geometry.d.ts +1 -1
- package/dist/ai-edits/table-row-column-mutations.d.ts +44 -17
- package/dist/ai-edits/table-row-column-mutations.js +86 -34
- package/dist/ai-edits/types.d.ts +155 -16
- package/dist/compare/compare.d.ts +1 -1
- package/dist/compare/compare.js +65 -16
- package/dist/compare/content-alignment.d.ts +5 -1
- package/dist/compare/content-alignment.js +52 -34
- package/dist/compare/content-types.d.ts +7 -0
- package/dist/compare/content.d.ts +4 -1
- package/dist/compare/content.js +6 -1
- package/dist/compare/formatting.js +2 -1
- package/dist/compare/inline-atoms.d.ts +21 -4
- package/dist/compare/inline-atoms.js +138 -16
- package/dist/compare/inline-provenance.js +1 -1
- package/dist/compare/plan.js +10 -5
- package/dist/compare/scenario.js +14 -3
- package/dist/compare/section-boundary-properties.js +1 -1
- package/dist/compare/types.d.ts +4 -2
- package/dist/compare/types.js +2 -1
- package/dist/compare/verification.d.ts +1 -1
- package/dist/compare/verification.js +15 -3
- package/dist/controller/committedLayoutDiff.d.ts +25 -0
- package/dist/controller/committedLayoutDiff.js +71 -0
- package/dist/controller/contentControlWidgetController.d.ts +1 -1
- package/dist/controller/folioEditor.d.ts +1 -1
- package/dist/controller/fontReadiness.d.ts +70 -3
- package/dist/controller/fontReadiness.js +100 -10
- package/dist/controller/headerFooterEditorManager.js +6 -1
- package/dist/controller/layoutPipeline.d.ts +12 -10
- package/dist/controller/layoutPipeline.js +65 -11
- package/dist/controller/layoutRunOptions.d.ts +24 -0
- package/dist/controller/layoutRunOptions.js +17 -0
- package/dist/controller/layoutScheduler.d.ts +19 -14
- package/dist/controller/layoutScheduler.js +15 -12
- package/dist/controller/layoutSession.d.ts +26 -2
- package/dist/controller/layoutSession.js +1 -1
- package/dist/controller/noteEditorManager.js +8 -3
- package/dist/document-operations.d.ts +11 -2
- package/dist/document-operations.js +230 -21
- package/dist/docx/altChunk.d.ts +8 -0
- package/dist/docx/altChunk.js +17 -0
- package/dist/docx/archiveInflation.d.ts +127 -0
- package/dist/docx/archiveInflation.js +181 -0
- package/dist/docx/attributeRemainder.d.ts +1 -1
- package/dist/docx/blockContentParser.d.ts +64 -1
- package/dist/docx/blockContentParser.js +17 -4
- package/dist/docx/blockCustomXmlShell.d.ts +7 -0
- package/dist/docx/blockCustomXmlShell.js +14 -0
- package/dist/docx/blockPlainText.js +7 -0
- package/dist/docx/commentAnchorIndex.js +1 -1
- package/dist/docx/commentRangeIntegrity.js +8 -3
- package/dist/docx/commentReferenceNormalization.js +1 -1
- package/dist/docx/commentReplyMarkers.js +20 -1
- package/dist/docx/compatibility.d.ts +1 -1
- package/dist/docx/compatibility.js +34 -13
- package/dist/docx/containerChildren.gen.d.ts +1 -1
- package/dist/docx/containerChildren.gen.js +1 -0
- package/dist/docx/documentParser.js +12 -12
- package/dist/docx/drawingIdNormalization.d.ts +3 -1
- package/dist/docx/drawingIdNormalization.js +6 -1
- package/dist/docx/ensureParaIds.js +119 -97
- package/dist/docx/footnoteParser.js +8 -4
- package/dist/docx/headerFooterParser.js +3 -3
- package/dist/docx/headerFooterReferenceNormalization.d.ts +20 -1
- package/dist/docx/headerFooterReferenceNormalization.js +52 -27
- package/dist/docx/hyperlinkParser.d.ts +1 -1
- package/dist/docx/index.d.ts +1 -1
- package/dist/docx/listNumberingInstances.d.ts +59 -0
- package/dist/docx/listNumberingInstances.js +249 -0
- package/dist/docx/metadataPrivacy.js +24 -1
- package/dist/docx/normalizeBaseDirection.js +2 -1
- package/dist/docx/noteReferenceMark.d.ts +15 -0
- package/dist/docx/noteReferenceMark.js +48 -0
- package/dist/docx/opaqueCarrier.d.ts +7 -0
- package/dist/docx/opaqueCarrier.js +38 -0
- package/dist/docx/packageParts.js +4 -1
- package/dist/docx/paragraphParser.js +96 -27
- package/dist/docx/paragraphPropertySource.d.ts +4 -2
- package/dist/docx/paragraphPropertySource.js +10 -2
- package/dist/docx/paragraphTraversal.js +1 -0
- package/dist/docx/parseWarningMessage.js +4 -1
- package/dist/docx/parser.js +175 -22
- package/dist/docx/rezip.js +31 -7
- package/dist/docx/sdtProperties.js +1 -1
- package/dist/docx/sdtPropertiesPatch.js +3 -0
- package/dist/docx/selectiveSave.js +16 -9
- package/dist/docx/selectiveXmlPatch.d.ts +3 -1
- package/dist/docx/selectiveXmlPatch.js +186 -39
- package/dist/docx/serializer/blockCustomXmlSerializer.d.ts +5 -0
- package/dist/docx/serializer/blockCustomXmlSerializer.js +4 -0
- package/dist/docx/serializer/documentSerializer.js +2 -0
- package/dist/docx/serializer/headerFooterSerializer.js +2 -0
- package/dist/docx/serializer/noteSerializer.js +3 -1
- package/dist/docx/serializer/paragraphSerializer.js +33 -9
- package/dist/docx/serializer/tableSerializer.js +25 -38
- package/dist/docx/server/boundedArchive.d.ts +8 -13
- package/dist/docx/server/boundedArchive.js +70 -59
- package/dist/docx/server/createBilingualDocument.js +3 -3
- package/dist/docx/server/extractDocxText.d.ts +8 -2
- package/dist/docx/server/extractDocxText.js +2 -2
- package/dist/docx/server/validateDocxConformance.d.ts +1 -1
- package/dist/docx/server/validateDocxConformance.js +1 -0
- package/dist/docx/tableParser.d.ts +157 -1
- package/dist/docx/tableParser.js +89 -10
- package/dist/docx/textBoxParser.js +1 -1
- package/dist/docx/unzip.d.ts +20 -2
- package/dist/docx/unzip.js +136 -25
- package/dist/docx/wordprocessingPrefixes.d.ts +78 -0
- package/dist/docx/wordprocessingPrefixes.js +286 -0
- package/dist/fonts/embeddedFonts.js +1 -1
- package/dist/i18n/messages/catalogs.gen.d.ts +170 -34
- package/dist/i18n/messages/catalogs.gen.js +187 -51
- package/dist/i18n/messages/messages.gen.d.ts +10 -2
- package/dist/internal/compare/inline-presentation.d.ts +2 -1
- package/dist/internal/compare/inline-presentation.js +11 -10
- package/dist/internal/headlessRevisionResolutionGuard.d.ts +2 -8
- package/dist/internal/headlessRevisionResolutionGuard.js +2 -11
- package/dist/internal/indexedPositionMap.d.ts +11 -0
- package/dist/internal/indexedPositionMap.js +42 -0
- package/dist/internal/pageBreakRunSourceDescendantIndex.js +2 -1
- package/dist/internal/revisionResolutionEdits.d.ts +13 -0
- package/dist/internal/revisionResolutionEdits.js +19 -0
- package/dist/internal/revisionResolutionInline.d.ts +24 -0
- package/dist/internal/{headlessRevisionResolution.js → revisionResolutionInline.js} +61 -43
- package/dist/internal/revisionResolutionStep.d.ts +34 -0
- package/dist/internal/revisionResolutionStep.js +282 -0
- package/dist/internal/revisionResolutionTracking.d.ts +11 -0
- package/dist/internal/revisionResolutionTracking.js +124 -0
- package/dist/internal/wholeStoryRevisionResolution.d.ts +56 -0
- package/dist/internal/wholeStoryRevisionResolution.js +600 -0
- package/dist/layout-bridge/convert/markupViewFlow.d.ts +20 -0
- package/dist/layout-bridge/convert/markupViewFlow.js +123 -0
- package/dist/layout-bridge/convert/tableConversion.js +1 -1
- package/dist/layout-bridge/convert/toFlowBlocks.js +10 -1
- package/dist/layout-engine/layoutInstrumentation.d.ts +9 -1
- package/dist/layout-engine/layoutInstrumentation.js +4 -1
- package/dist/layout-engine/measure/cache.d.ts +18 -1
- package/dist/layout-engine/measure/cache.js +31 -1
- package/dist/layout-engine/measure/font-metrics.worker.js +3 -7
- package/dist/layout-engine/measure/measureContainer.js +7 -47
- package/dist/layout-engine/measure/measureHelpers.d.ts +6 -1
- package/dist/layout-engine/measure/measureHelpers.js +22 -2
- package/dist/layout-engine/measure/measureParagraph.js +2 -2
- package/dist/layout-engine/measure/measureWorker.js +2 -3
- package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +6 -7
- package/dist/layout-engine/measure/measureWorkerProtocol.js +1 -2
- package/dist/layout-engine/measure/paragraphMeasureShared.d.ts +12 -1
- package/dist/layout-engine/measure/paragraphMeasureShared.js +14 -1
- package/dist/layout-engine/types.d.ts +6 -0
- package/dist/layout-painter/renderPage.js +1 -0
- package/dist/layout-painter/renderParagraph.js +1 -1
- package/dist/managers/ContextMenuManager.js +5 -2
- package/dist/managers/types.d.ts +3 -0
- package/dist/markdown/escape.d.ts +2 -2
- package/dist/markdown/escape.js +4 -5
- package/dist/markdown/fromMarkdown.js +2 -1
- package/dist/markdown/internals.d.ts +11 -1
- package/dist/markdown/internals.js +24 -3
- package/dist/markdown/renderBlock.js +121 -25
- package/dist/markdown/renderParagraph.d.ts +13 -1
- package/dist/markdown/renderParagraph.js +85 -38
- package/dist/markdown/renderRuns.d.ts +10 -1
- package/dist/markdown/renderRuns.js +323 -69
- package/dist/markdown/renderTable.js +24 -12
- package/dist/markdown/trailers.js +2 -2
- package/dist/markdown/types.d.ts +29 -7
- package/dist/paged-layout/incrementalMeasure.d.ts +1 -2
- package/dist/paged-layout/incrementalMeasure.js +1 -9
- package/dist/paged-layout/transactionDirtyRange.d.ts +1 -3
- package/dist/paged-layout/transactionDirtyRange.js +29 -41
- package/dist/panel-layout.d.ts +83 -0
- package/dist/panel-layout.js +96 -0
- package/dist/prosemirror/anchoredTextBoxes.d.ts +37 -0
- package/dist/prosemirror/anchoredTextBoxes.js +156 -0
- package/dist/prosemirror/attrs/index.d.ts +6 -2
- package/dist/prosemirror/attrs/index.js +172 -1
- package/dist/prosemirror/clearRunColor.d.ts +6 -0
- package/dist/prosemirror/clearRunColor.js +46 -0
- package/dist/prosemirror/commands/comments.d.ts +7 -8
- package/dist/prosemirror/commands/comments.js +281 -212
- package/dist/prosemirror/commands/contentControls.d.ts +1 -1
- package/dist/prosemirror/commands/formatPainter.d.ts +1 -1
- package/dist/prosemirror/commands/formatPainter.js +1 -1
- package/dist/prosemirror/commands/formatting.d.ts +1 -1
- package/dist/prosemirror/commands/hyperlink.js +2 -1
- package/dist/prosemirror/commands/index.d.ts +2 -2
- package/dist/prosemirror/commands/index.js +2 -2
- package/dist/prosemirror/commands/paragraph.d.ts +7 -1
- package/dist/prosemirror/commands/paragraph.js +9 -1
- package/dist/prosemirror/commands/paragraphBookmarkJoin.d.ts +13 -0
- package/dist/prosemirror/commands/paragraphBookmarkJoin.js +22 -0
- package/dist/prosemirror/commands/pastePlainText.d.ts +1 -1
- package/dist/prosemirror/commands/propertyChangeScope.d.ts +3 -2
- package/dist/prosemirror/commands/propertyChangeScope.js +24 -3
- package/dist/prosemirror/commands/resolveAllTableChanges.d.ts +40 -0
- package/dist/prosemirror/commands/resolveAllTableChanges.js +620 -0
- package/dist/prosemirror/commands/resolveNodePropertyChangeAttrs.d.ts +15 -0
- package/dist/prosemirror/commands/resolveNodePropertyChangeAttrs.js +46 -0
- package/dist/prosemirror/commands/resolveParagraphProperties.d.ts +16 -0
- package/dist/prosemirror/commands/resolveParagraphProperties.js +73 -0
- package/dist/prosemirror/commands/sectionBreak.js +2 -1
- package/dist/prosemirror/commands/tableCellMergeResolution.d.ts +15 -2
- package/dist/prosemirror/commands/tableCellMergeResolution.js +23 -7
- package/dist/prosemirror/containerFinalParagraph.d.ts +11 -5
- package/dist/prosemirror/containerFinalParagraph.js +7 -6
- package/dist/prosemirror/contentControlRevisions.d.ts +1 -1
- package/dist/prosemirror/conversion/fromProseDoc.d.ts +2 -13
- package/dist/prosemirror/conversion/fromProseDoc.js +177 -605
- package/dist/prosemirror/conversion/toProseDoc.d.ts +4 -11
- package/dist/prosemirror/conversion/toProseDoc.js +70 -154
- package/dist/prosemirror/documentSchema.d.ts +8 -0
- package/dist/prosemirror/documentSchema.js +18 -0
- package/dist/prosemirror/emptyFieldResultRuns.d.ts +18 -0
- package/dist/prosemirror/emptyFieldResultRuns.js +33 -0
- package/dist/prosemirror/extensions/ExtensionManager.d.ts +1 -1
- package/dist/prosemirror/extensions/ExtensionManager.js +3 -1
- package/dist/prosemirror/extensions/StarterKit.js +5 -1
- package/dist/prosemirror/extensions/core/DocExtension.js +1 -1
- package/dist/prosemirror/extensions/core/ParagraphExtension.js +116 -63
- package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +4 -1
- package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.js +24 -3
- package/dist/prosemirror/extensions/features/JoinedRunStyleExtension.d.ts +20 -0
- package/dist/prosemirror/extensions/features/JoinedRunStyleExtension.js +43 -0
- package/dist/prosemirror/extensions/features/ListExtension.js +167 -128
- package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +19 -2
- package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +33 -20
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +31 -2
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +270 -99
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +3 -2
- package/dist/prosemirror/extensions/features/pasteCleanup.js +2 -1
- package/dist/prosemirror/extensions/features/pastedHeadingStyles.js +1 -1
- package/dist/prosemirror/extensions/features/pastedHtmlLists.d.ts +12 -0
- package/dist/prosemirror/extensions/features/pastedHtmlLists.js +124 -0
- package/dist/prosemirror/extensions/marks/FootnoteRefExtension.js +33 -11
- package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +8 -4
- package/dist/prosemirror/extensions/marks/RunIdentityExtension.d.ts +21 -18
- package/dist/prosemirror/extensions/marks/RunIdentityExtension.js +37 -17
- package/dist/prosemirror/extensions/marks/StrikeExtension.js +2 -2
- package/dist/prosemirror/extensions/marks/SubscriptExtension.js +2 -2
- package/dist/prosemirror/extensions/marks/SuperscriptExtension.js +2 -2
- package/dist/prosemirror/extensions/marks/TextColorExtension.js +4 -3
- package/dist/prosemirror/extensions/marks/markUtils.d.ts +15 -8
- package/dist/prosemirror/extensions/marks/markUtils.js +25 -10
- package/dist/prosemirror/extensions/marks/noteReferenceDeletion.d.ts +12 -0
- package/dist/prosemirror/extensions/marks/noteReferenceDeletion.js +46 -0
- package/dist/prosemirror/extensions/nodes/BlockCustomXmlExtension.d.ts +6 -0
- package/dist/prosemirror/extensions/nodes/BlockCustomXmlExtension.js +52 -0
- package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.js +2 -2
- package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +3 -3
- package/dist/prosemirror/extensions/nodes/FieldExtension.js +50 -15
- package/dist/prosemirror/extensions/nodes/HardBreakExtension.js +5 -3
- package/dist/prosemirror/extensions/nodes/PreservedBlockExtension.js +4 -1
- package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +1 -1
- package/dist/prosemirror/extensions/nodes/TableExtension.js +121 -226
- package/dist/prosemirror/extensions/types.d.ts +11 -1
- package/dist/prosemirror/findReplaceSelection.js +1 -1
- package/dist/prosemirror/hyperlinkRemoval.d.ts +9 -0
- package/dist/prosemirror/hyperlinkRemoval.js +129 -0
- package/dist/prosemirror/index.d.ts +5 -3
- package/dist/prosemirror/index.js +5 -3
- package/dist/prosemirror/indexedNodeLookup.d.ts +17 -0
- package/dist/prosemirror/indexedNodeLookup.js +103 -0
- package/dist/prosemirror/listAutoformatMarkers.d.ts +19 -0
- package/dist/prosemirror/listAutoformatMarkers.js +98 -0
- package/dist/prosemirror/listInstanceReferences.d.ts +12 -0
- package/dist/prosemirror/listInstanceReferences.js +72 -0
- package/dist/prosemirror/listLabels.d.ts +24 -0
- package/dist/prosemirror/listLabels.js +111 -0
- package/dist/prosemirror/listNumbering.d.ts +92 -0
- package/dist/prosemirror/listNumbering.js +330 -0
- package/dist/prosemirror/listRendering.d.ts +27 -0
- package/dist/prosemirror/listRendering.js +27 -0
- package/dist/prosemirror/listRenderingAttrs.d.ts +11 -2
- package/dist/prosemirror/listRenderingAttrs.js +8 -1
- package/dist/prosemirror/markupViewNotes.d.ts +8 -0
- package/dist/prosemirror/markupViewNotes.js +49 -0
- package/dist/prosemirror/markupViewProjection.d.ts +97 -0
- package/dist/prosemirror/markupViewProjection.js +88 -0
- package/dist/prosemirror/noteReferenceReview.d.ts +77 -0
- package/dist/prosemirror/noteReferenceReview.js +332 -0
- package/dist/prosemirror/numberingAttr.d.ts +9 -1
- package/dist/prosemirror/numberingAttr.js +9 -1
- package/dist/prosemirror/outlineLevelAttr.js +1 -1
- package/dist/prosemirror/paragraphIndentation.d.ts +10 -1
- package/dist/prosemirror/paragraphIndentation.js +32 -7
- package/dist/prosemirror/paragraphMarkJoin.d.ts +21 -0
- package/dist/prosemirror/paragraphMarkJoin.js +26 -0
- package/dist/prosemirror/paragraphPropertyCarry.d.ts +64 -0
- package/dist/prosemirror/paragraphPropertyCarry.js +158 -0
- package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +1 -1
- package/dist/prosemirror/plugins/documentNumbering.d.ts +27 -1
- package/dist/prosemirror/plugins/documentNumbering.js +97 -11
- package/dist/prosemirror/plugins/documentStyleState.d.ts +26 -0
- package/dist/prosemirror/plugins/documentStyleState.js +32 -0
- package/dist/prosemirror/plugins/documentStyles.d.ts +3 -13
- package/dist/prosemirror/plugins/documentStyles.js +67 -17
- package/dist/prosemirror/plugins/index.d.ts +2 -1
- package/dist/prosemirror/plugins/index.js +2 -1
- package/dist/prosemirror/plugins/paragraphStyleResolution.d.ts +15 -0
- package/dist/prosemirror/plugins/paragraphStyleResolution.js +230 -0
- package/dist/prosemirror/plugins/suggestionMode.d.ts +27 -3
- package/dist/prosemirror/plugins/suggestionMode.js +490 -63
- package/dist/prosemirror/plugins/templateDirectives.d.ts +1 -1
- package/dist/prosemirror/plugins/transactionInvariants.d.ts +32 -0
- package/dist/prosemirror/plugins/transactionInvariants.js +86 -0
- package/dist/prosemirror/positionSweep.d.ts +24 -0
- package/dist/prosemirror/positionSweep.js +222 -0
- package/dist/prosemirror/rebaseParagraphRunFormatting.d.ts +23 -3
- package/dist/prosemirror/rebaseParagraphRunFormatting.js +39 -13
- package/dist/prosemirror/rebaseParagraphRuns.d.ts +36 -0
- package/dist/prosemirror/rebaseParagraphRuns.js +99 -0
- package/dist/prosemirror/rejoinRunCarriers.d.ts +1 -1
- package/dist/prosemirror/replacedAnnotations.d.ts +33 -1
- package/dist/prosemirror/replacedAnnotations.js +170 -1
- package/dist/prosemirror/runFormattingFromMarks.d.ts +18 -0
- package/dist/prosemirror/runFormattingFromMarks.js +567 -0
- package/dist/prosemirror/runFormattingInlineCarriers.d.ts +1 -1
- package/dist/prosemirror/runFormattingReconciliation.js +10 -9
- package/dist/prosemirror/schema/index.d.ts +2 -2
- package/dist/prosemirror/schema/index.js +3 -0
- package/dist/prosemirror/schema/nodes.d.ts +44 -11
- package/dist/prosemirror/sectionMarkEdits.d.ts +20 -0
- package/dist/prosemirror/sectionMarkEdits.js +59 -0
- package/dist/prosemirror/storyListNumbering.d.ts +17 -0
- package/dist/prosemirror/storyListNumbering.js +102 -0
- package/dist/prosemirror/styles/paragraphStyleCascade.d.ts +59 -0
- package/dist/prosemirror/styles/paragraphStyleCascade.js +145 -0
- package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +21 -2
- package/dist/prosemirror/styles/resolvedStyleAttrs.js +38 -1
- package/dist/prosemirror/styles/tableStyleRegions.d.ts +31 -0
- package/dist/prosemirror/styles/tableStyleRegions.js +55 -0
- package/dist/prosemirror/tableCellPaste.d.ts +74 -0
- package/dist/prosemirror/tableCellPaste.js +525 -0
- package/dist/prosemirror/tableGridMutation.d.ts +87 -2
- package/dist/prosemirror/tableGridMutation.js +255 -2
- package/dist/prosemirror/tableRunIn.d.ts +51 -0
- package/dist/prosemirror/tableRunIn.js +165 -0
- package/dist/prosemirror/textInput.js +11 -2
- package/dist/prosemirror/trackedRevisionPath.d.ts +17 -0
- package/dist/prosemirror/trackedRevisionPath.js +32 -0
- package/dist/prosemirror/validation.js +5 -1
- package/dist/redline.js +93 -9
- package/dist/render-dom/BodySelectionOverlay.d.ts +4 -1
- package/dist/render-dom/BodySelectionOverlay.js +3 -2
- package/dist/server.d.ts +2 -2
- package/dist/utils/findReplace.js +2 -2
- package/dist/utils/mergeDocumentContent.js +1 -1
- package/dist/utils/noteReferenceLabels.d.ts +36 -0
- package/dist/utils/noteReferenceLabels.js +32 -0
- package/dist/utils/replaceText.js +1 -1
- package/dist/version-comparison.d.ts +1 -0
- package/dist/version-comparison.js +1 -0
- package/package.json +6 -5
- package/dist/internal/headlessRevisionResolution.d.ts +0 -23
|
@@ -48,6 +48,38 @@ type AnnotatedReplacement = {
|
|
|
48
48
|
};
|
|
49
49
|
/** `marks` with the carried marks added, each type's exclusions respected. */
|
|
50
50
|
declare const addCarriedMarks: (marks: readonly Mark[], carried: readonly Mark[]) => readonly Mark[];
|
|
51
|
+
/**
|
|
52
|
+
* The mark sets of a run of text a TRACKED edit inserts at `at` (one set per
|
|
53
|
+
* piece, in order), with the comments that keep every comment one stretch.
|
|
54
|
+
*
|
|
55
|
+
* A tracked replacement keeps the replaced text (as a deletion), and that text
|
|
56
|
+
* keeps its comments, so a comment carried or inherited onto the insertion
|
|
57
|
+
* only CONTINUES its range: it stays when, through the run, it reaches the
|
|
58
|
+
* content directly before or after `at`, and goes otherwise. Between two
|
|
59
|
+
* pieces that have a comment (the neighbours included), every piece takes
|
|
60
|
+
* it, or the run would split it in two.
|
|
61
|
+
*/
|
|
62
|
+
declare const commentsForTrackedInsertion: (doc: Node, at: number, pieces: readonly (readonly Mark[])[]) => (readonly Mark[])[];
|
|
63
|
+
/**
|
|
64
|
+
* Where, within the text a tracked replacement removes (`from` to `to`), each
|
|
65
|
+
* piece of its new text goes, one position per piece and never decreasing.
|
|
66
|
+
*
|
|
67
|
+
* The redline reads the removed text first and the new text after it, so by
|
|
68
|
+
* default every piece goes at `to`. A piece given a comment goes where that
|
|
69
|
+
* comment's stretch of removed text ends instead, next to it; the pieces
|
|
70
|
+
* before it that have no comment go where that stretch begins, and the ones
|
|
71
|
+
* after it follow it. So each comment stays one stretch, holding the removed
|
|
72
|
+
* text it held and exactly the new text given it.
|
|
73
|
+
*/
|
|
74
|
+
declare const placeTrackedInsertion: (doc: Node, from: number, to: number, pieces: readonly (readonly Mark[])[]) => number[];
|
|
75
|
+
/**
|
|
76
|
+
* The comments content inserted at the block boundary `at` must carry: those
|
|
77
|
+
* covering the content on both sides of it. A comment range is two points in
|
|
78
|
+
* document order, so what lands between them is covered whether the range
|
|
79
|
+
* crosses paragraphs, empty paragraphs or a table edge, and the saved package
|
|
80
|
+
* reopens exactly so. A merge's separator lands on such a boundary too.
|
|
81
|
+
*/
|
|
82
|
+
declare const commentsAcrossBlockBoundary: (doc: Node, at: number) => Mark[];
|
|
51
83
|
/** `content` with the surveyed marks on it and the surveyed anchors around it. */
|
|
52
84
|
declare const annotatedReplacement: ({ annotations: { carried, leading, trailing }, content }: AnnotatedReplacementOptions) => AnnotatedReplacement;
|
|
53
85
|
/**
|
|
@@ -56,4 +88,4 @@ declare const annotatedReplacement: ({ annotations: { carried, leading, trailing
|
|
|
56
88
|
*/
|
|
57
89
|
declare const inheritedReplacementMarks: (doc: Node, from: number, to: number) => readonly Mark[];
|
|
58
90
|
//#endregion
|
|
59
|
-
export { NON_INCLUSIVE_MARK_DISPOSITION, ReplacedAnnotations, addCarriedMarks, annotatedReplacement, hasReplacedAnnotations, inheritedReplacementMarks, nonInclusiveMarkNames, surveyReplacedAnnotations };
|
|
91
|
+
export { NON_INCLUSIVE_MARK_DISPOSITION, ReplacedAnnotations, addCarriedMarks, annotatedReplacement, commentsAcrossBlockBoundary, commentsForTrackedInsertion, hasReplacedAnnotations, inheritedReplacementMarks, nonInclusiveMarkNames, placeTrackedInsertion, surveyReplacedAnnotations };
|
|
@@ -4,6 +4,7 @@ import { MOVE_RANGE_BOUNDARY_NODE_NAME } from "./extensions/nodes/MoveRangeBound
|
|
|
4
4
|
import { RANGE_ANCHOR_NODE_NAME } from "./extensions/nodes/RangeAnchorExtension.js";
|
|
5
5
|
import { TEXT_BOX_ANCHOR_NODE_NAME } from "./extensions/nodes/TextBoxAnchorExtension.js";
|
|
6
6
|
import { readMoveRangeBoundaryAttrs } from "./moveRangeBoundaryAttrs.js";
|
|
7
|
+
import { isZeroWidthAnchor } from "./zeroWidthAnchors.js";
|
|
7
8
|
import { Fragment, Mark } from "prosemirror-model";
|
|
8
9
|
//#region src/prosemirror/replacedAnnotations.ts
|
|
9
10
|
/**
|
|
@@ -152,6 +153,174 @@ const addCarriedMarks = (marks, carried) => {
|
|
|
152
153
|
for (const mark of carried) next = mark.addToSet(next);
|
|
153
154
|
return next;
|
|
154
155
|
};
|
|
156
|
+
/**
|
|
157
|
+
* Invariant: a comment mark covers ONE contiguous stretch of a paragraph. A
|
|
158
|
+
* save writes one range start and one range end per comment, so a comment on
|
|
159
|
+
* two stretches reopens covering the text between them as well.
|
|
160
|
+
*
|
|
161
|
+
* Text an edit inserts is where that breaks: it lands next to the text of a
|
|
162
|
+
* comment, or inside it. These pick the comments inserted text takes so that
|
|
163
|
+
* every comment stays one stretch.
|
|
164
|
+
*/
|
|
165
|
+
/**
|
|
166
|
+
* The first (`1`) or last (`-1`) inline content inside `node` that is not a
|
|
167
|
+
* zero-width anchor, descending through every container.
|
|
168
|
+
*/
|
|
169
|
+
const innermostEdge = (node, direction) => {
|
|
170
|
+
if (node.isInline) return isZeroWidthAnchor(node) ? null : node;
|
|
171
|
+
for (let index = direction === 1 ? 0 : node.childCount - 1; index >= 0 && index < node.childCount; index += direction) {
|
|
172
|
+
const found = innermostEdge(node.child(index), direction);
|
|
173
|
+
if (found) return found;
|
|
174
|
+
}
|
|
175
|
+
return null;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* The inline content nearest the block boundary `at` on one side, in document
|
|
179
|
+
* order: past empty paragraphs, and into and out of tables, the way a saved
|
|
180
|
+
* range's two points read it.
|
|
181
|
+
*/
|
|
182
|
+
const contentBesideBoundary = (doc, at, direction) => {
|
|
183
|
+
const $at = doc.resolve(at);
|
|
184
|
+
for (let depth = $at.depth; depth >= 0; depth--) {
|
|
185
|
+
const parent = $at.node(depth);
|
|
186
|
+
const index = $at.index(depth);
|
|
187
|
+
let child = index + direction;
|
|
188
|
+
if (depth === $at.depth) child = direction === 1 ? index : index - 1;
|
|
189
|
+
for (; child >= 0 && child < parent.childCount; child += direction) {
|
|
190
|
+
const found = innermostEdge(parent.child(child), direction);
|
|
191
|
+
if (found) return found;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return null;
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* The content either side of `at` in its paragraph, past zero-width anchors
|
|
198
|
+
* (a comment's own reference sits between its text and what follows).
|
|
199
|
+
*/
|
|
200
|
+
const neighboursAt = (doc, at) => {
|
|
201
|
+
const $at = doc.resolve(at);
|
|
202
|
+
const parent = $at.parent;
|
|
203
|
+
const neighbour = (direction) => {
|
|
204
|
+
const adjacent = direction === -1 ? $at.nodeBefore : $at.nodeAfter;
|
|
205
|
+
if (!adjacent || !isZeroWidthAnchor(adjacent)) return adjacent;
|
|
206
|
+
for (let index = direction === -1 ? $at.index() - 2 : $at.index() + 1; index >= 0 && index < parent.childCount; index += direction) {
|
|
207
|
+
const child = parent.child(index);
|
|
208
|
+
if (!isZeroWidthAnchor(child)) return child;
|
|
209
|
+
}
|
|
210
|
+
return null;
|
|
211
|
+
};
|
|
212
|
+
return {
|
|
213
|
+
before: neighbour(-1),
|
|
214
|
+
after: neighbour(1)
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
/** The comments on both `before` and `after`: text between them must carry them. */
|
|
218
|
+
const commentsAround = (before, after) => before && after ? before.marks.filter((mark) => mark.type.name === "comment" && mark.isInSet(after.marks)) : [];
|
|
219
|
+
/**
|
|
220
|
+
* The mark sets of a run of text a TRACKED edit inserts at `at` (one set per
|
|
221
|
+
* piece, in order), with the comments that keep every comment one stretch.
|
|
222
|
+
*
|
|
223
|
+
* A tracked replacement keeps the replaced text (as a deletion), and that text
|
|
224
|
+
* keeps its comments, so a comment carried or inherited onto the insertion
|
|
225
|
+
* only CONTINUES its range: it stays when, through the run, it reaches the
|
|
226
|
+
* content directly before or after `at`, and goes otherwise. Between two
|
|
227
|
+
* pieces that have a comment (the neighbours included), every piece takes
|
|
228
|
+
* it, or the run would split it in two.
|
|
229
|
+
*/
|
|
230
|
+
const commentsForTrackedInsertion = (doc, at, pieces) => {
|
|
231
|
+
const { before, after } = neighboursAt(doc, at);
|
|
232
|
+
const sets = [
|
|
233
|
+
before?.marks ?? [],
|
|
234
|
+
...pieces,
|
|
235
|
+
after?.marks ?? []
|
|
236
|
+
];
|
|
237
|
+
const comments = [];
|
|
238
|
+
for (const set of sets) for (const mark of set) if (mark.type.name === "comment" && !mark.isInSet(comments)) comments.push(mark);
|
|
239
|
+
const result = pieces.map((set) => set.filter((mark) => mark.type.name !== "comment"));
|
|
240
|
+
for (const comment of comments) {
|
|
241
|
+
const covered = sets.flatMap((set, index) => comment.isInSet(set) ? [index] : []);
|
|
242
|
+
const first = covered[0];
|
|
243
|
+
const last = covered.at(-1);
|
|
244
|
+
if (first !== 0 && last !== sets.length - 1) continue;
|
|
245
|
+
for (let index = Math.max(first, 1); index <= Math.min(last, pieces.length); index++) result[index - 1] = comment.addToSet([...result[index - 1]]);
|
|
246
|
+
}
|
|
247
|
+
return result;
|
|
248
|
+
};
|
|
249
|
+
/**
|
|
250
|
+
* Where, within the text a tracked replacement removes (`from` to `to`), each
|
|
251
|
+
* piece of its new text goes, one position per piece and never decreasing.
|
|
252
|
+
*
|
|
253
|
+
* The redline reads the removed text first and the new text after it, so by
|
|
254
|
+
* default every piece goes at `to`. A piece given a comment goes where that
|
|
255
|
+
* comment's stretch of removed text ends instead, next to it; the pieces
|
|
256
|
+
* before it that have no comment go where that stretch begins, and the ones
|
|
257
|
+
* after it follow it. So each comment stays one stretch, holding the removed
|
|
258
|
+
* text it held and exactly the new text given it.
|
|
259
|
+
*/
|
|
260
|
+
const placeTrackedInsertion = (doc, from, to, pieces) => {
|
|
261
|
+
const stretches = /* @__PURE__ */ new Map();
|
|
262
|
+
doc.nodesBetween(from, to, (node, position) => {
|
|
263
|
+
if (!node.isText) return true;
|
|
264
|
+
for (const mark of node.marks) {
|
|
265
|
+
if (mark.type.name !== "comment") continue;
|
|
266
|
+
const known = [...stretches.keys()].find((other) => other.eq(mark)) ?? mark;
|
|
267
|
+
const start = Math.max(position, from);
|
|
268
|
+
const end = Math.min(position + node.nodeSize, to);
|
|
269
|
+
const stretch = stretches.get(known);
|
|
270
|
+
stretches.set(known, stretch ? {
|
|
271
|
+
start: stretch.start,
|
|
272
|
+
end
|
|
273
|
+
} : {
|
|
274
|
+
start,
|
|
275
|
+
end
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
return false;
|
|
279
|
+
});
|
|
280
|
+
const stretchOf = (set) => {
|
|
281
|
+
const own = [...stretches].filter(([mark]) => mark.isInSet(set));
|
|
282
|
+
if (own.length === 0) return;
|
|
283
|
+
const start = Math.min(...own.map(([, stretch]) => stretch.start));
|
|
284
|
+
const ascending = (left, right) => left - right;
|
|
285
|
+
const candidates = [...own.map(([, stretch]) => stretch.end).toSorted(ascending), ...own.map(([, stretch]) => stretch.start).toSorted(ascending)];
|
|
286
|
+
for (const position of candidates) {
|
|
287
|
+
const { before, after } = neighboursAt(doc, position);
|
|
288
|
+
if (own.every(([mark]) => Boolean(before && mark.isInSet(before.marks)) || Boolean(after && mark.isInSet(after.marks)))) return {
|
|
289
|
+
start,
|
|
290
|
+
end: position
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
return {
|
|
294
|
+
start,
|
|
295
|
+
end: Math.min(...own.map(([, stretch]) => stretch.end))
|
|
296
|
+
};
|
|
297
|
+
};
|
|
298
|
+
const anchored = pieces.map(stretchOf);
|
|
299
|
+
const positions = [];
|
|
300
|
+
let previous = from;
|
|
301
|
+
for (const [index, stretch] of anchored.entries()) {
|
|
302
|
+
let position;
|
|
303
|
+
if (stretch) position = stretch.end;
|
|
304
|
+
else {
|
|
305
|
+
const next = anchored.slice(index + 1).find((candidate) => candidate !== void 0);
|
|
306
|
+
const placedBefore = anchored.slice(0, index).some((candidate) => candidate !== void 0);
|
|
307
|
+
position = next && !placedBefore ? next.start : to;
|
|
308
|
+
if (placedBefore && next) position = previous;
|
|
309
|
+
}
|
|
310
|
+
position = Math.max(position, previous);
|
|
311
|
+
positions.push(position);
|
|
312
|
+
previous = position;
|
|
313
|
+
}
|
|
314
|
+
return positions;
|
|
315
|
+
};
|
|
316
|
+
/**
|
|
317
|
+
* The comments content inserted at the block boundary `at` must carry: those
|
|
318
|
+
* covering the content on both sides of it. A comment range is two points in
|
|
319
|
+
* document order, so what lands between them is covered whether the range
|
|
320
|
+
* crosses paragraphs, empty paragraphs or a table edge, and the saved package
|
|
321
|
+
* reopens exactly so. A merge's separator lands on such a boundary too.
|
|
322
|
+
*/
|
|
323
|
+
const commentsAcrossBlockBoundary = (doc, at) => commentsAround(contentBesideBoundary(doc, at, -1), contentBesideBoundary(doc, at, 1));
|
|
155
324
|
const withCarriedMarks = (node, carried) => node.mark(addCarriedMarks(node.marks, carried));
|
|
156
325
|
/** `content` with the surveyed marks on it and the surveyed anchors around it. */
|
|
157
326
|
const annotatedReplacement = ({ annotations: { carried, leading, trailing }, content }) => {
|
|
@@ -180,4 +349,4 @@ const inheritedReplacementMarks = (doc, from, to) => {
|
|
|
180
349
|
return (to === from ? $from.marks() : $from.marksAcross(doc.resolve(to))) ?? Mark.none;
|
|
181
350
|
};
|
|
182
351
|
//#endregion
|
|
183
|
-
export { NON_INCLUSIVE_MARK_DISPOSITION, addCarriedMarks, annotatedReplacement, hasReplacedAnnotations, inheritedReplacementMarks, nonInclusiveMarkNames, surveyReplacedAnnotations };
|
|
352
|
+
export { NON_INCLUSIVE_MARK_DISPOSITION, addCarriedMarks, annotatedReplacement, commentsAcrossBlockBoundary, commentsForTrackedInsertion, hasReplacedAnnotations, inheritedReplacementMarks, nonInclusiveMarkNames, placeTrackedInsertion, surveyReplacedAnnotations };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { document_d_exports } from "../types/document.js";
|
|
2
|
+
import { RunStyleResolver } from "./runStyleFormatting.js";
|
|
3
|
+
import { Mark } from "prosemirror-model";
|
|
4
|
+
//#region src/prosemirror/runFormattingFromMarks.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Convert ProseMirror marks to TextFormatting
|
|
7
|
+
*/
|
|
8
|
+
type MarksToTextFormattingOptions = {
|
|
9
|
+
baseParagraphFormatting?: document_d_exports.TextFormatting | undefined;
|
|
10
|
+
inheritedFormatting?: document_d_exports.TextFormatting | undefined;
|
|
11
|
+
paragraphMarkFormatting?: document_d_exports.TextFormatting | undefined;
|
|
12
|
+
paragraphMarkPrecedesStyle?: boolean | undefined;
|
|
13
|
+
styleResolver?: RunStyleResolver | null | undefined;
|
|
14
|
+
};
|
|
15
|
+
declare const sameFormattingValue: (left: unknown, right: unknown) => boolean;
|
|
16
|
+
declare function marksToTextFormatting(marks: readonly Mark[], options?: MarksToTextFormattingOptions): document_d_exports.TextFormatting;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { MarksToTextFormattingOptions, marksToTextFormatting, sameFormattingValue };
|