@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,10 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Builds the marker prefix span (the "ambient" prefix): the read-only prefix a container block
|
|
3
|
+
* draws in front of its first prose child's text. Reading it back is `cursor/widget-offset.ts`.
|
|
4
4
|
*/
|
|
5
5
|
import { DRAG_ANCHOR_ATTR } from '../components/block-content-selector';
|
|
6
|
-
import { domDescendants } from '../cursor/dom-walk';
|
|
7
|
-
import { isAtomicInlineWidget, isHiddenMarkerText } from '../cursor/widget-offset';
|
|
8
6
|
import { devWarn } from '../dev-warn';
|
|
9
7
|
export function buildAmbientSpan(prefix) {
|
|
10
8
|
const normalized = typeof prefix === 'string' ? { text: prefix } : prefix;
|
|
@@ -32,10 +30,17 @@ export function buildAmbientSpan(prefix) {
|
|
|
32
30
|
if (range.ariaChecked !== undefined) {
|
|
33
31
|
inner.setAttribute('aria-checked', String(range.ariaChecked));
|
|
34
32
|
}
|
|
33
|
+
if (range.label !== undefined)
|
|
34
|
+
inner.setAttribute('aria-label', range.label);
|
|
35
|
+
if (range.focusable)
|
|
36
|
+
inner.tabIndex = 0;
|
|
35
37
|
if (range.dragAnchor)
|
|
36
38
|
inner.setAttribute(DRAG_ANCHOR_ATTR, '');
|
|
37
39
|
inner.textContent = normalized.text.slice(range.start, range.end);
|
|
38
40
|
inner.addEventListener('click', range.onClick);
|
|
41
|
+
const onActivate = range.onActivate;
|
|
42
|
+
if (onActivate)
|
|
43
|
+
inner.addEventListener('keydown', (e) => activateOnKey(e, onActivate));
|
|
39
44
|
outer.appendChild(inner);
|
|
40
45
|
cursor = range.end;
|
|
41
46
|
}
|
|
@@ -44,63 +49,12 @@ export function buildAmbientSpan(prefix) {
|
|
|
44
49
|
}
|
|
45
50
|
return outer;
|
|
46
51
|
}
|
|
47
|
-
export function ambientSpanOf(blockEl) {
|
|
48
|
-
const first = blockEl.firstChild;
|
|
49
|
-
if (!first || first.nodeType !== Node.ELEMENT_NODE)
|
|
50
|
-
return null;
|
|
51
|
-
const span = first;
|
|
52
|
-
if (!span.classList.contains('md-marker'))
|
|
53
|
-
return null;
|
|
54
|
-
if (span.getAttribute('contenteditable') !== 'false')
|
|
55
|
-
return null;
|
|
56
|
-
return span;
|
|
57
|
-
}
|
|
58
|
-
export function ambientLengthOf(blockEl) {
|
|
59
|
-
return ambientSpanOf(blockEl)?.textContent?.length ?? 0;
|
|
60
|
-
}
|
|
61
|
-
export function placeCaretAfterAmbientSpan(blockEl) {
|
|
62
|
-
const span = ambientSpanOf(blockEl);
|
|
63
|
-
if (!span)
|
|
64
|
-
return false;
|
|
65
|
-
const range = document.createRange();
|
|
66
|
-
// Prefer the first text node after the span so visual-line geometry returns real rects;
|
|
67
|
-
// setStartAfter yields a collapsed range with no textbox in empty-item state. A hidden
|
|
68
|
-
// marker run next to the span is not that text node — it paints nothing, and descending
|
|
69
|
-
// into it would seat raw 0 inside unpainted bytes.
|
|
70
|
-
const textAfter = firstTextNodeAfter(span);
|
|
71
|
-
if (textAfter && !isHiddenMarkerText(textAfter, blockEl)) {
|
|
72
|
-
range.setStart(textAfter, 0);
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
range.setStartAfter(span);
|
|
76
|
-
}
|
|
77
|
-
range.collapse(true);
|
|
78
|
-
const sel = window.getSelection();
|
|
79
|
-
sel?.removeAllRanges();
|
|
80
|
-
sel?.addRange(range);
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
52
|
// ── Internal ────────────────────────────────────────────────────────────────
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (text)
|
|
92
|
-
return text;
|
|
93
|
-
sibling = sibling.nextSibling;
|
|
94
|
-
}
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
// Unfiltered on the way down, unlike the measurable-text search it resembles
|
|
98
|
-
// (`cursor/visual-lines.ts`): the caller judges hidden marker text once, at the top.
|
|
99
|
-
function firstTextDescendant(node) {
|
|
100
|
-
for (const current of domDescendants(node)) {
|
|
101
|
-
if (current.nodeType === Node.TEXT_NODE && (current.textContent?.length ?? 0) > 0) {
|
|
102
|
-
return current;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return null;
|
|
53
|
+
// Enter and Space, the keys a link or button answers; the block below must not see them too.
|
|
54
|
+
function activateOnKey(e, onActivate) {
|
|
55
|
+
if (e.key !== 'Enter' && e.key !== ' ')
|
|
56
|
+
return;
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
e.stopPropagation();
|
|
59
|
+
onActivate();
|
|
106
60
|
}
|
package/dist/assert.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* false positive must not crash a real editor.
|
|
4
|
-
*
|
|
2
|
+
* Where a dev-mode invariant check reports: it sends a violation to `devWarn` and never
|
|
3
|
+
* throws, since a false positive must not crash a real editor. Outside a dev build, unless
|
|
4
|
+
* `configureEditorEnv` turned dev on, the check is not even run. Tests call the predicates
|
|
5
|
+
* directly rather than going through here.
|
|
5
6
|
*/
|
|
6
|
-
import {
|
|
7
|
+
import { isDevChecks } from './env';
|
|
7
8
|
import { devWarn } from './dev-warn';
|
|
8
9
|
export function assertInvariant(tag, check) {
|
|
9
|
-
if (!
|
|
10
|
+
if (!isDevChecks())
|
|
10
11
|
return;
|
|
11
12
|
const violation = check();
|
|
12
13
|
if (violation) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* external authors: each member's docstring states its own contract.
|
|
2
|
+
* The contract every rendered block satisfies, plus the special caret values and the marker-prefix
|
|
3
|
+
* shape blocks produce. The editor reaches a block only through this flat interface, so something
|
|
4
|
+
* a block cannot do is a missing optional member, not a kind check upstream;
|
|
5
|
+
* `ContainerBlockComponent` is the stricter version. Each member's docstring states its contract.
|
|
7
6
|
*/
|
|
8
7
|
import type { DocumentView, NodeView } from './core/node-views';
|
|
9
8
|
import type { EditorRects } from './editor-rects';
|
|
9
|
+
import type { ChildList } from './reactivity/child-list';
|
|
10
10
|
declare const cursorEndBrand: unique symbol;
|
|
11
11
|
/** Branded `number`: a focus offset meaning "end of content", not a position. */
|
|
12
12
|
export type CursorEnd = number & {
|
|
@@ -28,29 +28,41 @@ export type SelectionEnd = number & {
|
|
|
28
28
|
readonly [selectionEndBrand]: true;
|
|
29
29
|
};
|
|
30
30
|
/**
|
|
31
|
-
* "Place cursor at end of content." Focus
|
|
32
|
-
*
|
|
33
|
-
*
|
|
31
|
+
* "Place cursor at end of content." Focus handlers fall back to the end of the content when
|
|
32
|
+
* the offset exceeds the block's length, so `MAX_SAFE_INTEGER` always lands there; a smaller
|
|
33
|
+
* fixed number would land mid-block once the content outgrew it.
|
|
34
34
|
*/
|
|
35
35
|
export declare const CURSOR_END: CursorEnd;
|
|
36
36
|
/**
|
|
37
|
-
* "Place cursor at start of content"
|
|
38
|
-
* mode that paints no marker puts raw 0 out of the caret's reach behind a leading
|
|
39
|
-
*
|
|
37
|
+
* "Place cursor at start of content": the counterpart of {@link CURSOR_END}, and not a synonym
|
|
38
|
+
* for 0. A mode that paints no marker puts raw byte 0 out of the caret's reach behind a leading
|
|
39
|
+
* construct, so a caret arriving here says this and lands on the first offset it can sit at.
|
|
40
40
|
*/
|
|
41
41
|
export declare const CURSOR_START: CursorStart;
|
|
42
42
|
/**
|
|
43
|
-
* "Raw byte 0 exactly"
|
|
44
|
-
* reopens a construct at byte 0 and typing
|
|
45
|
-
* the
|
|
43
|
+
* "Raw byte 0 exactly": the one position `parkCaret` does not clamp. A live split's continuation
|
|
44
|
+
* reopens a construct at byte 0 and typing has to continue inside it (live-mode.md § 4.4), which
|
|
45
|
+
* the clamp would move outside; every other caller wants the clamp (G2.12).
|
|
46
46
|
*/
|
|
47
47
|
export declare const CURSOR_EXACT_START: CursorExactStart;
|
|
48
|
-
/**
|
|
49
|
-
export
|
|
48
|
+
/** Which child a caret entering a container takes, and the offset handed on to it. */
|
|
49
|
+
export interface EntryEdge {
|
|
50
|
+
readonly child: 'first' | 'last';
|
|
51
|
+
readonly offset: number;
|
|
52
|
+
/** The offset was a byte inside the container, not an edge: a container that can map its
|
|
53
|
+
* bytes to a child places it there, and any other takes the last child's end. */
|
|
54
|
+
readonly inside: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* How every container reads a caret offset it is entered with, so a list, a table and a table
|
|
58
|
+
* row agree: 0 and the two start values enter the first child unchanged, and `CURSOR_END` or a
|
|
59
|
+
* byte offset the last child at its end.
|
|
60
|
+
*/
|
|
61
|
+
export declare function entryEdge(offset: number): EntryEdge;
|
|
50
62
|
/**
|
|
51
|
-
* "End of this block's measurable range" for measurePartialRects' endOffset
|
|
52
|
-
*
|
|
53
|
-
*
|
|
63
|
+
* "End of this block's measurable range" for `measurePartialRects`' `endOffset`. Each
|
|
64
|
+
* block reads it in its own coordinate system: text falls through to the browser's range
|
|
65
|
+
* clamping, `TableBlock` matches it explicitly to reach the last cell.
|
|
54
66
|
*/
|
|
55
67
|
export declare const SELECTION_END: SelectionEnd;
|
|
56
68
|
/**
|
|
@@ -65,13 +77,26 @@ export type StickyColumnDirection = 'above' | 'below';
|
|
|
65
77
|
export type FocusPosition = 'start' | 'end' | number | {
|
|
66
78
|
stickyColumnFrom: StickyColumnDirection;
|
|
67
79
|
};
|
|
68
|
-
|
|
80
|
+
/** A focusable range must say what Enter and Space do, so a tab stop is never a dead key. */
|
|
81
|
+
export type AmbientInteractiveRange = AmbientRangeBase & ({
|
|
82
|
+
/** Gives the span a tab stop. Decide by mode: a stop inside an editable block
|
|
83
|
+
* interrupts the caret's Tab, so the footnote marker takes one in reading mode only. */
|
|
84
|
+
focusable: true;
|
|
85
|
+
/** Enter or Space on the focused span. */
|
|
86
|
+
onActivate: () => void;
|
|
87
|
+
} | {
|
|
88
|
+
focusable?: false;
|
|
89
|
+
onActivate?: () => void;
|
|
90
|
+
});
|
|
91
|
+
interface AmbientRangeBase {
|
|
69
92
|
start: number;
|
|
70
93
|
end: number;
|
|
71
94
|
className: string;
|
|
72
|
-
role?: 'checkbox';
|
|
95
|
+
role?: 'checkbox' | 'link' | 'button';
|
|
73
96
|
ariaChecked?: boolean;
|
|
74
|
-
/** The
|
|
97
|
+
/** The span's accessible name, rendered as `aria-label`. */
|
|
98
|
+
label?: string;
|
|
99
|
+
/** The block's drag handle centres on this span's box rather than on its text line. */
|
|
75
100
|
dragAnchor?: boolean;
|
|
76
101
|
/** The click lands on the range's own span, before the leaf's caret handling; a handler
|
|
77
102
|
* reading the chord (`isWidgetActivationClick`) stops propagation to keep the gesture. */
|
|
@@ -88,91 +113,85 @@ export type AmbientPrefix = string | {
|
|
|
88
113
|
};
|
|
89
114
|
/**
|
|
90
115
|
* The props BlockHost passes every block component; a registry `extraProps` may add
|
|
91
|
-
* kind-specific ones. A component may declare a subset
|
|
92
|
-
* but a leaf that drops `ambientPrefix` visually deletes its markers.
|
|
116
|
+
* kind-specific ones. A component may declare a subset, since Svelte ignores props it
|
|
117
|
+
* omits, but a leaf that drops `ambientPrefix` visually deletes its markers.
|
|
93
118
|
*/
|
|
94
119
|
export interface BlockComponentProps {
|
|
95
|
-
/** Bytes-readonly view
|
|
120
|
+
/** Bytes-readonly view: components render the CST, and mutation goes through actions (G1.9). */
|
|
96
121
|
node: NodeView;
|
|
97
122
|
index: number;
|
|
98
123
|
myPath: number[];
|
|
99
124
|
/** Container-contributed read-only prefix rendered before the block's own raw (a list item's `- `). */
|
|
100
125
|
ambientPrefix: AmbientPrefix;
|
|
101
|
-
/** The root document, readonly by type
|
|
126
|
+
/** The root document, readonly by type; changing it is the commit path's business. */
|
|
102
127
|
document?: DocumentView;
|
|
103
|
-
/** The owning instance's
|
|
104
|
-
*
|
|
128
|
+
/** The owning instance's `EditorRects`: measure, scroll into view, or scroll to a path.
|
|
129
|
+
* The live object, so a block navigating to another shares the editor's one copy. */
|
|
105
130
|
rects?: EditorRects;
|
|
106
131
|
}
|
|
107
132
|
export interface BlockComponent {
|
|
108
133
|
/**
|
|
109
|
-
* Place the caret at `offset`,
|
|
110
|
-
*
|
|
111
|
-
*
|
|
134
|
+
* Place the caret at `offset`, focus the element, and end whatever the editor had selected (a
|
|
135
|
+
* cross-block range, a gap caret, an image selected whole): the safe default over
|
|
136
|
+
* {@link parkCaret}, since ending it batches with placing the caret. Also
|
|
137
|
+
* takes the four special caret values above, which stay internal (none is on
|
|
112
138
|
* `@voithos-labs/aragonite/plugin`). Clamping is required; never throw.
|
|
113
139
|
*/
|
|
114
140
|
focus(offset: number): void;
|
|
115
141
|
/**
|
|
116
|
-
* `focus`
|
|
117
|
-
*
|
|
118
|
-
* cancel the range still being grown; any other caller wants `focus`.
|
|
142
|
+
* `focus` without the range-ending: place the caret and touch nothing else. For paths that only
|
|
143
|
+
* extend a selection, where a `focus` would cancel the range still being grown (G2.12).
|
|
119
144
|
*/
|
|
120
145
|
parkCaret?(offset: number): void;
|
|
121
146
|
/**
|
|
122
|
-
* Caret position as a raw offset into this block's own bytes:
|
|
123
|
-
* excluded, a widget counted as the source bytes it stands for. `null
|
|
124
|
-
* means not in this block
|
|
147
|
+
* Caret position as a raw offset into this block's own bytes: the container's marker
|
|
148
|
+
* prefix excluded, a widget counted as the source bytes it stands for. `null`, never 0,
|
|
149
|
+
* means the caret is not in this block; dispatch checks each ref to find the focused one.
|
|
125
150
|
*/
|
|
126
151
|
getCursorOffset(): number | null;
|
|
127
152
|
/**
|
|
128
|
-
* The current selection's rendered text, or `''` when unmounted or nothing is
|
|
129
|
-
*
|
|
130
|
-
*
|
|
153
|
+
* The current selection's rendered text, or `''` when unmounted or nothing is selected.
|
|
154
|
+
* Not clipped to this block: a cross-block selection returns the whole range. Rendered
|
|
155
|
+
* text, not raw bytes; a caller that needs this block's bytes slices `raw`.
|
|
131
156
|
*/
|
|
132
157
|
getSelectedText?(): string;
|
|
133
158
|
/**
|
|
134
|
-
* Select `[start, end)` in the same raw-offset space `getCursorOffset` returns
|
|
135
|
-
* A no-op when the block is unmounted or the
|
|
159
|
+
* Select `[start, end)` in the same raw-offset space `getCursorOffset` returns, ending whatever
|
|
160
|
+
* the editor had selected first, as `focus` does. A no-op when the block is unmounted or the
|
|
161
|
+
* range doesn't resolve.
|
|
136
162
|
*/
|
|
137
163
|
setSelection?(start: number, end: number): void;
|
|
138
164
|
/**
|
|
139
165
|
* Position the cursor at the offset nearest editor-relative pixel X on the first
|
|
140
|
-
* (`'above'`) or last (`'below'`) visual line; callers fall back to focus(0)
|
|
141
|
-
* CURSOR_END when a block omits it.
|
|
142
|
-
*
|
|
166
|
+
* (`'above'`) or last (`'below'`) visual line that can show a caret; callers fall back to `focus(0)` or
|
|
167
|
+
* `CURSOR_END` when a block omits it. Behaves like {@link parkCaret}: it does not end a
|
|
168
|
+
* live cross-block range, which vertical movement can never reach.
|
|
143
169
|
*/
|
|
144
170
|
focusAtColumn?(x: number, from: StickyColumnDirection): void;
|
|
145
171
|
/** Cascade focus down a path of child indices to reach a leaf at the given offset. */
|
|
146
172
|
focusByPath?(path: number[], offset: number): void;
|
|
147
173
|
/**
|
|
148
|
-
* Apply this
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
* surfaces with no such snap.
|
|
174
|
+
* Apply this block's own snap for a viewport point inside its box, once the caret has been
|
|
175
|
+
* placed. A caret that fell at the edge of an inline widget has nothing to draw there, so
|
|
176
|
+
* the prose block moves it onto the edge and paints the indicator Chromium leaves out; one
|
|
177
|
+
* that landed in real text is left alone. Omitted by blocks with no such snap.
|
|
153
178
|
*/
|
|
154
179
|
snapCaretToPoint?(clientX: number, clientY: number): void;
|
|
155
180
|
/**
|
|
156
|
-
* A
|
|
157
|
-
* drag: start the block's
|
|
158
|
-
*
|
|
159
|
-
* to the editor's generic drag.
|
|
181
|
+
* A click beside the block (the editor's margin, the host's own padding) that may become a
|
|
182
|
+
* drag: start the block's own drag from the leaf nearest the point, a table's cell rectangle
|
|
183
|
+
* for instance, exactly as a click on that leaf would. True when it did; false leaves the
|
|
184
|
+
* click to the editor's generic drag.
|
|
160
185
|
*/
|
|
161
186
|
startDragAtPoint?(clientX: number, clientY: number, event: PointerEvent): boolean;
|
|
162
187
|
/**
|
|
163
|
-
*
|
|
164
|
-
*
|
|
188
|
+
* This block's children as the editor walks down to one: their refs, the render window that
|
|
189
|
+
* mounts them, and the collapse a navigation may open. Containers, tables and rows have one.
|
|
165
190
|
*/
|
|
166
|
-
|
|
191
|
+
childList?(): ChildList;
|
|
167
192
|
/**
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
* resolves instead of returning null.
|
|
171
|
-
*/
|
|
172
|
-
revealByPath?(path: number[]): Promise<BlockComponent | null>;
|
|
173
|
-
/**
|
|
174
|
-
* Deep cursor position for nested-block surfaces (table cells): the path from this
|
|
175
|
-
* block to the leaf holding the cursor, plus the within-leaf offset. Preferred over
|
|
193
|
+
* Deep cursor position for blocks with nested blocks inside (table cells): the path from
|
|
194
|
+
* this block to the leaf holding the cursor, plus the offset in it. Preferred over
|
|
176
195
|
* getCursorOffset by getSelection() when implemented.
|
|
177
196
|
*/
|
|
178
197
|
getCursorPosition?(): {
|
|
@@ -181,49 +200,54 @@ export interface BlockComponent {
|
|
|
181
200
|
} | null;
|
|
182
201
|
/**
|
|
183
202
|
* Viewport-space rects covering [startOffset, endOffset) in this block's visible
|
|
184
|
-
* text, for cross-block selection painting. Accepts SELECTION_END as endOffset
|
|
185
|
-
* which
|
|
203
|
+
* text, for cross-block selection painting. Accepts `SELECTION_END` as `endOffset`,
|
|
204
|
+
* which each block reads in its own coordinate system.
|
|
186
205
|
*/
|
|
187
206
|
measurePartialRects?(startOffset: number, endOffset: number): DOMRect[];
|
|
188
207
|
/**
|
|
189
|
-
* Viewport-space rect of a single cell by
|
|
190
|
-
* grid
|
|
191
|
-
*
|
|
208
|
+
* Viewport-space rect of a single cell by row and column: whole-cell highlighting in a
|
|
209
|
+
* grid, skipping `measurePartialRects`' selection-aware range logic. Null when the cell
|
|
210
|
+
* isn't mounted or the coordinate is out of range.
|
|
192
211
|
*/
|
|
193
212
|
cellRect?(rowIdx: number, colIdx: number): DOMRect | null;
|
|
194
213
|
/**
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
214
|
+
* The mounted row range `[start, end)` of a grid that windows its rows. Overlays read it
|
|
215
|
+
* reactively so a repaint fires once the new rows are committed; rows outside the range
|
|
216
|
+
* cannot paint until they mount.
|
|
198
217
|
*/
|
|
199
218
|
mountedRowWindow?(): {
|
|
200
219
|
start: number;
|
|
201
220
|
end: number;
|
|
202
221
|
};
|
|
203
222
|
/**
|
|
204
|
-
* True when vertical
|
|
205
|
-
*
|
|
206
|
-
*
|
|
223
|
+
* True when vertical movement should pass straight through: no text positions the caret
|
|
224
|
+
* can sit at, only widgets with no column meaning. Decided from the CST, not from mounted
|
|
225
|
+
* refs, so a container answers the same for a child that is not mounted.
|
|
207
226
|
*/
|
|
208
227
|
isVerticallyTransparent?(): boolean;
|
|
209
228
|
/**
|
|
210
|
-
* Enter
|
|
211
|
-
* belongs to the kind's registered `InlineWidgetEditingPolicy
|
|
212
|
-
*
|
|
229
|
+
* Enter a widget at the block's edge instead of placing a caret beside it. What "enter"
|
|
230
|
+
* means belongs to the kind's registered `InlineWidgetEditingPolicy`, an open set of
|
|
231
|
+
* behaviours rather than a yes-or-no choice. False falls through to `focus(0)`/`CURSOR_END`.
|
|
213
232
|
*/
|
|
214
233
|
enterEdgeWidget?(side: 'start' | 'end'): boolean;
|
|
215
234
|
/**
|
|
216
|
-
* Run a named block-local command resolved from a keybinding. `arg`
|
|
217
|
-
*
|
|
218
|
-
*
|
|
235
|
+
* Run a named block-local command resolved from a keybinding. `arg` passes the binding's
|
|
236
|
+
* fixed argument as `unknown`, so the handler must check its shape and ignore anything
|
|
237
|
+
* unexpected. False lets the caller fall through to later keydown branches.
|
|
219
238
|
*/
|
|
220
239
|
runCommand?(id: import('./schema/command-id').AnyCommandId, arg?: unknown): boolean;
|
|
221
240
|
/**
|
|
222
|
-
* Whether the command's toggle
|
|
223
|
-
*
|
|
224
|
-
*
|
|
241
|
+
* Whether the command's toggle reads on at this block's own caret or selection: the read
|
|
242
|
+
* a toolbar paints a pressed state from. Absent, or an id with no toggle state, reads
|
|
243
|
+
* inactive.
|
|
225
244
|
*/
|
|
226
245
|
isCommandActive?(id: import('./schema/command-id').AnyCommandId): boolean;
|
|
246
|
+
/**
|
|
247
|
+
* Run `run` once this block's shown widget source, which lives in the DOM only, is written
|
|
248
|
+
* back. A block that never shows one omits it; a command from outside the block waits on it.
|
|
249
|
+
*/
|
|
250
|
+
afterSourceCommit?(run: () => void): void;
|
|
227
251
|
/**
|
|
228
252
|
* Current raw-offset selection in an editable leaf, a collapsed caret as
|
|
229
253
|
* `{start: n, end: n}`. Captured before a right-click menu steals focus.
|
|
@@ -233,19 +257,21 @@ export interface BlockComponent {
|
|
|
233
257
|
end: number;
|
|
234
258
|
} | null;
|
|
235
259
|
/**
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
* leaves the
|
|
239
|
-
*
|
|
240
|
-
*
|
|
260
|
+
* Take a copy, cut or paste the editor root received because a selection this block owns
|
|
261
|
+
* puts no caret in the DOM: a selected inline widget in a block with no text position
|
|
262
|
+
* leaves the browser's selection empty, so the event fires at `<body>`. Taking it always
|
|
263
|
+
* succeeds once the root has picked this block, so there is nothing to report back: the
|
|
264
|
+
* root offers the event to one block only, and never offers it elsewhere.
|
|
241
265
|
*/
|
|
242
266
|
claimRootClipboard?(event: ClipboardEvent): void;
|
|
243
267
|
/**
|
|
244
|
-
* Insert markdown at this
|
|
245
|
-
*
|
|
246
|
-
*
|
|
268
|
+
* Insert markdown at this block's caret exactly as pasting it would, minus the clipboard:
|
|
269
|
+
* the block half of `EditorInstance.insertMarkdown`. Return a promise that resolves once
|
|
270
|
+
* the insert has landed, so the editor can keep it in the undo entry of the gesture that
|
|
271
|
+
* asked for it; a plain true means only that the text was taken.
|
|
272
|
+
* Omitted by non-editable blocks.
|
|
247
273
|
*/
|
|
248
|
-
insertMarkdown?(md: string): boolean
|
|
274
|
+
insertMarkdown?(md: string): boolean | Promise<boolean>;
|
|
249
275
|
/**
|
|
250
276
|
* Run a clipboard action from the table cell's right-click menu against the offsets
|
|
251
277
|
* captured at menu-open (focus/selection may have moved since).
|
|
@@ -255,34 +281,34 @@ export interface BlockComponent {
|
|
|
255
281
|
end: number;
|
|
256
282
|
}): Promise<void>;
|
|
257
283
|
/**
|
|
258
|
-
* Whether this component's own
|
|
259
|
-
* kind's
|
|
260
|
-
* (merge eligibility, search scanning); this mirrors it
|
|
284
|
+
* Whether this component's own element takes text input: a report, never something the
|
|
285
|
+
* editor acts on. The kind descriptor's `editable` is the declaration and the only flag
|
|
286
|
+
* the editor tests (merge eligibility, search scanning); this mirrors it once mounted.
|
|
261
287
|
*/
|
|
262
288
|
readonly editable: boolean;
|
|
263
289
|
/** Whether focus may land on this block at all. This is the flag focus dispatch reads. */
|
|
264
290
|
readonly focusable: boolean;
|
|
265
291
|
}
|
|
266
292
|
/**
|
|
267
|
-
* Every member a container
|
|
268
|
-
* to descend, so the descent
|
|
269
|
-
*
|
|
293
|
+
* Every member a container must provide, promoted to required: a caret entering a container
|
|
294
|
+
* has to descend into it, so the descent methods are not "implement if you can" the way a
|
|
295
|
+
* leaf's optional ones are. `createContainerBlockComponent` returns this.
|
|
270
296
|
*/
|
|
271
|
-
export type ContainerBlockComponent = BlockComponent & Required<Pick<BlockComponent, 'getCursorPosition' | 'focusByPath' | '
|
|
297
|
+
export type ContainerBlockComponent = BlockComponent & Required<Pick<BlockComponent, 'getCursorPosition' | 'focusByPath' | 'childList' | 'focusAtColumn' | 'isVerticallyTransparent' | 'enterEdgeWidget' | 'parkCaret'>>;
|
|
272
298
|
/**
|
|
273
|
-
* What a mounted block component publishes through `bind:this`: a leaf publishes the
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
*
|
|
299
|
+
* What a mounted block component publishes through `bind:this`: a leaf publishes the object
|
|
300
|
+
* itself, a container publishes it under the one `containerApi` export (Svelte 5 instance
|
|
301
|
+
* exports are separate declarations with no spread, so re-exporting a dozen members by hand
|
|
302
|
+
* drops one). The union is what enforces it: a container publishing only a leaf's members is
|
|
303
|
+
* a type error where `defineBlockComponent` registers it.
|
|
278
304
|
*/
|
|
279
305
|
export type BlockComponentExports = BlockComponent | {
|
|
280
306
|
readonly containerApi: ContainerBlockComponent;
|
|
281
307
|
};
|
|
282
308
|
/**
|
|
283
|
-
* The `BlockComponent` behind a published instance
|
|
284
|
-
*
|
|
285
|
-
*
|
|
309
|
+
* The `BlockComponent` behind a published instance: the one place that knows a container's
|
|
310
|
+
* object hides under `containerApi`. Returns the object it was handed, never a wrapper,
|
|
311
|
+
* because `publishRefSlot` compares identity and a new object would overwrite the stored one.
|
|
286
312
|
*/
|
|
287
313
|
export declare function resolveBlockSurface(exports: BlockComponentExports | undefined): BlockComponent | undefined;
|
|
288
314
|
export {};
|
package/dist/block-component.js
CHANGED
|
@@ -1,40 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* external authors: each member's docstring states its own contract.
|
|
2
|
+
* The contract every rendered block satisfies, plus the special caret values and the marker-prefix
|
|
3
|
+
* shape blocks produce. The editor reaches a block only through this flat interface, so something
|
|
4
|
+
* a block cannot do is a missing optional member, not a kind check upstream;
|
|
5
|
+
* `ContainerBlockComponent` is the stricter version. Each member's docstring states its contract.
|
|
7
6
|
*/
|
|
8
7
|
/**
|
|
9
|
-
* "Place cursor at end of content." Focus
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* "Place cursor at end of content." Focus handlers fall back to the end of the content when
|
|
9
|
+
* the offset exceeds the block's length, so `MAX_SAFE_INTEGER` always lands there; a smaller
|
|
10
|
+
* fixed number would land mid-block once the content outgrew it.
|
|
12
11
|
*/
|
|
13
12
|
export const CURSOR_END = Number.MAX_SAFE_INTEGER;
|
|
14
13
|
/**
|
|
15
|
-
* "Place cursor at start of content"
|
|
16
|
-
* mode that paints no marker puts raw 0 out of the caret's reach behind a leading
|
|
17
|
-
*
|
|
14
|
+
* "Place cursor at start of content": the counterpart of {@link CURSOR_END}, and not a synonym
|
|
15
|
+
* for 0. A mode that paints no marker puts raw byte 0 out of the caret's reach behind a leading
|
|
16
|
+
* construct, so a caret arriving here says this and lands on the first offset it can sit at.
|
|
18
17
|
*/
|
|
19
18
|
export const CURSOR_START = -2;
|
|
20
19
|
/**
|
|
21
|
-
* "Raw byte 0 exactly"
|
|
22
|
-
* reopens a construct at byte 0 and typing
|
|
23
|
-
* the
|
|
20
|
+
* "Raw byte 0 exactly": the one position `parkCaret` does not clamp. A live split's continuation
|
|
21
|
+
* reopens a construct at byte 0 and typing has to continue inside it (live-mode.md § 4.4), which
|
|
22
|
+
* the clamp would move outside; every other caller wants the clamp (G2.12).
|
|
24
23
|
*/
|
|
25
24
|
export const CURSOR_EXACT_START = -3;
|
|
26
|
-
/** Cascade focus to the last descendant and place the cursor at its start. */
|
|
27
|
-
export const FOCUS_LAST_START = -1;
|
|
28
25
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
26
|
+
* How every container reads a caret offset it is entered with, so a list, a table and a table
|
|
27
|
+
* row agree: 0 and the two start values enter the first child unchanged, and `CURSOR_END` or a
|
|
28
|
+
* byte offset the last child at its end.
|
|
29
|
+
*/
|
|
30
|
+
export function entryEdge(offset) {
|
|
31
|
+
if (offset === 0 || offset === CURSOR_START || offset === CURSOR_EXACT_START) {
|
|
32
|
+
return { child: 'first', offset, inside: false };
|
|
33
|
+
}
|
|
34
|
+
return { child: 'last', offset: CURSOR_END, inside: offset !== CURSOR_END };
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* "End of this block's measurable range" for `measurePartialRects`' `endOffset`. Each
|
|
38
|
+
* block reads it in its own coordinate system: text falls through to the browser's range
|
|
39
|
+
* clamping, `TableBlock` matches it explicitly to reach the last cell.
|
|
32
40
|
*/
|
|
33
41
|
export const SELECTION_END = Number.MAX_SAFE_INTEGER;
|
|
34
42
|
/**
|
|
35
|
-
* The `BlockComponent` behind a published instance
|
|
36
|
-
*
|
|
37
|
-
*
|
|
43
|
+
* The `BlockComponent` behind a published instance: the one place that knows a container's
|
|
44
|
+
* object hides under `containerApi`. Returns the object it was handed, never a wrapper,
|
|
45
|
+
* because `publishRefSlot` compares identity and a new object would overwrite the stored one.
|
|
38
46
|
*/
|
|
39
47
|
export function resolveBlockSurface(exports) {
|
|
40
48
|
if (!exports)
|
package/dist/block-id.d.ts
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import type { NodeView } from './core/node-views';
|
|
2
|
-
/**
|
|
3
|
-
* These ids key Svelte's `{#each}`: process uniqueness, not unguessability. `crypto.randomUUID`
|
|
4
|
-
* answers a question nobody asked here, at a per-block cost a large load pays in full
|
|
5
|
-
* (`performance.md`), and is secure-context-only besides.
|
|
6
|
-
*/
|
|
2
|
+
/** Keys for Svelte's `{#each}`: unique within the process and cheap per block, not unguessable. */
|
|
7
3
|
export declare function generateBlockId(): string;
|
|
8
4
|
export declare function assignIds(children: readonly NodeView[]): string[];
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*/
|
|
5
|
+
/** Ids for `next`, a re-read of `previous`: an unchanged run at either end keeps its ids, the first
|
|
6
|
+
* changed block keeps its own (the edit was in it), and each block the re-read made is new. */
|
|
7
|
+
export declare function idsAcrossReread(previous: readonly NodeView[], ids: readonly string[] | undefined, next: readonly NodeView[]): string[] | undefined;
|
|
8
|
+
/** Call before a freshly parsed subtree is spliced in: a reused container reads `childIds` in its
|
|
9
|
+
* keyed each synchronously, so a missing array shows up as `undefined` keys. */
|
|
14
10
|
export declare function assignChildIdsDeep(node: NodeView): void;
|