@voithos-labs/aragonite 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +365 -0
- package/THIRD-PARTY-NOTICES.md +102 -0
- package/dist/a11y-strings.d.ts +46 -0
- package/dist/a11y-strings.js +62 -0
- package/dist/action-contracts.d.ts +301 -0
- package/dist/action-contracts.js +5 -0
- package/dist/active-editor.d.ts +16 -0
- package/dist/active-editor.js +67 -0
- package/dist/ambient/ambient-cursor.d.ts +41 -0
- package/dist/ambient/ambient-cursor.js +120 -0
- package/dist/ambient/ambient-dom.d.ts +9 -0
- package/dist/ambient/ambient-dom.js +102 -0
- package/dist/assert.d.ts +6 -0
- package/dist/assert.js +17 -0
- package/dist/block-component.d.ts +274 -0
- package/dist/block-component.js +43 -0
- package/dist/block-id.d.ts +14 -0
- package/dist/block-id.js +34 -0
- package/dist/bounded-memo.d.ts +14 -0
- package/dist/bounded-memo.js +32 -0
- package/dist/components/BlockDragHandle.svelte +66 -0
- package/dist/components/BlockDragHandle.svelte.d.ts +18 -0
- package/dist/components/BlockHost.svelte +328 -0
- package/dist/components/BlockHost.svelte.d.ts +15 -0
- package/dist/components/BlockList.svelte +114 -0
- package/dist/components/BlockList.svelte.d.ts +16 -0
- package/dist/components/DecorationOverlay.svelte +156 -0
- package/dist/components/DecorationOverlay.svelte.d.ts +14 -0
- package/dist/components/Editor.svelte +1849 -0
- package/dist/components/Editor.svelte.d.ts +49 -0
- package/dist/components/GapCaret.svelte +226 -0
- package/dist/components/GapCaret.svelte.d.ts +9 -0
- package/dist/components/SearchBar.svelte +243 -0
- package/dist/components/SearchBar.svelte.d.ts +7 -0
- package/dist/components/SelectionOverlay.svelte +171 -0
- package/dist/components/SelectionOverlay.svelte.d.ts +14 -0
- package/dist/components/block-content-selector.d.ts +12 -0
- package/dist/components/block-content-selector.js +12 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +32 -0
- package/dist/components/blocks/BlockquoteBlock.svelte.d.ts +11 -0
- package/dist/components/blocks/ThematicBreakBlock.svelte +156 -0
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +17 -0
- package/dist/components/blocks/code/CodeBlock.svelte +726 -0
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +23 -0
- package/dist/components/blocks/code/CodeLanguageChip.svelte +127 -0
- package/dist/components/blocks/code/CodeLanguageChip.svelte.d.ts +14 -0
- package/dist/components/blocks/code/code-beforeinput.d.ts +30 -0
- package/dist/components/blocks/code/code-beforeinput.js +40 -0
- package/dist/components/blocks/code/code-bootstrap.d.ts +8 -0
- package/dist/components/blocks/code/code-bootstrap.js +54 -0
- package/dist/components/blocks/code/code-editing.d.ts +28 -0
- package/dist/components/blocks/code/code-editing.js +79 -0
- package/dist/components/blocks/code/code-enter.d.ts +22 -0
- package/dist/components/blocks/code/code-enter.js +19 -0
- package/dist/components/blocks/code/code-fence-boundary.d.ts +77 -0
- package/dist/components/blocks/code/code-fence-boundary.js +169 -0
- package/dist/components/blocks/code/code-fence-exit.d.ts +24 -0
- package/dist/components/blocks/code/code-fence-exit.js +36 -0
- package/dist/components/blocks/code/code-indent.d.ts +14 -0
- package/dist/components/blocks/code/code-indent.js +87 -0
- package/dist/components/blocks/code/code-languages.d.ts +15 -0
- package/dist/components/blocks/code/code-languages.js +30 -0
- package/dist/components/blocks/code/code-paste-surface.d.ts +6 -0
- package/dist/components/blocks/code/code-paste-surface.js +29 -0
- package/dist/components/blocks/code/code-paste.d.ts +24 -0
- package/dist/components/blocks/code/code-paste.js +21 -0
- package/dist/components/blocks/code/code-renderer.d.ts +18 -0
- package/dist/components/blocks/code/code-renderer.js +249 -0
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +51 -0
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte.d.ts +11 -0
- package/dist/components/blocks/directive/activate-directives.d.ts +7 -0
- package/dist/components/blocks/directive/activate-directives.js +23 -0
- package/dist/components/blocks/editable-leaf.d.ts +126 -0
- package/dist/components/blocks/editable-leaf.js +410 -0
- package/dist/components/blocks/editable-surface.d.ts +209 -0
- package/dist/components/blocks/editable-surface.js +331 -0
- package/dist/components/blocks/list/ListBlock.svelte +162 -0
- package/dist/components/blocks/list/ListBlock.svelte.d.ts +11 -0
- package/dist/components/blocks/list/ListItemBlock.svelte +324 -0
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +14 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +3 -0
- package/dist/components/blocks/list/task-checkbox.js +33 -0
- package/dist/components/blocks/plain-text-backend.d.ts +21 -0
- package/dist/components/blocks/plain-text-backend.js +47 -0
- package/dist/components/blocks/surface-wiring.svelte.d.ts +18 -0
- package/dist/components/blocks/surface-wiring.svelte.js +68 -0
- package/dist/components/blocks/table/TableActionMenu.svelte +267 -0
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +15 -0
- package/dist/components/blocks/table/TableBlock.svelte +765 -0
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +30 -0
- package/dist/components/blocks/table/TableCellBlock.svelte +1075 -0
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +30 -0
- package/dist/components/blocks/table/TableGrip.svelte +91 -0
- package/dist/components/blocks/table/TableGrip.svelte.d.ts +8 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +233 -0
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +34 -0
- package/dist/components/blocks/table/cell-clipboard.d.ts +23 -0
- package/dist/components/blocks/table/cell-clipboard.js +34 -0
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +37 -0
- package/dist/components/blocks/table/cell-keydown-plan.js +66 -0
- package/dist/components/blocks/table/cell-pointer.d.ts +58 -0
- package/dist/components/blocks/table/cell-pointer.js +153 -0
- package/dist/components/blocks/table/cell-render.d.ts +51 -0
- package/dist/components/blocks/table/cell-render.js +98 -0
- package/dist/components/blocks/table/cell-table-commands.d.ts +12 -0
- package/dist/components/blocks/table/cell-table-commands.js +21 -0
- package/dist/components/blocks/table/cell-x-mapping.d.ts +6 -0
- package/dist/components/blocks/table/cell-x-mapping.js +16 -0
- package/dist/components/blocks/table/selected-cells.d.ts +19 -0
- package/dist/components/blocks/table/selected-cells.js +35 -0
- package/dist/components/blocks/table/table-caret-at-point.d.ts +8 -0
- package/dist/components/blocks/table/table-caret-at-point.js +35 -0
- package/dist/components/blocks/table/table-cell-paste.d.ts +16 -0
- package/dist/components/blocks/table/table-cell-paste.js +75 -0
- package/dist/components/blocks/table/table-drag-hit-test.d.ts +5 -0
- package/dist/components/blocks/table/table-drag-hit-test.js +20 -0
- package/dist/components/blocks/table/table-drop-target.d.ts +1 -0
- package/dist/components/blocks/table/table-drop-target.js +16 -0
- package/dist/components/blocks/table/table-menu-model.d.ts +52 -0
- package/dist/components/blocks/table/table-menu-model.js +78 -0
- package/dist/components/blocks/table/table-navigation.d.ts +8 -0
- package/dist/components/blocks/table/table-navigation.js +22 -0
- package/dist/components/blocks/table/table-reorder-drag.d.ts +78 -0
- package/dist/components/blocks/table/table-reorder-drag.js +97 -0
- package/dist/components/blocks/text/TextEditableBlock.svelte +1012 -0
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +33 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +8 -0
- package/dist/components/blocks/text/click-snap-guard.js +19 -0
- package/dist/components/blocks/text/composition-seat.d.ts +50 -0
- package/dist/components/blocks/text/composition-seat.js +65 -0
- package/dist/components/blocks/text/construct-edge-delete.d.ts +47 -0
- package/dist/components/blocks/text/construct-edge-delete.js +164 -0
- package/dist/components/blocks/text/construct-reveal.d.ts +39 -0
- package/dist/components/blocks/text/construct-reveal.js +164 -0
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +91 -0
- package/dist/components/blocks/text/edge-policy-dispatch.js +457 -0
- package/dist/components/blocks/text/edge-seat.d.ts +42 -0
- package/dist/components/blocks/text/edge-seat.js +197 -0
- package/dist/components/blocks/text/hidden-suffix.d.ts +10 -0
- package/dist/components/blocks/text/hidden-suffix.js +15 -0
- package/dist/components/blocks/text/link-at-point.d.ts +33 -0
- package/dist/components/blocks/text/link-at-point.js +47 -0
- package/dist/components/blocks/text/link-source-bytes.d.ts +37 -0
- package/dist/components/blocks/text/link-source-bytes.js +161 -0
- package/dist/components/blocks/text/live-join-seam.d.ts +15 -0
- package/dist/components/blocks/text/live-join-seam.js +327 -0
- package/dist/components/blocks/text/live-selection-edit.d.ts +68 -0
- package/dist/components/blocks/text/live-selection-edit.js +120 -0
- package/dist/components/blocks/text/live-split-rebalance.d.ts +56 -0
- package/dist/components/blocks/text/live-split-rebalance.js +239 -0
- package/dist/components/blocks/text/marker-completion.d.ts +18 -0
- package/dist/components/blocks/text/marker-completion.js +29 -0
- package/dist/components/blocks/text/pending-mark-insert.d.ts +37 -0
- package/dist/components/blocks/text/pending-mark-insert.js +188 -0
- package/dist/components/blocks/text/screen-diff.d.ts +20 -0
- package/dist/components/blocks/text/screen-diff.js +39 -0
- package/dist/components/blocks/text/text-clipboard.d.ts +70 -0
- package/dist/components/blocks/text/text-clipboard.js +131 -0
- package/dist/components/blocks/text/text-keydown.d.ts +39 -0
- package/dist/components/blocks/text/text-keydown.js +80 -0
- package/dist/components/blocks/text/text-render.d.ts +67 -0
- package/dist/components/blocks/text/text-render.js +215 -0
- package/dist/components/blocks/text/widget-adjacency.d.ts +30 -0
- package/dist/components/blocks/text/widget-adjacency.js +68 -0
- package/dist/components/blocks/text/widget-interaction.d.ts +90 -0
- package/dist/components/blocks/text/widget-interaction.js +591 -0
- package/dist/components/blocks/widget-portal.d.ts +54 -0
- package/dist/components/blocks/widget-portal.js +136 -0
- package/dist/components/built-in-blocks.d.ts +7 -0
- package/dist/components/built-in-blocks.js +77 -0
- package/dist/components/editor-root-clipboard.d.ts +29 -0
- package/dist/components/editor-root-clipboard.js +105 -0
- package/dist/components/editor-root-keydown.d.ts +47 -0
- package/dist/components/editor-root-keydown.js +88 -0
- package/dist/components/editor-root-listeners.d.ts +44 -0
- package/dist/components/editor-root-listeners.js +112 -0
- package/dist/components/image/ImageOverlayHost.svelte +115 -0
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +20 -0
- package/dist/components/image/ImageProperties.svelte +153 -0
- package/dist/components/image/ImageProperties.svelte.d.ts +14 -0
- package/dist/components/image/ImageResizeHandles.svelte +188 -0
- package/dist/components/image/ImageResizeHandles.svelte.d.ts +10 -0
- package/dist/components/image/image-edit-commit.d.ts +38 -0
- package/dist/components/image/image-edit-commit.js +159 -0
- package/dist/components/image/image-resize.d.ts +11 -0
- package/dist/components/image/image-resize.js +38 -0
- package/dist/components/image/image-source-bytes.d.ts +15 -0
- package/dist/components/image/image-source-bytes.js +73 -0
- package/dist/components/image/image-widget-editing.d.ts +7 -0
- package/dist/components/image/image-widget-editing.js +41 -0
- package/dist/components/image/widget-dom.d.ts +11 -0
- package/dist/components/image/widget-dom.js +110 -0
- package/dist/components/image/widget-selection-state.svelte.d.ts +18 -0
- package/dist/components/image/widget-selection-state.svelte.js +26 -0
- package/dist/components/link-card/LinkCard.svelte +190 -0
- package/dist/components/link-card/LinkCard.svelte.d.ts +18 -0
- package/dist/components/link-card/LinkCardHost.svelte +181 -0
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +25 -0
- package/dist/components/link-card/link-card-commit.d.ts +50 -0
- package/dist/components/link-card/link-card-commit.js +134 -0
- package/dist/components/link-card/link-card-entry.d.ts +39 -0
- package/dist/components/link-card/link-card-entry.js +51 -0
- package/dist/components/link-card/link-card-state.svelte.d.ts +44 -0
- package/dist/components/link-card/link-card-state.svelte.js +46 -0
- package/dist/components/lrd-map-gate.d.ts +18 -0
- package/dist/components/lrd-map-gate.js +22 -0
- package/dist/components/paste-image-arm.d.ts +29 -0
- package/dist/components/paste-image-arm.js +61 -0
- package/dist/components/portal.d.ts +11 -0
- package/dist/components/portal.js +29 -0
- package/dist/core/directive/activate.d.ts +8 -0
- package/dist/core/directive/activate.js +25 -0
- package/dist/core/directive/container-opener.d.ts +7 -0
- package/dist/core/directive/container-opener.js +162 -0
- package/dist/core/directive/grammar.d.ts +50 -0
- package/dist/core/directive/grammar.js +88 -0
- package/dist/core/directive/kinds.d.ts +31 -0
- package/dist/core/directive/kinds.js +137 -0
- package/dist/core/directive/registry.d.ts +39 -0
- package/dist/core/directive/registry.js +49 -0
- package/dist/core/directive/text-recognizer.d.ts +8 -0
- package/dist/core/directive/text-recognizer.js +87 -0
- package/dist/core/escapable.d.ts +6 -0
- package/dist/core/escapable.js +6 -0
- package/dist/core/inline/backticks.d.ts +16 -0
- package/dist/core/inline/backticks.js +62 -0
- package/dist/core/inline/character-refs.d.ts +7 -0
- package/dist/core/inline/character-refs.js +70 -0
- package/dist/core/inline/destination-bytes.d.ts +7 -0
- package/dist/core/inline/destination-bytes.js +14 -0
- package/dist/core/inline/entity-widget.d.ts +11 -0
- package/dist/core/inline/entity-widget.js +21 -0
- package/dist/core/inline/format-toggle.d.ts +50 -0
- package/dist/core/inline/format-toggle.js +533 -0
- package/dist/core/inline/html-entities.d.ts +8 -0
- package/dist/core/inline/html-entities.js +2134 -0
- package/dist/core/inline/html-tag-grammar.d.ts +16 -0
- package/dist/core/inline/html-tag-grammar.js +58 -0
- package/dist/core/inline/image-dimensions.d.ts +6 -0
- package/dist/core/inline/image-dimensions.js +42 -0
- package/dist/core/inline/index.d.ts +42 -0
- package/dist/core/inline/index.js +77 -0
- package/dist/core/inline/inline-cache.d.ts +20 -0
- package/dist/core/inline/inline-cache.js +28 -0
- package/dist/core/inline/inline-widgets.d.ts +124 -0
- package/dist/core/inline/inline-widgets.js +131 -0
- package/dist/core/inline/link-reference-resolver.d.ts +21 -0
- package/dist/core/inline/link-reference-resolver.js +46 -0
- package/dist/core/inline/raw-html-widget.d.ts +10 -0
- package/dist/core/inline/raw-html-widget.js +22 -0
- package/dist/core/inline/scan/autolinks.d.ts +23 -0
- package/dist/core/inline/scan/autolinks.js +354 -0
- package/dist/core/inline/scan/brackets.d.ts +11 -0
- package/dist/core/inline/scan/brackets.js +284 -0
- package/dist/core/inline/scan/code-spans.d.ts +7 -0
- package/dist/core/inline/scan/code-spans.js +27 -0
- package/dist/core/inline/scan/emphasis.d.ts +10 -0
- package/dist/core/inline/scan/emphasis.js +276 -0
- package/dist/core/inline/scan/index.d.ts +7 -0
- package/dist/core/inline/scan/index.js +176 -0
- package/dist/core/inline/scan/plugin-syntax.d.ts +62 -0
- package/dist/core/inline/scan/plugin-syntax.js +150 -0
- package/dist/core/inline/scan/scan-state.d.ts +47 -0
- package/dist/core/inline/scan/scan-state.js +48 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +14 -0
- package/dist/core/inline/scan/simple-nodes.js +53 -0
- package/dist/core/inline/scan/url.d.ts +12 -0
- package/dist/core/inline/scan/url.js +82 -0
- package/dist/core/inline/transparency.d.ts +8 -0
- package/dist/core/inline/transparency.js +39 -0
- package/dist/core/inline/visibility.d.ts +81 -0
- package/dist/core/inline/visibility.js +144 -0
- package/dist/core/inline/walk.d.ts +14 -0
- package/dist/core/inline/walk.js +29 -0
- package/dist/core/inline-render.d.ts +48 -0
- package/dist/core/inline-render.js +322 -0
- package/dist/core/lines.d.ts +44 -0
- package/dist/core/lines.js +91 -0
- package/dist/core/node-views.d.ts +22 -0
- package/dist/core/node-views.js +8 -0
- package/dist/core/nodes.d.ts +297 -0
- package/dist/core/nodes.js +83 -0
- package/dist/core/parser.d.ts +68 -0
- package/dist/core/parser.js +189 -0
- package/dist/core/parsers/blockquote.d.ts +17 -0
- package/dist/core/parsers/blockquote.js +69 -0
- package/dist/core/parsers/built-in-openers.d.ts +8 -0
- package/dist/core/parsers/built-in-openers.js +124 -0
- package/dist/core/parsers/fence-syntax.d.ts +24 -0
- package/dist/core/parsers/fence-syntax.js +44 -0
- package/dist/core/parsers/fenced-code.d.ts +7 -0
- package/dist/core/parsers/fenced-code.js +29 -0
- package/dist/core/parsers/heading.d.ts +3 -0
- package/dist/core/parsers/heading.js +6 -0
- package/dist/core/parsers/html-block.d.ts +17 -0
- package/dist/core/parsers/html-block.js +94 -0
- package/dist/core/parsers/indented-code.d.ts +4 -0
- package/dist/core/parsers/indented-code.js +41 -0
- package/dist/core/parsers/link-reference.d.ts +7 -0
- package/dist/core/parsers/link-reference.js +152 -0
- package/dist/core/parsers/list.d.ts +19 -0
- package/dist/core/parsers/list.js +133 -0
- package/dist/core/parsers/paragraph.d.ts +10 -0
- package/dist/core/parsers/paragraph.js +42 -0
- package/dist/core/parsers/table-completion.d.ts +13 -0
- package/dist/core/parsers/table-completion.js +48 -0
- package/dist/core/parsers/table.d.ts +18 -0
- package/dist/core/parsers/table.js +110 -0
- package/dist/core/parsers/thematic-break.d.ts +1 -0
- package/dist/core/parsers/thematic-break.js +19 -0
- package/dist/core/serializer.d.ts +15 -0
- package/dist/core/serializer.js +11 -0
- package/dist/core/terminator-escalation.d.ts +8 -0
- package/dist/core/terminator-escalation.js +18 -0
- package/dist/core/url-policy.d.ts +14 -0
- package/dist/core/url-policy.js +44 -0
- package/dist/cursor/content-offsets.d.ts +29 -0
- package/dist/cursor/content-offsets.js +151 -0
- package/dist/cursor/coordinate-spaces.d.ts +65 -0
- package/dist/cursor/coordinate-spaces.js +66 -0
- package/dist/cursor/dom-walk.d.ts +18 -0
- package/dist/cursor/dom-walk.js +31 -0
- package/dist/cursor/edge-affinity.d.ts +44 -0
- package/dist/cursor/edge-affinity.js +60 -0
- package/dist/cursor/focused-caret.d.ts +10 -0
- package/dist/cursor/focused-caret.js +24 -0
- package/dist/cursor/height-model.d.ts +24 -0
- package/dist/cursor/height-model.js +72 -0
- package/dist/cursor/height-oracle.d.ts +24 -0
- package/dist/cursor/height-oracle.js +94 -0
- package/dist/cursor/overlay-rects.d.ts +8 -0
- package/dist/cursor/overlay-rects.js +19 -0
- package/dist/cursor/overlay-remeasure.d.ts +17 -0
- package/dist/cursor/overlay-remeasure.js +31 -0
- package/dist/cursor/pending-marks.d.ts +24 -0
- package/dist/cursor/pending-marks.js +36 -0
- package/dist/cursor/point-offset.d.ts +21 -0
- package/dist/cursor/point-offset.js +48 -0
- package/dist/cursor/reveal-anchor.d.ts +30 -0
- package/dist/cursor/reveal-anchor.js +31 -0
- package/dist/cursor/reveal-source.d.ts +35 -0
- package/dist/cursor/reveal-source.js +51 -0
- package/dist/cursor/scroll-ancestors.d.ts +28 -0
- package/dist/cursor/scroll-ancestors.js +89 -0
- package/dist/cursor/scrollport.d.ts +20 -0
- package/dist/cursor/scrollport.js +41 -0
- package/dist/cursor/sticky-column.d.ts +35 -0
- package/dist/cursor/sticky-column.js +64 -0
- package/dist/cursor/sticky-measure.d.ts +16 -0
- package/dist/cursor/sticky-measure.js +97 -0
- package/dist/cursor/typography-estimates.d.ts +21 -0
- package/dist/cursor/typography-estimates.js +21 -0
- package/dist/cursor/visual-lines.d.ts +25 -0
- package/dist/cursor/visual-lines.js +125 -0
- package/dist/cursor/widget-offset.d.ts +132 -0
- package/dist/cursor/widget-offset.js +543 -0
- package/dist/debug/diagnostics-report.d.ts +17 -0
- package/dist/debug/diagnostics-report.js +25 -0
- package/dist/debug/dump-tree.d.ts +6 -0
- package/dist/debug/dump-tree.js +114 -0
- package/dist/debug/inspect.d.ts +19 -0
- package/dist/debug/inspect.js +116 -0
- package/dist/debug/interaction-trace.d.ts +39 -0
- package/dist/debug/interaction-trace.js +105 -0
- package/dist/debug/operations-log.d.ts +14 -0
- package/dist/debug/operations-log.js +30 -0
- package/dist/decorations/buckets.d.ts +40 -0
- package/dist/decorations/buckets.js +87 -0
- package/dist/decorations/decoration-state.svelte.d.ts +20 -0
- package/dist/decorations/decoration-state.svelte.js +195 -0
- package/dist/decorations/island-dom.d.ts +35 -0
- package/dist/decorations/island-dom.js +148 -0
- package/dist/decorations/reserved-attrs.d.ts +12 -0
- package/dist/decorations/reserved-attrs.js +47 -0
- package/dist/decorations/types.d.ts +68 -0
- package/dist/decorations/types.js +5 -0
- package/dist/decorations/widget-dom.d.ts +15 -0
- package/dist/decorations/widget-dom.js +35 -0
- package/dist/dev-warn.d.ts +13 -0
- package/dist/dev-warn.js +28 -0
- package/dist/editor-actions/ancestry-folds.d.ts +32 -0
- package/dist/editor-actions/ancestry-folds.js +106 -0
- package/dist/editor-actions/block-edit-core.d.ts +29 -0
- package/dist/editor-actions/block-edit-core.js +277 -0
- package/dist/editor-actions/block-edit-scope.d.ts +79 -0
- package/dist/editor-actions/block-edit-scope.js +76 -0
- package/dist/editor-actions/block-edit.d.ts +8 -0
- package/dist/editor-actions/block-edit.js +111 -0
- package/dist/editor-actions/commit/history.d.ts +9 -0
- package/dist/editor-actions/commit/history.js +77 -0
- package/dist/editor-actions/commit/text-batch.d.ts +34 -0
- package/dist/editor-actions/commit/text-batch.js +61 -0
- package/dist/editor-actions/commit/undo-controller.d.ts +7 -0
- package/dist/editor-actions/commit/undo-controller.js +570 -0
- package/dist/editor-actions/container-block-component.d.ts +85 -0
- package/dist/editor-actions/container-block-component.js +228 -0
- package/dist/editor-actions/container-edit.d.ts +7 -0
- package/dist/editor-actions/container-edit.js +49 -0
- package/dist/editor-actions/container-exit-overrides.d.ts +16 -0
- package/dist/editor-actions/container-exit-overrides.js +38 -0
- package/dist/editor-actions/deps.d.ts +60 -0
- package/dist/editor-actions/deps.js +1 -0
- package/dist/editor-actions/enter-completion.d.ts +25 -0
- package/dist/editor-actions/enter-completion.js +76 -0
- package/dist/editor-actions/focus/focus-dispatch.d.ts +36 -0
- package/dist/editor-actions/focus/focus-dispatch.js +106 -0
- package/dist/editor-actions/focus/focus-landing.d.ts +7 -0
- package/dist/editor-actions/focus/focus-landing.js +39 -0
- package/dist/editor-actions/focus/focus.d.ts +7 -0
- package/dist/editor-actions/focus/focus.js +74 -0
- package/dist/editor-actions/index.d.ts +15 -0
- package/dist/editor-actions/index.js +19 -0
- package/dist/editor-actions/inline-range-commit.d.ts +20 -0
- package/dist/editor-actions/inline-range-commit.js +63 -0
- package/dist/editor-actions/list-context.d.ts +25 -0
- package/dist/editor-actions/list-context.js +285 -0
- package/dist/editor-actions/list-overrides.d.ts +13 -0
- package/dist/editor-actions/list-overrides.js +26 -0
- package/dist/editor-actions/merge-fallback.d.ts +19 -0
- package/dist/editor-actions/merge-fallback.js +27 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +65 -0
- package/dist/editor-actions/nested/nested-actions.js +59 -0
- package/dist/editor-actions/nested/nested-block-edit.d.ts +10 -0
- package/dist/editor-actions/nested/nested-block-edit.js +181 -0
- package/dist/editor-actions/nested/nested-focus.d.ts +9 -0
- package/dist/editor-actions/nested/nested-focus.js +30 -0
- package/dist/editor-actions/paste-coordinator.d.ts +4 -0
- package/dist/editor-actions/paste-coordinator.js +20 -0
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +25 -0
- package/dist/editor-actions/plugin/chrome-leaf.js +80 -0
- package/dist/editor-actions/plugin/container.d.ts +137 -0
- package/dist/editor-actions/plugin/container.js +351 -0
- package/dist/editor-actions/plugin/directive-container.d.ts +13 -0
- package/dist/editor-actions/plugin/directive-container.js +31 -0
- package/dist/editor-actions/reorder-action.d.ts +17 -0
- package/dist/editor-actions/reorder-action.js +104 -0
- package/dist/editor-actions/reorder-drag.d.ts +34 -0
- package/dist/editor-actions/reorder-drag.js +152 -0
- package/dist/editor-actions/replacement-focus.d.ts +27 -0
- package/dist/editor-actions/replacement-focus.js +60 -0
- package/dist/editor-actions/search-replace.d.ts +6 -0
- package/dist/editor-actions/search-replace.js +145 -0
- package/dist/editor-actions/table-context.d.ts +34 -0
- package/dist/editor-actions/table-context.js +292 -0
- package/dist/editor-actions/unwrap-strategies.d.ts +14 -0
- package/dist/editor-actions/unwrap-strategies.js +131 -0
- package/dist/editor-actions/whole-block-focus-surface.d.ts +51 -0
- package/dist/editor-actions/whole-block-focus-surface.js +171 -0
- package/dist/editor-events.d.ts +89 -0
- package/dist/editor-events.js +96 -0
- package/dist/editor-keys.d.ts +197 -0
- package/dist/editor-keys.js +40 -0
- package/dist/editor-props.d.ts +164 -0
- package/dist/editor-props.js +1 -0
- package/dist/editor-rects.d.ts +58 -0
- package/dist/editor-rects.js +114 -0
- package/dist/env.d.ts +12 -0
- package/dist/env.js +20 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +19 -0
- package/dist/invariants/commit-paths.d.ts +10 -0
- package/dist/invariants/commit-paths.js +25 -0
- package/dist/invariants/commit-scope.d.ts +9 -0
- package/dist/invariants/commit-scope.js +16 -0
- package/dist/invariants/context-keys.d.ts +7 -0
- package/dist/invariants/context-keys.js +14 -0
- package/dist/invariants/descriptor.d.ts +10 -0
- package/dist/invariants/descriptor.js +24 -0
- package/dist/invariants/inline-transitions.d.ts +23 -0
- package/dist/invariants/inline-transitions.js +52 -0
- package/dist/invariants/install.d.ts +36 -0
- package/dist/invariants/install.js +66 -0
- package/dist/invariants/landable-caret.d.ts +12 -0
- package/dist/invariants/landable-caret.js +31 -0
- package/dist/invariants/marker-css-parity.d.ts +10 -0
- package/dist/invariants/marker-css-parity.js +87 -0
- package/dist/invariants/node-shape.d.ts +44 -0
- package/dist/invariants/node-shape.js +258 -0
- package/dist/invariants/registry.d.ts +126 -0
- package/dist/invariants/registry.js +349 -0
- package/dist/invariants/render-fidelity.d.ts +8 -0
- package/dist/invariants/render-fidelity.js +33 -0
- package/dist/invariants/selection-endpoints.d.ts +19 -0
- package/dist/invariants/selection-endpoints.js +78 -0
- package/dist/invariants/single-node-sink.d.ts +9 -0
- package/dist/invariants/single-node-sink.js +16 -0
- package/dist/invariants/snapshot-integrity.d.ts +17 -0
- package/dist/invariants/snapshot-integrity.js +24 -0
- package/dist/invariants/split-landing.d.ts +8 -0
- package/dist/invariants/split-landing.js +15 -0
- package/dist/invariants/structural-descriptor.d.ts +21 -0
- package/dist/invariants/structural-descriptor.js +50 -0
- package/dist/perf/instruments.d.ts +49 -0
- package/dist/perf/instruments.js +154 -0
- package/dist/perf/use-mount-gauge.svelte.d.ts +1 -0
- package/dist/perf/use-mount-gauge.svelte.js +15 -0
- package/dist/plugin.d.ts +102 -0
- package/dist/plugin.js +156 -0
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +144 -0
- package/dist/plugins/admonitions/AdmonitionBlock.svelte.d.ts +11 -0
- package/dist/plugins/admonitions/admonition-kind.d.ts +8 -0
- package/dist/plugins/admonitions/admonition-kind.js +97 -0
- package/dist/plugins/admonitions/convert-document.d.ts +11 -0
- package/dist/plugins/admonitions/convert-document.js +39 -0
- package/dist/plugins/admonitions/gh-alert.d.ts +13 -0
- package/dist/plugins/admonitions/gh-alert.js +83 -0
- package/dist/plugins/admonitions/github-alert-kind.d.ts +12 -0
- package/dist/plugins/admonitions/github-alert-kind.js +125 -0
- package/dist/plugins/admonitions/index.d.ts +6 -0
- package/dist/plugins/admonitions/index.js +8 -0
- package/dist/plugins/admonitions/kinds.d.ts +26 -0
- package/dist/plugins/admonitions/kinds.js +18 -0
- package/dist/plugins/admonitions/register.d.ts +7 -0
- package/dist/plugins/admonitions/register.js +12 -0
- package/dist/plugins/details/DetailsBlock.svelte +129 -0
- package/dist/plugins/details/DetailsBlock.svelte.d.ts +11 -0
- package/dist/plugins/details/details-disclosure.svelte.d.ts +17 -0
- package/dist/plugins/details/details-disclosure.svelte.js +24 -0
- package/dist/plugins/details/details-kind.d.ts +25 -0
- package/dist/plugins/details/details-kind.js +237 -0
- package/dist/plugins/details/index.d.ts +2 -0
- package/dist/plugins/details/index.js +2 -0
- package/dist/plugins/details/register.d.ts +6 -0
- package/dist/plugins/details/register.js +15 -0
- package/dist/plugins/emoji/emoji-plugin.d.ts +2 -0
- package/dist/plugins/emoji/emoji-plugin.js +10 -0
- package/dist/plugins/emoji/emoji-recognizer.d.ts +18 -0
- package/dist/plugins/emoji/emoji-recognizer.js +63 -0
- package/dist/plugins/emoji/emoji-table.d.ts +1 -0
- package/dist/plugins/emoji/emoji-table.js +1919 -0
- package/dist/plugins/emoji/index.d.ts +3 -0
- package/dist/plugins/emoji/index.js +4 -0
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +103 -0
- package/dist/plugins/footnotes/FootnoteDefinition.svelte.d.ts +13 -0
- package/dist/plugins/footnotes/FootnoteReference.svelte +50 -0
- package/dist/plugins/footnotes/FootnoteReference.svelte.d.ts +4 -0
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +4 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +14 -0
- package/dist/plugins/footnotes/footnote-definition.js +147 -0
- package/dist/plugins/footnotes/footnote-lookup.d.ts +9 -0
- package/dist/plugins/footnotes/footnote-lookup.js +33 -0
- package/dist/plugins/footnotes/footnote-numbering.d.ts +23 -0
- package/dist/plugins/footnotes/footnote-numbering.js +78 -0
- package/dist/plugins/footnotes/footnote-reference.d.ts +7 -0
- package/dist/plugins/footnotes/footnote-reference.js +54 -0
- package/dist/plugins/footnotes/footnotes-plugin.d.ts +7 -0
- package/dist/plugins/footnotes/footnotes-plugin.js +17 -0
- package/dist/plugins/footnotes/index.d.ts +5 -0
- package/dist/plugins/footnotes/index.js +6 -0
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +17 -0
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +31 -0
- package/dist/plugins/highlight-occurrences/index.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/index.js +1 -0
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +26 -0
- package/dist/plugins/highlight-occurrences/occurrence-source.js +54 -0
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +33 -0
- package/dist/plugins/highlight-occurrences/occurrences.js +108 -0
- package/dist/plugins/latex/BlockMath.svelte +119 -0
- package/dist/plugins/latex/BlockMath.svelte.d.ts +21 -0
- package/dist/plugins/latex/MathInline.svelte +28 -0
- package/dist/plugins/latex/MathInline.svelte.d.ts +4 -0
- package/dist/plugins/latex/index.d.ts +3 -0
- package/dist/plugins/latex/index.js +4 -0
- package/dist/plugins/latex/latex-kind.d.ts +17 -0
- package/dist/plugins/latex/latex-kind.js +224 -0
- package/dist/plugins/latex/math-completion.d.ts +10 -0
- package/dist/plugins/latex/math-completion.js +19 -0
- package/dist/plugins/latex/math-renderer.d.ts +26 -0
- package/dist/plugins/latex/math-renderer.js +42 -0
- package/dist/plugins/latex/register.d.ts +10 -0
- package/dist/plugins/latex/register.js +23 -0
- package/dist/plugins/latex/renderer.d.ts +13 -0
- package/dist/plugins/latex/renderer.js +34 -0
- package/dist/plugins/mermaid/MermaidBlock.svelte +572 -0
- package/dist/plugins/mermaid/MermaidBlock.svelte.d.ts +11 -0
- package/dist/plugins/mermaid/index.d.ts +3 -0
- package/dist/plugins/mermaid/index.js +3 -0
- package/dist/plugins/mermaid/mermaid-kind.d.ts +38 -0
- package/dist/plugins/mermaid/mermaid-kind.js +176 -0
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +28 -0
- package/dist/plugins/mermaid/mermaid-renderer.js +35 -0
- package/dist/plugins/mermaid/register.d.ts +10 -0
- package/dist/plugins/mermaid/register.js +20 -0
- package/dist/plugins/mermaid/renderer.d.ts +11 -0
- package/dist/plugins/mermaid/renderer.js +53 -0
- package/dist/plugins/parrot/ParrotBlock.svelte +342 -0
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +21 -0
- package/dist/plugins/parrot/index.d.ts +1 -0
- package/dist/plugins/parrot/index.js +2 -0
- package/dist/plugins/parrot/parrot-plugin.d.ts +3 -0
- package/dist/plugins/parrot/parrot-plugin.js +49 -0
- package/dist/plugins/toc/TocBlock.svelte +218 -0
- package/dist/plugins/toc/TocBlock.svelte.d.ts +24 -0
- package/dist/plugins/toc/heading-outline.d.ts +28 -0
- package/dist/plugins/toc/heading-outline.js +65 -0
- package/dist/plugins/toc/index.d.ts +2 -0
- package/dist/plugins/toc/index.js +2 -0
- package/dist/plugins/toc/navigation-queue.d.ts +12 -0
- package/dist/plugins/toc/navigation-queue.js +21 -0
- package/dist/plugins/toc/toc-plugin.d.ts +16 -0
- package/dist/plugins/toc/toc-plugin.js +71 -0
- package/dist/presentation-mode.d.ts +32 -0
- package/dist/presentation-mode.js +50 -0
- package/dist/reactivity/block-list-state.svelte.d.ts +22 -0
- package/dist/reactivity/block-list-state.svelte.js +46 -0
- package/dist/reactivity/block-window.svelte.d.ts +41 -0
- package/dist/reactivity/block-window.svelte.js +93 -0
- package/dist/reactivity/content-version.svelte.d.ts +14 -0
- package/dist/reactivity/content-version.svelte.js +16 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +100 -0
- package/dist/reactivity/list-windowing.svelte.js +402 -0
- package/dist/reactivity/measure-batch.d.ts +15 -0
- package/dist/reactivity/measure-batch.js +18 -0
- package/dist/reactivity/publish-ref.svelte.d.ts +54 -0
- package/dist/reactivity/publish-ref.svelte.js +128 -0
- package/dist/reactivity/scope-geometry.d.ts +18 -0
- package/dist/reactivity/scope-geometry.js +29 -0
- package/dist/reactivity/state-registry.d.ts +10 -0
- package/dist/reactivity/state-registry.js +44 -0
- package/dist/reactivity/use-container-windowing.svelte.d.ts +35 -0
- package/dist/reactivity/use-container-windowing.svelte.js +95 -0
- package/dist/reactivity/window-slice.d.ts +11 -0
- package/dist/reactivity/window-slice.js +9 -0
- package/dist/scan-index.d.ts +11 -0
- package/dist/scan-index.js +27 -0
- package/dist/schema/block-commands.d.ts +105 -0
- package/dist/schema/block-commands.js +179 -0
- package/dist/schema/block-completions.d.ts +33 -0
- package/dist/schema/block-completions.js +49 -0
- package/dist/schema/block-component-registry.d.ts +33 -0
- package/dist/schema/block-component-registry.js +33 -0
- package/dist/schema/block-kind-descriptor.d.ts +281 -0
- package/dist/schema/block-kind-descriptor.js +187 -0
- package/dist/schema/block-openers.d.ts +94 -0
- package/dist/schema/block-openers.js +150 -0
- package/dist/schema/built-in-descriptors.d.ts +8 -0
- package/dist/schema/built-in-descriptors.js +560 -0
- package/dist/schema/child-spans.d.ts +25 -0
- package/dist/schema/child-spans.js +161 -0
- package/dist/schema/closure.d.ts +39 -0
- package/dist/schema/closure.js +55 -0
- package/dist/schema/command-id.d.ts +20 -0
- package/dist/schema/command-id.js +42 -0
- package/dist/schema/commands.d.ts +147 -0
- package/dist/schema/commands.js +294 -0
- package/dist/schema/container-raw.d.ts +21 -0
- package/dist/schema/container-raw.js +43 -0
- package/dist/schema/container-rebuilders.d.ts +32 -0
- package/dist/schema/container-rebuilders.js +95 -0
- package/dist/schema/define-plugin-block.d.ts +15 -0
- package/dist/schema/define-plugin-block.js +18 -0
- package/dist/schema/fenced-code-raw.d.ts +43 -0
- package/dist/schema/fenced-code-raw.js +220 -0
- package/dist/schema/global-commands.d.ts +11 -0
- package/dist/schema/global-commands.js +40 -0
- package/dist/schema/inline-construct-policy.d.ts +131 -0
- package/dist/schema/inline-construct-policy.js +96 -0
- package/dist/schema/keybinding-overrides.d.ts +39 -0
- package/dist/schema/keybinding-overrides.js +43 -0
- package/dist/schema/keybindings.d.ts +36 -0
- package/dist/schema/keybindings.js +75 -0
- package/dist/schema/merge-rules.d.ts +28 -0
- package/dist/schema/merge-rules.js +57 -0
- package/dist/schema/opener-priorities.d.ts +16 -0
- package/dist/schema/opener-priorities.js +16 -0
- package/dist/schema/operations.d.ts +110 -0
- package/dist/schema/operations.js +6 -0
- package/dist/schema/plugin-activation.d.ts +13 -0
- package/dist/schema/plugin-activation.js +18 -0
- package/dist/schema/plugin-editor-context.d.ts +33 -0
- package/dist/schema/plugin-editor-context.js +65 -0
- package/dist/schema/plugin-install.d.ts +58 -0
- package/dist/schema/plugin-install.js +132 -0
- package/dist/schema/plugin-kind.d.ts +21 -0
- package/dist/schema/plugin-kind.js +86 -0
- package/dist/schema/plugin-name.d.ts +1 -0
- package/dist/schema/plugin-name.js +7 -0
- package/dist/schema/register-once.d.ts +9 -0
- package/dist/schema/register-once.js +35 -0
- package/dist/schema/registration-checks.d.ts +32 -0
- package/dist/schema/registration-checks.js +122 -0
- package/dist/schema/registration-pending.d.ts +28 -0
- package/dist/schema/registration-pending.js +48 -0
- package/dist/schema/registry-reset.d.ts +7 -0
- package/dist/schema/registry-reset.js +30 -0
- package/dist/schema/registry-view.d.ts +30 -0
- package/dist/schema/registry-view.js +39 -0
- package/dist/schema/reserved-chords.d.ts +35 -0
- package/dist/schema/reserved-chords.js +313 -0
- package/dist/schema/reserved-chrome.d.ts +23 -0
- package/dist/schema/reserved-chrome.js +33 -0
- package/dist/schema/table-cell-raw.d.ts +14 -0
- package/dist/schema/table-cell-raw.js +30 -0
- package/dist/schema/whole-block-unit.d.ts +8 -0
- package/dist/schema/whole-block-unit.js +12 -0
- package/dist/search/document-scan.d.ts +22 -0
- package/dist/search/document-scan.js +39 -0
- package/dist/search/matcher.d.ts +31 -0
- package/dist/search/matcher.js +70 -0
- package/dist/search/regex-executor.d.ts +41 -0
- package/dist/search/regex-executor.js +165 -0
- package/dist/search/replace.d.ts +15 -0
- package/dist/search/replace.js +29 -0
- package/dist/search/search-state.svelte.d.ts +59 -0
- package/dist/search/search-state.svelte.js +231 -0
- package/dist/selection/autoscroll.d.ts +26 -0
- package/dist/selection/autoscroll.js +91 -0
- package/dist/selection/block-hit-test.d.ts +37 -0
- package/dist/selection/block-hit-test.js +59 -0
- package/dist/selection/caret-doors.d.ts +20 -0
- package/dist/selection/caret-doors.js +44 -0
- package/dist/selection/caret-restore.d.ts +15 -0
- package/dist/selection/caret-restore.js +32 -0
- package/dist/selection/char-endpoint-snap.d.ts +15 -0
- package/dist/selection/char-endpoint-snap.js +39 -0
- package/dist/selection/clipboard-text.d.ts +13 -0
- package/dist/selection/clipboard-text.js +314 -0
- package/dist/selection/cross-block/clipboard.d.ts +14 -0
- package/dist/selection/cross-block/clipboard.js +20 -0
- package/dist/selection/cross-block/dispatch.d.ts +78 -0
- package/dist/selection/cross-block/dispatch.js +57 -0
- package/dist/selection/cross-block/format-range.d.ts +38 -0
- package/dist/selection/cross-block/format-range.js +193 -0
- package/dist/selection/cross-block/format-toggle.d.ts +27 -0
- package/dist/selection/cross-block/format-toggle.js +109 -0
- package/dist/selection/cross-block/keydown.d.ts +11 -0
- package/dist/selection/cross-block/keydown.js +339 -0
- package/dist/selection/cross-block/ops.d.ts +56 -0
- package/dist/selection/cross-block/ops.js +210 -0
- package/dist/selection/cross-block/paste.d.ts +8 -0
- package/dist/selection/cross-block/paste.js +156 -0
- package/dist/selection/cross-block/pointer.d.ts +19 -0
- package/dist/selection/cross-block/pointer.js +80 -0
- package/dist/selection/cross-block/type-replace.d.ts +10 -0
- package/dist/selection/cross-block/type-replace.js +129 -0
- package/dist/selection/dead-space-caret.d.ts +39 -0
- package/dist/selection/dead-space-caret.js +173 -0
- package/dist/selection/drag-pointer.d.ts +22 -0
- package/dist/selection/drag-pointer.js +89 -0
- package/dist/selection/gap-caret.d.ts +47 -0
- package/dist/selection/gap-caret.js +72 -0
- package/dist/selection/keyboard-extend.d.ts +43 -0
- package/dist/selection/keyboard-extend.js +257 -0
- package/dist/selection/native-bridge.d.ts +47 -0
- package/dist/selection/native-bridge.js +204 -0
- package/dist/selection/nearest-block.d.ts +43 -0
- package/dist/selection/nearest-block.js +73 -0
- package/dist/selection/path-lookup.d.ts +32 -0
- package/dist/selection/path-lookup.js +132 -0
- package/dist/selection/path-math.d.ts +35 -0
- package/dist/selection/path-math.js +90 -0
- package/dist/selection/pointer-session.d.ts +43 -0
- package/dist/selection/pointer-session.js +111 -0
- package/dist/selection/primitives.d.ts +75 -0
- package/dist/selection/primitives.js +91 -0
- package/dist/selection/range-delete-ceremony.d.ts +85 -0
- package/dist/selection/range-delete-ceremony.js +197 -0
- package/dist/selection/range-delete-chrome.d.ts +39 -0
- package/dist/selection/range-delete-chrome.js +105 -0
- package/dist/selection/range-delete-table-coverage.d.ts +28 -0
- package/dist/selection/range-delete-table-coverage.js +168 -0
- package/dist/selection/range-delete-table.d.ts +16 -0
- package/dist/selection/range-delete-table.js +347 -0
- package/dist/selection/range-delete.d.ts +33 -0
- package/dist/selection/range-delete.js +121 -0
- package/dist/selection/selection-description.d.ts +7 -0
- package/dist/selection/selection-description.js +18 -0
- package/dist/selection/selection-restore.d.ts +46 -0
- package/dist/selection/selection-restore.js +66 -0
- package/dist/selection/selection-state.svelte.d.ts +72 -0
- package/dist/selection/selection-state.svelte.js +247 -0
- package/dist/selection/shared-keydown.d.ts +61 -0
- package/dist/selection/shared-keydown.js +150 -0
- package/dist/selection/table-endpoint-snap.d.ts +55 -0
- package/dist/selection/table-endpoint-snap.js +143 -0
- package/dist/selection/table-rect-extend.d.ts +23 -0
- package/dist/selection/table-rect-extend.js +46 -0
- package/dist/selection/widget-range-paint.d.ts +12 -0
- package/dist/selection/widget-range-paint.js +44 -0
- package/dist/styles/editor-theme.css +151 -0
- package/dist/styles/editor.css +585 -0
- package/dist/testing/conformance-core.d.ts +45 -0
- package/dist/testing/conformance-core.js +105 -0
- package/dist/testing/container-conformance.d.ts +137 -0
- package/dist/testing/container-conformance.js +533 -0
- package/dist/testing/headless-actions.d.ts +37 -0
- package/dist/testing/headless-actions.js +118 -0
- package/dist/testing/inline-conformance.d.ts +50 -0
- package/dist/testing/inline-conformance.js +442 -0
- package/dist/testing/kind-conformance.d.ts +54 -0
- package/dist/testing/kind-conformance.js +325 -0
- package/dist/testing/mount-dom-stubs.d.ts +8 -0
- package/dist/testing/mount-dom-stubs.js +19 -0
- package/dist/testing/parse-convergence.d.ts +14 -0
- package/dist/testing/parse-convergence.js +81 -0
- package/dist/testing.d.ts +20 -0
- package/dist/testing.js +61 -0
- package/dist/tree-operations/blockquote.d.ts +18 -0
- package/dist/tree-operations/blockquote.js +59 -0
- package/dist/tree-operations/children.d.ts +17 -0
- package/dist/tree-operations/children.js +56 -0
- package/dist/tree-operations/cleanup.d.ts +10 -0
- package/dist/tree-operations/cleanup.js +25 -0
- package/dist/tree-operations/clone.d.ts +5 -0
- package/dist/tree-operations/clone.js +43 -0
- package/dist/tree-operations/container-lift.d.ts +9 -0
- package/dist/tree-operations/container-lift.js +29 -0
- package/dist/tree-operations/index.d.ts +16 -0
- package/dist/tree-operations/index.js +14 -0
- package/dist/tree-operations/list/empty-check.d.ts +7 -0
- package/dist/tree-operations/list/empty-check.js +19 -0
- package/dist/tree-operations/list/exit-replacement.d.ts +13 -0
- package/dist/tree-operations/list/exit-replacement.js +49 -0
- package/dist/tree-operations/list/item-partition.d.ts +13 -0
- package/dist/tree-operations/list/item-partition.js +33 -0
- package/dist/tree-operations/list/list-builders.d.ts +44 -0
- package/dist/tree-operations/list/list-builders.js +129 -0
- package/dist/tree-operations/list/ordered-markers.d.ts +36 -0
- package/dist/tree-operations/list/ordered-markers.js +114 -0
- package/dist/tree-operations/list/reconcile-task.d.ts +12 -0
- package/dist/tree-operations/list/reconcile-task.js +47 -0
- package/dist/tree-operations/list/sublist-separator.d.ts +13 -0
- package/dist/tree-operations/list/sublist-separator.js +34 -0
- package/dist/tree-operations/list/terminator.d.ts +17 -0
- package/dist/tree-operations/list/terminator.js +60 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +29 -0
- package/dist/tree-operations/list/unwrap-merge.js +202 -0
- package/dist/tree-operations/node-ops.d.ts +296 -0
- package/dist/tree-operations/node-ops.js +1428 -0
- package/dist/tree-operations/parse-block.d.ts +3 -0
- package/dist/tree-operations/parse-block.js +8 -0
- package/dist/tree-operations/paste/apply.d.ts +12 -0
- package/dist/tree-operations/paste/apply.js +75 -0
- package/dist/tree-operations/paste/body-write.d.ts +19 -0
- package/dist/tree-operations/paste/body-write.js +53 -0
- package/dist/tree-operations/paste/container-match.d.ts +32 -0
- package/dist/tree-operations/paste/container-match.js +238 -0
- package/dist/tree-operations/paste/container-paste.d.ts +10 -0
- package/dist/tree-operations/paste/container-paste.js +27 -0
- package/dist/tree-operations/paste/dispatch.d.ts +61 -0
- package/dist/tree-operations/paste/dispatch.js +138 -0
- package/dist/tree-operations/paste/find-enclosing-list.d.ts +8 -0
- package/dist/tree-operations/paste/find-enclosing-list.js +30 -0
- package/dist/tree-operations/paste/focus-target.d.ts +27 -0
- package/dist/tree-operations/paste/focus-target.js +40 -0
- package/dist/tree-operations/paste/hooks.d.ts +17 -0
- package/dist/tree-operations/paste/hooks.js +80 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +29 -0
- package/dist/tree-operations/paste/list-absorb.js +106 -0
- package/dist/tree-operations/paste/list-break-out.d.ts +42 -0
- package/dist/tree-operations/paste/list-break-out.js +136 -0
- package/dist/tree-operations/paste/parent-scope.d.ts +17 -0
- package/dist/tree-operations/paste/parent-scope.js +35 -0
- package/dist/tree-operations/paste/paste-deps.d.ts +20 -0
- package/dist/tree-operations/paste/paste-deps.js +6 -0
- package/dist/tree-operations/paste/paste-replacement.d.ts +8 -0
- package/dist/tree-operations/paste/paste-replacement.js +60 -0
- package/dist/tree-operations/paste/paste-transforms.d.ts +25 -0
- package/dist/tree-operations/paste/paste-transforms.js +72 -0
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +29 -0
- package/dist/tree-operations/paste/replace-block-at-parent.js +75 -0
- package/dist/tree-operations/paste/strategy.d.ts +9 -0
- package/dist/tree-operations/paste/strategy.js +20 -0
- package/dist/tree-operations/paste/table-slice.d.ts +10 -0
- package/dist/tree-operations/paste/table-slice.js +39 -0
- package/dist/tree-operations/paste-surfaces.d.ts +61 -0
- package/dist/tree-operations/paste-surfaces.js +15 -0
- package/dist/tree-operations/path-mutate.d.ts +12 -0
- package/dist/tree-operations/path-mutate.js +20 -0
- package/dist/tree-operations/reorder-unit.d.ts +17 -0
- package/dist/tree-operations/reorder-unit.js +37 -0
- package/dist/tree-operations/reorder.d.ts +13 -0
- package/dist/tree-operations/reorder.js +57 -0
- package/dist/tree-operations/sharing.d.ts +18 -0
- package/dist/tree-operations/sharing.js +14 -0
- package/dist/tree-operations/splice-many.d.ts +9 -0
- package/dist/tree-operations/splice-many.js +22 -0
- package/dist/tree-operations/structural-change.d.ts +65 -0
- package/dist/tree-operations/structural-change.js +117 -0
- package/dist/tree-operations/sub-table-copy.d.ts +6 -0
- package/dist/tree-operations/sub-table-copy.js +43 -0
- package/dist/tree-operations/table-mutations.d.ts +17 -0
- package/dist/tree-operations/table-mutations.js +101 -0
- package/dist/tree-operations/unshare.d.ts +101 -0
- package/dist/tree-operations/unshare.js +248 -0
- package/dist/undo/manager.d.ts +2 -0
- package/dist/undo/manager.js +50 -0
- package/dist/undo/types.d.ts +44 -0
- package/dist/undo/types.js +7 -0
- package/docs/guide/consumer-guide.md +1098 -0
- package/docs/guide/directives.md +223 -0
- package/docs/guide/plugin-api.md +329 -0
- package/docs/guide/plugin-guide/conspiracy.gif +0 -0
- package/docs/guide/plugin-guide/parrot-frames.md +209 -0
- package/docs/guide/plugin-guide/parrot.gif +0 -0
- package/docs/guide/plugin-guide.md +1693 -0
- package/docs/guide/plugin-testing.md +463 -0
- package/package.json +238 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keydown + compositionstart half of the cross-block dispatcher. See dispatch.ts for the
|
|
3
|
+
* composer that wires this together with the pointer half.
|
|
4
|
+
*/
|
|
5
|
+
import { CURSOR_START } from '../../block-component';
|
|
6
|
+
import { performCrossBlockDelete, performCrossBlockDeleteSync } from './ops';
|
|
7
|
+
import { isBlockNode } from '../../tree-operations/node-ops';
|
|
8
|
+
import { isReadingMode } from '../../presentation-mode';
|
|
9
|
+
import { eventToChord } from '../../schema/keybindings';
|
|
10
|
+
import { dispatchKeyCommand } from '../../schema/block-commands';
|
|
11
|
+
import { collapseCrossBlock, extendFocusToNextBlock, extendFocusToPreviousBlock, extendFocusToDocEdge, selectWholeDocument, scrollFocusBlockIntoView } from '../keyboard-extend';
|
|
12
|
+
import { pathsEqual } from '../path-math';
|
|
13
|
+
import { intraTableRectExtension } from '../table-rect-extend';
|
|
14
|
+
import { ambientSpanOf, placeCaretAfterAmbientSpan } from '../../ambient/ambient-dom';
|
|
15
|
+
import { asDomTextOffset } from '../../cursor/coordinate-spaces';
|
|
16
|
+
import { createRangeFromOffsets } from '../../cursor/content-offsets';
|
|
17
|
+
export function createCrossBlockKeydown(ctx, mutCtx) {
|
|
18
|
+
return {
|
|
19
|
+
handleKeyDown: (e) => handleKeyDown(ctx, mutCtx, e),
|
|
20
|
+
handleCompositionStart: () => handleCompositionStart(ctx, mutCtx)
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
// ── Keydown ────────────────────────────────────────────────────────────────
|
|
24
|
+
async function handleKeyDown(ctx, mutCtx, e) {
|
|
25
|
+
const { selection } = ctx;
|
|
26
|
+
// Before the dispatch, not after: every branch below can consume the key and return, and the
|
|
27
|
+
// collapse/extend arms run no commit, so a reset deferred to the shared prelude never fires.
|
|
28
|
+
// The dispatcher holds a range, not a caret, so it supplies no measurement; a collapse lands one.
|
|
29
|
+
ctx.stickyColumn.noteKey(e);
|
|
30
|
+
ctx.edgeAffinity.note(e);
|
|
31
|
+
// Mode-independent: the doc-edge extend behaves identically from a caret and an active range,
|
|
32
|
+
// so it dispatches once, ahead of the mode split.
|
|
33
|
+
if ((e.ctrlKey || e.metaKey) && e.shiftKey && (e.key === 'End' || e.key === 'Home')) {
|
|
34
|
+
return handleDocEdgeExtend(ctx, e, e.key === 'End' ? 'end' : 'start');
|
|
35
|
+
}
|
|
36
|
+
if (selection.isCrossBlock) {
|
|
37
|
+
const handled = await handleCrossBlockActive(ctx, mutCtx, e);
|
|
38
|
+
if (handled)
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
return handleCrossBlockEntry(ctx, e);
|
|
42
|
+
}
|
|
43
|
+
/** Keystroke dispatch while cross-block mode is already active. */
|
|
44
|
+
async function handleCrossBlockActive(ctx, mutCtx, e) {
|
|
45
|
+
const el = ctx.getEl();
|
|
46
|
+
if (!el)
|
|
47
|
+
return false;
|
|
48
|
+
const { selection, getDoc, getBlockElByPath } = ctx;
|
|
49
|
+
const myPath = ctx.getMyPath();
|
|
50
|
+
const doc = getDoc();
|
|
51
|
+
// Ctrl+C / Ctrl+X intentionally pass through: the copy/cut event writes synchronously via
|
|
52
|
+
// e.clipboardData.setData, since Tauri's wry webview refuses navigator.clipboard.writeText.
|
|
53
|
+
// Without a caret at the endpoint Chromium retargets to <body>, caught by editor-root-clipboard.
|
|
54
|
+
// Extend/collapse/copy stay live in reading mode; these two branches delete.
|
|
55
|
+
if (e.key === 'Backspace' || e.key === 'Delete') {
|
|
56
|
+
e.preventDefault();
|
|
57
|
+
if (isReadingMode(ctx.getPresentationMode))
|
|
58
|
+
return true;
|
|
59
|
+
await performCrossBlockDelete(mutCtx, { tableCoverageDelete: true });
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
// Ahead of the command candidates, because a rewrite is NOT a type-replace: deleting the range
|
|
63
|
+
// and dispatching at the collapsed caret leaves empty pairs where the document stood. The
|
|
64
|
+
// seam decides which of these ids has a cross-block arm and which declines.
|
|
65
|
+
if (isClaimedRewriteChord(e)) {
|
|
66
|
+
e.preventDefault();
|
|
67
|
+
if (isReadingMode(ctx.getPresentationMode))
|
|
68
|
+
return true;
|
|
69
|
+
await dispatchOverRange(ctx, e, myPath);
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
if (isCommandCandidateKey(e)) {
|
|
73
|
+
e.preventDefault();
|
|
74
|
+
if (isReadingMode(ctx.getPresentationMode))
|
|
75
|
+
return true;
|
|
76
|
+
// Reveal at the delete's own caret, not the pre-delete start path: rangeDelete returns
|
|
77
|
+
// the authoritative post-delete position, and for a table endpoint that is the deep
|
|
78
|
+
// [table,row,col] cell whose runCommand exists (the wrapper path has none).
|
|
79
|
+
const fallbackPath = (selection.start ?? selection.focus)?.path ?? myPath;
|
|
80
|
+
const collapsedCaret = await performCrossBlockDelete(mutCtx);
|
|
81
|
+
await ctx.afterReactivity();
|
|
82
|
+
const postDeleteDoc = getDoc();
|
|
83
|
+
const revealTarget = collapsedCaret?.path ?? fallbackPath;
|
|
84
|
+
const target = await ctx.revealPath(revealTarget);
|
|
85
|
+
const chord = eventToChord(e);
|
|
86
|
+
if (target?.runCommand && chord) {
|
|
87
|
+
dispatchKeyCommand(chord, { kind: kindOfPath(revealTarget, postDeleteDoc), runCommand: target.runCommand }, {
|
|
88
|
+
history: ctx.history,
|
|
89
|
+
pluginEditor: ctx.pluginEditor,
|
|
90
|
+
activation: ctx.activePlugins,
|
|
91
|
+
getPresentationMode: ctx.getPresentationMode,
|
|
92
|
+
isCrossBlockRange: () => selection.isCrossBlock,
|
|
93
|
+
crossBlockCommands: ctx.crossBlockCommands
|
|
94
|
+
}, ctx.getKeybindingOverrides(), ctx.onCommandError);
|
|
95
|
+
}
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
// Intra-table rectangle: Shift+Arrow grows the rect cell-by-cell and exits at the vertical
|
|
99
|
+
// edge. Must precede the generic extend, which snaps the focus back to cellIdx 0.
|
|
100
|
+
if (e.shiftKey &&
|
|
101
|
+
(e.key === 'ArrowUp' ||
|
|
102
|
+
e.key === 'ArrowDown' ||
|
|
103
|
+
e.key === 'ArrowLeft' ||
|
|
104
|
+
e.key === 'ArrowRight')) {
|
|
105
|
+
const ext = intraTableRectExtension(doc, selection.anchor, selection.focus, e.key);
|
|
106
|
+
if (ext) {
|
|
107
|
+
e.preventDefault();
|
|
108
|
+
if (ext.kind === 'cell') {
|
|
109
|
+
selection.extendFocus({ path: selection.focus.path.slice(), offset: ext.offset });
|
|
110
|
+
}
|
|
111
|
+
else if (ext.direction === 'forward') {
|
|
112
|
+
extendFocusToNextBlock(selection, doc, el, ext.fromCellPath, 'vertical');
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
extendFocusToPreviousBlock(selection, doc, el, ext.fromCellPath, 'start');
|
|
116
|
+
}
|
|
117
|
+
await revealActiveEndpoint(ctx);
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (e.shiftKey && (e.key === 'ArrowDown' || e.key === 'ArrowRight')) {
|
|
122
|
+
e.preventDefault();
|
|
123
|
+
const focusPath = selection.focus?.path ?? myPath;
|
|
124
|
+
const focusEl = getBlockElByPath(focusPath) ?? el;
|
|
125
|
+
const axis = e.key === 'ArrowDown' ? 'vertical' : 'horizontal';
|
|
126
|
+
extendFocusToNextBlock(selection, doc, focusEl, focusPath, axis, getBlockElByPath);
|
|
127
|
+
await revealActiveEndpoint(ctx);
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
if (e.shiftKey && (e.key === 'ArrowUp' || e.key === 'ArrowLeft')) {
|
|
131
|
+
e.preventDefault();
|
|
132
|
+
const focusPath = selection.focus?.path ?? myPath;
|
|
133
|
+
const focusEl = getBlockElByPath(focusPath) ?? el;
|
|
134
|
+
const side = e.key === 'ArrowUp' ? 'start' : 'end';
|
|
135
|
+
extendFocusToPreviousBlock(selection, doc, focusEl, focusPath, side, getBlockElByPath);
|
|
136
|
+
await revealActiveEndpoint(ctx);
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
if (e.key === 'Escape' && !e.shiftKey && !e.ctrlKey && !e.metaKey && !e.altKey) {
|
|
140
|
+
e.preventDefault();
|
|
141
|
+
await collapseTo(ctx, 'start', doc, getBlockElByPath);
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
if (!e.shiftKey && (e.key === 'ArrowLeft' || e.key === 'ArrowUp')) {
|
|
145
|
+
e.preventDefault();
|
|
146
|
+
await collapseTo(ctx, 'start', doc, getBlockElByPath);
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
if (!e.shiftKey && (e.key === 'ArrowRight' || e.key === 'ArrowDown')) {
|
|
150
|
+
e.preventDefault();
|
|
151
|
+
await collapseTo(ctx, 'end', doc, getBlockElByPath);
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
if ((e.ctrlKey || e.metaKey) && e.key === 'a' && !e.shiftKey) {
|
|
155
|
+
e.preventDefault();
|
|
156
|
+
selectWholeDocument(selection, doc, getBlockElByPath);
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
/** The first-press arm: chords that start a selection from a collapsed caret. */
|
|
162
|
+
async function handleCrossBlockEntry(ctx, e) {
|
|
163
|
+
const el = ctx.getEl();
|
|
164
|
+
if (!el)
|
|
165
|
+
return false;
|
|
166
|
+
const { selection, getDoc } = ctx;
|
|
167
|
+
if ((e.ctrlKey || e.metaKey) && e.key === 'a' && !e.shiftKey) {
|
|
168
|
+
e.preventDefault();
|
|
169
|
+
selection.incrementSelectAllCount();
|
|
170
|
+
if (selection.selectAllCount === 1) {
|
|
171
|
+
selectFirstPressContent(el);
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
selectWholeDocument(selection, getDoc(), ctx.getBlockElByPath);
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
// ── Keydown Helpers ───────────────────────────────────────────────────────
|
|
180
|
+
/**
|
|
181
|
+
* A swallowed rewrite chord, handed to the seam with the range still painted. It resolves
|
|
182
|
+
* against the kind of the surface that took the keystroke, exactly as a single-block press
|
|
183
|
+
* would, so a consumer rebind reaches the same arm the default chord does.
|
|
184
|
+
*/
|
|
185
|
+
async function dispatchOverRange(ctx, e, path) {
|
|
186
|
+
const chord = eventToChord(e);
|
|
187
|
+
if (!chord)
|
|
188
|
+
return;
|
|
189
|
+
const surface = await ctx.revealPath(path);
|
|
190
|
+
dispatchKeyCommand(chord,
|
|
191
|
+
// The block may host no command surface of its own; the range's arm is reached at the
|
|
192
|
+
// seam, ahead of any per-block `runCommand`, so an absent one is not a decline.
|
|
193
|
+
{
|
|
194
|
+
kind: kindOfPath(path, ctx.getDoc()),
|
|
195
|
+
runCommand: (id, arg) => surface?.runCommand?.(id, arg) ?? false
|
|
196
|
+
}, {
|
|
197
|
+
history: ctx.history,
|
|
198
|
+
pluginEditor: ctx.pluginEditor,
|
|
199
|
+
activation: ctx.activePlugins,
|
|
200
|
+
getPresentationMode: ctx.getPresentationMode,
|
|
201
|
+
isCrossBlockRange: () => ctx.selection.isCrossBlock,
|
|
202
|
+
crossBlockCommands: ctx.crossBlockCommands
|
|
203
|
+
}, ctx.getKeybindingOverrides(), ctx.onCommandError);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Keys owned by the block-level handler at the caret, which must run at a collapsed caret
|
|
207
|
+
* rather than over stale block indices. After the range delete they dispatch through the
|
|
208
|
+
* merged block's command registry.
|
|
209
|
+
*/
|
|
210
|
+
function isCommandCandidateKey(e) {
|
|
211
|
+
if (e.key === 'Enter' && !e.ctrlKey && !e.metaKey && !e.altKey)
|
|
212
|
+
return true;
|
|
213
|
+
if (e.key === 'Tab' && !e.ctrlKey && !e.metaKey && !e.altKey)
|
|
214
|
+
return true;
|
|
215
|
+
if ((e.ctrlKey || e.metaKey) && !e.shiftKey && !e.altKey && /^[0-6]$/.test(e.key))
|
|
216
|
+
return true;
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* The keystroke half of the cross-block rewrite claim: swallow the default chords before the
|
|
221
|
+
* browser's own bold (or Ctrl+K kill-line) runs and before the delete-and-redispatch arm sees
|
|
222
|
+
* them, then hand the chord to the seam, which routes a format id to the cross-block arm and
|
|
223
|
+
* declines the rest (`CROSS_BLOCK_RANGE_COMMAND_IDS` / `RANGE_DECLINED_COMMAND_IDS` in
|
|
224
|
+
* `schema/commands`). Mod+Shift+X takes an arm of its own: unshifted Mod+X is the block cut.
|
|
225
|
+
*/
|
|
226
|
+
function isClaimedRewriteChord(e) {
|
|
227
|
+
if (!(e.ctrlKey || e.metaKey) || e.altKey)
|
|
228
|
+
return false;
|
|
229
|
+
// Literal comparisons, not a character class: the G4.29 manifest scan reads the keys a file
|
|
230
|
+
// compares, and a regex would hide this file's claim on Mod+B/I/E/K from it.
|
|
231
|
+
if (e.shiftKey)
|
|
232
|
+
return e.key === 'x' || e.key === 'X';
|
|
233
|
+
return (e.key === 'b' ||
|
|
234
|
+
e.key === 'B' ||
|
|
235
|
+
e.key === 'i' ||
|
|
236
|
+
e.key === 'I' ||
|
|
237
|
+
e.key === 'e' ||
|
|
238
|
+
e.key === 'E' ||
|
|
239
|
+
e.key === 'k' ||
|
|
240
|
+
e.key === 'K');
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Collapse, and correct the side the arrow already classified: the key is directional but the
|
|
244
|
+
* caret took no step — it jumped to the range's own edge, where the answer is construct-relative
|
|
245
|
+
* (live-mode.md § 4.2). Without this the seat reads the arrow's side and the first byte joins
|
|
246
|
+
* the construct the collapse landed in front of.
|
|
247
|
+
*/
|
|
248
|
+
async function collapseTo(ctx, to, doc, getBlockElByPath) {
|
|
249
|
+
ctx.edgeAffinity.noteExtreme();
|
|
250
|
+
await collapseCrossBlock(ctx.selection, to, doc, getBlockElByPath, ctx.revealPath);
|
|
251
|
+
}
|
|
252
|
+
/** Deepest resolvable node's kind; an empty/unresolvable path reads the document root's own kind. */
|
|
253
|
+
function kindOfPath(path, doc) {
|
|
254
|
+
let node = doc;
|
|
255
|
+
for (const i of path) {
|
|
256
|
+
const child = node.children?.[i];
|
|
257
|
+
if (!child)
|
|
258
|
+
break;
|
|
259
|
+
node = child;
|
|
260
|
+
}
|
|
261
|
+
// The root's 'document' kind is outside AnyBlockKind; dispatch treats it as an unknown kind.
|
|
262
|
+
return isBlockNode(node) ? node.kind : node.kind;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Select the block's content for the first Ctrl+A press. With an ambient marker (a list item's
|
|
266
|
+
* `- `), anchor after it so type-replace doesn't corrupt the contenteditable="false" island.
|
|
267
|
+
*/
|
|
268
|
+
function selectFirstPressContent(el) {
|
|
269
|
+
const ambient = ambientSpanOf(el);
|
|
270
|
+
const ambientLen = ambient?.textContent?.length ?? 0;
|
|
271
|
+
const textLen = el.textContent?.length ?? 0;
|
|
272
|
+
if (ambient && textLen > ambientLen) {
|
|
273
|
+
if (!placeCaretAfterAmbientSpan(el))
|
|
274
|
+
return;
|
|
275
|
+
// textLen counts the full textContent (marker included) — a DomTextOffset by construction.
|
|
276
|
+
const endRange = createRangeFromOffsets(el, asDomTextOffset(textLen), asDomTextOffset(textLen));
|
|
277
|
+
if (endRange) {
|
|
278
|
+
window.getSelection()?.extend(endRange.endContainer, endRange.endOffset);
|
|
279
|
+
}
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
const range = document.createRange();
|
|
283
|
+
range.selectNodeContents(el);
|
|
284
|
+
const sel = window.getSelection();
|
|
285
|
+
sel?.removeAllRanges();
|
|
286
|
+
sel?.addRange(range);
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Bring the active (focus-side) endpoint into view after an extend. A cell-coordinate focus
|
|
290
|
+
* addresses the table block by cell index, so reveal the deep cell path to mount the off-window
|
|
291
|
+
* row, then park the dispatch caret there to keep the next keystroke routed. Start, not end: an
|
|
292
|
+
* end caret in the last cell makes ArrowRight read as an exit-the-table move. `parkCaret`, never
|
|
293
|
+
* `focus`: this landing runs WHILE an extend grows, and `focus` would end the range (G2.12).
|
|
294
|
+
*/
|
|
295
|
+
async function revealActiveEndpoint(ctx) {
|
|
296
|
+
const focus = ctx.selection.focus;
|
|
297
|
+
const landing = focus && ctx.selection.cellLandingFor(focus);
|
|
298
|
+
// A landing that deepened the path is a cell; anything else lands as itself.
|
|
299
|
+
if (focus && landing && !pathsEqual(landing.path, focus.path)) {
|
|
300
|
+
const cellRef = await ctx.revealPath(landing.path);
|
|
301
|
+
// A null ref means the cell never mounted; fall through to scroll the (mounted) table
|
|
302
|
+
// so a failed reveal still keeps the endpoint in view.
|
|
303
|
+
if (cellRef) {
|
|
304
|
+
cellRef.parkCaret?.(CURSOR_START);
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
// An off-window prose endpoint can't be scrolled to while unmounted. Reveal it and park the
|
|
309
|
+
// dispatch caret in it, the same reveal-then-pin pattern as the table-cell case above.
|
|
310
|
+
if (focus && !ctx.getBlockElByPath(focus.path)) {
|
|
311
|
+
const ref = await ctx.revealPath(focus.path);
|
|
312
|
+
if (ref) {
|
|
313
|
+
ref.parkCaret?.(focus.offset);
|
|
314
|
+
scrollFocusBlockIntoView(ctx.selection, ctx.getBlockElByPath);
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
scrollFocusBlockIntoView(ctx.selection, ctx.getBlockElByPath);
|
|
319
|
+
}
|
|
320
|
+
async function handleDocEdgeExtend(ctx, e, direction) {
|
|
321
|
+
const el = ctx.getEl();
|
|
322
|
+
if (!el)
|
|
323
|
+
return false;
|
|
324
|
+
e.preventDefault();
|
|
325
|
+
extendFocusToDocEdge(ctx.selection, ctx.getDoc(), el, ctx.getMyPath(), direction, ctx.getBlockElByPath);
|
|
326
|
+
await revealActiveEndpoint(ctx);
|
|
327
|
+
return true;
|
|
328
|
+
}
|
|
329
|
+
// ── CompositionStart ───────────────────────────────────────────────────────
|
|
330
|
+
function handleCompositionStart(ctx, mutCtx) {
|
|
331
|
+
ctx.stickyColumn.reset();
|
|
332
|
+
ctx.edgeAffinity.reset();
|
|
333
|
+
if (!ctx.selection.isCrossBlock)
|
|
334
|
+
return false;
|
|
335
|
+
if (isReadingMode(ctx.getPresentationMode))
|
|
336
|
+
return false;
|
|
337
|
+
performCrossBlockDeleteSync(mutCtx);
|
|
338
|
+
return true;
|
|
339
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-block mutation: delete a range, push undo, collapse, restore the caret. Commit
|
|
3
|
+
* routing: pure top-level (both endpoints at doc.children, no cross-path table) commits
|
|
4
|
+
* structurally; anything nested or with a cross-path table endpoint needs one scope per
|
|
5
|
+
* spliced container, since the whole-row snap splices `table.children`. Intra-table
|
|
6
|
+
* full-table/row/column coverage routes to `range-delete-table-coverage`.
|
|
7
|
+
*/
|
|
8
|
+
import type { UndoEntryMode } from '../../action-contracts';
|
|
9
|
+
import type { SelectionState } from '../selection-state.svelte';
|
|
10
|
+
import type { GrammarView } from '../../schema/block-openers';
|
|
11
|
+
import type { LinkReferenceResolverRef, PresentationModeGetter } from '../../editor-keys';
|
|
12
|
+
import { type SelectionPoint } from '../primitives';
|
|
13
|
+
import type { Document } from '../../core/nodes';
|
|
14
|
+
import type { BlockComponent } from '../../block-component';
|
|
15
|
+
import type { CommitController } from '../../action-contracts';
|
|
16
|
+
export interface CrossBlockMutationContext {
|
|
17
|
+
selection: SelectionState;
|
|
18
|
+
getDoc: () => Document;
|
|
19
|
+
getBlockElByPath: (path: number[]) => HTMLElement | null;
|
|
20
|
+
revealPath: (path: number[]) => Promise<BlockComponent | null>;
|
|
21
|
+
controller: CommitController;
|
|
22
|
+
/** Push an undo snapshot immediately, bypassing the debounce. */
|
|
23
|
+
pushUndoSnapshot: () => void;
|
|
24
|
+
/** Block grammar for the delete's ancestry rebuild. Required-nullable so a new construction
|
|
25
|
+
* site can't silently skip the thread; `undefined` = global. */
|
|
26
|
+
grammar: GrammarView | undefined;
|
|
27
|
+
/** The effective mode the delete's join seam answers to (live-mode.md § 4.5). Required-nullable for the
|
|
28
|
+
* same reason as `grammar`; `undefined` reads as not-live, so the join stays byte-literal. */
|
|
29
|
+
getPresentationMode: PresentationModeGetter | undefined;
|
|
30
|
+
/** The instance's link-reference resolver, so the seam parses the reference forms the render
|
|
31
|
+
* path drew. Required-nullable beside the mode. */
|
|
32
|
+
linkRef: LinkReferenceResolverRef | undefined;
|
|
33
|
+
}
|
|
34
|
+
/** Options for {@link performCrossBlockDelete}. Absent = plain delete, own snapshot and caret. */
|
|
35
|
+
export interface CrossBlockDeleteOptions {
|
|
36
|
+
/** `'join'`: the caller already pushed a snapshot covering this delete. */
|
|
37
|
+
undoEntry?: UndoEntryMode;
|
|
38
|
+
/** The caller installs a final caret after further mutations. */
|
|
39
|
+
skipCaretRestore?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Route intra-table full/row/column coverage to a structural delete. Backspace opts in;
|
|
42
|
+
* type-replace/paste/cut stay on cell-clear so the follow-up insert lands in the anchor cell.
|
|
43
|
+
*/
|
|
44
|
+
tableCoverageDelete?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* rangeDelete the current cross-block selection, commit, collapse, restore the caret.
|
|
48
|
+
* Returns the collapsed caret, or null when the selection wasn't cross-block.
|
|
49
|
+
*/
|
|
50
|
+
export declare function performCrossBlockDelete(ctx: CrossBlockMutationContext, options?: CrossBlockDeleteOptions): Promise<SelectionPoint | null>;
|
|
51
|
+
/**
|
|
52
|
+
* compositionstart variant: the IME swallows the composition if the handler yields, so this
|
|
53
|
+
* must not await. The commit ceremony is synchronous up to its post-publish `await tick()`,
|
|
54
|
+
* so firing without awaiting keeps the whole delete inside the no-await window.
|
|
55
|
+
*/
|
|
56
|
+
export declare function performCrossBlockDeleteSync(ctx: CrossBlockMutationContext): void;
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-block mutation: delete a range, push undo, collapse, restore the caret. Commit
|
|
3
|
+
* routing: pure top-level (both endpoints at doc.children, no cross-path table) commits
|
|
4
|
+
* structurally; anything nested or with a cross-path table endpoint needs one scope per
|
|
5
|
+
* spliced container, since the whole-row snap splices `table.children`. Intra-table
|
|
6
|
+
* full-table/row/column coverage routes to `range-delete-table-coverage`.
|
|
7
|
+
*/
|
|
8
|
+
import { deleteSnapshot } from '../primitives';
|
|
9
|
+
import { focusCollapsedCaret } from '../native-bridge';
|
|
10
|
+
import { rangeDelete } from '../range-delete';
|
|
11
|
+
import { trackChildIds } from '../../tree-operations/structural-change';
|
|
12
|
+
import { isBlockNode, nodeAt } from '../../tree-operations/node-ops';
|
|
13
|
+
import { pathsEqual } from '../path-math';
|
|
14
|
+
import { docPathFrom } from '../../cursor/coordinate-spaces';
|
|
15
|
+
import { getStateForNode } from '../../reactivity/state-registry';
|
|
16
|
+
import { maybeCommitTableCoverageDelete } from '../range-delete-table-coverage';
|
|
17
|
+
/**
|
|
18
|
+
* rangeDelete the current cross-block selection, commit, collapse, restore the caret.
|
|
19
|
+
* Returns the collapsed caret, or null when the selection wasn't cross-block.
|
|
20
|
+
*/
|
|
21
|
+
export async function performCrossBlockDelete(ctx, options) {
|
|
22
|
+
// A re-entrant delete (auto-repeat, paste, composition) parked on the reveal await would
|
|
23
|
+
// resolve the SAME endpoints and delete against the mutated tree. Serialize per selection;
|
|
24
|
+
// with nothing in flight this adds no await, preserving the sync variant's no-yield window.
|
|
25
|
+
let inFlight;
|
|
26
|
+
while ((inFlight = inFlightDeletes.get(ctx.selection))) {
|
|
27
|
+
await inFlight.catch(() => { });
|
|
28
|
+
}
|
|
29
|
+
const run = runCrossBlockDelete(ctx, options);
|
|
30
|
+
inFlightDeletes.set(ctx.selection, run);
|
|
31
|
+
try {
|
|
32
|
+
return await run;
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
if (inFlightDeletes.get(ctx.selection) === run)
|
|
36
|
+
inFlightDeletes.delete(ctx.selection);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const inFlightDeletes = new WeakMap();
|
|
40
|
+
async function runCrossBlockDelete(ctx, options) {
|
|
41
|
+
if (!ctx.selection.isCrossBlock)
|
|
42
|
+
return null;
|
|
43
|
+
const { start, end } = ctx.selection;
|
|
44
|
+
if (!start || !end)
|
|
45
|
+
return null;
|
|
46
|
+
const doc = ctx.getDoc();
|
|
47
|
+
// A cross-path table endpoint leaves the pure path: the whole-row snap splices
|
|
48
|
+
// table.children, which only the multi-scope commit syncs. Intra-table clears only raws.
|
|
49
|
+
const samePath = pathsEqual(start.path, end.path);
|
|
50
|
+
const isPureTopLevel = start.path.length === 1 &&
|
|
51
|
+
end.path.length === 1 &&
|
|
52
|
+
(samePath || (!isTableAt(doc, start.path) && !isTableAt(doc, end.path)));
|
|
53
|
+
const caretRestore = !options?.skipCaretRestore
|
|
54
|
+
? (caret) => {
|
|
55
|
+
if (caret)
|
|
56
|
+
focusCollapsedCaret(ctx.getBlockElByPath, caret);
|
|
57
|
+
}
|
|
58
|
+
: undefined;
|
|
59
|
+
// Start-wins collapse: the merged block lands at start.path[0] and stays put. Mount it now,
|
|
60
|
+
// while caretRestore (a sync post-tick landing) still needs a live element. Gated on
|
|
61
|
+
// caretRestore so the IME path never yields before its synchronous commit.
|
|
62
|
+
if (caretRestore) {
|
|
63
|
+
await ctx.revealPath(start.path);
|
|
64
|
+
}
|
|
65
|
+
if (options?.tableCoverageDelete && isPureTopLevel && samePath) {
|
|
66
|
+
const block = nodeAt(doc, start.path);
|
|
67
|
+
if (block && isBlockNode(block) && block.kind === 'table') {
|
|
68
|
+
const handled = await maybeCommitTableCoverageDelete(ctx, block, start, end, options, caretRestore);
|
|
69
|
+
if (handled)
|
|
70
|
+
return handled.caret;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (isPureTopLevel) {
|
|
74
|
+
return await commitPureTopLevelDelete(ctx, start, end, options, caretRestore);
|
|
75
|
+
}
|
|
76
|
+
return await commitCrossContainerDelete(ctx, doc, start, end, options, caretRestore);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* compositionstart variant: the IME swallows the composition if the handler yields, so this
|
|
80
|
+
* must not await. The commit ceremony is synchronous up to its post-publish `await tick()`,
|
|
81
|
+
* so firing without awaiting keeps the whole delete inside the no-await window.
|
|
82
|
+
*/
|
|
83
|
+
export function performCrossBlockDeleteSync(ctx) {
|
|
84
|
+
void performCrossBlockDelete(ctx, { skipCaretRestore: true });
|
|
85
|
+
}
|
|
86
|
+
// ── Internal ───────────────────────────────────────────────────────────────
|
|
87
|
+
function isTableAt(doc, path) {
|
|
88
|
+
const node = nodeAt(doc, path);
|
|
89
|
+
return node !== null && isBlockNode(node) && node.kind === 'table';
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Pure top-level commit path. Both paths have length 1, so rangeDelete never reaches into a
|
|
93
|
+
* nested container and the proxy-doc (children copy) is a safe mutation target.
|
|
94
|
+
*/
|
|
95
|
+
async function commitPureTopLevelDelete(ctx, start, end, options, caretRestore) {
|
|
96
|
+
let collapsedCaret = null;
|
|
97
|
+
const snapshot = deleteSnapshot(options, start.path, start.offset);
|
|
98
|
+
const doc = ctx.getDoc();
|
|
99
|
+
await ctx.controller.commitStructural({
|
|
100
|
+
snapshot,
|
|
101
|
+
mutate: (topLevelChildren) => {
|
|
102
|
+
// Prefix stays inert; the suffix rides the live document as accessors, so the
|
|
103
|
+
// tail settle can materialize the folded trailing line.
|
|
104
|
+
const proxyDoc = {
|
|
105
|
+
kind: 'document',
|
|
106
|
+
prefix: '',
|
|
107
|
+
children: topLevelChildren,
|
|
108
|
+
get suffix() {
|
|
109
|
+
return doc.suffix;
|
|
110
|
+
},
|
|
111
|
+
set suffix(value) {
|
|
112
|
+
doc.suffix = value;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
const ledger = trackChildIds(proxyDoc);
|
|
116
|
+
const result = rangeDelete(proxyDoc, start, end, ctx.controller.sharing, ctx.grammar, ctx.getPresentationMode?.(), ctx.linkRef);
|
|
117
|
+
collapsedCaret = result.collapsedCaret;
|
|
118
|
+
ctx.selection.collapse();
|
|
119
|
+
return ledger.read();
|
|
120
|
+
},
|
|
121
|
+
op: { kind: 'delete', detail: { crossBlock: true }, eventPath: docPathFrom([start.path[0]]) },
|
|
122
|
+
afterTick: caretRestore ? () => caretRestore(collapsedCaret) : undefined
|
|
123
|
+
});
|
|
124
|
+
return collapsedCaret;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Cross-container commit path: one rangeDelete on the live doc inside a commitMultiScope
|
|
128
|
+
* whose scope list covers every container whose children array was spliced.
|
|
129
|
+
*/
|
|
130
|
+
async function commitCrossContainerDelete(ctx, doc, start, end, options, caretRestore) {
|
|
131
|
+
const touched = collectTouchedContainers(doc, start.path, end.path);
|
|
132
|
+
const scopes = [];
|
|
133
|
+
// Doc scope goes first when the LCA is doc-level, so commitMultiScope publishes
|
|
134
|
+
// doc.children / blockIds / blockRefs atomically with the container scopes.
|
|
135
|
+
if (start.path[0] !== end.path[0]) {
|
|
136
|
+
scopes.push(ctx.controller.getDocScope());
|
|
137
|
+
}
|
|
138
|
+
for (const t of touched) {
|
|
139
|
+
scopes.push({ node: t.node, state: t.state, path: t.path });
|
|
140
|
+
}
|
|
141
|
+
let collapsedCaret = null;
|
|
142
|
+
await ctx.controller.commitMultiScope({
|
|
143
|
+
scopes,
|
|
144
|
+
// The selection start survives the delete (start-wins collapse), so its deep path is a
|
|
145
|
+
// resolving restore coordinate.
|
|
146
|
+
snapshot: deleteSnapshot(options, start.path, start.offset),
|
|
147
|
+
mutate: (scopeViews) => {
|
|
148
|
+
const sharing = scopeViews[0].sharing;
|
|
149
|
+
// Opened BEFORE the mutation: paths go stale as rangeDelete splices, while the owned
|
|
150
|
+
// scope nodes stay valid because splices happen in place.
|
|
151
|
+
const ledgers = scopeViews.map((v) => trackChildIds(v.node));
|
|
152
|
+
const result = rangeDelete(doc, start, end, sharing, ctx.grammar, ctx.getPresentationMode?.(), ctx.linkRef);
|
|
153
|
+
collapsedCaret = result.collapsedCaret;
|
|
154
|
+
ctx.selection.collapse();
|
|
155
|
+
// An endpoint-table scope takes its descriptor from the row splice the table branch
|
|
156
|
+
// actually performed, matched on the owned node, never from re-derived snap math.
|
|
157
|
+
const rowSplices = result.tableRowSplices ?? [];
|
|
158
|
+
return ledgers.map((ledger, i) => {
|
|
159
|
+
const rowSplice = rowSplices.find((s) => s.table === scopeViews[i].node);
|
|
160
|
+
const change = rowSplice
|
|
161
|
+
? { op: 'delete', at: rowSplice.at, count: rowSplice.count }
|
|
162
|
+
: ledger.read();
|
|
163
|
+
ledger.release();
|
|
164
|
+
return change;
|
|
165
|
+
});
|
|
166
|
+
},
|
|
167
|
+
op: { kind: 'delete', detail: { crossBlock: true }, eventPath: docPathFrom([start.path[0]]) },
|
|
168
|
+
afterTick: caretRestore ? () => caretRestore(collapsedCaret) : undefined
|
|
169
|
+
});
|
|
170
|
+
return collapsedCaret;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Every mounted container on either endpoint path whose children array gets spliced: strict
|
|
174
|
+
* ancestors, plus a table endpoint itself (the whole-row snap splices its children). Document
|
|
175
|
+
* root excluded; callers add it via `getDocScope()`. Outermost-first, de-duplicated.
|
|
176
|
+
*/
|
|
177
|
+
function collectTouchedContainers(doc, startPath, endPath) {
|
|
178
|
+
const touched = [];
|
|
179
|
+
const seen = new Set();
|
|
180
|
+
function visit(leafPath) {
|
|
181
|
+
for (let depth = 1; depth <= leafPath.length; depth++) {
|
|
182
|
+
const ancestorPath = leafPath.slice(0, depth);
|
|
183
|
+
const node = nodeAt(doc, ancestorPath);
|
|
184
|
+
if (!node || !isBlockNode(node) || !node.children)
|
|
185
|
+
continue;
|
|
186
|
+
if (depth === leafPath.length && node.kind !== 'table')
|
|
187
|
+
continue;
|
|
188
|
+
const key = ancestorPath.join('.');
|
|
189
|
+
if (seen.has(key))
|
|
190
|
+
continue;
|
|
191
|
+
seen.add(key);
|
|
192
|
+
const state = getStateForNode(node);
|
|
193
|
+
if (!state)
|
|
194
|
+
continue;
|
|
195
|
+
touched.push({ path: ancestorPath, node, state });
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
visit(startPath);
|
|
199
|
+
visit(endPath);
|
|
200
|
+
touched.sort((a, b) => {
|
|
201
|
+
if (a.path.length !== b.path.length)
|
|
202
|
+
return a.path.length - b.path.length;
|
|
203
|
+
for (let i = 0; i < a.path.length; i++) {
|
|
204
|
+
if (a.path[i] !== b.path[i])
|
|
205
|
+
return a.path[i] - b.path[i];
|
|
206
|
+
}
|
|
207
|
+
return 0;
|
|
208
|
+
});
|
|
209
|
+
return touched;
|
|
210
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-block paste: delete the active range inside a single undo snapshot, dispatch the paste
|
|
3
|
+
* onto the collapsed caret, then restore the caret via DOM, since the originating block may be
|
|
4
|
+
* gone and pendingCursor with it.
|
|
5
|
+
*/
|
|
6
|
+
import type { CrossBlockDispatchContext } from './dispatch';
|
|
7
|
+
import type { CrossBlockMutationContext } from './ops';
|
|
8
|
+
export declare function handleCrossBlockPaste(ctx: CrossBlockDispatchContext, mutCtx: CrossBlockMutationContext, e: ClipboardEvent | null, replacement?: string): Promise<boolean>;
|