@voithos-labs/aragonite 0.10.4 → 0.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/a11y-strings.d.ts +11 -5
- package/dist/a11y-strings.js +60 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +12 -21
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +603 -1126
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +26 -51
- package/dist/components/SelectionOverlay.svelte.d.ts +5 -3
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +72 -87
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +29 -34
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +57 -39
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +141 -203
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +45 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +93 -147
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +8 -6
- package/dist/components/blocks/text/click-snap-guard.js +10 -7
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +150 -181
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -108
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +212 -199
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +12 -35
- package/dist/components/drag-handle.js +22 -68
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -24
- package/dist/components/editor-root-listeners.js +49 -24
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +14 -26
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +30 -35
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +3 -5
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +54 -75
- package/dist/core/inline/inline-widgets.js +54 -62
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +31 -15
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -6
- package/dist/cursor/height-oracle.js +26 -74
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +14 -15
- package/dist/cursor/scrollport.js +7 -13
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -14
- package/dist/cursor/visual-lines.js +45 -46
- package/dist/cursor/widget-edge-snap.d.ts +10 -15
- package/dist/cursor/widget-edge-snap.js +13 -12
- package/dist/cursor/widget-offset.d.ts +110 -104
- package/dist/cursor/widget-offset.js +344 -179
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +30 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +28 -50
- package/dist/editor-actions/focus/focus-landing.d.ts +8 -11
- package/dist/editor-actions/focus/focus-landing.js +15 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +54 -82
- package/dist/editor-actions/plugin/container.js +105 -188
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +88 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +37 -8
- package/dist/plugin.js +100 -77
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +78 -67
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -81
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +51 -45
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +15 -6
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +141 -310
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +78 -84
- package/dist/schema/commands.js +152 -117
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +8 -10
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +63 -80
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +92 -125
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +59 -96
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +51 -134
- package/dist/selection/dead-space-caret.d.ts +19 -30
- package/dist/selection/dead-space-caret.js +70 -88
- package/dist/selection/drag-pointer.d.ts +7 -9
- package/dist/selection/drag-pointer.js +23 -33
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -40
- package/dist/selection/keyboard-extend.js +94 -117
- package/dist/selection/multi-click.d.ts +13 -18
- package/dist/selection/multi-click.js +32 -38
- package/dist/selection/native-bridge.d.ts +29 -39
- package/dist/selection/native-bridge.js +78 -127
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +25 -16
- package/dist/selection/path-lookup.js +101 -18
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +5 -5
- package/dist/selection/pointer-gesture.js +5 -5
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -40
- package/dist/selection/primitives.js +57 -67
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -23
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +34 -16
- package/dist/selection/selection-drop.js +159 -95
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +60 -53
- package/dist/styles/editor.css +201 -143
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +9 -7
- package/dist/tree-operations/paste/replacement-parse.js +12 -10
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +327 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +253 -185
- package/docs/guide/plugin-guide.md +332 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +12 -16
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/cursor/scroll-hold.d.ts +0 -10
- package/dist/cursor/scroll-hold.js +0 -22
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -31
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -78
|
@@ -24,6 +24,7 @@ declare const TableCellBlock: import("svelte").Component<$$ComponentProps, {
|
|
|
24
24
|
setSelection: (start: number, end: number) => void;
|
|
25
25
|
measurePartialRects: (startOffset: number, endOffset: number) => DOMRect[];
|
|
26
26
|
isCommandActive: (id: CommandId) => boolean;
|
|
27
|
+
afterSourceCommit: (run: () => void) => void;
|
|
27
28
|
runCommand: (id: CommandId) => boolean;
|
|
28
29
|
}, "">;
|
|
29
30
|
type TableCellBlock = ReturnType<typeof TableCellBlock>;
|
|
@@ -1,34 +1,20 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { getContext } from 'svelte';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
ContainerEditActions,
|
|
6
|
-
FocusActions
|
|
7
|
-
} from '../../../action-contracts';
|
|
8
|
-
import { CURSOR_END, CURSOR_START, type BlockComponent } from '../../../block-component';
|
|
3
|
+
import type { TableContext } from '../../../action-contracts';
|
|
4
|
+
import { entryEdge, type BlockComponent } from '../../../block-component';
|
|
9
5
|
import type { NodeView } from '../../../core/node-views';
|
|
10
6
|
import {
|
|
11
|
-
BLOCK_EDIT_KEY,
|
|
12
|
-
CONTAINER_EDIT_KEY,
|
|
13
|
-
EDITOR_DOC_KEY,
|
|
14
|
-
EDITOR_POLICIES_KEY,
|
|
15
7
|
EDITOR_SERVICES_KEY,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
type EditorDoc,
|
|
19
|
-
type EditorPolicies,
|
|
20
|
-
type EditorServices,
|
|
21
|
-
type ParentScopeSink
|
|
8
|
+
TABLE_CONTEXT_KEY,
|
|
9
|
+
type EditorServices
|
|
22
10
|
} from '../../../editor-keys';
|
|
23
11
|
import type { TableAlignment } from '../../../core/nodes';
|
|
24
|
-
import { createBlockListState } from '../../../reactivity/block-list-state.svelte';
|
|
25
12
|
import { useMountGauge } from '../../../perf/use-mount-gauge.svelte';
|
|
26
|
-
import {
|
|
27
|
-
|
|
28
|
-
setNestedActionsContexts,
|
|
29
|
-
type NodeScope
|
|
30
|
-
} from '../../../editor-actions/nested/nested-actions';
|
|
13
|
+
import { useMeasuredChild } from '../../../reactivity/use-measured-child.svelte';
|
|
14
|
+
import { createContainerActions } from '../../../editor-actions/nested/container-actions';
|
|
31
15
|
import { publishRefSlot, type RefSlots } from '../../../reactivity/publish-ref.svelte';
|
|
16
|
+
import type { ChildList } from '../../../reactivity/child-list';
|
|
17
|
+
import { useBlockDecorations } from '../../../decorations/use-block-decorations.svelte';
|
|
32
18
|
import TableCellBlock from './TableCellBlock.svelte';
|
|
33
19
|
|
|
34
20
|
let {
|
|
@@ -51,101 +37,62 @@
|
|
|
51
37
|
slots?: RefSlots<BlockComponent>;
|
|
52
38
|
} = $props();
|
|
53
39
|
|
|
54
|
-
// A row's position among the table's children
|
|
40
|
+
// A row's position among the table's children is its row index.
|
|
55
41
|
const rowIdx = $derived(index);
|
|
56
42
|
|
|
57
|
-
const
|
|
58
|
-
const parentFocus = getContext<FocusActions>(FOCUS_KEY);
|
|
59
|
-
const parentContainerEdit = getContext<ContainerEditActions>(CONTAINER_EDIT_KEY);
|
|
60
|
-
const { stickyColumn, registryView } = getContext<EditorServices>(EDITOR_SERVICES_KEY);
|
|
61
|
-
const getPresentationMode = getContext<EditorPolicies | undefined>(
|
|
62
|
-
EDITOR_POLICIES_KEY
|
|
63
|
-
)?.presentationMode;
|
|
64
|
-
const linkRef = getContext<EditorDoc | undefined>(EDITOR_DOC_KEY)?.linkRef;
|
|
43
|
+
const { decorations, events } = getContext<EditorServices>(EDITOR_SERVICES_KEY);
|
|
65
44
|
|
|
66
|
-
const cellsState =
|
|
45
|
+
const { state: cellsState } = createContainerActions({
|
|
46
|
+
getNode: () => node,
|
|
47
|
+
getIndex: () => index,
|
|
48
|
+
getPath: () => myPath,
|
|
49
|
+
childList: () => cellList
|
|
50
|
+
});
|
|
67
51
|
|
|
68
52
|
let rowEl: HTMLElement | undefined = $state();
|
|
69
|
-
|
|
53
|
+
// Absent only when a row mounts outside a table, as a unit test's might.
|
|
54
|
+
const tableContext = getContext<TableContext | undefined>(TABLE_CONTEXT_KEY);
|
|
70
55
|
|
|
71
56
|
useMountGauge();
|
|
72
57
|
|
|
73
|
-
//
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return parentSink.registerRow(
|
|
81
|
-
id,
|
|
82
|
-
() => {
|
|
83
|
-
const cell = rowEl?.querySelector(':scope > .table-cell') as HTMLElement | null;
|
|
84
|
-
return cell?.getBoundingClientRect().height ?? 0;
|
|
85
|
-
},
|
|
86
|
-
(h) => parentSink.setChildSubtotal(currentIndex, h)
|
|
87
|
-
);
|
|
58
|
+
// The row renders no block host, so its own element carries the decorations addressed to it.
|
|
59
|
+
const blockDecorations = useBlockDecorations({
|
|
60
|
+
getPath: () => myPath,
|
|
61
|
+
getEl: () => rowEl ?? null,
|
|
62
|
+
engine: decorations,
|
|
63
|
+
onRenderError: (error) => events.emit('error', error),
|
|
64
|
+
badgeRefusal: 'a table row renders no box of its own to hold one'
|
|
88
65
|
});
|
|
89
66
|
|
|
90
|
-
//
|
|
91
|
-
//
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
parentSink?.measureRowNow(id);
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
const scope: NodeScope = {
|
|
104
|
-
get index() {
|
|
105
|
-
return index;
|
|
67
|
+
// A `display: contents` row has no box, so its first cell, stretched to the row track, gives
|
|
68
|
+
// the row's height. Read through the first cell's id, so a moved first column is watched anew.
|
|
69
|
+
useMeasuredChild({
|
|
70
|
+
getId: () => id,
|
|
71
|
+
getPath: () => myPath,
|
|
72
|
+
getEl: () => {
|
|
73
|
+
void cellsState.innerBlockIds[0];
|
|
74
|
+
return rowEl?.querySelector<HTMLElement>(':scope > .table-cell') ?? null;
|
|
106
75
|
},
|
|
107
|
-
|
|
108
|
-
return node;
|
|
109
|
-
},
|
|
110
|
-
get path() {
|
|
111
|
-
return myPath;
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
const bundle = createStandardNestedActions(cellsState, {
|
|
116
|
-
scope,
|
|
117
|
-
stickyColumn,
|
|
118
|
-
grammar: registryView.grammar,
|
|
119
|
-
getPresentationMode,
|
|
120
|
-
linkRef,
|
|
121
|
-
parent: {
|
|
122
|
-
blockEdit: parentBlockEdit,
|
|
123
|
-
focus: parentFocus,
|
|
124
|
-
containerEdit: parentContainerEdit
|
|
125
|
-
}
|
|
76
|
+
getRaw: () => node.raw
|
|
126
77
|
});
|
|
127
78
|
|
|
128
|
-
setNestedActionsContexts(bundle);
|
|
129
|
-
|
|
130
79
|
// ── BlockComponent interface ────────────────────────────────────────
|
|
131
80
|
|
|
132
81
|
export const editable = true;
|
|
133
82
|
export const focusable = true;
|
|
134
83
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
const atStart = offset === 0 || offset === CURSOR_START;
|
|
139
|
-
return atStart ? { colIdx: 0, at: CURSOR_START } : { colIdx: columnCount - 1, at: CURSOR_END };
|
|
84
|
+
function entryCell(offset: number): { colIdx: number; at: number } {
|
|
85
|
+
const edge = entryEdge(offset);
|
|
86
|
+
return { colIdx: edge.child === 'first' ? 0 : columnCount - 1, at: edge.offset };
|
|
140
87
|
}
|
|
141
88
|
|
|
142
89
|
export function focus(offset: number): void {
|
|
143
|
-
const { colIdx, at } =
|
|
90
|
+
const { colIdx, at } = entryCell(offset);
|
|
144
91
|
cellsState.innerBlockRefs[colIdx]?.focus(at);
|
|
145
92
|
}
|
|
146
93
|
|
|
147
94
|
export function parkCaret(offset: number): void {
|
|
148
|
-
const { colIdx, at } =
|
|
95
|
+
const { colIdx, at } = entryCell(offset);
|
|
149
96
|
cellsState.innerBlockRefs[colIdx]?.parkCaret?.(at);
|
|
150
97
|
}
|
|
151
98
|
|
|
@@ -159,13 +106,17 @@
|
|
|
159
106
|
cellRef?.focus(rest.length === 0 ? offset : 0);
|
|
160
107
|
}
|
|
161
108
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
109
|
+
// Cells aren't windowed, so a mounted row has every cell in range; the grid's own sideways
|
|
110
|
+
// scroll is what brings a far column into view.
|
|
111
|
+
const cellList: ChildList = {
|
|
112
|
+
count: () => node.children?.length ?? 0,
|
|
113
|
+
refs: cellsState.refSlots,
|
|
114
|
+
windowing: { revealChild: async () => {}, isInWindow: () => true },
|
|
115
|
+
bringChildIntoView: (colIdx) => tableContext?.revealColumn(rowIdx, colIdx)
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
function childList(): ChildList {
|
|
119
|
+
return cellList;
|
|
169
120
|
}
|
|
170
121
|
|
|
171
122
|
export function getCursorPosition(): { path: number[]; offset: number } | null {
|
|
@@ -177,8 +128,8 @@
|
|
|
177
128
|
return null;
|
|
178
129
|
}
|
|
179
130
|
|
|
180
|
-
// The
|
|
181
|
-
//
|
|
131
|
+
// The one place this shape is written, as in the cell: a row reaches every caller through
|
|
132
|
+
// its registered reference, so a second copy to type-check against would mislead.
|
|
182
133
|
$effect(() => {
|
|
183
134
|
if (!slots) return;
|
|
184
135
|
const self = {
|
|
@@ -189,15 +140,20 @@
|
|
|
189
140
|
getCursorOffset,
|
|
190
141
|
getCursorPosition,
|
|
191
142
|
focusByPath,
|
|
192
|
-
|
|
143
|
+
childList
|
|
193
144
|
} satisfies BlockComponent;
|
|
194
145
|
return publishRefSlot(slots, index, self, rowEl);
|
|
195
146
|
});
|
|
196
147
|
</script>
|
|
197
148
|
|
|
198
149
|
<!-- No whitespace between the row and its cells: a stray text node joins the table's
|
|
199
|
-
raw-offset
|
|
200
|
-
<div
|
|
150
|
+
raw-offset traversal and misplaces a remembered cross-block caret. -->
|
|
151
|
+
<div
|
|
152
|
+
bind:this={rowEl}
|
|
153
|
+
class={['table-row', ...blockDecorations.classes]}
|
|
154
|
+
role="row"
|
|
155
|
+
data-table-row-idx={rowIdx}
|
|
156
|
+
>
|
|
201
157
|
{#each node.children ?? [] as cellNode, colIdx (cellsState.innerBlockIds[colIdx])}
|
|
202
158
|
<TableCellBlock
|
|
203
159
|
node={cellNode}
|
|
@@ -19,7 +19,6 @@ declare const TableRowBlock: import("svelte").Component<$$ComponentProps, {
|
|
|
19
19
|
parkCaret: (offset: number) => void;
|
|
20
20
|
getCursorOffset: () => number | null;
|
|
21
21
|
focusByPath: (path: number[], offset: number) => void;
|
|
22
|
-
getBlockComponentByPath: (path: number[]) => BlockComponent | null;
|
|
23
22
|
getCursorPosition: () => {
|
|
24
23
|
path: number[];
|
|
25
24
|
offset: number;
|
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
key: string;
|
|
3
|
-
ctrlOrMeta: boolean;
|
|
4
|
-
shiftKey: boolean;
|
|
5
|
-
altKey: boolean;
|
|
6
|
-
}
|
|
1
|
+
import { type ChordKeys } from '../../../schema/keybindings';
|
|
7
2
|
export interface CellKeyState {
|
|
8
3
|
rowIdx: number;
|
|
9
4
|
colIdx: number;
|
|
10
5
|
columnCount: number;
|
|
11
6
|
rowCount: number;
|
|
12
7
|
offset: number;
|
|
13
|
-
/** The
|
|
14
|
-
* run out of
|
|
8
|
+
/** The first and last offsets the caret can sit at in the cell. A mode that draws no marker
|
|
9
|
+
* puts a leading or trailing run out of reach, so a test of raw 0 or the length never fires. */
|
|
15
10
|
contentStart: number;
|
|
16
11
|
contentEnd: number;
|
|
17
12
|
collapsed: boolean;
|
|
@@ -34,4 +29,4 @@ export type CellKeyPlan = {
|
|
|
34
29
|
kind: 'exit';
|
|
35
30
|
direction: 'up' | 'down';
|
|
36
31
|
};
|
|
37
|
-
export declare function cellKeydownPlan(e:
|
|
32
|
+
export declare function cellKeydownPlan(e: ChordKeys, s: CellKeyState): CellKeyPlan;
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* the command dispatcher
|
|
5
|
-
* `native` hands it to the prose
|
|
2
|
+
* Turns a keydown into a plan for a table cell's caret-dependent navigation: move to the next cell
|
|
3
|
+
* at a text boundary, move a row, leave the table, and the row-appending end of Tab and Enter. The
|
|
4
|
+
* branches ignore Alt and Mod, which the command dispatcher takes first: a modified arrow nothing
|
|
5
|
+
* took must still navigate, and `native` hands it to the shared prose handling, which moves
|
|
6
|
+
* between siblings by index.
|
|
6
7
|
*/
|
|
7
8
|
import { cellAbove, cellBelow, nextCell, prevCell } from './table-navigation';
|
|
8
|
-
|
|
9
|
-
// spellings rather than against a single literal.
|
|
10
|
-
function isLetterA(key) {
|
|
11
|
-
return key === 'a' || key === 'A';
|
|
12
|
-
}
|
|
9
|
+
import { isSelectAllChord } from '../../../schema/keybindings';
|
|
13
10
|
export function cellKeydownPlan(e, s) {
|
|
14
11
|
const pos = { rowIdx: s.rowIdx, colIdx: s.colIdx };
|
|
15
|
-
// Two stages, like every other block: the cell's own text
|
|
16
|
-
|
|
17
|
-
if (e.ctrlOrMeta && isLetterA(e.key) && !e.shiftKey && !e.altKey) {
|
|
12
|
+
// Two stages, like every other block: the cell's own text first, then the document.
|
|
13
|
+
if (isSelectAllChord(e)) {
|
|
18
14
|
return {
|
|
19
15
|
kind: 'select-all-step',
|
|
20
16
|
step: s.selectAllCount === 0 ? 'native' : 'document'
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Pointer drag and Shift+click across a table's cells, and the cell hit tests they use. A
|
|
3
|
+
* rectangle inside one table is a selection whose two endpoints both name the table's path,
|
|
4
|
+
* with flagged row-major cell indices as offsets.
|
|
5
5
|
*/
|
|
6
6
|
import type { SelectionState } from '../../../selection/selection-state.svelte';
|
|
7
|
+
import type { PaddingPress } from '../../../selection/cross-block/pointer';
|
|
7
8
|
export interface CellAnchor {
|
|
8
9
|
tableEl: HTMLElement;
|
|
9
10
|
tablePath: number[];
|
|
@@ -16,12 +17,15 @@ export interface CellDragContext {
|
|
|
16
17
|
selection: SelectionState;
|
|
17
18
|
lifetimeSignal?: AbortSignal;
|
|
18
19
|
}
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
/** A press in the anchor cell's padding that the editor placed, so no native drag selects in the
|
|
21
|
+
* cell and the session paints the range there itself. */
|
|
22
|
+
export interface CellPaddingPress {
|
|
23
|
+
surface: HTMLElement;
|
|
24
|
+
press: PaddingPress;
|
|
25
|
+
}
|
|
26
|
+
/** A drag from inside `anchor`'s cell selects a cell rectangle while the pointer stays in the
|
|
27
|
+
* table and extends to the block underneath once it leaves; the anchor cell stays fixed. */
|
|
28
|
+
export declare function installCellDragListener(ctx: CellDragContext, anchor: CellAnchor, down: PointerEvent, padding?: CellPaddingPress | null): {
|
|
25
29
|
dispose(): void;
|
|
26
30
|
};
|
|
27
31
|
/** Shift+click on a cell when the previous focus was another cell of the same table. */
|
|
@@ -29,28 +33,19 @@ export declare function handleCellShiftClick(selection: SelectionState, anchor:
|
|
|
29
33
|
rowIdx: number;
|
|
30
34
|
colIdx: number;
|
|
31
35
|
}): void;
|
|
32
|
-
/**
|
|
33
|
-
*
|
|
34
|
-
* scrolls past it (VR-K1), so index 0 is the first MOUNTED row — still fine for column
|
|
35
|
-
* geometry, since the column tracks are uniform.
|
|
36
|
-
*/
|
|
36
|
+
/** The mounted rows in DOM order; under row windowing the first need not be row 0, which
|
|
37
|
+
* column geometry can ignore because every row shares the column tracks. */
|
|
37
38
|
export declare function mountedRowEls(tableEl: HTMLElement): HTMLElement[];
|
|
38
39
|
/** The cells of one row, in column order. */
|
|
39
40
|
export declare function rowCellEls(rowEl: Element): HTMLElement[];
|
|
40
|
-
/**
|
|
41
|
-
* A viewport point → its cell within `tableEl`, or null when the point falls outside
|
|
42
|
-
* this specific table. Thin entry over `cellCoordsOfElement`.
|
|
43
|
-
*/
|
|
41
|
+
/** The cell of `tableEl` under a viewport point, or null outside this table. */
|
|
44
42
|
export declare function cellAtPoint(clientX: number, clientY: number, tableEl: HTMLElement): {
|
|
45
43
|
rowIdx: number;
|
|
46
44
|
colIdx: number;
|
|
47
45
|
cellEl: HTMLElement;
|
|
48
46
|
} | null;
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
* `tableEl`. Identity-checks the owning table, so a sibling table can't masquerade
|
|
52
|
-
* as the originating one.
|
|
53
|
-
*/
|
|
47
|
+
/** The cell of `tableEl` an element sits in; the owning table is compared by identity, so a
|
|
48
|
+
* cell of a nested or sibling table never answers for this one. */
|
|
54
49
|
export declare function cellCoordsOfElement(el: Element | null, tableEl: HTMLElement): {
|
|
55
50
|
rowIdx: number;
|
|
56
51
|
colIdx: number;
|
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Pointer drag and Shift+click across a table's cells, and the cell hit tests they use. A
|
|
3
|
+
* rectangle inside one table is a selection whose two endpoints both name the table's path,
|
|
4
|
+
* with flagged row-major cell indices as offsets.
|
|
5
5
|
*/
|
|
6
|
+
import { cellPoint } from '../../../selection/primitives';
|
|
7
|
+
import { rowMajorCellIndex } from '../../../cursor/coordinate-spaces';
|
|
6
8
|
import { createPointerDragSession } from '../../../selection/pointer-session';
|
|
7
9
|
import { blockNearPoint } from '../../../selection/nearest-block';
|
|
8
10
|
import { firstScrollableDescendant } from '../../../cursor/scroll-ancestors';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
// gets the whole-row snap (table-endpoint-snap.ts) and copy/delete agree on the same
|
|
19
|
-
// rows. Same-table extends compare equal paths and short-circuit the snap.
|
|
20
|
-
const anchorPoint = {
|
|
21
|
-
path: anchor.tablePath.slice(),
|
|
22
|
-
offset: anchorCellIdx,
|
|
23
|
-
cellCoordinate: true
|
|
24
|
-
};
|
|
11
|
+
import { TABLE_CELL_SELECTOR } from '../../block-content-selector';
|
|
12
|
+
import { caretOffsetAtPoint } from '../../../cursor/point-offset';
|
|
13
|
+
import { applySingleBlockRange } from '../../../selection/native-bridge';
|
|
14
|
+
/** A drag from inside `anchor`'s cell selects a cell rectangle while the pointer stays in the
|
|
15
|
+
* table and extends to the block underneath once it leaves; the anchor cell stays fixed. */
|
|
16
|
+
export function installCellDragListener(ctx, anchor, down, padding = null) {
|
|
17
|
+
// Flagged as a cell index, so a drag that leaves the table snaps to whole rows
|
|
18
|
+
// (table-endpoint-snap.ts) and copy and delete agree on which rows it covers.
|
|
19
|
+
const anchorPoint = anchorCellPoint(anchor);
|
|
25
20
|
// `anchor.tableEl` is `[role="table"]`; the scrollable element is its first
|
|
26
21
|
// scrollable descendant (the `.table-block` grid).
|
|
27
22
|
const tableScrollEl = firstScrollableDescendant(anchor.tableEl) ?? anchor.tableEl;
|
|
@@ -29,10 +24,11 @@ export function installCellDragListener(ctx, anchor, down) {
|
|
|
29
24
|
const cellHit = cellAtPoint(clientX, clientY, anchor.tableEl);
|
|
30
25
|
if (cellHit) {
|
|
31
26
|
if (cellHit.rowIdx === anchor.rowIdx && cellHit.colIdx === anchor.colIdx) {
|
|
32
|
-
// Back in the anchor cell: collapse so
|
|
27
|
+
// Back in the anchor cell: collapse so the browser resumes selecting inside it.
|
|
33
28
|
if (ctx.selection.isCrossBlock) {
|
|
34
29
|
ctx.selection.collapse();
|
|
35
30
|
}
|
|
31
|
+
paintInAnchorCell(clientX, clientY);
|
|
36
32
|
return;
|
|
37
33
|
}
|
|
38
34
|
extendToCell(cellHit.rowIdx, cellHit.colIdx);
|
|
@@ -45,18 +41,16 @@ export function installCellDragListener(ctx, anchor, down) {
|
|
|
45
41
|
return;
|
|
46
42
|
extendToForeignBlock(clientX, clientY);
|
|
47
43
|
}
|
|
44
|
+
function paintInAnchorCell(clientX, clientY) {
|
|
45
|
+
if (!padding?.press.placed())
|
|
46
|
+
return;
|
|
47
|
+
const focus = caretOffsetAtPoint(padding.surface, clientX, clientY);
|
|
48
|
+
if (focus !== null)
|
|
49
|
+
applySingleBlockRange(padding.surface, padding.press.offset, focus);
|
|
50
|
+
}
|
|
48
51
|
function extendToCell(rowIdx, colIdx) {
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
path: anchor.tablePath.slice(),
|
|
52
|
-
offset: cellIdx
|
|
53
|
-
};
|
|
54
|
-
if (!ctx.selection.isCustomRendered) {
|
|
55
|
-
ctx.selection.enterCrossBlock(anchorPoint, focusPoint);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
ctx.selection.extendFocus(focusPoint);
|
|
59
|
-
}
|
|
52
|
+
const focus = cellPoint(anchor.tablePath, rowMajorCellIndex(rowIdx, colIdx, anchor.columnCount));
|
|
53
|
+
enterOrExtend(ctx.selection, anchorPoint, focus);
|
|
60
54
|
}
|
|
61
55
|
function extendToForeignBlock(clientX, clientY) {
|
|
62
56
|
// Nearest, not under: one coalesced frame can hand over a point off every block (the
|
|
@@ -65,16 +59,11 @@ export function installCellDragListener(ctx, anchor, down) {
|
|
|
65
59
|
if (!near)
|
|
66
60
|
return;
|
|
67
61
|
// Shared with the cross-block drag, so a table destination carries cellCoordinate for the
|
|
68
|
-
// whole-row snap
|
|
62
|
+
// whole-row snap just as the anchor does, and a kind with no editable element is skipped.
|
|
69
63
|
const focusPoint = near.endpointHere();
|
|
70
64
|
if (!focusPoint)
|
|
71
65
|
return;
|
|
72
|
-
|
|
73
|
-
ctx.selection.enterCrossBlock(anchorPoint, focusPoint);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
ctx.selection.extendFocus(focusPoint);
|
|
77
|
-
}
|
|
66
|
+
enterOrExtend(ctx.selection, anchorPoint, focusPoint);
|
|
78
67
|
}
|
|
79
68
|
return createPointerDragSession(down, {
|
|
80
69
|
onMove: (p) => processMove(p.clientX, p.clientY),
|
|
@@ -84,55 +73,44 @@ export function installCellDragListener(ctx, anchor, down) {
|
|
|
84
73
|
}
|
|
85
74
|
/** Shift+click on a cell when the previous focus was another cell of the same table. */
|
|
86
75
|
export function handleCellShiftClick(selection, anchor, target) {
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
selection.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}, { path: tablePath.slice(), offset: focusCellIdx });
|
|
76
|
+
const focus = cellPoint(anchor.tablePath, rowMajorCellIndex(target.rowIdx, target.colIdx, anchor.columnCount));
|
|
77
|
+
enterOrExtend(selection, anchorCellPoint(anchor), focus);
|
|
78
|
+
}
|
|
79
|
+
// ── Shared ─────────────────────────────────────────────────────────────────
|
|
80
|
+
function anchorCellPoint(anchor) {
|
|
81
|
+
return cellPoint(anchor.tablePath, rowMajorCellIndex(anchor.rowIdx, anchor.colIdx, anchor.columnCount));
|
|
82
|
+
}
|
|
83
|
+
/** The first move past the anchor starts the range; later ones only move its focus. */
|
|
84
|
+
function enterOrExtend(selection, anchor, focus) {
|
|
85
|
+
if (selection.isCustomRendered)
|
|
86
|
+
selection.extendFocus(focus);
|
|
87
|
+
else
|
|
88
|
+
selection.enterCrossBlock(anchor, focus);
|
|
101
89
|
}
|
|
102
90
|
// ── DOM geometry ─────────────────────────────────────────────────────────────
|
|
103
91
|
//
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
* The mounted table rows, in DOM order. Row windowing unmounts row 0 once the table
|
|
109
|
-
* scrolls past it (VR-K1), so index 0 is the first MOUNTED row — still fine for column
|
|
110
|
-
* geometry, since the column tracks are uniform.
|
|
111
|
-
*/
|
|
92
|
+
// Rows carry `data-table-row-idx` and cells match `TABLE_CELL_SELECTOR`; `selection/path-lookup.ts`
|
|
93
|
+
// and `components/block-el-lookup.ts` read the same markup, so a change to it reaches all three.
|
|
94
|
+
/** The mounted rows in DOM order; under row windowing the first need not be row 0, which
|
|
95
|
+
* column geometry can ignore because every row shares the column tracks. */
|
|
112
96
|
export function mountedRowEls(tableEl) {
|
|
113
97
|
return Array.from(tableEl.querySelectorAll(':scope > [data-table-row-idx]'));
|
|
114
98
|
}
|
|
115
99
|
/** The cells of one row, in column order. */
|
|
116
100
|
export function rowCellEls(rowEl) {
|
|
117
|
-
return Array.from(rowEl.querySelectorAll(
|
|
101
|
+
return Array.from(rowEl.querySelectorAll(`:scope > ${TABLE_CELL_SELECTOR}`));
|
|
118
102
|
}
|
|
119
103
|
// ── Hit testing ────────────────────────────────────────────────────────────
|
|
120
|
-
/**
|
|
121
|
-
* A viewport point → its cell within `tableEl`, or null when the point falls outside
|
|
122
|
-
* this specific table. Thin entry over `cellCoordsOfElement`.
|
|
123
|
-
*/
|
|
104
|
+
/** The cell of `tableEl` under a viewport point, or null outside this table. */
|
|
124
105
|
export function cellAtPoint(clientX, clientY, tableEl) {
|
|
125
106
|
return cellCoordsOfElement(document.elementFromPoint(clientX, clientY), tableEl);
|
|
126
107
|
}
|
|
127
|
-
/**
|
|
128
|
-
*
|
|
129
|
-
* `tableEl`. Identity-checks the owning table, so a sibling table can't masquerade
|
|
130
|
-
* as the originating one.
|
|
131
|
-
*/
|
|
108
|
+
/** The cell of `tableEl` an element sits in; the owning table is compared by identity, so a
|
|
109
|
+
* cell of a nested or sibling table never answers for this one. */
|
|
132
110
|
export function cellCoordsOfElement(el, tableEl) {
|
|
133
111
|
if (!el)
|
|
134
112
|
return null;
|
|
135
|
-
const cellEl = el.closest(
|
|
113
|
+
const cellEl = el.closest(TABLE_CELL_SELECTOR);
|
|
136
114
|
if (!cellEl)
|
|
137
115
|
return null;
|
|
138
116
|
const rowEl = cellEl.closest('[data-table-row-idx]');
|