@voithos-labs/aragonite 0.10.3 → 0.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/a11y-strings.d.ts +12 -5
- package/dist/a11y-strings.js +61 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +13 -20
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +619 -1089
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +36 -67
- package/dist/components/SelectionOverlay.svelte.d.ts +6 -4
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +103 -100
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +35 -28
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +58 -32
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +144 -202
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +46 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +99 -144
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +3 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +9 -4
- package/dist/components/blocks/text/click-snap-guard.js +16 -5
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +164 -180
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -105
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +243 -208
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +13 -30
- package/dist/components/drag-handle.js +25 -63
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -31
- package/dist/components/editor-root-listeners.js +49 -46
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +26 -30
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +380 -0
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +14 -0
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +55 -68
- package/dist/core/inline/inline-widgets.js +55 -58
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +33 -17
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -7
- package/dist/cursor/height-oracle.js +26 -75
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +16 -8
- package/dist/cursor/scrollport.js +28 -5
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -13
- package/dist/cursor/visual-lines.js +72 -28
- package/dist/cursor/widget-edge-snap.d.ts +23 -0
- package/dist/cursor/widget-edge-snap.js +39 -0
- package/dist/cursor/widget-offset.d.ts +111 -102
- package/dist/cursor/widget-offset.js +352 -177
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +31 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +33 -52
- package/dist/editor-actions/focus/focus-landing.d.ts +11 -5
- package/dist/editor-actions/focus/focus-landing.js +29 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +55 -76
- package/dist/editor-actions/plugin/container.js +105 -186
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +91 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +38 -8
- package/dist/plugin.js +102 -74
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +113 -85
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -75
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +63 -47
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +18 -7
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +143 -292
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +79 -81
- package/dist/schema/commands.js +156 -116
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +9 -11
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +73 -78
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +93 -152
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +61 -104
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +53 -146
- package/dist/selection/dead-space-caret.d.ts +20 -28
- package/dist/selection/dead-space-caret.js +79 -87
- package/dist/selection/drag-pointer.d.ts +22 -5
- package/dist/selection/drag-pointer.js +63 -31
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -39
- package/dist/selection/keyboard-extend.js +94 -116
- package/dist/selection/multi-click.d.ts +37 -0
- package/dist/selection/multi-click.js +197 -0
- package/dist/selection/native-bridge.d.ts +30 -37
- package/dist/selection/native-bridge.js +80 -100
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +31 -14
- package/dist/selection/path-lookup.js +110 -20
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +9 -0
- package/dist/selection/pointer-gesture.js +11 -0
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -33
- package/dist/selection/primitives.js +61 -53
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -19
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +52 -0
- package/dist/selection/selection-drop.js +317 -0
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +75 -53
- package/dist/styles/editor.css +248 -139
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +19 -0
- package/dist/tree-operations/paste/replacement-parse.js +24 -0
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +329 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +267 -183
- package/docs/guide/plugin-guide.md +341 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +17 -21
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/selection/double-click-trim.d.ts +0 -17
- package/dist/selection/double-click-trim.js +0 -57
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -29
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -75
|
@@ -1,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,85 +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;
|
|
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. */
|
|
89
|
+
captureScrollPosition(): () => Promise<void>;
|
|
90
90
|
}
|
|
91
|
-
/**
|
|
92
|
-
*
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
*/
|
|
96
|
-
export declare function composeCollapseProbe(explicit: (() => boolean) | undefined, getNode: () => NodeView, getPresentationMode?: () => PresentationMode): () => boolean;
|
|
97
|
-
/**
|
|
98
|
-
* The expand door a reveal opens before descending into a collapsed body. Commits
|
|
99
|
-
* `reservedChrome.expandPatch` as a real undoable edit, not a view-only divergence
|
|
100
|
-
* from the CST; declines in reading mode, which commits nothing.
|
|
101
|
-
*/
|
|
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. */
|
|
102
96
|
export declare function composeExpandDoor(deps: {
|
|
103
97
|
getNode: () => NodeView;
|
|
104
98
|
isCollapsed: () => boolean;
|
|
105
99
|
getPresentationMode: () => PresentationMode;
|
|
106
100
|
commit: (patch: Record<string, unknown>) => void | Promise<void>;
|
|
107
101
|
}): () => Promise<boolean>;
|
|
108
|
-
/**
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
*/
|
|
112
|
-
export declare function composeMetadataDoor(deps: {
|
|
113
|
-
getNode: () => NodeView;
|
|
114
|
-
getPresentationMode: () => PresentationMode;
|
|
115
|
-
commit: (patch: Record<string, unknown>, afterTick?: CommitAfterTick) => void | Promise<void>;
|
|
116
|
-
}): ContainerBlock['updateOwnMetadata'];
|
|
117
|
-
/** While collapsed the body is unmounted, so `descendToBody` would mint an invisible one. */
|
|
118
|
-
export declare function gateDescendOnCollapse(isCollapsed: (() => boolean) | undefined, descend: (innerIndex: number) => void | Promise<void>): (innerIndex: number) => Promise<void>;
|
|
119
|
-
/**
|
|
120
|
-
* While collapsed only the chrome row is mounted, so an interior `moveFocus`
|
|
121
|
-
* targeting a body index dead-ends on the unmounted ref. Route body targets past the
|
|
122
|
-
* container instead — the same exit an open container's past-end move takes.
|
|
123
|
-
*/
|
|
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. */
|
|
124
106
|
export declare function gateMoveFocusOnCollapse(isCollapsed: (() => boolean) | undefined, moveWithin: FocusActions['moveFocus'], parentFocus: FocusActions, getIndex: () => number): FocusActions['moveFocus'];
|
|
125
107
|
export type NestedActionsOverrides = ReturnType<NestedActionsOverrideFactory>;
|
|
126
|
-
/** Each
|
|
108
|
+
/** Each group spreads its base first: a check adds a member, never replaces one. */
|
|
127
109
|
export declare function composeCollapseGates(base: NestedActionsOverrides, gates: {
|
|
128
110
|
descendToBody: NonNullable<BlockEditActions['descendToBody']>;
|
|
129
111
|
moveFocus: FocusActions['moveFocus'];
|
|
130
112
|
}): NestedActionsOverrides;
|
|
131
|
-
/**
|
|
132
|
-
*
|
|
133
|
-
|
|
134
|
-
* chord resolves only through a registered one.
|
|
135
|
-
*/
|
|
136
|
-
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;
|
|
137
116
|
export declare function createContainerBlock(deps: ContainerBlockDeps): ContainerBlock;
|
|
@@ -1,49 +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 { 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';
|
|
19
17
|
import { useContainerWindowing } from '../../reactivity/use-container-windowing.svelte';
|
|
20
18
|
import { createContainerExitOverrides } from '../container-exit-overrides';
|
|
21
|
-
import {
|
|
19
|
+
import { delegateMoveFocus } from '../focus/focus-dispatch';
|
|
20
|
+
import { createContainerBlockComponent, dispatchContainerChord, dispatchWholeBlockGlobalChord, focusAcrossBlockEdge, handleWholeBlockKeys } from '../container-block-component';
|
|
22
21
|
import { composeWholeBlockFocusSurface, createWholeBlockInputProxy, holdsWholeBlockFocus, isEditableEventTarget } from '../whole-block-focus-surface';
|
|
23
|
-
import {
|
|
22
|
+
import { createContainerActions } from '../nested/container-actions';
|
|
24
23
|
const _conforms = [true, true];
|
|
25
|
-
// ──
|
|
26
|
-
/**
|
|
27
|
-
*
|
|
28
|
-
* probe. An explicit dep is dev-cross-checked against it, except in reading mode,
|
|
29
|
-
* which cannot write — a reader's open section is legitimately ahead of the document.
|
|
30
|
-
*/
|
|
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. */
|
|
31
27
|
export function composeCollapseProbe(explicit, getNode, getPresentationMode) {
|
|
32
28
|
if (!explicit)
|
|
33
29
|
return () => isCollapsedContainer(getNode());
|
|
34
30
|
return () => {
|
|
35
31
|
const value = explicit();
|
|
36
|
-
if (
|
|
32
|
+
if (isDevChecks() &&
|
|
33
|
+
value !== isCollapsedContainer(getNode()) &&
|
|
34
|
+
!isReadingMode(getPresentationMode)) {
|
|
37
35
|
devWarn('plugin-container', `isCollapsed dep disagrees with the declared reservedChrome.isCollapsed probe for kind "${getNode().kind}"`);
|
|
38
36
|
}
|
|
39
37
|
return value;
|
|
40
38
|
};
|
|
41
39
|
}
|
|
42
|
-
/**
|
|
43
|
-
*
|
|
44
|
-
* `reservedChrome.expandPatch` as a real undoable edit, not a view-only divergence
|
|
45
|
-
* from the CST; declines in reading mode, which commits nothing.
|
|
46
|
-
*/
|
|
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. */
|
|
47
42
|
export function composeExpandDoor(deps) {
|
|
48
43
|
return async () => {
|
|
49
44
|
if (!deps.isCollapsed() || isReadingMode(deps.getPresentationMode))
|
|
@@ -55,46 +50,26 @@ export function composeExpandDoor(deps) {
|
|
|
55
50
|
return true;
|
|
56
51
|
};
|
|
57
52
|
}
|
|
58
|
-
/**
|
|
59
|
-
* The `updateOwnMetadata` gate: reading mode writes no bytes (plugin-contract.md), so the
|
|
60
|
-
* commit declines as a no-op and DEV names the kind that knocked.
|
|
61
|
-
*/
|
|
62
|
-
export function composeMetadataDoor(deps) {
|
|
63
|
-
return (patch, afterTick) => {
|
|
64
|
-
if (isReadingMode(deps.getPresentationMode)) {
|
|
65
|
-
devWarn('plugin-container', `updateOwnMetadata declined: reading mode writes no bytes (kind "${deps.getNode().kind}")`);
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
return deps.commit(patch, afterTick);
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
/** 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. */
|
|
72
54
|
export function gateDescendOnCollapse(isCollapsed, descend) {
|
|
73
55
|
return async (innerIndex) => {
|
|
74
56
|
if (isCollapsed?.())
|
|
75
|
-
return;
|
|
76
|
-
|
|
57
|
+
return false;
|
|
58
|
+
return descend(innerIndex);
|
|
77
59
|
};
|
|
78
60
|
}
|
|
79
|
-
/**
|
|
80
|
-
*
|
|
81
|
-
* targeting a body index dead-ends on the unmounted ref. Route body targets past the
|
|
82
|
-
* container instead — the same exit an open container's past-end move takes.
|
|
83
|
-
*/
|
|
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. */
|
|
84
63
|
export function gateMoveFocusOnCollapse(isCollapsed, moveWithin, parentFocus, getIndex) {
|
|
85
64
|
return async (innerIndex, position, options) => {
|
|
86
65
|
if (innerIndex >= 1 && isCollapsed?.()) {
|
|
87
|
-
|
|
88
|
-
if (options)
|
|
89
|
-
await parentFocus.moveFocus(getIndex() + 1, position, options);
|
|
90
|
-
else
|
|
91
|
-
await parentFocus.moveFocus(getIndex() + 1, position);
|
|
66
|
+
await delegateMoveFocus(parentFocus, getIndex() + 1, position, options);
|
|
92
67
|
return;
|
|
93
68
|
}
|
|
94
69
|
await moveWithin(innerIndex, position, options);
|
|
95
70
|
};
|
|
96
71
|
}
|
|
97
|
-
/** Each
|
|
72
|
+
/** Each group spreads its base first: a check adds a member, never replaces one. */
|
|
98
73
|
export function composeCollapseGates(base, gates) {
|
|
99
74
|
return {
|
|
100
75
|
...base,
|
|
@@ -103,128 +78,93 @@ export function composeCollapseGates(base, gates) {
|
|
|
103
78
|
};
|
|
104
79
|
}
|
|
105
80
|
// ── Kind-command target ──────────────────────────────────────────────────────
|
|
106
|
-
/**
|
|
107
|
-
*
|
|
108
|
-
|
|
109
|
-
* chord resolves only through a registered one.
|
|
110
|
-
*/
|
|
111
|
-
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) {
|
|
112
84
|
return {
|
|
113
85
|
get kind() {
|
|
114
86
|
return deps.getNode().kind;
|
|
115
87
|
},
|
|
116
|
-
runCommand: () => false,
|
|
117
88
|
getCommandContext: () => ({
|
|
118
89
|
node: deps.getNode(),
|
|
119
90
|
updateMetadata: (patch) => {
|
|
120
91
|
void updateOwnMetadata(patch);
|
|
121
92
|
},
|
|
122
|
-
hooks: deps.commandHooks?.()
|
|
123
|
-
editor: owningPluginEditor(pluginEditor, deps.getNode().kind)
|
|
93
|
+
hooks: deps.commandHooks?.()
|
|
124
94
|
})
|
|
125
95
|
};
|
|
126
96
|
}
|
|
127
97
|
// ── Factory ──────────────────────────────────────────────────────────────────
|
|
128
98
|
export function createContainerBlock(deps) {
|
|
129
|
-
const
|
|
130
|
-
const
|
|
131
|
-
const
|
|
132
|
-
const
|
|
133
|
-
const
|
|
134
|
-
const
|
|
135
|
-
const editorDoc = getContext(EDITOR_DOC_KEY);
|
|
136
|
-
const pluginEditor = editorDoc?.pluginEditor;
|
|
137
|
-
const linkRef = editorDoc?.linkRef;
|
|
138
|
-
// Resolved by the kind's recorded owner, like the kind-command context's `editor`.
|
|
139
|
-
const getOptions = () => owningPluginEditor(pluginEditor, deps.getNode().kind)?.options;
|
|
140
|
-
const listState = createBlockListState(deps.getNode);
|
|
141
|
-
// One live scope over the frozen thunks, shared by every factory this seam wires.
|
|
142
|
-
// Passed by reference, never spread — spreading would snapshot the getters.
|
|
143
|
-
const scope = {
|
|
144
|
-
get index() {
|
|
145
|
-
return deps.getIndex();
|
|
146
|
-
},
|
|
147
|
-
get node() {
|
|
148
|
-
return deps.getNode();
|
|
149
|
-
},
|
|
150
|
-
get path() {
|
|
151
|
-
return deps.getPath();
|
|
152
|
-
}
|
|
153
|
-
};
|
|
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;
|
|
154
105
|
const collapsed = composeCollapseProbe(deps.isCollapsed, deps.getNode, getPresentationMode);
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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
|
+
})
|
|
161
117
|
});
|
|
162
|
-
const bundle = createStandardNestedActions(listState, {
|
|
163
|
-
scope,
|
|
164
|
-
stickyColumn,
|
|
165
|
-
grammar: registryView.grammar,
|
|
166
|
-
getPresentationMode,
|
|
167
|
-
linkRef,
|
|
168
|
-
parent: {
|
|
169
|
-
blockEdit: parentBlockEdit,
|
|
170
|
-
focus: parentFocus,
|
|
171
|
-
containerEdit: parentContainerEdit
|
|
172
|
-
}
|
|
173
|
-
}, overrideFactory);
|
|
174
|
-
setNestedActionsContexts(bundle);
|
|
175
118
|
const windowing = useContainerWindowing({
|
|
176
|
-
getIndex: deps.getIndex,
|
|
177
119
|
getParentPath: deps.getPath,
|
|
178
120
|
getChildren: () => deps.getNode().children ?? [],
|
|
179
121
|
getChildIds: () => listState.innerBlockIds,
|
|
180
122
|
getListEl: () => deps.getBoxEl()?.querySelector(':scope > .block-list') ?? null,
|
|
181
|
-
getOwnEl: () => deps.getBoxEl()?.closest('.block-host') ?? null,
|
|
182
|
-
provideLeafChannel: true,
|
|
183
123
|
isCollapsed: collapsed
|
|
184
124
|
});
|
|
185
|
-
// One composed
|
|
186
|
-
//
|
|
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.
|
|
187
127
|
const wholeBlockSurface = deps.getFocusEl
|
|
188
128
|
? composeWholeBlockFocusSurface(deps.getFocusEl, () => deps.getBoxEl(), () => deps.getNode().kind)
|
|
189
129
|
: undefined;
|
|
190
130
|
// The editing host AltGr and IME input arrive through: keydown alone drops both, and a
|
|
191
|
-
// whole-block kind has no editable
|
|
131
|
+
// whole-block kind has no editable element of its own to catch them.
|
|
192
132
|
const inputProxy = wholeBlockSurface
|
|
193
133
|
? createWholeBlockInputProxy({
|
|
194
134
|
getBoxEl: () => deps.getBoxEl(),
|
|
195
135
|
getFocusEl: wholeBlockSurface,
|
|
196
136
|
isReading: () => isReadingMode(getPresentationMode),
|
|
137
|
+
getLabel: () => blockAccessibleName(deps.getNode()),
|
|
197
138
|
mint: (text) => void parentBlockEdit.insertParagraph(deps.getIndex() + 1, text)
|
|
198
139
|
})
|
|
199
140
|
: undefined;
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
141
|
+
const childList = {
|
|
142
|
+
count: () => deps.getNode().children?.length ?? 0,
|
|
143
|
+
refs: listState.refSlots,
|
|
144
|
+
windowing,
|
|
204
145
|
isCollapsed: collapsed,
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
+
};
|
|
208
154
|
const containerApi = createContainerBlockComponent({
|
|
209
|
-
// The kind's descriptor is the declaration; the mounted
|
|
155
|
+
// The kind's descriptor is the declaration; the mounted component only reports it.
|
|
210
156
|
get editable() {
|
|
211
157
|
return getBlockKindDescriptor(deps.getNode().kind).editable;
|
|
212
158
|
},
|
|
213
159
|
selection,
|
|
160
|
+
reading,
|
|
214
161
|
get innerBlockRefs() {
|
|
215
162
|
return listState.innerBlockRefs;
|
|
216
163
|
},
|
|
217
|
-
|
|
218
|
-
get nodeChildrenLength() {
|
|
219
|
-
return deps.getNode().children?.length ?? 0;
|
|
220
|
-
},
|
|
164
|
+
childList,
|
|
221
165
|
get node() {
|
|
222
166
|
return deps.getNode();
|
|
223
167
|
},
|
|
224
|
-
revealChild: windowing.revealChild,
|
|
225
|
-
isInWindow: windowing.isInWindow,
|
|
226
|
-
isCollapsed: collapsed,
|
|
227
|
-
expandCollapsed,
|
|
228
168
|
getFocusEl: wholeBlockSurface,
|
|
229
169
|
getBoxEl: () => deps.getBoxEl(),
|
|
230
170
|
inputProxy
|
|
@@ -243,63 +183,52 @@ export function createContainerBlock(deps) {
|
|
|
243
183
|
get window() {
|
|
244
184
|
return windowing.window;
|
|
245
185
|
},
|
|
246
|
-
//
|
|
247
|
-
|
|
248
|
-
|
|
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
|
+
},
|
|
249
190
|
get ambientPrefixForFirst() {
|
|
250
191
|
return deps.getAmbientPrefix?.() ?? '';
|
|
251
192
|
}
|
|
252
193
|
};
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
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
|
|
267
207
|
};
|
|
208
|
+
const commandOf = (e) => commandForKey(e, deps.getNode().kind, commands);
|
|
268
209
|
const handleKeydown = (e) => {
|
|
269
210
|
if (e.defaultPrevented)
|
|
270
211
|
return;
|
|
271
|
-
const
|
|
272
|
-
//
|
|
273
|
-
// there, and
|
|
274
|
-
if (
|
|
275
|
-
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))
|
|
276
216
|
return;
|
|
277
|
-
|
|
278
|
-
if (chord &&
|
|
279
|
-
dispatchKindCommand(chord, kindTarget,
|
|
280
|
-
// A container bubble carries no range command: the leaf below it owns the format ids.
|
|
281
|
-
{
|
|
282
|
-
getPresentationMode,
|
|
283
|
-
isCrossBlockRange: () => selection.isCrossBlock,
|
|
284
|
-
crossBlockCommands: undefined
|
|
285
|
-
}, keybindingOverrides(), (report) => emitCommandError(editorEvents, report))) {
|
|
286
|
-
e.preventDefault();
|
|
217
|
+
if (dispatchContainerChord(e, ownsFocus ? wholeBlockTarget : kindTarget, commands))
|
|
287
218
|
return;
|
|
288
|
-
|
|
289
|
-
|
|
219
|
+
if (ownsFocus)
|
|
220
|
+
handleWholeBlockKeydown(e);
|
|
290
221
|
};
|
|
291
222
|
const moveFocusOut = (e) => {
|
|
292
223
|
if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey)
|
|
293
224
|
return false;
|
|
294
|
-
//
|
|
295
|
-
//
|
|
296
|
-
|
|
297
|
-
stickyColumn.noteKey(e);
|
|
298
|
-
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));
|
|
299
228
|
return focusAcrossBlockEdge(e.key, { getIndex: deps.getIndex, focus: parentFocus });
|
|
300
229
|
};
|
|
301
|
-
// The three
|
|
302
|
-
//
|
|
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.
|
|
303
232
|
function ownsWholeBlockFocus(e) {
|
|
304
233
|
if (!wholeBlockSurface)
|
|
305
234
|
return false;
|
|
@@ -313,29 +242,17 @@ export function createContainerBlock(deps) {
|
|
|
313
242
|
return false;
|
|
314
243
|
return !isEditableEventTarget(e.target);
|
|
315
244
|
}
|
|
316
|
-
// 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.
|
|
317
247
|
function handleWholeBlockKeydown(e) {
|
|
318
|
-
if (!ownsWholeBlockFocus(e))
|
|
319
|
-
return;
|
|
320
|
-
// A whole-block surface is tabindex-focusable independent of contenteditable,
|
|
321
|
-
// so this path is live in reading mode: arrows stay, edits gate.
|
|
322
|
-
const reading = isReadingMode(getPresentationMode);
|
|
323
|
-
// Alt-arrow reorder is inline because `runCommand` is inert here, so unlike
|
|
324
|
-
// ThematicBreak it cannot come from dispatchKindCommand.
|
|
325
|
-
if (e.altKey && (e.key === 'ArrowUp' || e.key === 'ArrowDown')) {
|
|
326
|
-
e.preventDefault();
|
|
327
|
-
if (!reading)
|
|
328
|
-
void reorder.nudgeReorderUnit(deps.getPath(), e.key === 'ArrowUp' ? -1 : 1);
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
331
248
|
handleWholeBlockKeys(e, {
|
|
332
249
|
getIndex: deps.getIndex,
|
|
333
250
|
getRaw: () => deps.getNode().raw,
|
|
334
251
|
blockEdit: parentBlockEdit,
|
|
335
252
|
focus: parentFocus,
|
|
336
|
-
isReading: () =>
|
|
337
|
-
|
|
338
|
-
|
|
253
|
+
isReading: () => isReadingMode(getPresentationMode),
|
|
254
|
+
caretMemory,
|
|
255
|
+
commandOf
|
|
339
256
|
});
|
|
340
257
|
}
|
|
341
258
|
return {
|
|
@@ -344,8 +261,10 @@ export function createContainerBlock(deps) {
|
|
|
344
261
|
updateOwnMetadata,
|
|
345
262
|
handleKeydown,
|
|
346
263
|
moveFocusOut,
|
|
264
|
+
captureScrollPosition: scrollOwner.keep,
|
|
347
265
|
getPresentationMode,
|
|
348
266
|
getTheme,
|
|
349
|
-
getOptions
|
|
267
|
+
getOptions,
|
|
268
|
+
getEditor
|
|
350
269
|
};
|
|
351
270
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `rebuildRaw`
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* `rebuildRaw` for a directive container whose reserved child 0 is an editable title
|
|
3
|
+
* written into the opener line. Puts the title back into the opener, serializes
|
|
4
|
+
* `children[1:]` as the body, and keeps the authored line ending a hand-written copy
|
|
5
|
+
* would drop. The no-title version is `core/directive`'s `rebuildDirectiveContainerRaw`.
|
|
6
6
|
*/
|
|
7
7
|
import { type CstNode } from '../../core/nodes';
|
|
8
8
|
export declare function createDirectiveRebuild<M extends {
|