@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,148 +1,172 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Every action interface a block component
|
|
3
|
-
* the commit
|
|
2
|
+
* Every action interface a block component calls upward through Svelte context, plus
|
|
3
|
+
* the commit types those calls are written in.
|
|
4
4
|
*/
|
|
5
5
|
import type { CstNode, TableAlignment } from './core/nodes';
|
|
6
6
|
import type { NodeView } from './core/node-views';
|
|
7
|
+
import type { LineEnding } from './core/lines';
|
|
7
8
|
import type { StructuralChange } from './tree-operations/structural-change';
|
|
8
9
|
import type { TrackedPosition } from './tree-operations/settle';
|
|
9
10
|
import type { SharingState } from './tree-operations/sharing';
|
|
11
|
+
import type { BodyParent } from './tree-operations/node-primitives';
|
|
10
12
|
import type { BlockComponent, FocusPosition } from './block-component';
|
|
11
|
-
import type { ScopedOpDescriptor } from './schema/operations';
|
|
13
|
+
import type { OperationDetailMap, ScopedOpDescriptor } from './schema/operations';
|
|
14
|
+
import type { WriteMode } from './schema/block-kind-descriptor';
|
|
12
15
|
import type { DocPath } from './selection/path-math';
|
|
16
|
+
import type { CaretPosition, Landing } from './selection/primitives';
|
|
17
|
+
import type { LegalWrite } from './tree-operations/content-write';
|
|
18
|
+
import type { LandingOutcome, RevealPolicy } from './selection/caret-landing';
|
|
19
|
+
import type { RemovalGesture } from './selection/caret-target';
|
|
13
20
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* `path-math` helpers, never composed at a call site.
|
|
21
|
+
* Where the caret goes back to on undo when nothing is focused: `path` is a document-absolute
|
|
22
|
+
* `DocPath` and must resolve in the tree before the mutation. Built by the block-list factories
|
|
23
|
+
* (`block-edit-scope.ts`) or the `path-math` helpers, never assembled at a call site.
|
|
18
24
|
*/
|
|
19
25
|
export type CommitSnapshotArg = {
|
|
20
26
|
path: DocPath;
|
|
21
27
|
offset: number;
|
|
22
|
-
}
|
|
28
|
+
};
|
|
23
29
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
30
|
+
* Opt-in for structural commits that may legitimately do nothing. The commit then throws
|
|
31
|
+
* away the snapshot it took first: no undo entry, no edit event, nothing written to state
|
|
32
|
+
* (its landing still runs, since a refused merge still crosses the boundary the key pressed at).
|
|
33
|
+
* Not for content or metadata commits, whose `noop` `StructuralChange` means "structure held,
|
|
34
|
+
* bytes changed".
|
|
26
35
|
*/
|
|
27
|
-
export type
|
|
36
|
+
export type DiscardIfNoop = boolean;
|
|
28
37
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* `noop` StructuralChange means "structure held, bytes changed" and MUST still publish.
|
|
38
|
+
* Where the caret goes after a commit, read after the tick so it sees the tree the commit left.
|
|
39
|
+
* It returns a value and places nothing; the commit puts the caret there through the editor's
|
|
40
|
+
* caret landing (`selection/caret-landing.ts`), and null leaves the caret where it is.
|
|
33
41
|
*/
|
|
34
|
-
export type
|
|
42
|
+
export type CommitLanding = () => Landing | null;
|
|
35
43
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* bounded (VR-5), so awaiting cannot hang. Returning nothing opts out of the wait.
|
|
44
|
+
* A callback that places the caret itself after the tick, left only for the delete and the typing
|
|
45
|
+
* over a range that spans blocks, not yet on {@link CommitLanding}. Awaited, before the landing.
|
|
39
46
|
*/
|
|
40
47
|
export type CommitAfterTick = () => void | Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* What a screen reader hears about a commit (a move, a table edit) in the editor's edit live
|
|
50
|
+
* region, read after the caret lands and only when bytes landed. That region hears nothing else, so a
|
|
51
|
+
* refused, failed or discarded commit says nothing there.
|
|
52
|
+
*/
|
|
53
|
+
export type CommitAnnouncement = () => string;
|
|
54
|
+
/**
|
|
55
|
+
* A content write in flight, resolving to whether bytes landed. `admitted` is known the moment the
|
|
56
|
+
* call returns: false means the write was turned away before it touched anything (reading mode, or
|
|
57
|
+
* a list with no text of its own to write). Only an admitted write has a caret: the landing offset
|
|
58
|
+
* in the bytes as stored, with `storedOffset` mapping any other offset the same way.
|
|
59
|
+
*/
|
|
60
|
+
export type ContentWrite = Promise<boolean> & (RefusedContentWrite | AdmittedContentWrite);
|
|
61
|
+
export interface RefusedContentWrite {
|
|
62
|
+
readonly admitted: false;
|
|
63
|
+
}
|
|
64
|
+
export interface AdmittedContentWrite {
|
|
65
|
+
readonly admitted: true;
|
|
66
|
+
readonly caret: number;
|
|
67
|
+
storedOffset(offset: number): number;
|
|
68
|
+
/** False when the write places the caret itself (a new kind, a merge, a changed container),
|
|
69
|
+
* so the block must not put its own caret back. */
|
|
70
|
+
readonly keepsCaret: boolean;
|
|
71
|
+
}
|
|
72
|
+
/** Where the caret goes after an edit to one block, relative to it: `path` walks its children
|
|
73
|
+
* (`[]` is the block itself) and `offset` is a byte there or an edge value (`CURSOR_END`). */
|
|
74
|
+
export interface BlockCaret {
|
|
75
|
+
path: number[];
|
|
76
|
+
offset: number;
|
|
77
|
+
}
|
|
78
|
+
/** Every edit a block asks of its list. Each resolves to whether bytes landed; a focus move
|
|
79
|
+
* that writes nothing resolves false. */
|
|
41
80
|
export interface BlockEditActions {
|
|
42
|
-
splitBlock(blockIndex: number, offset: number):
|
|
81
|
+
splitBlock(blockIndex: number, offset: number): Promise<boolean>;
|
|
43
82
|
/**
|
|
44
|
-
* Focus the block after `blockIndex` in this
|
|
45
|
-
*
|
|
46
|
-
*/
|
|
47
|
-
descendToBody(blockIndex: number): void | Promise<void>;
|
|
48
|
-
/**
|
|
49
|
-
* @internal Mint a paragraph carrying `text` at a BOUNDARY of this scope, caret after
|
|
50
|
-
* the text. `boundaryIndex === children.length` appends. The between-blocks caret's
|
|
51
|
-
* insertion door (`selection/gap-caret.ts`).
|
|
52
|
-
*/
|
|
53
|
-
insertParagraph(boundaryIndex: number, text: string): void | Promise<void>;
|
|
54
|
-
mergeWithPrevious(blockIndex: number): void | Promise<void>;
|
|
55
|
-
mergeWithNext(blockIndex: number): void | Promise<void>;
|
|
56
|
-
deleteBlock(blockIndex: number): void | Promise<void>;
|
|
57
|
-
/**
|
|
58
|
-
* `preEditOffset` is the undo snapshot's cursor anchor; `postEditFocusOffset` is where
|
|
59
|
-
* the caret lands when a kind change remounts the block (typing `# ` on a paragraph),
|
|
60
|
-
* defaulting to `preEditOffset`.
|
|
61
|
-
*/
|
|
62
|
-
updateBlockContent(blockIndex: number, text: string, preEditOffset?: number, postEditFocusOffset?: number): void | Promise<void>;
|
|
63
|
-
/**
|
|
64
|
-
* Where a caret at `offset` lands once this scope has committed `text` — the image of
|
|
65
|
-
* a container's `bodyWrite` rewrite, so a surface whose committed bytes differ from
|
|
66
|
-
* its DOM seats the caret on the bytes. Identity when the scope rewrites nothing.
|
|
67
|
-
*/
|
|
68
|
-
mapCommittedOffset?(text: string, offset: number): number;
|
|
69
|
-
/**
|
|
70
|
-
* Mutate block metadata without touching raw — for state expressed as metadata (task
|
|
71
|
-
* checkboxes), NOT raw-driven metadata like heading level (use updateBlockContent).
|
|
72
|
-
* The patch is shallow-merged; an empty patch is a no-op.
|
|
83
|
+
* Focus the block after `blockIndex` in this list, creating an empty paragraph when it is
|
|
84
|
+
* the last child. If the next block is not mounted the caret stays put, key consumed.
|
|
73
85
|
*/
|
|
86
|
+
descendToBody(blockIndex: number): Promise<boolean>;
|
|
87
|
+
/** @internal Create a paragraph holding `text` at a boundary of this list, caret after the
|
|
88
|
+
* text; `boundaryIndex === children.length` appends. */
|
|
89
|
+
insertParagraph(boundaryIndex: number, text: string): Promise<boolean>;
|
|
90
|
+
mergeWithPrevious(blockIndex: number): Promise<boolean>;
|
|
91
|
+
mergeWithNext(blockIndex: number): Promise<boolean>;
|
|
92
|
+
/** Remove the block; the caret lands once, on the side `gesture` points
|
|
93
|
+
* (`selection/caret-target.ts :: survivorAfterRemoval`), and the caller places none. */
|
|
94
|
+
deleteBlock(blockIndex: number, gesture: RemovalGesture): Promise<boolean>;
|
|
95
|
+
/** Write `text` as the block's bytes through its kind's and this list's write rules. Undo
|
|
96
|
+
* returns to `preEditOffset`, where the edit began; `caret` maps `postEditFocusOffset`. */
|
|
97
|
+
updateBlockContent(blockIndex: number, text: string, mode: WriteMode, preEditOffset: number, postEditFocusOffset?: number): ContentWrite;
|
|
98
|
+
/** Shallow-merges metadata the kind's rebuild writes into its bytes (a checkbox toggle). A key no
|
|
99
|
+
* parse gives back is dropped at the next re-read; a heading's level goes through the text. */
|
|
74
100
|
updateBlockMetadata(blockIndex: number, metadata: Record<string, unknown>, options?: {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
* `replacement.length === 0` is equivalent to deleteBlock. `focus.path` addresses a caret
|
|
81
|
-
* landing inside the replacement's own structure; `snapshotOffset` is where the caret was,
|
|
82
|
-
* for the undo entry, and defaults to where it lands.
|
|
83
|
-
*/
|
|
84
|
-
replaceBlock(blockIndex: number, replacement: CstNode[], focus?: {
|
|
101
|
+
caret?: BlockCaret;
|
|
102
|
+
}): Promise<boolean>;
|
|
103
|
+
/** Replace the block with zero or more blocks (none is `deleteBlock`). `focus.path` addresses a
|
|
104
|
+
* caret inside the replacement; `snapshotOffset` is the undo entry's caret. */
|
|
105
|
+
replaceBlock(blockIndex: number, replacement: CstNode[], focus: {
|
|
85
106
|
replacementIndex: number;
|
|
86
107
|
offset: number;
|
|
87
108
|
path?: number[];
|
|
88
|
-
}, options
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}): void | Promise<void>;
|
|
109
|
+
} | undefined, options: {
|
|
110
|
+
snapshotOffset: number;
|
|
111
|
+
}): Promise<boolean>;
|
|
92
112
|
}
|
|
93
113
|
export interface MoveFocusOptions {
|
|
94
|
-
/**
|
|
95
|
-
*
|
|
96
|
-
* paragraph; only the root append is suppressed, sibling moves and upward delegation
|
|
97
|
-
* are unaffected. Defaults to true (Enter/split rely on the append).
|
|
98
|
-
*/
|
|
114
|
+
/** False stops a move past the document end from appending a trailing paragraph; sibling moves
|
|
115
|
+
* and upward delegation are unaffected. Defaults to true, which Enter's split relies on. */
|
|
99
116
|
append?: boolean;
|
|
100
|
-
/** @internal Set by a move that
|
|
101
|
-
* cannot
|
|
117
|
+
/** @internal Set by a move that leaves a between-blocks caret, so the boundary it just
|
|
118
|
+
* left cannot capture it again. */
|
|
102
119
|
skipGapStop?: boolean;
|
|
103
120
|
}
|
|
104
121
|
export interface FocusActions {
|
|
105
122
|
moveFocus(blockIndex: number, position: FocusPosition, options?: MoveFocusOptions): void | Promise<void>;
|
|
106
|
-
/**
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* @internal Park the caret at an eligible between-blocks boundary, reporting whether it
|
|
110
|
-
* did. Required, not optional: a dropped forward makes every gap arrival below it
|
|
111
|
-
* silently vanish.
|
|
112
|
-
*/
|
|
123
|
+
/** @internal Put the caret at a between-blocks boundary that allows one. Required: a container
|
|
124
|
+
* that fails to forward it makes every such caret below it vanish. */
|
|
113
125
|
tryGapStop(parentPath: number[], boundaryIndex: number): boolean;
|
|
126
|
+
/** @internal An arrow move ended on the block at `path`: one focused whole comes into view.
|
|
127
|
+
* Forwarded to the root like `tryGapStop`. */
|
|
128
|
+
followArrival(path: number[]): void;
|
|
114
129
|
}
|
|
115
130
|
export interface HistoryActions {
|
|
116
131
|
requestUndo(): void | Promise<void>;
|
|
117
132
|
requestRedo(): void | Promise<void>;
|
|
118
133
|
}
|
|
119
134
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
135
|
+
* The copy a container or multi-list commit hands its `mutate`: `node` is the unshared copy
|
|
136
|
+
* already spliced into the live tree. Never write through references captured before the
|
|
137
|
+
* commit; they may be the originals an undo snapshot still shares.
|
|
123
138
|
*/
|
|
124
139
|
export interface ContainerScope {
|
|
125
140
|
node: CstNode;
|
|
126
141
|
children: CstNode[];
|
|
127
142
|
sharing: SharingState;
|
|
143
|
+
/** The document's line ending, which every line the mutation writes takes. */
|
|
144
|
+
lineEnding: LineEnding;
|
|
145
|
+
/** `children` as the body the tree operations write; at the document root it has no owner. */
|
|
146
|
+
readonly body: BodyParent;
|
|
147
|
+
/** Rebuilds `node`'s raw as the commit does, for a node the commit won't rebuild whose bytes
|
|
148
|
+
* the mutation reads before it returns; never the scope, which the commit rebuilds once. */
|
|
149
|
+
rebuild(node: CstNode): void;
|
|
128
150
|
}
|
|
129
151
|
export interface MultiScopeTarget {
|
|
130
|
-
/**
|
|
152
|
+
/** Which block list this is; a view is enough, since the commit copies the ancestor chain
|
|
153
|
+
* and makes its own mutable copy. */
|
|
131
154
|
node: NodeView;
|
|
132
|
-
/** The `BlockListState`
|
|
133
|
-
*
|
|
155
|
+
/** The `BlockListState` fields the commit writes: ids by assignment, refs only in place,
|
|
156
|
+
* because the array identity is the list's and replacing it strands its teardowns. */
|
|
134
157
|
state: {
|
|
135
158
|
innerBlockIds: string[];
|
|
136
159
|
readonly innerBlockRefs: (BlockComponent | undefined)[];
|
|
137
160
|
};
|
|
138
|
-
/**
|
|
161
|
+
/** Document-absolute path of `node`; the commit copies its ancestor chain before writing. */
|
|
139
162
|
path: number[];
|
|
140
163
|
}
|
|
141
164
|
export interface CommitMultiScopeArgs<S extends readonly MultiScopeTarget[] = readonly MultiScopeTarget[]> {
|
|
142
|
-
/** `scopes[0]` is the outermost
|
|
165
|
+
/** `scopes[0]` is the outermost: an inner block's raw must be current before an outer
|
|
166
|
+
* one rebuilds. */
|
|
143
167
|
scopes: S;
|
|
144
168
|
snapshot: CommitSnapshotArg;
|
|
145
|
-
/** One view in, one StructuralChange out per
|
|
169
|
+
/** One view in, one `StructuralChange` out per list, same order; checked as a tuple. */
|
|
146
170
|
mutate: (scopeViews: {
|
|
147
171
|
[K in keyof S]: ContainerScope;
|
|
148
172
|
}) => {
|
|
@@ -150,12 +174,14 @@ export interface CommitMultiScopeArgs<S extends readonly MultiScopeTarget[] = re
|
|
|
150
174
|
};
|
|
151
175
|
op?: ScopedOpDescriptor;
|
|
152
176
|
afterTick?: CommitAfterTick;
|
|
177
|
+
/** Overridden when an ancestor collapsed: the collapse recreated the blocks it names. */
|
|
178
|
+
landing?: CommitLanding;
|
|
179
|
+
/** How far the landing moves the viewport; `'into-view'` when absent. */
|
|
180
|
+
reveal?: RevealPolicy;
|
|
181
|
+
announce?: CommitAnnouncement;
|
|
153
182
|
discardIfNoop?: DiscardIfNoop;
|
|
154
|
-
/**
|
|
155
|
-
*
|
|
156
|
-
* a fold re-tiles the bytes under a landing chosen before the settle ran. Written in
|
|
157
|
-
* place, so `afterTick` reads the settled seat back off the object it passed in.
|
|
158
|
-
*/
|
|
183
|
+
/** Caret positions each list's fix-up updates in place, parallel to `scopes`, since a collapsing
|
|
184
|
+
* container moves the bytes under them; the landing reads them back off the same objects. */
|
|
159
185
|
trackCaret?: readonly (TrackedPosition | undefined)[];
|
|
160
186
|
}
|
|
161
187
|
export interface CommitStructuralArgs {
|
|
@@ -163,14 +189,21 @@ export interface CommitStructuralArgs {
|
|
|
163
189
|
mutate: (children: CstNode[]) => StructuralChange;
|
|
164
190
|
op?: ScopedOpDescriptor;
|
|
165
191
|
afterTick?: CommitAfterTick;
|
|
166
|
-
|
|
192
|
+
landing?: CommitLanding;
|
|
193
|
+
reveal?: RevealPolicy;
|
|
194
|
+
announce?: CommitAnnouncement;
|
|
195
|
+
/** Leaves for the dev invariant check when `mutate` returns `noop` (an in-place kind change). */
|
|
167
196
|
touchedNodes?: CstNode[];
|
|
168
197
|
discardIfNoop?: DiscardIfNoop;
|
|
198
|
+
/** A caret position the document's fix-up updates in place; the landing reads it back. */
|
|
199
|
+
trackCaret?: TrackedPosition;
|
|
169
200
|
}
|
|
170
201
|
export interface CommitContainerStructuralArgs {
|
|
171
|
-
/**
|
|
202
|
+
/** Which container this is; a view is enough, since the commit copies the ancestor chain
|
|
203
|
+
* and makes its own mutable copy. */
|
|
172
204
|
containerNode: NodeView;
|
|
173
|
-
/**
|
|
205
|
+
/** Document-absolute path of `containerNode`: the ancestor chain the commit copies and
|
|
206
|
+
* rebuilds. */
|
|
174
207
|
path: number[];
|
|
175
208
|
state: {
|
|
176
209
|
innerBlockIds: string[];
|
|
@@ -180,90 +213,144 @@ export interface CommitContainerStructuralArgs {
|
|
|
180
213
|
mutate: (scope: ContainerScope) => StructuralChange;
|
|
181
214
|
op?: ScopedOpDescriptor;
|
|
182
215
|
afterTick?: CommitAfterTick;
|
|
216
|
+
landing?: CommitLanding;
|
|
217
|
+
reveal?: RevealPolicy;
|
|
218
|
+
announce?: CommitAnnouncement;
|
|
183
219
|
discardIfNoop?: DiscardIfNoop;
|
|
220
|
+
/** A caret position the container's fix-up updates in place; the landing reads it back. */
|
|
221
|
+
trackCaret?: TrackedPosition;
|
|
184
222
|
}
|
|
185
223
|
/**
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
224
|
+
* The commit calls with no selection types in them, so `selection/` can depend on this
|
|
225
|
+
* without pulling in `EditorSelection` or `UndoEntry`. `UndoController`
|
|
226
|
+
* (editor-actions/deps) adds the two selection-typed members.
|
|
189
227
|
*/
|
|
190
228
|
export interface CommitController {
|
|
191
|
-
/**
|
|
229
|
+
/** The editor's structural-sharing counters, for copy-before-write outside a commit. */
|
|
192
230
|
sharing: SharingState;
|
|
193
|
-
|
|
194
|
-
/** Snapshot whose no-caret fallback seeds a deep leaf path (e.g. a match nested in a list item). */
|
|
195
|
-
pushUndoSnapshotPath(path: number[], offset: number): void;
|
|
196
|
-
/** Debounced typing snapshot; `leafPath` is the edited leaf's doc-absolute path. */
|
|
231
|
+
/** Debounced typing snapshot; `leafPath` is the edited leaf's document-absolute path. */
|
|
197
232
|
pushUndoSnapshotDebounced(leafPath: number[], offset: number, batchKey?: string | number): void;
|
|
198
|
-
/** Start the batch's pause
|
|
199
|
-
* every `pushUndoSnapshotDebounced`, or the batch never ends
|
|
233
|
+
/** Start the batch's pause timer, once the keystroke's own edit is done. Paired with
|
|
234
|
+
* every `pushUndoSnapshotDebounced`, or the batch never ends on a pause. */
|
|
200
235
|
armUndoPause(): void;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
* (
|
|
208
|
-
*/
|
|
236
|
+
/** Each commit resolves to whether bytes landed: false when declined, rolled back or a no-op
|
|
237
|
+
* it discarded. */
|
|
238
|
+
commitStructural(args: CommitStructuralArgs): Promise<boolean>;
|
|
239
|
+
commitContainerStructural(args: CommitContainerStructuralArgs): Promise<boolean>;
|
|
240
|
+
commitMultiScope<const S extends readonly MultiScopeTarget[]>(args: CommitMultiScopeArgs<S>): Promise<boolean>;
|
|
241
|
+
/** The document root as a `MultiScopeTarget`, so a multi-scope commit can include root-level
|
|
242
|
+
* changes (a cross-block delete whose common ancestor is the root). */
|
|
209
243
|
getDocScope(): MultiScopeTarget;
|
|
210
|
-
/** Flush the pending keystroke batch
|
|
211
|
-
*
|
|
244
|
+
/** Flush the pending keystroke batch (emit its `input` event and clear the debounce
|
|
245
|
+
* timer) before an undo or redo, so the batch's bytes aren't lost. */
|
|
212
246
|
flushDebouncedCheckpoint(): void;
|
|
213
247
|
/** Run a command's byte write as its own undo entry. A command is not typing, so the
|
|
214
|
-
* keystroke batch breaks on
|
|
248
|
+
* keystroke batch breaks on both sides: one Ctrl+Z takes back the command alone. */
|
|
215
249
|
isolateUndoEntry(write: () => void): void;
|
|
250
|
+
/** Make every write made while `run` is pending one undo entry, restoring the selection the step
|
|
251
|
+
* opened with (`seed` when unfocused). Ends when `run` settles or at the author's next input. */
|
|
252
|
+
undoStep(seed: CommitSnapshotArg, run: () => Promise<unknown>): Promise<void>;
|
|
253
|
+
/** Called on the author's own input: every later write opens its own entry, even while a
|
|
254
|
+
* step's run is still pending. */
|
|
255
|
+
endUndoStep(): void;
|
|
216
256
|
}
|
|
257
|
+
/** What a container reaches the editor root for, forwarded unchanged through nested containers.
|
|
258
|
+
* A keystroke runs `typeInLeaf`, then a commit or `writeLeafInPlace` (`leaf-write.ts`). */
|
|
217
259
|
export interface ContainerEditActions {
|
|
218
|
-
/**
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
*
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
*
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
*/
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
260
|
+
/** The document's line ending, which every line a write below the root creates takes. */
|
|
261
|
+
lineEnding(): LineEnding;
|
|
262
|
+
/** Change a container's structure as one undo entry. `mutate` receives the copied container
|
|
263
|
+
* with its working children attached; write through it, never through a captured node. */
|
|
264
|
+
commitContainer(args: CommitContainerStructuralArgs): Promise<boolean>;
|
|
265
|
+
/** Push the typing burst's undo entry for the leaf at `leafPath`, then run `work` joined to
|
|
266
|
+
* it; `batchKey` is the leaf's id, so a move to a sibling leaf starts a new burst. */
|
|
267
|
+
typeInLeaf<T>(leafPath: DocPath, preEditOffset: number, batchKey: string, work: () => Promise<T>): Promise<T>;
|
|
268
|
+
/** The keystroke's write outside a commit, for a write that keeps the leaf's kind. */
|
|
269
|
+
writeLeafInPlace(leafPath: DocPath, write: LegalWrite, caret: number): InPlaceResult;
|
|
270
|
+
/** Put the caret at a document position through the editor's caret landing, for an edit that
|
|
271
|
+
* moves the caret without a commit. */
|
|
272
|
+
land(pos: CaretPosition): Promise<LandingOutcome>;
|
|
273
|
+
/** Where the caret goes once the block at `removedPath` is gone, read on the document now. */
|
|
274
|
+
survivorAfterRemoval(removedPath: DocPath, gesture: RemovalGesture): CaretPosition | null;
|
|
275
|
+
}
|
|
276
|
+
export type InPlaceResult = {
|
|
277
|
+
readonly wrote: false;
|
|
278
|
+
} | {
|
|
279
|
+
readonly wrote: true;
|
|
280
|
+
/** Where the caret goes when the write took it out of the leaf's element (a merge, an
|
|
281
|
+
* ancestor that changed kind or collapsed); null when the leaf's element keeps it. */
|
|
282
|
+
readonly relanding: Relanding | null;
|
|
283
|
+
};
|
|
284
|
+
/** A caret to put back after a write, and the blocks the write left where it wrote: focus already
|
|
285
|
+
* outside them means a blur committed the write, and the caret stays where it went. */
|
|
286
|
+
export interface Relanding {
|
|
287
|
+
readonly caret: CaretPosition;
|
|
288
|
+
readonly window: {
|
|
289
|
+
readonly list: DocPath;
|
|
290
|
+
readonly at: number;
|
|
291
|
+
readonly count: number;
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
/** What a commit writing new text into one leaf resolves to. */
|
|
295
|
+
export type LeafWriteResult = {
|
|
296
|
+
readonly wrote: false;
|
|
297
|
+
} | LeafWriteLanded;
|
|
298
|
+
/** `caret` is where the caret goes after the write and its list's fix-up, and `window` the
|
|
299
|
+
* written block's replacement run; a collapsed ancestor places the caret itself afterwards. */
|
|
300
|
+
export interface LeafWriteLanded extends Relanding {
|
|
301
|
+
readonly wrote: true;
|
|
302
|
+
/** Whether the write put new blocks in the position rather than rewriting the leaf. */
|
|
303
|
+
readonly replaced: boolean;
|
|
304
|
+
}
|
|
305
|
+
/** A leaf write by document path: `caret` is an offset into the text as written, `snapshotOffset`
|
|
306
|
+
* one into the leaf's current bytes, where undo puts the caret back when nothing is focused. */
|
|
307
|
+
export interface LeafTextOptions {
|
|
308
|
+
caret: number;
|
|
309
|
+
snapshotOffset: number;
|
|
310
|
+
/** Runs after the tick, before a collapsed ancestor places the caret itself. */
|
|
311
|
+
afterTick?: (landed: LeafWriteLanded) => void | Promise<void>;
|
|
312
|
+
}
|
|
313
|
+
/** Which replacement block the caret lands in, at `offset` (`CURSOR_END` for its end) or at
|
|
314
|
+
* `path` below it. */
|
|
315
|
+
export interface ReplaceFocus {
|
|
316
|
+
replacementIndex: number;
|
|
317
|
+
offset: number;
|
|
318
|
+
path?: number[];
|
|
319
|
+
}
|
|
320
|
+
export interface ReplaceOptions {
|
|
321
|
+
/** Where undo puts the caret back when nothing is focused: where the gesture began. */
|
|
322
|
+
snapshotOffset: number;
|
|
323
|
+
/** A clipboard's own trailing blank line, landed as the document's when nothing follows. */
|
|
324
|
+
trailingBlank?: boolean;
|
|
325
|
+
/** The route a paste or a drop names in the edit event, in place of the block count. */
|
|
326
|
+
source?: ReplaceSource;
|
|
247
327
|
}
|
|
328
|
+
export type ReplaceSource = Extract<OperationDetailMap['replaceBlock'], {
|
|
329
|
+
source: unknown;
|
|
330
|
+
}>['source'];
|
|
331
|
+
/** A list's item edits; each resolves to whether bytes landed. */
|
|
248
332
|
export interface ListContext {
|
|
249
|
-
insertItemAfter(itemIndex: number, newItem?: CstNode): Promise<
|
|
250
|
-
exitListAtItem(itemIndex: number): Promise<
|
|
251
|
-
indentItem(itemIndex: number): Promise<
|
|
252
|
-
unindentItem(itemIndex: number): Promise<
|
|
333
|
+
insertItemAfter(itemIndex: number, newItem?: CstNode): Promise<boolean>;
|
|
334
|
+
exitListAtItem(itemIndex: number): Promise<boolean>;
|
|
335
|
+
indentItem(itemIndex: number): Promise<boolean>;
|
|
336
|
+
unindentItem(itemIndex: number): Promise<boolean>;
|
|
253
337
|
/**
|
|
254
338
|
* Split the item mid-content: first half stays, second half moves into a
|
|
255
339
|
* new sibling item. Emits exactly one undo snapshot and one edit event.
|
|
256
340
|
*/
|
|
257
|
-
splitItemAtOffset(itemIndex: number, innerIndex: number, offset: number): Promise<
|
|
258
|
-
/** Promote a nested list item to
|
|
259
|
-
*
|
|
260
|
-
promoteNestedItem(parentItemIndex: number, nestedListNode: NodeView, nestedItemIndex: number): Promise<
|
|
341
|
+
splitItemAtOffset(itemIndex: number, innerIndex: number, offset: number): Promise<boolean>;
|
|
342
|
+
/** Promote a nested list item to this parent list's level; `nestedListNode` is a live-tree
|
|
343
|
+
* reference, and writes go through the commit. */
|
|
344
|
+
promoteNestedItem(parentItemIndex: number, nestedListNode: NodeView, nestedItemIndex: number): Promise<boolean>;
|
|
261
345
|
/** Returns this list's index in its enclosing list (for nested-list promotion). */
|
|
262
346
|
getContainingItemIndex(): number;
|
|
263
347
|
}
|
|
264
348
|
export type CellPosition = 'start' | 'end' | number;
|
|
265
349
|
export interface TableContext {
|
|
350
|
+
/** A key's move to another cell; the cell comes into view as any arrow arrival does. */
|
|
266
351
|
focusCell(rowIdx: number, colIdx: number, position: CellPosition): void;
|
|
352
|
+
/** Scroll the grid sideways so the cell's column is inside the table's own box. */
|
|
353
|
+
revealColumn(rowIdx: number, colIdx: number): void;
|
|
267
354
|
getStickyColumn(): number | null;
|
|
268
355
|
setStickyColumn(colIdx: number): void;
|
|
269
356
|
resetStickyColumn(): void;
|
|
@@ -288,7 +375,7 @@ export interface TableContext {
|
|
|
288
375
|
moveColumnLeft(colIdx: number): Promise<void>;
|
|
289
376
|
moveColumnRight(colIdx: number): Promise<void>;
|
|
290
377
|
cycleAlignment(colIdx: number): Promise<void>;
|
|
291
|
-
/** Set a column's alignment directly
|
|
378
|
+
/** Set a column's alignment directly, as opposed to cycling it. */
|
|
292
379
|
setColumnAlignment(colIdx: number, alignment: TableAlignment): Promise<void>;
|
|
293
380
|
/** Write a grid of cell texts from `origin`, appending the rows and columns it needs, as one
|
|
294
381
|
* commit: a spreadsheet-like paste. Empty grids are a no-op. */
|
|
@@ -298,8 +385,8 @@ export interface TableContext {
|
|
|
298
385
|
}, grid: string[][]): Promise<void>;
|
|
299
386
|
}
|
|
300
387
|
/**
|
|
301
|
-
* The TableContext mutations addressed by
|
|
302
|
-
* menu and the cell's table commands
|
|
388
|
+
* The `TableContext` mutations addressed by a single row or column index, the names both the
|
|
389
|
+
* hover menu and the cell's table commands dispatch through. Derived from the interface
|
|
303
390
|
* rather than listed beside it, so a member with any other signature cannot be named.
|
|
304
391
|
*/
|
|
305
392
|
export type TableAxisAction = {
|
package/dist/action-contracts.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Every action interface a block component
|
|
3
|
-
* the commit
|
|
2
|
+
* Every action interface a block component calls upward through Svelte context, plus
|
|
3
|
+
* the commit types those calls are written in.
|
|
4
4
|
*/
|
|
5
5
|
export {};
|
package/dist/active-editor.d.ts
CHANGED
|
@@ -4,11 +4,11 @@ export declare function markEditorInteracted(root: HTMLElement): void;
|
|
|
4
4
|
/** True when a body-level chord routes to `root`. */
|
|
5
5
|
export declare function claimsBodyChord(root: HTMLElement): boolean;
|
|
6
6
|
/**
|
|
7
|
-
* True when `active` is a text-entry
|
|
8
|
-
* chords (Ctrl+F
|
|
7
|
+
* True when `active` is a text-entry element outside every mounted editor. The reserved
|
|
8
|
+
* chords (Ctrl+F, Ctrl+H) yield to it, so an editor never hijacks a consumer's own field.
|
|
9
9
|
*/
|
|
10
10
|
export declare function isForeignTextEntry(active: Element | null): boolean;
|
|
11
|
-
/** True when `el` takes text input
|
|
11
|
+
/** True when `el` takes text input: the elements a programmatic focus move must yield to. */
|
|
12
12
|
export declare function isTextEntrySurface(el: Element | null): boolean;
|
|
13
13
|
/** Release the claim if this editor holds it, so a torn-down instance never keeps it. */
|
|
14
14
|
export declare function releaseInteractedEditor(root: HTMLElement): void;
|
package/dist/active-editor.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Which editor a document-level chord
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* Module-level by design: cross-instance coordination is the point.
|
|
2
|
+
* Which editor a document-level chord goes to when no block has focus: the last editor the user
|
|
3
|
+
* touched while it is still mounted, otherwise the only mounted editor. Two mounted editors and
|
|
4
|
+
* no recent one resolve to neither, since guessing drives the wrong instance. Module-level on
|
|
5
|
+
* purpose: coordinating across instances is the point.
|
|
7
6
|
*/
|
|
8
7
|
const mountedEditors = new Set();
|
|
9
8
|
let lastInteracted = null;
|
|
@@ -24,7 +23,7 @@ export function claimsBodyChord(root) {
|
|
|
24
23
|
return !hasLiveClaim && mountedEditors.size === 1 && mountedEditors.has(root);
|
|
25
24
|
}
|
|
26
25
|
// Text-like <input> types the reserved chords yield to. Non-text types are deliberately
|
|
27
|
-
// absent: they don't consume Ctrl+F, so a
|
|
26
|
+
// absent: they don't consume Ctrl+F, so a lone editor keeps taking it while one has focus.
|
|
28
27
|
const TEXT_ENTRY_INPUT_TYPES = new Set([
|
|
29
28
|
'text',
|
|
30
29
|
'search',
|
|
@@ -35,8 +34,8 @@ const TEXT_ENTRY_INPUT_TYPES = new Set([
|
|
|
35
34
|
'number'
|
|
36
35
|
]);
|
|
37
36
|
/**
|
|
38
|
-
* True when `active` is a text-entry
|
|
39
|
-
* chords (Ctrl+F
|
|
37
|
+
* True when `active` is a text-entry element outside every mounted editor. The reserved
|
|
38
|
+
* chords (Ctrl+F, Ctrl+H) yield to it, so an editor never hijacks a consumer's own field.
|
|
40
39
|
*/
|
|
41
40
|
export function isForeignTextEntry(active) {
|
|
42
41
|
if (!isTextEntrySurface(active))
|
|
@@ -47,7 +46,7 @@ export function isForeignTextEntry(active) {
|
|
|
47
46
|
}
|
|
48
47
|
return true;
|
|
49
48
|
}
|
|
50
|
-
/** True when `el` takes text input
|
|
49
|
+
/** True when `el` takes text input: the elements a programmatic focus move must yield to. */
|
|
51
50
|
export function isTextEntrySurface(el) {
|
|
52
51
|
if (el instanceof HTMLTextAreaElement)
|
|
53
52
|
return true;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Builds the marker prefix span (the "ambient" prefix): the read-only prefix a container block
|
|
3
|
+
* draws in front of its first prose child's text. Reading it back is `cursor/widget-offset.ts`.
|
|
4
4
|
*/
|
|
5
5
|
import type { AmbientPrefix } from '../block-component';
|
|
6
6
|
export declare function buildAmbientSpan(prefix: AmbientPrefix): HTMLSpanElement;
|
|
7
|
-
export declare function ambientSpanOf(blockEl: ParentNode): HTMLElement | null;
|
|
8
|
-
export declare function ambientLengthOf(blockEl: HTMLElement): number;
|
|
9
|
-
export declare function placeCaretAfterAmbientSpan(blockEl: HTMLElement): boolean;
|