@voithos-labs/aragonite 0.10.1
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/LICENSE +661 -0
- package/README.md +365 -0
- package/THIRD-PARTY-NOTICES.md +102 -0
- package/dist/a11y-strings.d.ts +46 -0
- package/dist/a11y-strings.js +62 -0
- package/dist/action-contracts.d.ts +301 -0
- package/dist/action-contracts.js +5 -0
- package/dist/active-editor.d.ts +16 -0
- package/dist/active-editor.js +67 -0
- package/dist/ambient/ambient-cursor.d.ts +41 -0
- package/dist/ambient/ambient-cursor.js +120 -0
- package/dist/ambient/ambient-dom.d.ts +9 -0
- package/dist/ambient/ambient-dom.js +102 -0
- package/dist/assert.d.ts +6 -0
- package/dist/assert.js +17 -0
- package/dist/block-component.d.ts +274 -0
- package/dist/block-component.js +43 -0
- package/dist/block-id.d.ts +14 -0
- package/dist/block-id.js +34 -0
- package/dist/bounded-memo.d.ts +14 -0
- package/dist/bounded-memo.js +32 -0
- package/dist/components/BlockDragHandle.svelte +66 -0
- package/dist/components/BlockDragHandle.svelte.d.ts +18 -0
- package/dist/components/BlockHost.svelte +328 -0
- package/dist/components/BlockHost.svelte.d.ts +15 -0
- package/dist/components/BlockList.svelte +114 -0
- package/dist/components/BlockList.svelte.d.ts +16 -0
- package/dist/components/DecorationOverlay.svelte +156 -0
- package/dist/components/DecorationOverlay.svelte.d.ts +14 -0
- package/dist/components/Editor.svelte +1849 -0
- package/dist/components/Editor.svelte.d.ts +49 -0
- package/dist/components/GapCaret.svelte +226 -0
- package/dist/components/GapCaret.svelte.d.ts +9 -0
- package/dist/components/SearchBar.svelte +243 -0
- package/dist/components/SearchBar.svelte.d.ts +7 -0
- package/dist/components/SelectionOverlay.svelte +171 -0
- package/dist/components/SelectionOverlay.svelte.d.ts +14 -0
- package/dist/components/block-content-selector.d.ts +12 -0
- package/dist/components/block-content-selector.js +12 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +32 -0
- package/dist/components/blocks/BlockquoteBlock.svelte.d.ts +11 -0
- package/dist/components/blocks/ThematicBreakBlock.svelte +156 -0
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +17 -0
- package/dist/components/blocks/code/CodeBlock.svelte +726 -0
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +23 -0
- package/dist/components/blocks/code/CodeLanguageChip.svelte +127 -0
- package/dist/components/blocks/code/CodeLanguageChip.svelte.d.ts +14 -0
- package/dist/components/blocks/code/code-beforeinput.d.ts +30 -0
- package/dist/components/blocks/code/code-beforeinput.js +40 -0
- package/dist/components/blocks/code/code-bootstrap.d.ts +8 -0
- package/dist/components/blocks/code/code-bootstrap.js +54 -0
- package/dist/components/blocks/code/code-editing.d.ts +28 -0
- package/dist/components/blocks/code/code-editing.js +79 -0
- package/dist/components/blocks/code/code-enter.d.ts +22 -0
- package/dist/components/blocks/code/code-enter.js +19 -0
- package/dist/components/blocks/code/code-fence-boundary.d.ts +77 -0
- package/dist/components/blocks/code/code-fence-boundary.js +169 -0
- package/dist/components/blocks/code/code-fence-exit.d.ts +24 -0
- package/dist/components/blocks/code/code-fence-exit.js +36 -0
- package/dist/components/blocks/code/code-indent.d.ts +14 -0
- package/dist/components/blocks/code/code-indent.js +87 -0
- package/dist/components/blocks/code/code-languages.d.ts +15 -0
- package/dist/components/blocks/code/code-languages.js +30 -0
- package/dist/components/blocks/code/code-paste-surface.d.ts +6 -0
- package/dist/components/blocks/code/code-paste-surface.js +29 -0
- package/dist/components/blocks/code/code-paste.d.ts +24 -0
- package/dist/components/blocks/code/code-paste.js +21 -0
- package/dist/components/blocks/code/code-renderer.d.ts +18 -0
- package/dist/components/blocks/code/code-renderer.js +249 -0
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +51 -0
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte.d.ts +11 -0
- package/dist/components/blocks/directive/activate-directives.d.ts +7 -0
- package/dist/components/blocks/directive/activate-directives.js +23 -0
- package/dist/components/blocks/editable-leaf.d.ts +126 -0
- package/dist/components/blocks/editable-leaf.js +410 -0
- package/dist/components/blocks/editable-surface.d.ts +209 -0
- package/dist/components/blocks/editable-surface.js +331 -0
- package/dist/components/blocks/list/ListBlock.svelte +162 -0
- package/dist/components/blocks/list/ListBlock.svelte.d.ts +11 -0
- package/dist/components/blocks/list/ListItemBlock.svelte +324 -0
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +14 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +3 -0
- package/dist/components/blocks/list/task-checkbox.js +33 -0
- package/dist/components/blocks/plain-text-backend.d.ts +21 -0
- package/dist/components/blocks/plain-text-backend.js +47 -0
- package/dist/components/blocks/surface-wiring.svelte.d.ts +18 -0
- package/dist/components/blocks/surface-wiring.svelte.js +68 -0
- package/dist/components/blocks/table/TableActionMenu.svelte +267 -0
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +15 -0
- package/dist/components/blocks/table/TableBlock.svelte +765 -0
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +30 -0
- package/dist/components/blocks/table/TableCellBlock.svelte +1075 -0
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +30 -0
- package/dist/components/blocks/table/TableGrip.svelte +91 -0
- package/dist/components/blocks/table/TableGrip.svelte.d.ts +8 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +233 -0
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +34 -0
- package/dist/components/blocks/table/cell-clipboard.d.ts +23 -0
- package/dist/components/blocks/table/cell-clipboard.js +34 -0
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +37 -0
- package/dist/components/blocks/table/cell-keydown-plan.js +66 -0
- package/dist/components/blocks/table/cell-pointer.d.ts +58 -0
- package/dist/components/blocks/table/cell-pointer.js +153 -0
- package/dist/components/blocks/table/cell-render.d.ts +51 -0
- package/dist/components/blocks/table/cell-render.js +98 -0
- package/dist/components/blocks/table/cell-table-commands.d.ts +12 -0
- package/dist/components/blocks/table/cell-table-commands.js +21 -0
- package/dist/components/blocks/table/cell-x-mapping.d.ts +6 -0
- package/dist/components/blocks/table/cell-x-mapping.js +16 -0
- package/dist/components/blocks/table/selected-cells.d.ts +19 -0
- package/dist/components/blocks/table/selected-cells.js +35 -0
- package/dist/components/blocks/table/table-caret-at-point.d.ts +8 -0
- package/dist/components/blocks/table/table-caret-at-point.js +35 -0
- package/dist/components/blocks/table/table-cell-paste.d.ts +16 -0
- package/dist/components/blocks/table/table-cell-paste.js +75 -0
- package/dist/components/blocks/table/table-drag-hit-test.d.ts +5 -0
- package/dist/components/blocks/table/table-drag-hit-test.js +20 -0
- package/dist/components/blocks/table/table-drop-target.d.ts +1 -0
- package/dist/components/blocks/table/table-drop-target.js +16 -0
- package/dist/components/blocks/table/table-menu-model.d.ts +52 -0
- package/dist/components/blocks/table/table-menu-model.js +78 -0
- package/dist/components/blocks/table/table-navigation.d.ts +8 -0
- package/dist/components/blocks/table/table-navigation.js +22 -0
- package/dist/components/blocks/table/table-reorder-drag.d.ts +78 -0
- package/dist/components/blocks/table/table-reorder-drag.js +97 -0
- package/dist/components/blocks/text/TextEditableBlock.svelte +1012 -0
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +33 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +8 -0
- package/dist/components/blocks/text/click-snap-guard.js +19 -0
- package/dist/components/blocks/text/composition-seat.d.ts +50 -0
- package/dist/components/blocks/text/composition-seat.js +65 -0
- package/dist/components/blocks/text/construct-edge-delete.d.ts +47 -0
- package/dist/components/blocks/text/construct-edge-delete.js +164 -0
- package/dist/components/blocks/text/construct-reveal.d.ts +39 -0
- package/dist/components/blocks/text/construct-reveal.js +164 -0
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +91 -0
- package/dist/components/blocks/text/edge-policy-dispatch.js +457 -0
- package/dist/components/blocks/text/edge-seat.d.ts +42 -0
- package/dist/components/blocks/text/edge-seat.js +197 -0
- package/dist/components/blocks/text/hidden-suffix.d.ts +10 -0
- package/dist/components/blocks/text/hidden-suffix.js +15 -0
- package/dist/components/blocks/text/link-at-point.d.ts +33 -0
- package/dist/components/blocks/text/link-at-point.js +47 -0
- package/dist/components/blocks/text/link-source-bytes.d.ts +37 -0
- package/dist/components/blocks/text/link-source-bytes.js +161 -0
- package/dist/components/blocks/text/live-join-seam.d.ts +15 -0
- package/dist/components/blocks/text/live-join-seam.js +327 -0
- package/dist/components/blocks/text/live-selection-edit.d.ts +68 -0
- package/dist/components/blocks/text/live-selection-edit.js +120 -0
- package/dist/components/blocks/text/live-split-rebalance.d.ts +56 -0
- package/dist/components/blocks/text/live-split-rebalance.js +239 -0
- package/dist/components/blocks/text/marker-completion.d.ts +18 -0
- package/dist/components/blocks/text/marker-completion.js +29 -0
- package/dist/components/blocks/text/pending-mark-insert.d.ts +37 -0
- package/dist/components/blocks/text/pending-mark-insert.js +188 -0
- package/dist/components/blocks/text/screen-diff.d.ts +20 -0
- package/dist/components/blocks/text/screen-diff.js +39 -0
- package/dist/components/blocks/text/text-clipboard.d.ts +70 -0
- package/dist/components/blocks/text/text-clipboard.js +131 -0
- package/dist/components/blocks/text/text-keydown.d.ts +39 -0
- package/dist/components/blocks/text/text-keydown.js +80 -0
- package/dist/components/blocks/text/text-render.d.ts +67 -0
- package/dist/components/blocks/text/text-render.js +215 -0
- package/dist/components/blocks/text/widget-adjacency.d.ts +30 -0
- package/dist/components/blocks/text/widget-adjacency.js +68 -0
- package/dist/components/blocks/text/widget-interaction.d.ts +90 -0
- package/dist/components/blocks/text/widget-interaction.js +591 -0
- package/dist/components/blocks/widget-portal.d.ts +54 -0
- package/dist/components/blocks/widget-portal.js +136 -0
- package/dist/components/built-in-blocks.d.ts +7 -0
- package/dist/components/built-in-blocks.js +77 -0
- package/dist/components/editor-root-clipboard.d.ts +29 -0
- package/dist/components/editor-root-clipboard.js +105 -0
- package/dist/components/editor-root-keydown.d.ts +47 -0
- package/dist/components/editor-root-keydown.js +88 -0
- package/dist/components/editor-root-listeners.d.ts +44 -0
- package/dist/components/editor-root-listeners.js +112 -0
- package/dist/components/image/ImageOverlayHost.svelte +115 -0
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +20 -0
- package/dist/components/image/ImageProperties.svelte +153 -0
- package/dist/components/image/ImageProperties.svelte.d.ts +14 -0
- package/dist/components/image/ImageResizeHandles.svelte +188 -0
- package/dist/components/image/ImageResizeHandles.svelte.d.ts +10 -0
- package/dist/components/image/image-edit-commit.d.ts +38 -0
- package/dist/components/image/image-edit-commit.js +159 -0
- package/dist/components/image/image-resize.d.ts +11 -0
- package/dist/components/image/image-resize.js +38 -0
- package/dist/components/image/image-source-bytes.d.ts +15 -0
- package/dist/components/image/image-source-bytes.js +73 -0
- package/dist/components/image/image-widget-editing.d.ts +7 -0
- package/dist/components/image/image-widget-editing.js +41 -0
- package/dist/components/image/widget-dom.d.ts +11 -0
- package/dist/components/image/widget-dom.js +110 -0
- package/dist/components/image/widget-selection-state.svelte.d.ts +18 -0
- package/dist/components/image/widget-selection-state.svelte.js +26 -0
- package/dist/components/link-card/LinkCard.svelte +190 -0
- package/dist/components/link-card/LinkCard.svelte.d.ts +18 -0
- package/dist/components/link-card/LinkCardHost.svelte +181 -0
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +25 -0
- package/dist/components/link-card/link-card-commit.d.ts +50 -0
- package/dist/components/link-card/link-card-commit.js +134 -0
- package/dist/components/link-card/link-card-entry.d.ts +39 -0
- package/dist/components/link-card/link-card-entry.js +51 -0
- package/dist/components/link-card/link-card-state.svelte.d.ts +44 -0
- package/dist/components/link-card/link-card-state.svelte.js +46 -0
- package/dist/components/lrd-map-gate.d.ts +18 -0
- package/dist/components/lrd-map-gate.js +22 -0
- package/dist/components/paste-image-arm.d.ts +29 -0
- package/dist/components/paste-image-arm.js +61 -0
- package/dist/components/portal.d.ts +11 -0
- package/dist/components/portal.js +29 -0
- package/dist/core/directive/activate.d.ts +8 -0
- package/dist/core/directive/activate.js +25 -0
- package/dist/core/directive/container-opener.d.ts +7 -0
- package/dist/core/directive/container-opener.js +162 -0
- package/dist/core/directive/grammar.d.ts +50 -0
- package/dist/core/directive/grammar.js +88 -0
- package/dist/core/directive/kinds.d.ts +31 -0
- package/dist/core/directive/kinds.js +137 -0
- package/dist/core/directive/registry.d.ts +39 -0
- package/dist/core/directive/registry.js +49 -0
- package/dist/core/directive/text-recognizer.d.ts +8 -0
- package/dist/core/directive/text-recognizer.js +87 -0
- package/dist/core/escapable.d.ts +6 -0
- package/dist/core/escapable.js +6 -0
- package/dist/core/inline/backticks.d.ts +16 -0
- package/dist/core/inline/backticks.js +62 -0
- package/dist/core/inline/character-refs.d.ts +7 -0
- package/dist/core/inline/character-refs.js +70 -0
- package/dist/core/inline/destination-bytes.d.ts +7 -0
- package/dist/core/inline/destination-bytes.js +14 -0
- package/dist/core/inline/entity-widget.d.ts +11 -0
- package/dist/core/inline/entity-widget.js +21 -0
- package/dist/core/inline/format-toggle.d.ts +50 -0
- package/dist/core/inline/format-toggle.js +533 -0
- package/dist/core/inline/html-entities.d.ts +8 -0
- package/dist/core/inline/html-entities.js +2134 -0
- package/dist/core/inline/html-tag-grammar.d.ts +16 -0
- package/dist/core/inline/html-tag-grammar.js +58 -0
- package/dist/core/inline/image-dimensions.d.ts +6 -0
- package/dist/core/inline/image-dimensions.js +42 -0
- package/dist/core/inline/index.d.ts +42 -0
- package/dist/core/inline/index.js +77 -0
- package/dist/core/inline/inline-cache.d.ts +20 -0
- package/dist/core/inline/inline-cache.js +28 -0
- package/dist/core/inline/inline-widgets.d.ts +124 -0
- package/dist/core/inline/inline-widgets.js +131 -0
- package/dist/core/inline/link-reference-resolver.d.ts +21 -0
- package/dist/core/inline/link-reference-resolver.js +46 -0
- package/dist/core/inline/raw-html-widget.d.ts +10 -0
- package/dist/core/inline/raw-html-widget.js +22 -0
- package/dist/core/inline/scan/autolinks.d.ts +23 -0
- package/dist/core/inline/scan/autolinks.js +354 -0
- package/dist/core/inline/scan/brackets.d.ts +11 -0
- package/dist/core/inline/scan/brackets.js +284 -0
- package/dist/core/inline/scan/code-spans.d.ts +7 -0
- package/dist/core/inline/scan/code-spans.js +27 -0
- package/dist/core/inline/scan/emphasis.d.ts +10 -0
- package/dist/core/inline/scan/emphasis.js +276 -0
- package/dist/core/inline/scan/index.d.ts +7 -0
- package/dist/core/inline/scan/index.js +176 -0
- package/dist/core/inline/scan/plugin-syntax.d.ts +62 -0
- package/dist/core/inline/scan/plugin-syntax.js +150 -0
- package/dist/core/inline/scan/scan-state.d.ts +47 -0
- package/dist/core/inline/scan/scan-state.js +48 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +14 -0
- package/dist/core/inline/scan/simple-nodes.js +53 -0
- package/dist/core/inline/scan/url.d.ts +12 -0
- package/dist/core/inline/scan/url.js +82 -0
- package/dist/core/inline/transparency.d.ts +8 -0
- package/dist/core/inline/transparency.js +39 -0
- package/dist/core/inline/visibility.d.ts +81 -0
- package/dist/core/inline/visibility.js +144 -0
- package/dist/core/inline/walk.d.ts +14 -0
- package/dist/core/inline/walk.js +29 -0
- package/dist/core/inline-render.d.ts +48 -0
- package/dist/core/inline-render.js +322 -0
- package/dist/core/lines.d.ts +44 -0
- package/dist/core/lines.js +91 -0
- package/dist/core/node-views.d.ts +22 -0
- package/dist/core/node-views.js +8 -0
- package/dist/core/nodes.d.ts +297 -0
- package/dist/core/nodes.js +83 -0
- package/dist/core/parser.d.ts +68 -0
- package/dist/core/parser.js +189 -0
- package/dist/core/parsers/blockquote.d.ts +17 -0
- package/dist/core/parsers/blockquote.js +69 -0
- package/dist/core/parsers/built-in-openers.d.ts +8 -0
- package/dist/core/parsers/built-in-openers.js +124 -0
- package/dist/core/parsers/fence-syntax.d.ts +24 -0
- package/dist/core/parsers/fence-syntax.js +44 -0
- package/dist/core/parsers/fenced-code.d.ts +7 -0
- package/dist/core/parsers/fenced-code.js +29 -0
- package/dist/core/parsers/heading.d.ts +3 -0
- package/dist/core/parsers/heading.js +6 -0
- package/dist/core/parsers/html-block.d.ts +17 -0
- package/dist/core/parsers/html-block.js +94 -0
- package/dist/core/parsers/indented-code.d.ts +4 -0
- package/dist/core/parsers/indented-code.js +41 -0
- package/dist/core/parsers/link-reference.d.ts +7 -0
- package/dist/core/parsers/link-reference.js +152 -0
- package/dist/core/parsers/list.d.ts +19 -0
- package/dist/core/parsers/list.js +133 -0
- package/dist/core/parsers/paragraph.d.ts +10 -0
- package/dist/core/parsers/paragraph.js +42 -0
- package/dist/core/parsers/table-completion.d.ts +13 -0
- package/dist/core/parsers/table-completion.js +48 -0
- package/dist/core/parsers/table.d.ts +18 -0
- package/dist/core/parsers/table.js +110 -0
- package/dist/core/parsers/thematic-break.d.ts +1 -0
- package/dist/core/parsers/thematic-break.js +19 -0
- package/dist/core/serializer.d.ts +15 -0
- package/dist/core/serializer.js +11 -0
- package/dist/core/terminator-escalation.d.ts +8 -0
- package/dist/core/terminator-escalation.js +18 -0
- package/dist/core/url-policy.d.ts +14 -0
- package/dist/core/url-policy.js +44 -0
- package/dist/cursor/content-offsets.d.ts +29 -0
- package/dist/cursor/content-offsets.js +151 -0
- package/dist/cursor/coordinate-spaces.d.ts +65 -0
- package/dist/cursor/coordinate-spaces.js +66 -0
- package/dist/cursor/dom-walk.d.ts +18 -0
- package/dist/cursor/dom-walk.js +31 -0
- package/dist/cursor/edge-affinity.d.ts +44 -0
- package/dist/cursor/edge-affinity.js +60 -0
- package/dist/cursor/focused-caret.d.ts +10 -0
- package/dist/cursor/focused-caret.js +24 -0
- package/dist/cursor/height-model.d.ts +24 -0
- package/dist/cursor/height-model.js +72 -0
- package/dist/cursor/height-oracle.d.ts +24 -0
- package/dist/cursor/height-oracle.js +94 -0
- package/dist/cursor/overlay-rects.d.ts +8 -0
- package/dist/cursor/overlay-rects.js +19 -0
- package/dist/cursor/overlay-remeasure.d.ts +17 -0
- package/dist/cursor/overlay-remeasure.js +31 -0
- package/dist/cursor/pending-marks.d.ts +24 -0
- package/dist/cursor/pending-marks.js +36 -0
- package/dist/cursor/point-offset.d.ts +21 -0
- package/dist/cursor/point-offset.js +48 -0
- package/dist/cursor/reveal-anchor.d.ts +30 -0
- package/dist/cursor/reveal-anchor.js +31 -0
- package/dist/cursor/reveal-source.d.ts +35 -0
- package/dist/cursor/reveal-source.js +51 -0
- package/dist/cursor/scroll-ancestors.d.ts +28 -0
- package/dist/cursor/scroll-ancestors.js +89 -0
- package/dist/cursor/scrollport.d.ts +20 -0
- package/dist/cursor/scrollport.js +41 -0
- package/dist/cursor/sticky-column.d.ts +35 -0
- package/dist/cursor/sticky-column.js +64 -0
- package/dist/cursor/sticky-measure.d.ts +16 -0
- package/dist/cursor/sticky-measure.js +97 -0
- package/dist/cursor/typography-estimates.d.ts +21 -0
- package/dist/cursor/typography-estimates.js +21 -0
- package/dist/cursor/visual-lines.d.ts +25 -0
- package/dist/cursor/visual-lines.js +125 -0
- package/dist/cursor/widget-offset.d.ts +132 -0
- package/dist/cursor/widget-offset.js +543 -0
- package/dist/debug/diagnostics-report.d.ts +17 -0
- package/dist/debug/diagnostics-report.js +25 -0
- package/dist/debug/dump-tree.d.ts +6 -0
- package/dist/debug/dump-tree.js +114 -0
- package/dist/debug/inspect.d.ts +19 -0
- package/dist/debug/inspect.js +116 -0
- package/dist/debug/interaction-trace.d.ts +39 -0
- package/dist/debug/interaction-trace.js +105 -0
- package/dist/debug/operations-log.d.ts +14 -0
- package/dist/debug/operations-log.js +30 -0
- package/dist/decorations/buckets.d.ts +40 -0
- package/dist/decorations/buckets.js +87 -0
- package/dist/decorations/decoration-state.svelte.d.ts +20 -0
- package/dist/decorations/decoration-state.svelte.js +195 -0
- package/dist/decorations/island-dom.d.ts +35 -0
- package/dist/decorations/island-dom.js +148 -0
- package/dist/decorations/reserved-attrs.d.ts +12 -0
- package/dist/decorations/reserved-attrs.js +47 -0
- package/dist/decorations/types.d.ts +68 -0
- package/dist/decorations/types.js +5 -0
- package/dist/decorations/widget-dom.d.ts +15 -0
- package/dist/decorations/widget-dom.js +35 -0
- package/dist/dev-warn.d.ts +13 -0
- package/dist/dev-warn.js +28 -0
- package/dist/editor-actions/ancestry-folds.d.ts +32 -0
- package/dist/editor-actions/ancestry-folds.js +106 -0
- package/dist/editor-actions/block-edit-core.d.ts +29 -0
- package/dist/editor-actions/block-edit-core.js +277 -0
- package/dist/editor-actions/block-edit-scope.d.ts +79 -0
- package/dist/editor-actions/block-edit-scope.js +76 -0
- package/dist/editor-actions/block-edit.d.ts +8 -0
- package/dist/editor-actions/block-edit.js +111 -0
- package/dist/editor-actions/commit/history.d.ts +9 -0
- package/dist/editor-actions/commit/history.js +77 -0
- package/dist/editor-actions/commit/text-batch.d.ts +34 -0
- package/dist/editor-actions/commit/text-batch.js +61 -0
- package/dist/editor-actions/commit/undo-controller.d.ts +7 -0
- package/dist/editor-actions/commit/undo-controller.js +570 -0
- package/dist/editor-actions/container-block-component.d.ts +85 -0
- package/dist/editor-actions/container-block-component.js +228 -0
- package/dist/editor-actions/container-edit.d.ts +7 -0
- package/dist/editor-actions/container-edit.js +49 -0
- package/dist/editor-actions/container-exit-overrides.d.ts +16 -0
- package/dist/editor-actions/container-exit-overrides.js +38 -0
- package/dist/editor-actions/deps.d.ts +60 -0
- package/dist/editor-actions/deps.js +1 -0
- package/dist/editor-actions/enter-completion.d.ts +25 -0
- package/dist/editor-actions/enter-completion.js +76 -0
- package/dist/editor-actions/focus/focus-dispatch.d.ts +36 -0
- package/dist/editor-actions/focus/focus-dispatch.js +106 -0
- package/dist/editor-actions/focus/focus-landing.d.ts +7 -0
- package/dist/editor-actions/focus/focus-landing.js +39 -0
- package/dist/editor-actions/focus/focus.d.ts +7 -0
- package/dist/editor-actions/focus/focus.js +74 -0
- package/dist/editor-actions/index.d.ts +15 -0
- package/dist/editor-actions/index.js +19 -0
- package/dist/editor-actions/inline-range-commit.d.ts +20 -0
- package/dist/editor-actions/inline-range-commit.js +63 -0
- package/dist/editor-actions/list-context.d.ts +25 -0
- package/dist/editor-actions/list-context.js +285 -0
- package/dist/editor-actions/list-overrides.d.ts +13 -0
- package/dist/editor-actions/list-overrides.js +26 -0
- package/dist/editor-actions/merge-fallback.d.ts +19 -0
- package/dist/editor-actions/merge-fallback.js +27 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +65 -0
- package/dist/editor-actions/nested/nested-actions.js +59 -0
- package/dist/editor-actions/nested/nested-block-edit.d.ts +10 -0
- package/dist/editor-actions/nested/nested-block-edit.js +181 -0
- package/dist/editor-actions/nested/nested-focus.d.ts +9 -0
- package/dist/editor-actions/nested/nested-focus.js +30 -0
- package/dist/editor-actions/paste-coordinator.d.ts +4 -0
- package/dist/editor-actions/paste-coordinator.js +20 -0
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +25 -0
- package/dist/editor-actions/plugin/chrome-leaf.js +80 -0
- package/dist/editor-actions/plugin/container.d.ts +137 -0
- package/dist/editor-actions/plugin/container.js +351 -0
- package/dist/editor-actions/plugin/directive-container.d.ts +13 -0
- package/dist/editor-actions/plugin/directive-container.js +31 -0
- package/dist/editor-actions/reorder-action.d.ts +17 -0
- package/dist/editor-actions/reorder-action.js +104 -0
- package/dist/editor-actions/reorder-drag.d.ts +34 -0
- package/dist/editor-actions/reorder-drag.js +152 -0
- package/dist/editor-actions/replacement-focus.d.ts +27 -0
- package/dist/editor-actions/replacement-focus.js +60 -0
- package/dist/editor-actions/search-replace.d.ts +6 -0
- package/dist/editor-actions/search-replace.js +145 -0
- package/dist/editor-actions/table-context.d.ts +34 -0
- package/dist/editor-actions/table-context.js +292 -0
- package/dist/editor-actions/unwrap-strategies.d.ts +14 -0
- package/dist/editor-actions/unwrap-strategies.js +131 -0
- package/dist/editor-actions/whole-block-focus-surface.d.ts +51 -0
- package/dist/editor-actions/whole-block-focus-surface.js +171 -0
- package/dist/editor-events.d.ts +89 -0
- package/dist/editor-events.js +96 -0
- package/dist/editor-keys.d.ts +197 -0
- package/dist/editor-keys.js +40 -0
- package/dist/editor-props.d.ts +164 -0
- package/dist/editor-props.js +1 -0
- package/dist/editor-rects.d.ts +58 -0
- package/dist/editor-rects.js +114 -0
- package/dist/env.d.ts +12 -0
- package/dist/env.js +20 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +19 -0
- package/dist/invariants/commit-paths.d.ts +10 -0
- package/dist/invariants/commit-paths.js +25 -0
- package/dist/invariants/commit-scope.d.ts +9 -0
- package/dist/invariants/commit-scope.js +16 -0
- package/dist/invariants/context-keys.d.ts +7 -0
- package/dist/invariants/context-keys.js +14 -0
- package/dist/invariants/descriptor.d.ts +10 -0
- package/dist/invariants/descriptor.js +24 -0
- package/dist/invariants/inline-transitions.d.ts +23 -0
- package/dist/invariants/inline-transitions.js +52 -0
- package/dist/invariants/install.d.ts +36 -0
- package/dist/invariants/install.js +66 -0
- package/dist/invariants/landable-caret.d.ts +12 -0
- package/dist/invariants/landable-caret.js +31 -0
- package/dist/invariants/marker-css-parity.d.ts +10 -0
- package/dist/invariants/marker-css-parity.js +87 -0
- package/dist/invariants/node-shape.d.ts +44 -0
- package/dist/invariants/node-shape.js +258 -0
- package/dist/invariants/registry.d.ts +126 -0
- package/dist/invariants/registry.js +349 -0
- package/dist/invariants/render-fidelity.d.ts +8 -0
- package/dist/invariants/render-fidelity.js +33 -0
- package/dist/invariants/selection-endpoints.d.ts +19 -0
- package/dist/invariants/selection-endpoints.js +78 -0
- package/dist/invariants/single-node-sink.d.ts +9 -0
- package/dist/invariants/single-node-sink.js +16 -0
- package/dist/invariants/snapshot-integrity.d.ts +17 -0
- package/dist/invariants/snapshot-integrity.js +24 -0
- package/dist/invariants/split-landing.d.ts +8 -0
- package/dist/invariants/split-landing.js +15 -0
- package/dist/invariants/structural-descriptor.d.ts +21 -0
- package/dist/invariants/structural-descriptor.js +50 -0
- package/dist/perf/instruments.d.ts +49 -0
- package/dist/perf/instruments.js +154 -0
- package/dist/perf/use-mount-gauge.svelte.d.ts +1 -0
- package/dist/perf/use-mount-gauge.svelte.js +15 -0
- package/dist/plugin.d.ts +102 -0
- package/dist/plugin.js +156 -0
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +144 -0
- package/dist/plugins/admonitions/AdmonitionBlock.svelte.d.ts +11 -0
- package/dist/plugins/admonitions/admonition-kind.d.ts +8 -0
- package/dist/plugins/admonitions/admonition-kind.js +97 -0
- package/dist/plugins/admonitions/convert-document.d.ts +11 -0
- package/dist/plugins/admonitions/convert-document.js +39 -0
- package/dist/plugins/admonitions/gh-alert.d.ts +13 -0
- package/dist/plugins/admonitions/gh-alert.js +83 -0
- package/dist/plugins/admonitions/github-alert-kind.d.ts +12 -0
- package/dist/plugins/admonitions/github-alert-kind.js +125 -0
- package/dist/plugins/admonitions/index.d.ts +6 -0
- package/dist/plugins/admonitions/index.js +8 -0
- package/dist/plugins/admonitions/kinds.d.ts +26 -0
- package/dist/plugins/admonitions/kinds.js +18 -0
- package/dist/plugins/admonitions/register.d.ts +7 -0
- package/dist/plugins/admonitions/register.js +12 -0
- package/dist/plugins/details/DetailsBlock.svelte +129 -0
- package/dist/plugins/details/DetailsBlock.svelte.d.ts +11 -0
- package/dist/plugins/details/details-disclosure.svelte.d.ts +17 -0
- package/dist/plugins/details/details-disclosure.svelte.js +24 -0
- package/dist/plugins/details/details-kind.d.ts +25 -0
- package/dist/plugins/details/details-kind.js +237 -0
- package/dist/plugins/details/index.d.ts +2 -0
- package/dist/plugins/details/index.js +2 -0
- package/dist/plugins/details/register.d.ts +6 -0
- package/dist/plugins/details/register.js +15 -0
- package/dist/plugins/emoji/emoji-plugin.d.ts +2 -0
- package/dist/plugins/emoji/emoji-plugin.js +10 -0
- package/dist/plugins/emoji/emoji-recognizer.d.ts +18 -0
- package/dist/plugins/emoji/emoji-recognizer.js +63 -0
- package/dist/plugins/emoji/emoji-table.d.ts +1 -0
- package/dist/plugins/emoji/emoji-table.js +1919 -0
- package/dist/plugins/emoji/index.d.ts +3 -0
- package/dist/plugins/emoji/index.js +4 -0
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +103 -0
- package/dist/plugins/footnotes/FootnoteDefinition.svelte.d.ts +13 -0
- package/dist/plugins/footnotes/FootnoteReference.svelte +50 -0
- package/dist/plugins/footnotes/FootnoteReference.svelte.d.ts +4 -0
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +4 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +14 -0
- package/dist/plugins/footnotes/footnote-definition.js +147 -0
- package/dist/plugins/footnotes/footnote-lookup.d.ts +9 -0
- package/dist/plugins/footnotes/footnote-lookup.js +33 -0
- package/dist/plugins/footnotes/footnote-numbering.d.ts +23 -0
- package/dist/plugins/footnotes/footnote-numbering.js +78 -0
- package/dist/plugins/footnotes/footnote-reference.d.ts +7 -0
- package/dist/plugins/footnotes/footnote-reference.js +54 -0
- package/dist/plugins/footnotes/footnotes-plugin.d.ts +7 -0
- package/dist/plugins/footnotes/footnotes-plugin.js +17 -0
- package/dist/plugins/footnotes/index.d.ts +5 -0
- package/dist/plugins/footnotes/index.js +6 -0
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +17 -0
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +31 -0
- package/dist/plugins/highlight-occurrences/index.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/index.js +1 -0
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +26 -0
- package/dist/plugins/highlight-occurrences/occurrence-source.js +54 -0
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +33 -0
- package/dist/plugins/highlight-occurrences/occurrences.js +108 -0
- package/dist/plugins/latex/BlockMath.svelte +119 -0
- package/dist/plugins/latex/BlockMath.svelte.d.ts +21 -0
- package/dist/plugins/latex/MathInline.svelte +28 -0
- package/dist/plugins/latex/MathInline.svelte.d.ts +4 -0
- package/dist/plugins/latex/index.d.ts +3 -0
- package/dist/plugins/latex/index.js +4 -0
- package/dist/plugins/latex/latex-kind.d.ts +17 -0
- package/dist/plugins/latex/latex-kind.js +224 -0
- package/dist/plugins/latex/math-completion.d.ts +10 -0
- package/dist/plugins/latex/math-completion.js +19 -0
- package/dist/plugins/latex/math-renderer.d.ts +26 -0
- package/dist/plugins/latex/math-renderer.js +42 -0
- package/dist/plugins/latex/register.d.ts +10 -0
- package/dist/plugins/latex/register.js +23 -0
- package/dist/plugins/latex/renderer.d.ts +13 -0
- package/dist/plugins/latex/renderer.js +34 -0
- package/dist/plugins/mermaid/MermaidBlock.svelte +572 -0
- package/dist/plugins/mermaid/MermaidBlock.svelte.d.ts +11 -0
- package/dist/plugins/mermaid/index.d.ts +3 -0
- package/dist/plugins/mermaid/index.js +3 -0
- package/dist/plugins/mermaid/mermaid-kind.d.ts +38 -0
- package/dist/plugins/mermaid/mermaid-kind.js +176 -0
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +28 -0
- package/dist/plugins/mermaid/mermaid-renderer.js +35 -0
- package/dist/plugins/mermaid/register.d.ts +10 -0
- package/dist/plugins/mermaid/register.js +20 -0
- package/dist/plugins/mermaid/renderer.d.ts +11 -0
- package/dist/plugins/mermaid/renderer.js +53 -0
- package/dist/plugins/parrot/ParrotBlock.svelte +342 -0
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +21 -0
- package/dist/plugins/parrot/index.d.ts +1 -0
- package/dist/plugins/parrot/index.js +2 -0
- package/dist/plugins/parrot/parrot-plugin.d.ts +3 -0
- package/dist/plugins/parrot/parrot-plugin.js +49 -0
- package/dist/plugins/toc/TocBlock.svelte +218 -0
- package/dist/plugins/toc/TocBlock.svelte.d.ts +24 -0
- package/dist/plugins/toc/heading-outline.d.ts +28 -0
- package/dist/plugins/toc/heading-outline.js +65 -0
- package/dist/plugins/toc/index.d.ts +2 -0
- package/dist/plugins/toc/index.js +2 -0
- package/dist/plugins/toc/navigation-queue.d.ts +12 -0
- package/dist/plugins/toc/navigation-queue.js +21 -0
- package/dist/plugins/toc/toc-plugin.d.ts +16 -0
- package/dist/plugins/toc/toc-plugin.js +71 -0
- package/dist/presentation-mode.d.ts +32 -0
- package/dist/presentation-mode.js +50 -0
- package/dist/reactivity/block-list-state.svelte.d.ts +22 -0
- package/dist/reactivity/block-list-state.svelte.js +46 -0
- package/dist/reactivity/block-window.svelte.d.ts +41 -0
- package/dist/reactivity/block-window.svelte.js +93 -0
- package/dist/reactivity/content-version.svelte.d.ts +14 -0
- package/dist/reactivity/content-version.svelte.js +16 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +100 -0
- package/dist/reactivity/list-windowing.svelte.js +402 -0
- package/dist/reactivity/measure-batch.d.ts +15 -0
- package/dist/reactivity/measure-batch.js +18 -0
- package/dist/reactivity/publish-ref.svelte.d.ts +54 -0
- package/dist/reactivity/publish-ref.svelte.js +128 -0
- package/dist/reactivity/scope-geometry.d.ts +18 -0
- package/dist/reactivity/scope-geometry.js +29 -0
- package/dist/reactivity/state-registry.d.ts +10 -0
- package/dist/reactivity/state-registry.js +44 -0
- package/dist/reactivity/use-container-windowing.svelte.d.ts +35 -0
- package/dist/reactivity/use-container-windowing.svelte.js +95 -0
- package/dist/reactivity/window-slice.d.ts +11 -0
- package/dist/reactivity/window-slice.js +9 -0
- package/dist/scan-index.d.ts +11 -0
- package/dist/scan-index.js +27 -0
- package/dist/schema/block-commands.d.ts +105 -0
- package/dist/schema/block-commands.js +179 -0
- package/dist/schema/block-completions.d.ts +33 -0
- package/dist/schema/block-completions.js +49 -0
- package/dist/schema/block-component-registry.d.ts +33 -0
- package/dist/schema/block-component-registry.js +33 -0
- package/dist/schema/block-kind-descriptor.d.ts +281 -0
- package/dist/schema/block-kind-descriptor.js +187 -0
- package/dist/schema/block-openers.d.ts +94 -0
- package/dist/schema/block-openers.js +150 -0
- package/dist/schema/built-in-descriptors.d.ts +8 -0
- package/dist/schema/built-in-descriptors.js +560 -0
- package/dist/schema/child-spans.d.ts +25 -0
- package/dist/schema/child-spans.js +161 -0
- package/dist/schema/closure.d.ts +39 -0
- package/dist/schema/closure.js +55 -0
- package/dist/schema/command-id.d.ts +20 -0
- package/dist/schema/command-id.js +42 -0
- package/dist/schema/commands.d.ts +147 -0
- package/dist/schema/commands.js +294 -0
- package/dist/schema/container-raw.d.ts +21 -0
- package/dist/schema/container-raw.js +43 -0
- package/dist/schema/container-rebuilders.d.ts +32 -0
- package/dist/schema/container-rebuilders.js +95 -0
- package/dist/schema/define-plugin-block.d.ts +15 -0
- package/dist/schema/define-plugin-block.js +18 -0
- package/dist/schema/fenced-code-raw.d.ts +43 -0
- package/dist/schema/fenced-code-raw.js +220 -0
- package/dist/schema/global-commands.d.ts +11 -0
- package/dist/schema/global-commands.js +40 -0
- package/dist/schema/inline-construct-policy.d.ts +131 -0
- package/dist/schema/inline-construct-policy.js +96 -0
- package/dist/schema/keybinding-overrides.d.ts +39 -0
- package/dist/schema/keybinding-overrides.js +43 -0
- package/dist/schema/keybindings.d.ts +36 -0
- package/dist/schema/keybindings.js +75 -0
- package/dist/schema/merge-rules.d.ts +28 -0
- package/dist/schema/merge-rules.js +57 -0
- package/dist/schema/opener-priorities.d.ts +16 -0
- package/dist/schema/opener-priorities.js +16 -0
- package/dist/schema/operations.d.ts +110 -0
- package/dist/schema/operations.js +6 -0
- package/dist/schema/plugin-activation.d.ts +13 -0
- package/dist/schema/plugin-activation.js +18 -0
- package/dist/schema/plugin-editor-context.d.ts +33 -0
- package/dist/schema/plugin-editor-context.js +65 -0
- package/dist/schema/plugin-install.d.ts +58 -0
- package/dist/schema/plugin-install.js +132 -0
- package/dist/schema/plugin-kind.d.ts +21 -0
- package/dist/schema/plugin-kind.js +86 -0
- package/dist/schema/plugin-name.d.ts +1 -0
- package/dist/schema/plugin-name.js +7 -0
- package/dist/schema/register-once.d.ts +9 -0
- package/dist/schema/register-once.js +35 -0
- package/dist/schema/registration-checks.d.ts +32 -0
- package/dist/schema/registration-checks.js +122 -0
- package/dist/schema/registration-pending.d.ts +28 -0
- package/dist/schema/registration-pending.js +48 -0
- package/dist/schema/registry-reset.d.ts +7 -0
- package/dist/schema/registry-reset.js +30 -0
- package/dist/schema/registry-view.d.ts +30 -0
- package/dist/schema/registry-view.js +39 -0
- package/dist/schema/reserved-chords.d.ts +35 -0
- package/dist/schema/reserved-chords.js +313 -0
- package/dist/schema/reserved-chrome.d.ts +23 -0
- package/dist/schema/reserved-chrome.js +33 -0
- package/dist/schema/table-cell-raw.d.ts +14 -0
- package/dist/schema/table-cell-raw.js +30 -0
- package/dist/schema/whole-block-unit.d.ts +8 -0
- package/dist/schema/whole-block-unit.js +12 -0
- package/dist/search/document-scan.d.ts +22 -0
- package/dist/search/document-scan.js +39 -0
- package/dist/search/matcher.d.ts +31 -0
- package/dist/search/matcher.js +70 -0
- package/dist/search/regex-executor.d.ts +41 -0
- package/dist/search/regex-executor.js +165 -0
- package/dist/search/replace.d.ts +15 -0
- package/dist/search/replace.js +29 -0
- package/dist/search/search-state.svelte.d.ts +59 -0
- package/dist/search/search-state.svelte.js +231 -0
- package/dist/selection/autoscroll.d.ts +26 -0
- package/dist/selection/autoscroll.js +91 -0
- package/dist/selection/block-hit-test.d.ts +37 -0
- package/dist/selection/block-hit-test.js +59 -0
- package/dist/selection/caret-doors.d.ts +20 -0
- package/dist/selection/caret-doors.js +44 -0
- package/dist/selection/caret-restore.d.ts +15 -0
- package/dist/selection/caret-restore.js +32 -0
- package/dist/selection/char-endpoint-snap.d.ts +15 -0
- package/dist/selection/char-endpoint-snap.js +39 -0
- package/dist/selection/clipboard-text.d.ts +13 -0
- package/dist/selection/clipboard-text.js +314 -0
- package/dist/selection/cross-block/clipboard.d.ts +14 -0
- package/dist/selection/cross-block/clipboard.js +20 -0
- package/dist/selection/cross-block/dispatch.d.ts +78 -0
- package/dist/selection/cross-block/dispatch.js +57 -0
- package/dist/selection/cross-block/format-range.d.ts +38 -0
- package/dist/selection/cross-block/format-range.js +193 -0
- package/dist/selection/cross-block/format-toggle.d.ts +27 -0
- package/dist/selection/cross-block/format-toggle.js +109 -0
- package/dist/selection/cross-block/keydown.d.ts +11 -0
- package/dist/selection/cross-block/keydown.js +339 -0
- package/dist/selection/cross-block/ops.d.ts +56 -0
- package/dist/selection/cross-block/ops.js +210 -0
- package/dist/selection/cross-block/paste.d.ts +8 -0
- package/dist/selection/cross-block/paste.js +156 -0
- package/dist/selection/cross-block/pointer.d.ts +19 -0
- package/dist/selection/cross-block/pointer.js +80 -0
- package/dist/selection/cross-block/type-replace.d.ts +10 -0
- package/dist/selection/cross-block/type-replace.js +129 -0
- package/dist/selection/dead-space-caret.d.ts +39 -0
- package/dist/selection/dead-space-caret.js +173 -0
- package/dist/selection/drag-pointer.d.ts +22 -0
- package/dist/selection/drag-pointer.js +89 -0
- package/dist/selection/gap-caret.d.ts +47 -0
- package/dist/selection/gap-caret.js +72 -0
- package/dist/selection/keyboard-extend.d.ts +43 -0
- package/dist/selection/keyboard-extend.js +257 -0
- package/dist/selection/native-bridge.d.ts +47 -0
- package/dist/selection/native-bridge.js +204 -0
- package/dist/selection/nearest-block.d.ts +43 -0
- package/dist/selection/nearest-block.js +73 -0
- package/dist/selection/path-lookup.d.ts +32 -0
- package/dist/selection/path-lookup.js +132 -0
- package/dist/selection/path-math.d.ts +35 -0
- package/dist/selection/path-math.js +90 -0
- package/dist/selection/pointer-session.d.ts +43 -0
- package/dist/selection/pointer-session.js +111 -0
- package/dist/selection/primitives.d.ts +75 -0
- package/dist/selection/primitives.js +91 -0
- package/dist/selection/range-delete-ceremony.d.ts +85 -0
- package/dist/selection/range-delete-ceremony.js +197 -0
- package/dist/selection/range-delete-chrome.d.ts +39 -0
- package/dist/selection/range-delete-chrome.js +105 -0
- package/dist/selection/range-delete-table-coverage.d.ts +28 -0
- package/dist/selection/range-delete-table-coverage.js +168 -0
- package/dist/selection/range-delete-table.d.ts +16 -0
- package/dist/selection/range-delete-table.js +347 -0
- package/dist/selection/range-delete.d.ts +33 -0
- package/dist/selection/range-delete.js +121 -0
- package/dist/selection/selection-description.d.ts +7 -0
- package/dist/selection/selection-description.js +18 -0
- package/dist/selection/selection-restore.d.ts +46 -0
- package/dist/selection/selection-restore.js +66 -0
- package/dist/selection/selection-state.svelte.d.ts +72 -0
- package/dist/selection/selection-state.svelte.js +247 -0
- package/dist/selection/shared-keydown.d.ts +61 -0
- package/dist/selection/shared-keydown.js +150 -0
- package/dist/selection/table-endpoint-snap.d.ts +55 -0
- package/dist/selection/table-endpoint-snap.js +143 -0
- package/dist/selection/table-rect-extend.d.ts +23 -0
- package/dist/selection/table-rect-extend.js +46 -0
- package/dist/selection/widget-range-paint.d.ts +12 -0
- package/dist/selection/widget-range-paint.js +44 -0
- package/dist/styles/editor-theme.css +151 -0
- package/dist/styles/editor.css +585 -0
- package/dist/testing/conformance-core.d.ts +45 -0
- package/dist/testing/conformance-core.js +105 -0
- package/dist/testing/container-conformance.d.ts +137 -0
- package/dist/testing/container-conformance.js +533 -0
- package/dist/testing/headless-actions.d.ts +37 -0
- package/dist/testing/headless-actions.js +118 -0
- package/dist/testing/inline-conformance.d.ts +50 -0
- package/dist/testing/inline-conformance.js +442 -0
- package/dist/testing/kind-conformance.d.ts +54 -0
- package/dist/testing/kind-conformance.js +325 -0
- package/dist/testing/mount-dom-stubs.d.ts +8 -0
- package/dist/testing/mount-dom-stubs.js +19 -0
- package/dist/testing/parse-convergence.d.ts +14 -0
- package/dist/testing/parse-convergence.js +81 -0
- package/dist/testing.d.ts +20 -0
- package/dist/testing.js +61 -0
- package/dist/tree-operations/blockquote.d.ts +18 -0
- package/dist/tree-operations/blockquote.js +59 -0
- package/dist/tree-operations/children.d.ts +17 -0
- package/dist/tree-operations/children.js +56 -0
- package/dist/tree-operations/cleanup.d.ts +10 -0
- package/dist/tree-operations/cleanup.js +25 -0
- package/dist/tree-operations/clone.d.ts +5 -0
- package/dist/tree-operations/clone.js +43 -0
- package/dist/tree-operations/container-lift.d.ts +9 -0
- package/dist/tree-operations/container-lift.js +29 -0
- package/dist/tree-operations/index.d.ts +16 -0
- package/dist/tree-operations/index.js +14 -0
- package/dist/tree-operations/list/empty-check.d.ts +7 -0
- package/dist/tree-operations/list/empty-check.js +19 -0
- package/dist/tree-operations/list/exit-replacement.d.ts +13 -0
- package/dist/tree-operations/list/exit-replacement.js +49 -0
- package/dist/tree-operations/list/item-partition.d.ts +13 -0
- package/dist/tree-operations/list/item-partition.js +33 -0
- package/dist/tree-operations/list/list-builders.d.ts +44 -0
- package/dist/tree-operations/list/list-builders.js +129 -0
- package/dist/tree-operations/list/ordered-markers.d.ts +36 -0
- package/dist/tree-operations/list/ordered-markers.js +114 -0
- package/dist/tree-operations/list/reconcile-task.d.ts +12 -0
- package/dist/tree-operations/list/reconcile-task.js +47 -0
- package/dist/tree-operations/list/sublist-separator.d.ts +13 -0
- package/dist/tree-operations/list/sublist-separator.js +34 -0
- package/dist/tree-operations/list/terminator.d.ts +17 -0
- package/dist/tree-operations/list/terminator.js +60 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +29 -0
- package/dist/tree-operations/list/unwrap-merge.js +202 -0
- package/dist/tree-operations/node-ops.d.ts +296 -0
- package/dist/tree-operations/node-ops.js +1428 -0
- package/dist/tree-operations/parse-block.d.ts +3 -0
- package/dist/tree-operations/parse-block.js +8 -0
- package/dist/tree-operations/paste/apply.d.ts +12 -0
- package/dist/tree-operations/paste/apply.js +75 -0
- package/dist/tree-operations/paste/body-write.d.ts +19 -0
- package/dist/tree-operations/paste/body-write.js +53 -0
- package/dist/tree-operations/paste/container-match.d.ts +32 -0
- package/dist/tree-operations/paste/container-match.js +238 -0
- package/dist/tree-operations/paste/container-paste.d.ts +10 -0
- package/dist/tree-operations/paste/container-paste.js +27 -0
- package/dist/tree-operations/paste/dispatch.d.ts +61 -0
- package/dist/tree-operations/paste/dispatch.js +138 -0
- package/dist/tree-operations/paste/find-enclosing-list.d.ts +8 -0
- package/dist/tree-operations/paste/find-enclosing-list.js +30 -0
- package/dist/tree-operations/paste/focus-target.d.ts +27 -0
- package/dist/tree-operations/paste/focus-target.js +40 -0
- package/dist/tree-operations/paste/hooks.d.ts +17 -0
- package/dist/tree-operations/paste/hooks.js +80 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +29 -0
- package/dist/tree-operations/paste/list-absorb.js +106 -0
- package/dist/tree-operations/paste/list-break-out.d.ts +42 -0
- package/dist/tree-operations/paste/list-break-out.js +136 -0
- package/dist/tree-operations/paste/parent-scope.d.ts +17 -0
- package/dist/tree-operations/paste/parent-scope.js +35 -0
- package/dist/tree-operations/paste/paste-deps.d.ts +20 -0
- package/dist/tree-operations/paste/paste-deps.js +6 -0
- package/dist/tree-operations/paste/paste-replacement.d.ts +8 -0
- package/dist/tree-operations/paste/paste-replacement.js +60 -0
- package/dist/tree-operations/paste/paste-transforms.d.ts +25 -0
- package/dist/tree-operations/paste/paste-transforms.js +72 -0
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +29 -0
- package/dist/tree-operations/paste/replace-block-at-parent.js +75 -0
- package/dist/tree-operations/paste/strategy.d.ts +9 -0
- package/dist/tree-operations/paste/strategy.js +20 -0
- package/dist/tree-operations/paste/table-slice.d.ts +10 -0
- package/dist/tree-operations/paste/table-slice.js +39 -0
- package/dist/tree-operations/paste-surfaces.d.ts +61 -0
- package/dist/tree-operations/paste-surfaces.js +15 -0
- package/dist/tree-operations/path-mutate.d.ts +12 -0
- package/dist/tree-operations/path-mutate.js +20 -0
- package/dist/tree-operations/reorder-unit.d.ts +17 -0
- package/dist/tree-operations/reorder-unit.js +37 -0
- package/dist/tree-operations/reorder.d.ts +13 -0
- package/dist/tree-operations/reorder.js +57 -0
- package/dist/tree-operations/sharing.d.ts +18 -0
- package/dist/tree-operations/sharing.js +14 -0
- package/dist/tree-operations/splice-many.d.ts +9 -0
- package/dist/tree-operations/splice-many.js +22 -0
- package/dist/tree-operations/structural-change.d.ts +65 -0
- package/dist/tree-operations/structural-change.js +117 -0
- package/dist/tree-operations/sub-table-copy.d.ts +6 -0
- package/dist/tree-operations/sub-table-copy.js +43 -0
- package/dist/tree-operations/table-mutations.d.ts +17 -0
- package/dist/tree-operations/table-mutations.js +101 -0
- package/dist/tree-operations/unshare.d.ts +101 -0
- package/dist/tree-operations/unshare.js +248 -0
- package/dist/undo/manager.d.ts +2 -0
- package/dist/undo/manager.js +50 -0
- package/dist/undo/types.d.ts +44 -0
- package/dist/undo/types.js +7 -0
- package/docs/guide/consumer-guide.md +1098 -0
- package/docs/guide/directives.md +223 -0
- package/docs/guide/plugin-api.md +329 -0
- package/docs/guide/plugin-guide/conspiracy.gif +0 -0
- package/docs/guide/plugin-guide/parrot-frames.md +209 -0
- package/docs/guide/plugin-guide/parrot.gif +0 -0
- package/docs/guide/plugin-guide.md +1693 -0
- package/docs/guide/plugin-testing.md +463 -0
- package/package.json +238 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared pointer-drag session: the document-listener + rAF-coalescing scaffold every drag
|
|
3
|
+
* lifecycle builds on. Owns the pointer-ownership filter, autoscroll wiring, and idempotent
|
|
4
|
+
* teardown; callers supply the per-surface move/end behavior and the options that genuinely
|
|
5
|
+
* differ. rAF here is frame-paced pointermove coalescing, not async sequencing (G4.4).
|
|
6
|
+
*/
|
|
7
|
+
import { createAutoScroll } from './autoscroll';
|
|
8
|
+
export function createPointerDragSession(down, opts) {
|
|
9
|
+
const pointerId = down.pointerId;
|
|
10
|
+
const startX = down.clientX;
|
|
11
|
+
const startY = down.clientY;
|
|
12
|
+
const threshold = opts.threshold;
|
|
13
|
+
let dragging = threshold === undefined;
|
|
14
|
+
let pending = null;
|
|
15
|
+
let rafId = null;
|
|
16
|
+
const autoScroll = createAutoScroll({
|
|
17
|
+
axis: opts.autoScroll.axis,
|
|
18
|
+
getPointer: () => pending,
|
|
19
|
+
getTargets: opts.autoScroll.getTargets,
|
|
20
|
+
onScrolled: () => {
|
|
21
|
+
if (pending)
|
|
22
|
+
opts.onMove(pending);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
function onPointerMove(e) {
|
|
26
|
+
if (!dragging && threshold !== undefined) {
|
|
27
|
+
const moved = Math.abs(e.clientX - startX) >= threshold || Math.abs(e.clientY - startY) >= threshold;
|
|
28
|
+
if (!moved)
|
|
29
|
+
return;
|
|
30
|
+
dragging = true;
|
|
31
|
+
opts.onDragRecognized?.();
|
|
32
|
+
}
|
|
33
|
+
pending = { clientX: e.clientX, clientY: e.clientY };
|
|
34
|
+
if (rafId !== null)
|
|
35
|
+
return;
|
|
36
|
+
rafId = requestAnimationFrame(() => {
|
|
37
|
+
rafId = null;
|
|
38
|
+
if (!pending)
|
|
39
|
+
return;
|
|
40
|
+
opts.onMove(pending);
|
|
41
|
+
autoScroll.maybeStart();
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
// A release before the coalescing rAF runs would otherwise drop the final move (a stale drop
|
|
45
|
+
// index, or isCrossBlock false on a fast flick / pointercancel). Guard on a LIVE rAF so an
|
|
46
|
+
// already-processed move is never replayed.
|
|
47
|
+
function flushPendingMove() {
|
|
48
|
+
if (rafId !== null && pending)
|
|
49
|
+
opts.onMove(pending);
|
|
50
|
+
}
|
|
51
|
+
let disposed = false;
|
|
52
|
+
function dispose() {
|
|
53
|
+
if (disposed)
|
|
54
|
+
return;
|
|
55
|
+
disposed = true;
|
|
56
|
+
document.removeEventListener('pointermove', onPointerMove);
|
|
57
|
+
document.removeEventListener('pointerup', onPointerUp);
|
|
58
|
+
document.removeEventListener('pointercancel', onPointerCancel);
|
|
59
|
+
if (opts.escape)
|
|
60
|
+
document.removeEventListener('keydown', onKeyDown, true);
|
|
61
|
+
opts.lifetimeSignal?.removeEventListener('abort', onAbort);
|
|
62
|
+
if (rafId !== null) {
|
|
63
|
+
cancelAnimationFrame(rafId);
|
|
64
|
+
rafId = null;
|
|
65
|
+
}
|
|
66
|
+
autoScroll.dispose();
|
|
67
|
+
if (opts.disableUserSelect)
|
|
68
|
+
document.body.style.userSelect = '';
|
|
69
|
+
opts.onTeardown?.();
|
|
70
|
+
pending = null;
|
|
71
|
+
}
|
|
72
|
+
// Only the pointer that opened the drag ends it: a second touch's up/cancel would otherwise
|
|
73
|
+
// commit or tear down someone else's gesture.
|
|
74
|
+
function onPointerUp(e) {
|
|
75
|
+
if (e.pointerId !== pointerId)
|
|
76
|
+
return;
|
|
77
|
+
flushPendingMove();
|
|
78
|
+
dispose();
|
|
79
|
+
opts.onEnd?.('up');
|
|
80
|
+
}
|
|
81
|
+
// Touch/stylus and Tauri WebView2 fire pointercancel instead of pointerup when the OS
|
|
82
|
+
// reclaims the pointer; without this the pointermove + rAF leak until editor unmount.
|
|
83
|
+
function onPointerCancel(e) {
|
|
84
|
+
if (e.pointerId !== pointerId)
|
|
85
|
+
return;
|
|
86
|
+
flushPendingMove();
|
|
87
|
+
dispose();
|
|
88
|
+
opts.onEnd?.('cancel');
|
|
89
|
+
}
|
|
90
|
+
// Editor unmount aborts the lifetime, not a pointer: always tears down, never runs onEnd
|
|
91
|
+
// (no gesture result to finalize into an unmounting tree).
|
|
92
|
+
function onAbort() {
|
|
93
|
+
dispose();
|
|
94
|
+
}
|
|
95
|
+
function onKeyDown(e) {
|
|
96
|
+
if (e.key === 'Escape')
|
|
97
|
+
dispose();
|
|
98
|
+
}
|
|
99
|
+
if (opts.lifetimeSignal?.aborted) {
|
|
100
|
+
return { dispose };
|
|
101
|
+
}
|
|
102
|
+
if (opts.disableUserSelect)
|
|
103
|
+
document.body.style.userSelect = 'none';
|
|
104
|
+
document.addEventListener('pointermove', onPointerMove);
|
|
105
|
+
document.addEventListener('pointerup', onPointerUp);
|
|
106
|
+
document.addEventListener('pointercancel', onPointerCancel);
|
|
107
|
+
if (opts.escape)
|
|
108
|
+
document.addEventListener('keydown', onKeyDown, true);
|
|
109
|
+
opts.lifetimeSignal?.addEventListener('abort', onAbort, { once: true });
|
|
110
|
+
return { dispose };
|
|
111
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure primitives for cross-block selection: types, document-order walking, overlay
|
|
3
|
+
* classification, the delete-commit snapshot rule. No DOM, no state. Path-level predicates
|
|
4
|
+
* live in `./path-math`.
|
|
5
|
+
*/
|
|
6
|
+
import type { CommitSnapshotArg, UndoEntryMode } from '../action-contracts';
|
|
7
|
+
import type { DocumentView } from '../core/node-views';
|
|
8
|
+
import { type CellIndex, type RawOffset } from '../cursor/coordinate-spaces';
|
|
9
|
+
/** Char-space endpoint: `offset` is a character index into the leaf's `raw`. */
|
|
10
|
+
export interface CharSelectionPoint {
|
|
11
|
+
path: number[];
|
|
12
|
+
offset: number;
|
|
13
|
+
cellCoordinate?: false;
|
|
14
|
+
}
|
|
15
|
+
/** Cell-space endpoint: `offset` is a row-major table cell index; `path` addresses the table block. */
|
|
16
|
+
export interface CellSelectionPoint {
|
|
17
|
+
path: number[];
|
|
18
|
+
offset: number;
|
|
19
|
+
cellCoordinate: true;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A single selection endpoint, discriminated on `cellCoordinate`; empty path is the
|
|
23
|
+
* document root. `offset` keeps its name on both arms, and its space is the
|
|
24
|
+
* discriminant's job: read it through {@link charOffsetOf} / {@link cellIndexOf}.
|
|
25
|
+
* Exception: intra-table selections share the table path and carry cell-valued offsets
|
|
26
|
+
* on UNFLAGGED points, established by their shared scope rather than the flag.
|
|
27
|
+
*/
|
|
28
|
+
export type SelectionPoint = CharSelectionPoint | CellSelectionPoint;
|
|
29
|
+
/** An endpoint whose block offered no position to land on; the funnel resolves the side. */
|
|
30
|
+
export interface WholeBlockEndpoint {
|
|
31
|
+
path: number[];
|
|
32
|
+
wholeBlock: true;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* What an entry path may hand the selection funnel. Only {@link SelectionPoint} is ever
|
|
36
|
+
* stored, so an unresolved endpoint cannot reach a consumer.
|
|
37
|
+
*/
|
|
38
|
+
export type SelectionEndpoint = SelectionPoint | WholeBlockEndpoint;
|
|
39
|
+
export declare function isWholeBlockEndpoint(endpoint: SelectionEndpoint): endpoint is WholeBlockEndpoint;
|
|
40
|
+
/**
|
|
41
|
+
* Anchor/focus pair. Same path + same offset is collapsed; same path + different offsets
|
|
42
|
+
* is a single-block range the browser owns (SelectionState stays null); different paths
|
|
43
|
+
* is cross-block.
|
|
44
|
+
*/
|
|
45
|
+
export interface EditorSelection {
|
|
46
|
+
anchor: SelectionPoint;
|
|
47
|
+
focus: SelectionPoint;
|
|
48
|
+
}
|
|
49
|
+
/** Offset as a char index into the leaf's `raw`. DEV-warns on a cell point, but always returns. */
|
|
50
|
+
export declare function charOffsetOf(point: SelectionPoint, tag: string): RawOffset;
|
|
51
|
+
/** Offset as a row-major table cell index. DEV-warns on a char point, but always returns. */
|
|
52
|
+
export declare function cellIndexOf(point: SelectionPoint, tag: string): CellIndex;
|
|
53
|
+
/**
|
|
54
|
+
* `{start, end}` in document order: by path, then by offset when paths match. Published on the
|
|
55
|
+
* consumer barrel as `normalizeSelection`, which is what a host anchors UI to. The offset tiebreak
|
|
56
|
+
* is coordinate-space agnostic: two endpoints sharing a table's path carry row-major CELL indices,
|
|
57
|
+
* whose order IS document order inside that table. A caller with no selection has nothing to
|
|
58
|
+
* order, since `getSelection()` answers null with nothing focused and at a gap caret.
|
|
59
|
+
*/
|
|
60
|
+
export declare function normalize(selection: EditorSelection): {
|
|
61
|
+
start: SelectionPoint;
|
|
62
|
+
end: SelectionPoint;
|
|
63
|
+
};
|
|
64
|
+
/** A join delete rides the caller's snapshot; every other one seats undo at its own coordinate. */
|
|
65
|
+
export declare function deleteSnapshot(options: {
|
|
66
|
+
undoEntry?: UndoEntryMode;
|
|
67
|
+
} | undefined, path: number[], offset?: number): CommitSnapshotArg;
|
|
68
|
+
/** Every block path strictly between `start` and `end`, at every nesting level. */
|
|
69
|
+
export declare function walkBetween(doc: DocumentView, start: number[], end: number[]): number[][];
|
|
70
|
+
export type BlockSelectionClass = 'outside' | 'start' | 'middle' | 'end' | 'single-block';
|
|
71
|
+
/**
|
|
72
|
+
* Position of a block relative to a selection, for overlay rendering. 'single-block'
|
|
73
|
+
* tells the caller to delegate to the browser instead of painting.
|
|
74
|
+
*/
|
|
75
|
+
export declare function classifyBlockForSelection(path: number[], selection: EditorSelection): BlockSelectionClass;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure primitives for cross-block selection: types, document-order walking, overlay
|
|
3
|
+
* classification, the delete-commit snapshot rule. No DOM, no state. Path-level predicates
|
|
4
|
+
* live in `./path-math`.
|
|
5
|
+
*/
|
|
6
|
+
import { comparePaths, isPathBetween, pathHasPrefix } from './path-math';
|
|
7
|
+
import { asCellIndex, asRawOffset, docPathFrom } from '../cursor/coordinate-spaces';
|
|
8
|
+
import { devWarn } from '../dev-warn';
|
|
9
|
+
export function isWholeBlockEndpoint(endpoint) {
|
|
10
|
+
return 'wholeBlock' in endpoint;
|
|
11
|
+
}
|
|
12
|
+
/** Offset as a char index into the leaf's `raw`. DEV-warns on a cell point, but always returns. */
|
|
13
|
+
export function charOffsetOf(point, tag) {
|
|
14
|
+
if (point.cellCoordinate) {
|
|
15
|
+
devWarn(tag, 'char-offset site received a cell-coordinate SelectionPoint', point);
|
|
16
|
+
}
|
|
17
|
+
return asRawOffset(point.offset);
|
|
18
|
+
}
|
|
19
|
+
/** Offset as a row-major table cell index. DEV-warns on a char point, but always returns. */
|
|
20
|
+
export function cellIndexOf(point, tag) {
|
|
21
|
+
if (!point.cellCoordinate) {
|
|
22
|
+
devWarn(tag, 'cell-index site received a char-offset SelectionPoint', point);
|
|
23
|
+
}
|
|
24
|
+
return asCellIndex(point.offset);
|
|
25
|
+
}
|
|
26
|
+
// ── Normalization ──────────────────────────────────────────────────────────
|
|
27
|
+
/**
|
|
28
|
+
* `{start, end}` in document order: by path, then by offset when paths match. Published on the
|
|
29
|
+
* consumer barrel as `normalizeSelection`, which is what a host anchors UI to. The offset tiebreak
|
|
30
|
+
* is coordinate-space agnostic: two endpoints sharing a table's path carry row-major CELL indices,
|
|
31
|
+
* whose order IS document order inside that table. A caller with no selection has nothing to
|
|
32
|
+
* order, since `getSelection()` answers null with nothing focused and at a gap caret.
|
|
33
|
+
*/
|
|
34
|
+
export function normalize(selection) {
|
|
35
|
+
const { anchor, focus } = selection;
|
|
36
|
+
const cmp = comparePaths(anchor.path, focus.path);
|
|
37
|
+
if (cmp < 0)
|
|
38
|
+
return { start: anchor, end: focus };
|
|
39
|
+
if (cmp > 0)
|
|
40
|
+
return { start: focus, end: anchor };
|
|
41
|
+
if (anchor.offset <= focus.offset)
|
|
42
|
+
return { start: anchor, end: focus };
|
|
43
|
+
return { start: focus, end: anchor };
|
|
44
|
+
}
|
|
45
|
+
// ── Undo snapshot ──────────────────────────────────────────────────────────
|
|
46
|
+
/** A join delete rides the caller's snapshot; every other one seats undo at its own coordinate. */
|
|
47
|
+
export function deleteSnapshot(options, path, offset = 0) {
|
|
48
|
+
return options?.undoEntry === 'join' ? 'skip' : { path: docPathFrom(path), offset };
|
|
49
|
+
}
|
|
50
|
+
// ── Range walk ─────────────────────────────────────────────────────────────
|
|
51
|
+
/** Every block path strictly between `start` and `end`, at every nesting level. */
|
|
52
|
+
export function walkBetween(doc, start, end) {
|
|
53
|
+
if (comparePaths(start, end) >= 0)
|
|
54
|
+
return [];
|
|
55
|
+
const result = [];
|
|
56
|
+
function visit(node, path) {
|
|
57
|
+
if (isPathBetween(path, start, end)) {
|
|
58
|
+
result.push([...path]);
|
|
59
|
+
}
|
|
60
|
+
if (!node.children)
|
|
61
|
+
return;
|
|
62
|
+
for (let i = 0; i < node.children.length; i++) {
|
|
63
|
+
const childPath = [...path, i];
|
|
64
|
+
// Skip subtrees entirely before start (an ancestor of start still holds it) or after end.
|
|
65
|
+
if (!pathHasPrefix(start, childPath) && comparePaths(childPath, start) < 0)
|
|
66
|
+
continue;
|
|
67
|
+
if (comparePaths(childPath, end) >= 0)
|
|
68
|
+
break;
|
|
69
|
+
visit(node.children[i], childPath);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
visit(doc, []);
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Position of a block relative to a selection, for overlay rendering. 'single-block'
|
|
77
|
+
* tells the caller to delegate to the browser instead of painting.
|
|
78
|
+
*/
|
|
79
|
+
export function classifyBlockForSelection(path, selection) {
|
|
80
|
+
const { start, end } = normalize(selection);
|
|
81
|
+
if (comparePaths(start.path, end.path) === 0) {
|
|
82
|
+
return comparePaths(path, start.path) === 0 ? 'single-block' : 'outside';
|
|
83
|
+
}
|
|
84
|
+
if (comparePaths(path, start.path) === 0)
|
|
85
|
+
return 'start';
|
|
86
|
+
if (comparePaths(path, end.path) === 0)
|
|
87
|
+
return 'end';
|
|
88
|
+
if (isPathBetween(path, start.path, end.path))
|
|
89
|
+
return 'middle';
|
|
90
|
+
return 'outside';
|
|
91
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deletion ceremony shared by every rangeDelete branch (generic, chrome, table): covered paths
|
|
3
|
+
* splice identity-gated in reverse doc order, with cascading empty-ancestor cleanup. The wall
|
|
4
|
+
* branches also reduce covered paths to subtree roots so a container dies as ONE splice with
|
|
5
|
+
* children intact, keeping a commit scope or undo entry holding the detached node clean.
|
|
6
|
+
*/
|
|
7
|
+
import type { GrammarView } from '../schema/block-openers';
|
|
8
|
+
import type { PresentationMode } from '../presentation-mode';
|
|
9
|
+
import type { InlineResolverRef } from '../schema/inline-construct-policy';
|
|
10
|
+
import type { CstNode, Document } from '../core/nodes';
|
|
11
|
+
import type { SelectionPoint } from './primitives';
|
|
12
|
+
import type { SharingState } from '../tree-operations/sharing';
|
|
13
|
+
import { type ChromeContainer } from './range-delete-chrome';
|
|
14
|
+
/**
|
|
15
|
+
* Identity-gated reverse-doc-order deletion: a deeper delete + cascade can shift a survivor
|
|
16
|
+
* into an outer slot, so each path is re-resolved and spliced only while it still holds the
|
|
17
|
+
* node captured up front. Caller must own every parent spine BEFORE calling (G1.9).
|
|
18
|
+
*/
|
|
19
|
+
export declare function deleteSubtreesIdentityGated(doc: Document, deletionPaths: number[][], lcaPath: number[], sharing: SharingState): void;
|
|
20
|
+
/** The live-seam reads a prose truncation needs; both undefined outside live. */
|
|
21
|
+
export interface LiveSeamContext {
|
|
22
|
+
presentationMode: PresentationMode | undefined;
|
|
23
|
+
linkRef: InlineResolverRef | undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Reparse the bytes surviving at an endpoint's slot, through the source kind's own write rule:
|
|
27
|
+
* the reparse re-derives metadata from bytes, so structure the truncation dropped and the rule
|
|
28
|
+
* restores (a fence closer) has to land before it. The slot's leading trivia rides across, and
|
|
29
|
+
* an empty slice gives a bare paragraph, on the source block's line ending (G4.20).
|
|
30
|
+
*/
|
|
31
|
+
export declare function reparseTruncatedEndpoint(node: CstNode, slice: string): CstNode[];
|
|
32
|
+
/**
|
|
33
|
+
* Install an endpoint's replacement, stamped as the live tree's own. The splice door settles the
|
|
34
|
+
* blank run a truncation left the slot in (G2.13); `sharing` owns the writes.
|
|
35
|
+
*/
|
|
36
|
+
export declare function installTruncatedEndpoint(doc: Document, path: number[], replacement: CstNode[], sharing: SharingState): void;
|
|
37
|
+
/**
|
|
38
|
+
* Truncate the start endpoint in place, after the planned deletion: a chrome start keeps its
|
|
39
|
+
* bytes literal by raw write; a prose head crosses the unpaired-run cleanup, then reinstalls
|
|
40
|
+
* through the endpoint reparse. Returns the seam the collapsed caret lands on. `isChrome` is
|
|
41
|
+
* the caller's own derivation, read before any splice moved the tree.
|
|
42
|
+
*/
|
|
43
|
+
export declare function truncateStartInPlace(doc: Document, start: SelectionPoint, startBlock: CstNode, isChrome: boolean, live: LiveSeamContext, sharing: SharingState, tag: string): number;
|
|
44
|
+
/**
|
|
45
|
+
* Truncate the end endpoint in place, before the planned deletion (its path is still live):
|
|
46
|
+
* chrome by raw write, prose through the cleanup + reparse. Returns the surviving tail node
|
|
47
|
+
* re-read through the tree (design rule 5), for a caller that must locate it after splices.
|
|
48
|
+
*/
|
|
49
|
+
export declare function truncateEndInPlace(doc: Document, end: SelectionPoint, endBlock: CstNode, isChrome: boolean, live: LiveSeamContext, sharing: SharingState, tag: string): CstNode | null;
|
|
50
|
+
export interface EndWall {
|
|
51
|
+
container: ChromeContainer;
|
|
52
|
+
consumed: boolean;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* End-side wall context: the chrome container holding the end point, when the range enters it
|
|
56
|
+
* from outside. `consumed` means the whole subtree is covered (a prose end's last-byte rule, or
|
|
57
|
+
* an emptied table on the container's last-child chain), so the container unit-deletes.
|
|
58
|
+
*/
|
|
59
|
+
export declare function resolveEndWall(doc: Document, start: SelectionPoint, end: SelectionPoint, endTableEmptied: boolean | null): EndWall | null;
|
|
60
|
+
export interface DeletionPlan {
|
|
61
|
+
deletionPaths: number[][];
|
|
62
|
+
chromeClearChain: CstNode[] | null;
|
|
63
|
+
/** The epoch the plan was collected against; the apply step's splices own their
|
|
64
|
+
* spines through it, so no case has to re-thread it. */
|
|
65
|
+
sharing: SharingState;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Plan the deletion via {@link collectDeletionPlan}, own every deletion path's parent spine
|
|
69
|
+
* before any splice (G1.9), and resolve the LCA cascade cleanup stops at. The caller resolves
|
|
70
|
+
* `wall` itself: its `consumed` flag also gates each case's endpoint prose-replace.
|
|
71
|
+
*/
|
|
72
|
+
export declare function planCrossBlockDeletion(doc: Document, start: SelectionPoint, end: SelectionPoint, endpointPaths: number[][], wall: EndWall | null, sharing: SharingState): {
|
|
73
|
+
plan: DeletionPlan;
|
|
74
|
+
lcaPath: number[];
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Apply the plan atomically: clear a surviving end container's covered chrome (raw write, never
|
|
78
|
+
* a node delete), then splice the covered subtrees in reverse doc order under the identity gate.
|
|
79
|
+
*/
|
|
80
|
+
export declare function applyPlannedDeletion(doc: Document, plan: DeletionPlan, lcaPath: number[]): void;
|
|
81
|
+
/**
|
|
82
|
+
* Rebuild every deletion path's surviving ancestry, then the cleared chrome's opener line
|
|
83
|
+
* (chain-based, so the re-emit survives the splices). Case-specific rebuilds stay at call sites.
|
|
84
|
+
*/
|
|
85
|
+
export declare function rebuildSharedAncestries(doc: Document, plan: DeletionPlan, sharing: SharingState, grammar: GrammarView | undefined): void;
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deletion ceremony shared by every rangeDelete branch (generic, chrome, table): covered paths
|
|
3
|
+
* splice identity-gated in reverse doc order, with cascading empty-ancestor cleanup. The wall
|
|
4
|
+
* branches also reduce covered paths to subtree roots so a container dies as ONE splice with
|
|
5
|
+
* children intact, keeping a commit scope or undo entry holding the detached node clean.
|
|
6
|
+
*/
|
|
7
|
+
import { parse } from '../core/parser';
|
|
8
|
+
import { displayLength, terminateLine, trailingLineEnding } from '../core/lines';
|
|
9
|
+
import { charOffsetOf, walkBetween } from './primitives';
|
|
10
|
+
import { comparePaths, isStrictAncestorOf, isPathSubtreeBetween, lowestCommonAncestor, pathHasPrefix, pathsEqual } from './path-math';
|
|
11
|
+
import { cascadeCleanupEmptyAncestors } from '../tree-operations/cleanup';
|
|
12
|
+
import { deleteAtPath, replaceAtPath } from '../tree-operations/path-mutate';
|
|
13
|
+
import { blockNodeAt, cleanJoinedRaw, emptyParagraph, nodeAt, normalizeOwnRaw } from '../tree-operations/node-ops';
|
|
14
|
+
import { ensureUnsharedPath, rebuildUnsharedAncestry, rebuildUnsharedChain } from '../tree-operations/unshare';
|
|
15
|
+
// Wall primitives live with the chrome branch, which imports the atoms below back. The
|
|
16
|
+
// resulting cycle is function-body-only (resolved at call time, never at module load), so it
|
|
17
|
+
// is safe.
|
|
18
|
+
import { nearestChromeContainer, rangeConsumesContainer, lastChildDescendant } from './range-delete-chrome';
|
|
19
|
+
/** Subtree roots only: one splice per covered subtree, never a child-by-child emptying. */
|
|
20
|
+
function filterToSubtreeRoots(paths) {
|
|
21
|
+
return paths.filter((p) => !paths.some((q) => isStrictAncestorOf(q, p)));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Identity-gated reverse-doc-order deletion: a deeper delete + cascade can shift a survivor
|
|
25
|
+
* into an outer slot, so each path is re-resolved and spliced only while it still holds the
|
|
26
|
+
* node captured up front. Caller must own every parent spine BEFORE calling (G1.9).
|
|
27
|
+
*/
|
|
28
|
+
export function deleteSubtreesIdentityGated(doc, deletionPaths, lcaPath, sharing) {
|
|
29
|
+
const targetNodes = deletionPaths.map((p) => nodeAt(doc, p));
|
|
30
|
+
const reverseSortedIndices = deletionPaths
|
|
31
|
+
.map((_, i) => i)
|
|
32
|
+
.sort((a, b) => comparePaths(deletionPaths[b], deletionPaths[a]));
|
|
33
|
+
for (const i of reverseSortedIndices) {
|
|
34
|
+
const path = deletionPaths[i];
|
|
35
|
+
if (nodeAt(doc, path) === targetNodes[i]) {
|
|
36
|
+
deleteAtPath(doc, path, sharing);
|
|
37
|
+
cascadeCleanupEmptyAncestors(doc, path, lcaPath, sharing);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A wall-branch truncation is half a join: the runs it strands, their partner gone with the
|
|
43
|
+
* cut, are bytes the reader never saw, so a kept prose side crosses the registered cleaner
|
|
44
|
+
* (live-mode.md § 4.5), expressed as a join with the block's own edge. Identity outside live;
|
|
45
|
+
* a chrome child's raw write never routes here — the wall stays byte-literal.
|
|
46
|
+
*/
|
|
47
|
+
function cleanTruncatedProse(node, kept, cut, live) {
|
|
48
|
+
const join = kept === 'head'
|
|
49
|
+
? {
|
|
50
|
+
mergedRaw: node.raw.slice(0, cut),
|
|
51
|
+
seam: cut,
|
|
52
|
+
start: { node, offset: cut },
|
|
53
|
+
end: { node, offset: displayLength(node.raw) }
|
|
54
|
+
}
|
|
55
|
+
: {
|
|
56
|
+
mergedRaw: node.raw.slice(cut),
|
|
57
|
+
seam: 0,
|
|
58
|
+
start: { node, offset: 0 },
|
|
59
|
+
end: { node, offset: cut }
|
|
60
|
+
};
|
|
61
|
+
return cleanJoinedRaw({ ...join, linkRef: live.linkRef }, live.presentationMode);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Reparse the bytes surviving at an endpoint's slot, through the source kind's own write rule:
|
|
65
|
+
* the reparse re-derives metadata from bytes, so structure the truncation dropped and the rule
|
|
66
|
+
* restores (a fence closer) has to land before it. The slot's leading trivia rides across, and
|
|
67
|
+
* an empty slice gives a bare paragraph, on the source block's line ending (G4.20).
|
|
68
|
+
*/
|
|
69
|
+
export function reparseTruncatedEndpoint(node, slice) {
|
|
70
|
+
const lineEnding = trailingLineEnding(node.raw);
|
|
71
|
+
const reparsed = parse(normalizeOwnRaw(node, slice) || lineEnding, { scope: 'fragment' });
|
|
72
|
+
if (reparsed.children.length === 0) {
|
|
73
|
+
return [emptyParagraph(node.leadingTrivia, lineEnding)];
|
|
74
|
+
}
|
|
75
|
+
const cloned = reparsed.children.slice();
|
|
76
|
+
cloned[0] = { ...cloned[0], leadingTrivia: node.leadingTrivia };
|
|
77
|
+
// The peeled trailing blank line has no follower slot here, so it stays in raw.
|
|
78
|
+
cloned[cloned.length - 1].raw += reparsed.suffix;
|
|
79
|
+
return cloned;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Install an endpoint's replacement, stamped as the live tree's own. The splice door settles the
|
|
83
|
+
* blank run a truncation left the slot in (G2.13); `sharing` owns the writes.
|
|
84
|
+
*/
|
|
85
|
+
export function installTruncatedEndpoint(doc, path, replacement, sharing) {
|
|
86
|
+
for (const node of replacement)
|
|
87
|
+
sharing.stamp(node);
|
|
88
|
+
replaceAtPath(doc, path, replacement, sharing);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Truncate the start endpoint in place, after the planned deletion: a chrome start keeps its
|
|
92
|
+
* bytes literal by raw write; a prose head crosses the unpaired-run cleanup, then reinstalls
|
|
93
|
+
* through the endpoint reparse. Returns the seam the collapsed caret lands on. `isChrome` is
|
|
94
|
+
* the caller's own derivation, read before any splice moved the tree.
|
|
95
|
+
*/
|
|
96
|
+
export function truncateStartInPlace(doc, start, startBlock, isChrome, live, sharing, tag) {
|
|
97
|
+
const cut = charOffsetOf(start, tag);
|
|
98
|
+
const head = isChrome
|
|
99
|
+
? { raw: startBlock.raw.slice(0, cut), seam: cut }
|
|
100
|
+
: cleanTruncatedProse(startBlock, 'head', cut, live);
|
|
101
|
+
if (isChrome) {
|
|
102
|
+
startBlock.raw = terminateLine(head.raw, startBlock.raw);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
installTruncatedEndpoint(doc, start.path, reparseTruncatedEndpoint(startBlock, terminateLine(head.raw, startBlock.raw)), sharing);
|
|
106
|
+
}
|
|
107
|
+
return head.seam;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Truncate the end endpoint in place, before the planned deletion (its path is still live):
|
|
111
|
+
* chrome by raw write, prose through the cleanup + reparse. Returns the surviving tail node
|
|
112
|
+
* re-read through the tree (design rule 5), for a caller that must locate it after splices.
|
|
113
|
+
*/
|
|
114
|
+
export function truncateEndInPlace(doc, end, endBlock, isChrome, live, sharing, tag) {
|
|
115
|
+
const cut = charOffsetOf(end, tag);
|
|
116
|
+
if (isChrome) {
|
|
117
|
+
endBlock.raw = endBlock.raw.slice(cut) || trailingLineEnding(endBlock.raw);
|
|
118
|
+
return endBlock;
|
|
119
|
+
}
|
|
120
|
+
const tail = cleanTruncatedProse(endBlock, 'tail', cut, live).raw;
|
|
121
|
+
installTruncatedEndpoint(doc, end.path, reparseTruncatedEndpoint(endBlock, tail), sharing);
|
|
122
|
+
return blockNodeAt(doc, end.path);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* End-side wall context: the chrome container holding the end point, when the range enters it
|
|
126
|
+
* from outside. `consumed` means the whole subtree is covered (a prose end's last-byte rule, or
|
|
127
|
+
* an emptied table on the container's last-child chain), so the container unit-deletes.
|
|
128
|
+
*/
|
|
129
|
+
export function resolveEndWall(doc, start, end, endTableEmptied) {
|
|
130
|
+
const container = nearestChromeContainer(doc, end.path);
|
|
131
|
+
if (!container || pathHasPrefix(start.path, container.path))
|
|
132
|
+
return null;
|
|
133
|
+
const consumed = endTableEmptied === null
|
|
134
|
+
? rangeConsumesContainer(container, end)
|
|
135
|
+
: endTableEmptied && lastChildDescendant(container, end.path) !== null;
|
|
136
|
+
return { container, consumed };
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Covered subtree roots plus endpoint paths the caller marks for removal, honoring the chrome
|
|
140
|
+
* wall: a surviving end container's covered chrome CLEARS instead of deleting (returned as an
|
|
141
|
+
* unshared chain for the caller's raw write), and a consumed container becomes one unit delete.
|
|
142
|
+
*/
|
|
143
|
+
function collectDeletionPlan(doc, start, end, endpointPaths, wall, sharing) {
|
|
144
|
+
const between = walkBetween(doc, start.path, end.path).filter((p) => isPathSubtreeBetween(p, start.path, end.path));
|
|
145
|
+
const chromeClearPath = wall && !wall.consumed ? [...wall.container.path, 0] : null;
|
|
146
|
+
let chromeClearChain = null;
|
|
147
|
+
let candidates = [];
|
|
148
|
+
for (const p of between) {
|
|
149
|
+
if (chromeClearPath && pathsEqual(p, chromeClearPath)) {
|
|
150
|
+
const chain = ensureUnsharedPath(doc, p, sharing);
|
|
151
|
+
if (chain.length === p.length)
|
|
152
|
+
chromeClearChain = chain;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
candidates.push(p);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
candidates.push(...endpointPaths);
|
|
159
|
+
if (wall?.consumed) {
|
|
160
|
+
candidates = candidates.filter((p) => !pathHasPrefix(p, wall.container.path));
|
|
161
|
+
candidates.push(wall.container.path.slice());
|
|
162
|
+
}
|
|
163
|
+
return { deletionPaths: filterToSubtreeRoots(candidates), chromeClearChain, sharing };
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Plan the deletion via {@link collectDeletionPlan}, own every deletion path's parent spine
|
|
167
|
+
* before any splice (G1.9), and resolve the LCA cascade cleanup stops at. The caller resolves
|
|
168
|
+
* `wall` itself: its `consumed` flag also gates each case's endpoint prose-replace.
|
|
169
|
+
*/
|
|
170
|
+
export function planCrossBlockDeletion(doc, start, end, endpointPaths, wall, sharing) {
|
|
171
|
+
const plan = collectDeletionPlan(doc, start, end, endpointPaths, wall, sharing);
|
|
172
|
+
for (const path of plan.deletionPaths) {
|
|
173
|
+
ensureUnsharedPath(doc, path.slice(0, -1), sharing);
|
|
174
|
+
}
|
|
175
|
+
return { plan, lcaPath: lowestCommonAncestor(start.path, end.path) };
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Apply the plan atomically: clear a surviving end container's covered chrome (raw write, never
|
|
179
|
+
* a node delete), then splice the covered subtrees in reverse doc order under the identity gate.
|
|
180
|
+
*/
|
|
181
|
+
export function applyPlannedDeletion(doc, plan, lcaPath) {
|
|
182
|
+
const chrome = plan.chromeClearChain?.[plan.chromeClearChain.length - 1];
|
|
183
|
+
if (chrome)
|
|
184
|
+
chrome.raw = '\n';
|
|
185
|
+
deleteSubtreesIdentityGated(doc, plan.deletionPaths, lcaPath, plan.sharing);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Rebuild every deletion path's surviving ancestry, then the cleared chrome's opener line
|
|
189
|
+
* (chain-based, so the re-emit survives the splices). Case-specific rebuilds stay at call sites.
|
|
190
|
+
*/
|
|
191
|
+
export function rebuildSharedAncestries(doc, plan, sharing, grammar) {
|
|
192
|
+
for (const path of plan.deletionPaths) {
|
|
193
|
+
rebuildUnsharedAncestry(doc, path, sharing, null, grammar);
|
|
194
|
+
}
|
|
195
|
+
if (plan.chromeClearChain)
|
|
196
|
+
rebuildUnsharedChain(doc, plan.chromeClearChain, sharing, null, grammar);
|
|
197
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reserved-chrome branch of rangeDelete, the wall rule: nothing merges across a
|
|
3
|
+
* `reservedChrome` container's wall. Outside endpoints truncate in place, covered chrome clears
|
|
4
|
+
* (never node-deletes, G1.14), covered body children delete, and the container dies only when
|
|
5
|
+
* the range consumes its whole subtree, then as ONE splice with children intact.
|
|
6
|
+
*/
|
|
7
|
+
import type { GrammarView } from '../schema/block-openers';
|
|
8
|
+
import type { PresentationMode } from '../presentation-mode';
|
|
9
|
+
import type { InlineResolverRef } from '../schema/inline-construct-policy';
|
|
10
|
+
import type { CstNode, Document } from '../core/nodes';
|
|
11
|
+
import type { SelectionPoint } from './primitives';
|
|
12
|
+
import type { RangeDeleteResult } from './range-delete';
|
|
13
|
+
import type { SharingState } from '../tree-operations/sharing';
|
|
14
|
+
/**
|
|
15
|
+
* True when the range must take the wall path: an endpoint sits inside a `reservedChrome`
|
|
16
|
+
* container the range crosses out of or into, or the range starts in the chrome leaf itself.
|
|
17
|
+
* Same-block, body-only, and enclose-from-outside ranges stay on the generic path.
|
|
18
|
+
*/
|
|
19
|
+
export declare function involvesReservedChrome(doc: Document, start: SelectionPoint, end: SelectionPoint): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Delete [start, end] under the wall rule. Both endpoints truncate in place (chrome by a raw
|
|
22
|
+
* write, keeping the kind via contextDependentKind; prose by a reparse of the surviving slice),
|
|
23
|
+
* and nothing merges across the wall. Collapsed caret keeps generic start-position semantics.
|
|
24
|
+
*/
|
|
25
|
+
export declare function chromeAwareRangeDelete(doc: Document, start: SelectionPoint, end: SelectionPoint, sharing: SharingState, grammar: GrammarView | undefined, presentationMode?: PresentationMode, linkRef?: InlineResolverRef): RangeDeleteResult;
|
|
26
|
+
export interface ChromeContainer {
|
|
27
|
+
path: number[];
|
|
28
|
+
node: CstNode;
|
|
29
|
+
}
|
|
30
|
+
/** Deepest strict ancestor of `path` whose kind declares reservedChrome. */
|
|
31
|
+
export declare function nearestChromeContainer(doc: Document, path: number[]): ChromeContainer | null;
|
|
32
|
+
export declare function isChromeChild(container: ChromeContainer, leafPath: number[]): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* The range's end lands on the container's last byte: every step from the container is a
|
|
35
|
+
* last-child edge and the offset consumes the block's visible text.
|
|
36
|
+
*/
|
|
37
|
+
export declare function rangeConsumesContainer(container: ChromeContainer, end: SelectionPoint): boolean;
|
|
38
|
+
/** The node at `path` when every step from the container is a last-child edge, else null. */
|
|
39
|
+
export declare function lastChildDescendant(container: ChromeContainer, path: number[]): CstNode | null;
|