@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,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared keydown prelude for contenteditable blocks: Ctrl+A counter, cross-block dispatch,
|
|
3
|
+
* sticky-column capture/reset, undo/redo, arrow boundary navigation. Block-specific handlers
|
|
4
|
+
* (Enter, Backspace, Tab, formatting) stay in each component.
|
|
5
|
+
*/
|
|
6
|
+
import type { FocusActions, HistoryActions } from '../action-contracts';
|
|
7
|
+
import type { BlockElLookup, DocumentGetter } from '../editor-keys';
|
|
8
|
+
import type { StickyColumnState } from '../cursor/sticky-column';
|
|
9
|
+
import type { EdgeAffinityState } from '../cursor/edge-affinity';
|
|
10
|
+
import type { SelectionState } from './selection-state.svelte';
|
|
11
|
+
import type { CrossBlockHandlers } from './cross-block/dispatch';
|
|
12
|
+
import type { PluginActivation } from '../schema/plugin-activation';
|
|
13
|
+
export interface SharedKeydownContext extends LandableBoundsContext {
|
|
14
|
+
getEl(): HTMLElement | null;
|
|
15
|
+
/** Current caret offset in raw-content coordinates (ambient marker excluded). */
|
|
16
|
+
getCursorOffset(): number | null;
|
|
17
|
+
/** Shift-selection focus offset in raw-content coordinates (ambient marker excluded). */
|
|
18
|
+
getFocusOffset(): number | null;
|
|
19
|
+
getIndex(): number;
|
|
20
|
+
getMyPath(): number[];
|
|
21
|
+
getDoc: DocumentGetter;
|
|
22
|
+
crossBlock: CrossBlockHandlers;
|
|
23
|
+
selection: SelectionState;
|
|
24
|
+
stickyColumn: StickyColumnState;
|
|
25
|
+
edgeAffinity: EdgeAffinityState;
|
|
26
|
+
history: HistoryActions;
|
|
27
|
+
focus: FocusActions;
|
|
28
|
+
getBlockElByPath: BlockElLookup;
|
|
29
|
+
/** The plugins this instance activated; without it the suppression below swallows a
|
|
30
|
+
* chord another editor's plugin claimed. `undefined` = every installed plugin. */
|
|
31
|
+
activePlugins: PluginActivation | undefined;
|
|
32
|
+
}
|
|
33
|
+
/** True when the event was fully handled; the caller must skip its block-specific branches. */
|
|
34
|
+
export declare function handleSharedKeydown(e: KeyboardEvent, ctx: SharedKeydownContext): Promise<boolean>;
|
|
35
|
+
export interface LandableBounds {
|
|
36
|
+
start: number;
|
|
37
|
+
end: number;
|
|
38
|
+
}
|
|
39
|
+
/** The reads the bounds need, so a block-edge gate outside this file can ask without standing up
|
|
40
|
+
* the whole keydown context. */
|
|
41
|
+
export interface LandableBoundsContext {
|
|
42
|
+
/** textContent length in raw-content coordinates (ambient marker excluded). */
|
|
43
|
+
getTextLen(): number;
|
|
44
|
+
getAmbientLength(): number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The raw offsets a caret can actually reach in this block, from the walk that decides where a
|
|
48
|
+
* caret lands. A mode that hides a block's own markers with no reveal puts those bytes out of
|
|
49
|
+
* reach, so the exits move in to what the DOM can land — the kind's declared content range is
|
|
50
|
+
* not that bound: paragraph, fenced code and table cell each declare the whole raw and still
|
|
51
|
+
* open or close with a run nothing paints. Every block-edge gate reads this, not 0/length.
|
|
52
|
+
*/
|
|
53
|
+
export declare function caretLandableBounds(ctx: LandableBoundsContext, el: HTMLElement): LandableBounds;
|
|
54
|
+
/**
|
|
55
|
+
* Routes historyUndo/historyRedo through the undo controller and delegates cross-block
|
|
56
|
+
* paste/type-replace. True when the caller should return early from its own `onBeforeInput`.
|
|
57
|
+
*/
|
|
58
|
+
export declare function handleSharedBeforeInput(e: InputEvent, ctx: {
|
|
59
|
+
history: HistoryActions;
|
|
60
|
+
crossBlock: CrossBlockHandlers;
|
|
61
|
+
}): Promise<boolean>;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared keydown prelude for contenteditable blocks: Ctrl+A counter, cross-block dispatch,
|
|
3
|
+
* sticky-column capture/reset, undo/redo, arrow boundary navigation. Block-specific handlers
|
|
4
|
+
* (Enter, Backspace, Tab, formatting) stay in each component.
|
|
5
|
+
*/
|
|
6
|
+
import { extendFocusToNextBlock, extendFocusToPreviousBlock, scrollFocusBlockIntoView } from './keyboard-extend';
|
|
7
|
+
import { getCurrentCursorEditorRelativeX } from '../cursor/sticky-measure';
|
|
8
|
+
import { landableRawBounds } from '../cursor/widget-offset';
|
|
9
|
+
import { isAtFirstVisualLine, isAtLastVisualLine } from '../cursor/visual-lines';
|
|
10
|
+
import { eventToChord } from '../schema/keybindings';
|
|
11
|
+
import { isDefaultGlobalChord } from '../schema/commands';
|
|
12
|
+
/** True when the event was fully handled; the caller must skip its block-specific branches. */
|
|
13
|
+
export async function handleSharedKeydown(e, ctx) {
|
|
14
|
+
// Bare modifier keys don't reset the Ctrl+A doubling counter: pressing Control before 'a' is
|
|
15
|
+
// part of the chord, not a separate action.
|
|
16
|
+
const isCtrlA = (e.ctrlKey || e.metaKey) && e.key === 'a' && !e.shiftKey;
|
|
17
|
+
const isBareModifier = e.key === 'Control' ||
|
|
18
|
+
e.key === 'Shift' ||
|
|
19
|
+
e.key === 'Alt' ||
|
|
20
|
+
e.key === 'Meta' ||
|
|
21
|
+
e.key === 'AltGraph' ||
|
|
22
|
+
e.key === 'CapsLock';
|
|
23
|
+
if (!isCtrlA && !isBareModifier) {
|
|
24
|
+
ctx.selection.resetSelectAllCount();
|
|
25
|
+
}
|
|
26
|
+
if (await ctx.crossBlock.handleKeyDown(e))
|
|
27
|
+
return true;
|
|
28
|
+
const el = ctx.getEl();
|
|
29
|
+
if (!el)
|
|
30
|
+
return false;
|
|
31
|
+
ctx.stickyColumn.noteKey(e, () => getCurrentCursorEditorRelativeX(el));
|
|
32
|
+
ctx.edgeAffinity.note(e);
|
|
33
|
+
// Native contenteditable history stays suppressed on keydown, since Ctrl+Y doesn't fire
|
|
34
|
+
// beforeinput historyRedo in Chromium/WebView2. The DEFAULT table is the right question here:
|
|
35
|
+
// it names the chords with a native history default, and running the command is the block's
|
|
36
|
+
// own override-aware dispatch, one branch further on.
|
|
37
|
+
const historyChord = eventToChord(e);
|
|
38
|
+
if (historyChord && isDefaultGlobalChord(historyChord, ctx.activePlugins)) {
|
|
39
|
+
e.preventDefault();
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
// ── Arrow boundary navigation ─────────────────────────────────────────
|
|
43
|
+
const index = ctx.getIndex();
|
|
44
|
+
const myPath = ctx.getMyPath();
|
|
45
|
+
// Lazy: off the arrow path the block's bounds are never asked for, and the resolve
|
|
46
|
+
// walks the block's DOM.
|
|
47
|
+
let cachedBounds = null;
|
|
48
|
+
const bounds = () => (cachedBounds ??= caretLandableBounds(ctx, el));
|
|
49
|
+
// Read the focus offset (not the anchor) for Shift+Arrow: after a forward extension the
|
|
50
|
+
// anchor stays mid-block while the focus sits at the boundary.
|
|
51
|
+
const shiftOffset = e.shiftKey ? ctx.getFocusOffset() : null;
|
|
52
|
+
if (e.key === 'ArrowUp') {
|
|
53
|
+
const offset = shiftOffset ?? ctx.getCursorOffset() ?? 0;
|
|
54
|
+
if (isAtFirstVisualLine(el, offset, bounds().start)) {
|
|
55
|
+
// Cross the boundary only when focus is already at the block's first reachable
|
|
56
|
+
// offset, so native Shift+ArrowUp extension has nowhere left to go within it.
|
|
57
|
+
if (e.shiftKey && offset <= bounds().start) {
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
extendFocusToPreviousBlock(ctx.selection, ctx.getDoc(), el, myPath, 'start');
|
|
60
|
+
scrollFocusBlockIntoView(ctx.selection, ctx.getBlockElByPath);
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
if (!e.shiftKey && !e.altKey) {
|
|
64
|
+
e.preventDefault();
|
|
65
|
+
void ctx.focus.moveFocus(index - 1, { stickyColumnFrom: 'below' });
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (e.key === 'ArrowDown') {
|
|
71
|
+
const offset = shiftOffset ?? ctx.getCursorOffset() ?? 0;
|
|
72
|
+
if (isAtLastVisualLine(el, offset, bounds().end)) {
|
|
73
|
+
// Cross the boundary only when focus is already at the block's last reachable
|
|
74
|
+
// offset, so native Shift+ArrowDown extension has nowhere left to go.
|
|
75
|
+
if (e.shiftKey && offset >= bounds().end) {
|
|
76
|
+
e.preventDefault();
|
|
77
|
+
extendFocusToNextBlock(ctx.selection, ctx.getDoc(), el, myPath, 'vertical');
|
|
78
|
+
scrollFocusBlockIntoView(ctx.selection, ctx.getBlockElByPath);
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
if (!e.shiftKey && !e.altKey) {
|
|
82
|
+
e.preventDefault();
|
|
83
|
+
void ctx.focus.moveFocus(index + 1, { stickyColumnFrom: 'above' });
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (e.key === 'ArrowLeft') {
|
|
89
|
+
// Shift+Arrow reads focus, not anchor: getCursorOffset() gives the range start, which is
|
|
90
|
+
// the anchor for a forward selection. That would extend cross-block while focus is
|
|
91
|
+
// contracting toward a non-zero anchor, and misfire for backward selections.
|
|
92
|
+
const offset = e.shiftKey ? (ctx.getFocusOffset() ?? bounds().start) : ctx.getCursorOffset();
|
|
93
|
+
if (offset !== null && offset <= bounds().start) {
|
|
94
|
+
if (e.shiftKey) {
|
|
95
|
+
e.preventDefault();
|
|
96
|
+
extendFocusToPreviousBlock(ctx.selection, ctx.getDoc(), el, myPath);
|
|
97
|
+
scrollFocusBlockIntoView(ctx.selection, ctx.getBlockElByPath);
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
e.preventDefault();
|
|
101
|
+
void ctx.focus.moveFocus(index - 1, 'end');
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (e.key === 'ArrowRight') {
|
|
106
|
+
const offset = e.shiftKey ? (ctx.getFocusOffset() ?? bounds().end) : ctx.getCursorOffset();
|
|
107
|
+
if (offset !== null && offset >= bounds().end) {
|
|
108
|
+
if (e.shiftKey) {
|
|
109
|
+
e.preventDefault();
|
|
110
|
+
extendFocusToNextBlock(ctx.selection, ctx.getDoc(), el, myPath);
|
|
111
|
+
scrollFocusBlockIntoView(ctx.selection, ctx.getBlockElByPath);
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
e.preventDefault();
|
|
115
|
+
void ctx.focus.moveFocus(index + 1, 'start');
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The raw offsets a caret can actually reach in this block, from the walk that decides where a
|
|
123
|
+
* caret lands. A mode that hides a block's own markers with no reveal puts those bytes out of
|
|
124
|
+
* reach, so the exits move in to what the DOM can land — the kind's declared content range is
|
|
125
|
+
* not that bound: paragraph, fenced code and table cell each declare the whole raw and still
|
|
126
|
+
* open or close with a run nothing paints. Every block-edge gate reads this, not 0/length.
|
|
127
|
+
*/
|
|
128
|
+
export function caretLandableBounds(ctx, el) {
|
|
129
|
+
return landableRawBounds(el, ctx.getAmbientLength()) ?? { start: 0, end: ctx.getTextLen() };
|
|
130
|
+
}
|
|
131
|
+
// ── Shared beforeinput prelude ─────────────────────────────────────────────
|
|
132
|
+
/**
|
|
133
|
+
* Routes historyUndo/historyRedo through the undo controller and delegates cross-block
|
|
134
|
+
* paste/type-replace. True when the caller should return early from its own `onBeforeInput`.
|
|
135
|
+
*/
|
|
136
|
+
export async function handleSharedBeforeInput(e, ctx) {
|
|
137
|
+
if (e.inputType === 'historyUndo') {
|
|
138
|
+
e.preventDefault();
|
|
139
|
+
void ctx.history.requestUndo();
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
if (e.inputType === 'historyRedo') {
|
|
143
|
+
e.preventDefault();
|
|
144
|
+
void ctx.history.requestRedo();
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
if (await ctx.crossBlock.handleBeforeInput(e))
|
|
148
|
+
return true;
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The cell-index space a selection endpoint inside a grid lives in. Offsets are INCLUSIVE cell
|
|
3
|
+
* indices, the space SelectionPoint already uses. The whole-row snap and the two metadata reads
|
|
4
|
+
* answer for a table alone; the coverage tenants answer for any `containerContract: 'grid'` kind.
|
|
5
|
+
* An intra-table pair is deliberately left unsnapped, so rectangular sub-cell selection survives.
|
|
6
|
+
*/
|
|
7
|
+
import type { DocumentView, NodeView } from '../core/node-views';
|
|
8
|
+
import type { SelectionPoint } from './primitives';
|
|
9
|
+
/**
|
|
10
|
+
* The char→cell conversion funnel: a cross-block endpoint inside a table must address the table
|
|
11
|
+
* block by row-major cell index, or a deep `[tableIdx, row, col]` path with a char offset routes
|
|
12
|
+
* the delete down the generic branch and corrupts the grid. SelectionState applies this to every
|
|
13
|
+
* incoming point, so entry paths never call it themselves. Non-table paths pass through.
|
|
14
|
+
*/
|
|
15
|
+
export declare function normalizeTableEndpoint(doc: DocumentView, path: number[], offset: number): SelectionPoint;
|
|
16
|
+
/**
|
|
17
|
+
* How many cells a table's index space holds, the exclusive upper bound on any row-major cell
|
|
18
|
+
* index. `node` must be a table block; the metadata read is unchecked, so other kinds give NaN.
|
|
19
|
+
* Lives beside the bounds check below so a caller's clamp and the check cannot drift apart.
|
|
20
|
+
*/
|
|
21
|
+
export declare function tableCellCount(node: NodeView): number;
|
|
22
|
+
/** One cell of a grid, with the doc-absolute path that addresses it. */
|
|
23
|
+
export interface GridCell {
|
|
24
|
+
node: NodeView;
|
|
25
|
+
path: number[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* `point`'s index in `grid`'s cell space, null where it addresses no cell of it — the side the
|
|
29
|
+
* range runs past, which reads as the grid's own edge. A table's endpoint arrives on the grid path
|
|
30
|
+
* already carrying the index; a plugin grid's keeps the deep `[grid, row, col]` path G1.29 permits,
|
|
31
|
+
* and resolves through the same width {@link coveredGridCells} decodes with.
|
|
32
|
+
*/
|
|
33
|
+
export declare function gridEndpointCellIndex(grid: NodeView, gridPath: number[], point: SelectionPoint): number | null;
|
|
34
|
+
/**
|
|
35
|
+
* The cells a range covers inside one grid, in document order. `from`/`to` are the range's own cell
|
|
36
|
+
* indices IN DOCUMENT ORDER (`from <= to`; unordered inputs answer with fewer cells or none), null
|
|
37
|
+
* on a side the range runs past. Both inside is the RECTANGLE they span — what the overlay paints
|
|
38
|
+
* and `range-delete-table` clears; one inside is a run to that cell inclusive. Rows of cells is the
|
|
39
|
+
* whole shape asked: children that are not rows of cells answer with no cells, rows of unequal
|
|
40
|
+
* width with the wrong cells or none, every index being row 0's width.
|
|
41
|
+
*/
|
|
42
|
+
export declare function coveredGridCells(grid: NodeView, gridPath: number[], from: number | null, to: number | null): GridCell[];
|
|
43
|
+
/**
|
|
44
|
+
* Inverse of {@link normalizeTableEndpoint}: expand an endpoint addressing a table block to its
|
|
45
|
+
* deep `[tableIdx, row, col]` leaf path so reveal/caret placement reaches an off-window cell.
|
|
46
|
+
* Null when the path is already a leaf or the index lands outside the grid. Resolution is on the
|
|
47
|
+
* NODE KIND, not the `cellCoordinate` flag: an intra-table focus is unflagged (see
|
|
48
|
+
* {@link SelectionPoint}) yet still a cell index. Callers reach it through
|
|
49
|
+
* `SelectionState.cellLandingFor`, which is where the landing rule lives.
|
|
50
|
+
*/
|
|
51
|
+
export declare function cellEndpointDeepPath(doc: DocumentView, point: SelectionPoint): number[] | null;
|
|
52
|
+
export declare function snapCrossBlockTableEndpoints(doc: DocumentView, start: SelectionPoint, end: SelectionPoint): {
|
|
53
|
+
start: SelectionPoint;
|
|
54
|
+
end: SelectionPoint;
|
|
55
|
+
};
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The cell-index space a selection endpoint inside a grid lives in. Offsets are INCLUSIVE cell
|
|
3
|
+
* indices, the space SelectionPoint already uses. The whole-row snap and the two metadata reads
|
|
4
|
+
* answer for a table alone; the coverage tenants answer for any `containerContract: 'grid'` kind.
|
|
5
|
+
* An intra-table pair is deliberately left unsnapped, so rectangular sub-cell selection survives.
|
|
6
|
+
*/
|
|
7
|
+
import { metadataOf } from '../core/nodes';
|
|
8
|
+
import { isBlockNode, nodeAt } from '../tree-operations/node-ops';
|
|
9
|
+
import { cellIndexOf } from './primitives';
|
|
10
|
+
import { asCellIndex, cellRowCol } from '../cursor/coordinate-spaces';
|
|
11
|
+
import { comparePaths, pathHasPrefix } from './path-math';
|
|
12
|
+
import { devWarn } from '../dev-warn';
|
|
13
|
+
/**
|
|
14
|
+
* The char→cell conversion funnel: a cross-block endpoint inside a table must address the table
|
|
15
|
+
* block by row-major cell index, or a deep `[tableIdx, row, col]` path with a char offset routes
|
|
16
|
+
* the delete down the generic branch and corrupts the grid. SelectionState applies this to every
|
|
17
|
+
* incoming point, so entry paths never call it themselves. Non-table paths pass through.
|
|
18
|
+
*/
|
|
19
|
+
export function normalizeTableEndpoint(doc, path, offset) {
|
|
20
|
+
for (let d = 0; d < path.length - 1; d++) {
|
|
21
|
+
const node = nodeAt(doc, path.slice(0, d + 1));
|
|
22
|
+
if (node && isBlockNode(node) && node.kind === 'table') {
|
|
23
|
+
const colCount = metadataOf(node, 'table').columnCount;
|
|
24
|
+
const rowIdx = path[d + 1];
|
|
25
|
+
const colIdx = path[d + 2] ?? 0;
|
|
26
|
+
return {
|
|
27
|
+
path: path.slice(0, d + 1),
|
|
28
|
+
offset: asCellIndex(rowIdx * colCount + colIdx),
|
|
29
|
+
cellCoordinate: true
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return { path: path.slice(), offset };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* How many cells a table's index space holds, the exclusive upper bound on any row-major cell
|
|
37
|
+
* index. `node` must be a table block; the metadata read is unchecked, so other kinds give NaN.
|
|
38
|
+
* Lives beside the bounds check below so a caller's clamp and the check cannot drift apart.
|
|
39
|
+
*/
|
|
40
|
+
export function tableCellCount(node) {
|
|
41
|
+
return (node.children?.length ?? 0) * metadataOf(node, 'table').columnCount;
|
|
42
|
+
}
|
|
43
|
+
/** A grid's own width, row 0's cell count — not `metadata.columnCount`: `containerContract: 'grid'`
|
|
44
|
+
* is a plugin contract, and a kind with no table metadata reaches here. A column mutation splices
|
|
45
|
+
* each row and the count together, so the two agree on a table. */
|
|
46
|
+
function gridColumnCount(grid) {
|
|
47
|
+
return grid.children?.[0]?.children?.length ?? 0;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* `point`'s index in `grid`'s cell space, null where it addresses no cell of it — the side the
|
|
51
|
+
* range runs past, which reads as the grid's own edge. A table's endpoint arrives on the grid path
|
|
52
|
+
* already carrying the index; a plugin grid's keeps the deep `[grid, row, col]` path G1.29 permits,
|
|
53
|
+
* and resolves through the same width {@link coveredGridCells} decodes with.
|
|
54
|
+
*/
|
|
55
|
+
export function gridEndpointCellIndex(grid, gridPath, point) {
|
|
56
|
+
if (!pathHasPrefix(point.path, gridPath))
|
|
57
|
+
return null;
|
|
58
|
+
// On the grid's own path, resolution is the NODE KIND's, not the flag's ({@link
|
|
59
|
+
// cellEndpointDeepPath}): a table path IS cell space, so an intra-table rectangle's unflagged
|
|
60
|
+
// corner counts cells, while any other grid holds a char offset addressing no cell.
|
|
61
|
+
if (point.path.length === gridPath.length)
|
|
62
|
+
return point.cellCoordinate || grid.kind === 'table' ? point.offset : null;
|
|
63
|
+
const [row, col = 0] = point.path.slice(gridPath.length);
|
|
64
|
+
return row * gridColumnCount(grid) + col;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The cells a range covers inside one grid, in document order. `from`/`to` are the range's own cell
|
|
68
|
+
* indices IN DOCUMENT ORDER (`from <= to`; unordered inputs answer with fewer cells or none), null
|
|
69
|
+
* on a side the range runs past. Both inside is the RECTANGLE they span — what the overlay paints
|
|
70
|
+
* and `range-delete-table` clears; one inside is a run to that cell inclusive. Rows of cells is the
|
|
71
|
+
* whole shape asked: children that are not rows of cells answer with no cells, rows of unequal
|
|
72
|
+
* width with the wrong cells or none, every index being row 0's width.
|
|
73
|
+
*/
|
|
74
|
+
export function coveredGridCells(grid, gridPath, from, to) {
|
|
75
|
+
const rows = grid.children ?? [];
|
|
76
|
+
const colCount = gridColumnCount(grid);
|
|
77
|
+
if (rows.length === 0 || colCount < 1)
|
|
78
|
+
return [];
|
|
79
|
+
const lastIndex = rows.length * colCount - 1;
|
|
80
|
+
const clamp = (index) => Math.min(Math.max(index, 0), lastIndex);
|
|
81
|
+
const first = cellRowCol(asCellIndex(clamp(from ?? 0)), colCount);
|
|
82
|
+
const last = cellRowCol(asCellIndex(clamp(to ?? lastIndex)), colCount);
|
|
83
|
+
const rectangle = from !== null && to !== null;
|
|
84
|
+
const cells = [];
|
|
85
|
+
for (let row = first.row; row <= last.row; row++) {
|
|
86
|
+
const startCol = rectangle ? Math.min(first.col, last.col) : row === first.row ? first.col : 0;
|
|
87
|
+
const endCol = rectangle
|
|
88
|
+
? Math.max(first.col, last.col)
|
|
89
|
+
: row === last.row
|
|
90
|
+
? last.col
|
|
91
|
+
: colCount - 1;
|
|
92
|
+
for (let col = startCol; col <= endCol; col++) {
|
|
93
|
+
const node = rows[row]?.children?.[col];
|
|
94
|
+
if (node)
|
|
95
|
+
cells.push({ node, path: [...gridPath, row, col] });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return cells;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Inverse of {@link normalizeTableEndpoint}: expand an endpoint addressing a table block to its
|
|
102
|
+
* deep `[tableIdx, row, col]` leaf path so reveal/caret placement reaches an off-window cell.
|
|
103
|
+
* Null when the path is already a leaf or the index lands outside the grid. Resolution is on the
|
|
104
|
+
* NODE KIND, not the `cellCoordinate` flag: an intra-table focus is unflagged (see
|
|
105
|
+
* {@link SelectionPoint}) yet still a cell index. Callers reach it through
|
|
106
|
+
* `SelectionState.cellLandingFor`, which is where the landing rule lives.
|
|
107
|
+
*/
|
|
108
|
+
export function cellEndpointDeepPath(doc, point) {
|
|
109
|
+
const node = nodeAt(doc, point.path);
|
|
110
|
+
if (!node || !isBlockNode(node) || node.kind !== 'table')
|
|
111
|
+
return null;
|
|
112
|
+
const colCount = metadataOf(node, 'table').columnCount;
|
|
113
|
+
const cellIdx = asCellIndex(point.offset);
|
|
114
|
+
const cellCount = tableCellCount(node);
|
|
115
|
+
if (cellIdx < 0 || cellIdx >= cellCount) {
|
|
116
|
+
devWarn('table-endpoint-snap', 'cell index outside the grid', { point, colCount, cellCount });
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
const { row, col } = cellRowCol(cellIdx, colCount);
|
|
120
|
+
return [...point.path, row, col];
|
|
121
|
+
}
|
|
122
|
+
export function snapCrossBlockTableEndpoints(doc, start, end) {
|
|
123
|
+
if (comparePaths(start.path, end.path) === 0)
|
|
124
|
+
return { start, end };
|
|
125
|
+
return {
|
|
126
|
+
start: snapEndpoint(doc, start, 'start'),
|
|
127
|
+
end: snapEndpoint(doc, end, 'end')
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function snapEndpoint(doc, point, side) {
|
|
131
|
+
if (!point.cellCoordinate)
|
|
132
|
+
return point;
|
|
133
|
+
const node = nodeAt(doc, point.path);
|
|
134
|
+
if (!node || !isBlockNode(node) || node.kind !== 'table')
|
|
135
|
+
return point;
|
|
136
|
+
const colCount = metadataOf(node, 'table').columnCount;
|
|
137
|
+
const cellIdx = cellIndexOf(point, 'snapCrossBlockTableEndpoints');
|
|
138
|
+
const { row } = cellRowCol(cellIdx, colCount);
|
|
139
|
+
const snappedOffset = side === 'start' ? row * colCount : row * colCount + colCount - 1;
|
|
140
|
+
if (snappedOffset === cellIdx)
|
|
141
|
+
return point;
|
|
142
|
+
return { ...point, offset: snappedOffset };
|
|
143
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keyboard extension geometry for an intra-table rectangle. Shift+Arrow grows the rectangle
|
|
3
|
+
* cell-by-cell rather than walking the next document-order leaf, which would descend into the
|
|
4
|
+
* table and snap the focus back to cellIdx 0. Vertical extension exits at the row boundary;
|
|
5
|
+
* horizontal extension clamps at the column edges, since a rectangle has no sideways exit.
|
|
6
|
+
*/
|
|
7
|
+
import type { DocumentView } from '../core/node-views';
|
|
8
|
+
import type { SelectionPoint } from './primitives';
|
|
9
|
+
export type ArrowKey = 'ArrowUp' | 'ArrowDown' | 'ArrowLeft' | 'ArrowRight';
|
|
10
|
+
export type TableRectExtension = {
|
|
11
|
+
kind: 'cell';
|
|
12
|
+
offset: number;
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'exit';
|
|
15
|
+
direction: 'forward' | 'backward';
|
|
16
|
+
fromCellPath: number[];
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* The extension a Shift+Arrow produces for an intra-table rectangle, or null when the selection
|
|
20
|
+
* is not a same-table rectangle. `anchor === focus` is a valid one-cell rectangle, so the first
|
|
21
|
+
* Shift+Arrow starts here too. Offsets are cell indices, context-established by the shared path.
|
|
22
|
+
*/
|
|
23
|
+
export declare function intraTableRectExtension(doc: DocumentView, anchor: SelectionPoint | null, focus: SelectionPoint | null, key: ArrowKey): TableRectExtension | null;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keyboard extension geometry for an intra-table rectangle. Shift+Arrow grows the rectangle
|
|
3
|
+
* cell-by-cell rather than walking the next document-order leaf, which would descend into the
|
|
4
|
+
* table and snap the focus back to cellIdx 0. Vertical extension exits at the row boundary;
|
|
5
|
+
* horizontal extension clamps at the column edges, since a rectangle has no sideways exit.
|
|
6
|
+
*/
|
|
7
|
+
import { metadataOf } from '../core/nodes';
|
|
8
|
+
import { isBlockNode, nodeAt } from '../tree-operations/node-ops';
|
|
9
|
+
import { cellRowCol } from '../cursor/coordinate-spaces';
|
|
10
|
+
import { pathsEqual } from './path-math';
|
|
11
|
+
/**
|
|
12
|
+
* The extension a Shift+Arrow produces for an intra-table rectangle, or null when the selection
|
|
13
|
+
* is not a same-table rectangle. `anchor === focus` is a valid one-cell rectangle, so the first
|
|
14
|
+
* Shift+Arrow starts here too. Offsets are cell indices, context-established by the shared path.
|
|
15
|
+
*/
|
|
16
|
+
export function intraTableRectExtension(doc, anchor, focus, key) {
|
|
17
|
+
if (!anchor || !focus || !pathsEqual(anchor.path, focus.path))
|
|
18
|
+
return null;
|
|
19
|
+
const node = nodeAt(doc, focus.path);
|
|
20
|
+
if (!node || !isBlockNode(node) || node.kind !== 'table')
|
|
21
|
+
return null;
|
|
22
|
+
const colCount = metadataOf(node, 'table').columnCount;
|
|
23
|
+
const rowCount = node.children?.length ?? 0;
|
|
24
|
+
if (colCount === 0 || rowCount === 0)
|
|
25
|
+
return null;
|
|
26
|
+
const path = focus.path;
|
|
27
|
+
const { row, col } = cellRowCol(focus.offset, colCount);
|
|
28
|
+
switch (key) {
|
|
29
|
+
case 'ArrowDown':
|
|
30
|
+
return row < rowCount - 1
|
|
31
|
+
? { kind: 'cell', offset: (row + 1) * colCount + col }
|
|
32
|
+
: {
|
|
33
|
+
kind: 'exit',
|
|
34
|
+
direction: 'forward',
|
|
35
|
+
fromCellPath: [...path, rowCount - 1, colCount - 1]
|
|
36
|
+
};
|
|
37
|
+
case 'ArrowUp':
|
|
38
|
+
return row > 0
|
|
39
|
+
? { kind: 'cell', offset: (row - 1) * colCount + col }
|
|
40
|
+
: { kind: 'exit', direction: 'backward', fromCellPath: [...path, 0, 0] };
|
|
41
|
+
case 'ArrowRight':
|
|
42
|
+
return { kind: 'cell', offset: row * colCount + Math.min(col + 1, colCount - 1) };
|
|
43
|
+
case 'ArrowLeft':
|
|
44
|
+
return { kind: 'cell', offset: row * colCount + Math.max(col - 1, 0) };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paints `md-widget-selected` on atomic inline widgets the native Selection range overlaps,
|
|
3
|
+
* because `::selection` skips contenteditable=false content. Suspended while the cross-block
|
|
4
|
+
* overlay or the widget-selection popover owns the visual.
|
|
5
|
+
*/
|
|
6
|
+
export interface WidgetRangePainterOpts {
|
|
7
|
+
editorRoot: HTMLElement;
|
|
8
|
+
getSelectionIsCustomRendered: () => boolean;
|
|
9
|
+
getWidgetIsSelected: () => boolean;
|
|
10
|
+
lifetime: AbortSignal;
|
|
11
|
+
}
|
|
12
|
+
export declare function installWidgetRangePainter(opts: WidgetRangePainterOpts): void;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paints `md-widget-selected` on atomic inline widgets the native Selection range overlaps,
|
|
3
|
+
* because `::selection` skips contenteditable=false content. Suspended while the cross-block
|
|
4
|
+
* overlay or the widget-selection popover owns the visual.
|
|
5
|
+
*/
|
|
6
|
+
const WIDGET_SELECTOR = '[data-inline-widget]';
|
|
7
|
+
const SELECTED_CLASS = 'md-widget-selected';
|
|
8
|
+
export function installWidgetRangePainter(opts) {
|
|
9
|
+
const { editorRoot, getSelectionIsCustomRendered, getWidgetIsSelected, lifetime } = opts;
|
|
10
|
+
if (lifetime.aborted)
|
|
11
|
+
return;
|
|
12
|
+
function clearAll() {
|
|
13
|
+
const widgets = editorRoot.querySelectorAll(WIDGET_SELECTOR);
|
|
14
|
+
for (const w of widgets)
|
|
15
|
+
w.classList.remove(SELECTED_CLASS);
|
|
16
|
+
}
|
|
17
|
+
function paint() {
|
|
18
|
+
if (getSelectionIsCustomRendered() || getWidgetIsSelected()) {
|
|
19
|
+
clearAll();
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const sel = window.getSelection();
|
|
23
|
+
if (!sel || sel.rangeCount === 0 || sel.isCollapsed) {
|
|
24
|
+
clearAll();
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const anchor = sel.anchorNode;
|
|
28
|
+
if (!anchor || !editorRoot.contains(anchor)) {
|
|
29
|
+
clearAll();
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const range = sel.getRangeAt(0);
|
|
33
|
+
const widgets = editorRoot.querySelectorAll(WIDGET_SELECTOR);
|
|
34
|
+
for (const w of widgets) {
|
|
35
|
+
w.classList.toggle(SELECTED_CLASS, range.intersectsNode(w));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const handler = () => paint();
|
|
39
|
+
document.addEventListener('selectionchange', handler);
|
|
40
|
+
lifetime.addEventListener('abort', () => {
|
|
41
|
+
document.removeEventListener('selectionchange', handler);
|
|
42
|
+
clearAll();
|
|
43
|
+
}, { once: true });
|
|
44
|
+
}
|