@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,85 +1,66 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** The shared `BlockComponent` implementation for container blocks. */
|
|
2
2
|
import { type BlockComponent, type ContainerBlockComponent } from '../block-component';
|
|
3
|
-
import {
|
|
3
|
+
import type { ChildList } from '../reactivity/child-list';
|
|
4
4
|
import type { AnyBlockKind } from '../core/nodes';
|
|
5
5
|
import type { NodeView } from '../core/node-views';
|
|
6
6
|
import type { BlockEditActions, FocusActions } from '../action-contracts';
|
|
7
|
-
import { type
|
|
8
|
-
import type {
|
|
9
|
-
import type {
|
|
10
|
-
import type {
|
|
11
|
-
import type { EdgeAffinityState } from '../cursor/edge-affinity';
|
|
7
|
+
import { type CommandDispatchContext, type KindCommandTarget } from '../schema/block-commands';
|
|
8
|
+
import type { Reading } from '../schema/reading';
|
|
9
|
+
import type { CaretMemory } from '../cursor/caret-memory';
|
|
10
|
+
import type { AnyCommandId } from '../schema/command-id';
|
|
12
11
|
import type { SelectionState } from '../selection/selection-state.svelte';
|
|
13
12
|
import { type WholeBlockInputProxy } from './whole-block-focus-surface';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
isReading: () => boolean;
|
|
18
|
-
/** Required here though optional on the context: a whole-block surface that skipped it
|
|
19
|
-
* would consume an unlisted plugin's chord. `undefined` = every installed plugin. */
|
|
20
|
-
activation: PluginActivation | undefined;
|
|
21
|
-
}
|
|
13
|
+
/** Undo, redo and plugin-global chords for a block focused as a whole, which neither an inner leaf
|
|
14
|
+
* nor the editor root runs. Consumed in reading mode too, or the browser runs its own undo. */
|
|
15
|
+
export declare function dispatchWholeBlockGlobalChord(e: KeyboardEvent, kind: AnyBlockKind, commands: CommandDispatchContext): boolean;
|
|
22
16
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* including in reading mode, since bypassing `dispatchKeyCommand` would otherwise hand a read-only
|
|
26
|
-
* document the browser's native undo.
|
|
17
|
+
* A chord at a container, resolved against the container's own kind only: a key that bubbled up
|
|
18
|
+
* from a focused leaf has already met the global chords there.
|
|
27
19
|
*/
|
|
28
|
-
export declare function
|
|
20
|
+
export declare function dispatchContainerChord(e: KeyboardEvent, target: KindCommandTarget, commands: CommandDispatchContext): boolean;
|
|
29
21
|
export interface BlockEdgeExitDeps {
|
|
30
22
|
getIndex: () => number;
|
|
31
23
|
focus: Pick<FocusActions, 'moveFocus'>;
|
|
32
24
|
}
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
* whole-block focus and the plugin container's `moveFocusOut`, so a surface that reaches its
|
|
36
|
-
* own edge lands the same way the built-ins do. False for any other key.
|
|
37
|
-
*/
|
|
25
|
+
/** The plain-arrow exits out of a block, shared by whole-block focus and a plugin container's
|
|
26
|
+
* `moveFocusOut`, so a plugin editor leaves its edge as the built-ins do. False for other keys. */
|
|
38
27
|
export declare function focusAcrossBlockEdge(key: string, deps: BlockEdgeExitDeps): boolean;
|
|
39
28
|
export interface WholeBlockKeyDeps extends BlockEdgeExitDeps {
|
|
40
29
|
getRaw: () => string;
|
|
41
30
|
blockEdit: Pick<BlockEditActions, 'splitBlock' | 'deleteBlock' | 'insertParagraph'>;
|
|
42
31
|
isReading: () => boolean;
|
|
43
|
-
|
|
44
|
-
|
|
32
|
+
caretMemory: Pick<CaretMemory, 'noteKey'>;
|
|
33
|
+
/** What the keypress resolves to at this block's kind, overrides included. */
|
|
34
|
+
commandOf: (e: KeyboardEvent) => AnyCommandId | null;
|
|
45
35
|
}
|
|
46
36
|
/**
|
|
47
|
-
* The whole-block
|
|
48
|
-
* factory, so a new
|
|
37
|
+
* The whole-block key handling shared by ThematicBreakBlock and the plugin container
|
|
38
|
+
* factory, so a new check lands once instead of at both. Navigation is never checked.
|
|
49
39
|
*/
|
|
50
40
|
export declare function handleWholeBlockKeys(e: KeyboardEvent, deps: WholeBlockKeyDeps): void;
|
|
51
41
|
export interface ContainerBlockComponentDeps {
|
|
52
|
-
/** What the mounted
|
|
42
|
+
/** What the mounted component reports as `editable`, mirroring the kind's descriptor flag;
|
|
53
43
|
* omitted stays `true`, the built-in containers' answer. A getter, never a snapshot. */
|
|
54
44
|
readonly editable?: boolean;
|
|
55
|
-
/** Ends a live cross-block range when `focus`
|
|
45
|
+
/** Ends a live cross-block range when `focus` places a caret: focusing a whole block
|
|
56
46
|
* reaches no child to borrow it from. */
|
|
57
47
|
readonly selection: SelectionState;
|
|
58
48
|
readonly innerBlockRefs: (BlockComponent | undefined)[];
|
|
59
|
-
/** The same
|
|
60
|
-
*
|
|
61
|
-
readonly
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
* `innerBlockRefs` is sparse (VR-6). */
|
|
49
|
+
/** The same children as a descent reads them: their count, ref slots, render window and
|
|
50
|
+
* collapse. `childList()` publishes it. */
|
|
51
|
+
readonly childList: ChildList;
|
|
52
|
+
/** For the widget-only check, which reads the node so it works for an unmounted
|
|
53
|
+
* container where `innerBlockRefs` is sparse (VR-6). */
|
|
65
54
|
readonly node: NodeView;
|
|
66
|
-
/**
|
|
67
|
-
readonly
|
|
68
|
-
/**
|
|
69
|
-
readonly isInWindow?: (index: number) => boolean;
|
|
70
|
-
/** Collapse clamp — while true only the chrome row is mounted, so a focus extremum
|
|
71
|
-
* entering the container clamps to it rather than no-oping on an unmounted child. */
|
|
72
|
-
readonly isCollapsed?: () => boolean;
|
|
73
|
-
/** Open this container so a reveal can descend into its clamped-out body, as a real
|
|
74
|
-
* committed edit. Absent leaves the reveal to degrade on the chrome row. */
|
|
75
|
-
readonly expandCollapsed?: () => Promise<boolean>;
|
|
76
|
-
/** Whole-block-focus element for an opaque childless container, already composed
|
|
55
|
+
/** How the editor reads its bytes, whose grammar the widget-only check reads the node in. */
|
|
56
|
+
readonly reading: Reading;
|
|
57
|
+
/** The focus element of a childless container focused as a whole, already composed
|
|
77
58
|
* through `composeWholeBlockFocusSurface`. */
|
|
78
59
|
readonly getFocusEl?: () => HTMLElement | null | undefined;
|
|
79
|
-
/** A childless
|
|
80
|
-
*
|
|
60
|
+
/** A childless container has no child elements to measure search or decoration rects
|
|
61
|
+
* from, so `measurePartialRects` measures the block itself off this element. */
|
|
81
62
|
readonly getBoxEl?: () => HTMLElement | null | undefined;
|
|
82
|
-
/** The hidden editing host beside the declared
|
|
63
|
+
/** The hidden editing host beside the declared element, where whole-block focus lands. */
|
|
83
64
|
readonly inputProxy?: WholeBlockInputProxy;
|
|
84
65
|
}
|
|
85
66
|
export declare function createContainerBlockComponent(deps: ContainerBlockComponentDeps): ContainerBlockComponent;
|
|
@@ -1,34 +1,38 @@
|
|
|
1
|
-
/**
|
|
2
|
-
import {
|
|
3
|
-
import { dispatchFocusByPath, dispatchFocusAtColumn
|
|
4
|
-
import { revealChildOrWait } from '../reactivity/publish-ref.svelte';
|
|
1
|
+
/** The shared `BlockComponent` implementation for container blocks. */
|
|
2
|
+
import { entryEdge } from '../block-component';
|
|
3
|
+
import { dispatchFocusByPath, dispatchFocusAtColumn } from './focus/focus-dispatch';
|
|
5
4
|
import { runGlobalChordOnKind } from '../schema/commands';
|
|
6
|
-
import {
|
|
5
|
+
import { dispatchKindCommand } from '../schema/block-commands';
|
|
6
|
+
import { eventToChord, isCharacterKey } from '../schema/keybindings';
|
|
7
7
|
import { displayLength, trimTrailingLineEnding } from '../core/lines';
|
|
8
8
|
import { isVerticallyTransparentNode } from '../core/inline/transparency';
|
|
9
9
|
import { placeCaret } from '../selection/caret-doors';
|
|
10
10
|
import { focusWholeBlockEl, holdsWholeBlockFocus } from './whole-block-focus-surface';
|
|
11
11
|
import { devWarn } from '../dev-warn';
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return
|
|
20
|
-
isReading: deps.isReading(),
|
|
21
|
-
history: deps.history,
|
|
22
|
-
pluginEditor: deps.pluginEditor,
|
|
23
|
-
onCommandError: deps.onCommandError,
|
|
24
|
-
activation: deps.activation
|
|
25
|
-
});
|
|
12
|
+
/** Undo, redo and plugin-global chords for a block focused as a whole, which neither an inner leaf
|
|
13
|
+
* nor the editor root runs. Consumed in reading mode too, or the browser runs its own undo. */
|
|
14
|
+
export function dispatchWholeBlockGlobalChord(e, kind, commands) {
|
|
15
|
+
const chord = eventToChord(e);
|
|
16
|
+
if (!chord || !runGlobalChordOnKind(chord, kind, commands))
|
|
17
|
+
return false;
|
|
18
|
+
e.preventDefault();
|
|
19
|
+
return true;
|
|
26
20
|
}
|
|
27
21
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* own edge lands the same way the built-ins do. False for any other key.
|
|
22
|
+
* A chord at a container, resolved against the container's own kind only: a key that bubbled up
|
|
23
|
+
* from a focused leaf has already met the global chords there.
|
|
31
24
|
*/
|
|
25
|
+
export function dispatchContainerChord(e, target, commands) {
|
|
26
|
+
if (e.defaultPrevented)
|
|
27
|
+
return false;
|
|
28
|
+
const chord = eventToChord(e);
|
|
29
|
+
if (!chord || !dispatchKindCommand(chord, target, commands))
|
|
30
|
+
return false;
|
|
31
|
+
e.preventDefault();
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
/** The plain-arrow exits out of a block, shared by whole-block focus and a plugin container's
|
|
35
|
+
* `moveFocusOut`, so a plugin editor leaves its edge as the built-ins do. False for other keys. */
|
|
32
36
|
export function focusAcrossBlockEdge(key, deps) {
|
|
33
37
|
const index = deps.getIndex();
|
|
34
38
|
if (key === 'ArrowUp')
|
|
@@ -44,15 +48,13 @@ export function focusAcrossBlockEdge(key, deps) {
|
|
|
44
48
|
return true;
|
|
45
49
|
}
|
|
46
50
|
/**
|
|
47
|
-
* The whole-block
|
|
48
|
-
* factory, so a new
|
|
51
|
+
* The whole-block key handling shared by ThematicBreakBlock and the plugin container
|
|
52
|
+
* factory, so a new check lands once instead of at both. Navigation is never checked.
|
|
49
53
|
*/
|
|
50
54
|
export function handleWholeBlockKeys(e, deps) {
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
deps.stickyColumn.noteKey(e);
|
|
55
|
-
deps.edgeAffinity.note(e);
|
|
55
|
+
// Before any branch, or a column captured elsewhere survives a horizontal move through this
|
|
56
|
+
// block. No `measureX`: a block focused whole has no caret to measure.
|
|
57
|
+
deps.caretMemory.noteKey(e, deps.commandOf(e));
|
|
56
58
|
if (e.key === 'Enter') {
|
|
57
59
|
e.preventDefault();
|
|
58
60
|
if (!deps.isReading())
|
|
@@ -62,18 +64,18 @@ export function handleWholeBlockKeys(e, deps) {
|
|
|
62
64
|
if (e.key === 'Backspace' || e.key === 'Delete') {
|
|
63
65
|
e.preventDefault();
|
|
64
66
|
if (!deps.isReading())
|
|
65
|
-
void deps.blockEdit.deleteBlock(deps.getIndex());
|
|
67
|
+
void deps.blockEdit.deleteBlock(deps.getIndex(), e.key);
|
|
66
68
|
return;
|
|
67
69
|
}
|
|
68
|
-
// Mod+C
|
|
69
|
-
// and preventDefault suppresses the native copy, so writeText is the
|
|
70
|
+
// Mod+C and Mod+X copy the block's own markdown: a keydown carries no ClipboardEvent,
|
|
71
|
+
// and preventDefault suppresses the native copy, so writeText is the only writer.
|
|
70
72
|
if ((e.ctrlKey || e.metaKey) && !e.altKey && !e.shiftKey && (e.key === 'c' || e.key === 'x')) {
|
|
71
73
|
e.preventDefault();
|
|
72
74
|
void copyFocusedWholeBlock(deps, e.key === 'x');
|
|
73
75
|
return;
|
|
74
76
|
}
|
|
75
|
-
// A typed character has nowhere to land on a block
|
|
76
|
-
//
|
|
77
|
+
// A typed character has nowhere to land on a block focused as a whole, so it creates the
|
|
78
|
+
// paragraph below carrying it (`editor-actions/block-edit-core.ts :: insertParagraph`).
|
|
77
79
|
if (isCharacterKey(e.key) && !e.isComposing && !e.ctrlKey && !e.metaKey && !e.altKey) {
|
|
78
80
|
e.preventDefault();
|
|
79
81
|
if (!deps.isReading())
|
|
@@ -84,8 +86,8 @@ export function handleWholeBlockKeys(e, deps) {
|
|
|
84
86
|
if (plainArrow && focusAcrossBlockEdge(e.key, deps))
|
|
85
87
|
e.preventDefault();
|
|
86
88
|
}
|
|
87
|
-
// Copy is a read, so it never
|
|
88
|
-
// once the write resolves, so a rejected write leaves the block in place.
|
|
89
|
+
// Copy is a read, so it is never blocked; cut's delete is blocked in reading mode and only
|
|
90
|
+
// runs once the clipboard write resolves, so a rejected write leaves the block in place.
|
|
89
91
|
async function copyFocusedWholeBlock(deps, cut) {
|
|
90
92
|
try {
|
|
91
93
|
await navigator.clipboard.writeText(trimTrailingLineEnding(deps.getRaw()));
|
|
@@ -95,37 +97,32 @@ async function copyFocusedWholeBlock(deps, cut) {
|
|
|
95
97
|
return;
|
|
96
98
|
}
|
|
97
99
|
if (cut && !deps.isReading())
|
|
98
|
-
void deps.blockEdit.deleteBlock(deps.getIndex());
|
|
100
|
+
void deps.blockEdit.deleteBlock(deps.getIndex(), 'cut');
|
|
99
101
|
}
|
|
100
102
|
export function createContainerBlockComponent(deps) {
|
|
101
103
|
const landFocus = (declared) => deps.inputProxy ? deps.inputProxy.focus(declared) : focusWholeBlockEl(declared);
|
|
102
104
|
/**
|
|
103
|
-
* `focus` lands in a child that
|
|
104
|
-
*
|
|
105
|
+
* `focus` lands in a child that has no `parkCaret`; `parkCaret` skips it, because during a
|
|
106
|
+
* selection extend a missed `parkCaret` costs a caret and `focus` costs the range.
|
|
105
107
|
*/
|
|
106
108
|
function walkInto(offset, land) {
|
|
107
|
-
// Whole-block focus: any caret entry lands on the block itself, so the
|
|
108
|
-
//
|
|
109
|
+
// Whole-block focus: any caret entry lands on the block itself, so the offset means
|
|
110
|
+
// nothing.
|
|
109
111
|
const focusEl = deps.getFocusEl?.();
|
|
110
112
|
if (focusEl) {
|
|
111
113
|
landFocus(focusEl);
|
|
112
114
|
return;
|
|
113
115
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
// Collapsed: only the chrome row is mounted, so a walk-in from below clamps to
|
|
117
|
-
// it rather than no-oping on the unmounted last child.
|
|
118
|
-
const last = deps.isCollapsed?.() ? 0 : deps.nodeChildrenLength - 1;
|
|
119
|
-
const entersFirst = offset === 0 || offset === CURSOR_START || offset === CURSOR_EXACT_START;
|
|
120
|
-
const child = entersFirst ? deps.innerBlockRefs[0] : deps.innerBlockRefs[last];
|
|
121
|
-
if (!child)
|
|
116
|
+
const count = deps.childList.count();
|
|
117
|
+
if (count === 0)
|
|
122
118
|
return;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
119
|
+
// Collapsed: only the title row is mounted, so an entry from below clamps to it
|
|
120
|
+
// rather than doing nothing on the unmounted last child.
|
|
121
|
+
const last = deps.childList.isCollapsed?.() ? 0 : count - 1;
|
|
122
|
+
const edge = entryEdge(offset);
|
|
123
|
+
const child = deps.innerBlockRefs[edge.child === 'first' ? 0 : last];
|
|
124
|
+
if (child)
|
|
125
|
+
land(child, edge.offset);
|
|
129
126
|
}
|
|
130
127
|
function parkCaret(offset) {
|
|
131
128
|
walkInto(offset, (child, at) => child.parkCaret?.(at));
|
|
@@ -165,59 +162,36 @@ export function createContainerBlockComponent(deps) {
|
|
|
165
162
|
focusByPath(path, offset) {
|
|
166
163
|
dispatchFocusByPath(deps.innerBlockRefs, path, offset);
|
|
167
164
|
},
|
|
168
|
-
|
|
169
|
-
return dispatchGetBlockComponentByPath(deps.innerBlockRefs, path);
|
|
170
|
-
},
|
|
171
|
-
async revealByPath(path) {
|
|
172
|
-
if (path.length === 0)
|
|
173
|
-
return null;
|
|
174
|
-
const [head, ...rest] = path;
|
|
175
|
-
// Only a body target needs the door opened; the chrome row stays mounted.
|
|
176
|
-
// Awaited because everything below must run against the post-commit window.
|
|
177
|
-
if (head >= 1 && deps.isCollapsed?.())
|
|
178
|
-
await deps.expandCollapsed?.();
|
|
179
|
-
if (deps.revealChild) {
|
|
180
|
-
await revealChildOrWait(head, {
|
|
181
|
-
slots: deps.refSlots,
|
|
182
|
-
childCount: deps.nodeChildrenLength,
|
|
183
|
-
revealChild: deps.revealChild,
|
|
184
|
-
isInWindow: deps.isInWindow
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
const ref = deps.innerBlockRefs[head];
|
|
188
|
-
if (!ref)
|
|
189
|
-
return null;
|
|
190
|
-
if (rest.length === 0)
|
|
191
|
-
return ref;
|
|
192
|
-
return ref.revealByPath
|
|
193
|
-
? ref.revealByPath(rest)
|
|
194
|
-
: (ref.getBlockComponentByPath?.(rest) ?? null);
|
|
195
|
-
},
|
|
165
|
+
childList: () => deps.childList,
|
|
196
166
|
focusAtColumn(x, from) {
|
|
197
|
-
// Whole-block focus has no column to land in, so a vertical entry focuses the
|
|
198
|
-
//
|
|
167
|
+
// Whole-block focus has no column to land in, so a vertical entry focuses the block
|
|
168
|
+
// itself, like the plain-arrow path.
|
|
199
169
|
const focusEl = deps.getFocusEl?.();
|
|
200
170
|
if (focusEl) {
|
|
201
171
|
landFocus(focusEl);
|
|
172
|
+
// Announced here because this branch reaches neither `placeCaret` nor a text block's
|
|
173
|
+
// editable element, the two placements that announce for everything else.
|
|
174
|
+
deps.selection.announceSelection();
|
|
202
175
|
return;
|
|
203
176
|
}
|
|
204
|
-
if (deps.
|
|
177
|
+
if (deps.childList.count() === 0)
|
|
205
178
|
return;
|
|
206
179
|
dispatchFocusAtColumn(deps.innerBlockRefs, x, from);
|
|
207
180
|
},
|
|
208
181
|
isVerticallyTransparent() {
|
|
209
|
-
return isVerticallyTransparentNode(deps.node);
|
|
182
|
+
return isVerticallyTransparentNode(deps.node, deps.reading.grammar);
|
|
210
183
|
},
|
|
211
184
|
enterEdgeWidget(side) {
|
|
212
|
-
|
|
185
|
+
const count = deps.childList.count();
|
|
186
|
+
if (count === 0)
|
|
213
187
|
return false;
|
|
214
|
-
const edge = side === 'start' ? 0 :
|
|
188
|
+
const edge = side === 'start' ? 0 : count - 1;
|
|
215
189
|
return deps.innerBlockRefs[edge]?.enterEdgeWidget?.(side) ?? false;
|
|
216
190
|
},
|
|
217
191
|
measurePartialRects(start, end) {
|
|
218
|
-
//
|
|
219
|
-
//
|
|
220
|
-
if (deps.
|
|
192
|
+
// A childless container is one unit and measures its whole box. One with children
|
|
193
|
+
// returns nothing; the overlay measures its children instead.
|
|
194
|
+
if (deps.childList.count() > 0)
|
|
221
195
|
return [];
|
|
222
196
|
const box = deps.getBoxEl?.();
|
|
223
197
|
if (!box || end <= start)
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ContainerEditActions
|
|
3
|
-
*
|
|
2
|
+
* The root ContainerEditActions: what a container reaches the editor root for, which is the
|
|
3
|
+
* document's line ending, the container commit, the two things a keystroke needs the root for
|
|
4
|
+
* (grouping it with its typing burst, and the write that keeps the leaf in place), and the caret
|
|
5
|
+
* landing with the whole-document read a delete's caret needs.
|
|
4
6
|
*/
|
|
5
7
|
import type { ContainerEditActions } from '../action-contracts';
|
|
6
8
|
import type { EditorActionsDeps, UndoController } from './deps';
|
|
@@ -1,50 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ContainerEditActions
|
|
3
|
-
*
|
|
2
|
+
* The root ContainerEditActions: what a container reaches the editor root for, which is the
|
|
3
|
+
* document's line ending, the container commit, the two things a keystroke needs the root for
|
|
4
|
+
* (grouping it with its typing burst, and the write that keeps the leaf in place), and the caret
|
|
5
|
+
* landing with the whole-document read a delete's caret needs.
|
|
4
6
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
7
|
+
import { documentLineEnding } from '../core/lines';
|
|
8
|
+
import { createLeafTyping } from './leaf-write';
|
|
9
|
+
import { survivorAfterRemoval } from '../selection/caret-target';
|
|
8
10
|
export function createContainerEditActions(deps, controller) {
|
|
11
|
+
const { typeInLeaf, writeLeafInPlace } = createLeafTyping(deps, controller);
|
|
9
12
|
return {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
controller.armUndoPause();
|
|
17
|
-
},
|
|
18
|
-
nudgeReactivity() {
|
|
19
|
-
// Raw mutations made outside the commit primitive surface through this nudge,
|
|
20
|
-
// so Svelte re-reads doc.children.
|
|
21
|
-
deps.doc.children = [...deps.doc.children];
|
|
22
|
-
},
|
|
23
|
-
withUnsharedSpine(absPath, write) {
|
|
24
|
-
const chain = ensureUnsharedPath(deps.doc, absPath, deps.sharing);
|
|
25
|
-
// Read before the write: it is the one byte-state no level of the rebuild can capture
|
|
26
|
-
// for itself, and the ancestry splice needs it to place the leaf's own region.
|
|
27
|
-
const leafPreviousRaw = chain[chain.length - 1]?.raw;
|
|
28
|
-
const written = write(chain, deps.sharing) ?? { op: 'noop' };
|
|
29
|
-
// Unconditional: this door exists to carry bytes, and a short chain or a `noop`
|
|
30
|
-
// settle says nothing about whether `write` moved any.
|
|
31
|
-
deps.bumpContentVersion();
|
|
32
|
-
// The write's own settle can splice the scope it wrote in, and a short chain means the
|
|
33
|
-
// unshare never reached that scope, so there is nothing to publish against.
|
|
34
|
-
if (chain.length === absPath.length) {
|
|
35
|
-
publishScopeFold(deps, chain[absPath.length - 2], written);
|
|
36
|
-
}
|
|
37
|
-
// The ANCESTRY settle's folds — a container's own slot in its PARENT, not the write's
|
|
38
|
-
// scope published above. Their unwind is discarded on purpose: nothing rolls back at a
|
|
39
|
-
// door that is not a ceremony. Their caret landing (`foldLandingFor`) wants a tick this
|
|
40
|
-
// synchronous door has not got, and no producer reaches one.
|
|
41
|
-
const folds = [];
|
|
42
|
-
const replacements = rebuildUnsharedChain(deps.doc, chain, deps.sharing, folds, deps.grammar, leafPreviousRaw === undefined ? undefined : { path: absPath, leafPreviousRaw });
|
|
43
|
-
publishAncestryFolds(deps, folds);
|
|
44
|
-
return replacements.length > 0;
|
|
45
|
-
},
|
|
46
|
-
commitContainer(args) {
|
|
47
|
-
return controller.commitContainerStructural(args);
|
|
48
|
-
}
|
|
13
|
+
lineEnding: () => documentLineEnding(deps.doc),
|
|
14
|
+
commitContainer: (args) => controller.commitContainerStructural(args),
|
|
15
|
+
typeInLeaf,
|
|
16
|
+
writeLeafInPlace,
|
|
17
|
+
land: (pos) => deps.caretLanding.land(pos),
|
|
18
|
+
survivorAfterRemoval: (removedPath, gesture) => survivorAfterRemoval(deps.doc, removedPath, gesture)
|
|
49
19
|
};
|
|
50
20
|
}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Backspace unwrap
|
|
4
|
-
* in `unwrap-strategies.ts
|
|
2
|
+
* The override every plugin container shares: Enter on an empty last child exits the
|
|
3
|
+
* container. Backspace unwrap comes from the kind's declared `unwrapRole`, which picks a
|
|
4
|
+
* strategy in `unwrap-strategies.ts` (`docs/design/editor.md` § Container unwrap).
|
|
5
5
|
*/
|
|
6
6
|
import type { BlockEditActions } from '../action-contracts';
|
|
7
|
+
import type { Reading } from '../schema/reading';
|
|
7
8
|
import type { NestedActionsBundle, NodeScope } from './nested/nested-actions';
|
|
8
9
|
export interface ContainerExitOverridesDeps {
|
|
9
10
|
scope: NodeScope;
|
|
10
11
|
parentBlockEdit: BlockEditActions;
|
|
12
|
+
reading: Reading;
|
|
11
13
|
}
|
|
12
14
|
export declare function createContainerExitOverrides(deps: ContainerExitOverridesDeps): (defaults: NestedActionsBundle) => {
|
|
13
15
|
blockEdit: {
|
|
14
|
-
splitBlock: (innerIndex: number, offset: number) => Promise<
|
|
16
|
+
splitBlock: (innerIndex: number, offset: number) => Promise<boolean>;
|
|
15
17
|
};
|
|
16
18
|
};
|
|
@@ -1,37 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Backspace unwrap
|
|
4
|
-
* in `unwrap-strategies.ts
|
|
2
|
+
* The override every plugin container shares: Enter on an empty last child exits the
|
|
3
|
+
* container. Backspace unwrap comes from the kind's declared `unwrapRole`, which picks a
|
|
4
|
+
* strategy in `unwrap-strategies.ts` (`docs/design/editor.md` § Container unwrap).
|
|
5
5
|
*/
|
|
6
|
-
import { displayLength } from '../core/lines';
|
|
6
|
+
import { displayLength, isBlankText } from '../core/lines';
|
|
7
7
|
import { buildQuoteExitReplacement } from '../tree-operations/blockquote';
|
|
8
8
|
export function createContainerExitOverrides(deps) {
|
|
9
9
|
return (defaults) => ({
|
|
10
10
|
blockEdit: {
|
|
11
|
-
// Enter on an empty
|
|
12
|
-
//
|
|
13
|
-
// below is left alone and a nested container is escaped one level per press.
|
|
11
|
+
// Enter on an empty last paragraph exits onto a new blank paragraph after the container,
|
|
12
|
+
// never into an existing block, so nested containers are escaped one level per Enter.
|
|
14
13
|
splitBlock: async (innerIndex, offset) => {
|
|
15
14
|
const { parentBlockEdit } = deps;
|
|
16
15
|
const { node, index } = deps.scope;
|
|
17
16
|
if (!node.children)
|
|
18
|
-
return;
|
|
17
|
+
return false;
|
|
19
18
|
const child = node.children[innerIndex];
|
|
20
19
|
const isLastChild = innerIndex === node.children.length - 1;
|
|
21
|
-
const isEmpty = child.kind === 'paragraph' && child.raw
|
|
22
|
-
if (isLastChild
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
else {
|
|
27
|
-
await parentBlockEdit.replaceBlock(index, buildQuoteExitReplacement(node), {
|
|
28
|
-
replacementIndex: 1,
|
|
29
|
-
offset: 0
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
return;
|
|
20
|
+
const isEmpty = child.kind === 'paragraph' && isBlankText(child.raw);
|
|
21
|
+
if (!isLastChild || !isEmpty)
|
|
22
|
+
return defaults.blockEdit.splitBlock(innerIndex, offset);
|
|
23
|
+
if (node.children.length <= 1) {
|
|
24
|
+
return parentBlockEdit.splitBlock(index, displayLength(node.raw));
|
|
33
25
|
}
|
|
34
|
-
return
|
|
26
|
+
return parentBlockEdit.replaceBlock(index, buildQuoteExitReplacement(node, deps.reading.grammar), {
|
|
27
|
+
replacementIndex: 1,
|
|
28
|
+
offset: 0
|
|
29
|
+
},
|
|
30
|
+
// The caret sat in a child leaf, which an offset into the quote can't name; the
|
|
31
|
+
// live read records it.
|
|
32
|
+
{ snapshotOffset: 0 });
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
35
|
});
|
|
@@ -1,60 +1,53 @@
|
|
|
1
1
|
import type { BlockComponent } from '../block-component';
|
|
2
2
|
import type { Document } from '../core/nodes';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import type { BlockElLookup, PresentationModeGetter } from '../editor-keys';
|
|
3
|
+
import type { CaretMemory } from '../cursor/caret-memory';
|
|
4
|
+
import type { BlockElLookup } from '../editor-keys';
|
|
6
5
|
import type { SelectionState } from '../selection/selection-state.svelte';
|
|
7
6
|
import type { UndoEntry, UndoManager } from '../undo/types';
|
|
8
7
|
import type { SharingState } from '../tree-operations/sharing';
|
|
9
8
|
import type { EditorEvents } from '../editor-events';
|
|
10
9
|
import type { CommitController } from '../action-contracts';
|
|
11
|
-
import type {
|
|
12
|
-
import type { InlineResolverRef } from '../schema/inline-construct-policy';
|
|
10
|
+
import type { Reading } from '../schema/reading';
|
|
13
11
|
import type { RefSlots } from '../reactivity/publish-ref.svelte';
|
|
12
|
+
import type { CaretLanding } from '../selection/caret-landing';
|
|
14
13
|
export interface EditorActionsDeps {
|
|
15
14
|
get doc(): Document;
|
|
16
15
|
get blockIds(): string[];
|
|
17
16
|
get blockRefs(): (BlockComponent | undefined)[];
|
|
18
|
-
/** The
|
|
19
|
-
*
|
|
17
|
+
/** The root block list's ref slots, so the document-scope adapter reports the same
|
|
18
|
+
* list the editor's own BlockList writes into. */
|
|
20
19
|
blockRefSlots: RefSlots<BlockComponent>;
|
|
21
20
|
setDoc(doc: Document): void;
|
|
22
21
|
setBlockIds(ids: string[]): void;
|
|
23
22
|
setBlockRefs(refs: (BlockComponent | undefined)[]): void;
|
|
24
|
-
/** Announce that
|
|
25
|
-
*
|
|
26
|
-
* writers outside it owe their own, which is the census G4.52 keeps honest. */
|
|
23
|
+
/** Announce that the document's bytes changed. A commit calls it once; a writer outside a
|
|
24
|
+
* commit must call it itself (G4.52). */
|
|
27
25
|
bumpContentVersion(): void;
|
|
28
26
|
undoManager: UndoManager;
|
|
29
27
|
sharing: SharingState;
|
|
30
|
-
|
|
31
|
-
edgeAffinity: EdgeAffinityState;
|
|
28
|
+
caretMemory: CaretMemory;
|
|
32
29
|
selectionState: SelectionState;
|
|
33
30
|
getBlockElByPath: BlockElLookup;
|
|
34
|
-
/**
|
|
35
|
-
*
|
|
36
|
-
|
|
37
|
-
revealPath(path: number[]): Promise<BlockComponent | null>;
|
|
31
|
+
/** Where every commit's caret and every restored selection is put down, and the counter an
|
|
32
|
+
* undo, redo or swap bumps. */
|
|
33
|
+
caretLanding: CaretLanding;
|
|
38
34
|
events: EditorEvents;
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
|
|
42
|
-
/** Live EFFECTIVE mode, for the seams that must not act in reading mode. Absent in
|
|
43
|
-
* harnesses, which `isReadingMode` reads as not-reading. */
|
|
44
|
-
getPresentationMode?: PresentationModeGetter;
|
|
45
|
-
/** The instance's link-reference resolver, for the byte rewrites that must parse the reference
|
|
46
|
-
* forms the render path drew. Absent in harnesses, which have no definitions to resolve. */
|
|
47
|
-
linkRef?: InlineResolverRef;
|
|
35
|
+
/** How the editor reads its bytes: a re-parse or completer reads only the syntax it switched
|
|
36
|
+
* on, a rewrite parses the reference links the renderer drew, a write refuses reading mode. */
|
|
37
|
+
reading: Reading;
|
|
48
38
|
}
|
|
49
39
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
40
|
+
* `CommitController` plus the members typed against `undo/`. They live here so
|
|
41
|
+
* `action-contracts` keeps no import from `undo/`.
|
|
52
42
|
*/
|
|
53
43
|
export interface UndoController extends CommitController {
|
|
44
|
+
/** Call a keystroke's commit into the undo entry its typing batch already holds, so a key that
|
|
45
|
+
* reparses into several blocks undoes with the typing around it. Covers the call only. */
|
|
46
|
+
joinTypingBatch<T>(write: () => T): T;
|
|
54
47
|
captureCurrentState(): UndoEntry;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
48
|
+
}
|
|
49
|
+
/** The editor root's deps and controller, which a write addressed by document path starts from. */
|
|
50
|
+
export interface EditorRoot {
|
|
51
|
+
deps: EditorActionsDeps;
|
|
52
|
+
controller: UndoController;
|
|
60
53
|
}
|