@voithos-labs/aragonite 0.10.3 → 0.10.7
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 +2 -2
- package/dist/a11y-strings.d.ts +12 -5
- package/dist/a11y-strings.js +61 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +13 -20
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +619 -1089
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +36 -67
- package/dist/components/SelectionOverlay.svelte.d.ts +6 -4
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +103 -100
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +35 -28
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +58 -32
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +144 -202
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +46 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +99 -144
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +3 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +9 -4
- package/dist/components/blocks/text/click-snap-guard.js +16 -5
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +164 -180
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -105
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +243 -208
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +13 -30
- package/dist/components/drag-handle.js +25 -63
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -31
- package/dist/components/editor-root-listeners.js +49 -46
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +26 -30
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +380 -0
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +14 -0
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +55 -68
- package/dist/core/inline/inline-widgets.js +55 -58
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +33 -17
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -7
- package/dist/cursor/height-oracle.js +26 -75
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +16 -8
- package/dist/cursor/scrollport.js +28 -5
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -13
- package/dist/cursor/visual-lines.js +72 -28
- package/dist/cursor/widget-edge-snap.d.ts +23 -0
- package/dist/cursor/widget-edge-snap.js +39 -0
- package/dist/cursor/widget-offset.d.ts +111 -102
- package/dist/cursor/widget-offset.js +352 -177
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +31 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +33 -52
- package/dist/editor-actions/focus/focus-landing.d.ts +11 -5
- package/dist/editor-actions/focus/focus-landing.js +29 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +55 -76
- package/dist/editor-actions/plugin/container.js +105 -186
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +91 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +38 -8
- package/dist/plugin.js +102 -74
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +113 -85
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -75
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +63 -47
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +18 -7
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +143 -292
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +79 -81
- package/dist/schema/commands.js +156 -116
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +9 -11
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +73 -78
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +93 -152
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +61 -104
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +53 -146
- package/dist/selection/dead-space-caret.d.ts +20 -28
- package/dist/selection/dead-space-caret.js +79 -87
- package/dist/selection/drag-pointer.d.ts +22 -5
- package/dist/selection/drag-pointer.js +63 -31
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -39
- package/dist/selection/keyboard-extend.js +94 -116
- package/dist/selection/multi-click.d.ts +37 -0
- package/dist/selection/multi-click.js +197 -0
- package/dist/selection/native-bridge.d.ts +30 -37
- package/dist/selection/native-bridge.js +80 -100
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +31 -14
- package/dist/selection/path-lookup.js +110 -20
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +9 -0
- package/dist/selection/pointer-gesture.js +11 -0
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -33
- package/dist/selection/primitives.js +61 -53
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -19
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +52 -0
- package/dist/selection/selection-drop.js +317 -0
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +75 -53
- package/dist/styles/editor.css +248 -139
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +19 -0
- package/dist/tree-operations/paste/replacement-parse.js +24 -0
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +329 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +267 -183
- package/docs/guide/plugin-guide.md +341 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +17 -21
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/selection/double-click-trim.d.ts +0 -17
- package/dist/selection/double-click-trim.js +0 -57
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -29
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -75
|
@@ -1,33 +1,35 @@
|
|
|
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
|
-
*/
|
|
1
|
+
/** The keydown and compositionstart half of cross-block dispatch. */
|
|
5
2
|
import { CURSOR_START } from '../../block-component';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { docPathFrom } from '../../cursor/coordinate-spaces';
|
|
4
|
+
import { performCrossBlockDelete, performCrossBlockDeleteSync, rangeUndoStep } from './ops';
|
|
5
|
+
import { blockNodeAt, isBlockNode } from '../../tree-operations/node-primitives';
|
|
8
6
|
import { isReadingMode } from '../../presentation-mode';
|
|
9
|
-
import { eventToChord } from '../../schema/keybindings';
|
|
7
|
+
import { eventToChord, isSelectAllChord } from '../../schema/keybindings';
|
|
10
8
|
import { dispatchKeyCommand } from '../../schema/block-commands';
|
|
9
|
+
import { commandForKey } from '../../schema/commands';
|
|
11
10
|
import { collapseCrossBlock, extendFocusToNextBlock, extendFocusToPreviousBlock, extendFocusToDocEdge, selectWholeDocument, scrollFocusBlockIntoView } from '../keyboard-extend';
|
|
12
11
|
import { pathsEqual } from '../path-math';
|
|
13
12
|
import { intraTableRectExtension } from '../table-rect-extend';
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
13
|
+
import { cellPoint } from '../primitives';
|
|
14
|
+
import { applySurfaceContentRange } from '../native-bridge';
|
|
15
|
+
import { selectInBlock } from '../caret-doors';
|
|
17
16
|
export function createCrossBlockKeydown(ctx, mutCtx) {
|
|
18
17
|
return {
|
|
19
18
|
handleKeyDown: (e) => handleKeyDown(ctx, mutCtx, e),
|
|
20
19
|
handleCompositionStart: () => handleCompositionStart(ctx, mutCtx)
|
|
21
20
|
};
|
|
22
21
|
}
|
|
22
|
+
/** What a keypress resolves to at the block at `getMyPath`, or at global scope with none. */
|
|
23
|
+
export function commandAtBlock(e, ctx) {
|
|
24
|
+
const kind = blockNodeAt(ctx.getDoc(), ctx.getMyPath())?.kind ?? null;
|
|
25
|
+
return commandForKey(e, kind, ctx.commands);
|
|
26
|
+
}
|
|
23
27
|
// ── Keydown ────────────────────────────────────────────────────────────────
|
|
24
28
|
async function handleKeyDown(ctx, mutCtx, e) {
|
|
25
29
|
const { selection } = ctx;
|
|
26
|
-
// Before the dispatch,
|
|
27
|
-
//
|
|
28
|
-
|
|
29
|
-
ctx.stickyColumn.noteKey(e);
|
|
30
|
-
ctx.edgeAffinity.note(e);
|
|
30
|
+
// Before the dispatch, since every branch below can consume the key and the collapse and
|
|
31
|
+
// extend branches commit nothing that would update the caret memory.
|
|
32
|
+
ctx.caretMemory.noteKey(e, commandAtBlock(e, ctx));
|
|
31
33
|
// Mode-independent: the doc-edge extend behaves identically from a caret and an active range,
|
|
32
34
|
// so it dispatches once, ahead of the mode split.
|
|
33
35
|
if ((e.ctrlKey || e.metaKey) && e.shiftKey && (e.key === 'End' || e.key === 'Home')) {
|
|
@@ -48,51 +50,48 @@ async function handleCrossBlockActive(ctx, mutCtx, e) {
|
|
|
48
50
|
const { selection, getDoc, getBlockElByPath } = ctx;
|
|
49
51
|
const myPath = ctx.getMyPath();
|
|
50
52
|
const doc = getDoc();
|
|
51
|
-
// Ctrl+C
|
|
52
|
-
//
|
|
53
|
-
// Without a caret at the endpoint Chromium retargets to <body>, caught by editor-root-clipboard.
|
|
53
|
+
// Ctrl+C and Ctrl+X pass through to the copy and cut events, which write the clipboard
|
|
54
|
+
// synchronously; Tauri's webview refuses `navigator.clipboard.writeText`.
|
|
54
55
|
// Extend/collapse/copy stay live in reading mode; these two branches delete.
|
|
55
56
|
if (e.key === 'Backspace' || e.key === 'Delete') {
|
|
56
57
|
e.preventDefault();
|
|
57
|
-
if (isReadingMode(ctx.
|
|
58
|
+
if (isReadingMode(ctx.reading.mode))
|
|
58
59
|
return true;
|
|
59
|
-
await performCrossBlockDelete(mutCtx, { tableCoverageDelete: true });
|
|
60
|
+
await performCrossBlockDelete(mutCtx, e.key, { tableCoverageDelete: true });
|
|
60
61
|
return true;
|
|
61
62
|
}
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
// seam decides which of these ids has a cross-block arm and which declines.
|
|
63
|
+
// Before the command candidates: deleting the range and toggling a format at the collapsed
|
|
64
|
+
// caret would leave empty marker pairs where the text stood.
|
|
65
65
|
if (isClaimedRewriteChord(e)) {
|
|
66
66
|
e.preventDefault();
|
|
67
|
-
if (isReadingMode(ctx.
|
|
67
|
+
if (isReadingMode(ctx.reading.mode))
|
|
68
68
|
return true;
|
|
69
69
|
await dispatchOverRange(ctx, e, myPath);
|
|
70
70
|
return true;
|
|
71
71
|
}
|
|
72
72
|
if (isCommandCandidateKey(e)) {
|
|
73
73
|
e.preventDefault();
|
|
74
|
-
if (isReadingMode(ctx.
|
|
74
|
+
if (isReadingMode(ctx.reading.mode))
|
|
75
75
|
return true;
|
|
76
|
-
//
|
|
77
|
-
// the
|
|
78
|
-
// [table,row,col] cell whose runCommand exists (the wrapper path has none).
|
|
76
|
+
// Mount the caret `rangeDelete` returns, not the pre-delete start: for a table endpoint that
|
|
77
|
+
// is the [table, row, col] cell, which has a `runCommand` where the table's path has none.
|
|
79
78
|
const fallbackPath = (selection.start ?? selection.focus)?.path ?? myPath;
|
|
80
|
-
|
|
81
|
-
await
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}, ctx.
|
|
95
|
-
}
|
|
79
|
+
// One entry for the delete and the command, so one Ctrl+Z brings the range back.
|
|
80
|
+
await rangeUndoStep(mutCtx, async () => {
|
|
81
|
+
const collapsedCaret = await performCrossBlockDelete(mutCtx, 'keyless');
|
|
82
|
+
await ctx.afterReactivity();
|
|
83
|
+
const postDeleteDoc = getDoc();
|
|
84
|
+
const revealTarget = collapsedCaret?.path ?? fallbackPath;
|
|
85
|
+
const target = await ctx.revealPath(revealTarget);
|
|
86
|
+
const chord = eventToChord(e);
|
|
87
|
+
if (!target?.runCommand || !chord)
|
|
88
|
+
return;
|
|
89
|
+
dispatchKeyCommand(chord, {
|
|
90
|
+
kind: kindOfPath(revealTarget, postDeleteDoc),
|
|
91
|
+
runCommand: target.runCommand,
|
|
92
|
+
getPath: () => revealTarget
|
|
93
|
+
}, ctx.commands);
|
|
94
|
+
});
|
|
96
95
|
return true;
|
|
97
96
|
}
|
|
98
97
|
// Intra-table rectangle: Shift+Arrow grows the rect cell-by-cell and exits at the vertical
|
|
@@ -106,13 +105,13 @@ async function handleCrossBlockActive(ctx, mutCtx, e) {
|
|
|
106
105
|
if (ext) {
|
|
107
106
|
e.preventDefault();
|
|
108
107
|
if (ext.kind === 'cell') {
|
|
109
|
-
selection.extendFocus(
|
|
108
|
+
selection.extendFocus(cellPoint(selection.focus.path, ext.offset));
|
|
110
109
|
}
|
|
111
110
|
else if (ext.direction === 'forward') {
|
|
112
|
-
extendFocusToNextBlock(selection, doc, el, ext.fromCellPath, 'vertical');
|
|
111
|
+
extendFocusToNextBlock(selection, doc, ctx.reading.grammar, el, ext.fromCellPath, 'vertical');
|
|
113
112
|
}
|
|
114
113
|
else {
|
|
115
|
-
extendFocusToPreviousBlock(selection, doc, el, ext.fromCellPath, 'start');
|
|
114
|
+
extendFocusToPreviousBlock(selection, doc, ctx.reading.grammar, el, ext.fromCellPath, 'start');
|
|
116
115
|
}
|
|
117
116
|
await revealActiveEndpoint(ctx);
|
|
118
117
|
return true;
|
|
@@ -123,7 +122,7 @@ async function handleCrossBlockActive(ctx, mutCtx, e) {
|
|
|
123
122
|
const focusPath = selection.focus?.path ?? myPath;
|
|
124
123
|
const focusEl = getBlockElByPath(focusPath) ?? el;
|
|
125
124
|
const axis = e.key === 'ArrowDown' ? 'vertical' : 'horizontal';
|
|
126
|
-
extendFocusToNextBlock(selection, doc, focusEl, focusPath, axis, getBlockElByPath);
|
|
125
|
+
extendFocusToNextBlock(selection, doc, ctx.reading.grammar, focusEl, focusPath, axis, getBlockElByPath);
|
|
127
126
|
await revealActiveEndpoint(ctx);
|
|
128
127
|
return true;
|
|
129
128
|
}
|
|
@@ -132,81 +131,72 @@ async function handleCrossBlockActive(ctx, mutCtx, e) {
|
|
|
132
131
|
const focusPath = selection.focus?.path ?? myPath;
|
|
133
132
|
const focusEl = getBlockElByPath(focusPath) ?? el;
|
|
134
133
|
const side = e.key === 'ArrowUp' ? 'start' : 'end';
|
|
135
|
-
extendFocusToPreviousBlock(selection, doc, focusEl, focusPath, side, getBlockElByPath);
|
|
134
|
+
extendFocusToPreviousBlock(selection, doc, ctx.reading.grammar, focusEl, focusPath, side, getBlockElByPath);
|
|
136
135
|
await revealActiveEndpoint(ctx);
|
|
137
136
|
return true;
|
|
138
137
|
}
|
|
139
138
|
if (e.key === 'Escape' && !e.shiftKey && !e.ctrlKey && !e.metaKey && !e.altKey) {
|
|
140
139
|
e.preventDefault();
|
|
141
|
-
await collapseTo(ctx, 'start', doc
|
|
140
|
+
await collapseTo(ctx, 'start', doc);
|
|
142
141
|
return true;
|
|
143
142
|
}
|
|
144
143
|
if (!e.shiftKey && (e.key === 'ArrowLeft' || e.key === 'ArrowUp')) {
|
|
145
144
|
e.preventDefault();
|
|
146
|
-
await collapseTo(ctx, 'start', doc
|
|
145
|
+
await collapseTo(ctx, 'start', doc);
|
|
147
146
|
return true;
|
|
148
147
|
}
|
|
149
148
|
if (!e.shiftKey && (e.key === 'ArrowRight' || e.key === 'ArrowDown')) {
|
|
150
149
|
e.preventDefault();
|
|
151
|
-
await collapseTo(ctx, 'end', doc
|
|
150
|
+
await collapseTo(ctx, 'end', doc);
|
|
152
151
|
return true;
|
|
153
152
|
}
|
|
154
|
-
if ((e
|
|
153
|
+
if (isSelectAllChord(e)) {
|
|
155
154
|
e.preventDefault();
|
|
156
155
|
selectWholeDocument(selection, doc, getBlockElByPath);
|
|
157
156
|
return true;
|
|
158
157
|
}
|
|
159
158
|
return false;
|
|
160
159
|
}
|
|
161
|
-
/** The
|
|
160
|
+
/** The entry branch: chords that start a selection from a collapsed caret. */
|
|
162
161
|
async function handleCrossBlockEntry(ctx, e) {
|
|
163
162
|
const el = ctx.getEl();
|
|
164
163
|
if (!el)
|
|
165
164
|
return false;
|
|
166
165
|
const { selection, getDoc } = ctx;
|
|
167
|
-
if ((e
|
|
166
|
+
if (isSelectAllChord(e)) {
|
|
168
167
|
e.preventDefault();
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
168
|
+
// Ended before the count moves, since ending a selected widget restarts the run.
|
|
169
|
+
const first = selection.selectAllCount === 0;
|
|
170
|
+
selection.batch(() => {
|
|
171
|
+
if (first)
|
|
172
|
+
selectInBlock(selection, () => applySurfaceContentRange(el));
|
|
173
|
+
selection.incrementSelectAllCount();
|
|
174
|
+
});
|
|
175
|
+
if (!first)
|
|
176
|
+
selectWholeDocument(selection, getDoc(), ctx.getBlockElByPath);
|
|
175
177
|
return true;
|
|
176
178
|
}
|
|
177
179
|
return false;
|
|
178
180
|
}
|
|
179
181
|
// ── Keydown Helpers ───────────────────────────────────────────────────────
|
|
180
|
-
/**
|
|
181
|
-
*
|
|
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
|
-
*/
|
|
182
|
+
/** Resolves a swallowed format chord against the kind of the block that took the key, as a
|
|
183
|
+
* single-block keystroke would, so a consumer's rebinding reaches the same handler. */
|
|
185
184
|
async function dispatchOverRange(ctx, e, path) {
|
|
186
185
|
const chord = eventToChord(e);
|
|
187
186
|
if (!chord)
|
|
188
187
|
return;
|
|
189
|
-
const surface = await ctx.
|
|
188
|
+
const surface = await ctx.caretLanding.mount(path);
|
|
190
189
|
dispatchKeyCommand(chord,
|
|
191
|
-
// The block may
|
|
192
|
-
//
|
|
190
|
+
// The block may have no `runCommand` of its own; the range's handler is reached in the
|
|
191
|
+
// dispatcher ahead of any per-block `runCommand`, so an absent one is not a decline.
|
|
193
192
|
{
|
|
194
193
|
kind: kindOfPath(path, ctx.getDoc()),
|
|
195
|
-
runCommand: (id, arg) => surface?.runCommand?.(id, arg) ?? false
|
|
196
|
-
|
|
197
|
-
|
|
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);
|
|
194
|
+
runCommand: (id, arg) => surface?.runCommand?.(id, arg) ?? false,
|
|
195
|
+
getPath: () => path
|
|
196
|
+
}, ctx.commands);
|
|
204
197
|
}
|
|
205
|
-
/**
|
|
206
|
-
*
|
|
207
|
-
* rather than over stale block indices. After the range delete they dispatch through the
|
|
208
|
-
* merged block's command registry.
|
|
209
|
-
*/
|
|
198
|
+
/** Keys the block-level handler owns, which must run at a collapsed caret rather than over stale
|
|
199
|
+
* block indices, so they dispatch after the range delete. */
|
|
210
200
|
function isCommandCandidateKey(e) {
|
|
211
201
|
if (e.key === 'Enter' && !e.ctrlKey && !e.metaKey && !e.altKey)
|
|
212
202
|
return true;
|
|
@@ -216,18 +206,13 @@ function isCommandCandidateKey(e) {
|
|
|
216
206
|
return true;
|
|
217
207
|
return false;
|
|
218
208
|
}
|
|
219
|
-
/**
|
|
220
|
-
*
|
|
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
|
-
*/
|
|
209
|
+
/** Chords the range handles itself, swallowed before the browser's bold or Ctrl+K kill-line runs.
|
|
210
|
+
* Mod+Shift+X is here on its own, since unshifted Mod+X is the block cut. */
|
|
226
211
|
function isClaimedRewriteChord(e) {
|
|
227
212
|
if (!(e.ctrlKey || e.metaKey) || e.altKey)
|
|
228
213
|
return false;
|
|
229
|
-
// Literal comparisons, not a character class: the
|
|
230
|
-
//
|
|
214
|
+
// Literal comparisons, not a character class: the chord scan reads the keys a file compares,
|
|
215
|
+
// and a regex would hide this file's use of Mod+B/I/E/K from it (G4.29).
|
|
231
216
|
if (e.shiftKey)
|
|
232
217
|
return e.key === 'x' || e.key === 'X';
|
|
233
218
|
return (e.key === 'b' ||
|
|
@@ -239,15 +224,12 @@ function isClaimedRewriteChord(e) {
|
|
|
239
224
|
e.key === 'k' ||
|
|
240
225
|
e.key === 'K');
|
|
241
226
|
}
|
|
242
|
-
/**
|
|
243
|
-
*
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
async function collapseTo(ctx, to, doc, getBlockElByPath) {
|
|
249
|
-
ctx.edgeAffinity.noteExtreme();
|
|
250
|
-
await collapseCrossBlock(ctx.selection, to, doc, getBlockElByPath, ctx.revealPath);
|
|
227
|
+
/** Corrects the side the arrow key recorded: the caret jumped to the range's edge, where the side
|
|
228
|
+
* depends on the construct there (`docs/design/live-mode.md` § 4.2 Typing at a hidden edge). */
|
|
229
|
+
async function collapseTo(ctx, to, doc) {
|
|
230
|
+
await collapseCrossBlock(ctx.selection, to, doc, ctx.caretLanding.restore);
|
|
231
|
+
// After the restore, which forgets how the caret arrived.
|
|
232
|
+
ctx.caretMemory.noteExtreme();
|
|
251
233
|
}
|
|
252
234
|
/** Deepest resolvable node's kind; an empty/unresolvable path reads the document root's own kind. */
|
|
253
235
|
function kindOfPath(path, doc) {
|
|
@@ -261,79 +243,38 @@ function kindOfPath(path, doc) {
|
|
|
261
243
|
// The root's 'document' kind is outside AnyBlockKind; dispatch treats it as an unknown kind.
|
|
262
244
|
return isBlockNode(node) ? node.kind : node.kind;
|
|
263
245
|
}
|
|
264
|
-
/**
|
|
265
|
-
*
|
|
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
|
-
*/
|
|
246
|
+
/** Parks the caret at the focus endpoint, never ending the range (G2.12) and never opening a
|
|
247
|
+
* closed body. A cell takes its start, since ArrowRight at its end reads as leaving the table. */
|
|
295
248
|
async function revealActiveEndpoint(ctx) {
|
|
296
249
|
const focus = ctx.selection.focus;
|
|
297
250
|
const landing = focus && ctx.selection.cellLandingFor(focus);
|
|
298
|
-
// A landing that deepened the path is a cell; anything else lands as itself.
|
|
251
|
+
// A landing that deepened the path is a cell; anything else lands as itself. A cell that never
|
|
252
|
+
// mounted falls through, so the mounted table still scrolls the endpoint into view.
|
|
299
253
|
if (focus && landing && !pathsEqual(landing.path, focus.path)) {
|
|
300
|
-
|
|
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);
|
|
254
|
+
if (await ctx.caretLanding.park({ path: docPathFrom(landing.path), offset: CURSOR_START })) {
|
|
305
255
|
return;
|
|
306
256
|
}
|
|
307
257
|
}
|
|
308
|
-
//
|
|
309
|
-
// dispatch caret in it, the same reveal-then-pin pattern as the table-cell case above.
|
|
258
|
+
// A windowed-out text endpoint cannot be scrolled to while unmounted, so it mounts first.
|
|
310
259
|
if (focus && !ctx.getBlockElByPath(focus.path)) {
|
|
311
|
-
|
|
312
|
-
if (ref) {
|
|
313
|
-
ref.parkCaret?.(focus.offset);
|
|
314
|
-
scrollFocusBlockIntoView(ctx.selection, ctx.getBlockElByPath);
|
|
315
|
-
return;
|
|
316
|
-
}
|
|
260
|
+
await ctx.caretLanding.park({ path: docPathFrom(focus.path), offset: focus.offset });
|
|
317
261
|
}
|
|
318
|
-
scrollFocusBlockIntoView(ctx.selection, ctx.
|
|
262
|
+
scrollFocusBlockIntoView(ctx.selection, ctx.scrollOwner);
|
|
319
263
|
}
|
|
320
264
|
async function handleDocEdgeExtend(ctx, e, direction) {
|
|
321
265
|
const el = ctx.getEl();
|
|
322
266
|
if (!el)
|
|
323
267
|
return false;
|
|
324
268
|
e.preventDefault();
|
|
325
|
-
extendFocusToDocEdge(ctx.selection, ctx.getDoc(), el, ctx.getMyPath(), direction, ctx.getBlockElByPath);
|
|
269
|
+
extendFocusToDocEdge(ctx.selection, ctx.getDoc(), ctx.reading.grammar, el, ctx.getMyPath(), direction, ctx.getBlockElByPath);
|
|
326
270
|
await revealActiveEndpoint(ctx);
|
|
327
271
|
return true;
|
|
328
272
|
}
|
|
329
273
|
// ── CompositionStart ───────────────────────────────────────────────────────
|
|
330
274
|
function handleCompositionStart(ctx, mutCtx) {
|
|
331
|
-
ctx.
|
|
332
|
-
ctx.edgeAffinity.reset();
|
|
275
|
+
ctx.caretMemory.forget();
|
|
333
276
|
if (!ctx.selection.isCrossBlock)
|
|
334
277
|
return false;
|
|
335
|
-
if (isReadingMode(ctx.getPresentationMode))
|
|
336
|
-
return false;
|
|
337
278
|
performCrossBlockDeleteSync(mutCtx);
|
|
338
279
|
return true;
|
|
339
280
|
}
|
|
@@ -1,56 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Cross-block
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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`.
|
|
2
|
+
* Cross-block delete: one commit that deletes the range, collapses it and restores the caret.
|
|
3
|
+
* A range between top-level blocks commits structurally; anything nested, or with an endpoint in
|
|
4
|
+
* a table the other endpoint isn't in, needs one scope per spliced container.
|
|
7
5
|
*/
|
|
8
|
-
import type { UndoEntryMode } from '../../action-contracts';
|
|
9
6
|
import type { SelectionState } from '../selection-state.svelte';
|
|
10
|
-
import type {
|
|
11
|
-
import type { LinkReferenceResolverRef, PresentationModeGetter } from '../../editor-keys';
|
|
7
|
+
import type { Reading } from '../../schema/reading';
|
|
12
8
|
import { type SelectionPoint } from '../primitives';
|
|
13
9
|
import type { Document } from '../../core/nodes';
|
|
14
10
|
import type { BlockComponent } from '../../block-component';
|
|
15
11
|
import type { CommitController } from '../../action-contracts';
|
|
12
|
+
import type { RemovalGesture } from '../caret-target';
|
|
16
13
|
export interface CrossBlockMutationContext {
|
|
17
14
|
selection: SelectionState;
|
|
18
15
|
getDoc: () => Document;
|
|
19
16
|
getBlockElByPath: (path: number[]) => HTMLElement | null;
|
|
20
17
|
revealPath: (path: number[]) => Promise<BlockComponent | null>;
|
|
21
18
|
controller: CommitController;
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
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;
|
|
19
|
+
/** How the editor reads its bytes: the ancestor rebuild reads its grammar, and the join cleanup
|
|
20
|
+
* its link definitions and mode (`docs/design/live-mode.md` § 4.5). */
|
|
21
|
+
reading: Reading;
|
|
33
22
|
}
|
|
34
|
-
/** Options for {@link performCrossBlockDelete}. Absent = plain delete, own
|
|
23
|
+
/** Options for {@link performCrossBlockDelete}. Absent = plain delete, own caret. */
|
|
35
24
|
export interface CrossBlockDeleteOptions {
|
|
36
|
-
/** `'join'`: the caller already pushed a snapshot covering this delete. */
|
|
37
|
-
undoEntry?: UndoEntryMode;
|
|
38
25
|
/** The caller installs a final caret after further mutations. */
|
|
39
26
|
skipCaretRestore?: boolean;
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
* type-replace/paste/cut stay on cell-clear so the follow-up insert lands in the anchor cell.
|
|
43
|
-
*/
|
|
27
|
+
/** Delete a range covering a whole table, row or column structurally; without it the cells
|
|
28
|
+
* are cleared and the table keeps its shape. */
|
|
44
29
|
tableCoverageDelete?: boolean;
|
|
45
30
|
}
|
|
46
31
|
/**
|
|
47
|
-
*
|
|
48
|
-
*
|
|
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.
|
|
32
|
+
* Runs a cross-block gesture's writes as one undo entry holding the range as it stood; the range
|
|
33
|
+
* start is where undo puts the caret back when nothing is focused.
|
|
55
34
|
*/
|
|
35
|
+
export declare function rangeUndoStep(ctx: CrossBlockMutationContext, run: () => Promise<unknown>): Promise<void>;
|
|
36
|
+
/** Returns the collapsed caret, or null when the selection wasn't cross-block. `gesture` picks the
|
|
37
|
+
* caret's side when the range takes a block whole. */
|
|
38
|
+
export declare function performCrossBlockDelete(ctx: CrossBlockMutationContext, gesture: RemovalGesture, options?: CrossBlockDeleteOptions): Promise<SelectionPoint | null>;
|
|
39
|
+
/** For compositionstart, where the IME drops the composition if the handler yields: the commit
|
|
40
|
+
* is synchronous up to its `await tick()`, so firing without awaiting deletes before any yield. */
|
|
56
41
|
export declare function performCrossBlockDeleteSync(ctx: CrossBlockMutationContext): void;
|