@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
package/dist/schema/commands.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { devWarn } from '../dev-warn';
|
|
2
|
-
import {
|
|
2
|
+
import { devReplacesRegistration } from './register-once';
|
|
3
|
+
import { enrollTestReset } from './registry-reset';
|
|
4
|
+
import { createPluginRegistry } from './plugin-registry';
|
|
3
5
|
import { tryGetBlockKindDescriptor } from './block-kind-descriptor';
|
|
4
|
-
import {
|
|
6
|
+
import { eventToChord, registeredChord } from './keybindings';
|
|
5
7
|
import { lookupOverride, overrideDecision } from './keybinding-overrides';
|
|
8
|
+
import { isReadingMode } from '../presentation-mode';
|
|
6
9
|
export const GLOBAL_COMMAND_IDS = ['history.undo', 'history.redo'];
|
|
7
10
|
export const BLOCK_COMMAND_IDS = [
|
|
8
11
|
'block.split',
|
|
@@ -25,11 +28,12 @@ export const BLOCK_COMMAND_IDS = [
|
|
|
25
28
|
'code.delete',
|
|
26
29
|
'list.indent',
|
|
27
30
|
'list.unindent',
|
|
31
|
+
'list.toggleTask',
|
|
28
32
|
'cell.enter',
|
|
29
33
|
'cell.tab',
|
|
30
34
|
'cell.shiftTab',
|
|
31
|
-
// Bound on `tableCell` (the
|
|
32
|
-
// focused cell's row or column as its index, supplied from the cell's own props.
|
|
35
|
+
// Bound on `tableCell` (the block that holds the caret) but named for their subject: each takes
|
|
36
|
+
// the focused cell's row or column as its index, supplied from the cell's own props.
|
|
33
37
|
'table.insertRowBelow',
|
|
34
38
|
'table.insertRowAbove',
|
|
35
39
|
'table.insertColumnRight',
|
|
@@ -44,19 +48,23 @@ export const BLOCK_COMMAND_IDS = [
|
|
|
44
48
|
'chrome.descendToBody'
|
|
45
49
|
];
|
|
46
50
|
/**
|
|
47
|
-
* Commands
|
|
48
|
-
*
|
|
49
|
-
* Membership is the arm's shape, not the id's prefix — the link card mints its link over one
|
|
50
|
-
* block's offsets, and a range gives it no one block to mint into.
|
|
51
|
+
* Commands that rewrite one block and have no cross-block form, declined while a selection spans
|
|
52
|
+
* blocks. Membership follows what the handler does (the link card, a heading level), not the id.
|
|
51
53
|
*/
|
|
52
54
|
export const RANGE_DECLINED_COMMAND_IDS = new Set([
|
|
53
|
-
'link.openCard'
|
|
55
|
+
'link.openCard',
|
|
56
|
+
'heading.cycle'
|
|
57
|
+
]);
|
|
58
|
+
/** Built-in commands that move the block or row holding the caret rather than the caret. */
|
|
59
|
+
export const BLOCK_MOVE_COMMAND_IDS = new Set([
|
|
60
|
+
'block.moveUp',
|
|
61
|
+
'block.moveDown',
|
|
62
|
+
'table.moveRowUp',
|
|
63
|
+
'table.moveRowDown'
|
|
54
64
|
]);
|
|
55
65
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* router. Declined wherever no router is threaded, so a dispatch site that skips it cannot
|
|
59
|
-
* fall through to the focused block's own offsets.
|
|
66
|
+
* Single-block commands with a cross-block form (`selection/cross-block/format-toggle.ts`),
|
|
67
|
+
* declined wherever no router was injected so they never fall through to the focused block.
|
|
60
68
|
*/
|
|
61
69
|
export const CROSS_BLOCK_RANGE_COMMAND_IDS = new Set([
|
|
62
70
|
'format.toggleStrong',
|
|
@@ -65,8 +73,8 @@ export const CROSS_BLOCK_RANGE_COMMAND_IDS = new Set([
|
|
|
65
73
|
'format.toggleCode'
|
|
66
74
|
]);
|
|
67
75
|
/**
|
|
68
|
-
* The
|
|
69
|
-
*
|
|
76
|
+
* The ids a host's selection toolbar invokes through `EditorInstance.runCommand`. Each is in one of
|
|
77
|
+
* the two sets above, so `canRunCommand` can tell a toolbar which buttons a range leaves idle.
|
|
70
78
|
*/
|
|
71
79
|
export const TOOLBAR_COMMANDS = {
|
|
72
80
|
toggleStrong: 'format.toggleStrong',
|
|
@@ -74,32 +82,49 @@ export const TOOLBAR_COMMANDS = {
|
|
|
74
82
|
toggleStrikethrough: 'format.toggleStrikethrough',
|
|
75
83
|
toggleCode: 'format.toggleCode',
|
|
76
84
|
/** The link editor Mod+K opens: over a selection it creates, inside a link it edits. */
|
|
77
|
-
editLink: 'link.openCard'
|
|
85
|
+
editLink: 'link.openCard',
|
|
86
|
+
/** The heading picker's command, taking the level as its argument; 0 is normal text. */
|
|
87
|
+
setHeading: 'heading.cycle'
|
|
78
88
|
};
|
|
79
|
-
const globalCommands = new Map();
|
|
80
|
-
export function registerCommand(id, run) {
|
|
81
|
-
registerOnce(globalCommands.has(id), () => globalCommands.set(id, run), `registerCommand: "${id}" is already registered. Commands are register-once.`);
|
|
82
|
-
}
|
|
83
|
-
export function getCommand(id) {
|
|
84
|
-
return globalCommands.get(id);
|
|
85
|
-
}
|
|
86
89
|
const BUILTIN_COMMAND_IDS = new Set([...GLOBAL_COMMAND_IDS, ...BLOCK_COMMAND_IDS]);
|
|
87
90
|
/** True when the id is in the closed built-in vocabulary. Takes a plain, unbranded name. */
|
|
88
91
|
export function isBuiltinCommandId(id) {
|
|
89
92
|
return BUILTIN_COMMAND_IDS.has(id);
|
|
90
93
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
export function
|
|
96
|
-
|
|
94
|
+
const globalCommands = createPluginRegistry({
|
|
95
|
+
label: 'registerCommand',
|
|
96
|
+
isBuiltin: isBuiltinCommandId
|
|
97
|
+
});
|
|
98
|
+
export function registerCommand(id, run) {
|
|
99
|
+
globalCommands.register(id, run, `registerCommand: "${id}" is already registered. Commands are register-once.`);
|
|
100
|
+
}
|
|
101
|
+
/** The command's handler where `activation` resolves the plugin that registered it. */
|
|
102
|
+
export function getCommand(id, activation) {
|
|
103
|
+
return globalCommands.get(id, activation);
|
|
104
|
+
}
|
|
105
|
+
/** Whether any plugin or built-in registered the id, whatever the activation. */
|
|
106
|
+
export function isCommandRegistered(id) {
|
|
107
|
+
return globalCommands.has(id);
|
|
108
|
+
}
|
|
109
|
+
/** The plugin whose setup registered a global command, read at dispatch like a block command's. */
|
|
110
|
+
export function globalCommandOwner(id) {
|
|
111
|
+
return globalCommands.ownerOf(id);
|
|
112
|
+
}
|
|
113
|
+
/** Runs a plugin's command handler, global or block, and reports a throw as the plugin's that
|
|
114
|
+
* registered it; a contained throw still counts as handled, so the key goes no further. */
|
|
115
|
+
export function runPluginCommand(owner, failure, onCommandError, run) {
|
|
116
|
+
try {
|
|
117
|
+
return run();
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
onCommandError({ ...failure, plugin: owner ?? undefined, error });
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
97
123
|
}
|
|
98
124
|
const warnedDeadKeys = new Set();
|
|
99
125
|
/**
|
|
100
|
-
* Dev-warn once per (id, path) that a command reached no runnable handler
|
|
101
|
-
*
|
|
102
|
-
* supplies a command context.
|
|
126
|
+
* Dev-warn once per (id, path) that a command reached no runnable handler: a key that does nothing.
|
|
127
|
+
* Unreachable rather than unregistered: a plugin command needs the target's command context.
|
|
103
128
|
*/
|
|
104
129
|
export function warnDeadKeyCommand(id, path) {
|
|
105
130
|
const key = `${path} ${id}`;
|
|
@@ -109,9 +134,10 @@ export function warnDeadKeyCommand(id, path) {
|
|
|
109
134
|
devWarn('commands', `command "${id}" reached no handler on the ${path} path; key is dead`);
|
|
110
135
|
}
|
|
111
136
|
/** Test-only. Clears the dead-key warn memo so each test sees a first-time warn. */
|
|
112
|
-
|
|
137
|
+
function __resetCommandWarningsForTests() {
|
|
113
138
|
warnedDeadKeys.clear();
|
|
114
139
|
}
|
|
140
|
+
enrollTestReset(__resetCommandWarningsForTests);
|
|
115
141
|
registerCommand('history.undo', (ctx) => {
|
|
116
142
|
void ctx.history.requestUndo();
|
|
117
143
|
return true;
|
|
@@ -125,87 +151,91 @@ export const GLOBAL_KEYMAP = [
|
|
|
125
151
|
{ chord: 'Mod+Y', command: 'history.redo' },
|
|
126
152
|
{ chord: 'Mod+Shift+Z', command: 'history.redo' }
|
|
127
153
|
];
|
|
128
|
-
|
|
154
|
+
// ── Plugin-global chords ─────────────────────────────────────────────────
|
|
155
|
+
// A plugin's global command may bind a chord here. It resolves last, after every override and
|
|
156
|
+
// built-in table, and built-in chords cannot be taken (register-once, throw on collision).
|
|
157
|
+
// Keyed by the normalized chord, so a chord binds at most one command.
|
|
158
|
+
const pluginGlobalKeymap = createPluginRegistry({
|
|
159
|
+
label: 'registerPluginGlobalBinding',
|
|
160
|
+
isBuiltin: () => false
|
|
161
|
+
});
|
|
129
162
|
// Chords the editor UI intercepts outside the command resolvers (the search bar's
|
|
130
|
-
// document-level listener)
|
|
163
|
+
// document-level listener): a plugin binding one would fire twice on a single keypress.
|
|
131
164
|
const RESERVED_UI_CHORDS = new Set(['Mod+F', 'Mod+H']);
|
|
132
165
|
/**
|
|
133
|
-
* True when the editor UI intercepts a chord outside the command resolvers. The single
|
|
134
|
-
* both the plugin-global registration guard and the editor-root keydown handler read.
|
|
166
|
+
* True when the editor UI intercepts a normalized chord outside the command resolvers. The single
|
|
167
|
+
* source both the plugin-global registration guard and the editor-root keydown handler read.
|
|
135
168
|
*/
|
|
136
169
|
export function isReservedUiChord(chord) {
|
|
137
|
-
return RESERVED_UI_CHORDS.has(
|
|
170
|
+
return RESERVED_UI_CHORDS.has(chord);
|
|
138
171
|
}
|
|
139
172
|
/** The same pair, for the callers that must enumerate it rather than test one chord. */
|
|
140
173
|
export function reservedUiChords() {
|
|
141
174
|
return [...RESERVED_UI_CHORDS];
|
|
142
175
|
}
|
|
143
|
-
/**
|
|
144
|
-
*
|
|
145
|
-
* name IS the id). A dev-server re-eval re-binding its OWN command to its OWN chord is an
|
|
146
|
-
* idempotent replace, not a collision; reserved chords and cross-command collisions still throw.
|
|
147
|
-
*/
|
|
176
|
+
/** The chord's normal form, or a throw when it can't be bound. A dev-server re-evaluation binding
|
|
177
|
+
* `candidateCommand` to its own chord again replaces the binding rather than colliding. */
|
|
148
178
|
export function assertPluginGlobalChordAvailable(rawChord, candidateCommand) {
|
|
149
|
-
//
|
|
150
|
-
//
|
|
151
|
-
|
|
152
|
-
if (
|
|
153
|
-
throw new Error(`plugin global chord "${rawChord}" is
|
|
154
|
-
}
|
|
155
|
-
const chord = normalizeChord(rawChord);
|
|
156
|
-
if (RESERVED_UI_CHORDS.has(chord)) {
|
|
157
|
-
throw new Error(`plugin global chord "${rawChord}" is reserved by the editor UI (search) — pick another chord`);
|
|
179
|
+
// Thrown before the id is created (`global-commands.ts`), so a rejected registration leaves
|
|
180
|
+
// no orphaned command.
|
|
181
|
+
const chord = registeredChord(rawChord, 'registerGlobalCommand');
|
|
182
|
+
if (isReservedUiChord(chord)) {
|
|
183
|
+
throw new Error(`plugin global chord "${rawChord}" is reserved by the editor UI (search): pick another chord`);
|
|
158
184
|
}
|
|
159
185
|
// Activation-blind: registration is process-global register-once, so a chord no editor
|
|
160
|
-
// has activated yet still collides.
|
|
161
|
-
const collision =
|
|
186
|
+
// has activated yet, or a failed plugin's, still collides.
|
|
187
|
+
const collision = findByChord(GLOBAL_KEYMAP, chord) ?? pluginGlobalKeymap.getIgnoringActivation(chord);
|
|
162
188
|
if (collision) {
|
|
163
189
|
if (devReplacesRegistration() && collision.command === candidateCommand)
|
|
164
|
-
return;
|
|
165
|
-
throw new Error(`plugin global chord "${rawChord}" is already bound to "${collision.command}"
|
|
190
|
+
return chord;
|
|
191
|
+
throw new Error(`plugin global chord "${rawChord}" is already bound to "${collision.command}": global chords are register-once`);
|
|
166
192
|
}
|
|
193
|
+
return chord;
|
|
167
194
|
}
|
|
168
|
-
export function registerPluginGlobalBinding(binding
|
|
169
|
-
assertPluginGlobalChordAvailable(binding.chord, binding.command);
|
|
170
|
-
//
|
|
171
|
-
//
|
|
172
|
-
|
|
173
|
-
const entry = { ...binding, plugin };
|
|
174
|
-
const existing = pluginGlobalKeymap.findIndex((b) => normalizeChord(b.chord) === chord);
|
|
175
|
-
if (existing >= 0)
|
|
176
|
-
pluginGlobalKeymap[existing] = entry;
|
|
177
|
-
else
|
|
178
|
-
pluginGlobalKeymap.push(entry);
|
|
179
|
-
}
|
|
180
|
-
/** The tier's one activation gate: every read of a plugin-global chord passes through it,
|
|
181
|
-
* and an absent activation means every installed plugin. */
|
|
182
|
-
function claimedHere(entry, activation) {
|
|
183
|
-
return entry.plugin === null || activation === undefined || activation.isActive(entry.plugin);
|
|
195
|
+
export function registerPluginGlobalBinding(binding) {
|
|
196
|
+
const chord = assertPluginGlobalChordAvailable(binding.chord, binding.command);
|
|
197
|
+
// The check above already let a dev re-evaluation of the same command through, so the
|
|
198
|
+
// registry's own duplicate rule only ever replaces here.
|
|
199
|
+
pluginGlobalKeymap.register(chord, { ...binding, chord });
|
|
184
200
|
}
|
|
185
201
|
export function pluginGlobalBinding(chord, activation) {
|
|
186
|
-
|
|
187
|
-
return entry && claimedHere(entry, activation) ? entry : null;
|
|
202
|
+
return pluginGlobalKeymap.get(chord, activation) ?? null;
|
|
188
203
|
}
|
|
189
|
-
/** Every
|
|
190
|
-
|
|
191
|
-
export function pluginGlobalChords(activation) {
|
|
204
|
+
/** Every plugin-global binding `activation` resolves, each with the plugin that installed it. */
|
|
205
|
+
export function pluginGlobalBindings(activation) {
|
|
192
206
|
return pluginGlobalKeymap
|
|
193
|
-
.
|
|
194
|
-
.map((
|
|
207
|
+
.entries(activation)
|
|
208
|
+
.map(([chord, binding]) => ({ ...binding, plugin: pluginGlobalKeymap.ownerOf(chord) }));
|
|
195
209
|
}
|
|
196
|
-
|
|
197
|
-
|
|
210
|
+
/** The chords of {@link pluginGlobalBindings}, normalized. */
|
|
211
|
+
export function pluginGlobalChords(activation) {
|
|
212
|
+
return pluginGlobalKeymap.entries(activation).map(([chord]) => chord);
|
|
198
213
|
}
|
|
199
|
-
/** First binding in `bindings`
|
|
214
|
+
/** First binding in `bindings` for `chord`; every stored chord is normalized already. */
|
|
200
215
|
function findByChord(bindings, chord) {
|
|
201
|
-
return bindings
|
|
216
|
+
return bindings.find((b) => b.chord === chord) ?? null;
|
|
217
|
+
}
|
|
218
|
+
// A block focused as a whole has no text keymap to hold the reorder chords, so it gets them here
|
|
219
|
+
// unless its kind binds the chord; added on read, so a changed `blockFocus` leaves none stale.
|
|
220
|
+
const WHOLE_BLOCK_KEYMAP = [
|
|
221
|
+
{ chord: 'Alt+ArrowUp', command: 'block.moveUp' },
|
|
222
|
+
{ chord: 'Alt+ArrowDown', command: 'block.moveDown' }
|
|
223
|
+
];
|
|
224
|
+
/** The bindings a kind resolves: its declared keymap, plus the whole-block defaults above. */
|
|
225
|
+
export function kindKeymap(kind) {
|
|
226
|
+
const descriptor = tryGetBlockKindDescriptor(kind);
|
|
227
|
+
const declared = descriptor?.keymap ?? [];
|
|
228
|
+
if (descriptor?.blockFocus !== 'whole-block')
|
|
229
|
+
return declared;
|
|
230
|
+
const bound = new Set(declared.map((binding) => binding.chord));
|
|
231
|
+
return [...declared, ...WHOLE_BLOCK_KEYMAP.filter((binding) => !bound.has(binding.chord))];
|
|
202
232
|
}
|
|
203
233
|
function builtinKindBinding(chord, kind) {
|
|
204
|
-
return findByChord(
|
|
234
|
+
return findByChord(kindKeymap(kind), chord);
|
|
205
235
|
}
|
|
206
236
|
/**
|
|
207
|
-
* The consumer-override
|
|
208
|
-
* `null` is a disable
|
|
237
|
+
* The consumer-override level shared by leaf and container resolution: kind override, then global.
|
|
238
|
+
* `null` is a disable; `undefined` means neither scope had an entry.
|
|
209
239
|
*/
|
|
210
240
|
function overrideTier(overrides, kind, chord) {
|
|
211
241
|
const kindDecision = overrideDecision(lookupOverride(overrides, kind, chord));
|
|
@@ -213,16 +243,14 @@ function overrideTier(overrides, kind, chord) {
|
|
|
213
243
|
return kindDecision;
|
|
214
244
|
return overrideDecision(lookupOverride(overrides, 'global', chord));
|
|
215
245
|
}
|
|
216
|
-
/** The built-in global keymap
|
|
217
|
-
*
|
|
246
|
+
/** The built-in global keymap, then the plugin-global chords: the shared tail of leaf
|
|
247
|
+
* resolution and both global-only resolvers. */
|
|
218
248
|
function builtinGlobalBinding(chord, activation) {
|
|
219
249
|
return findByChord(GLOBAL_KEYMAP, chord) ?? pluginGlobalBinding(chord, activation);
|
|
220
250
|
}
|
|
221
251
|
/**
|
|
222
|
-
*
|
|
223
|
-
* built-in
|
|
224
|
-
* them would double-fire. Consumer overrides ARE honored at both scopes, so a global disable
|
|
225
|
-
* unbinds a chord a kind defines, and a global bind shadows the built-in kind binding.
|
|
252
|
+
* A chord bubbled to a container: override(kind), override(global), then the built-in kind keymap.
|
|
253
|
+
* No built-in global fallthrough, since undo/redo belong to the focused leaf and would double-fire.
|
|
226
254
|
*/
|
|
227
255
|
export function resolveKindBinding(chord, kind, overrides) {
|
|
228
256
|
const override = overrideTier(overrides, kind, chord);
|
|
@@ -241,18 +269,29 @@ export function resolveBinding(chord, kind, overrides, activation) {
|
|
|
241
269
|
return builtinKindBinding(chord, kind) ?? builtinGlobalBinding(chord, activation);
|
|
242
270
|
}
|
|
243
271
|
/**
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
272
|
+
* The command a keypress names at `kind`, overrides included, without running it; a keypress
|
|
273
|
+
* with no block under it (a null kind) resolves at global scope.
|
|
274
|
+
*/
|
|
275
|
+
export function commandForKey(e, kind, ctx) {
|
|
276
|
+
const chord = eventToChord(e);
|
|
277
|
+
if (!chord)
|
|
278
|
+
return null;
|
|
279
|
+
const overrides = ctx.keybindingOverrides();
|
|
280
|
+
const binding = kind === null
|
|
281
|
+
? resolveGlobalBinding(chord, overrides, ctx.activation)
|
|
282
|
+
: resolveBinding(chord, kind, overrides, ctx.activation);
|
|
283
|
+
return binding?.command ?? null;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Whether the built-in keymap or an active plugin-global chord binds this exact chord, ignoring
|
|
287
|
+
* overrides: the question is which chords have a browser default to suppress, not what runs.
|
|
249
288
|
*/
|
|
250
289
|
export function isDefaultGlobalChord(chord, activation) {
|
|
251
290
|
return builtinGlobalBinding(chord, activation) !== null;
|
|
252
291
|
}
|
|
253
292
|
/**
|
|
254
|
-
* Resolve a chord at
|
|
255
|
-
*
|
|
293
|
+
* Resolve a chord at global scope only, for the input sites with no focused block whose kind
|
|
294
|
+
* keymap could apply: a consumer global override, else the editor-global keymap.
|
|
256
295
|
*/
|
|
257
296
|
export function resolveGlobalBinding(chord, overrides, activation) {
|
|
258
297
|
const decision = overrideDecision(lookupOverride(overrides, 'global', chord));
|
|
@@ -261,34 +300,35 @@ export function resolveGlobalBinding(chord, overrides, activation) {
|
|
|
261
300
|
return builtinGlobalBinding(chord, activation);
|
|
262
301
|
}
|
|
263
302
|
/**
|
|
264
|
-
* Run
|
|
265
|
-
*
|
|
266
|
-
* press was CONSUMED, which a disabled chord is without running anything.
|
|
303
|
+
* Run what `chord` binds at global scope where no focused block's keymap applies (a caret in an
|
|
304
|
+
* unmounted block, the gap caret). True means consumed, which a disabled chord is too.
|
|
267
305
|
*/
|
|
268
|
-
export function runGlobalChord(chord,
|
|
269
|
-
|
|
306
|
+
export function runGlobalChord(chord, context) {
|
|
307
|
+
const binding = resolveGlobalBinding(chord, context.keybindingOverrides(), context.activation);
|
|
308
|
+
return runClaimedGlobalChord(binding, chord, context, false);
|
|
270
309
|
}
|
|
271
310
|
/**
|
|
272
|
-
* The same
|
|
273
|
-
*
|
|
311
|
+
* The same for a block that is its own focus target: no inner leaf resolves global chords for it,
|
|
312
|
+
* so resolution takes the leaf precedence and a consumer's kind-scoped rebind reaches here.
|
|
274
313
|
*/
|
|
275
|
-
export function runGlobalChordOnKind(chord, kind,
|
|
276
|
-
|
|
314
|
+
export function runGlobalChordOnKind(chord, kind, context) {
|
|
315
|
+
const overrides = context.keybindingOverrides();
|
|
316
|
+
const binding = resolveBinding(chord, kind, overrides, context.activation);
|
|
317
|
+
return runClaimedGlobalChord(binding, chord, context, true);
|
|
277
318
|
}
|
|
278
|
-
/** A chord the built-in tables bind is consumed whatever an override
|
|
279
|
-
*
|
|
319
|
+
/** A chord the built-in tables bind is consumed whatever an override resolves it to, since the
|
|
320
|
+
* browser's own undo would bypass the CST undo stack; reading mode consumes it, runs nothing. */
|
|
280
321
|
function runClaimedGlobalChord(binding, chord, context, kindDispatchBelow) {
|
|
281
|
-
const run = binding ? getCommand(binding.command) : undefined;
|
|
322
|
+
const run = binding ? getCommand(binding.command, context.activation) : undefined;
|
|
282
323
|
const consumed = !!run || isDefaultGlobalChord(chord, context.activation);
|
|
283
|
-
// A
|
|
284
|
-
//
|
|
285
|
-
// keymap chord declining INTO that dispatch is the normal handoff.
|
|
324
|
+
// A binding no global command backs is dead only where nothing else can answer it; a kind
|
|
325
|
+
// keymap chord declining into the block's own dispatch is the normal handoff.
|
|
286
326
|
if (binding && !run && (consumed || !kindDispatchBelow)) {
|
|
287
327
|
warnDeadKeyCommand(binding.command, 'global-chord');
|
|
288
328
|
}
|
|
289
329
|
if (!consumed)
|
|
290
330
|
return false;
|
|
291
|
-
if (!context.
|
|
292
|
-
run?.(context);
|
|
331
|
+
if (!isReadingMode(context.getPresentationMode))
|
|
332
|
+
run?.({ ...context, arg: binding?.arg });
|
|
293
333
|
return true;
|
|
294
334
|
}
|
|
@@ -1,21 +1,61 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Rebuilds container `raw` up a node's ancestors, looking up `descriptor.rebuildRaw`, so a
|
|
3
|
+
* plugin container joins in by declaring one. A container's metadata follows its rebuilt bytes
|
|
4
|
+
* (`docs/design/editor.md` § The container `raw` contract).
|
|
4
5
|
*/
|
|
5
|
-
import type { CstNode } from '../core/nodes';
|
|
6
|
+
import type { AnyBlockKind, CstNode } from '../core/nodes';
|
|
7
|
+
import { type GrammarView } from './block-openers';
|
|
6
8
|
import type { ChildRawChange } from './child-spans';
|
|
7
9
|
/**
|
|
8
|
-
* Rebuild `raw` for every container along `path`, innermost first. The leaf at the
|
|
9
|
-
*
|
|
10
|
+
* Rebuild `raw` for every container along `path`, innermost first. The leaf at the end of `path`
|
|
11
|
+
* is not rebuilt: callers change its raw before calling. An empty path rebuilds `root`.
|
|
10
12
|
*/
|
|
11
|
-
export declare function rebuildAncestryRaw(root: CstNode, path: number[]): void;
|
|
13
|
+
export declare function rebuildAncestryRaw(root: CstNode, path: number[], grammar: GrammarView): void;
|
|
12
14
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
+
* Calls the `rebuildRaw` on the kind's descriptor, then re-reads the metadata a moved outer line
|
|
16
|
+
* may carry; throws on a leaf.
|
|
15
17
|
*/
|
|
16
|
-
export declare function rebuildContainerRaw(node: CstNode): void;
|
|
18
|
+
export declare function rebuildContainerRaw(node: CstNode, grammar: GrammarView): void;
|
|
17
19
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
+
* The chain rebuild's step, which re-derives kind and metadata itself once it knows whether an
|
|
21
|
+
* outer line moved; a rebuild outside the chain uses {@link rebuildContainerRaw}.
|
|
20
22
|
*/
|
|
21
23
|
export declare function rebuildContainerRawIfContainer(node: CstNode, changed?: ChildRawChange): void;
|
|
24
|
+
/** What a container's position holds once its rewritten bytes are read as a reload reads them. */
|
|
25
|
+
export type BytesReading = {
|
|
26
|
+
outcome: 'kept';
|
|
27
|
+
}
|
|
28
|
+
/** The bytes read as one node of the kind over other children: that node takes the position. */
|
|
29
|
+
| {
|
|
30
|
+
outcome: 'reread';
|
|
31
|
+
node: CstNode;
|
|
32
|
+
}
|
|
33
|
+
/** The bytes read as something other than one node of the kind: `blocks` is that reading. */
|
|
34
|
+
| {
|
|
35
|
+
outcome: 'diverged';
|
|
36
|
+
blocks: CstNode[];
|
|
37
|
+
};
|
|
38
|
+
export interface FollowOptions {
|
|
39
|
+
/** Only the title row changed, which no metadata comes from (`ReservedChrome`). */
|
|
40
|
+
titleRowOnly?: boolean;
|
|
41
|
+
/** A child's bytes stopped reading as one node where they stand, so the whole node is read. */
|
|
42
|
+
whole?: boolean;
|
|
43
|
+
}
|
|
44
|
+
/** Reads `node`'s bytes as a reload would after a rewrite from `rawBefore`, taking in place the
|
|
45
|
+
* metadata they give it: the one place that knows which lines a kind's metadata comes from. */
|
|
46
|
+
export declare function followBytes(node: CstNode, rawBefore: string, grammar: GrammarView, options?: FollowOptions): BytesReading;
|
|
47
|
+
/**
|
|
48
|
+
* What the grammar opens `line` as, read in isolation: asked of the opener registry and never
|
|
49
|
+
* a kind list, so a kind registered later is covered the day it registers.
|
|
50
|
+
*/
|
|
51
|
+
export declare function lineOpensAs(line: string, grammar: GrammarView): AnyBlockKind;
|
|
52
|
+
/**
|
|
53
|
+
* Takes the metadata a parse of `node`'s own bytes derived, so the next rebuild reads what a
|
|
54
|
+
* reload would. False when the parse isn't one block of the node's kind, and nothing is taken.
|
|
55
|
+
*/
|
|
56
|
+
export declare function adoptParsedMetadata(node: CstNode, parsed: readonly CstNode[]): boolean;
|
|
57
|
+
/** One parse of a container's own bytes, the cost the kind and metadata re-derive pay. */
|
|
58
|
+
export declare function parseContainerRaw(raw: string, grammar: GrammarView): CstNode[];
|
|
59
|
+
export declare function firstLine(raw: string): string;
|
|
60
|
+
/** The container's closing line: its last line carrying bytes, without the ending. */
|
|
61
|
+
export declare function lastLine(raw: string): string;
|