@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
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import '../styles/editor.css';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type { EditorProps, EditorDiagnostics } from '../editor-props';
|
|
2
|
+
import type { AnyBlockKind } from '../core/nodes';
|
|
3
|
+
import type { EditorProps, EditorDiagnostics, InsertMarkdownOptions } from '../editor-props';
|
|
5
4
|
import type { EditorEvents } from '../editor-events';
|
|
6
5
|
import type { EditorSelection } from '../selection/primitives';
|
|
7
6
|
import { type SearchState } from '../search/search-state.svelte';
|
|
8
7
|
import type { DecorationRegistry } from '../decorations/types';
|
|
9
8
|
import { type EditorRects } from '../editor-rects';
|
|
9
|
+
import type { EditorTestSurface } from './editor-root-test-surface';
|
|
10
|
+
import { type InsertEntry } from '../schema/insert-catalogue';
|
|
10
11
|
import { type KindEnablement } from '../schema/registry-view';
|
|
12
|
+
import type { InlineMenuRegistry } from '../inline-menu/types';
|
|
11
13
|
type $$ComponentProps = EditorProps & {
|
|
12
14
|
__registryEnablement?: KindEnablement;
|
|
13
15
|
};
|
|
@@ -17,33 +19,20 @@ declare const Editor: import("svelte").Component<$$ComponentProps, {
|
|
|
17
19
|
getSelection: () => EditorSelection | null;
|
|
18
20
|
setSelection: (selection: EditorSelection) => Promise<boolean>;
|
|
19
21
|
placeCaretAtPoint: (x: number, y: number) => boolean;
|
|
20
|
-
insertMarkdown: (md: string) => boolean
|
|
22
|
+
insertMarkdown: (md: string, options?: InsertMarkdownOptions) => Promise<boolean>;
|
|
21
23
|
runCommand: (commandId: string, arg?: unknown) => boolean;
|
|
22
24
|
canRunCommand: (commandId: string) => boolean;
|
|
23
25
|
isCommandActive: (commandId: string) => boolean;
|
|
24
26
|
getEvents: () => EditorEvents;
|
|
25
27
|
getSearch: () => SearchState;
|
|
26
28
|
getDecorations: () => DecorationRegistry;
|
|
29
|
+
getInlineMenus: () => InlineMenuRegistry;
|
|
30
|
+
getInsertCatalogue: () => readonly InsertEntry[];
|
|
27
31
|
getRects: () => EditorRects;
|
|
28
32
|
reservedChords: () => ReadonlySet<string>;
|
|
29
33
|
claimsChord: (event: KeyboardEvent) => boolean;
|
|
30
34
|
getDiagnostics: () => EditorDiagnostics;
|
|
31
|
-
__test:
|
|
32
|
-
getDocument: () => Document;
|
|
33
|
-
getContentVersion: () => number;
|
|
34
|
-
getBlockComponent: (path: number[]) => BlockComponent | null;
|
|
35
|
-
getUndoStack: () => {
|
|
36
|
-
undo: import("../undo/types").UndoEntry[];
|
|
37
|
-
redo: import("../undo/types").UndoEntry[];
|
|
38
|
-
};
|
|
39
|
-
getOperationsLog: () => import("../debug/operations-log").OperationsLog;
|
|
40
|
-
isCrossBlockActive: () => boolean;
|
|
41
|
-
getGapCaret: () => import("../selection/gap-caret").GapCaretPosition | null;
|
|
42
|
-
getDecorationEngine: () => import("../decorations/decoration-state.svelte").DecorationEngine;
|
|
43
|
-
getHeightOracle: () => import("../cursor/height-oracle").HeightOracle;
|
|
44
|
-
getWidthVersion: () => number;
|
|
45
|
-
setBlockRefSlot: (index: number, ref: BlockComponent | undefined) => void;
|
|
46
|
-
};
|
|
35
|
+
__test: EditorTestSurface;
|
|
47
36
|
}, "">;
|
|
48
37
|
type Editor = ReturnType<typeof Editor>;
|
|
49
38
|
export default Editor;
|
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
/**
|
|
3
|
-
* The between-blocks caret
|
|
4
|
-
* gap is live. It lives in the BlockList, outside every block
|
|
5
|
-
*
|
|
6
|
-
*
|
|
3
|
+
* The between-blocks caret: a zero-height stand-in element that takes DOM focus while the
|
|
4
|
+
* gap is live. It lives in the BlockList, outside every block, so it adds nothing to any
|
|
5
|
+
* block's text content. Text and Enter create a paragraph at the boundary; every other
|
|
6
|
+
* input is refused at `beforeinput`.
|
|
7
7
|
*/
|
|
8
8
|
import { getContext } from 'svelte';
|
|
9
|
-
import type { BlockEditActions, FocusActions
|
|
9
|
+
import type { BlockEditActions, FocusActions } from '../action-contracts';
|
|
10
10
|
import { GAP_CARET_LABEL } from '../a11y-strings';
|
|
11
11
|
import {
|
|
12
12
|
EDITOR_DOC_KEY,
|
|
13
13
|
EDITOR_POLICIES_KEY,
|
|
14
14
|
EDITOR_SERVICES_KEY,
|
|
15
|
-
HISTORY_KEY,
|
|
16
15
|
type EditorDoc,
|
|
17
16
|
type EditorPolicies,
|
|
18
17
|
type EditorServices
|
|
19
18
|
} from '../editor-keys';
|
|
20
|
-
import { emitCommandError } from '../editor-events';
|
|
21
19
|
import { runGlobalChord } from '../schema/commands';
|
|
22
20
|
import { eventToChord } from '../schema/keybindings';
|
|
23
21
|
import { isReadingMode } from '../presentation-mode';
|
|
@@ -32,21 +30,20 @@
|
|
|
32
30
|
blockEdit: BlockEditActions | undefined;
|
|
33
31
|
} = $props();
|
|
34
32
|
|
|
35
|
-
//
|
|
36
|
-
//
|
|
33
|
+
// Provided by the root and read here rather than passed through BlockList: only the
|
|
34
|
+
// two action bundles above depend on where this list sits.
|
|
37
35
|
const services = getContext<EditorServices | undefined>(EDITOR_SERVICES_KEY);
|
|
38
36
|
const selection = services?.selection;
|
|
39
|
-
const policies = getContext<EditorPolicies
|
|
37
|
+
const policies = getContext<EditorPolicies>(EDITOR_POLICIES_KEY);
|
|
40
38
|
const editorDoc = getContext<EditorDoc | undefined>(EDITOR_DOC_KEY);
|
|
41
|
-
const history = getContext<HistoryActions | undefined>(HISTORY_KEY);
|
|
42
39
|
|
|
43
40
|
let proxyEl: HTMLElement | undefined = $state();
|
|
44
41
|
let composing = false;
|
|
45
42
|
|
|
46
|
-
const isReading = $derived(isReadingMode(policies
|
|
43
|
+
const isReading = $derived(isReadingMode(policies.presentationMode));
|
|
47
44
|
|
|
48
|
-
//
|
|
49
|
-
//
|
|
45
|
+
// Mounted only while the gap is live; focusing the contenteditable gives it a caret, so no
|
|
46
|
+
// range is set by hand.
|
|
50
47
|
$effect(() => {
|
|
51
48
|
if (!proxyEl) return;
|
|
52
49
|
proxyEl.focus();
|
|
@@ -63,48 +60,22 @@
|
|
|
63
60
|
void focusActions?.moveFocus(index - 1, 'end', EXIT);
|
|
64
61
|
}
|
|
65
62
|
|
|
66
|
-
/**
|
|
63
|
+
/** `insertParagraph`'s own landing focuses the new block, and that focus ends the gap. */
|
|
67
64
|
function mint(text: string): void {
|
|
68
65
|
void blockEdit?.insertParagraph(index, text);
|
|
69
66
|
}
|
|
70
67
|
|
|
71
|
-
/**
|
|
72
|
-
*
|
|
73
|
-
|
|
74
|
-
* consumes the chord, or the browser's native history runs on the proxy.
|
|
75
|
-
*/
|
|
76
|
-
function handleGlobalChord(
|
|
77
|
-
event: KeyboardEvent,
|
|
78
|
-
deps: {
|
|
79
|
-
history: HistoryActions;
|
|
80
|
-
doc: EditorDoc;
|
|
81
|
-
events: EditorServices['events'];
|
|
82
|
-
activation: EditorServices['activePlugins'];
|
|
83
|
-
}
|
|
84
|
-
): boolean {
|
|
68
|
+
/** Undo, redo and plugin-global chords run here, since no block has focus and the root answers
|
|
69
|
+
* only an unfocused caret; reading mode takes them too, so the browser's undo never runs. */
|
|
70
|
+
function handleGlobalChord(event: KeyboardEvent): boolean {
|
|
85
71
|
const chord = eventToChord(event);
|
|
86
|
-
if (!chord) return false;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
history: deps.history,
|
|
90
|
-
pluginEditor: deps.doc.pluginEditor,
|
|
91
|
-
activation: deps.activation,
|
|
92
|
-
onCommandError: (report) => emitCommandError(deps.events, report)
|
|
93
|
-
});
|
|
94
|
-
if (consumed) event.preventDefault();
|
|
95
|
-
return consumed;
|
|
72
|
+
if (!chord || !services || !runGlobalChord(chord, services.commands)) return false;
|
|
73
|
+
event.preventDefault();
|
|
74
|
+
return true;
|
|
96
75
|
}
|
|
97
76
|
|
|
98
77
|
function onKeyDown(event: KeyboardEvent): void {
|
|
99
|
-
if (
|
|
100
|
-
const deps = {
|
|
101
|
-
history,
|
|
102
|
-
doc: editorDoc,
|
|
103
|
-
events: services.events,
|
|
104
|
-
activation: services.activePlugins
|
|
105
|
-
};
|
|
106
|
-
if (handleGlobalChord(event, deps)) return;
|
|
107
|
-
}
|
|
78
|
+
if (handleGlobalChord(event)) return;
|
|
108
79
|
// Any other modified chord belongs to whatever the root or the host does with it.
|
|
109
80
|
if (event.ctrlKey || event.metaKey || event.altKey) return;
|
|
110
81
|
switch (event.key) {
|
|
@@ -130,8 +101,8 @@
|
|
|
130
101
|
}
|
|
131
102
|
|
|
132
103
|
function onBeforeInput(event: InputEvent): void {
|
|
133
|
-
// The browser owns
|
|
134
|
-
//
|
|
104
|
+
// The browser owns this element between compositionstart and compositionend, as it does
|
|
105
|
+
// everywhere in the editor: refusing here would swallow the composition.
|
|
135
106
|
if (composing) return;
|
|
136
107
|
event.preventDefault();
|
|
137
108
|
if (event.inputType === 'insertText' && event.data) mint(event.data);
|
|
@@ -140,8 +111,8 @@
|
|
|
140
111
|
function onCompositionEnd(): void {
|
|
141
112
|
composing = false;
|
|
142
113
|
const composed = proxyEl?.textContent ?? '';
|
|
143
|
-
//
|
|
144
|
-
//
|
|
114
|
+
// This element only holds a caret; nothing serializes it. Whatever the IME left belongs
|
|
115
|
+
// to the new paragraph, and the element goes back to empty either way.
|
|
145
116
|
if (proxyEl) proxyEl.textContent = '';
|
|
146
117
|
if (composed) mint(composed);
|
|
147
118
|
}
|
|
@@ -149,7 +120,7 @@
|
|
|
149
120
|
function onFocusOut(event: FocusEvent): void {
|
|
150
121
|
const next = event.relatedTarget;
|
|
151
122
|
// A null relatedTarget is the window losing focus, which a native caret survives too.
|
|
152
|
-
// Anything
|
|
123
|
+
// Anything focused inside the editor took the caret by its own route.
|
|
153
124
|
if (next === null) return;
|
|
154
125
|
if (next instanceof Node && editorDoc?.editorRoot()?.contains(next)) return;
|
|
155
126
|
selection?.clearGapCaret();
|
|
@@ -194,12 +165,8 @@
|
|
|
194
165
|
pointer-events: none;
|
|
195
166
|
animation: gap-caret-blink 1s step-end infinite;
|
|
196
167
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
* REAL box: Chromium fires no `beforeinput` on a zero-height editing host, which silently
|
|
200
|
-
* costs the proxy every keystroke. Click-through, or the band would steal edge clicks
|
|
201
|
-
* from both neighbours; the painted line is the caret, so this one never shows.
|
|
202
|
-
*/
|
|
168
|
+
/* A real box, since Chromium fires no `beforeinput` on a zero-height editing host;
|
|
169
|
+
click-through, so it steals no edge clicks from either neighbour. */
|
|
203
170
|
.gap-caret-proxy {
|
|
204
171
|
position: absolute;
|
|
205
172
|
top: -0.6em;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { getContext } from 'svelte';
|
|
3
|
-
import {
|
|
3
|
+
import type { BlockComponent } from '../block-component';
|
|
4
4
|
import {
|
|
5
5
|
EDITOR_DOC_KEY,
|
|
6
6
|
EDITOR_SERVICES_KEY,
|
|
@@ -8,14 +8,10 @@
|
|
|
8
8
|
type EditorServices
|
|
9
9
|
} from '../editor-keys';
|
|
10
10
|
import {
|
|
11
|
-
normalize,
|
|
12
11
|
blockPaintsWholeBox,
|
|
13
12
|
classifyBlockForSelection,
|
|
14
|
-
|
|
15
|
-
cellIndexOf,
|
|
16
|
-
type EditorSelection
|
|
13
|
+
endpointMeasureSpan
|
|
17
14
|
} from '../selection/primitives';
|
|
18
|
-
import { snapCrossBlockTableEndpoints } from '../selection/table-endpoint-snap';
|
|
19
15
|
import { wireOverlayRemeasure } from '../cursor/overlay-remeasure';
|
|
20
16
|
|
|
21
17
|
let {
|
|
@@ -26,8 +22,10 @@
|
|
|
26
22
|
containerPaintsRects = false
|
|
27
23
|
}: {
|
|
28
24
|
path: number[];
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
/** How the endpoint rects are measured, and where: a delegating container passes neither,
|
|
26
|
+
* since it never measures. */
|
|
27
|
+
blockRef?: BlockComponent;
|
|
28
|
+
blockEl?: HTMLElement | null;
|
|
31
29
|
/** This container's children paint the range's endpoint rects, so it measures none. */
|
|
32
30
|
delegatesPainting?: boolean;
|
|
33
31
|
/** This container measures its own rects instead of delegating. Both are decided
|
|
@@ -35,28 +33,24 @@
|
|
|
35
33
|
containerPaintsRects?: boolean;
|
|
36
34
|
} = $props();
|
|
37
35
|
|
|
38
|
-
// Optional, like every context BlockHost reads: a
|
|
39
|
-
// and every use below is written for absence.
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
const getEditorRoot =
|
|
43
|
-
const getDoc = editorDoc?.doc;
|
|
36
|
+
// Optional, like every context BlockHost reads: a mount without the editor shell
|
|
37
|
+
// provides none, and every use below is written for absence.
|
|
38
|
+
const services = getContext<EditorServices | undefined>(EDITOR_SERVICES_KEY);
|
|
39
|
+
const selection = services?.selection;
|
|
40
|
+
const getEditorRoot = getContext<EditorDoc | undefined>(EDITOR_DOC_KEY)?.editorRoot;
|
|
44
41
|
|
|
45
|
-
const
|
|
46
|
-
if (!selection?.isCustomRendered || !selection.anchor || !selection.focus) return null;
|
|
47
|
-
return { anchor: selection.anchor, focus: selection.focus };
|
|
48
|
-
});
|
|
42
|
+
const coverage = $derived(services?.rangeCoverage() ?? null);
|
|
49
43
|
|
|
50
|
-
const classification = $derived(
|
|
44
|
+
const classification = $derived(coverage ? classifyBlockForSelection(path, coverage) : 'outside');
|
|
51
45
|
|
|
52
|
-
//
|
|
53
|
-
// renders,
|
|
46
|
+
// Ignores who measures, on purpose: a block the range covers whole paints one box over
|
|
47
|
+
// everything it renders, markers included, and its children already paint nothing under it.
|
|
54
48
|
const paintsWholeBox = $derived(
|
|
55
|
-
|
|
49
|
+
coverage !== null && blockPaintsWholeBox(path, coverage, selection?.wholeUnitPath ?? null)
|
|
56
50
|
);
|
|
57
51
|
|
|
58
|
-
// The measuring effect and the
|
|
59
|
-
//
|
|
52
|
+
// The measuring effect and the markup read this one value, so a painted rectangle is
|
|
53
|
+
// always one the effect measured; two separate tests would paint a stale box.
|
|
60
54
|
const paintsEndpoints = $derived(
|
|
61
55
|
!delegatesPainting &&
|
|
62
56
|
(classification === 'start' ||
|
|
@@ -71,9 +65,8 @@
|
|
|
71
65
|
height: number;
|
|
72
66
|
}
|
|
73
67
|
|
|
74
|
-
/**
|
|
75
|
-
*
|
|
76
|
-
* taller than the text beside it, and two rects painted over one span read twice as dark. */
|
|
68
|
+
/** Merges vertically overlapping rects, not just equal tops, so a tall inline widget beside
|
|
69
|
+
* text is not highlighted twice. */
|
|
77
70
|
function mergeRectsPerLine(rects: LocalRect[]): LocalRect[] {
|
|
78
71
|
if (rects.length <= 1) return rects;
|
|
79
72
|
const sorted = [...rects].sort((a, b) => a.top - b.top);
|
|
@@ -106,38 +99,20 @@
|
|
|
106
99
|
endpointRects = [];
|
|
107
100
|
return;
|
|
108
101
|
}
|
|
109
|
-
if (!blockRef?.measurePartialRects || !blockEl || !
|
|
102
|
+
if (!blockRef?.measurePartialRects || !blockEl || !services || !coverage) {
|
|
110
103
|
endpointRects = [];
|
|
111
104
|
return;
|
|
112
105
|
}
|
|
113
106
|
|
|
114
107
|
const ref = blockRef;
|
|
115
108
|
const el = blockEl;
|
|
116
|
-
const
|
|
109
|
+
const covered = services.rangeCoverage;
|
|
117
110
|
|
|
118
111
|
function measure(): void {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
const
|
|
122
|
-
const
|
|
123
|
-
? snapCrossBlockTableEndpoints(doc, normalized.start, normalized.end)
|
|
124
|
-
: normalized;
|
|
125
|
-
const startOffset =
|
|
126
|
-
classification === 'end'
|
|
127
|
-
? 0
|
|
128
|
-
: start.cellCoordinate
|
|
129
|
-
? cellIndexOf(start, 'SelectionOverlay:start')
|
|
130
|
-
: charOffsetOf(start, 'SelectionOverlay:start');
|
|
131
|
-
// measurePartialRects paints [start, end) exclusive, so the +1 turning a
|
|
132
|
-
// snapped table end (inclusive last cell) into an exclusive whole-row bound
|
|
133
|
-
// belongs to the cell branch only.
|
|
134
|
-
const endOffset =
|
|
135
|
-
classification === 'start'
|
|
136
|
-
? SELECTION_END
|
|
137
|
-
: end.cellCoordinate
|
|
138
|
-
? cellIndexOf(end, 'SelectionOverlay:end') + 1
|
|
139
|
-
: charOffsetOf(end, 'SelectionOverlay:end');
|
|
140
|
-
const viewportRects: DOMRect[] = ref.measurePartialRects(startOffset, endOffset);
|
|
112
|
+
const live = covered();
|
|
113
|
+
if (!live || !ref.measurePartialRects) return;
|
|
114
|
+
const { from, to } = endpointMeasureSpan(classification, live);
|
|
115
|
+
const viewportRects: DOMRect[] = ref.measurePartialRects(from, to);
|
|
141
116
|
const blockRect = el.getBoundingClientRect();
|
|
142
117
|
endpointRects = mergeRectsPerLine(
|
|
143
118
|
viewportRects.map((r) => ({
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { BlockComponent } from '../block-component';
|
|
2
2
|
type $$ComponentProps = {
|
|
3
3
|
path: number[];
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
/** How the endpoint rects are measured, and where: a delegating container passes neither,
|
|
5
|
+
* since it never measures. */
|
|
6
|
+
blockRef?: BlockComponent;
|
|
7
|
+
blockEl?: HTMLElement | null;
|
|
6
8
|
/** This container's children paint the range's endpoint rects, so it measures none. */
|
|
7
9
|
delegatesPainting?: boolean;
|
|
8
10
|
/** This container measures its own rects instead of delegating. Both are decided
|
|
@@ -1,44 +1,32 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
/**
|
|
3
|
-
* The row below the last block: a full-width strip that adds an empty paragraph at
|
|
4
|
-
* of the document and
|
|
5
|
-
*
|
|
6
|
-
*
|
|
3
|
+
* The row below the last block: a full-width, invisible strip that adds an empty paragraph at
|
|
4
|
+
* the end of the document and puts the caret in it, so there is always a way to write below
|
|
5
|
+
* whatever the last block is (a table, a fence, an equation). A drag that starts on it is the
|
|
6
|
+
* editor's own drag-select, like one from any margin (`editor-root-gestures.ts`).
|
|
7
7
|
*/
|
|
8
8
|
import type { BlockEditActions } from '../action-contracts';
|
|
9
|
-
import {
|
|
10
|
-
import MenuIcon from './menu/MenuIcon.svelte';
|
|
9
|
+
import { TAIL_ADD_ROW } from '../a11y-strings';
|
|
11
10
|
|
|
12
11
|
let {
|
|
13
12
|
blockEdit,
|
|
14
13
|
childCount,
|
|
15
|
-
readOnly
|
|
16
|
-
onPlus
|
|
14
|
+
readOnly
|
|
17
15
|
}: {
|
|
18
16
|
blockEdit: BlockEditActions | undefined;
|
|
19
17
|
childCount: number;
|
|
20
18
|
readOnly: boolean;
|
|
21
|
-
/** The `+`: the editor appends the paragraph and opens the block menu over it. */
|
|
22
|
-
onPlus: (button: HTMLElement) => void;
|
|
23
19
|
} = $props();
|
|
24
20
|
|
|
25
|
-
//
|
|
21
|
+
// `insertParagraph` focuses the new block, which places the caret; the mousedown is
|
|
22
|
+
// swallowed so nothing else places one.
|
|
26
23
|
function append(): void {
|
|
27
|
-
if (readOnly) return;
|
|
28
24
|
void blockEdit?.insertParagraph(childCount, '');
|
|
29
25
|
}
|
|
30
26
|
</script>
|
|
31
27
|
|
|
32
28
|
{#if !readOnly}
|
|
33
29
|
<div class="editor-tail">
|
|
34
|
-
<button
|
|
35
|
-
type="button"
|
|
36
|
-
class="editor-tail-plus"
|
|
37
|
-
aria-label={TAIL_ADD_BLOCK}
|
|
38
|
-
title={TAIL_ADD_BLOCK}
|
|
39
|
-
onmousedown={(e) => e.preventDefault()}
|
|
40
|
-
onclick={(e) => onPlus(e.currentTarget)}><MenuIcon name="plus" size={14} /></button
|
|
41
|
-
>
|
|
42
30
|
<button
|
|
43
31
|
type="button"
|
|
44
32
|
class="editor-tail-row"
|
|
@@ -51,7 +39,6 @@
|
|
|
51
39
|
|
|
52
40
|
<style>
|
|
53
41
|
.editor-tail {
|
|
54
|
-
position: relative;
|
|
55
42
|
display: flex;
|
|
56
43
|
align-items: center;
|
|
57
44
|
height: 34px;
|
|
@@ -70,38 +57,4 @@
|
|
|
70
57
|
outline-offset: -1px;
|
|
71
58
|
border-radius: 4px;
|
|
72
59
|
}
|
|
73
|
-
/* In the editor's gutter, exactly where a block's drag handle sits (`BlockDragHandle`): the
|
|
74
|
-
root's 1rem padding holds a 0.85rem slot, and this is the handle of the imaginary last line. */
|
|
75
|
-
.editor-tail-plus {
|
|
76
|
-
position: absolute;
|
|
77
|
-
left: -1rem;
|
|
78
|
-
top: 50%;
|
|
79
|
-
transform: translateY(-50%);
|
|
80
|
-
display: flex;
|
|
81
|
-
align-items: center;
|
|
82
|
-
justify-content: center;
|
|
83
|
-
width: 1rem;
|
|
84
|
-
height: 1rem;
|
|
85
|
-
padding: 0;
|
|
86
|
-
border: 0;
|
|
87
|
-
border-radius: 3px;
|
|
88
|
-
background: transparent;
|
|
89
|
-
color: var(--color-ui-muted, #8f8f89);
|
|
90
|
-
cursor: pointer;
|
|
91
|
-
opacity: 0;
|
|
92
|
-
transition: opacity 120ms ease-out;
|
|
93
|
-
}
|
|
94
|
-
.editor-tail:hover .editor-tail-plus,
|
|
95
|
-
.editor-tail-plus:focus-visible {
|
|
96
|
-
opacity: 1;
|
|
97
|
-
}
|
|
98
|
-
.editor-tail-plus:hover {
|
|
99
|
-
background: var(--color-ui-faint, rgba(255, 255, 255, 0.07));
|
|
100
|
-
color: var(--color-text-primary, #e8e8e5);
|
|
101
|
-
}
|
|
102
|
-
@media (prefers-reduced-motion: reduce) {
|
|
103
|
-
.editor-tail-plus {
|
|
104
|
-
transition: none;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
60
|
</style>
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The row below the last block: a full-width strip that adds an empty paragraph at
|
|
3
|
-
* of the document and
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* The row below the last block: a full-width, invisible strip that adds an empty paragraph at
|
|
3
|
+
* the end of the document and puts the caret in it, so there is always a way to write below
|
|
4
|
+
* whatever the last block is (a table, a fence, an equation). A drag that starts on it is the
|
|
5
|
+
* editor's own drag-select, like one from any margin (`editor-root-gestures.ts`).
|
|
6
6
|
*/
|
|
7
7
|
import type { BlockEditActions } from '../action-contracts';
|
|
8
8
|
type $$ComponentProps = {
|
|
9
9
|
blockEdit: BlockEditActions | undefined;
|
|
10
10
|
childCount: number;
|
|
11
11
|
readOnly: boolean;
|
|
12
|
-
/** The `+`: the editor appends the paragraph and opens the block menu over it. */
|
|
13
|
-
onPlus: (button: HTMLElement) => void;
|
|
14
12
|
};
|
|
15
13
|
declare const TailInsert: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
16
14
|
type TailInsert = ReturnType<typeof TailInsert>;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* overlay, decoration overlays, drag handle). One definition, shared by the runtime and the e2e
|
|
5
|
-
* page-object.
|
|
2
|
+
* Selectors for a block's content element: the first child of its `data-block-path` wrapper
|
|
3
|
+
* that is not an overlay, badge, gutter or handle. Shared by the runtime and the e2e page object.
|
|
6
4
|
*/
|
|
7
|
-
/** For `querySelector`, which returns the
|
|
8
|
-
*
|
|
5
|
+
/** For `querySelector`, which returns the first match only, so what must be excluded is
|
|
6
|
+
* whatever can come before the block content. */
|
|
9
7
|
export declare const BLOCK_CONTENT_SELECTOR = ":scope > :not(.selection-overlay):not(.decoration-badge)";
|
|
10
|
-
/** For a Playwright `locator`, which
|
|
11
|
-
*
|
|
8
|
+
/** For a Playwright `locator`, which returns every match, so each extra child has to be
|
|
9
|
+
* named; the decoration overlay is one per painted mark, not one per block. */
|
|
12
10
|
export declare const BLOCK_CONTENT_LOCATOR_SELECTOR = ":scope > *:not(.selection-overlay):not(.decoration-overlay):not(.block-drag-handle):not(.decoration-badge):not(.code-rail)";
|
|
13
|
-
/** Marks the element a block's drag
|
|
14
|
-
*
|
|
15
|
-
* builder can set it without reaching into the components layer. */
|
|
11
|
+
/** Marks the element a block's drag handle centres on instead of its first line of text; here
|
|
12
|
+
* so the container marker-prefix code can set it without importing `components/`. */
|
|
16
13
|
export declare const DRAG_ANCHOR_ATTR = "data-drag-anchor";
|
|
14
|
+
/** A table cell, header row included: row 0's cells are column headers to assistive tech. Used
|
|
15
|
+
* under `:scope >` from a row, and with `closest` from inside a cell. */
|
|
16
|
+
export declare const TABLE_CELL_SELECTOR = ":is([role=\"cell\"], [role=\"columnheader\"])";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* overlay, decoration overlays, drag handle). One definition, shared by the runtime and the e2e
|
|
5
|
-
* page-object.
|
|
2
|
+
* Selectors for a block's content element: the first child of its `data-block-path` wrapper
|
|
3
|
+
* that is not an overlay, badge, gutter or handle. Shared by the runtime and the e2e page object.
|
|
6
4
|
*/
|
|
7
|
-
/** For `querySelector`, which returns the
|
|
8
|
-
*
|
|
5
|
+
/** For `querySelector`, which returns the first match only, so what must be excluded is
|
|
6
|
+
* whatever can come before the block content. */
|
|
9
7
|
export const BLOCK_CONTENT_SELECTOR = ':scope > :not(.selection-overlay):not(.decoration-badge)';
|
|
10
|
-
/** For a Playwright `locator`, which
|
|
11
|
-
*
|
|
8
|
+
/** For a Playwright `locator`, which returns every match, so each extra child has to be
|
|
9
|
+
* named; the decoration overlay is one per painted mark, not one per block. */
|
|
12
10
|
export const BLOCK_CONTENT_LOCATOR_SELECTOR = ':scope > *:not(.selection-overlay):not(.decoration-overlay):not(.block-drag-handle):not(.decoration-badge):not(.code-rail)';
|
|
13
|
-
/** Marks the element a block's drag
|
|
14
|
-
*
|
|
15
|
-
* builder can set it without reaching into the components layer. */
|
|
11
|
+
/** Marks the element a block's drag handle centres on instead of its first line of text; here
|
|
12
|
+
* so the container marker-prefix code can set it without importing `components/`. */
|
|
16
13
|
export const DRAG_ANCHOR_ATTR = 'data-drag-anchor';
|
|
14
|
+
/** A table cell, header row included: row 0's cells are column headers to assistive tech. Used
|
|
15
|
+
* under `:scope >` from a row, and with `closest` from inside a cell. */
|
|
16
|
+
export const TABLE_CELL_SELECTOR = ':is([role="cell"], [role="columnheader"])';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The block content element at a path: what cross-block caret arithmetic measures against.
|
|
3
|
+
* Table cells carry no `data-block-path` (they render without BlockHost), so a deep cell path
|
|
4
|
+
* resolves the table wrapper and descends into the cell DOM.
|
|
5
|
+
*/
|
|
6
|
+
export declare function blockContentElAt(root: HTMLElement, path: number[]): HTMLElement | null;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The block content element at a path: what cross-block caret arithmetic measures against.
|
|
3
|
+
* Table cells carry no `data-block-path` (they render without BlockHost), so a deep cell path
|
|
4
|
+
* resolves the table wrapper and descends into the cell DOM.
|
|
5
|
+
*/
|
|
6
|
+
import { BLOCK_CONTENT_SELECTOR, TABLE_CELL_SELECTOR } from './block-content-selector';
|
|
7
|
+
export function blockContentElAt(root, path) {
|
|
8
|
+
const wrapper = root.querySelector(`[data-block-path='${JSON.stringify(path)}']`);
|
|
9
|
+
if (wrapper)
|
|
10
|
+
return wrapper.querySelector(BLOCK_CONTENT_SELECTOR);
|
|
11
|
+
if (path.length < 3)
|
|
12
|
+
return null;
|
|
13
|
+
const tablePath = path.slice(0, -2);
|
|
14
|
+
const rowIdx = path[path.length - 2];
|
|
15
|
+
const colIdx = path[path.length - 1];
|
|
16
|
+
const tableWrapper = root.querySelector(`[data-block-path='${JSON.stringify(tablePath)}']`);
|
|
17
|
+
if (!tableWrapper)
|
|
18
|
+
return null;
|
|
19
|
+
const tableEl = tableWrapper.querySelector(':scope > [role="table"]');
|
|
20
|
+
if (!tableEl)
|
|
21
|
+
return null;
|
|
22
|
+
const rowEl = tableEl.querySelector(`:scope > [data-table-row-idx='${rowIdx}']`);
|
|
23
|
+
if (!rowEl)
|
|
24
|
+
return null;
|
|
25
|
+
const cells = rowEl.querySelectorAll(`:scope > ${TABLE_CELL_SELECTOR}`);
|
|
26
|
+
return cells[colIdx] ?? null;
|
|
27
|
+
}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
let boxEl: HTMLElement | undefined = $state();
|
|
9
9
|
|
|
10
|
-
// A plain
|
|
11
|
-
//
|
|
10
|
+
// A plain container with a left border: `createContainerBlock` wires it end to end.
|
|
11
|
+
// `handleKeydown` is deliberately left unwired, since a blockquote takes no chords.
|
|
12
12
|
const { blockListProps, containerApi } = createContainerBlock({
|
|
13
13
|
getNode: () => node,
|
|
14
14
|
getIndex: () => index,
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
</script>
|
|
21
21
|
|
|
22
22
|
<div class="blockquote-block" bind:this={boxEl}>
|
|
23
|
-
<BlockList {...blockListProps}
|
|
23
|
+
<BlockList {...blockListProps} />
|
|
24
24
|
</div>
|
|
25
25
|
|
|
26
26
|
<style>
|