@voithos-labs/aragonite 0.10.4 → 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 +11 -5
- package/dist/a11y-strings.js +60 -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 +12 -21
- 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 +603 -1126
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +26 -51
- package/dist/components/SelectionOverlay.svelte.d.ts +5 -3
- 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 +72 -87
- 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 +29 -34
- 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 +57 -39
- 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 +141 -203
- 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 +45 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +93 -147
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +1 -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 +8 -6
- package/dist/components/blocks/text/click-snap-guard.js +10 -7
- 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 +150 -181
- 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 -108
- 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 +212 -199
- 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 +12 -35
- package/dist/components/drag-handle.js +22 -68
- 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 -24
- package/dist/components/editor-root-listeners.js +49 -24
- 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 +14 -26
- 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 +30 -35
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +3 -5
- 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 +54 -75
- package/dist/core/inline/inline-widgets.js +54 -62
- 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 +31 -15
- 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 -6
- package/dist/cursor/height-oracle.js +26 -74
- 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 +14 -15
- package/dist/cursor/scrollport.js +7 -13
- 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 -14
- package/dist/cursor/visual-lines.js +45 -46
- package/dist/cursor/widget-edge-snap.d.ts +10 -15
- package/dist/cursor/widget-edge-snap.js +13 -12
- package/dist/cursor/widget-offset.d.ts +110 -104
- package/dist/cursor/widget-offset.js +344 -179
- 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 +30 -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 +28 -50
- package/dist/editor-actions/focus/focus-landing.d.ts +8 -11
- package/dist/editor-actions/focus/focus-landing.js +15 -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 +54 -82
- package/dist/editor-actions/plugin/container.js +105 -188
- 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 +88 -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 +37 -8
- package/dist/plugin.js +100 -77
- 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 +78 -67
- 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 -81
- 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 +51 -45
- 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 +15 -6
- 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 +141 -310
- 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 +78 -84
- package/dist/schema/commands.js +152 -117
- 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 +8 -10
- 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 +63 -80
- 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 +92 -125
- 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 +59 -96
- 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 +51 -134
- package/dist/selection/dead-space-caret.d.ts +19 -30
- package/dist/selection/dead-space-caret.js +70 -88
- package/dist/selection/drag-pointer.d.ts +7 -9
- package/dist/selection/drag-pointer.js +23 -33
- 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 -40
- package/dist/selection/keyboard-extend.js +94 -117
- package/dist/selection/multi-click.d.ts +13 -18
- package/dist/selection/multi-click.js +32 -38
- package/dist/selection/native-bridge.d.ts +29 -39
- package/dist/selection/native-bridge.js +78 -127
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +25 -16
- package/dist/selection/path-lookup.js +101 -18
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +5 -5
- package/dist/selection/pointer-gesture.js +5 -5
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -40
- package/dist/selection/primitives.js +57 -67
- 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 -23
- 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 +34 -16
- package/dist/selection/selection-drop.js +159 -95
- 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 +60 -53
- package/dist/styles/editor.css +201 -143
- 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 +9 -7
- package/dist/tree-operations/paste/replacement-parse.js +12 -10
- 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 +327 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +253 -185
- package/docs/guide/plugin-guide.md +332 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +12 -16
- 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/cursor/scroll-hold.d.ts +0 -10
- package/dist/cursor/scroll-hold.js +0 -22
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- 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 -31
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -78
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,20 +48,23 @@ export const BLOCK_COMMAND_IDS = [
|
|
|
44
48
|
'chrome.descendToBody'
|
|
45
49
|
];
|
|
46
50
|
/**
|
|
47
|
-
* Commands
|
|
48
|
-
*
|
|
49
|
-
* prefix: the link card mints over one block's offsets and a heading level belongs to one block,
|
|
50
|
-
* so a range spanning blocks leaves neither of them a subject to act on.
|
|
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
55
|
'link.openCard',
|
|
54
56
|
'heading.cycle'
|
|
55
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'
|
|
64
|
+
]);
|
|
56
65
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* router. Declined wherever no router is threaded, so a dispatch site that skips it cannot
|
|
60
|
-
* 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.
|
|
61
68
|
*/
|
|
62
69
|
export const CROSS_BLOCK_RANGE_COMMAND_IDS = new Set([
|
|
63
70
|
'format.toggleStrong',
|
|
@@ -66,10 +73,8 @@ export const CROSS_BLOCK_RANGE_COMMAND_IDS = new Set([
|
|
|
66
73
|
'format.toggleCode'
|
|
67
74
|
]);
|
|
68
75
|
/**
|
|
69
|
-
* The
|
|
70
|
-
*
|
|
71
|
-
* answers the range question in one of the two sets above, so `canRunCommand` tells a bar which
|
|
72
|
-
* of its buttons a cross-block selection leaves nothing to act on.
|
|
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.
|
|
73
78
|
*/
|
|
74
79
|
export const TOOLBAR_COMMANDS = {
|
|
75
80
|
toggleStrong: 'format.toggleStrong',
|
|
@@ -78,33 +83,48 @@ export const TOOLBAR_COMMANDS = {
|
|
|
78
83
|
toggleCode: 'format.toggleCode',
|
|
79
84
|
/** The link editor Mod+K opens: over a selection it creates, inside a link it edits. */
|
|
80
85
|
editLink: 'link.openCard',
|
|
81
|
-
/** The heading picker's
|
|
86
|
+
/** The heading picker's command, taking the level as its argument; 0 is normal text. */
|
|
82
87
|
setHeading: 'heading.cycle'
|
|
83
88
|
};
|
|
84
|
-
const globalCommands = new Map();
|
|
85
|
-
export function registerCommand(id, run) {
|
|
86
|
-
registerOnce(globalCommands.has(id), () => globalCommands.set(id, run), `registerCommand: "${id}" is already registered. Commands are register-once.`);
|
|
87
|
-
}
|
|
88
|
-
export function getCommand(id) {
|
|
89
|
-
return globalCommands.get(id);
|
|
90
|
-
}
|
|
91
89
|
const BUILTIN_COMMAND_IDS = new Set([...GLOBAL_COMMAND_IDS, ...BLOCK_COMMAND_IDS]);
|
|
92
90
|
/** True when the id is in the closed built-in vocabulary. Takes a plain, unbranded name. */
|
|
93
91
|
export function isBuiltinCommandId(id) {
|
|
94
92
|
return BUILTIN_COMMAND_IDS.has(id);
|
|
95
93
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
export function
|
|
101
|
-
|
|
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
|
+
}
|
|
102
123
|
}
|
|
103
124
|
const warnedDeadKeys = new Set();
|
|
104
125
|
/**
|
|
105
|
-
* Dev-warn once per (id, path) that a command reached no runnable handler
|
|
106
|
-
*
|
|
107
|
-
* 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.
|
|
108
128
|
*/
|
|
109
129
|
export function warnDeadKeyCommand(id, path) {
|
|
110
130
|
const key = `${path} ${id}`;
|
|
@@ -114,9 +134,10 @@ export function warnDeadKeyCommand(id, path) {
|
|
|
114
134
|
devWarn('commands', `command "${id}" reached no handler on the ${path} path; key is dead`);
|
|
115
135
|
}
|
|
116
136
|
/** Test-only. Clears the dead-key warn memo so each test sees a first-time warn. */
|
|
117
|
-
|
|
137
|
+
function __resetCommandWarningsForTests() {
|
|
118
138
|
warnedDeadKeys.clear();
|
|
119
139
|
}
|
|
140
|
+
enrollTestReset(__resetCommandWarningsForTests);
|
|
120
141
|
registerCommand('history.undo', (ctx) => {
|
|
121
142
|
void ctx.history.requestUndo();
|
|
122
143
|
return true;
|
|
@@ -130,87 +151,91 @@ export const GLOBAL_KEYMAP = [
|
|
|
130
151
|
{ chord: 'Mod+Y', command: 'history.redo' },
|
|
131
152
|
{ chord: 'Mod+Shift+Z', command: 'history.redo' }
|
|
132
153
|
];
|
|
133
|
-
|
|
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
|
+
});
|
|
134
162
|
// Chords the editor UI intercepts outside the command resolvers (the search bar's
|
|
135
|
-
// document-level listener)
|
|
163
|
+
// document-level listener): a plugin binding one would fire twice on a single keypress.
|
|
136
164
|
const RESERVED_UI_CHORDS = new Set(['Mod+F', 'Mod+H']);
|
|
137
165
|
/**
|
|
138
|
-
* True when the editor UI intercepts a chord outside the command resolvers. The single
|
|
139
|
-
* 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.
|
|
140
168
|
*/
|
|
141
169
|
export function isReservedUiChord(chord) {
|
|
142
|
-
return RESERVED_UI_CHORDS.has(
|
|
170
|
+
return RESERVED_UI_CHORDS.has(chord);
|
|
143
171
|
}
|
|
144
172
|
/** The same pair, for the callers that must enumerate it rather than test one chord. */
|
|
145
173
|
export function reservedUiChords() {
|
|
146
174
|
return [...RESERVED_UI_CHORDS];
|
|
147
175
|
}
|
|
148
|
-
/**
|
|
149
|
-
*
|
|
150
|
-
* name IS the id). A dev-server re-eval re-binding its OWN command to its OWN chord is an
|
|
151
|
-
* idempotent replace, not a collision; reserved chords and cross-command collisions still throw.
|
|
152
|
-
*/
|
|
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. */
|
|
153
178
|
export function assertPluginGlobalChordAvailable(rawChord, candidateCommand) {
|
|
154
|
-
//
|
|
155
|
-
//
|
|
156
|
-
|
|
157
|
-
if (
|
|
158
|
-
throw new Error(`plugin global chord "${rawChord}" is
|
|
159
|
-
}
|
|
160
|
-
const chord = normalizeChord(rawChord);
|
|
161
|
-
if (RESERVED_UI_CHORDS.has(chord)) {
|
|
162
|
-
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`);
|
|
163
184
|
}
|
|
164
185
|
// Activation-blind: registration is process-global register-once, so a chord no editor
|
|
165
|
-
// has activated yet still collides.
|
|
166
|
-
const collision =
|
|
186
|
+
// has activated yet, or a failed plugin's, still collides.
|
|
187
|
+
const collision = findByChord(GLOBAL_KEYMAP, chord) ?? pluginGlobalKeymap.getIgnoringActivation(chord);
|
|
167
188
|
if (collision) {
|
|
168
189
|
if (devReplacesRegistration() && collision.command === candidateCommand)
|
|
169
|
-
return;
|
|
170
|
-
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`);
|
|
171
192
|
}
|
|
193
|
+
return chord;
|
|
172
194
|
}
|
|
173
|
-
export function registerPluginGlobalBinding(binding
|
|
174
|
-
assertPluginGlobalChordAvailable(binding.chord, binding.command);
|
|
175
|
-
//
|
|
176
|
-
//
|
|
177
|
-
|
|
178
|
-
const entry = { ...binding, plugin };
|
|
179
|
-
const existing = pluginGlobalKeymap.findIndex((b) => normalizeChord(b.chord) === chord);
|
|
180
|
-
if (existing >= 0)
|
|
181
|
-
pluginGlobalKeymap[existing] = entry;
|
|
182
|
-
else
|
|
183
|
-
pluginGlobalKeymap.push(entry);
|
|
184
|
-
}
|
|
185
|
-
/** The tier's one activation gate: every read of a plugin-global chord passes through it,
|
|
186
|
-
* and an absent activation means every installed plugin. */
|
|
187
|
-
function claimedHere(entry, activation) {
|
|
188
|
-
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 });
|
|
189
200
|
}
|
|
190
201
|
export function pluginGlobalBinding(chord, activation) {
|
|
191
|
-
|
|
192
|
-
return entry && claimedHere(entry, activation) ? entry : null;
|
|
202
|
+
return pluginGlobalKeymap.get(chord, activation) ?? null;
|
|
193
203
|
}
|
|
194
|
-
/** Every
|
|
195
|
-
|
|
196
|
-
export function pluginGlobalChords(activation) {
|
|
204
|
+
/** Every plugin-global binding `activation` resolves, each with the plugin that installed it. */
|
|
205
|
+
export function pluginGlobalBindings(activation) {
|
|
197
206
|
return pluginGlobalKeymap
|
|
198
|
-
.
|
|
199
|
-
.map((
|
|
207
|
+
.entries(activation)
|
|
208
|
+
.map(([chord, binding]) => ({ ...binding, plugin: pluginGlobalKeymap.ownerOf(chord) }));
|
|
200
209
|
}
|
|
201
|
-
|
|
202
|
-
|
|
210
|
+
/** The chords of {@link pluginGlobalBindings}, normalized. */
|
|
211
|
+
export function pluginGlobalChords(activation) {
|
|
212
|
+
return pluginGlobalKeymap.entries(activation).map(([chord]) => chord);
|
|
203
213
|
}
|
|
204
|
-
/** First binding in `bindings`
|
|
214
|
+
/** First binding in `bindings` for `chord`; every stored chord is normalized already. */
|
|
205
215
|
function findByChord(bindings, chord) {
|
|
206
|
-
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))];
|
|
207
232
|
}
|
|
208
233
|
function builtinKindBinding(chord, kind) {
|
|
209
|
-
return findByChord(
|
|
234
|
+
return findByChord(kindKeymap(kind), chord);
|
|
210
235
|
}
|
|
211
236
|
/**
|
|
212
|
-
* The consumer-override
|
|
213
|
-
* `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.
|
|
214
239
|
*/
|
|
215
240
|
function overrideTier(overrides, kind, chord) {
|
|
216
241
|
const kindDecision = overrideDecision(lookupOverride(overrides, kind, chord));
|
|
@@ -218,16 +243,14 @@ function overrideTier(overrides, kind, chord) {
|
|
|
218
243
|
return kindDecision;
|
|
219
244
|
return overrideDecision(lookupOverride(overrides, 'global', chord));
|
|
220
245
|
}
|
|
221
|
-
/** The built-in global keymap
|
|
222
|
-
*
|
|
246
|
+
/** The built-in global keymap, then the plugin-global chords: the shared tail of leaf
|
|
247
|
+
* resolution and both global-only resolvers. */
|
|
223
248
|
function builtinGlobalBinding(chord, activation) {
|
|
224
249
|
return findByChord(GLOBAL_KEYMAP, chord) ?? pluginGlobalBinding(chord, activation);
|
|
225
250
|
}
|
|
226
251
|
/**
|
|
227
|
-
*
|
|
228
|
-
* built-in
|
|
229
|
-
* them would double-fire. Consumer overrides ARE honored at both scopes, so a global disable
|
|
230
|
-
* 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.
|
|
231
254
|
*/
|
|
232
255
|
export function resolveKindBinding(chord, kind, overrides) {
|
|
233
256
|
const override = overrideTier(overrides, kind, chord);
|
|
@@ -246,18 +269,29 @@ export function resolveBinding(chord, kind, overrides, activation) {
|
|
|
246
269
|
return builtinKindBinding(chord, kind) ?? builtinGlobalBinding(chord, activation);
|
|
247
270
|
}
|
|
248
271
|
/**
|
|
249
|
-
*
|
|
250
|
-
*
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
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.
|
|
254
288
|
*/
|
|
255
289
|
export function isDefaultGlobalChord(chord, activation) {
|
|
256
290
|
return builtinGlobalBinding(chord, activation) !== null;
|
|
257
291
|
}
|
|
258
292
|
/**
|
|
259
|
-
* Resolve a chord at
|
|
260
|
-
*
|
|
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.
|
|
261
295
|
*/
|
|
262
296
|
export function resolveGlobalBinding(chord, overrides, activation) {
|
|
263
297
|
const decision = overrideDecision(lookupOverride(overrides, 'global', chord));
|
|
@@ -266,34 +300,35 @@ export function resolveGlobalBinding(chord, overrides, activation) {
|
|
|
266
300
|
return builtinGlobalBinding(chord, activation);
|
|
267
301
|
}
|
|
268
302
|
/**
|
|
269
|
-
* Run
|
|
270
|
-
*
|
|
271
|
-
* 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.
|
|
272
305
|
*/
|
|
273
|
-
export function runGlobalChord(chord,
|
|
274
|
-
|
|
306
|
+
export function runGlobalChord(chord, context) {
|
|
307
|
+
const binding = resolveGlobalBinding(chord, context.keybindingOverrides(), context.activation);
|
|
308
|
+
return runClaimedGlobalChord(binding, chord, context, false);
|
|
275
309
|
}
|
|
276
310
|
/**
|
|
277
|
-
* The same
|
|
278
|
-
*
|
|
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.
|
|
279
313
|
*/
|
|
280
|
-
export function runGlobalChordOnKind(chord, kind,
|
|
281
|
-
|
|
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);
|
|
282
318
|
}
|
|
283
|
-
/** A chord the built-in tables bind is consumed whatever an override
|
|
284
|
-
*
|
|
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. */
|
|
285
321
|
function runClaimedGlobalChord(binding, chord, context, kindDispatchBelow) {
|
|
286
|
-
const run = binding ? getCommand(binding.command) : undefined;
|
|
322
|
+
const run = binding ? getCommand(binding.command, context.activation) : undefined;
|
|
287
323
|
const consumed = !!run || isDefaultGlobalChord(chord, context.activation);
|
|
288
|
-
// A
|
|
289
|
-
//
|
|
290
|
-
// 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.
|
|
291
326
|
if (binding && !run && (consumed || !kindDispatchBelow)) {
|
|
292
327
|
warnDeadKeyCommand(binding.command, 'global-chord');
|
|
293
328
|
}
|
|
294
329
|
if (!consumed)
|
|
295
330
|
return false;
|
|
296
|
-
if (!context.
|
|
297
|
-
run?.(context);
|
|
331
|
+
if (!isReadingMode(context.getPresentationMode))
|
|
332
|
+
run?.({ ...context, arg: binding?.arg });
|
|
298
333
|
return true;
|
|
299
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;
|