@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,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Bounds regex find. A pathological pattern
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* embedder, the test runner) it degrades to a sync scan bounded only BETWEEN texts.
|
|
2
|
+
* Bounds regex find. A pathological pattern can spend minutes inside one `RegExp.exec`, so the
|
|
3
|
+
* only bound is a worker thread that can be killed. The worker ships as source text through a
|
|
4
|
+
* Blob URL, leaving dist packaging and consumer bundlers untouched. Where workers are unavailable
|
|
5
|
+
* (SSR, a strict CSP, the test runner) find falls back to a sync scan bounded between texts.
|
|
7
6
|
*/
|
|
8
7
|
import { type RawRange } from './matcher';
|
|
9
8
|
/** Wall-clock ceiling for one scan: long enough for an honest regex over a large document,
|
|
@@ -16,7 +15,7 @@ export interface RegexScanRequest {
|
|
|
16
15
|
/** Correlation token, echoed back untouched, so the caller can drop a stale outcome. */
|
|
17
16
|
readonly epoch: number;
|
|
18
17
|
}
|
|
19
|
-
/** `cancelled` covers supersession and release alike
|
|
18
|
+
/** `cancelled` covers supersession and release alike: nothing to report either way. */
|
|
20
19
|
export type RegexScanFailure = 'timeout' | 'error' | 'cancelled';
|
|
21
20
|
export type RegexScanOutcome = {
|
|
22
21
|
ok: true;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Bounds regex find. A pathological pattern
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* embedder, the test runner) it degrades to a sync scan bounded only BETWEEN texts.
|
|
2
|
+
* Bounds regex find. A pathological pattern can spend minutes inside one `RegExp.exec`, so the
|
|
3
|
+
* only bound is a worker thread that can be killed. The worker ships as source text through a
|
|
4
|
+
* Blob URL, leaving dist packaging and consumer bundlers untouched. Where workers are unavailable
|
|
5
|
+
* (SSR, a strict CSP, the test runner) find falls back to a sync scan bounded between texts.
|
|
7
6
|
*/
|
|
8
7
|
import { execAll } from './matcher';
|
|
9
8
|
/** Wall-clock ceiling for one scan: long enough for an honest regex over a large document,
|
|
@@ -105,9 +104,8 @@ export function createRegexExecutor(options = {}) {
|
|
|
105
104
|
? { ok: true, epoch: reply.epoch, ranges: reply.ranges }
|
|
106
105
|
: { ok: false, epoch: reply.epoch, reason: 'error' });
|
|
107
106
|
};
|
|
108
|
-
//
|
|
109
|
-
//
|
|
110
|
-
// construction). Latch, or regex search stays dead instead of degrading to sync.
|
|
107
|
+
// The worker posts an uncompilable pattern back, so an error here means the worker itself
|
|
108
|
+
// failed to load. Latch, or regex search stays dead instead of falling back to sync.
|
|
111
109
|
const fail = () => {
|
|
112
110
|
const epoch = pending?.epoch ?? request.epoch;
|
|
113
111
|
workerUnavailable = true;
|
package/dist/search/replace.d.ts
CHANGED
|
@@ -7,9 +7,6 @@ export interface ReplaceRange {
|
|
|
7
7
|
end: number;
|
|
8
8
|
groups?: string[];
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
* per-replacement escape hook: a structural leaf's delimiters escape over the WHOLE
|
|
13
|
-
* post-splice raw, so that is the caller's `toLegalRaw` pass over the result.
|
|
14
|
-
*/
|
|
10
|
+
/** Substitutes right-to-left so earlier offsets stay valid. Escaping a structural leaf's
|
|
11
|
+
* delimiters is the caller's `toLegalRaw` pass over the result. */
|
|
15
12
|
export declare function applyRangesToText(text: string, ranges: ReplaceRange[], template: string): string;
|
package/dist/search/replace.js
CHANGED
|
@@ -14,11 +14,8 @@ export function expandReplacement(template, groups) {
|
|
|
14
14
|
return groups[Number(token)] ?? '';
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
|
-
/**
|
|
18
|
-
*
|
|
19
|
-
* per-replacement escape hook: a structural leaf's delimiters escape over the WHOLE
|
|
20
|
-
* post-splice raw, so that is the caller's `toLegalRaw` pass over the result.
|
|
21
|
-
*/
|
|
17
|
+
/** Substitutes right-to-left so earlier offsets stay valid. Escaping a structural leaf's
|
|
18
|
+
* delimiters is the caller's `toLegalRaw` pass over the result. */
|
|
22
19
|
export function applyRangesToText(text, ranges, template) {
|
|
23
20
|
let out = text;
|
|
24
21
|
const ordered = [...ranges].sort((a, b) => b.start - a.start);
|
|
@@ -7,7 +7,7 @@ export interface SearchOptions {
|
|
|
7
7
|
wholeWord: boolean;
|
|
8
8
|
regex: boolean;
|
|
9
9
|
}
|
|
10
|
-
/** A match paired with its flat-list position
|
|
10
|
+
/** A match paired with its flat-list position, which the active highlight compares
|
|
11
11
|
* against `activeIndex`. */
|
|
12
12
|
export interface IndexedMatch {
|
|
13
13
|
match: Match;
|
|
@@ -15,8 +15,8 @@ export interface IndexedMatch {
|
|
|
15
15
|
}
|
|
16
16
|
interface SearchDeps {
|
|
17
17
|
getDoc: () => DocumentView;
|
|
18
|
-
/** Bumped when the whole document is
|
|
19
|
-
* those leave the tree under a position the user still owns. */
|
|
18
|
+
/** Bumped when the whole document is replaced, never on an in-place edit or undo,
|
|
19
|
+
* since those leave the tree under a position the user still owns. */
|
|
20
20
|
getDocumentGeneration: () => number;
|
|
21
21
|
/** Highlights ship as marks under source 'editor:search', registered on open and
|
|
22
22
|
* disposed on close, so a closed bar costs nothing. */
|
|
@@ -26,12 +26,12 @@ interface SearchDeps {
|
|
|
26
26
|
replaceAll(m: Match[], t: string): Promise<number>;
|
|
27
27
|
};
|
|
28
28
|
reveal: (path: number[]) => Promise<unknown>;
|
|
29
|
-
/**
|
|
29
|
+
/** Injected by tests; production builds the worker-backed executor internally. */
|
|
30
30
|
regexExecutor?: RegexExecutor;
|
|
31
31
|
onClose: () => void;
|
|
32
32
|
}
|
|
33
33
|
export declare function createSearchState(deps: SearchDeps): SearchState;
|
|
34
|
-
/**
|
|
34
|
+
/** The public search controller, what `editor.getSearch()` exposes. Deliberately minimal:
|
|
35
35
|
* adding a member later is non-breaking, removing one is not. */
|
|
36
36
|
export interface SearchState {
|
|
37
37
|
readonly isOpen: boolean;
|
|
@@ -4,7 +4,7 @@ import { createRegexExecutor } from './regex-executor';
|
|
|
4
4
|
import { groupByPathKey, pathKey } from '../decorations/buckets';
|
|
5
5
|
const EMPTY_MATCHES = [];
|
|
6
6
|
// Both reuse the invalid-regex readout: a scan with no usable answer is one state to the
|
|
7
|
-
//
|
|
7
|
+
// user, whatever ended it.
|
|
8
8
|
const REGEX_TOO_SLOW = 'Regex too slow';
|
|
9
9
|
const REGEX_SCAN_FAILED = 'Regex search failed';
|
|
10
10
|
export function createSearchState(deps) {
|
|
@@ -17,29 +17,27 @@ export function createSearchState(deps) {
|
|
|
17
17
|
const matchesByPath = $derived(groupByPathKey(matches, (match, index) => ({ match, index })));
|
|
18
18
|
let activeIndex = $state(0);
|
|
19
19
|
let error = $state(null);
|
|
20
|
-
// Cleared on the next search
|
|
21
|
-
// would otherwise wipe it instantly.
|
|
20
|
+
// Cleared on the next search action, not in rescan: the decoration registry's re-run
|
|
21
|
+
// after a commit would otherwise wipe it instantly.
|
|
22
22
|
let replacedCount = $state(null);
|
|
23
|
-
// A regex scan lands asynchronously, so `matches` can trail
|
|
24
|
-
//
|
|
25
|
-
// tagged with a spent epoch is discarded.
|
|
23
|
+
// A regex scan lands asynchronously, so `matches` can trail its query: every rescan and close
|
|
24
|
+
// bumps `scanEpoch`, and an outcome tagged with an older epoch is dropped.
|
|
26
25
|
let scanning = $state(false);
|
|
27
26
|
let scanEpoch = 0;
|
|
28
27
|
let pendingScan = null;
|
|
29
28
|
const regexExecutor = deps.regexExecutor ?? createRegexExecutor();
|
|
30
29
|
let lastGeneration = deps.getDocumentGeneration();
|
|
31
30
|
let handle = null;
|
|
32
|
-
// The scan runs for its side effects, so only the
|
|
31
|
+
// The scan runs for its side effects, so only the current key may skip it; cleared on
|
|
33
32
|
// close() so a reopen at the same key rescans rather than serving the empty set.
|
|
34
33
|
let lastScanKey = null;
|
|
35
|
-
// Keyed on editEpoch,
|
|
34
|
+
// Keyed on editEpoch, never doc.children identity: typing mutates children in place, so
|
|
36
35
|
// identity only changes on structural commits and would serve stale matches.
|
|
37
36
|
function provide(doc, ctx) {
|
|
38
37
|
const { caseSensitive, wholeWord, regex } = options;
|
|
39
38
|
const key = `${ctx.editEpoch}\0${+caseSensitive}${+wholeWord}${+regex}\0${query}`;
|
|
40
39
|
if (key !== lastScanKey) {
|
|
41
|
-
// Scan the document the registry is providing
|
|
42
|
-
// resolves to — the plugin guide points decoration authors at this file.
|
|
40
|
+
// Scan the document the registry is providing for, not whatever the deps getter resolves to.
|
|
43
41
|
rescan(doc);
|
|
44
42
|
lastScanKey = key;
|
|
45
43
|
}
|
|
@@ -52,9 +50,8 @@ export function createSearchState(deps) {
|
|
|
52
50
|
}));
|
|
53
51
|
}
|
|
54
52
|
function rescan(doc = deps.getDoc()) {
|
|
55
|
-
// A whole-document
|
|
56
|
-
//
|
|
57
|
-
// toggles leave the user where they were, so they fall through to applyMatches' clamp.
|
|
53
|
+
// A whole-document replacement restarts navigation at the first match. Edits, undo and option
|
|
54
|
+
// toggles keep the user's position through applyMatches' clamp.
|
|
58
55
|
const generation = deps.getDocumentGeneration();
|
|
59
56
|
const documentReplaced = generation !== lastGeneration;
|
|
60
57
|
lastGeneration = generation;
|
|
@@ -111,9 +108,8 @@ export function createSearchState(deps) {
|
|
|
111
108
|
handle?.invalidate();
|
|
112
109
|
});
|
|
113
110
|
}
|
|
114
|
-
// Every
|
|
115
|
-
//
|
|
116
|
-
// return; the no-handle fallback keeps the headless setQuery-before-open path scanning.
|
|
111
|
+
// Every change goes through the decoration registry so the marks follow; invalidate is
|
|
112
|
+
// synchronous, so setQuery's callers see fresh matches on return, even before open.
|
|
117
113
|
function refresh() {
|
|
118
114
|
if (handle)
|
|
119
115
|
handle.invalidate();
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* for both puts the document's own multi-thousand-pixel box into the edge math.
|
|
2
|
+
* Scrolls a container while a drag holds the pointer near its edge, one step per animation
|
|
3
|
+
* frame. When the target is the window, the edge band is measured against the viewport but the
|
|
4
|
+
* scroll is written to `document.scrollingElement`: measuring the scrolling element would put
|
|
5
|
+
* the document's full height into the edge math.
|
|
7
6
|
*/
|
|
8
7
|
import type { UserScrollport } from '../cursor/scroll-ancestors';
|
|
9
8
|
export interface AutoScrollDeps {
|
|
@@ -13,10 +12,8 @@ export interface AutoScrollDeps {
|
|
|
13
12
|
} | null;
|
|
14
13
|
getTargets: (clientX: number, clientY: number) => UserScrollport[];
|
|
15
14
|
onScrolled?: () => void;
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
* the table's top band, where vertical evaluation would spin on a horizontal-only scroller.
|
|
19
|
-
*/
|
|
15
|
+
/** Restricts scrolling to one axis (default both), for a drag that pins the pointer in one
|
|
16
|
+
* edge band, where the other axis would scroll a container meant to move only one way. */
|
|
20
17
|
axis?: 'horizontal' | 'vertical' | 'both';
|
|
21
18
|
}
|
|
22
19
|
export interface AutoScrollHandle {
|
|
@@ -1,37 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* cell-coordinate point without knowing the kind. What the hit does NOT carry is what a kind
|
|
6
|
-
* cannot answer: a block with no character surface reports none.
|
|
2
|
+
* Finds the block under a viewport point for pointer hit-testing. The hit carries the
|
|
3
|
+
* point-to-cell hooks the block's kind descriptor declares, so a caller can resolve a table
|
|
4
|
+
* cell without knowing the kind, and it reports no text element for a block that has none.
|
|
7
5
|
*/
|
|
8
6
|
import { type CaretTarget } from '../schema/block-kind-descriptor';
|
|
9
|
-
import type
|
|
7
|
+
import { type SelectionEndpoint } from './primitives';
|
|
10
8
|
export interface BlockHit {
|
|
11
9
|
path: number[];
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
* across the whole subtree rather than a decline.
|
|
17
|
-
*/
|
|
10
|
+
/** The element carrying the block's path; a container's children are block hosts inside it. */
|
|
11
|
+
host: HTMLElement;
|
|
12
|
+
/** The editable element a character offset is hit-tested against, or null when the kind has
|
|
13
|
+
* none: hit-testing the wrapper instead returns a plausible but wrong offset. */
|
|
18
14
|
charSurface: HTMLElement | null;
|
|
19
|
-
/**
|
|
20
|
-
* Point→internal-offset hook for kinds with coordinate addressing (a table's row-major
|
|
21
|
-
* cellIdx). Pre-bound to the block's wrapper, resolved from the kind descriptor.
|
|
22
|
-
*/
|
|
15
|
+
/** Maps a point to a row-major cell index for a grid kind such as a table. */
|
|
23
16
|
foreignDragHitTest?: (clientX: number, clientY: number) => number | null;
|
|
24
17
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
18
|
+
* Where a click inside a grid kind puts the caret, as a child path plus offset; read when
|
|
19
|
+
* the drag hook returns null.
|
|
27
20
|
*/
|
|
28
21
|
caretTargetAtPoint?: (clientX: number, clientY: number) => CaretTarget | null;
|
|
29
22
|
}
|
|
30
23
|
export declare function blockAtPoint(editorRoot: HTMLElement, clientX: number, clientY: number): BlockHit | null;
|
|
31
|
-
/**
|
|
32
|
-
*
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
*
|
|
36
|
-
*/
|
|
24
|
+
/** Whether the hit's editable text belongs to the block itself, not to a child inside it (a
|
|
25
|
+
* quote's first line is its first child's). False where editing is off, as in reading mode. */
|
|
26
|
+
export declare function holdsOwnText(hit: BlockHit): boolean;
|
|
27
|
+
/** The selection endpoint a pointer over `hit` addresses. A block with no text yields the whole
|
|
28
|
+
* block, so no drag hit-tests characters against it; its end is chosen against the other end. */
|
|
37
29
|
export declare function endpointAtPoint(hit: BlockHit, clientX: number, clientY: number): SelectionEndpoint | null;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* cell-coordinate point without knowing the kind. What the hit does NOT carry is what a kind
|
|
6
|
-
* cannot answer: a block with no character surface reports none.
|
|
2
|
+
* Finds the block under a viewport point for pointer hit-testing. The hit carries the
|
|
3
|
+
* point-to-cell hooks the block's kind descriptor declares, so a caller can resolve a table
|
|
4
|
+
* cell without knowing the kind, and it reports no text element for a block that has none.
|
|
7
5
|
*/
|
|
8
6
|
import { WHOLE_BLOCK_INPUT_ATTR } from '../editor-actions/whole-block-focus-surface';
|
|
9
7
|
import { tryGetBlockKindDescriptor } from '../schema/block-kind-descriptor';
|
|
10
|
-
import {
|
|
8
|
+
import { cellPoint } from './primitives';
|
|
9
|
+
import { caretOffsetAtPoint, offsetFromViewportPoint } from '../cursor/point-offset';
|
|
11
10
|
import { readBlockPath } from './path-lookup';
|
|
11
|
+
import { pathsEqual } from './path-math';
|
|
12
12
|
export function blockAtPoint(editorRoot, clientX, clientY) {
|
|
13
13
|
let el = document.elementFromPoint(clientX, clientY);
|
|
14
14
|
while (el && el !== editorRoot) {
|
|
@@ -18,16 +18,15 @@ export function blockAtPoint(editorRoot, clientX, clientY) {
|
|
|
18
18
|
return null;
|
|
19
19
|
const wrapper = el;
|
|
20
20
|
const kind = wrapper.getAttribute('data-block-kind');
|
|
21
|
-
// tryGet tolerates
|
|
21
|
+
// `tryGet` tolerates an unregistered kind string read off the DOM.
|
|
22
22
|
const descriptor = kind ? tryGetBlockKindDescriptor(kind) : undefined;
|
|
23
23
|
const dragHitTest = descriptor?.foreignDragHitTest;
|
|
24
24
|
const caretTarget = descriptor?.caretTargetAtPoint;
|
|
25
25
|
return {
|
|
26
26
|
path,
|
|
27
|
-
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
// the selection overlay (`contenteditable="false"`, mounted while a range is live).
|
|
27
|
+
host: wrapper,
|
|
28
|
+
// A grid kind's first contenteditable is a cell, not the block; the whole-block
|
|
29
|
+
// input and the selection overlay hold none of the block's characters either.
|
|
31
30
|
charSurface: dragHitTest
|
|
32
31
|
? null
|
|
33
32
|
: wrapper.querySelector(`[contenteditable]:not([${WHOLE_BLOCK_INPUT_ATTR}]):not(.selection-overlay)`),
|
|
@@ -39,22 +38,30 @@ export function blockAtPoint(editorRoot, clientX, clientY) {
|
|
|
39
38
|
}
|
|
40
39
|
return null;
|
|
41
40
|
}
|
|
42
|
-
/**
|
|
43
|
-
*
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
/** Whether the hit's editable text belongs to the block itself, not to a child inside it (a
|
|
42
|
+
* quote's first line is its first child's). False where editing is off, as in reading mode. */
|
|
43
|
+
export function holdsOwnText(hit) {
|
|
44
|
+
const surface = hit.charSurface;
|
|
45
|
+
if (!surface?.matches('[contenteditable="true"]'))
|
|
46
|
+
return false;
|
|
47
|
+
const owner = readBlockPath(surface.closest('[data-block-path]'));
|
|
48
|
+
return owner !== null && pathsEqual(owner, hit.path);
|
|
49
|
+
}
|
|
50
|
+
/** The selection endpoint a pointer over `hit` addresses. A block with no text yields the whole
|
|
51
|
+
* block, so no drag hit-tests characters against it; its end is chosen against the other end. */
|
|
48
52
|
export function endpointAtPoint(hit, clientX, clientY) {
|
|
49
53
|
if (hit.foreignDragHitTest) {
|
|
50
54
|
const cellIdx = hit.foreignDragHitTest(clientX, clientY);
|
|
51
|
-
//
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
: { path: hit.path, offset: cellIdx, cellCoordinate: true };
|
|
55
|
+
// A cell point's `cellCoordinate` routes a collapse and a scroll-into-view to the cell
|
|
56
|
+
// itself, as the keyboard path does.
|
|
57
|
+
return cellIdx === null ? null : cellPoint(hit.path, cellIdx);
|
|
55
58
|
}
|
|
56
59
|
if (!hit.charSurface)
|
|
57
60
|
return { path: hit.path, wholeBlock: true };
|
|
58
|
-
|
|
61
|
+
// A block's own text answers a point on its frame as a click there does; a container's first
|
|
62
|
+
// child's text answers only a point on it.
|
|
63
|
+
const offset = holdsOwnText(hit)
|
|
64
|
+
? caretOffsetAtPoint(hit.charSurface, clientX, clientY)
|
|
65
|
+
: offsetFromViewportPoint(hit.charSurface, clientX, clientY);
|
|
59
66
|
return offset === null ? null : { path: hit.path, offset };
|
|
60
67
|
}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* type-replaces. The door a caller reaches for by default is the safe one.
|
|
2
|
+
* Where a caret, a gap caret or a widget selected whole is put down, each ending whatever the
|
|
3
|
+
* editor had selected before: a caret left inside a live range makes the next keystroke replace
|
|
4
|
+
* the whole range. A block's `parkCaret` alone ends nothing, which the cross-block dispatcher
|
|
5
|
+
* needs while a shift-extend is still growing a range.
|
|
7
6
|
*/
|
|
8
7
|
import type { GapCaretPosition } from './gap-caret';
|
|
8
|
+
import type { WidgetTarget } from './primitives';
|
|
9
9
|
import type { SelectionState } from './selection-state.svelte';
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
* an emission between the state write and the DOM landing reports a caret about to move.
|
|
13
|
-
*/
|
|
10
|
+
/** Builds a component's public `focus` from its `parkCaret`, batched so no listener hears of
|
|
11
|
+
* a caret between the state write and the DOM placement. */
|
|
14
12
|
export declare function placeCaret(selection: SelectionState, parkCaret: (offset: number) => void): (offset: number) => void;
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
*/
|
|
13
|
+
/** Puts a browser range down inside one block (a first Mod+A, a block's `setSelection`) the way
|
|
14
|
+
* `placeCaret` puts a caret down: whatever the editor had selected ends first. */
|
|
15
|
+
export declare function selectInBlock(selection: SelectionState, select: () => void): void;
|
|
16
|
+
/** The only place gap-caret state is written. The native selection is cleared in the batch
|
|
17
|
+
* because no browser caret may outlive the gap caret. */
|
|
20
18
|
export declare function placeGapCaret(selection: SelectionState, pos: GapCaretPosition): void;
|
|
19
|
+
/** The only place a widget is selected whole. The native selection is cleared in the batch,
|
|
20
|
+
* because no browser caret may outlive the widget selection taking its place. */
|
|
21
|
+
export declare function selectWidgetWhole(selection: SelectionState, target: WidgetTarget): void;
|
|
@@ -1,26 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* type-replaces. The door a caller reaches for by default is the safe one.
|
|
2
|
+
* Where a caret, a gap caret or a widget selected whole is put down, each ending whatever the
|
|
3
|
+
* editor had selected before: a caret left inside a live range makes the next keystroke replace
|
|
4
|
+
* the whole range. A block's `parkCaret` alone ends nothing, which the cross-block dispatcher
|
|
5
|
+
* needs while a shift-extend is still growing a range.
|
|
7
6
|
*/
|
|
7
|
+
import { assertInvariant } from '../assert';
|
|
8
|
+
import { checkPlacementEndsWidget } from '../invariants/placement-ends-widget';
|
|
8
9
|
import { clearNativeSelection } from './native-bridge';
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* an emission between the state write and the DOM landing reports a caret about to move.
|
|
12
|
-
*/
|
|
10
|
+
/** Builds a component's public `focus` from its `parkCaret`, batched so no listener hears of
|
|
11
|
+
* a caret between the state write and the DOM placement. */
|
|
13
12
|
export function placeCaret(selection, parkCaret) {
|
|
14
|
-
return (offset) => selection
|
|
13
|
+
return (offset) => putDown(selection, () => parkCaret(offset));
|
|
14
|
+
}
|
|
15
|
+
/** Puts a browser range down inside one block (a first Mod+A, a block's `setSelection`) the way
|
|
16
|
+
* `placeCaret` puts a caret down: whatever the editor had selected ends first. */
|
|
17
|
+
export function selectInBlock(selection, select) {
|
|
18
|
+
putDown(selection, select);
|
|
19
|
+
}
|
|
20
|
+
function putDown(selection, place) {
|
|
21
|
+
selection.batch(() => {
|
|
15
22
|
endLiveCaretClaim(selection);
|
|
16
|
-
|
|
23
|
+
place();
|
|
24
|
+
assertInvariant('placement-ends-widget', () => checkPlacementEndsWidget(selection.widget));
|
|
25
|
+
// A plain caret or range changes no field the state checks, so subscribers hear of the
|
|
26
|
+
// placement only here, and one that lands where the selection already was says nothing.
|
|
27
|
+
selection.announcePlacement();
|
|
17
28
|
});
|
|
18
29
|
}
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
* native clear is inside the batch because no native caret may outlive the landing — the gap
|
|
22
|
-
* owns the caret from here until something else claims it.
|
|
23
|
-
*/
|
|
30
|
+
/** The only place gap-caret state is written. The native selection is cleared in the batch
|
|
31
|
+
* because no browser caret may outlive the gap caret. */
|
|
24
32
|
export function placeGapCaret(selection, pos) {
|
|
25
33
|
selection.batch(() => {
|
|
26
34
|
endLiveCaretClaim(selection);
|
|
@@ -28,17 +36,20 @@ export function placeGapCaret(selection, pos) {
|
|
|
28
36
|
clearNativeSelection();
|
|
29
37
|
});
|
|
30
38
|
}
|
|
31
|
-
/**
|
|
32
|
-
*
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
/** The only place a widget is selected whole. The native selection is cleared in the batch,
|
|
40
|
+
* because no browser caret may outlive the widget selection taking its place. */
|
|
41
|
+
export function selectWidgetWhole(selection, target) {
|
|
42
|
+
selection.batch(() => {
|
|
43
|
+
selection.selectWidget(target);
|
|
44
|
+
clearNativeSelection();
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/** Ends whatever the editor had selected (a range, a gap caret, a widget) before a new caret
|
|
48
|
+
* lands. The native clear covers a whole-block range, which sets no DOM range of its own. */
|
|
37
49
|
function endLiveCaretClaim(selection) {
|
|
38
|
-
|
|
50
|
+
const hadRange = selection.isCrossBlock;
|
|
51
|
+
if (hadRange || selection.gapCaret !== null || selection.widget !== null)
|
|
39
52
|
selection.clear();
|
|
53
|
+
if (hadRange)
|
|
40
54
|
clearNativeSelection();
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
selection.clearGapCaret();
|
|
44
55
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one way a caret is put down after an edit or a restore: resolve the position to a leaf, mount
|
|
3
|
+
* each level on the way, check the tree is still the one the caller aimed at, place, then bring
|
|
4
|
+
* the block into view. One per editor, built in `Editor.svelte`; nothing else scrolls for a landing.
|
|
5
|
+
*/
|
|
6
|
+
import { type BlockComponent } from '../block-component';
|
|
7
|
+
import type { DocumentView } from '../core/node-views';
|
|
8
|
+
import type { CaretMemory } from '../cursor/caret-memory';
|
|
9
|
+
import type { ScrollOwner } from '../cursor/scroll-owner';
|
|
10
|
+
import type { BlockElLookup } from '../editor-keys';
|
|
11
|
+
import { type ChildList } from '../reactivity/child-list';
|
|
12
|
+
import type { CaretPosition, EditorSelection } from './primitives';
|
|
13
|
+
import { type SelectionRestoreOutcome } from './selection-restore';
|
|
14
|
+
import { type GapCaretSelection } from '../undo/types';
|
|
15
|
+
import type { SelectionState } from './selection-state.svelte';
|
|
16
|
+
/** How far a landing moves the viewport: not at all, or just far enough to show the caret when it
|
|
17
|
+
* isn't fully on screen. Holding a block in place is a navigation's alone (`navigate`). */
|
|
18
|
+
export type RevealPolicy = 'mount' | 'into-view';
|
|
19
|
+
export interface LandOptions {
|
|
20
|
+
/** `'into-view'` when absent. */
|
|
21
|
+
reveal?: RevealPolicy;
|
|
22
|
+
/** The tree generation the caller aimed at; read at the call when absent. */
|
|
23
|
+
stamp?: number;
|
|
24
|
+
}
|
|
25
|
+
/** `'stale'`: an undo, redo or document swap happened while the landing waited, so it placed
|
|
26
|
+
* nothing. */
|
|
27
|
+
export type LandingOutcome = 'placed' | 'unresolvable' | 'stale';
|
|
28
|
+
export interface CaretLanding {
|
|
29
|
+
/** Put the caret at `pos` as an arrival, through the block's own `focus`. */
|
|
30
|
+
land(pos: CaretPosition, opts?: LandOptions): Promise<LandingOutcome>;
|
|
31
|
+
/** Land as a navigation: open a collapsed body on the way, and hold the block where it landed
|
|
32
|
+
* until the user scrolls, so a late image decode can't move it. */
|
|
33
|
+
navigate(pos: CaretPosition): Promise<LandingOutcome>;
|
|
34
|
+
/** Put a stored selection back at the bytes it names, or a gap caret at its boundary. */
|
|
35
|
+
restore(selection: EditorSelection | GapCaretSelection, opts?: LandOptions): Promise<SelectionRestoreOutcome>;
|
|
36
|
+
/** Mount `pos` and park a caret there without ending a live range. */
|
|
37
|
+
park(pos: CaretPosition): Promise<boolean>;
|
|
38
|
+
/** Mount the block at `path` and hand back its component, for a caller that dispatches to it. */
|
|
39
|
+
mount(path: readonly number[], opts?: {
|
|
40
|
+
openCollapsed?: boolean;
|
|
41
|
+
}): Promise<BlockComponent | null>;
|
|
42
|
+
/** An arrow move put focus in the block at `path`: the page scrolls the least distance that
|
|
43
|
+
* shows the caret's line, or the whole cell in a table. */
|
|
44
|
+
followArrival(path: readonly number[]): void;
|
|
45
|
+
/** Bumped by every undo, redo and document swap: a landing that waited across one is stale. */
|
|
46
|
+
generation(): number;
|
|
47
|
+
/** Called by the history restore and the document swap only, before the tree changes. */
|
|
48
|
+
noteTreeSwap(): void;
|
|
49
|
+
}
|
|
50
|
+
export interface CaretLandingDeps {
|
|
51
|
+
getDoc(): DocumentView;
|
|
52
|
+
/** The editor root's child list, where every descent starts. */
|
|
53
|
+
root: ChildList;
|
|
54
|
+
selectionState: SelectionState;
|
|
55
|
+
caretMemory: Pick<CaretMemory, 'forget' | 'noteExtreme'>;
|
|
56
|
+
getBlockElByPath: BlockElLookup;
|
|
57
|
+
/** The editor's own element, which holds focus while a block with no text is selected whole. */
|
|
58
|
+
getEditorRoot(): HTMLElement | null;
|
|
59
|
+
/** Null where nothing renders (a headless harness), so a landing only mounts. */
|
|
60
|
+
scroll: Pick<ScrollOwner, 'shows' | 'showRect' | 'place' | 'port'> | null;
|
|
61
|
+
}
|
|
62
|
+
export declare function createCaretLanding(deps: CaretLandingDeps): CaretLanding;
|