@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
package/dist/editor-props.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Public prop and instance-handle types for <Editor>. Editor.svelte annotates its
|
|
3
|
-
* $props() and instance
|
|
3
|
+
* $props() and its instance methods against these, so neither can drift from the component.
|
|
4
4
|
*/
|
|
5
5
|
import type { Snippet } from 'svelte';
|
|
6
6
|
import type { AnyBlockKind } from './core/nodes';
|
|
@@ -13,9 +13,13 @@ import type { EditorEvents } from './editor-events';
|
|
|
13
13
|
import type { SearchState } from './search/search-state.svelte';
|
|
14
14
|
import type { DecorationRegistry } from './decorations/types';
|
|
15
15
|
import type { EditorRects } from './editor-rects';
|
|
16
|
+
import type { InlineMenuRegistry } from './inline-menu/types';
|
|
17
|
+
import type { InsertEntry } from './schema/insert-catalogue';
|
|
16
18
|
import type { EditorPluginEntry } from './schema/plugin-install';
|
|
19
|
+
import type { SyntaxOptions } from './schema/registry-view';
|
|
17
20
|
import type { InteractionTraceEntry } from './debug/interaction-trace';
|
|
18
21
|
export type { EditorPluginEntry } from './schema/plugin-install';
|
|
22
|
+
export type { SyntaxOptions } from './schema/registry-view';
|
|
19
23
|
export type { InteractionTraceEntry } from './debug/interaction-trace';
|
|
20
24
|
export interface EditorProps {
|
|
21
25
|
source?: string;
|
|
@@ -25,39 +29,37 @@ export interface EditorProps {
|
|
|
25
29
|
onLinkActivate?: (url: string, event: MouseEvent) => void;
|
|
26
30
|
/** Import hook for image-bearing pastes, set once at mount. Each image file is offered
|
|
27
31
|
* in order and the markdown returned is inserted at the caret; `null` skips it.
|
|
28
|
-
* Installing it takes the
|
|
32
|
+
* Installing it takes the whole paste: the clipboard's `text/plain` is not pasted. */
|
|
29
33
|
onPasteImage?: PasteImageHook;
|
|
30
34
|
/** Execution hook for code blocks, set once at mount. The editor runs nothing itself:
|
|
31
|
-
* installing this is what puts the run
|
|
32
|
-
* owns the
|
|
35
|
+
* installing this is what puts the run button in a code block's side gutter, and the host
|
|
36
|
+
* owns the runtime, the result, and where output goes. Absent, no run button renders. */
|
|
33
37
|
onRunCode?: RunCodeHook;
|
|
34
38
|
/** Overflow-menu hook for code blocks, set once at mount and consulted each time a menu
|
|
35
39
|
* opens so items can read live state. Absent, or returning nothing, renders no overflow
|
|
36
|
-
*
|
|
40
|
+
* button: the editor has no app-level actions of its own to offer there. */
|
|
37
41
|
codeMenuItems?: CodeMenuItemsHook;
|
|
38
|
-
/**
|
|
39
|
-
* (a title, properties panel, tag row). It scrolls away with the document rather than
|
|
40
|
-
*
|
|
42
|
+
/** The host's own content, rendered inside the editor's scroll container above the first
|
|
43
|
+
* block (a title, properties panel, tag row). It scrolls away with the document rather than
|
|
44
|
+
* staying fixed, which is what lets the editor keep its own scroll container and windowing. */
|
|
41
45
|
header?: Snippet;
|
|
42
|
-
/** The block drag handle (default on; reading mode
|
|
43
|
-
* touch
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* whose grip is the only pointer road to move it. Keyboard reorder (Alt+Arrow) is always
|
|
47
|
-
* available, as is the table's right-click cell menu. */
|
|
46
|
+
/** The block drag handle (default on; never in reading mode), shown on hover, or outright on
|
|
47
|
+
* touch. Only blocks a user picks up whole have one (code, tables, equations, diagrams,
|
|
48
|
+
* pictures, list items, dividers, cards), never prose. `false` removes them, except on a
|
|
49
|
+
* picture, whose handle is its only pointer move. Alt+Arrow reorder always works. */
|
|
48
50
|
blockDragHandles?: boolean;
|
|
49
51
|
searchBar?: boolean;
|
|
50
52
|
/** The editor's own formatting popover beside a prose selection (default on; reading mode
|
|
51
53
|
* never shows it). A host with its own bar over `runCommand` passes false. */
|
|
52
54
|
selectionToolbar?: boolean;
|
|
53
|
-
/** Where the editor's own find/replace bar renders.
|
|
54
|
-
*
|
|
55
|
-
* host
|
|
55
|
+
/** Where the editor's own find/replace bar renders. Absent, it stays fixed inside the editor
|
|
56
|
+
* root; an element moves that same bar into it, theme styling included, so an embed that
|
|
57
|
+
* scrolls in the host can put it in a pane's own frame instead of mid-page. Read live, and
|
|
56
58
|
* ignored while `searchBar` is false. Positioning inside it is the element's own business. */
|
|
57
59
|
searchBarAnchor?: HTMLElement | null;
|
|
58
|
-
/** Who owns the scroll, set once at mount. `'self'` (default) makes the root its own
|
|
59
|
-
*
|
|
60
|
-
* scroller instead
|
|
60
|
+
/** Who owns the scroll, set once at mount. `'self'` (default) makes the editor root its own
|
|
61
|
+
* scroll container. `'host'` lets an ancestor scroll it, and the editor windows against that
|
|
62
|
+
* scroller instead, so the mounted set stays O(viewport) either way. The one behavioural
|
|
61
63
|
* difference is scroll anchoring; the consumer guide's scrollMode section has the trade. */
|
|
62
64
|
scrollMode?: 'self' | 'host';
|
|
63
65
|
/** Theme name reflected to `data-editor-theme` on the editor root. Built-ins:
|
|
@@ -67,18 +69,28 @@ export interface EditorProps {
|
|
|
67
69
|
* wrapper keys its own palette off the same attribute set on the wrapper. */
|
|
68
70
|
theme?: string;
|
|
69
71
|
/** How the document presents, read live like `theme`; `'source'` by default. The consumer
|
|
70
|
-
* guide's Presentation modes section describes what each
|
|
72
|
+
* guide's Presentation modes section describes what each mode shows and allows. */
|
|
71
73
|
presentationMode?: PresentationMode;
|
|
72
74
|
/** Per-instance keymap overrides over the built-in command vocabulary. */
|
|
73
75
|
keybindings?: KeybindingOverride[];
|
|
74
|
-
/** Plugins installed once, in array order, at mount. Set-once: a later change to
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
76
|
+
/** Plugins installed once, in array order, at mount. Set-once: a later change to this
|
|
77
|
+
* prop is ignored, because installation is process-global and cannot re-run. An entry
|
|
78
|
+
* may be a plugin on its own or `{ plugin, options }` for per-instance options. The
|
|
79
|
+
* array also says which plugins are enabled: this editor activates exactly what it
|
|
78
80
|
* lists, and no prop at all activates everything installed. */
|
|
79
81
|
plugins?: readonly EditorPluginEntry[];
|
|
82
|
+
/** GFM syntaxes to switch off in this editor, each on by default and read once at mount:
|
|
83
|
+
* `indentedCode: false` reads a line indented by a tab or four spaces as prose, and
|
|
84
|
+
* `setextHeading: false` reads `===` or `---` under text as prose or a divider. Only the
|
|
85
|
+
* reading changes: a loaded file keeps every byte, and saves as it came. */
|
|
86
|
+
syntax?: SyntaxOptions;
|
|
80
87
|
}
|
|
81
|
-
|
|
88
|
+
export interface InsertMarkdownOptions {
|
|
89
|
+
/** `caret` (the default) inserts where the caret is; `below` inserts into a new paragraph
|
|
90
|
+
* after the top-level block that holds it. */
|
|
91
|
+
placement?: 'caret' | 'below';
|
|
92
|
+
}
|
|
93
|
+
/** The `bind:this` handle a consumer can name and hold a ref to. */
|
|
82
94
|
export interface EditorInstance {
|
|
83
95
|
getSource(): string;
|
|
84
96
|
/**
|
|
@@ -88,80 +100,85 @@ export interface EditorInstance {
|
|
|
88
100
|
* own declared kind name.
|
|
89
101
|
*/
|
|
90
102
|
getBlockKindAt(path: number[]): AnyBlockKind | null;
|
|
103
|
+
/**
|
|
104
|
+
* The live selection, or null when nothing is focused. While an image is selected whole it is
|
|
105
|
+
* a caret at the image's edge its selection came from (its end after a click).
|
|
106
|
+
*/
|
|
91
107
|
getSelection(): EditorSelection | null;
|
|
92
108
|
/**
|
|
93
|
-
* Restore a `getSelection()` snapshot. Async because the target is scrolled into view
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
109
|
+
* Restore a `getSelection()` snapshot. Async because the target is scrolled into view first,
|
|
110
|
+
* and true means it got there, not merely that it mounted. Never throws: an out-of-range
|
|
111
|
+
* offset clamps in its own coordinate space (a table's cell index to the last cell), and an
|
|
112
|
+
* unresolvable path, or a scroll that never arrives, resolves false. A caret at the start of a
|
|
113
|
+
* list lands in its first item; one inside a closed body lands on its title row.
|
|
98
114
|
*/
|
|
99
115
|
setSelection(selection: EditorSelection): Promise<boolean>;
|
|
100
116
|
/**
|
|
101
|
-
*
|
|
102
|
-
* nearest block's box, the block under it
|
|
103
|
-
* first.
|
|
104
|
-
*
|
|
105
|
-
* focusable landing resolves. A point below the whole document resolves against the CST, not
|
|
106
|
-
* the rendered slice: past a windowed-out tail it claims the point and lands after the reveal.
|
|
117
|
+
* Put the caret at a viewport point exactly as a click there would: the point clamps into the
|
|
118
|
+
* nearest block's box, the block under it picks the spot, and a live cross-block range ends
|
|
119
|
+
* first. A host decides which of its clicks come here. False when no focusable position
|
|
120
|
+
* resolves; a point past an unmounted tail lands there once that mounts.
|
|
107
121
|
*/
|
|
108
122
|
placeCaretAtPoint(x: number, y: number): boolean;
|
|
109
123
|
/**
|
|
110
|
-
* Insert markdown
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* mutates, when this editor holds no caret, in reading mode, or at a gap caret.
|
|
124
|
+
* Insert markdown exactly as pasting it would, minus the clipboard: paste transforms,
|
|
125
|
+
* delete-selection-first, one undo entry, focus at the end. Resolves true once the insert has
|
|
126
|
+
* landed; false, with nothing changed, with no caret, in reading mode, or at a gap caret.
|
|
127
|
+
* `placement: 'below'` first adds an empty paragraph after the caret's top-level block.
|
|
115
128
|
*/
|
|
116
|
-
insertMarkdown(md: string): boolean
|
|
129
|
+
insertMarkdown(md: string, options?: InsertMarkdownOptions): Promise<boolean>;
|
|
117
130
|
/**
|
|
118
|
-
* Run a command by id at the focused
|
|
119
|
-
* cross-block
|
|
120
|
-
* and nothing mutates, on an unknown id, in reading mode, with nothing focused,
|
|
121
|
-
* editor over a range. `arg` reaches the
|
|
122
|
-
* takes the level, 0 for plain text);
|
|
131
|
+
* Run a command by id at the focused element, or across a painted range where the id has a
|
|
132
|
+
* cross-block handler (a format toggle marks every block it touches, a table works by its
|
|
133
|
+
* cells). False, and nothing mutates, on an unknown id, in reading mode, with nothing focused,
|
|
134
|
+
* and on the link editor over a range. `arg` reaches the handler as a keybinding's argument
|
|
135
|
+
* would (`heading.cycle` takes the level, 0 for plain text); a handler that takes none ignores it.
|
|
123
136
|
*/
|
|
124
137
|
runCommand(commandId: string, arg?: unknown): boolean;
|
|
125
138
|
/**
|
|
126
|
-
* Whether `runCommand(id)` would reach that command's
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* that would run still decides whether it writes, and over a range it may reach no block at all.
|
|
139
|
+
* Whether `runCommand(id)` would reach that command's handler right now, so a host can grey a
|
|
140
|
+
* toolbar button out instead of hiding it. False wherever dispatch declines before it starts:
|
|
141
|
+
* an unknown id, reading mode, a block-local id with nothing focused (a gap caret included,
|
|
142
|
+
* where only the global ids stay live), and the link editor while a cross-block range is
|
|
143
|
+
* painted. True means reachable, not successful: the handler still decides whether it writes.
|
|
132
144
|
*/
|
|
133
145
|
canRunCommand(commandId: string): boolean;
|
|
134
146
|
/**
|
|
135
|
-
* Whether the command's toggle
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
* mark; the link editor reads ON inside the construct its card would edit, in live mode
|
|
140
|
-
* alone. False for an id with no state of its own, and with nothing focused.
|
|
147
|
+
* Whether the command's toggle reads on where a keypress would land: a toolbar's pressed
|
|
148
|
+
* state, from the same bytes the toggle would rewrite. State, not permission, so a disabled
|
|
149
|
+
* button may still paint pressed. Over a cross-block range, true only where every touched block
|
|
150
|
+
* has the mark. False for an id with no state, and with nothing focused.
|
|
141
151
|
*/
|
|
142
152
|
isCommandActive(commandId: string): boolean;
|
|
143
153
|
getEvents(): EditorEvents;
|
|
144
154
|
getSearch(): SearchState;
|
|
145
155
|
getDecorations(): DecorationRegistry;
|
|
156
|
+
/** The same registry a plugin reaches as `editor.inlineMenus`, for a host that owns the menu's
|
|
157
|
+
* data (its document index, its tag list) rather than shipping a plugin for it. */
|
|
158
|
+
getInlineMenus(): InlineMenuRegistry;
|
|
159
|
+
/**
|
|
160
|
+
* The blocks the insert menus offer, in menu order: the built-ins, then each block a plugin this
|
|
161
|
+
* editor activated registered. The list the right-click flyout draws, for a host building its own
|
|
162
|
+
* insert button; each entry's `markdown` is what to hand `insertMarkdown`. A fresh frozen list per call.
|
|
163
|
+
*/
|
|
164
|
+
getInsertCatalogue(): readonly InsertEntry[];
|
|
146
165
|
getRects(): EditorRects;
|
|
147
166
|
getDiagnostics(): EditorDiagnostics;
|
|
148
167
|
/**
|
|
149
|
-
* Every
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
* DISABLED chord (`command: null`), released for the host to claim app-wide yet still
|
|
154
|
-
* swallowed INSIDE the editor, whose native fall-through would bypass the CST undo stack.
|
|
168
|
+
* Every modifier chord this instance consumes, normalized (`Mod` covers Ctrl and Cmd), composed
|
|
169
|
+
* live from the kind keymaps, command tables, active plugins, `keybindings` overrides and search,
|
|
170
|
+
* so a host's accelerator table is derived. Bare keys aren't listed, nor is a chord turned off
|
|
171
|
+
* with `command: null`, which the editor still swallows so it can't bypass the undo stack.
|
|
155
172
|
*/
|
|
156
173
|
reservedChords(): ReadonlySet<string>;
|
|
157
174
|
/** Whether this instance consumes that keystroke, answered with the editor's own chord
|
|
158
|
-
* normalization so a host never re-implements the Ctrl
|
|
175
|
+
* normalization so a host never re-implements the Ctrl-equals-Cmd rule. */
|
|
159
176
|
claimsChord(event: KeyboardEvent): boolean;
|
|
160
177
|
}
|
|
161
178
|
/**
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
* serializes. The trace is process-global
|
|
179
|
+
* Diagnostics for a bug report: turn the interaction trace on, read it, and serialize a
|
|
180
|
+
* report a user can attach. Recording is off by default, so a consumer opts in, reproduces
|
|
181
|
+
* the problem, then serializes. The trace is process-global: two instances interleave entries.
|
|
165
182
|
*/
|
|
166
183
|
export interface EditorDiagnostics {
|
|
167
184
|
enableTrace(): void;
|
|
@@ -170,7 +187,7 @@ export interface EditorDiagnostics {
|
|
|
170
187
|
traceSnapshot(): InteractionTraceEntry[];
|
|
171
188
|
/**
|
|
172
189
|
* A fenced-markdown snapshot (timestamp, trace tail, ops-log tail, selection). The
|
|
173
|
-
* document source is
|
|
190
|
+
* document source is left out by default; pass `{ includeSource: true }` to opt in.
|
|
174
191
|
*/
|
|
175
192
|
serializeDiagnostics(opts?: {
|
|
176
193
|
includeSource?: boolean;
|
package/dist/editor-rects.d.ts
CHANGED
|
@@ -1,58 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Viewport-space geometry over the rendered document, the public face of the measurement calls
|
|
3
|
+
* block components expose. Offsets mean what `measurePartialRects` means for that block (raw
|
|
4
|
+
* offsets on prose, cell coordinates in a grid). jsdom reports boxes of about zero size, so e2e
|
|
5
|
+
* covers this file rather than unit tests.
|
|
6
|
+
*/
|
|
1
7
|
import type { BlockComponent } from './block-component';
|
|
2
|
-
import type {
|
|
8
|
+
import type { ScrollOwner } from './cursor/scroll-owner';
|
|
3
9
|
export interface EditorRects {
|
|
4
10
|
/** The block's outermost box, or null when it isn't mounted. */
|
|
5
11
|
blockRect(path: number[]): DOMRect | null;
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
8
|
-
* line on a wrapped prose leaf, one per cell on a grid surface. `SELECTION_END` is
|
|
9
|
-
* accepted as `end`. Empty when the block isn't mounted or can't measure.
|
|
10
|
-
*/
|
|
12
|
+
/** Rects covering `[start, end)` of the block's measurable content: one per visual line of prose,
|
|
13
|
+
* one per grid cell. `end` accepts `SELECTION_END`; empty when the block isn't mounted. */
|
|
11
14
|
rangeRects(path: number[], start: number, end: number): DOMRect[];
|
|
12
15
|
/**
|
|
13
|
-
* The
|
|
14
|
-
*
|
|
16
|
+
* The browser's caret when it sits in one block, or null. Null in cross-block mode too,
|
|
17
|
+
* where the held range is not a caret and must not leak out as one.
|
|
15
18
|
*/
|
|
16
19
|
caretRect(): DOMRect | null;
|
|
17
|
-
/** Scroll a
|
|
18
|
-
* true once the block's element is present. */
|
|
20
|
+
/** Scroll a block that is not rendered yet into the mounted range and await its mount.
|
|
21
|
+
* Resolves true once the block's element is present. */
|
|
19
22
|
reveal(path: number[]): Promise<boolean>;
|
|
20
|
-
/**
|
|
21
|
-
*
|
|
22
|
-
* `'nearest'`; `hold` (default true) keeps the reveal's pin afterward, so a later layout
|
|
23
|
-
* shift cannot push the target back out. Resolves true only once the position settles; a
|
|
24
|
-
* reveal superseded by a later one stops refining and reports honest visibility.
|
|
25
|
-
*/
|
|
23
|
+
/** Mount the block at `path` and scroll to it (`block` defaults to `'nearest'`); `hold`, default
|
|
24
|
+
* true, keeps it where it landed against later layout shifts. True once in view and settled. */
|
|
26
25
|
scrollTo(path: readonly number[], opts?: {
|
|
27
26
|
block?: 'nearest' | 'center';
|
|
28
27
|
hold?: boolean;
|
|
29
28
|
}): Promise<boolean>;
|
|
30
|
-
/**
|
|
31
|
-
*
|
|
32
|
-
* so the next keystroke (Ctrl+Z included) addresses the document rather than the
|
|
33
|
-
* affordance that was clicked. Runs the same restore road undo and `setSelection` use.
|
|
34
|
-
* True means the caret landed AND the target settled into view.
|
|
35
|
-
*/
|
|
29
|
+
/** Mount `path`, scroll there and land the caret at `offset` (default 0) as an edit does, so the
|
|
30
|
+
* next key addresses the document; a closed `<details>` on the way opens. True once in view. */
|
|
36
31
|
navigateTo(path: readonly number[], offset?: number): Promise<boolean>;
|
|
37
32
|
}
|
|
38
33
|
export declare function createEditorRects(deps: {
|
|
39
34
|
getBlockElByPath: (path: number[]) => HTMLElement | null;
|
|
40
|
-
|
|
35
|
+
getBlockComponent: (path: number[]) => BlockComponent | null;
|
|
36
|
+
/** Mounts `path`, opening a collapsed body on the way: every caller here is a navigation. */
|
|
41
37
|
revealPath: (path: number[]) => Promise<unknown>;
|
|
42
38
|
getEditorRoot: () => HTMLElement | null;
|
|
43
|
-
|
|
44
|
-
* scrollport but spans the WHOLE document, so intersecting a block with it answers
|
|
45
|
-
* "is this in the document" rather than "is this visible". */
|
|
46
|
-
isHostScroll: () => boolean;
|
|
47
|
-
/** Host mode's ancestors that bound what can be seen. Intersected WITH the window
|
|
48
|
-
* viewport, never instead of it: a bound that clips nothing would swallow the fold. */
|
|
49
|
-
getClipBounds: () => HTMLElement[];
|
|
39
|
+
scroll: Pick<ScrollOwner, 'place'>;
|
|
50
40
|
isCrossBlock: () => boolean;
|
|
51
|
-
/** True for nodes in the host's `header`
|
|
41
|
+
/** True for nodes in the host's `header` snippet: inside the root, but not this
|
|
52
42
|
* editor's content. */
|
|
53
43
|
isHostChrome: (node: Node | null) => boolean;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
* because this surface owns geometry, not the selection model. */
|
|
44
|
+
/** Put a caret at a raw offset in `path` through the caret landing, as a navigation. Injected
|
|
45
|
+
* because this file owns geometry, not the selection model. */
|
|
57
46
|
landCaretAt: (path: number[], offset: number) => Promise<boolean>;
|
|
58
47
|
}): EditorRects;
|
package/dist/editor-rects.js
CHANGED
|
@@ -1,72 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Viewport-space geometry over the rendered document, the public face of the measurement
|
|
3
|
-
* primitives block components expose. Offsets inherit `measurePartialRects`' per-surface
|
|
4
|
-
* meaning (raw offsets on prose leaves, cell-index coordinates on grid surfaces). Rects
|
|
5
|
-
* are real only in a browser — jsdom reports ~0-sized boxes — so e2e covers this surface,
|
|
6
|
-
* not unit tests.
|
|
7
|
-
*/
|
|
8
|
-
import { tick } from 'svelte';
|
|
9
|
-
// Post-mount measure passes settle within a few Svelte flushes; `tick` is the repo's only
|
|
10
|
-
// sequencing primitive, so the wait is a bounded count of them.
|
|
11
|
-
const REVEAL_SETTLE_TICKS = 12;
|
|
12
1
|
export function createEditorRects(deps) {
|
|
13
|
-
function isInView(el, root) {
|
|
14
|
-
const br = el.getBoundingClientRect();
|
|
15
|
-
// Self mode: the root IS the scrollport, and what lies outside it is the host
|
|
16
|
-
// page's business, not the editor's.
|
|
17
|
-
if (!deps.isHostScroll()) {
|
|
18
|
-
const er = root.getBoundingClientRect();
|
|
19
|
-
return br.top < er.bottom && br.bottom > er.top;
|
|
20
|
-
}
|
|
21
|
-
if (br.top >= window.innerHeight || br.bottom <= 0)
|
|
22
|
-
return false;
|
|
23
|
-
for (const bound of deps.getClipBounds()) {
|
|
24
|
-
const cr = bound.getBoundingClientRect();
|
|
25
|
-
if (br.top >= cr.bottom || br.bottom <= cr.top)
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
// The anchor's re-assertion (`correctAnchor`) is model-based and runs pre-flush, so it
|
|
31
|
-
// can lag the DOM by a boundary block's height; each tick refines placement AFTER the
|
|
32
|
-
// flush, when DOM reads are exact, and stops once the target stops moving. A SUPERSEDED
|
|
33
|
-
// claim bails at once (the viewport belongs to the newer reveal), but one that merely
|
|
34
|
-
// lost its pin to a user gesture keeps refining — it is still arriving.
|
|
35
|
-
async function settleInView(path, block, claim) {
|
|
36
|
-
const root = deps.getEditorRoot();
|
|
37
|
-
if (!root)
|
|
38
|
-
return deps.getBlockElByPath(path) != null;
|
|
39
|
-
let placedTop = null;
|
|
40
|
-
for (let i = 0; i < REVEAL_SETTLE_TICKS; i++) {
|
|
41
|
-
await tick();
|
|
42
|
-
if (claim.isSuperseded())
|
|
43
|
-
break;
|
|
44
|
-
const el = deps.getBlockElByPath(path);
|
|
45
|
-
if (!el) {
|
|
46
|
-
placedTop = null; // transiently unmounted mid re-slice — keep settling
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
// Converged: the anchor correction no longer disturbs the prior precise placement.
|
|
50
|
-
const afterAnchor = el.getBoundingClientRect().top;
|
|
51
|
-
if (afterAnchor === placedTop)
|
|
52
|
-
break;
|
|
53
|
-
el.scrollIntoView({ block });
|
|
54
|
-
placedTop = el.getBoundingClientRect().top;
|
|
55
|
-
}
|
|
56
|
-
const el = deps.getBlockElByPath(path);
|
|
57
|
-
return el != null && isInView(el, root);
|
|
58
|
-
}
|
|
59
2
|
return {
|
|
60
3
|
blockRect(path) {
|
|
61
4
|
return deps.getBlockElByPath(path)?.getBoundingClientRect() ?? null;
|
|
62
5
|
},
|
|
63
6
|
rangeRects(path, start, end) {
|
|
64
|
-
return deps.
|
|
7
|
+
return deps.getBlockComponent(path)?.measurePartialRects?.(start, end) ?? [];
|
|
65
8
|
},
|
|
66
9
|
caretRect() {
|
|
67
|
-
// Read SelectionState
|
|
68
|
-
//
|
|
69
|
-
// a subscriber reading mid-emit would get the parked range as a caret.
|
|
10
|
+
// Read `SelectionState`, not the `data-cross-block` attribute: a deferred `$effect`
|
|
11
|
+
// writes the attribute, so it lags the synchronous `selectionChange` emit.
|
|
70
12
|
if (deps.isCrossBlock())
|
|
71
13
|
return null;
|
|
72
14
|
const root = deps.getEditorRoot();
|
|
@@ -78,8 +20,8 @@ export function createEditorRects(deps) {
|
|
|
78
20
|
const range = selection.getRangeAt(0);
|
|
79
21
|
if (!root.contains(range.commonAncestorContainer))
|
|
80
22
|
return null;
|
|
81
|
-
// A caret in the host's header
|
|
82
|
-
// caret; reporting it would float caret-following
|
|
23
|
+
// A caret in the host's header snippet is inside the root but is not a document
|
|
24
|
+
// caret; reporting it would float caret-following controls over the host's field.
|
|
83
25
|
if (deps.isHostChrome(range.commonAncestorContainer))
|
|
84
26
|
return null;
|
|
85
27
|
return range.getBoundingClientRect();
|
|
@@ -91,21 +33,11 @@ export function createEditorRects(deps) {
|
|
|
91
33
|
async scrollTo(path, opts) {
|
|
92
34
|
const p = [...path];
|
|
93
35
|
const block = opts?.block ?? 'nearest';
|
|
94
|
-
//
|
|
95
|
-
//
|
|
96
|
-
const
|
|
36
|
+
// Placed before the first await so the hold survives the gesture that started this
|
|
37
|
+
// scroll (a match click's pointerdown releases, then this places again).
|
|
38
|
+
const placement = deps.scroll.place(p, { block, hold: opts?.hold !== false });
|
|
97
39
|
await deps.revealPath(p);
|
|
98
|
-
|
|
99
|
-
// viewport once, before the settle's first tick could bail it.
|
|
100
|
-
if (!claim.isSuperseded())
|
|
101
|
-
deps.getBlockElByPath(p)?.scrollIntoView({ block });
|
|
102
|
-
const landed = await settleInView(p, block, claim);
|
|
103
|
-
// Release on 'center': the anchor holds only a coarse pin, whose later corrections
|
|
104
|
-
// would drift a target the settle already placed exactly. 'nearest' holds by
|
|
105
|
-
// default — the coarse top-pin IS its contract. A failed reveal never pins.
|
|
106
|
-
if (block === 'center' || !landed || opts?.hold === false)
|
|
107
|
-
claim.release();
|
|
108
|
-
return landed;
|
|
40
|
+
return placement.scroll();
|
|
109
41
|
},
|
|
110
42
|
navigateTo(path, offset = 0) {
|
|
111
43
|
return deps.landCaretAt([...path], offset);
|
package/dist/env.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Where the editor reads its build flags, and the one module that imports `esm-env`. The way to
|
|
3
|
+
* override them for a toolchain these defaults read wrong (a bundler resolving no export
|
|
4
|
+
* conditions, a runner other than Vitest) is published on the `@voithos-labs/aragonite/testing`
|
|
5
|
+
* subpath, not here.
|
|
6
6
|
*/
|
|
7
7
|
export declare const editorEnv: {
|
|
8
8
|
isDev: boolean;
|
|
9
9
|
isTest: boolean;
|
|
10
10
|
};
|
|
11
|
+
/** Whether dev-only checks run: in a dev build, or wherever the override turned dev on. */
|
|
12
|
+
export declare function isDevChecks(): boolean;
|
|
11
13
|
export declare function configureEditorEnv(partial: Partial<typeof editorEnv>): void;
|
|
12
14
|
export declare function resetEditorEnv(): void;
|
package/dist/env.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Where the editor reads its build flags, and the one module that imports `esm-env`. The way to
|
|
3
|
+
* override them for a toolchain these defaults read wrong (a bundler resolving no export
|
|
4
|
+
* conditions, a runner other than Vitest) is published on the `@voithos-labs/aragonite/testing`
|
|
5
|
+
* subpath, not here.
|
|
6
6
|
*/
|
|
7
7
|
import { DEV } from 'esm-env';
|
|
8
8
|
function computeDefaults() {
|
|
@@ -12,6 +12,10 @@ function computeDefaults() {
|
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
export const editorEnv = computeDefaults();
|
|
15
|
+
/** Whether dev-only checks run: in a dev build, or wherever the override turned dev on. */
|
|
16
|
+
export function isDevChecks() {
|
|
17
|
+
return DEV || editorEnv.isDev;
|
|
18
|
+
}
|
|
15
19
|
export function configureEditorEnv(partial) {
|
|
16
20
|
Object.assign(editorEnv, partial);
|
|
17
21
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { default as Editor } from './components/Editor.svelte';
|
|
2
|
-
export type { EditorProps, EditorInstance } from './editor-props';
|
|
2
|
+
export type { EditorProps, EditorInstance, InsertMarkdownOptions, SyntaxOptions } from './editor-props';
|
|
3
3
|
export type { EditorDiagnostics, InteractionTraceEntry } from './editor-props';
|
|
4
4
|
export type { BlockComponent } from './block-component';
|
|
5
5
|
export type { ResolveImageUrl, ResolveLinkUrl, PastedImage, PasteImageHook, CodeRunRequest, RunCodeHook, CodeMenuItem, CodeMenuItemsHook } from './editor-keys';
|
|
@@ -20,8 +20,12 @@ export { parseInline, getContentRange, isProseKind } from './core/inline';
|
|
|
20
20
|
export type { ContentRange } from './core/inline';
|
|
21
21
|
export type { BlockKind, LeafBlockKind, ContainerBlockKind, AnyBlockKind, CstNode, Document, BlockMetadata, HeadingMetadata, SetextHeadingMetadata, FencedCodeMetadata, ThematicBreakMetadata, LinkReferenceDefinitionMetadata, TableMetadata, BlockquoteMetadata, ListMetadata, ListItemMetadata, InlineNodeKind, InlineNode } from './core/nodes';
|
|
22
22
|
export type { NodeView, DocumentView } from './core/node-views';
|
|
23
|
-
export type { EditorEvents, EditEvent, EditorEventMap, EditorError, SelectionChangeEvent } from './editor-events';
|
|
23
|
+
export type { EditorEvents, EditEvent, EditorEventMap, EditorError, SelectionChangeEvent, SourceSwapEvent } from './editor-events';
|
|
24
24
|
export type { Decoration, MarkDecoration, WidgetDecoration, ReplaceDecoration, BlockDecoration, DecorationWidgetSpec, ProvideContext, DecorationSource, DecorationSourceHandle, DecorationRegistry } from './decorations/types';
|
|
25
25
|
export type { EditorRects } from './editor-rects';
|
|
26
26
|
export { SELECTION_END } from './block-component';
|
|
27
27
|
export type { SelectionEnd } from './block-component';
|
|
28
|
+
export type { InlineMenuRegistry, InlineMenuOpenOptions, InlineMenuSource, InlineMenuSourceHandle, InlineMenuItem, InlineMenuQuery, InlineMenuRowProps } from './inline-menu/types';
|
|
29
|
+
export { registerInsertEntry } from './schema/insert-catalogue';
|
|
30
|
+
export type { InsertEntry } from './schema/insert-catalogue';
|
|
31
|
+
export type { MenuIconName } from './menu-icons';
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// The editor module's public, supported API: adding an export is non-breaking,
|
|
2
2
|
// removing one is breaking. Anything not re-exported here is internal.
|
|
3
3
|
// ── Component ────────────────────────────────────────────────────────────────
|
|
4
4
|
export { default as Editor } from './components/Editor.svelte';
|
|
@@ -10,10 +10,13 @@ export { installPlugins } from './schema/plugin-install';
|
|
|
10
10
|
// re-derive path-lexicographic comparison.
|
|
11
11
|
export { normalize as normalizeSelection } from './selection/primitives';
|
|
12
12
|
// ── Commands (pre-freeze: the id space opens up when the command registry unifies) ──
|
|
13
|
-
// The ids `editor.runCommand()` supports
|
|
13
|
+
// The ids `editor.runCommand()` supports: what a selection toolbar needs.
|
|
14
14
|
export { TOOLBAR_COMMANDS } from './schema/commands';
|
|
15
15
|
// ── CST utilities ────────────────────────────────────────────────────────────
|
|
16
16
|
export { parse } from './core/parser';
|
|
17
17
|
export { serialize } from './core/serializer';
|
|
18
18
|
export { parseInline, getContentRange, isProseKind } from './core/inline';
|
|
19
19
|
export { SELECTION_END } from './block-component';
|
|
20
|
+
// ── Insert catalogue ───────────────────────────────────────────────────────────
|
|
21
|
+
// The blocks the insert menus offer, plugin blocks included, via `editor.getInsertCatalogue()`.
|
|
22
|
+
export { registerInsertEntry } from './schema/insert-catalogue';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The inline menu's rules: which source a just-typed trigger opens, where in a line of prose it
|
|
3
|
+
* may open at all, and what an open session's query is now. Pure, so all three are testable
|
|
4
|
+
* without an editor.
|
|
5
|
+
*/
|
|
6
|
+
import type { InlineNode } from '../core/nodes';
|
|
7
|
+
import type { GrammarView } from '../schema/block-openers';
|
|
8
|
+
import type { InlineMenuSource } from './types';
|
|
9
|
+
/** Identity only, never a captured node: every keystroke writes a new leaf to state. */
|
|
10
|
+
export interface InlineMenuSession {
|
|
11
|
+
source: string;
|
|
12
|
+
path: number[];
|
|
13
|
+
/** Raw offset of the trigger's first byte. */
|
|
14
|
+
start: number;
|
|
15
|
+
triggerLength: number;
|
|
16
|
+
}
|
|
17
|
+
export interface InlineMenuOpening {
|
|
18
|
+
source: InlineMenuSource;
|
|
19
|
+
start: number;
|
|
20
|
+
}
|
|
21
|
+
/** The source a just-typed run opens; `from` is where the run began, since a burst of keystrokes
|
|
22
|
+
* arrives as one change. The trigger nearest the caret wins, then the longer, so `[[` beats `[`. */
|
|
23
|
+
export declare function findOpening(sources: Iterable<InlineMenuSource>, raw: string, caret: number, from: number): InlineMenuOpening | null;
|
|
24
|
+
/** Whether a trigger at this offset sits in prose the author is writing, as each construct's
|
|
25
|
+
* policy row declares: a link's text is prose, its destination and a code span are not. */
|
|
26
|
+
export declare function isProseOffset(nodes: InlineNode[], offset: number, grammar: GrammarView): boolean;
|
|
27
|
+
/** Whether the offset sits in a destination opened with `](` and not yet closed: those bytes are
|
|
28
|
+
* text until the `)` lands, so the inline tree has no link to decline. */
|
|
29
|
+
export declare function isUnclosedDestination(raw: string, offset: number): boolean;
|
|
30
|
+
/** Where the just-typed run began, or null when the change from `previous` to `raw` is anything
|
|
31
|
+
* but bytes inserted to end at the caret (a deletion, a caret move, an edit elsewhere). */
|
|
32
|
+
export declare function typedRunStart(previous: string, raw: string, caret: number): number | null;
|
|
33
|
+
/** The open session's query at this caret, or null once the session is over: the trigger is
|
|
34
|
+
* gone, the caret stepped in front of the query, or the source declines what was typed. */
|
|
35
|
+
export declare function sessionQuery(session: InlineMenuSession, source: InlineMenuSource, raw: string, caret: number): string | null;
|
|
36
|
+
/** Step the active row, wrapping at both ends; a list of none has no active row. */
|
|
37
|
+
export declare function stepActive(index: number, delta: 1 | -1, count: number): number;
|