@voithos-labs/aragonite 0.10.3 → 0.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/a11y-strings.d.ts +12 -5
- package/dist/a11y-strings.js +61 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +13 -20
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +619 -1089
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +36 -67
- package/dist/components/SelectionOverlay.svelte.d.ts +6 -4
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +103 -100
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +35 -28
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +58 -32
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +144 -202
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +46 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +99 -144
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +3 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +9 -4
- package/dist/components/blocks/text/click-snap-guard.js +16 -5
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +164 -180
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -105
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +243 -208
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +13 -30
- package/dist/components/drag-handle.js +25 -63
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -31
- package/dist/components/editor-root-listeners.js +49 -46
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +26 -30
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +380 -0
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +14 -0
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +55 -68
- package/dist/core/inline/inline-widgets.js +55 -58
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +33 -17
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -7
- package/dist/cursor/height-oracle.js +26 -75
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +16 -8
- package/dist/cursor/scrollport.js +28 -5
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -13
- package/dist/cursor/visual-lines.js +72 -28
- package/dist/cursor/widget-edge-snap.d.ts +23 -0
- package/dist/cursor/widget-edge-snap.js +39 -0
- package/dist/cursor/widget-offset.d.ts +111 -102
- package/dist/cursor/widget-offset.js +352 -177
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +31 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +33 -52
- package/dist/editor-actions/focus/focus-landing.d.ts +11 -5
- package/dist/editor-actions/focus/focus-landing.js +29 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +55 -76
- package/dist/editor-actions/plugin/container.js +105 -186
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +91 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +38 -8
- package/dist/plugin.js +102 -74
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +113 -85
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -75
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +63 -47
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +18 -7
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +143 -292
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +79 -81
- package/dist/schema/commands.js +156 -116
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +9 -11
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +73 -78
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +93 -152
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +61 -104
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +53 -146
- package/dist/selection/dead-space-caret.d.ts +20 -28
- package/dist/selection/dead-space-caret.js +79 -87
- package/dist/selection/drag-pointer.d.ts +22 -5
- package/dist/selection/drag-pointer.js +63 -31
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -39
- package/dist/selection/keyboard-extend.js +94 -116
- package/dist/selection/multi-click.d.ts +37 -0
- package/dist/selection/multi-click.js +197 -0
- package/dist/selection/native-bridge.d.ts +30 -37
- package/dist/selection/native-bridge.js +80 -100
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +31 -14
- package/dist/selection/path-lookup.js +110 -20
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +9 -0
- package/dist/selection/pointer-gesture.js +11 -0
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -33
- package/dist/selection/primitives.js +61 -53
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -19
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +52 -0
- package/dist/selection/selection-drop.js +317 -0
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +75 -53
- package/dist/styles/editor.css +248 -139
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +19 -0
- package/dist/tree-operations/paste/replacement-parse.js +24 -0
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +329 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +267 -183
- package/docs/guide/plugin-guide.md +341 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +17 -21
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/selection/double-click-trim.d.ts +0 -17
- package/dist/selection/double-click-trim.js +0 -57
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -29
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -75
|
@@ -1,51 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* DOM-
|
|
3
|
-
*
|
|
4
|
-
* offset is a raw offset. The component owns the effect and the pending-cursor
|
|
5
|
-
*
|
|
2
|
+
* DOM-building for TableCellBlock's render effect. The same as text-render.ts without a
|
|
3
|
+
* marker prefix or block marker, since a cell's whole raw is content, so every decoration
|
|
4
|
+
* offset is a raw offset. The component owns the effect and the pending-cursor restore;
|
|
5
|
+
* this factory builds the DOM.
|
|
6
6
|
*/
|
|
7
7
|
import type { DocumentView, NodeView } from '../../../core/node-views';
|
|
8
|
-
import type {
|
|
9
|
-
import type { PresentationMode } from '../../../presentation-mode';
|
|
8
|
+
import type { ResolveLinkUrl } from '../../../editor-keys';
|
|
10
9
|
import type { IndexedDecoration } from '../../../decorations/buckets';
|
|
11
10
|
import type { ReplaceDecoration, WidgetDecoration } from '../../../decorations/types';
|
|
11
|
+
import type { Reading } from '../../../schema/reading';
|
|
12
12
|
export interface CellRenderDeps {
|
|
13
13
|
get el(): HTMLElement | null;
|
|
14
14
|
get node(): NodeView;
|
|
15
|
-
|
|
15
|
+
/** How the editor reads its bytes. Its mode is read inside the render pass on purpose: that read
|
|
16
|
+
* is the reactive dependency that re-renders every mounted cell when the mode changes. */
|
|
17
|
+
get reading(): Reading;
|
|
16
18
|
resolveLinkUrl: ResolveLinkUrl;
|
|
17
|
-
/**
|
|
18
|
-
*
|
|
19
|
-
|
|
20
|
-
/** The editor's theme name, forwarded to widgets. NOT a render-key term: this DOM is
|
|
21
|
-
* themed by CSS, so only a widget whose engine paints its own colors reads it. */
|
|
22
|
-
getTheme?: () => string;
|
|
19
|
+
/** The editor's theme name, passed on to widgets. Not part of the render key: this DOM
|
|
20
|
+
* is themed by CSS, so only a widget that draws its own colors reads it. */
|
|
21
|
+
getTheme: () => string;
|
|
23
22
|
/** Live root document for widgets that derive from it. A getter, so a pooled widget
|
|
24
23
|
* re-reads the current document across edits rather than a mount-time snapshot. */
|
|
25
24
|
getDocument: () => DocumentView | undefined;
|
|
26
|
-
/** The editor's content version, so a widget can memoize a document-wide derivation
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
* read is the reactive dependency that re-renders the cell on an island change. */
|
|
25
|
+
/** The editor's content version, so a widget can memoize a document-wide derivation on it. */
|
|
26
|
+
getContentVersion: () => number;
|
|
27
|
+
/** The editor's navigation call, passed on to widgets whose gesture jumps elsewhere. */
|
|
28
|
+
navigateTo: (path: number[]) => Promise<boolean>;
|
|
29
|
+
/** Decoration widgets, sorted by position. A getter read inside the render pass on
|
|
30
|
+
* purpose: that read is the dependency that re-renders the cell when one changes. */
|
|
33
31
|
get islands(): IndexedDecoration<WidgetDecoration | ReplaceDecoration>[];
|
|
34
|
-
/** A widget
|
|
35
|
-
*
|
|
36
|
-
reportRenderError
|
|
32
|
+
/** A widget that throws while mounting reports to the editor's `error` event, and still falls
|
|
33
|
+
* back to its raw source. */
|
|
34
|
+
reportRenderError: (error: unknown) => void;
|
|
37
35
|
}
|
|
38
36
|
export interface CellRender {
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
* memo key unless `forceRebuild` — pass it when a pending cursor restore needs the
|
|
42
|
-
* DOM re-anchored even though the key held.
|
|
43
|
-
*/
|
|
37
|
+
/** Rebuilds the cell's children, skipping an unchanged key unless `forceRebuild`, which a
|
|
38
|
+
* pending cursor restore passes. */
|
|
44
39
|
render(opts?: {
|
|
45
40
|
forceRebuild?: boolean;
|
|
46
41
|
carryCaret?: boolean;
|
|
47
42
|
}): void;
|
|
48
|
-
/** Destroy every pooled widget
|
|
43
|
+
/** Destroy every pooled widget and mounted decoration, called when the cell unmounts. */
|
|
49
44
|
dispose(): void;
|
|
50
45
|
}
|
|
51
46
|
export declare function createCellRender(deps: CellRenderDeps): CellRender;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* DOM-
|
|
3
|
-
*
|
|
4
|
-
* offset is a raw offset. The component owns the effect and the pending-cursor
|
|
5
|
-
*
|
|
2
|
+
* DOM-building for TableCellBlock's render effect. The same as text-render.ts without a
|
|
3
|
+
* marker prefix or block marker, since a cell's whole raw is content, so every decoration
|
|
4
|
+
* offset is a raw offset. The component owns the effect and the pending-cursor restore;
|
|
5
|
+
* this factory builds the DOM.
|
|
6
6
|
*/
|
|
7
7
|
import { computeInlineContent, contentLengthOf } from '../../../core/inline';
|
|
8
8
|
import { renderInlineNodes } from '../../../core/inline-render';
|
|
9
9
|
import { trimTrailingLineEnding } from '../../../core/lines';
|
|
10
|
-
import {
|
|
11
|
-
import { CONTENT_EMPTY_ATTR, holdsOnlyMarkerChrome } from '../../../cursor/widget-offset';
|
|
10
|
+
import { captureFocusedCaret } from '../../../cursor/focused-caret';
|
|
11
|
+
import { CONTENT_EMPTY_ATTR, holdsOnlyMarkerChrome, placeCaretAtRaw } from '../../../cursor/widget-offset';
|
|
12
12
|
import { applyIslandDecorations, islandRenderKeyPart } from '../../../decorations/island-dom';
|
|
13
13
|
import { mountDecorationWidget } from '../../../decorations/widget-dom';
|
|
14
14
|
import { devWarn } from '../../../dev-warn';
|
|
@@ -18,11 +18,11 @@ export function createCellRender(deps) {
|
|
|
18
18
|
let lastRenderedKey = '';
|
|
19
19
|
const widgetPool = createSvelteWidgetPool({
|
|
20
20
|
reportError: deps.reportRenderError,
|
|
21
|
-
getPresentationMode: () => deps.presentationMode,
|
|
22
21
|
getTheme: deps.getTheme,
|
|
23
22
|
getDocument: deps.getDocument,
|
|
24
23
|
getContentVersion: deps.getContentVersion,
|
|
25
|
-
navigateTo: deps.navigateTo
|
|
24
|
+
navigateTo: deps.navigateTo,
|
|
25
|
+
reading: deps.reading
|
|
26
26
|
});
|
|
27
27
|
let islandDestroys = [];
|
|
28
28
|
function destroyIslands() {
|
|
@@ -38,55 +38,53 @@ export function createCellRender(deps) {
|
|
|
38
38
|
if (!el)
|
|
39
39
|
return;
|
|
40
40
|
const node = deps.node;
|
|
41
|
-
//
|
|
42
|
-
//
|
|
41
|
+
// Checking for a bracket before reading the signature or the resolver keeps one edit to
|
|
42
|
+
// a link-reference definition from re-rendering every cell. A false hit reparses the same.
|
|
43
43
|
const hasRef = node.raw.includes('[');
|
|
44
|
-
// Key on the
|
|
45
|
-
const sig = hasRef ? String(deps.
|
|
46
|
-
//
|
|
47
|
-
// '' in source keeps the default key byte-identical
|
|
48
|
-
const mode = deps.
|
|
44
|
+
// Key on the short signature token, never the string, which can reach megabytes.
|
|
45
|
+
const sig = hasRef ? String(deps.reading.resolverEpoch) : '';
|
|
46
|
+
// Always included, unlike the reference part: a mode change re-renders every mounted
|
|
47
|
+
// cell. '' in source mode keeps the default key byte-identical, as text-render does.
|
|
48
|
+
const mode = deps.reading.mode();
|
|
49
49
|
const modeKeyPart = mode === 'source' ? '' : mode;
|
|
50
50
|
const islands = deps.islands;
|
|
51
51
|
const renderKey = `${node.raw}\0${sig}\0${modeKeyPart}${islandRenderKeyPart(islands)}`;
|
|
52
52
|
const forceRebuild = opts?.forceRebuild ?? false;
|
|
53
53
|
if (renderKey === lastRenderedKey && !forceRebuild)
|
|
54
54
|
return;
|
|
55
|
-
const content = computeInlineContent(node, hasRef ? deps.
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
const caretWalkOffset = (opts?.carryCaret ?? true) ? captureFocusedCaretWalkOffset(el) : null;
|
|
55
|
+
const content = computeInlineContent(node, hasRef ? deps.reading.resolver : undefined, deps.reading.grammar);
|
|
56
|
+
// A decoration change rebuilds a focused cell with no restore pending, so the caret is
|
|
57
|
+
// carried across; an edit opts out because its own restore runs after.
|
|
58
|
+
const caret = (opts?.carryCaret ?? true) ? captureFocusedCaret(el) : null;
|
|
60
59
|
// Bracketing the rebuild pools portal widgets, so an unchanged `$…$` keeps its
|
|
61
|
-
// instance across per-keystroke rebuilds.
|
|
60
|
+
// instance across per-keystroke rebuilds. Decoration widgets are not pooled.
|
|
62
61
|
widgetPool.beginPass();
|
|
63
62
|
destroyIslands();
|
|
64
63
|
el.replaceChildren(renderInlineNodes(content, node.raw, {
|
|
65
64
|
renderImagesAsWidgets: getBlockKindDescriptor(node.kind).renderImagesAsWidgets ?? true,
|
|
66
65
|
resolveLinkUrl: deps.resolveLinkUrl,
|
|
67
|
-
buildPortalWidget
|
|
66
|
+
buildPortalWidget,
|
|
67
|
+
grammar: deps.reading.grammar
|
|
68
68
|
}));
|
|
69
|
-
// Ambient length 0: a cell carries no marker, so island offsets are raw offsets.
|
|
70
69
|
islandDestroys = applyIslandDecorations(el, node.raw, islands, {
|
|
71
70
|
contentLength: contentLengthOf(node),
|
|
72
|
-
ambientLength: 0,
|
|
73
71
|
mountWidget: (spec, dec) => mountDecorationWidget(spec, dec, deps.reportRenderError),
|
|
74
|
-
onSkipped: (dec, reason) => devWarn('decorations', `
|
|
72
|
+
onSkipped: (dec, reason) => devWarn('decorations', `decoration skipped: ${reason}`, dec)
|
|
75
73
|
});
|
|
76
74
|
widgetPool.sweep();
|
|
77
75
|
lastRenderedKey = renderKey;
|
|
78
|
-
// An empty cell needs a `<br>` caret anchor, but a `<br>` inside
|
|
79
|
-
// belongs to
|
|
76
|
+
// An empty cell needs a `<br>` for the caret to anchor in, but a `<br>` inside a
|
|
77
|
+
// decoration widget belongs to that widget, not the cell, so it cannot serve.
|
|
80
78
|
if (trimTrailingLineEnding(node.raw) === '') {
|
|
81
79
|
const hasAnchorBr = [...el.querySelectorAll('br')].some((br) => !br.closest('[data-decoration-island]'));
|
|
82
80
|
if (!hasAnchorBr)
|
|
83
81
|
el.appendChild(document.createElement('br'));
|
|
84
82
|
}
|
|
85
|
-
// A cell whose whole content is an empty construct (`[](u)`) would otherwise
|
|
86
|
-
// nothing; the
|
|
83
|
+
// A cell whose whole content is an empty construct (`[](u)`) would otherwise draw
|
|
84
|
+
// nothing; the attribute is set before the restore, which uses the same traversal.
|
|
87
85
|
el.toggleAttribute(CONTENT_EMPTY_ATTR, holdsOnlyMarkerChrome(el));
|
|
88
|
-
if (
|
|
89
|
-
|
|
86
|
+
if (caret !== null)
|
|
87
|
+
placeCaretAtRaw(el, caret, { clamp: 'exact' });
|
|
90
88
|
}
|
|
91
89
|
return {
|
|
92
90
|
render,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Which cells of one table a measurement request covers: a live
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Which cells of one table a measurement request covers: a live rectangle of cells, or a plain
|
|
3
|
+
* `[start, end)` run of row-major cell indices. The rectangle wins only when it belongs to this
|
|
4
|
+
* table.
|
|
5
5
|
*/
|
|
6
|
-
import type {
|
|
6
|
+
import type { GridCoverage } from '../../../selection/range-coverage';
|
|
7
7
|
import type { CellCoord } from './table-navigation';
|
|
8
8
|
export interface SelectedCellsInput {
|
|
9
|
-
/** The live rectangle from anywhere in the document, or null. */
|
|
10
|
-
|
|
11
|
-
/** This table's
|
|
9
|
+
/** The live rectangle's coverage from anywhere in the document, or null. */
|
|
10
|
+
grid: GridCoverage | null;
|
|
11
|
+
/** This table's document path, checked against `grid.path`. */
|
|
12
12
|
myPath: readonly number[];
|
|
13
13
|
start: number;
|
|
14
14
|
/** `SELECTION_END` means "through the last cell". */
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Which cells of one table a measurement request covers: a live
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Which cells of one table a measurement request covers: a live rectangle of cells, or a plain
|
|
3
|
+
* `[start, end)` run of row-major cell indices. The rectangle wins only when it belongs to this
|
|
4
|
+
* table.
|
|
5
5
|
*/
|
|
6
6
|
import { SELECTION_END } from '../../../block-component';
|
|
7
7
|
import { cellRowCol } from '../../../cursor/coordinate-spaces';
|
|
8
8
|
import { pathsEqual } from '../../../selection/path-math';
|
|
9
9
|
export function selectedCells(input) {
|
|
10
|
-
const {
|
|
11
|
-
if (
|
|
12
|
-
return rectangleCells(rect
|
|
13
|
-
}
|
|
10
|
+
const { grid, myPath, columnCount, rowCount } = input;
|
|
11
|
+
if (grid && pathsEqual(grid.path, myPath))
|
|
12
|
+
return rectangleCells(grid.rect);
|
|
14
13
|
const cellCount = rowCount * columnCount;
|
|
15
14
|
const end = input.end === SELECTION_END ? cellCount : Math.min(input.end, cellCount);
|
|
16
15
|
const cells = [];
|
|
@@ -18,14 +17,11 @@ export function selectedCells(input) {
|
|
|
18
17
|
cells.push(coordOf(i, columnCount));
|
|
19
18
|
return cells;
|
|
20
19
|
}
|
|
21
|
-
function rectangleCells(
|
|
22
|
-
const a = coordOf(rect.anchorCellIdx, columnCount);
|
|
23
|
-
const b = coordOf(rect.focusCellIdx, columnCount);
|
|
20
|
+
function rectangleCells({ top, left, rows, cols }) {
|
|
24
21
|
const cells = [];
|
|
25
|
-
for (let r =
|
|
26
|
-
for (let c =
|
|
22
|
+
for (let r = top; r < top + rows; r++) {
|
|
23
|
+
for (let c = left; c < left + cols; c++)
|
|
27
24
|
cells.push({ rowIdx: r, colIdx: c });
|
|
28
|
-
}
|
|
29
25
|
}
|
|
30
26
|
return cells;
|
|
31
27
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Table's `caretTargetAtPoint`: the cell a point
|
|
3
|
-
* plus
|
|
4
|
-
* it. A point clamped into the table's box can sit in a gutter, a
|
|
5
|
-
* spacer and must still land a caret, where an exact
|
|
2
|
+
* Table's `caretTargetAtPoint`: the cell a point puts a caret in, as a `[rowIdx, colIdx]` path
|
|
3
|
+
* plus an offset inside the cell. Nearest, not exact, which is the difference from
|
|
4
|
+
* `tableDragHitTest` beside it. A point clamped into the table's box can sit in a gutter, a
|
|
5
|
+
* padding gap or a windowing spacer and must still land a caret, where an exact hit refuses.
|
|
6
6
|
*/
|
|
7
7
|
import type { CaretTarget } from '../../../schema/block-kind-descriptor';
|
|
8
8
|
export declare function tableCaretAtPoint(blockEl: HTMLElement, clientX: number, clientY: number): CaretTarget | null;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Table's `caretTargetAtPoint`: the cell a point
|
|
3
|
-
* plus
|
|
4
|
-
* it. A point clamped into the table's box can sit in a gutter, a
|
|
5
|
-
* spacer and must still land a caret, where an exact
|
|
2
|
+
* Table's `caretTargetAtPoint`: the cell a point puts a caret in, as a `[rowIdx, colIdx]` path
|
|
3
|
+
* plus an offset inside the cell. Nearest, not exact, which is the difference from
|
|
4
|
+
* `tableDragHitTest` beside it. A point clamped into the table's box can sit in a gutter, a
|
|
5
|
+
* padding gap or a windowing spacer and must still land a caret, where an exact hit refuses.
|
|
6
6
|
*/
|
|
7
7
|
import { CURSOR_END } from '../../../block-component';
|
|
8
8
|
import { mountedRowEls, rowCellEls } from './cell-pointer';
|
|
@@ -13,7 +13,7 @@ export function tableCaretAtPoint(blockEl, clientX, clientY) {
|
|
|
13
13
|
let nearest = null;
|
|
14
14
|
let smallestDistance = Infinity;
|
|
15
15
|
for (const rowEl of mountedRowEls(tableEl)) {
|
|
16
|
-
// The
|
|
16
|
+
// The absolute row index: under row windowing the first mounted row is not row 0.
|
|
17
17
|
const rowIdx = Number(rowEl.getAttribute('data-table-row-idx'));
|
|
18
18
|
if (Number.isNaN(rowIdx))
|
|
19
19
|
continue;
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* are the kind's business — every hook hands back plain spliced text and
|
|
5
|
-
* `normalizeCellRaw` runs at the write sink.
|
|
2
|
+
* How a table cell takes in pasted text. The bytes are the kind's business: every hook hands back
|
|
3
|
+
* unescaped text, and the cell's write rule (`schema/table-cell-raw.ts`) runs when it is written.
|
|
6
4
|
*/
|
|
7
5
|
import type { CstNode } from '../../../core/nodes';
|
|
8
|
-
import type { InlinePasteResult, PasteRange,
|
|
6
|
+
import type { InlinePasteResult, PasteRange, PasteSurface } from '../../../tree-operations/paste-surfaces';
|
|
7
|
+
import type { StoredAs } from '../../../schema/stored-as';
|
|
9
8
|
export declare function normalizeWhitespace(s: string): string;
|
|
10
|
-
|
|
11
|
-
* Where `offset` lands once the sink's `normalizeCellRaw` has run — defined as that
|
|
12
|
-
* same pass over the prefix, so the caret cannot drift out of step with the bytes.
|
|
13
|
-
*/
|
|
14
|
-
export declare function escapedCellOffset(text: string, offset: number): number;
|
|
15
|
-
export declare function tableCellInlinePaste(node: CstNode, offset: number, text: string, preDelete?: PasteRange, seam?: PasteSeam): InlinePasteResult;
|
|
9
|
+
export declare function tableCellInlinePaste(node: CstNode, offset: number, text: string, preDelete: PasteRange | undefined, store: StoredAs): InlinePasteResult;
|
|
16
10
|
export declare const tableCellPasteSurface: PasteSurface;
|
|
@@ -1,40 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* are the kind's business — every hook hands back plain spliced text and
|
|
5
|
-
* `normalizeCellRaw` runs at the write sink.
|
|
2
|
+
* How a table cell takes in pasted text. The bytes are the kind's business: every hook hands back
|
|
3
|
+
* unescaped text, and the cell's write rule (`schema/table-cell-raw.ts`) runs when it is written.
|
|
6
4
|
*/
|
|
7
5
|
import { CURSOR_END } from '../../../block-component';
|
|
8
|
-
import { normalizeCellRaw } from '../../../schema/table-cell-raw';
|
|
9
6
|
import { blockNodeAt } from '../../../tree-operations/node-primitives';
|
|
10
|
-
import {
|
|
7
|
+
import { replaceRangeInLeaf } from '../../../tree-operations/leaf-range';
|
|
11
8
|
import { sliceTableAtRow } from '../../../tree-operations/paste/table-slice';
|
|
12
9
|
import { focusIndexBeforeResidue } from '../../../tree-operations/paste/focus-target';
|
|
13
|
-
import {
|
|
10
|
+
import { landClipboardBlocks, landedAfter } from '../../../tree-operations/paste/paste-replacement';
|
|
11
|
+
import { documentLineEnding, trimTrailingLineEnding, trimWhitespace } from '../../../core/lines';
|
|
14
12
|
// ── Public API ─────────────────────────────────────────────────────────────
|
|
15
13
|
export function normalizeWhitespace(s) {
|
|
16
|
-
return s.replace(/\n+/g, ' ')
|
|
14
|
+
return trimWhitespace(s.replace(/\n+/g, ' '));
|
|
17
15
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* same pass over the prefix, so the caret cannot drift out of step with the bytes.
|
|
21
|
-
*/
|
|
22
|
-
export function escapedCellOffset(text, offset) {
|
|
23
|
-
return normalizeCellRaw(text.slice(0, offset)).length;
|
|
24
|
-
}
|
|
25
|
-
export function tableCellInlinePaste(node, offset, text, preDelete, seam) {
|
|
16
|
+
export function tableCellInlinePaste(node, offset, text, preDelete, store) {
|
|
17
|
+
// The kind's pipe escaping runs over whatever the join writes, when the cell is written.
|
|
26
18
|
const cleaned = normalizeWhitespace(text);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
// sink over whatever they end up being.
|
|
30
|
-
const { display: raw, offset: effectiveOffset } = cutRangeFromDisplay(node, node.raw, preDelete ?? { start: offset, end: offset }, seam?.presentationMode, seam?.linkRef);
|
|
31
|
-
const spliced = raw.slice(0, effectiveOffset) + cleaned + raw.slice(effectiveOffset);
|
|
32
|
-
// Escaped space, because the sink escapes the whole spliced raw and not just the
|
|
33
|
-
// pasted text: the insertion point can sit between a `\` and the `|` it frees.
|
|
34
|
-
return {
|
|
35
|
-
newRaw: spliced,
|
|
36
|
-
caretOffset: escapedCellOffset(spliced, effectiveOffset + cleaned.length)
|
|
37
|
-
};
|
|
19
|
+
const edit = replaceRangeInLeaf(node, preDelete ?? { start: offset, end: offset }, cleaned, store);
|
|
20
|
+
return { newRaw: trimTrailingLineEnding(edit.raw), caretOffset: edit.caret };
|
|
38
21
|
}
|
|
39
22
|
export const tableCellPasteSurface = {
|
|
40
23
|
kind: 'tableCell',
|
|
@@ -44,33 +27,34 @@ export const tableCellPasteSurface = {
|
|
|
44
27
|
};
|
|
45
28
|
// ── Internal ───────────────────────────────────────────────────────────────
|
|
46
29
|
// The cell's blockEdit is the row-level nested bundle (its `replaceBlock` targets the
|
|
47
|
-
// row's cells), so the splice
|
|
30
|
+
// row's cells), so the splice goes through the paste coordinator at the table's parent.
|
|
48
31
|
async function tableCellScopedStructuralPaste(input) {
|
|
49
32
|
const tablePath = input.targetPath.slice(0, -2);
|
|
50
33
|
const rowIdx = input.targetPath[input.targetPath.length - 2];
|
|
51
34
|
const table = blockNodeAt(input.doc, tablePath);
|
|
52
|
-
// Malformed path:
|
|
35
|
+
// Malformed path: drop the paste.
|
|
53
36
|
if (!table || table.kind !== 'table')
|
|
54
37
|
return;
|
|
55
38
|
const { firstHalf, secondHalf } = sliceTableAtRow(table, rowIdx, 'first');
|
|
39
|
+
const lineEnding = documentLineEnding(input.doc);
|
|
56
40
|
const replacement = [];
|
|
57
41
|
if (firstHalf)
|
|
58
42
|
replacement.push(firstHalf);
|
|
43
|
+
const landed = landClipboardBlocks(firstHalf ?? undefined, input.blocks, lineEnding);
|
|
59
44
|
// Appended, never spread: a paste can outnumber an argument list (G4.60).
|
|
60
|
-
for (const block of
|
|
45
|
+
for (const block of landed)
|
|
61
46
|
replacement.push(block);
|
|
47
|
+
const last = replacement[replacement.length - 1];
|
|
48
|
+
// The rows below the cell stay a table: with no blank line, the last block would read them.
|
|
62
49
|
if (secondHalf)
|
|
63
|
-
replacement.push(secondHalf);
|
|
64
|
-
await
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
replacement,
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
source: 'paste-dispatch-table-cell',
|
|
74
|
-
...(input.grammar ? { grammar: input.grammar } : {})
|
|
75
|
-
});
|
|
50
|
+
replacement.push(last ? landedAfter(last, secondHalf, lineEnding) : secondHalf);
|
|
51
|
+
await input.controller.replaceBlock(tablePath, replacement,
|
|
52
|
+
// The last pasted block, before the second half of the table.
|
|
53
|
+
{
|
|
54
|
+
replacementIndex: focusIndexBeforeResidue(replacement.length, secondHalf !== null),
|
|
55
|
+
offset: CURSOR_END
|
|
56
|
+
},
|
|
57
|
+
// The commit targets the whole table, where no in-cell offset applies; the live read
|
|
58
|
+
// records the cell's caret.
|
|
59
|
+
{ source: 'paste-dispatch-table-cell', snapshotOffset: 0 });
|
|
76
60
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Owns the encoding so the selection layer stays free of table-DOM knowledge.
|
|
4
4
|
*/
|
|
5
5
|
import { cellAtPoint, mountedRowEls, rowCellEls } from './cell-pointer';
|
|
6
|
+
import { rowMajorCellIndex } from '../../../cursor/coordinate-spaces';
|
|
6
7
|
export function tableDragHitTest(blockEl, clientX, clientY) {
|
|
7
8
|
const tableEl = blockEl.querySelector(':scope > [role="table"]');
|
|
8
9
|
if (!tableEl)
|
|
@@ -16,5 +17,5 @@ export function tableDragHitTest(blockEl, clientX, clientY) {
|
|
|
16
17
|
const columnCount = rowCellEls(firstRow).length;
|
|
17
18
|
if (columnCount === 0)
|
|
18
19
|
return null;
|
|
19
|
-
return cell.rowIdx
|
|
20
|
+
return rowMajorCellIndex(cell.rowIdx, cell.colIdx, columnCount);
|
|
20
21
|
}
|
|
@@ -7,8 +7,8 @@ import type { TableAxisAction } from '../../../action-contracts';
|
|
|
7
7
|
import type { TableAlignment } from '../../../core/nodes';
|
|
8
8
|
export type ClipboardAction = 'cut' | 'copy' | 'paste';
|
|
9
9
|
/**
|
|
10
|
-
* Clamp a fixed-position menu's top-left into the viewport
|
|
11
|
-
*
|
|
10
|
+
* Clamp a fixed-position menu's top-left into the viewport, less `margin`, since menus open
|
|
11
|
+
* at a raw pointer coordinate. One larger than the viewport is pinned to the top left.
|
|
12
12
|
*/
|
|
13
13
|
export declare function clampMenuToViewport(desired: {
|
|
14
14
|
x: number;
|
|
@@ -23,12 +23,8 @@ export declare function clampMenuToViewport(desired: {
|
|
|
23
23
|
x: number;
|
|
24
24
|
y: number;
|
|
25
25
|
};
|
|
26
|
-
/**
|
|
27
|
-
*
|
|
28
|
-
* viewport bottom (never above the top margin) and, when its right edge would overflow, flipped
|
|
29
|
-
* to the parent menu's left side. Shifting vertically keeps the hovered row pointing into it;
|
|
30
|
-
* flipping horizontally keeps it off its own parent. Pure, so the two flyouts share one rule.
|
|
31
|
-
*/
|
|
26
|
+
/** A flyout rises just enough to clear the viewport bottom, and moves to the parent menu's
|
|
27
|
+
* left when its right edge would overflow and the left has room. */
|
|
32
28
|
export declare function flyoutPlacement(flyout: {
|
|
33
29
|
top: number;
|
|
34
30
|
bottom: number;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { tableRowReorderTarget, tableColumnReorderTarget } from '../../../editor-actions/table-context';
|
|
2
2
|
import { canDeleteRow, canDeleteColumn } from '../../../tree-operations/table-mutations';
|
|
3
3
|
/**
|
|
4
|
-
* Clamp a fixed-position menu's top-left into the viewport
|
|
5
|
-
*
|
|
4
|
+
* Clamp a fixed-position menu's top-left into the viewport, less `margin`, since menus open
|
|
5
|
+
* at a raw pointer coordinate. One larger than the viewport is pinned to the top left.
|
|
6
6
|
*/
|
|
7
7
|
export function clampMenuToViewport(desired, menu, viewport, margin = 8) {
|
|
8
8
|
const maxX = Math.max(margin, viewport.width - menu.width - margin);
|
|
@@ -12,12 +12,8 @@ export function clampMenuToViewport(desired, menu, viewport, margin = 8) {
|
|
|
12
12
|
y: Math.min(Math.max(margin, desired.y), maxY)
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
* viewport bottom (never above the top margin) and, when its right edge would overflow, flipped
|
|
18
|
-
* to the parent menu's left side. Shifting vertically keeps the hovered row pointing into it;
|
|
19
|
-
* flipping horizontally keeps it off its own parent. Pure, so the two flyouts share one rule.
|
|
20
|
-
*/
|
|
15
|
+
/** A flyout rises just enough to clear the viewport bottom, and moves to the parent menu's
|
|
16
|
+
* left when its right edge would overflow and the left has room. */
|
|
21
17
|
export function flyoutPlacement(flyout, parentMenu, viewport, margin = 8) {
|
|
22
18
|
const overflow = flyout.bottom + margin - viewport.height;
|
|
23
19
|
const dy = overflow > 0 ? -Math.min(overflow, Math.max(0, flyout.top - margin)) : 0;
|
|
@@ -31,7 +27,7 @@ clipboard) {
|
|
|
31
27
|
const rows = rowGroup(cell.rowIdx, dims.rowCount);
|
|
32
28
|
const cols = columnGroup(cell.colIdx, dims.colCount, alignments);
|
|
33
29
|
const isDelete = (i) => i.kind === 'action' && (i.action === 'deleteRow' || i.action === 'deleteColumn');
|
|
34
|
-
// A cell knows both axes, so each axis's inserts and moves
|
|
30
|
+
// A cell knows both axes, so each axis's inserts and moves go behind one flyout and only
|
|
35
31
|
// the two deletes and the alignment stay in the list.
|
|
36
32
|
return [
|
|
37
33
|
...clipboardGroup(clipboard.hasSelection || clipboard.hasRect === true),
|
|
@@ -49,7 +45,7 @@ clipboard) {
|
|
|
49
45
|
...cols.filter((i) => i.kind === 'alignment')
|
|
50
46
|
];
|
|
51
47
|
}
|
|
52
|
-
// Paste always applies: clipboard
|
|
48
|
+
// Paste always applies: the clipboard cannot be read synchronously to decide otherwise.
|
|
53
49
|
function clipboardGroup(hasContent) {
|
|
54
50
|
return [
|
|
55
51
|
{ kind: 'clipboard', action: 'cut', label: 'Cut', enabled: hasContent },
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Pure: no DOM, no Svelte. Null means
|
|
2
|
-
// the
|
|
1
|
+
// Pure: no DOM, no Svelte. Null means there is no cell that way; what the caller does at the
|
|
2
|
+
// edge, leaving the table or appending a row, is its own decision.
|
|
3
3
|
export function nextCell(pos, columnCount, rowCount) {
|
|
4
4
|
if (pos.colIdx < columnCount - 1)
|
|
5
5
|
return { rowIdx: pos.rowIdx, colIdx: pos.colIdx + 1 };
|