@voithos-labs/aragonite 0.10.4 → 0.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/a11y-strings.d.ts +11 -5
- package/dist/a11y-strings.js +60 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +12 -21
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +603 -1126
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +26 -51
- package/dist/components/SelectionOverlay.svelte.d.ts +5 -3
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +72 -87
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +29 -34
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +57 -39
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +141 -203
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +45 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +93 -147
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +8 -6
- package/dist/components/blocks/text/click-snap-guard.js +10 -7
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +150 -181
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -108
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +212 -199
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +12 -35
- package/dist/components/drag-handle.js +22 -68
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -24
- package/dist/components/editor-root-listeners.js +49 -24
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +14 -26
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +30 -35
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +3 -5
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +54 -75
- package/dist/core/inline/inline-widgets.js +54 -62
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +31 -15
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -6
- package/dist/cursor/height-oracle.js +26 -74
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +14 -15
- package/dist/cursor/scrollport.js +7 -13
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -14
- package/dist/cursor/visual-lines.js +45 -46
- package/dist/cursor/widget-edge-snap.d.ts +10 -15
- package/dist/cursor/widget-edge-snap.js +13 -12
- package/dist/cursor/widget-offset.d.ts +110 -104
- package/dist/cursor/widget-offset.js +344 -179
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +30 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +28 -50
- package/dist/editor-actions/focus/focus-landing.d.ts +8 -11
- package/dist/editor-actions/focus/focus-landing.js +15 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +54 -82
- package/dist/editor-actions/plugin/container.js +105 -188
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +88 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +37 -8
- package/dist/plugin.js +100 -77
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +78 -67
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -81
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +51 -45
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +15 -6
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +141 -310
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +78 -84
- package/dist/schema/commands.js +152 -117
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +8 -10
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +63 -80
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +92 -125
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +59 -96
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +51 -134
- package/dist/selection/dead-space-caret.d.ts +19 -30
- package/dist/selection/dead-space-caret.js +70 -88
- package/dist/selection/drag-pointer.d.ts +7 -9
- package/dist/selection/drag-pointer.js +23 -33
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -40
- package/dist/selection/keyboard-extend.js +94 -117
- package/dist/selection/multi-click.d.ts +13 -18
- package/dist/selection/multi-click.js +32 -38
- package/dist/selection/native-bridge.d.ts +29 -39
- package/dist/selection/native-bridge.js +78 -127
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +25 -16
- package/dist/selection/path-lookup.js +101 -18
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +5 -5
- package/dist/selection/pointer-gesture.js +5 -5
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -40
- package/dist/selection/primitives.js +57 -67
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -23
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +34 -16
- package/dist/selection/selection-drop.js +159 -95
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +60 -53
- package/dist/styles/editor.css +201 -143
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +9 -7
- package/dist/tree-operations/paste/replacement-parse.js +12 -10
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +327 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +253 -185
- package/docs/guide/plugin-guide.md +332 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +12 -16
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/cursor/scroll-hold.d.ts +0 -10
- package/dist/cursor/scroll-hold.js +0 -22
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -31
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -78
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `rebuildRaw`
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* `rebuildRaw` for a directive container whose reserved child 0 is an editable title
|
|
3
|
+
* written into the opener line. Puts the title back into the opener, serializes
|
|
4
|
+
* `children[1:]` as the body, and keeps the authored line ending a hand-written copy
|
|
5
|
+
* would drop. The no-title version is `core/directive`'s `rebuildDirectiveContainerRaw`.
|
|
6
6
|
*/
|
|
7
7
|
import { type CstNode } from '../../core/nodes';
|
|
8
8
|
export declare function createDirectiveRebuild<M extends {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `rebuildRaw`
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* `rebuildRaw` for a directive container whose reserved child 0 is an editable title
|
|
3
|
+
* written into the opener line. Puts the title back into the opener, serializes
|
|
4
|
+
* `children[1:]` as the body, and keeps the authored line ending a hand-written copy
|
|
5
|
+
* would drop. The no-title version is `core/directive`'s `rebuildDirectiveContainerRaw`.
|
|
6
6
|
*/
|
|
7
7
|
import { serializeDirective } from '../../core/directive/grammar';
|
|
8
8
|
import { concatChildren as serializeChildren } from '../../core/serializer';
|
|
9
|
-
import {
|
|
9
|
+
import { ownTrailingLineEnding, trimTrailingLineEnding } from '../../core/lines';
|
|
10
10
|
import { getPluginMetadata } from '../../core/nodes';
|
|
11
11
|
export function createDirectiveRebuild(directiveName) {
|
|
12
12
|
return (node) => {
|
|
@@ -23,9 +23,8 @@ export function createDirectiveRebuild(directiveName) {
|
|
|
23
23
|
closerColonCount: meta?.closerColonCount ?? meta?.colonCount ?? 3,
|
|
24
24
|
closerNewline: meta?.closerNewline ?? true,
|
|
25
25
|
lineEnding: meta?.lineEnding,
|
|
26
|
-
// The
|
|
27
|
-
|
|
28
|
-
closerLineEnding: trailingLineEnding(node.raw)
|
|
26
|
+
// The closer is the raw's last line, so its ending is the raw's own, else the opener's.
|
|
27
|
+
closerLineEnding: ownTrailingLineEnding(node.raw) || undefined
|
|
29
28
|
});
|
|
30
29
|
};
|
|
31
30
|
}
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* positional separators (`reorderChildrenWithTrivia`) and marker renumbering. Where the move
|
|
6
|
-
* invalidated a join, that primitive's settle folds it, so both the caret and the announcement
|
|
7
|
-
* ride the outcome it reports rather than the destination the clamp picked.
|
|
2
|
+
* Moving a block among its siblings, for drag-and-drop and the keyboard nudge, as one commit.
|
|
3
|
+
* A move can make two neighbours merge, so the caret and the announcement use the index the
|
|
4
|
+
* reorder reports, not the destination the clamp picked.
|
|
8
5
|
*/
|
|
9
|
-
import type { CommandId } from '../schema/commands';
|
|
10
6
|
import type { EditorActionsDeps, UndoController } from './deps';
|
|
7
|
+
/** Each move resolves to whether it landed. */
|
|
11
8
|
export interface ReorderAction {
|
|
12
|
-
moveReorderUnit(fromPath: number[], toIndex: number): Promise<
|
|
13
|
-
nudgeReorderUnit(fromPath: number[], dir: -1 | 1): Promise<
|
|
9
|
+
moveReorderUnit(fromPath: number[], toIndex: number): Promise<boolean>;
|
|
10
|
+
nudgeReorderUnit(fromPath: number[], dir: -1 | 1): Promise<boolean>;
|
|
14
11
|
}
|
|
15
|
-
|
|
16
|
-
export declare function reorderRunCommand(id: CommandId, reorder: Pick<ReorderAction, 'nudgeReorderUnit'>, getPath: () => number[]): boolean;
|
|
17
|
-
export declare function createReorderAction(deps: EditorActionsDeps, controller: UndoController, onReorder?: (to: number, total: number) => void): ReorderAction;
|
|
12
|
+
export declare function createReorderAction(deps: EditorActionsDeps, controller: UndoController): ReorderAction;
|
|
@@ -1,34 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* positional separators (`reorderChildrenWithTrivia`) and marker renumbering. Where the move
|
|
6
|
-
* invalidated a join, that primitive's settle folds it, so both the caret and the announcement
|
|
7
|
-
* ride the outcome it reports rather than the destination the clamp picked.
|
|
2
|
+
* Moving a block among its siblings, for drag-and-drop and the keyboard nudge, as one commit.
|
|
3
|
+
* A move can make two neighbours merge, so the caret and the announcement use the index the
|
|
4
|
+
* reorder reports, not the destination the clamp picked.
|
|
8
5
|
*/
|
|
9
6
|
import { CURSOR_START } from '../block-component';
|
|
7
|
+
import { movedBlockToPosition } from '../a11y-strings';
|
|
10
8
|
import { reorderChildrenWithTrivia } from '../tree-operations/reorder';
|
|
11
9
|
import { resolveReorderUnit } from '../tree-operations/reorder-unit';
|
|
12
|
-
import { blockNodeAt, nodeAt } from '../tree-operations/node-primitives';
|
|
10
|
+
import { blockNodeAt, documentBody, nodeAt } from '../tree-operations/node-primitives';
|
|
13
11
|
import { renumberOrderedList } from '../tree-operations/list/ordered-markers';
|
|
14
12
|
import { expectStateForNode } from '../reactivity/state-registry';
|
|
15
13
|
import { readCurrentSelection } from '../selection/native-bridge';
|
|
16
14
|
import { extendDocPath, docPathFrom } from '../cursor/coordinate-spaces';
|
|
17
|
-
|
|
18
|
-
export function reorderRunCommand(id, reorder, getPath) {
|
|
19
|
-
if (id !== 'block.moveUp' && id !== 'block.moveDown')
|
|
20
|
-
return false;
|
|
21
|
-
void reorder.nudgeReorderUnit(getPath(), id === 'block.moveUp' ? -1 : 1);
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
export function createReorderAction(deps, controller, onReorder) {
|
|
15
|
+
export function createReorderAction(deps, controller) {
|
|
25
16
|
function caretOffset() {
|
|
26
17
|
return readCurrentSelection(deps.selectionState, deps.blockRefs)?.focus.offset ?? 0;
|
|
27
18
|
}
|
|
28
|
-
|
|
29
|
-
let
|
|
19
|
+
function commitReorder(unit, to, offset, focusAfter) {
|
|
20
|
+
let landedAt = to;
|
|
21
|
+
// The caret moves with the block, so a block moved off screen scrolls back into view.
|
|
22
|
+
const landing = (parentPath) => () => focusAfter ? { path: extendDocPath(parentPath, landedAt), offset: CURSOR_START } : null;
|
|
30
23
|
if (unit.scope === 'document') {
|
|
31
|
-
|
|
24
|
+
return controller.commitStructural({
|
|
32
25
|
snapshot: { path: docPathFrom([unit.index]), offset },
|
|
33
26
|
op: {
|
|
34
27
|
kind: 'reorder',
|
|
@@ -36,26 +29,23 @@ export function createReorderAction(deps, controller, onReorder) {
|
|
|
36
29
|
eventPath: docPathFrom([unit.index])
|
|
37
30
|
},
|
|
38
31
|
mutate: (children) => {
|
|
39
|
-
const settled = reorderChildrenWithTrivia(children, unit.index, to, deps.sharing,
|
|
40
|
-
|
|
32
|
+
const settled = reorderChildrenWithTrivia(documentBody(deps.doc, children), unit.index, to, deps.sharing, deps.reading.grammar);
|
|
33
|
+
landedAt = settled.landing;
|
|
41
34
|
return settled.change;
|
|
42
35
|
},
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
deps.blockRefs[landing]?.focus(CURSOR_START);
|
|
46
|
-
}
|
|
36
|
+
landing: landing([]),
|
|
37
|
+
announce: () => movedBlockToPosition(landedAt + 1, deps.doc.children.length)
|
|
47
38
|
});
|
|
48
|
-
return { landing, total: deps.doc.children.length };
|
|
49
39
|
}
|
|
50
40
|
const parent = blockNodeAt(deps.doc, unit.parentPath);
|
|
51
41
|
if (!parent)
|
|
52
|
-
return
|
|
42
|
+
return Promise.resolve(false);
|
|
53
43
|
const state = expectStateForNode(parent);
|
|
54
|
-
|
|
44
|
+
return controller.commitContainerStructural({
|
|
55
45
|
containerNode: parent,
|
|
56
46
|
path: unit.parentPath,
|
|
57
47
|
state,
|
|
58
|
-
// A drag carries no live caret
|
|
48
|
+
// A drag carries no live caret, so undo restores to the moved unit's pre-move path.
|
|
59
49
|
snapshot: { path: extendDocPath(unit.parentPath, unit.index), offset },
|
|
60
50
|
op: {
|
|
61
51
|
kind: 'reorder',
|
|
@@ -63,23 +53,20 @@ export function createReorderAction(deps, controller, onReorder) {
|
|
|
63
53
|
eventPath: docPathFrom(unit.parentPath)
|
|
64
54
|
},
|
|
65
55
|
mutate: (scope) => {
|
|
66
|
-
const settled = reorderChildrenWithTrivia(scope.
|
|
67
|
-
|
|
56
|
+
const settled = reorderChildrenWithTrivia(scope.body, unit.index, to, scope.sharing, deps.reading.grammar);
|
|
57
|
+
landedAt = settled.landing;
|
|
68
58
|
if (unit.renumberMarkers) {
|
|
69
|
-
// Ordered markers
|
|
70
|
-
//
|
|
59
|
+
// Ordered markers depend on position, so this copies each item whose marker it
|
|
60
|
+
// rewrites; the commit's rebuild then concatenates the fresh raws.
|
|
71
61
|
renumberOrderedList(scope.node, 0, scope.sharing);
|
|
72
62
|
}
|
|
73
63
|
return settled.change;
|
|
74
64
|
},
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
65
|
+
landing: landing(unit.parentPath),
|
|
66
|
+
// Re-resolved, not `parent`: the commit's copy-before-write replaced that node, so the
|
|
67
|
+
// one resolved above still holds the pre-move children.
|
|
68
|
+
announce: () => movedBlockToPosition(landedAt + 1, blockNodeAt(deps.doc, unit.parentPath)?.children?.length ?? 0)
|
|
79
69
|
});
|
|
80
|
-
// Re-resolved, not `parent`: the ceremony's copy-on-write replaced that node, so the one
|
|
81
|
-
// this action resolved still holds the pre-move children.
|
|
82
|
-
return { landing, total: blockNodeAt(deps.doc, unit.parentPath)?.children?.length ?? 0 };
|
|
83
70
|
}
|
|
84
71
|
function resolveAndClamp(fromPath, computeTo) {
|
|
85
72
|
const unit = resolveReorderUnit(deps.doc, fromPath);
|
|
@@ -95,18 +82,15 @@ export function createReorderAction(deps, controller, onReorder) {
|
|
|
95
82
|
async function run(fromPath, computeTo, focusAfter) {
|
|
96
83
|
const target = resolveAndClamp(fromPath, computeTo);
|
|
97
84
|
if (!target)
|
|
98
|
-
return;
|
|
99
|
-
// Drop any cross-block selection so the overlay
|
|
100
|
-
//
|
|
85
|
+
return false;
|
|
86
|
+
// Drop any cross-block selection so the overlay does not fight the move; the commit's
|
|
87
|
+
// landing places the caret again when the caller wants it.
|
|
101
88
|
deps.selectionState.collapse();
|
|
102
|
-
|
|
103
|
-
if (outcome)
|
|
104
|
-
onReorder?.(outcome.landing, outcome.total);
|
|
89
|
+
return commitReorder(target.unit, target.to, caretOffset(), focusAfter);
|
|
105
90
|
}
|
|
106
91
|
return {
|
|
107
|
-
// A
|
|
108
|
-
//
|
|
109
|
-
// The keyboard nudge is the opposite — the caret must ride the block it is moving.
|
|
92
|
+
// A drop leaves the caret out, since focusing a block opens whatever a caret opens there (an
|
|
93
|
+
// equation's source); the keyboard nudge moves the caret with the block.
|
|
110
94
|
moveReorderUnit: (fromPath, toIndex) => run(fromPath, () => toIndex, false),
|
|
111
95
|
nudgeReorderUnit: (fromPath, dir) => run(fromPath, (index) => index + dir, true)
|
|
112
96
|
};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* root, a ghost
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Drag-to-reorder with the pointer: one capture-phase pointerdown listener on the editor
|
|
3
|
+
* root, a ghost and an insertion line while dragging (no tree change, no reflow), and one
|
|
4
|
+
* move committed on drop. The drop index is resolved against the mounted siblings only;
|
|
5
|
+
* autoscroll brings the others into view.
|
|
6
6
|
*/
|
|
7
7
|
import type { UserScrollport } from '../cursor/scroll-ancestors';
|
|
8
8
|
import type { ReorderAction } from './reorder-action';
|
|
9
|
+
import type { DocumentGetter } from '../editor-keys';
|
|
10
|
+
import type { InlineReading } from '../core/inline/inline-cache';
|
|
9
11
|
export interface ReorderDragOverlay {
|
|
10
12
|
setGhost(g: {
|
|
11
13
|
clientX: number;
|
|
@@ -20,13 +22,15 @@ export interface ReorderDragOverlay {
|
|
|
20
22
|
}
|
|
21
23
|
export interface ReorderDragContext {
|
|
22
24
|
editorRoot: HTMLElement;
|
|
23
|
-
/** What autoscrolls when the drag reaches an edge: the root
|
|
24
|
-
*
|
|
25
|
-
* the page scrolls. Never `editorRoot` directly — see `cursor/scroll-ancestors`. */
|
|
25
|
+
/** What autoscrolls when the drag reaches an edge, per scroll mode: the root, the host's scroll
|
|
26
|
+
* container, or the window. Never `editorRoot` directly (`cursor/scroll-ancestors`). */
|
|
26
27
|
getScrollHost: () => UserScrollport | null;
|
|
27
28
|
moveReorderUnit: ReorderAction['moveReorderUnit'];
|
|
28
29
|
overlay: ReorderDragOverlay;
|
|
29
|
-
/**
|
|
30
|
+
/** The document and its reading, which name the dragged block on the ghost. */
|
|
31
|
+
getDoc: DocumentGetter;
|
|
32
|
+
reading: InlineReading;
|
|
33
|
+
/** Aborted on editor unmount, ending a drag whose pointerup would never arrive. */
|
|
30
34
|
lifetimeSignal?: AbortSignal;
|
|
31
35
|
}
|
|
32
36
|
export declare function installReorderDrag(ctx: ReorderDragContext): {
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* root, a ghost
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Drag-to-reorder with the pointer: one capture-phase pointerdown listener on the editor
|
|
3
|
+
* root, a ghost and an insertion line while dragging (no tree change, no reflow), and one
|
|
4
|
+
* move committed on drop. The drop index is resolved against the mounted siblings only;
|
|
5
|
+
* autoscroll brings the others into view.
|
|
6
6
|
*/
|
|
7
7
|
import { createPointerDragSession } from '../selection/pointer-session';
|
|
8
8
|
import { readBlockPath } from '../selection/path-lookup';
|
|
9
|
+
import { isImageOnlyParagraph } from '../core/inline/picture';
|
|
10
|
+
import { blockNodeAt } from '../tree-operations/node-primitives';
|
|
11
|
+
import { isGridDescriptor, tryGetBlockKindDescriptor } from '../schema/block-kind-descriptor';
|
|
9
12
|
export function installReorderDrag(ctx) {
|
|
10
13
|
const root = ctx.editorRoot;
|
|
11
14
|
function onPointerDown(e) {
|
|
@@ -20,7 +23,7 @@ export function installReorderDrag(ctx) {
|
|
|
20
23
|
const session = startSession(ctx, dragHost);
|
|
21
24
|
if (!session)
|
|
22
25
|
return;
|
|
23
|
-
// Capture
|
|
26
|
+
// Capture phase plus stopPropagation, so the block's own pointerdown never starts a
|
|
24
27
|
// cross-block text selection; preventDefault keeps the handle from taking focus.
|
|
25
28
|
e.preventDefault();
|
|
26
29
|
e.stopPropagation();
|
|
@@ -50,20 +53,18 @@ function startSession(ctx, dragHost) {
|
|
|
50
53
|
const group = dragHost.parentElement;
|
|
51
54
|
if (!fromPath || fromIndex === null || !group)
|
|
52
55
|
return null;
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
// drag's duration so the scope-locked reorder reads as intentional, not broken.
|
|
59
|
-
const scopeEl = dragHost.closest('.list-block, .blockquote-block');
|
|
56
|
+
const node = blockNodeAt(ctx.getDoc(), fromPath);
|
|
57
|
+
const label = node ? ghostLabel(dragHost, node, ctx.reading) : 'Block';
|
|
58
|
+
// The container this unit moves within (null at top level). Marked for the drag's
|
|
59
|
+
// duration so a move confined to it reads as intentional, not broken.
|
|
60
|
+
const scopeEl = scopeBox(group);
|
|
60
61
|
let dropTo = null;
|
|
61
62
|
function siblings() {
|
|
62
63
|
const out = [];
|
|
63
64
|
for (const el of Array.from(group.children)) {
|
|
64
65
|
if (!(el instanceof HTMLElement))
|
|
65
66
|
continue;
|
|
66
|
-
if (!el.
|
|
67
|
+
if (!el.classList.contains('reorder-host'))
|
|
67
68
|
continue;
|
|
68
69
|
const index = indexOf(el);
|
|
69
70
|
if (index !== null)
|
|
@@ -74,9 +75,8 @@ function startSession(ctx, dragHost) {
|
|
|
74
75
|
}
|
|
75
76
|
function process(clientX, clientY) {
|
|
76
77
|
const sibs = siblings();
|
|
77
|
-
// rawR
|
|
78
|
-
//
|
|
79
|
-
// where the line showed.
|
|
78
|
+
// rawR is the original index to drop before; removing the dragged item shifts later indices
|
|
79
|
+
// down one, so a downward drop is adjusted to land where the line showed.
|
|
80
80
|
let rawR = sibs.length ? sibs[sibs.length - 1].index + 1 : fromIndex + 1;
|
|
81
81
|
let line = sibs.length
|
|
82
82
|
? {
|
|
@@ -102,7 +102,7 @@ function startSession(ctx, dragHost) {
|
|
|
102
102
|
scopeEl?.classList.add('reorder-scope');
|
|
103
103
|
createPointerDragSession(down, {
|
|
104
104
|
onMove: (p) => process(p.clientX, p.clientY),
|
|
105
|
-
// A drop commits only on release, never on cancel
|
|
105
|
+
// A drop commits only on release, never on cancel, Escape or unmount.
|
|
106
106
|
onEnd: (reason) => {
|
|
107
107
|
if (reason === 'up' && dropTo !== null && dropTo !== fromIndex) {
|
|
108
108
|
void ctx.moveReorderUnit(fromPath, dropTo);
|
|
@@ -123,15 +123,15 @@ function startSession(ctx, dragHost) {
|
|
|
123
123
|
disableUserSelect: true,
|
|
124
124
|
lifetimeSignal: ctx.lifetimeSignal
|
|
125
125
|
});
|
|
126
|
-
//
|
|
127
|
-
// commits a drop.
|
|
126
|
+
// Draw from the pointer-down point before any move, so a release without moving
|
|
127
|
+
// still commits a drop.
|
|
128
128
|
process(down.clientX, down.clientY);
|
|
129
129
|
}
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
132
|
// ── Element → path / index ───────────────────────────────────────────────────
|
|
133
|
-
// A `.list-item-block` carries no `data-block-path`, so borrow a descendant
|
|
134
|
-
//
|
|
133
|
+
// A `.list-item-block` carries no `data-block-path`, so borrow a descendant block-host's;
|
|
134
|
+
// resolveReorderUnit climbs back to the list item either way.
|
|
135
135
|
function pathFor(host) {
|
|
136
136
|
if (host.getAttribute('data-block-path'))
|
|
137
137
|
return readBlockPath(host);
|
|
@@ -145,32 +145,36 @@ function indexOf(host) {
|
|
|
145
145
|
return readBlockPath(host.querySelector('[data-block-path]'))?.at(-2) ?? null;
|
|
146
146
|
}
|
|
147
147
|
/**
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
* its first words, which is the best label it could have.
|
|
148
|
+
* The ghost's label: a table's shape, the name a kind declares for a block whose text reads badly
|
|
149
|
+
* as one (a formula's source), and otherwise the block's first words.
|
|
151
150
|
*/
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
fencedCode: 'Code',
|
|
156
|
-
mermaid: 'Diagram',
|
|
157
|
-
thematicBreak: 'Divider',
|
|
158
|
-
details: 'Details',
|
|
159
|
-
image: 'Image'
|
|
160
|
-
};
|
|
161
|
-
function ghostLabel(host) {
|
|
162
|
-
const kind = host.dataset.blockKind ?? '';
|
|
163
|
-
if (kind === 'table')
|
|
151
|
+
function ghostLabel(host, node, reading) {
|
|
152
|
+
const descriptor = tryGetBlockKindDescriptor(node.kind);
|
|
153
|
+
if (isGridDescriptor(descriptor))
|
|
164
154
|
return tableLabel(host);
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
155
|
+
if (descriptor?.dragLabel)
|
|
156
|
+
return descriptor.dragLabel;
|
|
157
|
+
// Before the text: a linked picture shows its link's bytes as text in source mode.
|
|
158
|
+
if (isImageOnlyParagraph(node, reading))
|
|
159
|
+
return 'Image';
|
|
168
160
|
const text = (host.textContent ?? '').trim().replace(/\s+/g, ' ');
|
|
169
161
|
if (!text)
|
|
170
|
-
return
|
|
162
|
+
return 'Block';
|
|
171
163
|
return text.length > 40 ? text.slice(0, 40) + '…' : text;
|
|
172
164
|
}
|
|
173
|
-
/**
|
|
165
|
+
/**
|
|
166
|
+
* The box a drag inside a container is confined to: the whole container as drawn (a quote's bar
|
|
167
|
+
* and padding included), found from the child list marked as one whose children reorder.
|
|
168
|
+
*/
|
|
169
|
+
function scopeBox(group) {
|
|
170
|
+
if (!group.hasAttribute('data-reorder-scope'))
|
|
171
|
+
return null;
|
|
172
|
+
const host = group.parentElement?.closest('.block-host');
|
|
173
|
+
if (!host)
|
|
174
|
+
return null;
|
|
175
|
+
return (Array.from(host.children).find((child) => child.contains(group)) ?? null);
|
|
176
|
+
}
|
|
177
|
+
/** Rows by columns: the shape is what tells one table from another at a glance. */
|
|
174
178
|
function tableLabel(host) {
|
|
175
179
|
const rows = host.querySelectorAll('.table-row').length;
|
|
176
180
|
const cols = host.querySelector('.table-row')?.childElementCount ?? 0;
|
|
@@ -1,27 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* The keystroke's two helpers around its write: the trial reparse that picks between a commit and
|
|
3
|
+
* the in-place write, and putting the caret back after a write that moved it.
|
|
4
4
|
*/
|
|
5
5
|
import { updateNodeContent } from '../tree-operations';
|
|
6
|
-
import {
|
|
7
|
-
import { type AnyBlockKind } from '../core/nodes';
|
|
8
|
-
import type { NodeView } from '../core/node-views';
|
|
6
|
+
import type { LegalWrite, WriteTarget } from '../tree-operations/content-write';
|
|
9
7
|
import type { StructuralChange } from '../tree-operations/structural-change';
|
|
10
|
-
import type {
|
|
8
|
+
import type { CaretPosition } from '../selection/primitives';
|
|
9
|
+
import type { Relanding } from '../action-contracts';
|
|
11
10
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* folded trailing line when `node` is the tail block, else `''`: blanking the tail materializes
|
|
15
|
-
* it, which is structural and must route into the ceremony.
|
|
11
|
+
* Run the content write on a throwaway copy of child `index` to pick a commit or the in-place
|
|
12
|
+
* write. The last block brings the trailing blank line, since blanking it makes that line a block.
|
|
16
13
|
*/
|
|
17
|
-
export declare function previewContentReparse(
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
* A typing commit needs the caret restored; a BLUR commit (source folding as focus
|
|
24
|
-
* lands elsewhere) must not yank it back. The discriminator is where focus lives at
|
|
25
|
-
* afterTick time — a `data-block-path` outside the replaced window means it moved on.
|
|
26
|
-
*/
|
|
27
|
-
export declare function focusMovedOutsideReplacement(scopePath: number[], at: number, count: number): boolean;
|
|
14
|
+
export declare function previewContentReparse(target: WriteTarget, index: number, write: LegalWrite, grammar: Parameters<typeof updateNodeContent>[3]): StructuralChange;
|
|
15
|
+
/** `relanding`'s caret, or null when focus already left the blocks the write wrote. */
|
|
16
|
+
export declare function unlessFocusMoved(relanding: Relanding): CaretPosition | null;
|
|
17
|
+
/** Whether focus has left the written blocks, as after a blur commit, where putting the caret
|
|
18
|
+
* back would pull it away from where the user went. */
|
|
19
|
+
export declare function focusMovedOutsideReplacement(scopePath: readonly number[], at: number, count: number): boolean;
|
|
@@ -1,53 +1,52 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* The keystroke's two helpers around its write: the trial reparse that picks between a commit and
|
|
3
|
+
* the in-place write, and putting the caret back after a write that moved it.
|
|
4
4
|
*/
|
|
5
5
|
import { updateNodeContent } from '../tree-operations';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { makeBlockNode, metadataOf } from '../core/nodes';
|
|
7
|
+
import { documentLineEnding } from '../core/lines';
|
|
8
|
+
import { followsTaskMarker } from '../tree-operations/list/task-paragraph';
|
|
8
9
|
import { readBlockPath } from '../selection/path-lookup';
|
|
9
|
-
// ──
|
|
10
|
+
// ── Trial reparse ────────────────────────────────────────────────────────────
|
|
10
11
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* folded trailing line when `node` is the tail block, else `''`: blanking the tail materializes
|
|
14
|
-
* it, which is structural and must route into the ceremony.
|
|
12
|
+
* Run the content write on a throwaway copy of child `index` to pick a commit or the in-place
|
|
13
|
+
* write. The last block brings the trailing blank line, since blanking it makes that line a block.
|
|
15
14
|
*/
|
|
16
|
-
export function previewContentReparse(
|
|
15
|
+
export function previewContentReparse(target, index, write, grammar) {
|
|
16
|
+
const node = target.children[index];
|
|
17
|
+
const owner = 'owner' in target ? target.owner : undefined;
|
|
18
|
+
const tailSuffix = index === target.children.length - 1 && 'suffix' in target ? target.suffix : '';
|
|
19
|
+
const lineEnding = 'lineEnding' in target ? target.lineEnding : documentLineEnding(target);
|
|
17
20
|
const probe = makeBlockNode({
|
|
18
21
|
kind: node.kind,
|
|
19
22
|
leadingTrivia: node.leadingTrivia,
|
|
20
23
|
raw: node.raw
|
|
21
24
|
});
|
|
22
|
-
// The owner
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
// The owner and its task marker go along as a copy, so the trial reads the bytes the write will.
|
|
26
|
+
const taskItem = followsTaskMarker(owner, index) ? owner : undefined;
|
|
27
|
+
const ownerCopy = owner &&
|
|
28
|
+
makeBlockNode({
|
|
29
|
+
kind: owner.kind,
|
|
30
|
+
leadingTrivia: '',
|
|
31
|
+
raw: owner.raw,
|
|
32
|
+
metadata: taskItem ? { ...metadataOf(taskItem, 'listItem') } : undefined,
|
|
33
|
+
children: [probe]
|
|
34
|
+
});
|
|
35
|
+
return updateNodeContent({ children: [probe], owner: ownerCopy, suffix: tailSuffix, lineEnding }, 0, write, grammar).change;
|
|
26
36
|
}
|
|
27
|
-
// ──
|
|
28
|
-
/**
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const { change } = settled;
|
|
33
|
-
const count = change.op === 'replace' ? change.newCount : 1;
|
|
34
|
-
// The settled window, not the slot the gesture named: a fold above moved both.
|
|
35
|
-
const windowAt = change.op === 'replace' ? change.at : at;
|
|
36
|
-
if (focusMovedOutsideReplacement(scopePath, windowAt, count))
|
|
37
|
-
return;
|
|
38
|
-
const target = settledCaretTarget(settled, at, focusOffset, scope.children());
|
|
39
|
-
scope.refAt(target.index)?.focus(target.offset);
|
|
37
|
+
// ── Putting the caret back ───────────────────────────────────────────────────
|
|
38
|
+
/** `relanding`'s caret, or null when focus already left the blocks the write wrote. */
|
|
39
|
+
export function unlessFocusMoved(relanding) {
|
|
40
|
+
const { list, at, count } = relanding.window;
|
|
41
|
+
return focusMovedOutsideReplacement(list, at, count) ? null : relanding.caret;
|
|
40
42
|
}
|
|
41
|
-
/**
|
|
42
|
-
*
|
|
43
|
-
* lands elsewhere) must not yank it back. The discriminator is where focus lives at
|
|
44
|
-
* afterTick time — a `data-block-path` outside the replaced window means it moved on.
|
|
45
|
-
*/
|
|
43
|
+
/** Whether focus has left the written blocks, as after a blur commit, where putting the caret
|
|
44
|
+
* back would pull it away from where the user went. */
|
|
46
45
|
export function focusMovedOutsideReplacement(scopePath, at, count) {
|
|
47
46
|
if (typeof document === 'undefined')
|
|
48
47
|
return false;
|
|
49
48
|
const host = document.activeElement?.closest?.('[data-block-path]') ?? null;
|
|
50
|
-
// No
|
|
49
|
+
// No readable path means a remount removed the focused element, so the caret goes back.
|
|
51
50
|
const path = readBlockPath(host);
|
|
52
51
|
if (!path)
|
|
53
52
|
return false;
|