@voithos-labs/aragonite 0.10.4 → 0.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/a11y-strings.d.ts +11 -5
- package/dist/a11y-strings.js +60 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +12 -21
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +603 -1126
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +26 -51
- package/dist/components/SelectionOverlay.svelte.d.ts +5 -3
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +72 -87
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +29 -34
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +57 -39
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +141 -203
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +45 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +93 -147
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +8 -6
- package/dist/components/blocks/text/click-snap-guard.js +10 -7
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +150 -181
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -108
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +212 -199
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +12 -35
- package/dist/components/drag-handle.js +22 -68
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -24
- package/dist/components/editor-root-listeners.js +49 -24
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +14 -26
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +30 -35
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +3 -5
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +54 -75
- package/dist/core/inline/inline-widgets.js +54 -62
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +31 -15
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -6
- package/dist/cursor/height-oracle.js +26 -74
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +14 -15
- package/dist/cursor/scrollport.js +7 -13
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -14
- package/dist/cursor/visual-lines.js +45 -46
- package/dist/cursor/widget-edge-snap.d.ts +10 -15
- package/dist/cursor/widget-edge-snap.js +13 -12
- package/dist/cursor/widget-offset.d.ts +110 -104
- package/dist/cursor/widget-offset.js +344 -179
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +30 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +28 -50
- package/dist/editor-actions/focus/focus-landing.d.ts +8 -11
- package/dist/editor-actions/focus/focus-landing.js +15 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +54 -82
- package/dist/editor-actions/plugin/container.js +105 -188
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +88 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +37 -8
- package/dist/plugin.js +100 -77
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +78 -67
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -81
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +51 -45
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +15 -6
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +141 -310
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +78 -84
- package/dist/schema/commands.js +152 -117
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +8 -10
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +63 -80
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +92 -125
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +59 -96
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +51 -134
- package/dist/selection/dead-space-caret.d.ts +19 -30
- package/dist/selection/dead-space-caret.js +70 -88
- package/dist/selection/drag-pointer.d.ts +7 -9
- package/dist/selection/drag-pointer.js +23 -33
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -40
- package/dist/selection/keyboard-extend.js +94 -117
- package/dist/selection/multi-click.d.ts +13 -18
- package/dist/selection/multi-click.js +32 -38
- package/dist/selection/native-bridge.d.ts +29 -39
- package/dist/selection/native-bridge.js +78 -127
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +25 -16
- package/dist/selection/path-lookup.js +101 -18
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +5 -5
- package/dist/selection/pointer-gesture.js +5 -5
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -40
- package/dist/selection/primitives.js +57 -67
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -23
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +34 -16
- package/dist/selection/selection-drop.js +159 -95
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +60 -53
- package/dist/styles/editor.css +201 -143
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +9 -7
- package/dist/tree-operations/paste/replacement-parse.js +12 -10
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +327 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +253 -185
- package/docs/guide/plugin-guide.md +332 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +12 -16
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/cursor/scroll-hold.d.ts +0 -10
- package/dist/cursor/scroll-hold.js +0 -22
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -31
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -78
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor-root menus: the block context menu (a right-click on a block runs its kind's registered
|
|
3
|
+
* actions; prose and a selection get the clipboard rows, and prose an insert flyout). The open
|
|
4
|
+
* menu is `$state` in `Editor.svelte`, written through `setMenu`; a menu takes no focus, so
|
|
5
|
+
* the caret it acts on stays exactly where it is.
|
|
6
|
+
*/
|
|
7
|
+
import { BLOCK_ACTIONS_LABEL } from '../a11y-strings';
|
|
8
|
+
import { blockContextActionsFor } from '../schema/context-actions';
|
|
9
|
+
import { applyPasteTransforms } from '../tree-operations/paste/paste-transforms';
|
|
10
|
+
import { runClipboardAction } from './menu/clipboard-actions';
|
|
11
|
+
import { blockNoun } from './menu/default-context-actions';
|
|
12
|
+
import { isProseLeaf } from '../schema/page-role';
|
|
13
|
+
import { readBlockPath } from '../selection/path-lookup';
|
|
14
|
+
import { documentLineEnding } from '../core/lines';
|
|
15
|
+
export function createRootMenus(deps) {
|
|
16
|
+
function anchorOn(el, point) {
|
|
17
|
+
const rect = el.getBoundingClientRect();
|
|
18
|
+
const dx = point.x - rect.left;
|
|
19
|
+
const dy = point.y - rect.top;
|
|
20
|
+
return () => {
|
|
21
|
+
const now = el.getBoundingClientRect();
|
|
22
|
+
return { x: now.left + dx, y: now.top + dy };
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** Where a paste goes: whatever editable element holds focus inside the root. */
|
|
26
|
+
function focusedEditable() {
|
|
27
|
+
const active = document.activeElement;
|
|
28
|
+
return active instanceof HTMLElement &&
|
|
29
|
+
deps.editorEl?.contains(active) &&
|
|
30
|
+
active.isContentEditable
|
|
31
|
+
? active
|
|
32
|
+
: null;
|
|
33
|
+
}
|
|
34
|
+
function clipboardRows() {
|
|
35
|
+
const selected = !!focusedEditable() && !(window.getSelection()?.isCollapsed ?? true);
|
|
36
|
+
return [
|
|
37
|
+
{ id: 'clip.cut', label: 'Cut', icon: 'scissors', disabled: !selected },
|
|
38
|
+
{ id: 'clip.copy', label: 'Copy', icon: 'copy', disabled: !selected },
|
|
39
|
+
{ id: 'clip.paste', label: 'Paste', icon: 'clipboard' },
|
|
40
|
+
{ id: 'clip.paste-plain', label: 'Paste as plain text', icon: 'type' }
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
function runClipboardRow(id) {
|
|
44
|
+
if (!id.startsWith('clip.'))
|
|
45
|
+
return false;
|
|
46
|
+
void runClipboardAction(id.slice('clip.'.length), focusedEditable());
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
/** `withInsert` adds the "Insert block" flyout, whose rows land below the block the caret was
|
|
50
|
+
* just placed in; false leaves the menu to the clipboard rows alone. */
|
|
51
|
+
function openClipboardMenu(point, anchorEl, withInsert) {
|
|
52
|
+
const catalogue = deps.insertCatalogue();
|
|
53
|
+
const insert = !withInsert
|
|
54
|
+
? []
|
|
55
|
+
: [
|
|
56
|
+
{ id: 'sep', label: '', divider: true },
|
|
57
|
+
{
|
|
58
|
+
id: 'insert',
|
|
59
|
+
label: 'Insert block',
|
|
60
|
+
icon: 'plus',
|
|
61
|
+
children: catalogue.map(({ id, label, icon }) => ({ id, label, icon }))
|
|
62
|
+
}
|
|
63
|
+
];
|
|
64
|
+
deps.setMenu({
|
|
65
|
+
...point,
|
|
66
|
+
anchor: anchorOn(anchorEl, point),
|
|
67
|
+
items: [...clipboardRows(), ...insert],
|
|
68
|
+
label: BLOCK_ACTIONS_LABEL,
|
|
69
|
+
pick: (id) => {
|
|
70
|
+
deps.setMenu(null);
|
|
71
|
+
if (runClipboardRow(id))
|
|
72
|
+
return;
|
|
73
|
+
const entry = catalogue.find((e) => e.id === id);
|
|
74
|
+
if (entry && withInsert)
|
|
75
|
+
void deps.insertMarkdown(entry.markdown, { placement: 'below' });
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function openBlockActions(point, host, path, node) {
|
|
80
|
+
const noun = blockNoun(node, deps.reading);
|
|
81
|
+
const actions = blockContextActionsFor(node, path, deps.activation, noun);
|
|
82
|
+
if (actions.length === 0)
|
|
83
|
+
return;
|
|
84
|
+
const index = path[0];
|
|
85
|
+
const ctx = {
|
|
86
|
+
node,
|
|
87
|
+
path,
|
|
88
|
+
deleteBlock: async () => {
|
|
89
|
+
await deps.blockEdit.deleteBlock(index, 'keyless');
|
|
90
|
+
},
|
|
91
|
+
replaceRaw: (raw) => deps.replaceRaw(index, raw),
|
|
92
|
+
transformPaste: (text) => applyPasteTransforms(text, deps.activation),
|
|
93
|
+
lineEnding: documentLineEnding(deps.getDoc())
|
|
94
|
+
};
|
|
95
|
+
deps.setMenu({
|
|
96
|
+
...point,
|
|
97
|
+
anchor: anchorOn(host, point),
|
|
98
|
+
items: actions.map(({ id, label, icon, danger }) => ({
|
|
99
|
+
id,
|
|
100
|
+
label,
|
|
101
|
+
icon: icon,
|
|
102
|
+
danger
|
|
103
|
+
})),
|
|
104
|
+
label: BLOCK_ACTIONS_LABEL,
|
|
105
|
+
pick: (id) => {
|
|
106
|
+
deps.setMenu(null);
|
|
107
|
+
const action = actions.find((a) => a.id === id);
|
|
108
|
+
if (action)
|
|
109
|
+
void action.run(ctx);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
// A right-click on a block opens its own menu; prose and a selection get the clipboard rows,
|
|
114
|
+
// and the margin shows nothing.
|
|
115
|
+
function onRootContextMenu(e) {
|
|
116
|
+
const root = deps.editorEl;
|
|
117
|
+
if (e.defaultPrevented || deps.mode === 'reading' || !root)
|
|
118
|
+
return;
|
|
119
|
+
const target = e.target instanceof Element ? e.target : null;
|
|
120
|
+
if (!target || deps.isHostChrome(target))
|
|
121
|
+
return;
|
|
122
|
+
e.preventDefault();
|
|
123
|
+
// The keyboard's contextmenu event (Windows fires it on the ContextMenu key's release)
|
|
124
|
+
// lands on the item the keydown's own menu already focused: that menu is the answer.
|
|
125
|
+
if (target.closest('.md-menu'))
|
|
126
|
+
return;
|
|
127
|
+
const host = target.closest('.block-host[data-block-path]');
|
|
128
|
+
const path = readBlockPath(host);
|
|
129
|
+
if (!host || !path)
|
|
130
|
+
return;
|
|
131
|
+
const point = { x: e.clientX, y: e.clientY };
|
|
132
|
+
const native = window.getSelection();
|
|
133
|
+
const selected = !!native && !native.isCollapsed && root.contains(native.anchorNode);
|
|
134
|
+
// A nested block (a fence inside a list item) gets the clipboard rows.
|
|
135
|
+
const node = path.length === 1 ? deps.getDoc().children[path[0]] : undefined;
|
|
136
|
+
const prose = !!node && isProseLeaf(node, deps.reading);
|
|
137
|
+
if (selected || !node || prose) {
|
|
138
|
+
if (!selected)
|
|
139
|
+
deps.placeCaretAtPoint(e.clientX, e.clientY);
|
|
140
|
+
// Top-level prose is where a sibling block makes sense.
|
|
141
|
+
openClipboardMenu(point, host, !selected && prose);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
openBlockActions(point, host, path, node);
|
|
145
|
+
}
|
|
146
|
+
return { onRootContextMenu };
|
|
147
|
+
}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* the
|
|
4
|
-
*
|
|
5
|
-
* the post phase drops the geometry the old markers set and re-seats the caret through the
|
|
6
|
-
* reveal road. The two `$effect`s stay in `Editor.svelte` as the mode read plus one call each.
|
|
2
|
+
* Keeps the caret across a presentation-mode switch. `beforeFlip` captures the caret and blurs
|
|
3
|
+
* the block while the outgoing mode still owns the DOM; `afterFlip` drops the outgoing markers'
|
|
4
|
+
* geometry and restores the caret through the shared restore path.
|
|
7
5
|
*/
|
|
8
|
-
import type {
|
|
9
|
-
import type {
|
|
6
|
+
import type { CaretMemory } from '../cursor/caret-memory';
|
|
7
|
+
import type { LayoutState } from '../reactivity/layout-state.svelte';
|
|
10
8
|
import type { EditorEvents } from '../editor-events';
|
|
11
9
|
import type { BlockElLookup } from '../editor-keys';
|
|
12
10
|
import type { PresentationMode } from '../presentation-mode';
|
|
@@ -19,16 +17,23 @@ export interface ModeFlipDeps {
|
|
|
19
17
|
selection: Pick<SelectionState, 'isCrossBlock' | 'gapCaret' | 'clearGapCaret'>;
|
|
20
18
|
/** The public snapshot, which also answers for a native caret no block reports. */
|
|
21
19
|
getSelection(): EditorSelection | null;
|
|
20
|
+
/** Sends the current selection to subscribers. */
|
|
21
|
+
announceSelection(): void;
|
|
22
22
|
getBlockElByPath: BlockElLookup;
|
|
23
23
|
isHostChrome(node: Node | null): boolean;
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
caretMemory: Pick<CaretMemory, 'forget'>;
|
|
25
|
+
layout: Pick<LayoutState, 'forgetMeasuredHeights'>;
|
|
26
26
|
events: EditorEvents;
|
|
27
|
-
/** The bare-mount restore
|
|
27
|
+
/** The bare-mount restore path: a mode change only changes the view, so it writes no
|
|
28
|
+
* scroll position. */
|
|
28
29
|
restoreCaret(path: number[], offset: number): Promise<unknown>;
|
|
30
|
+
/** Make the editor's reading answer `mode` (null: the requested mode again), so an edit the
|
|
31
|
+
* blur commits lands in the mode it was typed in. */
|
|
32
|
+
holdOutgoingMode(mode: PresentationMode | null): void;
|
|
29
33
|
}
|
|
30
34
|
export interface ModeFlip {
|
|
31
|
-
/** The `$effect.pre` half, run untracked: capture and blur while the outgoing mode
|
|
35
|
+
/** The `$effect.pre` half, run untracked: capture and blur while the outgoing mode still
|
|
36
|
+
* owns the DOM. */
|
|
32
37
|
beforeFlip(to: PresentationMode): void;
|
|
33
38
|
/** The `$effect` half: reset mode-bound geometry, then restore the caret after the flush. */
|
|
34
39
|
afterFlip(to: PresentationMode): void;
|
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* the
|
|
4
|
-
*
|
|
5
|
-
* the post phase drops the geometry the old markers set and re-seats the caret through the
|
|
6
|
-
* reveal road. The two `$effect`s stay in `Editor.svelte` as the mode read plus one call each.
|
|
2
|
+
* Keeps the caret across a presentation-mode switch. `beforeFlip` captures the caret and blurs
|
|
3
|
+
* the block while the outgoing mode still owns the DOM; `afterFlip` drops the outgoing markers'
|
|
4
|
+
* geometry and restores the caret through the shared restore path.
|
|
7
5
|
*/
|
|
8
6
|
import { tick } from 'svelte';
|
|
9
7
|
import { isTextEntrySurface } from '../active-editor';
|
|
10
|
-
import {
|
|
11
|
-
import { toClampedRawOffset } from '../cursor/coordinate-spaces';
|
|
12
|
-
import { domTextOffsetAtNode } from '../cursor/widget-offset';
|
|
8
|
+
import { rawOffsetAt } from '../cursor/widget-offset';
|
|
13
9
|
import { findSurfacePathForElement } from '../selection/path-lookup';
|
|
14
10
|
export function createModeFlip(deps) {
|
|
15
11
|
let flipCaret = null;
|
|
16
12
|
let preFlipSeenMode = deps.mode;
|
|
17
13
|
let lastEffectiveMode = deps.mode;
|
|
18
|
-
/** The focused
|
|
19
|
-
* focus, else the native range a toggle click leaves behind while
|
|
14
|
+
/** The focused block's caret as (path, raw offset): the block's own answer while it holds
|
|
15
|
+
* focus, else the native range a toggle click leaves behind while the button has focus. */
|
|
20
16
|
function captureCaret() {
|
|
21
17
|
if (deps.selection.isCrossBlock || deps.selection.gapCaret)
|
|
22
18
|
return null;
|
|
@@ -34,51 +30,57 @@ export function createModeFlip(deps) {
|
|
|
34
30
|
const contentEl = deps.getBlockElByPath(path);
|
|
35
31
|
if (!contentEl?.contains(node))
|
|
36
32
|
return null;
|
|
37
|
-
const offset =
|
|
33
|
+
const offset = rawOffsetAt(contentEl, node, sel.focusOffset);
|
|
38
34
|
return { path, offset };
|
|
39
35
|
}
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
// restore from stealing a host field mid-typing.
|
|
36
|
+
// The restore path clamps the offset to one the new mode allows; a focused text field is
|
|
37
|
+
// left alone, so the restore cannot steal a host field mid-typing.
|
|
43
38
|
async function restoreAfterFlush(caret, to) {
|
|
44
39
|
await tick();
|
|
45
40
|
if (deps.mode !== to || isTextEntrySurface(document.activeElement))
|
|
46
41
|
return;
|
|
47
42
|
await deps.restoreCaret(caret.path, caret.offset);
|
|
48
43
|
}
|
|
44
|
+
// A mode change blurs the block, so revealed markers and a composition close as on any blur;
|
|
45
|
+
// the host's header is exempt.
|
|
46
|
+
function blurForFlip() {
|
|
47
|
+
const active = document.activeElement;
|
|
48
|
+
if (!(active instanceof HTMLElement) || !deps.editorEl?.contains(active))
|
|
49
|
+
return;
|
|
50
|
+
if (deps.isHostChrome(active))
|
|
51
|
+
return;
|
|
52
|
+
active.blur();
|
|
53
|
+
// A blur the editor performs announces the selection it drops: the document listener only
|
|
54
|
+
// reports a range the browser still anchors in the root, and this one is gone.
|
|
55
|
+
deps.announceSelection();
|
|
56
|
+
}
|
|
49
57
|
return {
|
|
50
58
|
beforeFlip(to) {
|
|
51
59
|
if (to === preFlipSeenMode)
|
|
52
60
|
return;
|
|
53
61
|
const from = preFlipSeenMode;
|
|
54
62
|
preFlipSeenMode = to;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
active.blur();
|
|
65
|
-
// A blur the editor performs announces the selection it drops: the document listener
|
|
66
|
-
// only reports a range the browser still anchors in the root, and this one is gone.
|
|
67
|
-
deps.events.emit('selectionChange', deps.getSelection());
|
|
63
|
+
deps.holdOutgoingMode(from);
|
|
64
|
+
try {
|
|
65
|
+
// Reading keeps its entry snapshot: it has no caret of its own to recapture on the way out.
|
|
66
|
+
if (from !== 'reading')
|
|
67
|
+
flipCaret = captureCaret();
|
|
68
|
+
blurForFlip();
|
|
69
|
+
}
|
|
70
|
+
finally {
|
|
71
|
+
deps.holdOutgoingMode(null);
|
|
68
72
|
}
|
|
69
73
|
},
|
|
70
74
|
afterFlip(to) {
|
|
71
75
|
if (to === lastEffectiveMode)
|
|
72
76
|
return;
|
|
73
77
|
lastEffectiveMode = to;
|
|
74
|
-
//
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
deps.edgeAffinity.reset();
|
|
78
|
-
deps.heightOracle.dropMeasured();
|
|
78
|
+
// The caret memory and measured heights belong to the outgoing mode's markers.
|
|
79
|
+
deps.caretMemory.forget();
|
|
80
|
+
deps.layout.forgetMeasuredHeights();
|
|
79
81
|
if (to === 'reading') {
|
|
80
|
-
// The gap is
|
|
81
|
-
// rather than each
|
|
82
|
+
// The gap caret is the editor's own, not the browser's, so no blur reaches it:
|
|
83
|
+
// the mode change clears it rather than each entry path.
|
|
82
84
|
deps.selection.clearGapCaret();
|
|
83
85
|
}
|
|
84
86
|
else if (flipCaret) {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the one scroller the scroll mode picks, so nothing downstream branches on the mode:
|
|
3
|
+
* what a drag autoscrolls, what bounds the visible region, what the scroll owner opens as its
|
|
4
|
+
* port. Host-mode answers are cached on first read, so a host that swaps its scroller must remount.
|
|
5
|
+
*/
|
|
6
|
+
import { type UserScrollport } from '../cursor/scroll-ancestors';
|
|
7
|
+
export interface ScrollHostDeps {
|
|
8
|
+
/** A getter, never a value: the root binds after construction. */
|
|
9
|
+
get editorEl(): HTMLElement | undefined;
|
|
10
|
+
/** Set once: reading it live inside windowing's derived would make the mode a
|
|
11
|
+
* dependency of the hottest path. */
|
|
12
|
+
hostScroll: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface ScrollHostResolution {
|
|
15
|
+
/** The root in self mode, the nearest user-scrollable ancestor in host mode. Null only
|
|
16
|
+
* before the root mounts. */
|
|
17
|
+
getScrollHost(): UserScrollport | null;
|
|
18
|
+
/** Every clipping ancestor; their overlap with the viewport is where a block scrolled into
|
|
19
|
+
* view must end up. Empty in self mode. */
|
|
20
|
+
getClipBounds(): HTMLElement[];
|
|
21
|
+
}
|
|
22
|
+
export declare function createScrollHostResolution(deps: ScrollHostDeps): ScrollHostResolution;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the one scroller the scroll mode picks, so nothing downstream branches on the mode:
|
|
3
|
+
* what a drag autoscrolls, what bounds the visible region, what the scroll owner opens as its
|
|
4
|
+
* port. Host-mode answers are cached on first read, so a host that swaps its scroller must remount.
|
|
5
|
+
*/
|
|
6
|
+
import { clippingAncestors, userScrollportFor } from '../cursor/scroll-ancestors';
|
|
7
|
+
export function createScrollHostResolution(deps) {
|
|
8
|
+
let resolvedScrollHost = null;
|
|
9
|
+
let resolvedClipBounds = [];
|
|
10
|
+
let hostResolved = false;
|
|
11
|
+
function resolveHost() {
|
|
12
|
+
const root = deps.editorEl;
|
|
13
|
+
if (hostResolved || !root)
|
|
14
|
+
return;
|
|
15
|
+
resolvedScrollHost = userScrollportFor(root);
|
|
16
|
+
resolvedClipBounds = clippingAncestors(root);
|
|
17
|
+
hostResolved = true;
|
|
18
|
+
}
|
|
19
|
+
function getScrollHost() {
|
|
20
|
+
if (!deps.hostScroll)
|
|
21
|
+
return deps.editorEl ?? null;
|
|
22
|
+
resolveHost();
|
|
23
|
+
return resolvedScrollHost;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
getScrollHost,
|
|
27
|
+
getClipBounds() {
|
|
28
|
+
if (!deps.hostScroll)
|
|
29
|
+
return [];
|
|
30
|
+
resolveHost();
|
|
31
|
+
return resolvedClipBounds;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The e2e bridge's shape (`window.__test`, read through `routes/test/editor/test-probes.ts`).
|
|
3
|
+
* Frozen: every member name and signature is read by the e2e suite, so a change here is a
|
|
4
|
+
* change to hundreds of specs. Each member answers what no public method can.
|
|
5
|
+
*/
|
|
6
|
+
import type { BlockComponent } from '../block-component';
|
|
7
|
+
import type { Document } from '../core/nodes';
|
|
8
|
+
import type { HeightOracle } from '../cursor/height-oracle';
|
|
9
|
+
import type { ListTree } from '../reactivity/list-tree';
|
|
10
|
+
import type { OperationsLog } from '../debug/operations-log';
|
|
11
|
+
import type { DecorationEngine } from '../decorations/decoration-state.svelte';
|
|
12
|
+
import type { RefSlots } from '../reactivity/publish-ref.svelte';
|
|
13
|
+
import type { GapCaretPosition } from '../selection/gap-caret';
|
|
14
|
+
import type { GrammarView } from '../schema/block-openers';
|
|
15
|
+
import type { UndoManager } from '../undo/types';
|
|
16
|
+
export interface EditorTestSurface {
|
|
17
|
+
/** The live CST; read-only by contract, since a write bypasses the undo pipeline. */
|
|
18
|
+
getDocument(): Document;
|
|
19
|
+
/** The grammar this editor parses with, so a reload check reads the bytes as the editor does. */
|
|
20
|
+
getGrammar(): GrammarView;
|
|
21
|
+
/** The only place the `source` prop's reset can be observed; it lives in the root. */
|
|
22
|
+
getContentVersion(): number;
|
|
23
|
+
getBlockComponent(path: number[]): BlockComponent | null;
|
|
24
|
+
getUndoStack(): ReturnType<UndoManager['getStacks']>;
|
|
25
|
+
getOperationsLog(): OperationsLog;
|
|
26
|
+
/** The state, not the `data-cross-block` mirror: a deferred `$effect` writes the attribute,
|
|
27
|
+
* and an intra-table rectangle keeps one path on both endpoints. */
|
|
28
|
+
isCrossBlockActive(): boolean;
|
|
29
|
+
/** The gap caret has no public selection shape and no paint, so arrival is observable
|
|
30
|
+
* only here. */
|
|
31
|
+
getGapCaret(): GapCaretPosition | null;
|
|
32
|
+
/** The decoration engine, not the `addSource`-only registry: its per-path buckets are the
|
|
33
|
+
* only place a stale bucket shows, since jsdom measures every range at zero width. */
|
|
34
|
+
getDecorationEngine(): DecorationEngine;
|
|
35
|
+
/** Root-constructed and handed down through context, so its lifetime against a document
|
|
36
|
+
* swap cannot be checked headlessly. */
|
|
37
|
+
getHeightOracle(): HeightOracle;
|
|
38
|
+
/** The top-level blocks' ids, which no node carries; a container's are its `childIds`. */
|
|
39
|
+
getBlockIds(): readonly string[];
|
|
40
|
+
/** Every id the height estimator holds a measurement for. */
|
|
41
|
+
getMeasuredIds(): string[];
|
|
42
|
+
/** Every mounted block list, whose height tables no public method reads. */
|
|
43
|
+
getListTree(): ListTree;
|
|
44
|
+
/** The one value a block list rebuilds off when no id moved. */
|
|
45
|
+
getWidthVersion(): number;
|
|
46
|
+
/** Creates the stale child-ref entry an unmounted block's cleanup can leave behind. */
|
|
47
|
+
setBlockRefSlot: RefSlots<BlockComponent>['set'];
|
|
48
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The e2e bridge's shape (`window.__test`, read through `routes/test/editor/test-probes.ts`).
|
|
3
|
+
* Frozen: every member name and signature is read by the e2e suite, so a change here is a
|
|
4
|
+
* change to hundreds of specs. Each member answers what no public method can.
|
|
5
|
+
*/
|
|
6
|
+
export {};
|
|
@@ -1,77 +1,86 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { getContext } from 'svelte';
|
|
3
|
-
import type { Document } from '../../core/nodes';
|
|
4
|
-
import type {
|
|
5
|
-
import type { UndoController } from '../../editor-actions/deps';
|
|
6
|
-
import type { GrammarView } from '../../schema/block-openers';
|
|
2
|
+
import { getContext, untrack } from 'svelte';
|
|
3
|
+
import type { Document, ImageFields } from '../../core/nodes';
|
|
4
|
+
import type { InlineRangeCommit } from '../../editor-actions/inline-range-commit';
|
|
7
5
|
import { EDITOR_DOC_KEY, type EditorDoc } from '../../editor-keys';
|
|
8
6
|
import type { EditorEvents } from '../../editor-events';
|
|
9
7
|
import { installWidgetRangePainter } from '../../selection/widget-range-paint';
|
|
10
8
|
import ImageProperties from './ImageProperties.svelte';
|
|
11
9
|
import ImageResizeHandles from './ImageResizeHandles.svelte';
|
|
12
10
|
import { createImageEditCommitter } from './image-edit-commit';
|
|
13
|
-
import { imageFieldsFromInline } from '
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} from './widget-selection-state.svelte';
|
|
11
|
+
import { imageFieldsFromInline } from '../../core/inline/image-source-bytes';
|
|
12
|
+
import type { MenuPresence } from '../menu/menu-presence.svelte';
|
|
13
|
+
import { pressLeavesImage, type WidgetSelectionState } from './widget-selection-state.svelte';
|
|
14
|
+
import type { WidgetTarget } from '../../selection/primitives';
|
|
18
15
|
|
|
19
16
|
// Mounted unconditionally by Editor: the effects below must observe
|
|
20
17
|
// widget-selection changes, so the selected-widget {#if} lives here.
|
|
21
18
|
let {
|
|
22
19
|
widgetSelection,
|
|
23
|
-
|
|
20
|
+
inlineRange,
|
|
24
21
|
events,
|
|
25
22
|
getDoc,
|
|
23
|
+
getContentVersion,
|
|
26
24
|
getEditorEl,
|
|
27
25
|
getSelectionIsCustomRendered,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
lifetime
|
|
26
|
+
lifetime,
|
|
27
|
+
menuPresence
|
|
31
28
|
}: {
|
|
32
29
|
widgetSelection: WidgetSelectionState;
|
|
33
|
-
|
|
30
|
+
inlineRange: InlineRangeCommit;
|
|
34
31
|
events: EditorEvents;
|
|
35
32
|
getDoc: () => Document;
|
|
33
|
+
getContentVersion: () => number;
|
|
36
34
|
getEditorEl: () => HTMLElement | null;
|
|
37
35
|
getSelectionIsCustomRendered: () => boolean;
|
|
38
|
-
|
|
39
|
-
grammar?: GrammarView;
|
|
36
|
+
menuPresence: MenuPresence;
|
|
40
37
|
lifetime: AbortSignal;
|
|
41
38
|
} = $props();
|
|
42
39
|
|
|
43
40
|
let imageOverlayEl: HTMLDivElement | undefined = $state();
|
|
44
|
-
//
|
|
41
|
+
// While cropping, the pointer over the image belongs to the crop; the resize handle yields.
|
|
45
42
|
let cropping = $state(false);
|
|
46
43
|
|
|
47
|
-
const
|
|
44
|
+
const { reading } = getContext<EditorDoc>(EDITOR_DOC_KEY);
|
|
48
45
|
|
|
49
|
-
//
|
|
50
|
-
// reactive values already cross as getters.
|
|
46
|
+
// Captured once: props are stable for the editor's lifetime, and reactive ones are getters.
|
|
51
47
|
// svelte-ignore state_referenced_locally
|
|
52
48
|
const imageEdit = createImageEditCommitter({
|
|
53
49
|
getDoc,
|
|
54
50
|
getEditorEl,
|
|
55
51
|
widgetSelection,
|
|
56
|
-
|
|
52
|
+
inlineRange,
|
|
57
53
|
events,
|
|
58
|
-
|
|
59
|
-
grammar
|
|
54
|
+
reading
|
|
60
55
|
});
|
|
61
56
|
|
|
62
57
|
$effect(() => {
|
|
63
58
|
const root = getEditorEl();
|
|
64
59
|
if (!root) return;
|
|
65
60
|
const handlePointerDown = (e: PointerEvent) => {
|
|
66
|
-
|
|
67
|
-
if (target?.closest(IMAGE_CHROME_SELECTOR)) return;
|
|
68
|
-
widgetSelection.clear();
|
|
61
|
+
if (pressLeavesImage(e, root)) widgetSelection.clear();
|
|
69
62
|
};
|
|
70
63
|
root.addEventListener('pointerdown', handlePointerDown);
|
|
71
64
|
return () => root.removeEventListener('pointerdown', handlePointerDown);
|
|
72
65
|
});
|
|
73
66
|
|
|
74
67
|
$effect(() => imageEdit.attachWidgetSelectListener());
|
|
68
|
+
// On every document change: an image whose bytes moved follows them, and one whose bytes are
|
|
69
|
+
// gone stops being selected.
|
|
70
|
+
$effect(() => {
|
|
71
|
+
getContentVersion();
|
|
72
|
+
untrack(imageEdit.clearStaleSelection);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
// The popover's effects and cleanup can run once more after the selection or its image is
|
|
76
|
+
// gone, before the branch that mounts it tears down, so they read the last live pair.
|
|
77
|
+
let lastPopover: { target: WidgetTarget; fields: ImageFields } | null = null;
|
|
78
|
+
const popover = $derived.by(() => {
|
|
79
|
+
const target = widgetSelection.getSelected();
|
|
80
|
+
const image = imageEdit.getSelectedImageFields()?.image;
|
|
81
|
+
if (target && image) lastPopover = { target, fields: imageFieldsFromInline(image) };
|
|
82
|
+
return lastPopover;
|
|
83
|
+
});
|
|
75
84
|
|
|
76
85
|
$effect(() => {
|
|
77
86
|
widgetSelection.getSelected(); // re-run + reposition when the selected widget changes
|
|
@@ -90,12 +99,11 @@
|
|
|
90
99
|
});
|
|
91
100
|
</script>
|
|
92
101
|
|
|
93
|
-
<!-- Selecting an image stays available in reading mode; the overlay is
|
|
94
|
-
|
|
95
|
-
{#if widgetSelection.getSelected() &&
|
|
96
|
-
{@const sel = widgetSelection.getSelected()!}
|
|
102
|
+
<!-- Selecting an image stays available in reading mode; the overlay is a set of
|
|
103
|
+
editing controls, so reading mode never mounts it. -->
|
|
104
|
+
{#if widgetSelection.getSelected() && reading.mode() !== 'reading'}
|
|
97
105
|
{@const ctx = imageEdit.getSelectedImageFields()}
|
|
98
|
-
{#if ctx?.widgetEl}
|
|
106
|
+
{#if ctx?.widgetEl && popover}
|
|
99
107
|
<div bind:this={imageOverlayEl} class="md-image-overlay" data-image-overlay>
|
|
100
108
|
{#if !cropping}
|
|
101
109
|
<ImageResizeHandles
|
|
@@ -105,16 +113,17 @@
|
|
|
105
113
|
onCommit={imageEdit.commitImageResize}
|
|
106
114
|
/>
|
|
107
115
|
{/if}
|
|
108
|
-
{#key `${
|
|
116
|
+
{#key `${popover.target.paragraphPath.join(',')}@${popover.target.sourceStart}`}
|
|
109
117
|
<ImageProperties
|
|
110
|
-
target={
|
|
111
|
-
fields={
|
|
118
|
+
target={popover.target}
|
|
119
|
+
fields={popover.fields}
|
|
112
120
|
getWidgetEl={() => imageEdit.getSelectedImageFields()?.widgetEl ?? null}
|
|
113
121
|
buildBytes={imageEdit.buildEditBytes}
|
|
114
122
|
onCommit={imageEdit.commitImageEdit}
|
|
115
123
|
onRemove={imageEdit.removeImage}
|
|
116
124
|
onDismiss={imageEdit.dismissImagePopover}
|
|
117
125
|
maxFrameWidth={imageEdit.getEditorContentWidth}
|
|
126
|
+
{menuPresence}
|
|
118
127
|
bind:cropping
|
|
119
128
|
/>
|
|
120
129
|
{/key}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import type { Document } from '../../core/nodes';
|
|
2
|
-
import type {
|
|
3
|
-
import type { UndoController } from '../../editor-actions/deps';
|
|
4
|
-
import type { GrammarView } from '../../schema/block-openers';
|
|
2
|
+
import type { InlineRangeCommit } from '../../editor-actions/inline-range-commit';
|
|
5
3
|
import type { EditorEvents } from '../../editor-events';
|
|
4
|
+
import type { MenuPresence } from '../menu/menu-presence.svelte';
|
|
6
5
|
import { type WidgetSelectionState } from './widget-selection-state.svelte';
|
|
7
6
|
type $$ComponentProps = {
|
|
8
7
|
widgetSelection: WidgetSelectionState;
|
|
9
|
-
|
|
8
|
+
inlineRange: InlineRangeCommit;
|
|
10
9
|
events: EditorEvents;
|
|
11
10
|
getDoc: () => Document;
|
|
11
|
+
getContentVersion: () => number;
|
|
12
12
|
getEditorEl: () => HTMLElement | null;
|
|
13
13
|
getSelectionIsCustomRendered: () => boolean;
|
|
14
|
-
|
|
15
|
-
grammar?: GrammarView;
|
|
14
|
+
menuPresence: MenuPresence;
|
|
16
15
|
lifetime: AbortSignal;
|
|
17
16
|
};
|
|
18
17
|
declare const ImageOverlayHost: import("svelte").Component<$$ComponentProps, {}, "">;
|