@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
|
@@ -1,40 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* What a plugin's container component builds on: the built-in container wiring in one
|
|
3
|
+
* factory, so a plugin never touches an editor context key. Call synchronously during
|
|
4
|
+
* component init: `getContext` reads the ancestor contexts and `useContainerWindowing`
|
|
5
|
+
* sets its own.
|
|
6
6
|
*/
|
|
7
|
-
import type { BlockEditActions,
|
|
7
|
+
import type { BlockEditActions, FocusActions } from '../../action-contracts';
|
|
8
8
|
import type { NodeView } from '../../core/node-views';
|
|
9
9
|
import type { AmbientPrefix, BlockComponent, ContainerBlockComponent } from '../../block-component';
|
|
10
|
-
import {
|
|
10
|
+
import type { KindCommandTarget } from '../../schema/block-commands';
|
|
11
11
|
import { type PresentationMode } from '../../presentation-mode';
|
|
12
|
-
import {
|
|
12
|
+
import type { EditorContext } from '../../schema/plugin-install';
|
|
13
13
|
import type { WindowResult } from '../../reactivity/block-window.svelte';
|
|
14
14
|
import type { RefSlots } from '../../reactivity/publish-ref.svelte';
|
|
15
|
-
import {
|
|
15
|
+
import type { NestedActionsOverrideFactory } from '../nested/nested-actions';
|
|
16
16
|
/**
|
|
17
|
-
* The
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* The inputs the host component feeds in. A function-valued field is a live read,
|
|
18
|
+
* re-evaluated on every use; a plain-valued field is static configuration. `getBoxEl` returns
|
|
19
|
+
* the block's box, whose direct `.block-list` child windowing reads (other elements may sit
|
|
20
|
+
* beside it). It must read a `$state` element, or the list's first height guesses, made
|
|
21
|
+
* before the box exists, are never redone.
|
|
21
22
|
*/
|
|
22
23
|
export interface ContainerBlockDeps {
|
|
23
24
|
getNode(): NodeView;
|
|
24
25
|
getIndex(): number;
|
|
25
26
|
getPath(): number[];
|
|
26
27
|
getBoxEl(): HTMLElement | undefined;
|
|
27
|
-
/**
|
|
28
|
-
*
|
|
29
|
-
* takes DOM focus. The kind must also declare `blockFocus: 'whole-block'`. Supply
|
|
30
|
-
* a surface for EVERY steady state — a null degrades to the box with a dev warning.
|
|
31
|
-
*/
|
|
28
|
+
/** The element that takes DOM focus, opting a childless container into whole-block focus (the
|
|
29
|
+
* kind also declares `blockFocus: 'whole-block'`); null falls back to the box, with a dev warning. */
|
|
32
30
|
getFocusEl?: () => HTMLElement | null | undefined;
|
|
33
|
-
/** Escape hatch only: the
|
|
31
|
+
/** Escape hatch only: the collapsed state comes from a declared `reservedChrome.isCollapsed`. */
|
|
34
32
|
isCollapsed?: () => boolean;
|
|
35
|
-
/** View-state hooks handed to a
|
|
33
|
+
/** View-state hooks handed to a block command as `ctx.hooks`; typed `unknown`. */
|
|
36
34
|
commandHooks?: () => unknown;
|
|
37
|
-
/**
|
|
35
|
+
/** The marker prefix drawn before the first child's bytes, like a list item's `- `. */
|
|
38
36
|
getAmbientPrefix?: () => AmbientPrefix;
|
|
39
37
|
}
|
|
40
38
|
/**
|
|
@@ -53,92 +51,66 @@ export interface ContainerBlockListProps {
|
|
|
53
51
|
}
|
|
54
52
|
export type { ContainerBlockComponent };
|
|
55
53
|
export interface ContainerBlock {
|
|
56
|
-
/** Spread onto `<BlockList {...blockListProps} />` inside the
|
|
54
|
+
/** Spread onto `<BlockList {...blockListProps} />` inside the block's box. */
|
|
57
55
|
blockListProps: ContainerBlockListProps;
|
|
58
|
-
/** The live
|
|
56
|
+
/** The live effective mode, for disabling edit controls. Preferred over reading the DOM. */
|
|
59
57
|
getPresentationMode(): PresentationMode;
|
|
60
58
|
/**
|
|
61
|
-
* The live editor theme name (`data-editor-theme`). A body
|
|
59
|
+
* The live editor theme name (`data-editor-theme`). A body drawn by a rendering library
|
|
62
60
|
* rather than CSS must key its render on this and re-render when it changes.
|
|
63
61
|
*/
|
|
64
62
|
getTheme(): string;
|
|
65
|
-
/**
|
|
66
|
-
*
|
|
67
|
-
* `{ plugin, options }` entry's channel, so two editors in one process configure the
|
|
68
|
-
* same kind differently. `unknown`, like `commandHooks`: the plugin narrows it.
|
|
69
|
-
*/
|
|
63
|
+
/** This editor's options for the plugin owning this block's kind (its `{ plugin, options }`
|
|
64
|
+
* entry), so two editors can configure one kind differently. `unknown`: the plugin narrows it. */
|
|
70
65
|
getOptions(): unknown;
|
|
71
|
-
/**
|
|
66
|
+
/** This editor's context for the plugin that owns this block's kind; undefined in a bare
|
|
67
|
+
* harness. Its `computeInlineContent` reads the inline syntax this editor draws. */
|
|
68
|
+
getEditor(): EditorContext | undefined;
|
|
69
|
+
/** The `BlockComponent` the host re-exports for BlockHost. */
|
|
72
70
|
containerApi: ContainerBlockComponent;
|
|
71
|
+
/** Commit a shallow metadata patch as one undo entry, through the kind's `rebuildRaw`; the commit
|
|
72
|
+
* puts the caret at `caret`, relative to this container (`[]` is the block), once it renders. */
|
|
73
|
+
updateOwnMetadata(patch: Record<string, unknown>, options?: {
|
|
74
|
+
caret?: {
|
|
75
|
+
path: number[];
|
|
76
|
+
offset: number;
|
|
77
|
+
};
|
|
78
|
+
}): void | Promise<void>;
|
|
73
79
|
/**
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*/
|
|
77
|
-
updateOwnMetadata(patch: Record<string, unknown>, afterTick?: CommitAfterTick): void | Promise<void>;
|
|
78
|
-
/**
|
|
79
|
-
* Attach to the chrome box: a chord bubbling from an inner leaf resolves against
|
|
80
|
-
* this kind's keymap. Kind-only, so a bubbled undo/redo never double-fires.
|
|
80
|
+
* Attach to the block's box: a chord bubbling from an inner leaf resolves against this
|
|
81
|
+
* kind's keymap. Kind keymap only, so a bubbled undo or redo never fires twice.
|
|
81
82
|
*/
|
|
82
83
|
handleKeydown(e: KeyboardEvent): void;
|
|
83
|
-
/**
|
|
84
|
-
*
|
|
85
|
-
* plugin-owned editable whose caret has reached its own edge. Routes through the
|
|
86
|
-
* editor's focus traversal, so the landing inherits skip-non-focusable, container
|
|
87
|
-
* entry and windowing reveal. False for a modified or non-arrow key: leave it native.
|
|
88
|
-
*/
|
|
84
|
+
/** Hand the caret, through the editor's focus traversal, to the neighbour a plain arrow points
|
|
85
|
+
* at once a plugin editor's caret reaches its edge. False for a modified or non-arrow key. */
|
|
89
86
|
moveFocusOut(e: KeyboardEvent): boolean;
|
|
90
|
-
/**
|
|
91
|
-
*
|
|
92
|
-
* block's view for one of a different height, then await the returned restore: the
|
|
93
|
-
* scrollport is back where it was once the swap has flushed. A reveal in flight outranks
|
|
94
|
-
* it and the restore stands down.
|
|
95
|
-
*/
|
|
87
|
+
/** Read the scroll position before swapping this block's view for one of another height, and
|
|
88
|
+
* await the returned restore after the swap renders. A scroll-into-view in progress wins. */
|
|
96
89
|
captureScrollPosition(): () => Promise<void>;
|
|
97
90
|
}
|
|
98
|
-
/**
|
|
99
|
-
*
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
*/
|
|
103
|
-
export declare function composeCollapseProbe(explicit: (() => boolean) | undefined, getNode: () => NodeView, getPresentationMode?: () => PresentationMode): () => boolean;
|
|
104
|
-
/**
|
|
105
|
-
* The expand door a reveal opens before descending into a collapsed body. Commits
|
|
106
|
-
* `reservedChrome.expandPatch` as a real undoable edit, not a view-only divergence
|
|
107
|
-
* from the CST; declines in reading mode, which commits nothing.
|
|
108
|
-
*/
|
|
91
|
+
/** Collapsed means the descriptor's `reservedChrome.isCollapsed`; a dev build checks an explicit dep
|
|
92
|
+
* against it, except in reading mode, where a section the user opened is ahead of the document. */
|
|
93
|
+
export declare function composeCollapseProbe(explicit: (() => boolean) | undefined, getNode: () => NodeView, getPresentationMode: () => PresentationMode): () => boolean;
|
|
94
|
+
/** Open a collapsed body before a descent goes into it, as an undoable commit of
|
|
95
|
+
* `reservedChrome.expandPatch`; declines in reading mode, which commits nothing. */
|
|
109
96
|
export declare function composeExpandDoor(deps: {
|
|
110
97
|
getNode: () => NodeView;
|
|
111
98
|
isCollapsed: () => boolean;
|
|
112
99
|
getPresentationMode: () => PresentationMode;
|
|
113
100
|
commit: (patch: Record<string, unknown>) => void | Promise<void>;
|
|
114
101
|
}): () => Promise<boolean>;
|
|
115
|
-
/**
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
*/
|
|
119
|
-
export declare function composeMetadataDoor(deps: {
|
|
120
|
-
getNode: () => NodeView;
|
|
121
|
-
getPresentationMode: () => PresentationMode;
|
|
122
|
-
commit: (patch: Record<string, unknown>, afterTick?: CommitAfterTick) => void | Promise<void>;
|
|
123
|
-
}): ContainerBlock['updateOwnMetadata'];
|
|
124
|
-
/** While collapsed the body is unmounted, so `descendToBody` would mint an invisible one. */
|
|
125
|
-
export declare function gateDescendOnCollapse(isCollapsed: (() => boolean) | undefined, descend: (innerIndex: number) => void | Promise<void>): (innerIndex: number) => Promise<void>;
|
|
126
|
-
/**
|
|
127
|
-
* While collapsed only the chrome row is mounted, so an interior `moveFocus`
|
|
128
|
-
* targeting a body index dead-ends on the unmounted ref. Route body targets past the
|
|
129
|
-
* container instead — the same exit an open container's past-end move takes.
|
|
130
|
-
*/
|
|
102
|
+
/** While collapsed the body is unmounted, so `descendToBody` would create an invisible one. */
|
|
103
|
+
export declare function gateDescendOnCollapse(isCollapsed: (() => boolean) | undefined, descend: (innerIndex: number) => Promise<boolean>): (innerIndex: number) => Promise<boolean>;
|
|
104
|
+
/** While collapsed only the title row is mounted, so a `moveFocus` at a body index goes past the
|
|
105
|
+
* container instead, as an open container's past-the-end move does. */
|
|
131
106
|
export declare function gateMoveFocusOnCollapse(isCollapsed: (() => boolean) | undefined, moveWithin: FocusActions['moveFocus'], parentFocus: FocusActions, getIndex: () => number): FocusActions['moveFocus'];
|
|
132
107
|
export type NestedActionsOverrides = ReturnType<NestedActionsOverrideFactory>;
|
|
133
|
-
/** Each
|
|
108
|
+
/** Each group spreads its base first: a check adds a member, never replaces one. */
|
|
134
109
|
export declare function composeCollapseGates(base: NestedActionsOverrides, gates: {
|
|
135
110
|
descendToBody: NonNullable<BlockEditActions['descendToBody']>;
|
|
136
111
|
moveFocus: FocusActions['moveFocus'];
|
|
137
112
|
}): NestedActionsOverrides;
|
|
138
|
-
/**
|
|
139
|
-
*
|
|
140
|
-
|
|
141
|
-
* chord resolves only through a registered one.
|
|
142
|
-
*/
|
|
143
|
-
export declare function buildContainerKindTarget(deps: Pick<ContainerBlockDeps, 'getNode' | 'commandHooks'>, updateOwnMetadata: ContainerBlock['updateOwnMetadata'], pluginEditor?: PluginEditorLookup): KindCommandTarget;
|
|
113
|
+
/** The kind-command target a plugin container hands to `dispatchKindCommand`. It has no
|
|
114
|
+
* `runCommand`, since a plugin container owns no built-in kind commands. */
|
|
115
|
+
export declare function buildContainerKindTarget(deps: Pick<ContainerBlockDeps, 'getNode' | 'commandHooks'>, updateOwnMetadata: ContainerBlock['updateOwnMetadata']): KindCommandTarget;
|
|
144
116
|
export declare function createContainerBlock(deps: ContainerBlockDeps): ContainerBlock;
|
|
@@ -1,50 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* What a plugin's container component builds on: the built-in container wiring in one
|
|
3
|
+
* factory, so a plugin never touches an editor context key. Call synchronously during
|
|
4
|
+
* component init: `getContext` reads the ancestor contexts and `useContainerWindowing`
|
|
5
|
+
* sets its own.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { isDevChecks } from '../../env';
|
|
8
8
|
import { getContext } from 'svelte';
|
|
9
9
|
import { getBlockKindDescriptor } from '../../schema/block-kind-descriptor';
|
|
10
10
|
import { expandContainerPatch, isCollapsedContainer } from '../../schema/reserved-chrome';
|
|
11
|
-
import {
|
|
12
|
-
import { eventToChord } from '../../schema/keybindings';
|
|
11
|
+
import { commandForKey } from '../../schema/commands';
|
|
13
12
|
import { isReadingMode } from '../../presentation-mode';
|
|
14
13
|
import { devWarn } from '../../dev-warn';
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import { owningPluginEditor } from '../../schema/plugin-install';
|
|
19
|
-
import { createBlockListState } from '../../reactivity/block-list-state.svelte';
|
|
14
|
+
import { blockAccessibleName } from '../../a11y-strings';
|
|
15
|
+
import { EDITOR_DOC_KEY, EDITOR_POLICIES_KEY, EDITOR_SERVICES_KEY } from '../../editor-keys';
|
|
16
|
+
import { componentPluginEditor } from '../../schema/block-component-registry';
|
|
20
17
|
import { useContainerWindowing } from '../../reactivity/use-container-windowing.svelte';
|
|
21
18
|
import { createContainerExitOverrides } from '../container-exit-overrides';
|
|
22
|
-
import {
|
|
19
|
+
import { delegateMoveFocus } from '../focus/focus-dispatch';
|
|
20
|
+
import { createContainerBlockComponent, dispatchContainerChord, dispatchWholeBlockGlobalChord, focusAcrossBlockEdge, handleWholeBlockKeys } from '../container-block-component';
|
|
23
21
|
import { composeWholeBlockFocusSurface, createWholeBlockInputProxy, holdsWholeBlockFocus, isEditableEventTarget } from '../whole-block-focus-surface';
|
|
24
|
-
import {
|
|
22
|
+
import { createContainerActions } from '../nested/container-actions';
|
|
25
23
|
const _conforms = [true, true];
|
|
26
|
-
// ──
|
|
27
|
-
/**
|
|
28
|
-
*
|
|
29
|
-
* probe. An explicit dep is dev-cross-checked against it, except in reading mode,
|
|
30
|
-
* which cannot write — a reader's open section is legitimately ahead of the document.
|
|
31
|
-
*/
|
|
24
|
+
// ── Collapsed-container checks ───────────────────────────────────────────────
|
|
25
|
+
/** Collapsed means the descriptor's `reservedChrome.isCollapsed`; a dev build checks an explicit dep
|
|
26
|
+
* against it, except in reading mode, where a section the user opened is ahead of the document. */
|
|
32
27
|
export function composeCollapseProbe(explicit, getNode, getPresentationMode) {
|
|
33
28
|
if (!explicit)
|
|
34
29
|
return () => isCollapsedContainer(getNode());
|
|
35
30
|
return () => {
|
|
36
31
|
const value = explicit();
|
|
37
|
-
if (
|
|
32
|
+
if (isDevChecks() &&
|
|
33
|
+
value !== isCollapsedContainer(getNode()) &&
|
|
34
|
+
!isReadingMode(getPresentationMode)) {
|
|
38
35
|
devWarn('plugin-container', `isCollapsed dep disagrees with the declared reservedChrome.isCollapsed probe for kind "${getNode().kind}"`);
|
|
39
36
|
}
|
|
40
37
|
return value;
|
|
41
38
|
};
|
|
42
39
|
}
|
|
43
|
-
/**
|
|
44
|
-
*
|
|
45
|
-
* `reservedChrome.expandPatch` as a real undoable edit, not a view-only divergence
|
|
46
|
-
* from the CST; declines in reading mode, which commits nothing.
|
|
47
|
-
*/
|
|
40
|
+
/** Open a collapsed body before a descent goes into it, as an undoable commit of
|
|
41
|
+
* `reservedChrome.expandPatch`; declines in reading mode, which commits nothing. */
|
|
48
42
|
export function composeExpandDoor(deps) {
|
|
49
43
|
return async () => {
|
|
50
44
|
if (!deps.isCollapsed() || isReadingMode(deps.getPresentationMode))
|
|
@@ -56,46 +50,26 @@ export function composeExpandDoor(deps) {
|
|
|
56
50
|
return true;
|
|
57
51
|
};
|
|
58
52
|
}
|
|
59
|
-
/**
|
|
60
|
-
* The `updateOwnMetadata` gate: reading mode writes no bytes (plugin-contract.md), so the
|
|
61
|
-
* commit declines as a no-op and DEV names the kind that knocked.
|
|
62
|
-
*/
|
|
63
|
-
export function composeMetadataDoor(deps) {
|
|
64
|
-
return (patch, afterTick) => {
|
|
65
|
-
if (isReadingMode(deps.getPresentationMode)) {
|
|
66
|
-
devWarn('plugin-container', `updateOwnMetadata declined: reading mode writes no bytes (kind "${deps.getNode().kind}")`);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
return deps.commit(patch, afterTick);
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
/** While collapsed the body is unmounted, so `descendToBody` would mint an invisible one. */
|
|
53
|
+
/** While collapsed the body is unmounted, so `descendToBody` would create an invisible one. */
|
|
73
54
|
export function gateDescendOnCollapse(isCollapsed, descend) {
|
|
74
55
|
return async (innerIndex) => {
|
|
75
56
|
if (isCollapsed?.())
|
|
76
|
-
return;
|
|
77
|
-
|
|
57
|
+
return false;
|
|
58
|
+
return descend(innerIndex);
|
|
78
59
|
};
|
|
79
60
|
}
|
|
80
|
-
/**
|
|
81
|
-
*
|
|
82
|
-
* targeting a body index dead-ends on the unmounted ref. Route body targets past the
|
|
83
|
-
* container instead — the same exit an open container's past-end move takes.
|
|
84
|
-
*/
|
|
61
|
+
/** While collapsed only the title row is mounted, so a `moveFocus` at a body index goes past the
|
|
62
|
+
* container instead, as an open container's past-the-end move does. */
|
|
85
63
|
export function gateMoveFocusOnCollapse(isCollapsed, moveWithin, parentFocus, getIndex) {
|
|
86
64
|
return async (innerIndex, position, options) => {
|
|
87
65
|
if (innerIndex >= 1 && isCollapsed?.()) {
|
|
88
|
-
|
|
89
|
-
if (options)
|
|
90
|
-
await parentFocus.moveFocus(getIndex() + 1, position, options);
|
|
91
|
-
else
|
|
92
|
-
await parentFocus.moveFocus(getIndex() + 1, position);
|
|
66
|
+
await delegateMoveFocus(parentFocus, getIndex() + 1, position, options);
|
|
93
67
|
return;
|
|
94
68
|
}
|
|
95
69
|
await moveWithin(innerIndex, position, options);
|
|
96
70
|
};
|
|
97
71
|
}
|
|
98
|
-
/** Each
|
|
72
|
+
/** Each group spreads its base first: a check adds a member, never replaces one. */
|
|
99
73
|
export function composeCollapseGates(base, gates) {
|
|
100
74
|
return {
|
|
101
75
|
...base,
|
|
@@ -104,128 +78,93 @@ export function composeCollapseGates(base, gates) {
|
|
|
104
78
|
};
|
|
105
79
|
}
|
|
106
80
|
// ── Kind-command target ──────────────────────────────────────────────────────
|
|
107
|
-
/**
|
|
108
|
-
*
|
|
109
|
-
|
|
110
|
-
* chord resolves only through a registered one.
|
|
111
|
-
*/
|
|
112
|
-
export function buildContainerKindTarget(deps, updateOwnMetadata, pluginEditor) {
|
|
81
|
+
/** The kind-command target a plugin container hands to `dispatchKindCommand`. It has no
|
|
82
|
+
* `runCommand`, since a plugin container owns no built-in kind commands. */
|
|
83
|
+
export function buildContainerKindTarget(deps, updateOwnMetadata) {
|
|
113
84
|
return {
|
|
114
85
|
get kind() {
|
|
115
86
|
return deps.getNode().kind;
|
|
116
87
|
},
|
|
117
|
-
runCommand: () => false,
|
|
118
88
|
getCommandContext: () => ({
|
|
119
89
|
node: deps.getNode(),
|
|
120
90
|
updateMetadata: (patch) => {
|
|
121
91
|
void updateOwnMetadata(patch);
|
|
122
92
|
},
|
|
123
|
-
hooks: deps.commandHooks?.()
|
|
124
|
-
editor: owningPluginEditor(pluginEditor, deps.getNode().kind)
|
|
93
|
+
hooks: deps.commandHooks?.()
|
|
125
94
|
})
|
|
126
95
|
};
|
|
127
96
|
}
|
|
128
97
|
// ── Factory ──────────────────────────────────────────────────────────────────
|
|
129
98
|
export function createContainerBlock(deps) {
|
|
130
|
-
const
|
|
131
|
-
const
|
|
132
|
-
const
|
|
133
|
-
const
|
|
134
|
-
const
|
|
135
|
-
const
|
|
136
|
-
const editorDoc = getContext(EDITOR_DOC_KEY);
|
|
137
|
-
const pluginEditor = editorDoc?.pluginEditor;
|
|
138
|
-
const linkRef = editorDoc?.linkRef;
|
|
139
|
-
// Resolved by the kind's recorded owner, like the kind-command context's `editor`.
|
|
140
|
-
const getOptions = () => owningPluginEditor(pluginEditor, deps.getNode().kind)?.options;
|
|
141
|
-
const listState = createBlockListState(deps.getNode);
|
|
142
|
-
// One live scope over the frozen thunks, shared by every factory this seam wires.
|
|
143
|
-
// Passed by reference, never spread — spreading would snapshot the getters.
|
|
144
|
-
const scope = {
|
|
145
|
-
get index() {
|
|
146
|
-
return deps.getIndex();
|
|
147
|
-
},
|
|
148
|
-
get node() {
|
|
149
|
-
return deps.getNode();
|
|
150
|
-
},
|
|
151
|
-
get path() {
|
|
152
|
-
return deps.getPath();
|
|
153
|
-
}
|
|
154
|
-
};
|
|
99
|
+
const { caretMemory, selection, scrollOwner, commands } = getContext(EDITOR_SERVICES_KEY);
|
|
100
|
+
const { theme: getTheme } = getContext(EDITOR_POLICIES_KEY);
|
|
101
|
+
const { pluginEditor, reading } = getContext(EDITOR_DOC_KEY);
|
|
102
|
+
const getPresentationMode = reading.mode;
|
|
103
|
+
const getEditor = () => componentPluginEditor(pluginEditor, deps.getNode().kind);
|
|
104
|
+
const getOptions = () => getEditor()?.options;
|
|
155
105
|
const collapsed = composeCollapseProbe(deps.isCollapsed, deps.getNode, getPresentationMode);
|
|
156
|
-
const
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
106
|
+
const { state: listState, parent: { blockEdit: parentBlockEdit, focus: parentFocus } } = createContainerActions({
|
|
107
|
+
getNode: deps.getNode,
|
|
108
|
+
getIndex: deps.getIndex,
|
|
109
|
+
getPath: deps.getPath,
|
|
110
|
+
childList: () => childList,
|
|
111
|
+
// The exit rules and the collapse gates override the same defaults, so they coexist; for a
|
|
112
|
+
// container that cannot collapse the gates are inert.
|
|
113
|
+
overrides: ({ scope, parent, reading }) => (defaults) => composeCollapseGates(createContainerExitOverrides({ scope, parentBlockEdit: parent.blockEdit, reading })(defaults), {
|
|
114
|
+
descendToBody: gateDescendOnCollapse(collapsed, defaults.blockEdit.descendToBody),
|
|
115
|
+
moveFocus: gateMoveFocusOnCollapse(collapsed, defaults.focus.moveFocus, parent.focus, deps.getIndex)
|
|
116
|
+
})
|
|
162
117
|
});
|
|
163
|
-
const bundle = createStandardNestedActions(listState, {
|
|
164
|
-
scope,
|
|
165
|
-
stickyColumn,
|
|
166
|
-
grammar: registryView.grammar,
|
|
167
|
-
getPresentationMode,
|
|
168
|
-
linkRef,
|
|
169
|
-
parent: {
|
|
170
|
-
blockEdit: parentBlockEdit,
|
|
171
|
-
focus: parentFocus,
|
|
172
|
-
containerEdit: parentContainerEdit
|
|
173
|
-
}
|
|
174
|
-
}, overrideFactory);
|
|
175
|
-
setNestedActionsContexts(bundle);
|
|
176
118
|
const windowing = useContainerWindowing({
|
|
177
|
-
getIndex: deps.getIndex,
|
|
178
119
|
getParentPath: deps.getPath,
|
|
179
120
|
getChildren: () => deps.getNode().children ?? [],
|
|
180
121
|
getChildIds: () => listState.innerBlockIds,
|
|
181
122
|
getListEl: () => deps.getBoxEl()?.querySelector(':scope > .block-list') ?? null,
|
|
182
|
-
getOwnEl: () => deps.getBoxEl()?.closest('.block-host') ?? null,
|
|
183
|
-
provideLeafChannel: true,
|
|
184
123
|
isCollapsed: collapsed
|
|
185
124
|
});
|
|
186
|
-
// One composed
|
|
187
|
-
//
|
|
125
|
+
// One composed focus element feeds the component and the keydown check, so a box focused
|
|
126
|
+
// by the fallback passes the same containment check the key handling uses.
|
|
188
127
|
const wholeBlockSurface = deps.getFocusEl
|
|
189
128
|
? composeWholeBlockFocusSurface(deps.getFocusEl, () => deps.getBoxEl(), () => deps.getNode().kind)
|
|
190
129
|
: undefined;
|
|
191
130
|
// The editing host AltGr and IME input arrive through: keydown alone drops both, and a
|
|
192
|
-
// whole-block kind has no editable
|
|
131
|
+
// whole-block kind has no editable element of its own to catch them.
|
|
193
132
|
const inputProxy = wholeBlockSurface
|
|
194
133
|
? createWholeBlockInputProxy({
|
|
195
134
|
getBoxEl: () => deps.getBoxEl(),
|
|
196
135
|
getFocusEl: wholeBlockSurface,
|
|
197
136
|
isReading: () => isReadingMode(getPresentationMode),
|
|
137
|
+
getLabel: () => blockAccessibleName(deps.getNode()),
|
|
198
138
|
mint: (text) => void parentBlockEdit.insertParagraph(deps.getIndex() + 1, text)
|
|
199
139
|
})
|
|
200
140
|
: undefined;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
141
|
+
const childList = {
|
|
142
|
+
count: () => deps.getNode().children?.length ?? 0,
|
|
143
|
+
refs: listState.refSlots,
|
|
144
|
+
windowing,
|
|
205
145
|
isCollapsed: collapsed,
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
146
|
+
// Through a closure, not the `updateOwnMetadata` value: that const is declared below.
|
|
147
|
+
openCollapsed: composeExpandDoor({
|
|
148
|
+
getNode: deps.getNode,
|
|
149
|
+
isCollapsed: collapsed,
|
|
150
|
+
getPresentationMode,
|
|
151
|
+
commit: (patch) => updateOwnMetadata(patch)
|
|
152
|
+
})
|
|
153
|
+
};
|
|
209
154
|
const containerApi = createContainerBlockComponent({
|
|
210
|
-
// The kind's descriptor is the declaration; the mounted
|
|
155
|
+
// The kind's descriptor is the declaration; the mounted component only reports it.
|
|
211
156
|
get editable() {
|
|
212
157
|
return getBlockKindDescriptor(deps.getNode().kind).editable;
|
|
213
158
|
},
|
|
214
159
|
selection,
|
|
160
|
+
reading,
|
|
215
161
|
get innerBlockRefs() {
|
|
216
162
|
return listState.innerBlockRefs;
|
|
217
163
|
},
|
|
218
|
-
|
|
219
|
-
get nodeChildrenLength() {
|
|
220
|
-
return deps.getNode().children?.length ?? 0;
|
|
221
|
-
},
|
|
164
|
+
childList,
|
|
222
165
|
get node() {
|
|
223
166
|
return deps.getNode();
|
|
224
167
|
},
|
|
225
|
-
revealChild: windowing.revealChild,
|
|
226
|
-
isInWindow: windowing.isInWindow,
|
|
227
|
-
isCollapsed: collapsed,
|
|
228
|
-
expandCollapsed,
|
|
229
168
|
getFocusEl: wholeBlockSurface,
|
|
230
169
|
getBoxEl: () => deps.getBoxEl(),
|
|
231
170
|
inputProxy
|
|
@@ -244,63 +183,52 @@ export function createContainerBlock(deps) {
|
|
|
244
183
|
get window() {
|
|
245
184
|
return windowing.window;
|
|
246
185
|
},
|
|
247
|
-
//
|
|
248
|
-
|
|
249
|
-
|
|
186
|
+
// The same declaration the keyboard's reorder reads, so a drag moves what Alt+Arrow moves.
|
|
187
|
+
get reorderable() {
|
|
188
|
+
return getBlockKindDescriptor(deps.getNode().kind).reorderChildren !== undefined;
|
|
189
|
+
},
|
|
250
190
|
get ambientPrefixForFirst() {
|
|
251
191
|
return deps.getAmbientPrefix?.() ?? '';
|
|
252
192
|
}
|
|
253
193
|
};
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
activation: activePlugins
|
|
194
|
+
// Reading mode declines at the commit, which names the write in a dev build.
|
|
195
|
+
const updateOwnMetadata = async (patch, options) => {
|
|
196
|
+
await parentBlockEdit.updateBlockMetadata(deps.getIndex(), patch, options);
|
|
197
|
+
};
|
|
198
|
+
const kindTarget = buildContainerKindTarget(deps, updateOwnMetadata);
|
|
199
|
+
// Focused as a whole, the block is the one a reorder chord moves; a key bubbling from an
|
|
200
|
+
// inner leaf was that leaf's to move.
|
|
201
|
+
const wholeBlockTarget = {
|
|
202
|
+
get kind() {
|
|
203
|
+
return kindTarget.kind;
|
|
204
|
+
},
|
|
205
|
+
getCommandContext: kindTarget.getCommandContext,
|
|
206
|
+
getPath: deps.getPath
|
|
268
207
|
};
|
|
208
|
+
const commandOf = (e) => commandForKey(e, deps.getNode().kind, commands);
|
|
269
209
|
const handleKeydown = (e) => {
|
|
270
210
|
if (e.defaultPrevented)
|
|
271
211
|
return;
|
|
272
|
-
const
|
|
273
|
-
//
|
|
274
|
-
// there, and
|
|
275
|
-
if (
|
|
276
|
-
e.preventDefault();
|
|
212
|
+
const ownsFocus = ownsWholeBlockFocus(e);
|
|
213
|
+
// Only when this block itself holds focus: a chord bubbling from an inner leaf already
|
|
214
|
+
// met the global chords there, and running it here would fire it twice.
|
|
215
|
+
if (ownsFocus && dispatchWholeBlockGlobalChord(e, deps.getNode().kind, commands))
|
|
277
216
|
return;
|
|
278
|
-
|
|
279
|
-
if (chord &&
|
|
280
|
-
dispatchKindCommand(chord, kindTarget,
|
|
281
|
-
// A container bubble carries no range command: the leaf below it owns the format ids.
|
|
282
|
-
{
|
|
283
|
-
getPresentationMode,
|
|
284
|
-
isCrossBlockRange: () => selection.isCrossBlock,
|
|
285
|
-
crossBlockCommands: undefined
|
|
286
|
-
}, keybindingOverrides(), (report) => emitCommandError(editorEvents, report))) {
|
|
287
|
-
e.preventDefault();
|
|
217
|
+
if (dispatchContainerChord(e, ownsFocus ? wholeBlockTarget : kindTarget, commands))
|
|
288
218
|
return;
|
|
289
|
-
|
|
290
|
-
|
|
219
|
+
if (ownsFocus)
|
|
220
|
+
handleWholeBlockKeydown(e);
|
|
291
221
|
};
|
|
292
222
|
const moveFocusOut = (e) => {
|
|
293
223
|
if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey)
|
|
294
224
|
return false;
|
|
295
|
-
//
|
|
296
|
-
//
|
|
297
|
-
|
|
298
|
-
stickyColumn.noteKey(e);
|
|
299
|
-
edgeAffinity.note(e);
|
|
225
|
+
// A plugin editor exposes no caret x to measure, so a vertical exit keeps the column it
|
|
226
|
+
// arrived with, exactly as a whole-block pass-through does.
|
|
227
|
+
caretMemory.noteKey(e, commandOf(e));
|
|
300
228
|
return focusAcrossBlockEdge(e.key, { getIndex: deps.getIndex, focus: parentFocus });
|
|
301
229
|
};
|
|
302
|
-
// The three
|
|
303
|
-
//
|
|
230
|
+
// The three checks keep a focused sibling (a toolbar button would fire its click and an
|
|
231
|
+
// Enter split) and a plugin's own editor untouched.
|
|
304
232
|
function ownsWholeBlockFocus(e) {
|
|
305
233
|
if (!wholeBlockSurface)
|
|
306
234
|
return false;
|
|
@@ -314,29 +242,17 @@ export function createContainerBlock(deps) {
|
|
|
314
242
|
return false;
|
|
315
243
|
return !isEditableEventTarget(e.target);
|
|
316
244
|
}
|
|
317
|
-
// The whole-block
|
|
245
|
+
// The whole-block key handling, dispatched from the wrapper's bubble phase. A whole-block
|
|
246
|
+
// element is focusable by tabindex regardless of contenteditable, so it runs in reading mode.
|
|
318
247
|
function handleWholeBlockKeydown(e) {
|
|
319
|
-
if (!ownsWholeBlockFocus(e))
|
|
320
|
-
return;
|
|
321
|
-
// A whole-block surface is tabindex-focusable independent of contenteditable,
|
|
322
|
-
// so this path is live in reading mode: arrows stay, edits gate.
|
|
323
|
-
const reading = isReadingMode(getPresentationMode);
|
|
324
|
-
// Alt-arrow reorder is inline because `runCommand` is inert here, so unlike
|
|
325
|
-
// ThematicBreak it cannot come from dispatchKindCommand.
|
|
326
|
-
if (e.altKey && (e.key === 'ArrowUp' || e.key === 'ArrowDown')) {
|
|
327
|
-
e.preventDefault();
|
|
328
|
-
if (!reading)
|
|
329
|
-
void reorder.nudgeReorderUnit(deps.getPath(), e.key === 'ArrowUp' ? -1 : 1);
|
|
330
|
-
return;
|
|
331
|
-
}
|
|
332
248
|
handleWholeBlockKeys(e, {
|
|
333
249
|
getIndex: deps.getIndex,
|
|
334
250
|
getRaw: () => deps.getNode().raw,
|
|
335
251
|
blockEdit: parentBlockEdit,
|
|
336
252
|
focus: parentFocus,
|
|
337
|
-
isReading: () =>
|
|
338
|
-
|
|
339
|
-
|
|
253
|
+
isReading: () => isReadingMode(getPresentationMode),
|
|
254
|
+
caretMemory,
|
|
255
|
+
commandOf
|
|
340
256
|
});
|
|
341
257
|
}
|
|
342
258
|
return {
|
|
@@ -345,9 +261,10 @@ export function createContainerBlock(deps) {
|
|
|
345
261
|
updateOwnMetadata,
|
|
346
262
|
handleKeydown,
|
|
347
263
|
moveFocusOut,
|
|
348
|
-
captureScrollPosition:
|
|
264
|
+
captureScrollPosition: scrollOwner.keep,
|
|
349
265
|
getPresentationMode,
|
|
350
266
|
getTheme,
|
|
351
|
-
getOptions
|
|
267
|
+
getOptions,
|
|
268
|
+
getEditor
|
|
352
269
|
};
|
|
353
270
|
}
|