@voithos-labs/aragonite 0.10.3 → 0.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/a11y-strings.d.ts +12 -5
- package/dist/a11y-strings.js +61 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +13 -20
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +619 -1089
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +36 -67
- package/dist/components/SelectionOverlay.svelte.d.ts +6 -4
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +103 -100
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +35 -28
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +58 -32
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +144 -202
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +46 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +99 -144
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +3 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +9 -4
- package/dist/components/blocks/text/click-snap-guard.js +16 -5
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +164 -180
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -105
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +243 -208
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +13 -30
- package/dist/components/drag-handle.js +25 -63
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -31
- package/dist/components/editor-root-listeners.js +49 -46
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +26 -30
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +380 -0
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +14 -0
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +55 -68
- package/dist/core/inline/inline-widgets.js +55 -58
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +33 -17
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -7
- package/dist/cursor/height-oracle.js +26 -75
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +16 -8
- package/dist/cursor/scrollport.js +28 -5
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -13
- package/dist/cursor/visual-lines.js +72 -28
- package/dist/cursor/widget-edge-snap.d.ts +23 -0
- package/dist/cursor/widget-edge-snap.js +39 -0
- package/dist/cursor/widget-offset.d.ts +111 -102
- package/dist/cursor/widget-offset.js +352 -177
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +31 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +33 -52
- package/dist/editor-actions/focus/focus-landing.d.ts +11 -5
- package/dist/editor-actions/focus/focus-landing.js +29 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +55 -76
- package/dist/editor-actions/plugin/container.js +105 -186
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +91 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +38 -8
- package/dist/plugin.js +102 -74
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +113 -85
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -75
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +63 -47
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +18 -7
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +143 -292
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +79 -81
- package/dist/schema/commands.js +156 -116
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +9 -11
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +73 -78
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +93 -152
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +61 -104
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +53 -146
- package/dist/selection/dead-space-caret.d.ts +20 -28
- package/dist/selection/dead-space-caret.js +79 -87
- package/dist/selection/drag-pointer.d.ts +22 -5
- package/dist/selection/drag-pointer.js +63 -31
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -39
- package/dist/selection/keyboard-extend.js +94 -116
- package/dist/selection/multi-click.d.ts +37 -0
- package/dist/selection/multi-click.js +197 -0
- package/dist/selection/native-bridge.d.ts +30 -37
- package/dist/selection/native-bridge.js +80 -100
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +31 -14
- package/dist/selection/path-lookup.js +110 -20
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +9 -0
- package/dist/selection/pointer-gesture.js +11 -0
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -33
- package/dist/selection/primitives.js +61 -53
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -19
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +52 -0
- package/dist/selection/selection-drop.js +317 -0
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +75 -53
- package/dist/styles/editor.css +248 -139
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +19 -0
- package/dist/tree-operations/paste/replacement-parse.js +24 -0
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +329 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +267 -183
- package/docs/guide/plugin-guide.md +341 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +17 -21
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/selection/double-click-trim.d.ts +0 -17
- package/dist/selection/double-click-trim.js +0 -57
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -29
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -75
|
@@ -4,67 +4,58 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { BlockEditActions } from '../../../action-contracts';
|
|
6
6
|
import type { NodeView } from '../../../core/node-views';
|
|
7
|
-
import type { DocumentGetter,
|
|
7
|
+
import type { DocumentGetter, PasteImageHook } from '../../../editor-keys';
|
|
8
8
|
import type { EditorEvents } from '../../../editor-events';
|
|
9
9
|
import type { WidgetSelectionState } from '../../image/widget-selection-state.svelte';
|
|
10
|
-
import type {
|
|
10
|
+
import type { SurfaceBackend } from '../../../cursor/surface-backend';
|
|
11
11
|
import type { CrossBlockHandlers } from '../../../selection/cross-block/dispatch';
|
|
12
12
|
import type { PasteCommitCoordinator } from '../../../tree-operations/paste/paste-deps';
|
|
13
|
-
import type { GrammarView } from '../../../schema/block-openers';
|
|
14
13
|
import type { PluginActivation } from '../../../schema/plugin-activation';
|
|
15
14
|
import type { SelectionState } from '../../../selection/selection-state.svelte';
|
|
16
|
-
import type {
|
|
17
|
-
import type { EdgeAffinityState } from '../../../cursor/edge-affinity';
|
|
15
|
+
import type { CaretMemory } from '../../../cursor/caret-memory';
|
|
18
16
|
import { type ClipboardCaretIO, type ClipboardHandlers, type RevealFold } from '../editable-surface';
|
|
19
|
-
import type {
|
|
17
|
+
import type { Reading } from '../../../schema/reading';
|
|
18
|
+
import type { StoredAs } from '../../../schema/stored-as';
|
|
20
19
|
export interface TextClipboardDeps {
|
|
21
20
|
get node(): NodeView;
|
|
22
21
|
get index(): number;
|
|
23
22
|
get myPath(): number[];
|
|
24
|
-
/** Local caret reads go through `cursor`; `caret` is the narrower
|
|
25
|
-
* clipboard
|
|
26
|
-
cursor:
|
|
23
|
+
/** Local caret reads go through `cursor`; `caret` is the narrower interface the shared
|
|
24
|
+
* clipboard code anchors an image insertion with, passed through and never read here. */
|
|
25
|
+
cursor: SurfaceBackend;
|
|
27
26
|
caret: ClipboardCaretIO;
|
|
28
27
|
crossBlock: CrossBlockHandlers;
|
|
29
28
|
events: EditorEvents;
|
|
30
29
|
onPasteImage: PasteImageHook | undefined;
|
|
31
30
|
selection: SelectionState;
|
|
32
|
-
|
|
33
|
-
edgeAffinity: EdgeAffinityState;
|
|
31
|
+
caretMemory: CaretMemory;
|
|
34
32
|
blockEdit: BlockEditActions;
|
|
35
33
|
pasteCoordinator: PasteCommitCoordinator;
|
|
36
|
-
/** The instance grammar, so an unlisted plugin's opener never claims pasted bytes here. */
|
|
37
|
-
grammar: GrammarView | undefined;
|
|
38
34
|
/** The plugins this instance activated, so an unlisted plugin's paste transform stays out. */
|
|
39
35
|
activePlugins: PluginActivation;
|
|
40
36
|
getDoc: DocumentGetter;
|
|
41
37
|
widgetSelection: WidgetSelectionState;
|
|
42
38
|
setPendingCursor: (offset: number | null) => void;
|
|
43
|
-
/** Reading mode: cut
|
|
44
|
-
* on a non-editable
|
|
39
|
+
/** Reading mode: cut becomes copy, paste does nothing. The events still fire
|
|
40
|
+
* on a non-editable element, so the check lives in the handlers. */
|
|
45
41
|
isReadOnly: () => boolean;
|
|
46
|
-
/**
|
|
47
|
-
* a CST
|
|
42
|
+
/** Hide a construct's shown source before a clipboard edit, so cut and paste run
|
|
43
|
+
* against a CST that matches the DOM. Null when no source was showing. */
|
|
48
44
|
foldRevealBeforeMutation: () => RevealFold | null;
|
|
49
|
-
/** True while an inline
|
|
45
|
+
/** True while an inline widget on this block is showing its source. */
|
|
50
46
|
isRevealing: () => boolean;
|
|
51
|
-
/** The
|
|
52
|
-
*
|
|
53
|
-
getPresentationMode: () => PresentationMode | undefined;
|
|
54
|
-
/** The container prefix this block renders under, which the cut's seam reads its candidate
|
|
55
|
-
* back through — an item body the cut left starting with a space reloads under a wider marker. */
|
|
56
|
-
getAmbientPrefix: () => string;
|
|
57
|
-
/** The block's live DOM as raw text, so a copy over a revealed (uncommitted) edit
|
|
58
|
-
* yields what the user sees rather than the stale raw slice. */
|
|
47
|
+
/** The block's live DOM as raw text, so a copy over an uncommitted edit yields what
|
|
48
|
+
* the user sees rather than a stale slice of `node.raw`. */
|
|
59
49
|
readRevealedText: () => string;
|
|
60
|
-
|
|
50
|
+
/** How this editor reads its bytes: an unlisted plugin's opener never takes pasted bytes here,
|
|
51
|
+
* and a cut is a join its mode decides the cleanup of (live-mode.md § 4.5). */
|
|
52
|
+
get reading(): Reading;
|
|
53
|
+
/** Where the block's bytes are stored, read when a cut writes. */
|
|
54
|
+
storedAs: () => StoredAs;
|
|
61
55
|
}
|
|
62
56
|
export interface TextClipboard extends ClipboardHandlers {
|
|
63
|
-
/**
|
|
64
|
-
*
|
|
65
|
-
* clears the native selection, so a block with no text position for a caret to survive in
|
|
66
|
-
* gets its events at `<body>`, where no surface binding sees them.
|
|
67
|
-
*/
|
|
57
|
+
/** The block's handler for a clipboard event the editor root received: a selected widget clears
|
|
58
|
+
* the browser selection, so the event arrives at `<body>`, past the block's own binding. */
|
|
68
59
|
claimRootClipboard(event: ClipboardEvent): void;
|
|
69
60
|
}
|
|
70
61
|
export declare function createTextClipboard(deps: TextClipboardDeps): TextClipboard;
|
|
@@ -6,7 +6,8 @@ import { resolvedInlineContent } from '../../../core/inline/inline-cache';
|
|
|
6
6
|
import { isInlineWidget } from '../../../core/inline/inline-widgets';
|
|
7
7
|
import { createClipboardHandlers } from '../editable-surface';
|
|
8
8
|
import { pasteDispatch } from '../../../tree-operations/paste/dispatch';
|
|
9
|
-
import {
|
|
9
|
+
import { replaceRangeInLeaf } from '../../../tree-operations/leaf-range';
|
|
10
|
+
import { replaceSelectedWidget } from './widget-interaction';
|
|
10
11
|
export function createTextClipboard(deps) {
|
|
11
12
|
function getSelectedTextFromRaw() {
|
|
12
13
|
const offsets = deps.cursor.getRawSelection();
|
|
@@ -14,19 +15,18 @@ export function createTextClipboard(deps) {
|
|
|
14
15
|
return '';
|
|
15
16
|
return deps.node.raw.slice(offsets.start, offsets.end);
|
|
16
17
|
}
|
|
17
|
-
// Null unless a widget on
|
|
18
|
-
// inline content. Shared by copy, cut, and paste
|
|
18
|
+
// Null unless a widget on this block is selected and still present in the parsed
|
|
19
|
+
// inline content. Shared by copy, cut, and paste over a widget.
|
|
19
20
|
function selectedWidgetOnThisBlock() {
|
|
20
21
|
const selected = deps.widgetSelection.getSelected();
|
|
21
22
|
if (selected === null || !deps.widgetSelection.isSelected(deps.myPath, selected.sourceStart)) {
|
|
22
23
|
return null;
|
|
23
24
|
}
|
|
24
|
-
const inline = resolvedInlineContent(deps.node, deps.
|
|
25
|
+
const inline = resolvedInlineContent(deps.node, deps.reading).find((n) => isInlineWidget(n, deps.node.raw, deps.reading.grammar) && n.start === selected.sourceStart);
|
|
25
26
|
return inline ? { inline, preSelectOffset: selected.preSelectOffset } : null;
|
|
26
27
|
}
|
|
27
28
|
const handlers = createClipboardHandlers({
|
|
28
|
-
|
|
29
|
-
edgeAffinity: deps.edgeAffinity,
|
|
29
|
+
caretMemory: deps.caretMemory,
|
|
30
30
|
selection: deps.selection,
|
|
31
31
|
getDoc: deps.getDoc,
|
|
32
32
|
crossBlock: deps.crossBlock,
|
|
@@ -44,8 +44,8 @@ export function createTextClipboard(deps) {
|
|
|
44
44
|
e.clipboardData?.setData('text/plain', deps.node.raw.slice(widget.inline.start, widget.inline.end));
|
|
45
45
|
return true;
|
|
46
46
|
},
|
|
47
|
-
// A selection over
|
|
48
|
-
// rather than the stale `node.raw`; copy must not
|
|
47
|
+
// A selection over a construct whose source is showing covers uncommitted DOM, so slice
|
|
48
|
+
// the live text rather than the stale `node.raw`; copy must not hide it, because that writes.
|
|
49
49
|
copyTail: (e) => {
|
|
50
50
|
e.preventDefault();
|
|
51
51
|
if (deps.isRevealing()) {
|
|
@@ -62,9 +62,7 @@ export function createTextClipboard(deps) {
|
|
|
62
62
|
return false;
|
|
63
63
|
const { inline, preSelectOffset } = widget;
|
|
64
64
|
e.clipboardData?.setData('text/plain', deps.node.raw.slice(inline.start, inline.end));
|
|
65
|
-
|
|
66
|
-
void deps.blockEdit.updateBlockContent(deps.index, newRaw, preSelectOffset, inline.start);
|
|
67
|
-
deps.widgetSelection.clear();
|
|
65
|
+
void replaceSelectedWidget(deps, inline, preSelectOffset, '', 'literal');
|
|
68
66
|
return true;
|
|
69
67
|
},
|
|
70
68
|
cutTail: (e) => {
|
|
@@ -75,37 +73,34 @@ export function createTextClipboard(deps) {
|
|
|
75
73
|
const selOffsets = deps.cursor.getRawSelection();
|
|
76
74
|
if (!selOffsets)
|
|
77
75
|
return;
|
|
78
|
-
// A cut is a delete, so it
|
|
79
|
-
// delimiter runs the
|
|
80
|
-
const edit =
|
|
81
|
-
|
|
82
|
-
|
|
76
|
+
// A cut is a delete, so it goes through the same join rules: in live mode the range
|
|
77
|
+
// can span delimiter runs the user never saw, and a plain splice would print them.
|
|
78
|
+
const edit = replaceRangeInLeaf(deps.node, selOffsets, '', deps.storedAs());
|
|
79
|
+
const write = deps.blockEdit.updateBlockContent(deps.index, edit.raw, 'literal', selOffsets.start, edit.caret);
|
|
80
|
+
if (write.admitted)
|
|
81
|
+
deps.setPendingCursor(write.caret);
|
|
83
82
|
},
|
|
84
83
|
pasteTail: async (pastedText, foldedCaret) => {
|
|
84
|
+
// A selected widget is the selection a paste replaces, through the same route as any.
|
|
85
85
|
const widget = selectedWidgetOnThisBlock();
|
|
86
|
-
if (widget !== null)
|
|
87
|
-
const { inline, preSelectOffset } = widget;
|
|
88
|
-
const newRaw = deps.node.raw.slice(0, inline.start) + pastedText + deps.node.raw.slice(inline.end);
|
|
89
|
-
void deps.blockEdit.updateBlockContent(deps.index, newRaw, preSelectOffset, inline.start + pastedText.length);
|
|
86
|
+
if (widget !== null)
|
|
90
87
|
deps.widgetSelection.clear();
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
// After a reveal fold the caret sits on the widget's element-level edge, where
|
|
94
|
-
// getRaw can read null; the committed caret is the correct landing offset.
|
|
88
|
+
// Once the widget's source is hidden again the caret sits on its element-level edge,
|
|
89
|
+
// where `getRaw` can read null; the committed caret is the right offset.
|
|
95
90
|
const offset = deps.cursor.getRaw() ?? foldedCaret ?? 0;
|
|
96
|
-
const
|
|
91
|
+
const range = widget?.inline ?? deps.cursor.getRawSelection();
|
|
97
92
|
const result = await pasteDispatch({
|
|
98
93
|
pastedText,
|
|
99
94
|
targetPath: deps.myPath,
|
|
100
|
-
offset:
|
|
101
|
-
preDelete:
|
|
95
|
+
offset: range ? range.start : offset,
|
|
96
|
+
preDelete: range ? { start: range.start, end: range.end } : undefined,
|
|
97
|
+
caretBefore: widget?.preSelectOffset
|
|
102
98
|
}, {
|
|
103
99
|
doc: deps.getDoc(),
|
|
104
100
|
blockEdit: deps.blockEdit,
|
|
105
101
|
controller: deps.pasteCoordinator,
|
|
106
|
-
|
|
107
|
-
activePlugins: deps.activePlugins
|
|
108
|
-
seam: { presentationMode: deps.getPresentationMode(), linkRef: deps.linkRef }
|
|
102
|
+
reading: deps.reading,
|
|
103
|
+
activePlugins: deps.activePlugins
|
|
109
104
|
});
|
|
110
105
|
// Pending, so the caret set and the raw mutation land in one reactive flush.
|
|
111
106
|
if (result.inlineCaretOffset !== undefined) {
|
|
@@ -115,8 +110,8 @@ export function createTextClipboard(deps) {
|
|
|
115
110
|
});
|
|
116
111
|
return {
|
|
117
112
|
...handlers,
|
|
118
|
-
// Routed to the same
|
|
119
|
-
//
|
|
113
|
+
// Routed to the same handlers a caret-side event reaches, so the reading-mode check, the
|
|
114
|
+
// source hide and the sticky-column reset come along rather than being repeated here.
|
|
120
115
|
claimRootClipboard(event) {
|
|
121
116
|
if (selectedWidgetOnThisBlock() === null)
|
|
122
117
|
return;
|
|
@@ -1,45 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Pure raw
|
|
3
|
-
*
|
|
4
|
-
* owns the
|
|
2
|
+
* Pure raw and caret transforms for TextEditableBlock's structural gestures: changing a
|
|
3
|
+
* heading's level, demoting it to prose, inserting a hard break, inserting a literal tab.
|
|
4
|
+
* The component owns the wiring; these own the string math.
|
|
5
5
|
*/
|
|
6
|
-
import type
|
|
6
|
+
import { type ContentRange } from '../../../core/inline';
|
|
7
|
+
import { type LineEnding } from '../../../core/lines';
|
|
7
8
|
export interface TextEditResult {
|
|
8
9
|
newRaw: string;
|
|
9
10
|
caretOffset: number;
|
|
10
11
|
}
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* a prefix rewrite cannot disagree with the gate that let the press through (` ## x` is a heading
|
|
15
|
-
* whose `#`s a `^#` regex never reaches). Null where the content IS the whole display.
|
|
13
|
+
* Drop the block's structure outside its content range, the same range the check that let the
|
|
14
|
+
* key through reads. Null where the content is the whole display.
|
|
16
15
|
*/
|
|
17
16
|
export declare function demoteToParagraph(raw: string, content: ContentRange, preEditOffset: number): TextEditResult | null;
|
|
18
|
-
/**
|
|
19
|
-
* it
|
|
20
|
-
export declare function dropStructuralPrefix(raw: string, contentStart: number, preEditOffset: number): TextEditResult;
|
|
21
|
-
/** Drop everything past `contentEnd` but the block's own trailing line ending — the setext
|
|
22
|
-
* underline, which sits after every caret the content range admits. */
|
|
23
|
-
export declare function dropStructuralSuffix(raw: string, contentEnd: number, preEditOffset: number): TextEditResult;
|
|
24
|
-
/**
|
|
25
|
-
* An ATX heading left with no text is a marker standing over nothing: unfocused it paints
|
|
26
|
-
* nothing (the chrome-only stamp is focus-scoped), so the block would survive invisibly and
|
|
27
|
-
* resurface as a `#` on the next click. On blur it becomes the empty paragraph it looks like.
|
|
28
|
-
*/
|
|
17
|
+
/** An ATX heading with no text draws nothing when unfocused, so on blur it becomes the empty
|
|
18
|
+
* paragraph it looks like rather than a `#` that reappears on the next click. */
|
|
29
19
|
export declare function demoteEmptyAtxHeading(raw: string, content: ContentRange): TextEditResult | null;
|
|
30
|
-
/**
|
|
31
|
-
*
|
|
32
|
-
* the current kind keeps — the same content range {@link demoteToParagraph} reads, so an indented
|
|
33
|
-
* ` ## x` or a setext underline is given up rather than left in the new heading's text.
|
|
34
|
-
* `level === 0` IS the demotion, and null there means the content already is the whole display.
|
|
35
|
-
* Idempotent, not a toggle: stripping is reached only by asking for level 0.
|
|
36
|
-
*/
|
|
20
|
+
/** Re-mark the content with an ATX prefix for `level`, replacing the current kind's structural
|
|
21
|
+
* bytes. Not a toggle: level 0 demotes, and null there means there was nothing to strip. */
|
|
37
22
|
export declare function cycleHeading(raw: string, content: ContentRange, level: number, preEditOffset: number): TextEditResult | null;
|
|
38
23
|
/**
|
|
39
|
-
* Insert a GFM hard
|
|
40
|
-
*
|
|
41
|
-
* break is transitional there until the next keystroke supplies its following line.
|
|
24
|
+
* Insert a GFM hard break (a backslash at end of line) at `offset`. At the content's end, the
|
|
25
|
+
* line ending after the content stands in for the break's own until the next key adds the line.
|
|
42
26
|
*/
|
|
43
|
-
export declare function insertHardBreak(raw: string, offset: number): TextEditResult;
|
|
27
|
+
export declare function insertHardBreak(raw: string, offset: number, ending: LineEnding, content: ContentRange): TextEditResult;
|
|
28
|
+
/** The key typed after a hard break's backslash, opening the break's own line at `lineEnd` (past a
|
|
29
|
+
* heading's closing run). Works on the display text, without its trailing line ending. */
|
|
30
|
+
export declare function openHardBreakLine(display: string, lineEnd: number, ending: LineEnding, key: string): {
|
|
31
|
+
display: string;
|
|
32
|
+
caret: number;
|
|
33
|
+
};
|
|
44
34
|
/** Insert a literal tab character at `offset` within the display portion. */
|
|
45
35
|
export declare function insertLiteralTab(raw: string, offset: number): TextEditResult;
|
|
@@ -1,55 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Pure raw
|
|
3
|
-
*
|
|
4
|
-
* owns the
|
|
2
|
+
* Pure raw and caret transforms for TextEditableBlock's structural gestures: changing a
|
|
3
|
+
* heading's level, demoting it to prose, inserting a hard break, inserting a literal tab.
|
|
4
|
+
* The component owns the wiring; these own the string math.
|
|
5
5
|
*/
|
|
6
|
+
import { sameLineSuffixOf } from '../../../core/inline';
|
|
6
7
|
import { displayLength, ownTrailingLineEnding, trailingLineEnding, trimTrailingLineEnding } from '../../../core/lines';
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* a prefix rewrite cannot disagree with the gate that let the press through (` ## x` is a heading
|
|
11
|
-
* whose `#`s a `^#` regex never reaches). Null where the content IS the whole display.
|
|
9
|
+
* Drop the block's structure outside its content range, the same range the check that let the
|
|
10
|
+
* key through reads. Null where the content is the whole display.
|
|
12
11
|
*/
|
|
13
12
|
export function demoteToParagraph(raw, content, preEditOffset) {
|
|
14
|
-
if (content.start
|
|
15
|
-
return
|
|
16
|
-
|
|
17
|
-
return dropStructuralSuffix(raw, content.end, preEditOffset);
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
/** Drop everything before `contentStart` — a heading's marker prefix and any spaces that precede
|
|
21
|
-
* it, which sit before every caret the content range admits. */
|
|
22
|
-
export function dropStructuralPrefix(raw, contentStart, preEditOffset) {
|
|
13
|
+
if (content.start === 0 && content.end === displayLength(raw))
|
|
14
|
+
return null;
|
|
15
|
+
const inContent = Math.min(Math.max(preEditOffset, content.start), content.end);
|
|
23
16
|
return {
|
|
24
|
-
newRaw: raw.slice(
|
|
25
|
-
caretOffset:
|
|
17
|
+
newRaw: raw.slice(content.start, content.end) + endingPastContent(raw, content.end),
|
|
18
|
+
caretOffset: inContent - content.start
|
|
26
19
|
};
|
|
27
20
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return {
|
|
32
|
-
newRaw: raw.slice(0, contentEnd) + ownTrailingLineEnding(raw),
|
|
33
|
-
caretOffset: Math.min(preEditOffset, contentEnd)
|
|
34
|
-
};
|
|
21
|
+
// The line ending the dropped structure ended in, a lone `\r` on a document's last line included.
|
|
22
|
+
function endingPastContent(raw, contentEnd) {
|
|
23
|
+
return /(?:\r\n?|\n)$/.exec(raw.slice(contentEnd))?.[0] ?? '';
|
|
35
24
|
}
|
|
36
|
-
/**
|
|
37
|
-
*
|
|
38
|
-
* nothing (the chrome-only stamp is focus-scoped), so the block would survive invisibly and
|
|
39
|
-
* resurface as a `#` on the next click. On blur it becomes the empty paragraph it looks like.
|
|
40
|
-
*/
|
|
25
|
+
/** An ATX heading with no text draws nothing when unfocused, so on blur it becomes the empty
|
|
26
|
+
* paragraph it looks like rather than a `#` that reappears on the next click. */
|
|
41
27
|
export function demoteEmptyAtxHeading(raw, content) {
|
|
42
28
|
if (content.start === 0 || content.end > content.start)
|
|
43
29
|
return null;
|
|
44
30
|
return demoteToParagraph(raw, content, 0);
|
|
45
31
|
}
|
|
46
|
-
/**
|
|
47
|
-
*
|
|
48
|
-
* the current kind keeps — the same content range {@link demoteToParagraph} reads, so an indented
|
|
49
|
-
* ` ## x` or a setext underline is given up rather than left in the new heading's text.
|
|
50
|
-
* `level === 0` IS the demotion, and null there means the content already is the whole display.
|
|
51
|
-
* Idempotent, not a toggle: stripping is reached only by asking for level 0.
|
|
52
|
-
*/
|
|
32
|
+
/** Re-mark the content with an ATX prefix for `level`, replacing the current kind's structural
|
|
33
|
+
* bytes. Not a toggle: level 0 demotes, and null there means there was nothing to strip. */
|
|
53
34
|
export function cycleHeading(raw, content, level, preEditOffset) {
|
|
54
35
|
if (level === 0)
|
|
55
36
|
return demoteToParagraph(raw, content, preEditOffset);
|
|
@@ -57,28 +38,50 @@ export function cycleHeading(raw, content, level, preEditOffset) {
|
|
|
57
38
|
const newDisplay = prefix + raw.slice(content.start, content.end);
|
|
58
39
|
const inContent = Math.min(Math.max(preEditOffset, content.start), content.end);
|
|
59
40
|
return {
|
|
60
|
-
newRaw: newDisplay +
|
|
41
|
+
newRaw: newDisplay + endingPastContent(raw, content.end),
|
|
61
42
|
caretOffset: prefix.length + (inContent - content.start)
|
|
62
43
|
};
|
|
63
44
|
}
|
|
64
45
|
/**
|
|
65
|
-
* Insert a GFM hard
|
|
66
|
-
*
|
|
67
|
-
* break is transitional there until the next keystroke supplies its following line.
|
|
46
|
+
* Insert a GFM hard break (a backslash at end of line) at `offset`. At the content's end, the
|
|
47
|
+
* line ending after the content stands in for the break's own until the next key adds the line.
|
|
68
48
|
*/
|
|
69
|
-
export function insertHardBreak(raw, offset) {
|
|
49
|
+
export function insertHardBreak(raw, offset, ending, content) {
|
|
70
50
|
const display = trimTrailingLineEnding(raw);
|
|
71
51
|
const trailing = ownTrailingLineEnding(raw);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const
|
|
52
|
+
if (offset === content.end && content.end < display.length) {
|
|
53
|
+
return {
|
|
54
|
+
newRaw: raw.slice(0, content.end) + '\\' + raw.slice(content.end),
|
|
55
|
+
caretOffset: content.end + 1
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const lineTail = sameLineSuffixOf(raw, content.end);
|
|
59
|
+
if (offset >= content.start && offset < content.end && lineTail) {
|
|
60
|
+
return breakBeforeLine(display.slice(0, offset) + '\\' + lineTail, display.slice(offset, content.end) + display.slice(content.end + lineTail.length));
|
|
61
|
+
}
|
|
62
|
+
return breakBeforeLine(display.slice(0, offset) + '\\', display.slice(offset));
|
|
63
|
+
/** `head`, the break's line ending, then `rest` on the new line. */
|
|
64
|
+
function breakBeforeLine(head, rest) {
|
|
65
|
+
// The break carries the block's own ending, else the document's `ending`: CommonMark reads
|
|
66
|
+
// a backslash before either LF or CRLF as a hard break, so a CRLF block stays CRLF.
|
|
67
|
+
const breakEnding = trailingLineEnding(raw, ending);
|
|
68
|
+
const newDisplay = head + breakEnding + rest;
|
|
69
|
+
// With nothing after the break, the inserted ending is itself the trailing ending;
|
|
70
|
+
// reattaching the original would double it into a blank line and break list continuation.
|
|
71
|
+
const newRaw = rest === '' ? newDisplay : newDisplay + trailing;
|
|
72
|
+
return {
|
|
73
|
+
newRaw,
|
|
74
|
+
caretOffset: Math.min(head.length + breakEnding.length, displayLength(newRaw))
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** The key typed after a hard break's backslash, opening the break's own line at `lineEnd` (past a
|
|
79
|
+
* heading's closing run). Works on the display text, without its trailing line ending. */
|
|
80
|
+
export function openHardBreakLine(display, lineEnd, ending, key) {
|
|
81
|
+
const line = ending + key;
|
|
79
82
|
return {
|
|
80
|
-
|
|
81
|
-
|
|
83
|
+
display: display.slice(0, lineEnd) + line + display.slice(lineEnd),
|
|
84
|
+
caret: lineEnd + line.length
|
|
82
85
|
};
|
|
83
86
|
}
|
|
84
87
|
/** Insert a literal tab character at `offset` within the display portion. */
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* DOM-
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* DOM-building steps for TextEditableBlock's render effect. The component owns the effect
|
|
3
|
+
* and the `pendingCursorOffset` restore, since those writes touch `$state`; this factory
|
|
4
|
+
* builds the inline DOM and keeps a live caret across a rebuild a decoration caused, which
|
|
5
|
+
* the edit path's own restore does not cover.
|
|
6
6
|
*/
|
|
7
7
|
import type { AmbientPrefix } from '../../../block-component';
|
|
8
8
|
import type { DocumentView, NodeView } from '../../../core/node-views';
|
|
9
|
-
import { type PresentationMode } from '../../../presentation-mode';
|
|
10
9
|
import type { ResolveImageUrl, ResolveLinkUrl } from '../../../editor-keys';
|
|
11
|
-
import type {
|
|
10
|
+
import type { Reading } from '../../../schema/reading';
|
|
12
11
|
import { type ImageLoadPolicy } from '../../../core/inline-render';
|
|
13
12
|
import type { IndexedDecoration } from '../../../decorations/buckets';
|
|
14
13
|
import type { ReplaceDecoration, WidgetDecoration } from '../../../decorations/types';
|
|
@@ -21,47 +20,38 @@ export interface TextRenderDeps {
|
|
|
21
20
|
resolveImageUrl: ResolveImageUrl;
|
|
22
21
|
resolveLinkUrl: ResolveLinkUrl;
|
|
23
22
|
get imageLoadPolicy(): ImageLoadPolicy;
|
|
24
|
-
/**
|
|
25
|
-
* reactive dependency that re-renders every mounted block
|
|
26
|
-
get
|
|
27
|
-
/** The editor's theme name,
|
|
28
|
-
* themed by CSS, so only a widget
|
|
29
|
-
getTheme
|
|
23
|
+
/** How the editor reads its bytes. Its mode is read inside the render pass on purpose: that read
|
|
24
|
+
* is the reactive dependency that re-renders every mounted block when the mode changes. */
|
|
25
|
+
get reading(): Reading;
|
|
26
|
+
/** The editor's theme name, passed on to widgets. Not part of the render key: this DOM
|
|
27
|
+
* is themed by CSS, so only a widget that draws its own colors reads it. */
|
|
28
|
+
getTheme: () => string;
|
|
30
29
|
/** Live root document for widgets that derive from it. A getter, so a pooled widget
|
|
31
30
|
* re-reads the current document across edits rather than a mount-time snapshot. */
|
|
32
31
|
getDocument: () => DocumentView | undefined;
|
|
33
|
-
/** The editor's content version, so a widget can memoize a document-wide derivation
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
/** A compact stamp changing exactly when the document's LRD signature does
|
|
40
|
-
* (`link-reference-resolver.ts` mints it), so a reference-bearing block folds this
|
|
41
|
-
* into its render key instead of a signature string that reaches ~MB scale. */
|
|
42
|
-
get linkStamp(): string;
|
|
43
|
-
/** Position-sorted islands. A getter read inside the render pass on purpose: that
|
|
44
|
-
* read is the reactive dependency that re-renders the block on an island change. */
|
|
32
|
+
/** The editor's content version, so a widget can memoize a document-wide derivation on it. */
|
|
33
|
+
getContentVersion: () => number;
|
|
34
|
+
/** The editor's navigation call, passed on to widgets whose gesture jumps elsewhere. */
|
|
35
|
+
navigateTo: (path: number[]) => Promise<boolean>;
|
|
36
|
+
/** Decoration widgets, sorted by position. A getter read inside the render pass on
|
|
37
|
+
* purpose: that read is the dependency that re-renders the block when one changes. */
|
|
45
38
|
get islands(): IndexedDecoration<WidgetDecoration | ReplaceDecoration>[];
|
|
46
39
|
brokenUrlCache: Set<string>;
|
|
47
|
-
/** A widget
|
|
48
|
-
*
|
|
49
|
-
reportRenderError
|
|
40
|
+
/** A widget that throws while mounting reports to the editor's `error` event, and still falls
|
|
41
|
+
* back to its raw source. */
|
|
42
|
+
reportRenderError: (error: unknown) => void;
|
|
50
43
|
}
|
|
51
44
|
export interface TextRender {
|
|
52
|
-
/**
|
|
53
|
-
*
|
|
54
|
-
* render key unless `forceRebuild` — pass it when a pending cursor restore needs the
|
|
55
|
-
* DOM re-anchored. `carryCaret` re-anchors the caret; the edit path passes false.
|
|
56
|
-
*/
|
|
45
|
+
/** Rebuild the block's children, skipped on an unchanged render key unless `forceRebuild` (a
|
|
46
|
+
* pending cursor restore). `carryCaret` re-anchors the caret; the edit path passes false. */
|
|
57
47
|
render(opts?: {
|
|
58
48
|
forceRebuild?: boolean;
|
|
59
49
|
carryCaret?: boolean;
|
|
60
50
|
}): void;
|
|
61
|
-
/** Destroy every pooled widget instance
|
|
51
|
+
/** Destroy every pooled widget instance, called when the block unmounts. */
|
|
62
52
|
dispose(): void;
|
|
63
53
|
}
|
|
64
|
-
/** Which
|
|
65
|
-
* the key format, so the recorder never learns the NUL layout. */
|
|
54
|
+
/** Which parts of the render key differ, which the interaction trace reports as the cause of
|
|
55
|
+
* a rebuild. Pure over the key format, so the recorder never learns the NUL layout. */
|
|
66
56
|
export declare function renderKeySegmentDiff(prev: string, next: string): string;
|
|
67
57
|
export declare function createTextRender(deps: TextRenderDeps): TextRender;
|