@voithos-labs/aragonite 0.10.3 → 0.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/a11y-strings.d.ts +12 -5
- package/dist/a11y-strings.js +61 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +13 -20
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +619 -1089
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +36 -67
- package/dist/components/SelectionOverlay.svelte.d.ts +6 -4
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +103 -100
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +35 -28
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +58 -32
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +144 -202
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +46 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +99 -144
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +3 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +9 -4
- package/dist/components/blocks/text/click-snap-guard.js +16 -5
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +164 -180
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -105
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +243 -208
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +13 -30
- package/dist/components/drag-handle.js +25 -63
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -31
- package/dist/components/editor-root-listeners.js +49 -46
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +26 -30
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +380 -0
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +14 -0
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +55 -68
- package/dist/core/inline/inline-widgets.js +55 -58
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +33 -17
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -7
- package/dist/cursor/height-oracle.js +26 -75
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +16 -8
- package/dist/cursor/scrollport.js +28 -5
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -13
- package/dist/cursor/visual-lines.js +72 -28
- package/dist/cursor/widget-edge-snap.d.ts +23 -0
- package/dist/cursor/widget-edge-snap.js +39 -0
- package/dist/cursor/widget-offset.d.ts +111 -102
- package/dist/cursor/widget-offset.js +352 -177
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +31 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +33 -52
- package/dist/editor-actions/focus/focus-landing.d.ts +11 -5
- package/dist/editor-actions/focus/focus-landing.js +29 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +55 -76
- package/dist/editor-actions/plugin/container.js +105 -186
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +91 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +38 -8
- package/dist/plugin.js +102 -74
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +113 -85
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -75
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +63 -47
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +18 -7
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +143 -292
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +79 -81
- package/dist/schema/commands.js +156 -116
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +9 -11
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +73 -78
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +93 -152
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +61 -104
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +53 -146
- package/dist/selection/dead-space-caret.d.ts +20 -28
- package/dist/selection/dead-space-caret.js +79 -87
- package/dist/selection/drag-pointer.d.ts +22 -5
- package/dist/selection/drag-pointer.js +63 -31
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -39
- package/dist/selection/keyboard-extend.js +94 -116
- package/dist/selection/multi-click.d.ts +37 -0
- package/dist/selection/multi-click.js +197 -0
- package/dist/selection/native-bridge.d.ts +30 -37
- package/dist/selection/native-bridge.js +80 -100
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +31 -14
- package/dist/selection/path-lookup.js +110 -20
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +9 -0
- package/dist/selection/pointer-gesture.js +11 -0
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -33
- package/dist/selection/primitives.js +61 -53
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -19
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +52 -0
- package/dist/selection/selection-drop.js +317 -0
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +75 -53
- package/dist/styles/editor.css +248 -139
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +19 -0
- package/dist/tree-operations/paste/replacement-parse.js +24 -0
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +329 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +267 -183
- package/docs/guide/plugin-guide.md +341 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +17 -21
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/selection/double-click-trim.d.ts +0 -17
- package/dist/selection/double-click-trim.js +0 -57
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -29
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -75
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The blank line a list whose first item is
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* to fold it into. A content-bearing list that stopped interrupting is the absorb's case.
|
|
2
|
+
* The blank line a list whose first item is empty must have between it and the paragraph
|
|
3
|
+
* directly above: a marker with no content cannot interrupt a paragraph (CommonMark § 5.2), so
|
|
4
|
+
* without it those bytes reload as a setext heading.
|
|
6
5
|
*/
|
|
7
6
|
import type { CstNode } from '../../core/nodes';
|
|
7
|
+
/** Whether the child at `index` is a list no reload could read back where it stands. */
|
|
8
|
+
export declare function lacksSublistSeparator(children: readonly CstNode[], index: number): boolean;
|
|
8
9
|
/**
|
|
9
|
-
* Give the child at `index` its separating line when it is a list no reload could read back
|
|
10
|
-
*
|
|
11
|
-
* raw rebuild may call it unconditionally.
|
|
10
|
+
* Give the child at `index` its separating line when it is a list no reload could read back, so
|
|
11
|
+
* any splice or rebuild may call it unconditionally. The child must be owned by the live tree.
|
|
12
12
|
*/
|
|
13
13
|
export declare function settleSublistSeparator(children: CstNode[], index: number): void;
|
|
@@ -1,34 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The blank line a list whose first item is
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* to fold it into. A content-bearing list that stopped interrupting is the absorb's case.
|
|
2
|
+
* The blank line a list whose first item is empty must have between it and the paragraph
|
|
3
|
+
* directly above: a marker with no content cannot interrupt a paragraph (CommonMark § 5.2), so
|
|
4
|
+
* without it those bytes reload as a setext heading.
|
|
6
5
|
*/
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
const EMPTY_MARKER_LINE = /^ {0,3}(?:[-*+]|\d{1,9}[.)])[ \t]+$/;
|
|
13
|
-
/**
|
|
14
|
-
* Give the child at `index` its separating line when it is a list no reload could read back.
|
|
15
|
-
* Idempotent, and a no-op for every child that already stands apart, so a nesting splice or a
|
|
16
|
-
* raw rebuild may call it unconditionally.
|
|
17
|
-
*/
|
|
18
|
-
export function settleSublistSeparator(children, index) {
|
|
6
|
+
import { firstDisplayLine, isBlankText, ownTrailingLineEnding } from '../../core/lines';
|
|
7
|
+
import { isContentlessItemLine } from '../../core/parsers/list';
|
|
8
|
+
/** Whether the child at `index` is a list no reload could read back where it stands. */
|
|
9
|
+
export function lacksSublistSeparator(children, index) {
|
|
19
10
|
const list = children[index];
|
|
20
11
|
const above = children[index - 1];
|
|
21
12
|
if (!list || list.kind !== 'list' || list.leadingTrivia !== '')
|
|
22
|
-
return;
|
|
23
|
-
if (!above || above.kind !== 'paragraph' || above.raw
|
|
24
|
-
return;
|
|
25
|
-
|
|
26
|
-
return;
|
|
27
|
-
list.leadingTrivia = trailingLineEnding(above.raw);
|
|
13
|
+
return false;
|
|
14
|
+
if (!above || above.kind !== 'paragraph' || isBlankText(above.raw))
|
|
15
|
+
return false;
|
|
16
|
+
return isContentlessItemLine(firstDisplayLine(list.raw).text);
|
|
28
17
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Give the child at `index` its separating line when it is a list no reload could read back, so
|
|
20
|
+
* any splice or rebuild may call it unconditionally. The child must be owned by the live tree.
|
|
21
|
+
*/
|
|
22
|
+
export function settleSublistSeparator(children, index) {
|
|
23
|
+
if (!lacksSublistSeparator(children, index))
|
|
24
|
+
return;
|
|
25
|
+
// The paragraph above has the list below it, so it closes its line with the document's ending.
|
|
26
|
+
children[index].leadingTrivia = ownTrailingLineEnding(children[index - 1].raw);
|
|
34
27
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How one block's bytes read back in place. A task item's first paragraph starts right after the
|
|
3
|
+
* marker, so a write reads its text as the parser reads the item body (GFM task lists); a live
|
|
4
|
+
* rewrite's check reads a list item's first block behind its whole marker line. Everywhere else
|
|
5
|
+
* it is a plain fragment.
|
|
6
|
+
*/
|
|
7
|
+
import { type Document } from '../../core/nodes';
|
|
8
|
+
import type { DocumentView, NodeView } from '../../core/node-views';
|
|
9
|
+
import type { GrammarView } from '../../schema/block-openers';
|
|
10
|
+
export type FragmentReader = (text: string) => Document;
|
|
11
|
+
/** Whether the block at `index` under `owner` is the paragraph a task marker stands in front of. */
|
|
12
|
+
export declare function followsTaskMarker(owner: NodeView | undefined, index: number): boolean;
|
|
13
|
+
export declare function fragmentReaderAt(owner: NodeView | undefined, index: number, grammar: GrammarView): FragmentReader;
|
|
14
|
+
/** `text` read as the list item `owner` reads its first block, behind its marker line; null when
|
|
15
|
+
* that is not one item or changes its task state (a marker widened over a space is still one). */
|
|
16
|
+
export declare function readThroughItemMarker(owner: NodeView, text: string, grammar: GrammarView): Document | null;
|
|
17
|
+
/** A child slot: the block holding it (none at the document's top level) and its index there. */
|
|
18
|
+
export interface ChildSlot {
|
|
19
|
+
owner: NodeView | undefined;
|
|
20
|
+
index: number;
|
|
21
|
+
}
|
|
22
|
+
/** The slot a document path names. */
|
|
23
|
+
export declare function childSlotAt(doc: DocumentView, path: readonly number[]): ChildSlot;
|
|
24
|
+
/** {@link fragmentReaderAt} for the slot a document path names. */
|
|
25
|
+
export declare function slotReaderAt(doc: DocumentView, path: readonly number[], grammar: GrammarView): FragmentReader;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How one block's bytes read back in place. A task item's first paragraph starts right after the
|
|
3
|
+
* marker, so a write reads its text as the parser reads the item body (GFM task lists); a live
|
|
4
|
+
* rewrite's check reads a list item's first block behind its whole marker line. Everywhere else
|
|
5
|
+
* it is a plain fragment.
|
|
6
|
+
*/
|
|
7
|
+
import { makeBlockNode, metadataOf } from '../../core/nodes';
|
|
8
|
+
import { blockNodeAt } from '../node-primitives';
|
|
9
|
+
import { readBlocks, parseTaskItemBody } from '../../core/parser';
|
|
10
|
+
import { rebuildListItemRaw } from '../../schema/container-rebuilders';
|
|
11
|
+
/** Whether the block at `index` under `owner` is the paragraph a task marker stands in front of. */
|
|
12
|
+
export function followsTaskMarker(owner, index) {
|
|
13
|
+
return (index === 0 && owner?.kind === 'listItem' && metadataOf(owner, 'listItem')?.taskItem === true);
|
|
14
|
+
}
|
|
15
|
+
export function fragmentReaderAt(owner, index, grammar) {
|
|
16
|
+
// Fragment scope: these are one block's bytes, so a kind that depends on document position
|
|
17
|
+
// must not be produced here.
|
|
18
|
+
return followsTaskMarker(owner, index)
|
|
19
|
+
? (text) => parseTaskItemBody(text, grammar)
|
|
20
|
+
: (text) => readBlocks(text, { grammar, scope: 'fragment' });
|
|
21
|
+
}
|
|
22
|
+
/** `text` read as the list item `owner` reads its first block, behind its marker line; null when
|
|
23
|
+
* that is not one item or changes its task state (a marker widened over a space is still one). */
|
|
24
|
+
export function readThroughItemMarker(owner, text, grammar) {
|
|
25
|
+
const meta = metadataOf(owner, 'listItem');
|
|
26
|
+
const probe = makeBlockNode({
|
|
27
|
+
kind: 'listItem',
|
|
28
|
+
leadingTrivia: '',
|
|
29
|
+
raw: '',
|
|
30
|
+
metadata: { ...meta },
|
|
31
|
+
children: [makeBlockNode({ kind: 'paragraph', leadingTrivia: '', raw: text })]
|
|
32
|
+
});
|
|
33
|
+
rebuildListItemRaw(probe);
|
|
34
|
+
const lists = readBlocks(probe.raw, { grammar, scope: 'fragment' }).children;
|
|
35
|
+
const items = lists.length === 1 && lists[0].kind === 'list' ? (lists[0].children ?? []) : [];
|
|
36
|
+
const item = items.length === 1 && items[0].kind === 'listItem' ? items[0] : null;
|
|
37
|
+
if (!item)
|
|
38
|
+
return null;
|
|
39
|
+
const read = metadataOf(item, 'listItem');
|
|
40
|
+
if (read.taskItem !== meta.taskItem || read.taskChecked !== meta.taskChecked)
|
|
41
|
+
return null;
|
|
42
|
+
return { kind: 'document', prefix: '', children: item.children ?? [], suffix: '' };
|
|
43
|
+
}
|
|
44
|
+
/** The slot a document path names. */
|
|
45
|
+
export function childSlotAt(doc, path) {
|
|
46
|
+
const found = path.length > 1 ? blockNodeAt(doc, path.slice(0, -1)) : null;
|
|
47
|
+
const owner = found ?? undefined;
|
|
48
|
+
return { owner, index: path[path.length - 1] };
|
|
49
|
+
}
|
|
50
|
+
/** {@link fragmentReaderAt} for the slot a document path names. */
|
|
51
|
+
export function slotReaderAt(doc, path, grammar) {
|
|
52
|
+
const { owner, index } = childSlotAt(doc, path);
|
|
53
|
+
return fragmentReaderAt(owner, index, grammar);
|
|
54
|
+
}
|
|
@@ -1,27 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* indent and keep ordered-marker sequences intact.
|
|
2
|
+
* Unwrapping a list's first item, and merging a later item into the deepest text leaf of the one
|
|
3
|
+
* before it. Both keep each block's absolute indent and the ordered-marker sequence.
|
|
5
4
|
*/
|
|
6
5
|
import type { CstNode } from '../../core/nodes';
|
|
7
6
|
import type { NodeView } from '../../core/node-views';
|
|
8
|
-
import type {
|
|
9
|
-
import type { InlineResolverRef } from '../../schema/inline-construct-policy';
|
|
7
|
+
import type { Reading } from '../../schema/reading';
|
|
10
8
|
import type { SharingState } from '../sharing';
|
|
11
9
|
/**
|
|
12
|
-
* Unwrap a list's first item
|
|
13
|
-
*
|
|
14
|
-
* sub-list items prepended and ordered markers renumbered.
|
|
10
|
+
* Unwrap a list's first item without mutating the input: the item's other children lifted out,
|
|
11
|
+
* then the rest of the list with the promoted sub-list items first.
|
|
15
12
|
*/
|
|
16
13
|
export declare function unwrapFirstItemFromList(list: NodeView): CstNode[];
|
|
17
|
-
/**
|
|
18
|
-
*
|
|
19
|
-
|
|
20
|
-
* `targetPath`'s trailing index is the LAST paragraph in the target item, not always 0.
|
|
21
|
-
* Null when the previous item exposes only an opaque deepest leaf — that is a legitimate
|
|
22
|
-
* outcome the caller falls back from, unlike a bad `currentIndex`, which throws.
|
|
23
|
-
*/
|
|
24
|
-
export declare function mergeListItemIntoPrevious(list: CstNode, children: CstNode[], currentIndex: number, sharing: SharingState | undefined, presentationMode: PresentationMode | undefined, linkRef: InlineResolverRef | undefined): {
|
|
14
|
+
/** Merge the item at `currentIndex` into the preceding item's last prose leaf, mutating `list`;
|
|
15
|
+
* null when there is nothing to join, and the caller falls back. A bad `currentIndex` throws. */
|
|
16
|
+
export declare function mergeListItemIntoPrevious(list: CstNode, children: CstNode[], currentIndex: number, sharing: SharingState | undefined, reading: Reading): {
|
|
25
17
|
mergePoint: {
|
|
26
18
|
targetPath: number[];
|
|
27
19
|
offset: number;
|
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* indent and keep ordered-marker sequences intact.
|
|
2
|
+
* Unwrapping a list's first item, and merging a later item into the deepest text leaf of the one
|
|
3
|
+
* before it. Both keep each block's absolute indent and the ordered-marker sequence.
|
|
5
4
|
*/
|
|
6
5
|
import { metadataOf } from '../../core/nodes';
|
|
7
6
|
import { trailingLineEnding } from '../../core/lines';
|
|
8
|
-
import {
|
|
7
|
+
import { joinIntoLeaf } from '../node-ops';
|
|
9
8
|
import { cloneMetadata, cloneNode } from '../clone';
|
|
10
9
|
import { rebuildAncestryRaw } from '../../schema/container-raw';
|
|
11
10
|
import { rebuildListRaw } from '../../schema/container-rebuilders';
|
|
12
11
|
import { walkToDeepestMergeLeaf } from '../../schema/merge-rules';
|
|
13
12
|
import { orderedBaseOf, renumberOrderedList, renumberOrderedListFrom } from './ordered-markers';
|
|
14
13
|
import { partitionItemChildren } from './item-partition';
|
|
15
|
-
import { ensureUnsharedChild, ensureUnsharedNode
|
|
14
|
+
import { ensureUnsharedChild, ensureUnsharedNode } from '../unshare';
|
|
16
15
|
import { assignIds } from '../../block-id';
|
|
17
16
|
import { pushChild } from '../children';
|
|
18
17
|
/**
|
|
19
|
-
* Unwrap a list's first item
|
|
20
|
-
*
|
|
21
|
-
* sub-list items prepended and ordered markers renumbered.
|
|
18
|
+
* Unwrap a list's first item without mutating the input: the item's other children lifted out,
|
|
19
|
+
* then the rest of the list with the promoted sub-list items first.
|
|
22
20
|
*/
|
|
23
21
|
export function unwrapFirstItemFromList(list) {
|
|
24
22
|
if (list.kind !== 'list' || !list.children || list.children.length === 0) {
|
|
@@ -27,7 +25,6 @@ export function unwrapFirstItemFromList(list) {
|
|
|
27
25
|
const parentOrdered = metadataOf(list, 'list')?.ordered ?? false;
|
|
28
26
|
const firstItem = list.children[0];
|
|
29
27
|
if (!firstItem.children || firstItem.children.length === 0) {
|
|
30
|
-
// Empty item: nothing to lift, so return the shrunk list.
|
|
31
28
|
const clonedList = cloneNode(list);
|
|
32
29
|
const rest = clonedList.children.slice(1);
|
|
33
30
|
if (rest.length === 0)
|
|
@@ -64,7 +61,7 @@ export function unwrapFirstItemFromList(list) {
|
|
|
64
61
|
liftedBlocks.push(remainingList);
|
|
65
62
|
return liftedBlocks;
|
|
66
63
|
}
|
|
67
|
-
/**
|
|
64
|
+
/** The merge target's path; null when no prose leaf is reachable. */
|
|
68
65
|
function findDeepestVisibleTextTarget(list, targetItemIndex) {
|
|
69
66
|
if (!list.children || targetItemIndex < 0 || targetItemIndex >= list.children.length) {
|
|
70
67
|
return null;
|
|
@@ -74,9 +71,8 @@ function findDeepestVisibleTextTarget(list, targetItemIndex) {
|
|
|
74
71
|
return result ? result.path : null;
|
|
75
72
|
}
|
|
76
73
|
/**
|
|
77
|
-
* The
|
|
78
|
-
*
|
|
79
|
-
* (path length >= 4). Unshares the list it resolves.
|
|
74
|
+
* The last list child of the merge target's top-level item, where a deep target's nested items
|
|
75
|
+
* go to keep their indent. Unshares the list it resolves.
|
|
80
76
|
*/
|
|
81
77
|
function depthOneListFor(list, targetPath, sharing) {
|
|
82
78
|
if (targetPath.length < 4)
|
|
@@ -93,13 +89,10 @@ function depthOneListFor(list, targetPath, sharing) {
|
|
|
93
89
|
return depthOneList.children ? depthOneList : null;
|
|
94
90
|
}
|
|
95
91
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
* deeper, everything else absorbs into the target item. Children are MOVED into the live
|
|
99
|
-
* tree and unshared individually, so the snapshot's view of the deleted item stays intact
|
|
100
|
-
* (G1.9).
|
|
92
|
+
* Move the merged item's remaining children to where they keep their absolute indent, copying each
|
|
93
|
+
* first so the undo entry's deleted item stays intact.
|
|
101
94
|
*/
|
|
102
|
-
function relocateRemainingChildren(list, targetPath, targetItem, currentItem,
|
|
95
|
+
function relocateRemainingChildren(list, targetPath, targetItem, currentItem, sharing) {
|
|
103
96
|
const remainingChildren = currentItem
|
|
104
97
|
.children.slice(1)
|
|
105
98
|
.map((c) => (sharing ? ensureUnsharedNode(c, sharing) : c));
|
|
@@ -110,93 +103,65 @@ function relocateRemainingChildren(list, targetPath, targetItem, currentItem, li
|
|
|
110
103
|
for (let i = 0; i < child.children.length; i++) {
|
|
111
104
|
const item = sharing ? ensureUnsharedChild(child, i, sharing) : child.children[i];
|
|
112
105
|
item.leadingTrivia = '';
|
|
113
|
-
//
|
|
106
|
+
// An in-place write on a descendant found by walking, see the `node-primitives.ts` header.
|
|
114
107
|
pushChild(depthOneList, item);
|
|
115
108
|
}
|
|
116
109
|
rebuildListRaw(depthOneList);
|
|
117
110
|
continue;
|
|
118
111
|
}
|
|
119
|
-
//
|
|
112
|
+
// An in-place write on a descendant found by walking, see the `node-primitives.ts` header.
|
|
120
113
|
pushChild(targetItem, child);
|
|
121
114
|
}
|
|
122
115
|
else {
|
|
123
|
-
//
|
|
124
|
-
//
|
|
125
|
-
child.leadingTrivia = child.kind === 'paragraph' ? lineEnding : '';
|
|
126
|
-
// discovered-descendant mutation, see node-primitives.ts header
|
|
116
|
+
// The child keeps its own blank line: the joined text above it ends the way the text it
|
|
117
|
+
// followed did. An in-place write on a descendant, see the `node-primitives.ts` header.
|
|
127
118
|
pushChild(targetItem, child);
|
|
128
119
|
}
|
|
129
120
|
}
|
|
130
121
|
}
|
|
131
|
-
/**
|
|
132
|
-
*
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
* outcome the caller falls back from, unlike a bad `currentIndex`, which throws.
|
|
137
|
-
*/
|
|
138
|
-
export function mergeListItemIntoPrevious(list, children, currentIndex, sharing, presentationMode, linkRef) {
|
|
139
|
-
// Targeting may read `list.children`, but the final splice MUST land in `children`
|
|
140
|
-
// (`node-ops.ts` header).
|
|
122
|
+
/** Merge the item at `currentIndex` into the preceding item's last prose leaf, mutating `list`;
|
|
123
|
+
* null when there is nothing to join, and the caller falls back. A bad `currentIndex` throws. */
|
|
124
|
+
export function mergeListItemIntoPrevious(list, children, currentIndex, sharing, reading) {
|
|
125
|
+
// Targeting may read `list.children`, but the final splice must land in `children`
|
|
126
|
+
// (`node-primitives.ts` header).
|
|
141
127
|
if (list.kind !== 'list' ||
|
|
142
128
|
!list.children ||
|
|
143
129
|
currentIndex <= 0 ||
|
|
144
130
|
currentIndex >= children.length) {
|
|
145
131
|
throw new Error(`mergeListItemIntoPrevious: invalid currentIndex ${currentIndex}`);
|
|
146
132
|
}
|
|
147
|
-
const
|
|
148
|
-
const targetPath = findDeepestVisibleTextTarget(list, previousIndex);
|
|
133
|
+
const targetPath = findDeepestVisibleTextTarget(list, currentIndex - 1);
|
|
149
134
|
if (!targetPath)
|
|
150
135
|
return null;
|
|
151
|
-
// Before any capture: the walk below must see the owned copies, and the target
|
|
152
|
-
// paragraph's raw is written in place.
|
|
153
|
-
if (sharing)
|
|
154
|
-
ensureUnsharedPath({ children: list.children }, targetPath, sharing);
|
|
155
|
-
let targetItem = list;
|
|
156
|
-
for (let i = 0; i < targetPath.length - 1; i++) {
|
|
157
|
-
targetItem = targetItem.children[targetPath[i]];
|
|
158
|
-
}
|
|
159
|
-
// A loose item's walker ends past 0, so reading children[0] would mutate the wrong
|
|
160
|
-
// paragraph.
|
|
161
|
-
const targetParagraphIndex = targetPath[targetPath.length - 1];
|
|
162
|
-
const targetParagraph = targetItem.children?.[targetParagraphIndex];
|
|
163
|
-
if (!targetParagraph || targetParagraph.kind !== 'paragraph') {
|
|
164
|
-
throw new Error('mergeListItemIntoPrevious: target path does not end at a paragraph');
|
|
165
|
-
}
|
|
166
|
-
const targetOriginalText = (targetParagraph.raw ?? '').replace(/\r?\n$/, '');
|
|
167
136
|
const currentItem = children[currentIndex];
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
const
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
mergedRaw: targetOriginalText + currentFirstText,
|
|
180
|
-
seam: targetOriginalText.length,
|
|
181
|
-
start: { node: targetParagraph, offset: targetOriginalText.length },
|
|
182
|
-
end: { node: currentFirstParagraph, offset: 0 },
|
|
183
|
-
linkRef
|
|
184
|
-
}, presentationMode);
|
|
185
|
-
// The caret rides the CLEANED seam: a run dropped on the target's side moves where the
|
|
186
|
-
// two halves met.
|
|
187
|
-
const mergeOffset = joined.seam;
|
|
188
|
-
targetParagraph.raw = joined.raw + lineEnding;
|
|
189
|
-
relocateRemainingChildren(list, targetPath, targetItem, currentItem, lineEnding, sharing);
|
|
137
|
+
const absorbed = currentItem.children?.[0];
|
|
138
|
+
if (absorbed?.kind !== 'paragraph')
|
|
139
|
+
return null;
|
|
140
|
+
// The target has the current item below it, so it closes its line with the document's ending.
|
|
141
|
+
const lineEnding = trailingLineEnding(nodeAt(list, targetPath).raw, '\n');
|
|
142
|
+
const body = { children: list.children, owner: list, lineEnding };
|
|
143
|
+
const joined = joinIntoLeaf(body, targetPath, absorbed, reading, sharing);
|
|
144
|
+
if (!joined)
|
|
145
|
+
return null;
|
|
146
|
+
const targetItem = nodeAt(list, targetPath.slice(0, -1));
|
|
147
|
+
relocateRemainingChildren(list, targetPath, targetItem, currentItem, sharing);
|
|
190
148
|
children.splice(currentIndex, 1);
|
|
191
149
|
// So the post-splice reads below see the new shape; idempotent with the commit's
|
|
192
|
-
// final
|
|
150
|
+
// final write to state.
|
|
193
151
|
list.children = children;
|
|
194
|
-
rebuildAncestryRaw(list, targetPath);
|
|
152
|
+
rebuildAncestryRaw(list, targetPath, reading.grammar);
|
|
195
153
|
if (metadataOf(list, 'list')?.ordered) {
|
|
196
|
-
//
|
|
154
|
+
// The merge only removes a non-first item, so children[0] keeps the list's starting number;
|
|
197
155
|
// renumber from 1 to continue it rather than resetting the sequence.
|
|
198
156
|
renumberOrderedList(list, 1, sharing);
|
|
199
157
|
rebuildListRaw(list);
|
|
200
158
|
}
|
|
201
|
-
return { mergePoint: { targetPath, offset:
|
|
159
|
+
return { mergePoint: { targetPath, offset: joined.joinOffset } };
|
|
160
|
+
}
|
|
161
|
+
/** The node at `path` below `root`, re-read through the tree. */
|
|
162
|
+
function nodeAt(root, path) {
|
|
163
|
+
let node = root;
|
|
164
|
+
for (const index of path)
|
|
165
|
+
node = node.children[index];
|
|
166
|
+
return node;
|
|
202
167
|
}
|
|
@@ -1,79 +1,57 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* the settle around them is the ceremony's (`settle.ts`).
|
|
2
|
+
* Split and merge, the two operations that re-divide a body's blocks around a caret. They mutate
|
|
3
|
+
* and report; the commit recomputes the separators around them.
|
|
5
4
|
*/
|
|
6
|
-
import {
|
|
5
|
+
import type { CstNode } from '../core/nodes';
|
|
7
6
|
import type { NodeView } from '../core/node-views';
|
|
8
|
-
import type {
|
|
9
|
-
import { type CleanedJoin, type InlineResolverRef, type JoinSeam } from '../schema/inline-construct-policy';
|
|
10
|
-
import type { PresentationMode } from '../presentation-mode';
|
|
7
|
+
import type { Reading } from '../schema/reading';
|
|
11
8
|
import type { SharingState } from './sharing';
|
|
12
9
|
import { type StructuralChange } from './structural-change';
|
|
13
|
-
import { type BodyParentArg
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
import { type BodyParentArg } from './node-primitives';
|
|
11
|
+
import { type FragmentReader } from './list/task-paragraph';
|
|
12
|
+
/** What a split reports: the structural splice, plus where the second half's head ended up,
|
|
13
|
+
* past `blockIndex + 1` when the first half reparsed to several blocks. */
|
|
16
14
|
export interface SplitResult {
|
|
17
15
|
change: StructuralChange;
|
|
18
16
|
secondHalfIndex: number;
|
|
19
17
|
}
|
|
20
18
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*/
|
|
24
|
-
export declare function assertSplitLanding(split: SplitResult, landing: number): void;
|
|
25
|
-
/**
|
|
26
|
-
* What a one-slot sink is about to put in its slot, held to one node (G1.35). Asked at the WRITE
|
|
27
|
-
* with the nodes being written, so the guard answers for sink N+1.
|
|
19
|
+
* A write target that holds one block must receive exactly one; checking at the write means a
|
|
20
|
+
* new write target inherits the check (G1.35).
|
|
28
21
|
*/
|
|
29
22
|
export declare function assertSingleNodeSink(sink: string, installed: readonly CstNode[]): void;
|
|
30
23
|
/**
|
|
31
|
-
* Split the node at `blockIndex` at
|
|
32
|
-
*
|
|
33
|
-
* blank separator wherever one does structural work ({@link separatorSplitsOffNextLine}).
|
|
24
|
+
* Split the node at `blockIndex` at `offset`; the first half keeps the ID and any setext underline.
|
|
25
|
+
* A caller moving the second half elsewhere passes `readSecondHalf` for that position.
|
|
34
26
|
*/
|
|
35
|
-
export declare function splitNode(parent: BodyParentArg, blockIndex: number, offset: number, sharing: SharingState | undefined,
|
|
36
|
-
/**
|
|
37
|
-
*
|
|
38
|
-
* (live-mode.md § 4.5). The one registered cleaner verifies its own bytes and otherwise declines,
|
|
39
|
-
* leaving the literal join every other mode gets. Every destructive join crosses this door.
|
|
40
|
-
*/
|
|
41
|
-
export declare function cleanJoinedRaw(join: JoinSeam, presentationMode: PresentationMode | undefined): CleanedJoin;
|
|
42
|
-
/**
|
|
43
|
-
* The bytes a single-block edit leaves when it deletes `range` out of `display`. A delete-then-
|
|
44
|
-
* insert is a join like any other, so it crosses the same cleanup, and the returned offset is
|
|
45
|
-
* where the two sides now meet.
|
|
46
|
-
*/
|
|
47
|
-
export declare function cutRangeFromDisplay(node: NodeView, display: string, range: {
|
|
48
|
-
start: number;
|
|
49
|
-
end: number;
|
|
50
|
-
}, presentationMode: PresentationMode | undefined, linkRef: InlineResolverRef | undefined): {
|
|
51
|
-
display: string;
|
|
52
|
-
offset: number;
|
|
53
|
-
};
|
|
54
|
-
/** What a join leaves the caret: the structural splice, plus where the two blocks met in the
|
|
55
|
-
* survivor's bytes, which a seam cleanup moves when it drops a run on the first block's side. */
|
|
27
|
+
export declare function splitNode(parent: BodyParentArg, blockIndex: number, offset: number, sharing: SharingState | undefined, reading: Reading, readSecondHalf?: FragmentReader): SplitResult;
|
|
28
|
+
/** What a join reports: the structural splice, plus where the two blocks met in the survivor's
|
|
29
|
+
* bytes, which the join cleanup moves when it drops a run on the first block's side. */
|
|
56
30
|
export interface MergeResult {
|
|
57
31
|
change: StructuralChange;
|
|
58
32
|
joinOffset: number;
|
|
59
33
|
}
|
|
60
|
-
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*/
|
|
34
|
+
/** Where the join landed: the block at `index` in the parent, and the leaf at `targetPath` below
|
|
35
|
+
* it (empty when that block is the leaf). The index is `blockIndex - 1` unless the fix-up after
|
|
36
|
+
* the delete merged that block into the one above it. */
|
|
64
37
|
export interface MergeIntoPrevResult {
|
|
38
|
+
index: number;
|
|
65
39
|
targetPath: number[];
|
|
66
40
|
joinOffset: number;
|
|
67
41
|
change: StructuralChange;
|
|
68
42
|
}
|
|
43
|
+
/** Join `absorbed`'s text onto the end of the leaf at `path`, leaving `absorbed` for the caller to
|
|
44
|
+
* remove; null, writing nothing, when the joined bytes read as several blocks. */
|
|
45
|
+
export declare function joinIntoLeaf(parent: BodyParentArg, path: readonly number[], absorbed: NodeView, reading: Reading, sharing: SharingState | undefined): {
|
|
46
|
+
joinOffset: number;
|
|
47
|
+
} | null;
|
|
69
48
|
/**
|
|
70
|
-
* Merge `curr` into
|
|
71
|
-
*
|
|
72
|
-
* no mergeable leaf exists, so the caller can fall back to move-focus.
|
|
49
|
+
* Merge `curr` into `prev`'s deepest prose leaf, writing into the leaf so it keeps its component
|
|
50
|
+
* and IME state. Null when no leaf can take it, so the caller moves focus instead.
|
|
73
51
|
*/
|
|
74
|
-
export declare function mergeIntoPrevDeepLeaf(parent: BodyParentArg, blockIndex: number, sharing: SharingState | undefined,
|
|
52
|
+
export declare function mergeIntoPrevDeepLeaf(parent: BodyParentArg, blockIndex: number, sharing: SharingState | undefined, reading: Reading): MergeIntoPrevResult | null;
|
|
75
53
|
/**
|
|
76
|
-
* Merge the node at `blockIndex` with its successor
|
|
77
|
-
* merged block
|
|
54
|
+
* Merge the node at `blockIndex` with its successor through {@link joinIntoLeaf}, then remove the
|
|
55
|
+
* successor. The merged block keeps the current block's ID. Noop at the tail or on a refused join.
|
|
78
56
|
*/
|
|
79
|
-
export declare function mergeWithNext(parent:
|
|
57
|
+
export declare function mergeWithNext(parent: BodyParentArg, blockIndex: number, reading: Reading, sharing: SharingState | undefined): MergeResult;
|