@voithos-labs/aragonite 0.10.3 → 0.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/a11y-strings.d.ts +12 -5
- package/dist/a11y-strings.js +61 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +13 -20
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +619 -1089
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +36 -67
- package/dist/components/SelectionOverlay.svelte.d.ts +6 -4
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +103 -100
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +35 -28
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +58 -32
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +144 -202
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +46 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +99 -144
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +3 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +9 -4
- package/dist/components/blocks/text/click-snap-guard.js +16 -5
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +164 -180
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -105
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +243 -208
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +13 -30
- package/dist/components/drag-handle.js +25 -63
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -31
- package/dist/components/editor-root-listeners.js +49 -46
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +26 -30
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +380 -0
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +14 -0
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +55 -68
- package/dist/core/inline/inline-widgets.js +55 -58
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +33 -17
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -7
- package/dist/cursor/height-oracle.js +26 -75
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +16 -8
- package/dist/cursor/scrollport.js +28 -5
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -13
- package/dist/cursor/visual-lines.js +72 -28
- package/dist/cursor/widget-edge-snap.d.ts +23 -0
- package/dist/cursor/widget-edge-snap.js +39 -0
- package/dist/cursor/widget-offset.d.ts +111 -102
- package/dist/cursor/widget-offset.js +352 -177
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +31 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +33 -52
- package/dist/editor-actions/focus/focus-landing.d.ts +11 -5
- package/dist/editor-actions/focus/focus-landing.js +29 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +55 -76
- package/dist/editor-actions/plugin/container.js +105 -186
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +91 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +38 -8
- package/dist/plugin.js +102 -74
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +113 -85
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -75
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +63 -47
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +18 -7
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +143 -292
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +79 -81
- package/dist/schema/commands.js +156 -116
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +9 -11
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +73 -78
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +93 -152
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +61 -104
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +53 -146
- package/dist/selection/dead-space-caret.d.ts +20 -28
- package/dist/selection/dead-space-caret.js +79 -87
- package/dist/selection/drag-pointer.d.ts +22 -5
- package/dist/selection/drag-pointer.js +63 -31
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -39
- package/dist/selection/keyboard-extend.js +94 -116
- package/dist/selection/multi-click.d.ts +37 -0
- package/dist/selection/multi-click.js +197 -0
- package/dist/selection/native-bridge.d.ts +30 -37
- package/dist/selection/native-bridge.js +80 -100
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +31 -14
- package/dist/selection/path-lookup.js +110 -20
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +9 -0
- package/dist/selection/pointer-gesture.js +11 -0
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -33
- package/dist/selection/primitives.js +61 -53
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -19
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +52 -0
- package/dist/selection/selection-drop.js +317 -0
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +75 -53
- package/dist/styles/editor.css +248 -139
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +19 -0
- package/dist/tree-operations/paste/replacement-parse.js +24 -0
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +329 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +267 -183
- package/docs/guide/plugin-guide.md +341 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +17 -21
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/selection/double-click-trim.d.ts +0 -17
- package/dist/selection/double-click-trim.js +0 -57
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -29
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -75
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `/` list: the insert catalogue, three heading rows and the host's own entries, read fresh
|
|
3
|
+
* from the editor on every keystroke. A pick removes the `/query` bytes first (its `insert` is
|
|
4
|
+
* empty), then `onCommit` does the row's work through the editor's own entry points.
|
|
5
|
+
*/
|
|
6
|
+
import { blockNodeAt, isBlankText } from '../../plugin';
|
|
7
|
+
import { acceptsQuery, filterEntries, splitQuery } from './filter';
|
|
8
|
+
export const SLASH_COMMANDS_MENU = 'slash-commands';
|
|
9
|
+
const HEADING_LEVELS = [1, 2, 3];
|
|
10
|
+
/** The `/` source for one editor: its rows come from `editor.options` and the live catalogue. */
|
|
11
|
+
export function createSlashSource(editor) {
|
|
12
|
+
function rows() {
|
|
13
|
+
const { entries = [], exclude = [] } = editor.options;
|
|
14
|
+
const hidden = new Set([...exclude, ...entries.map((entry) => entry.id)]);
|
|
15
|
+
const builtIn = [
|
|
16
|
+
...editor.insertCatalogue.map(catalogueRow),
|
|
17
|
+
...HEADING_LEVELS.map(headingRow)
|
|
18
|
+
];
|
|
19
|
+
return [...builtIn.filter((row) => !hidden.has(row.id)), ...entries.map(hostRow)];
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
name: SLASH_COMMANDS_MENU,
|
|
23
|
+
trigger: '/',
|
|
24
|
+
// A slash inside a word (`and/or`, `9/22`) is text.
|
|
25
|
+
opensAt: (raw, pos) => pos === 0 || /\s/.test(raw[pos - 1]),
|
|
26
|
+
accepts: (query) => acceptsQuery(rows(), query),
|
|
27
|
+
items: ({ query }) => {
|
|
28
|
+
const { head, argument } = splitQuery(query);
|
|
29
|
+
return filterEntries(rows(), head).map((row) => ({
|
|
30
|
+
id: row.id,
|
|
31
|
+
label: row.label,
|
|
32
|
+
icon: row.icon,
|
|
33
|
+
detail: argument === null ? undefined : argumentDetail(row, argument),
|
|
34
|
+
insert: ''
|
|
35
|
+
}));
|
|
36
|
+
},
|
|
37
|
+
onCommit: async (item, range) => {
|
|
38
|
+
const row = rows().find((candidate) => candidate.id === item.id);
|
|
39
|
+
if (!row)
|
|
40
|
+
return;
|
|
41
|
+
const { argument } = splitQuery(range.query);
|
|
42
|
+
const action = row.action;
|
|
43
|
+
if (action.kind === 'heading') {
|
|
44
|
+
editor.runCommand('heading.cycle', action.level);
|
|
45
|
+
}
|
|
46
|
+
else if (action.kind === 'run') {
|
|
47
|
+
action.run(editor, argument ?? undefined);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// An empty line becomes the block; a line with text keeps it and gets the block below.
|
|
51
|
+
// Copied because `blockNodeAt` takes a mutable path and the range's is readonly.
|
|
52
|
+
const empty = isBlankText(blockNodeAt(editor.document, [...range.path])?.raw ?? '');
|
|
53
|
+
// Awaited, so the block lands inside the pick's undo entry.
|
|
54
|
+
await editor.insertMarkdown(action.build(argument).markdown, {
|
|
55
|
+
placement: empty ? 'caret' : 'below'
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// ── Rows ─────────────────────────────────────────────────────────────────────
|
|
62
|
+
function catalogueRow(entry) {
|
|
63
|
+
const { withArgument } = entry;
|
|
64
|
+
return {
|
|
65
|
+
id: entry.id,
|
|
66
|
+
label: entry.label,
|
|
67
|
+
icon: entry.icon,
|
|
68
|
+
keywords: entry.keywords,
|
|
69
|
+
takesArgument: withArgument !== undefined,
|
|
70
|
+
action: {
|
|
71
|
+
kind: 'insert',
|
|
72
|
+
// A space with no word after it yet is no argument, so `withArgument` only sees a word.
|
|
73
|
+
build: (argument) => argument && withArgument ? withArgument(argument) : { markdown: entry.markdown }
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function headingRow(level) {
|
|
78
|
+
return {
|
|
79
|
+
id: `h${level}`,
|
|
80
|
+
label: `Heading ${level}`,
|
|
81
|
+
icon: 'heading',
|
|
82
|
+
keywords: [`h${level}`, 'heading', 'title'],
|
|
83
|
+
takesArgument: false,
|
|
84
|
+
action: { kind: 'heading', level }
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function hostRow(entry) {
|
|
88
|
+
const base = {
|
|
89
|
+
id: entry.id,
|
|
90
|
+
label: entry.label,
|
|
91
|
+
icon: entry.icon,
|
|
92
|
+
keywords: entry.keywords ?? []
|
|
93
|
+
};
|
|
94
|
+
if (entry.run) {
|
|
95
|
+
return {
|
|
96
|
+
...base,
|
|
97
|
+
takesArgument: !!entry.takesArgument,
|
|
98
|
+
action: { kind: 'run', run: entry.run }
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
const markdown = entry.insert ?? '';
|
|
102
|
+
return { ...base, takesArgument: false, action: { kind: 'insert', build: () => ({ markdown }) } };
|
|
103
|
+
}
|
|
104
|
+
function argumentDetail(row, argument) {
|
|
105
|
+
if (row.action.kind === 'insert')
|
|
106
|
+
return row.action.build(argument).detail;
|
|
107
|
+
return argument === '' ? undefined : argument;
|
|
108
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
//
|
|
3
|
-
//
|
|
2
|
+
// A render-primary editable block: all editing behavior lives in `createEditableLeaf`, so
|
|
3
|
+
// this component owns only the swap between the list and the source, and navigation.
|
|
4
4
|
import {
|
|
5
5
|
createEditableLeaf,
|
|
6
6
|
type BlockComponent,
|
|
@@ -8,23 +8,22 @@
|
|
|
8
8
|
type EditorRects,
|
|
9
9
|
type NodeView
|
|
10
10
|
} from '../../plugin';
|
|
11
|
-
import { collectHeadings,
|
|
11
|
+
import { collectHeadings, MAX_HEADING_DEPTH } from './heading-outline';
|
|
12
12
|
import { createNavigationQueue } from './navigation-queue';
|
|
13
|
+
import type { TocOptions } from './toc-plugin';
|
|
13
14
|
|
|
14
15
|
let {
|
|
15
16
|
node,
|
|
16
17
|
index,
|
|
17
18
|
myPath = [],
|
|
18
19
|
document,
|
|
19
|
-
rects
|
|
20
|
-
maxDepth = 6
|
|
20
|
+
rects
|
|
21
21
|
}: {
|
|
22
22
|
node: NodeView;
|
|
23
23
|
index: number;
|
|
24
24
|
myPath?: number[];
|
|
25
25
|
document?: DocumentView;
|
|
26
26
|
rects?: EditorRects;
|
|
27
|
-
maxDepth?: number;
|
|
28
27
|
} = $props();
|
|
29
28
|
|
|
30
29
|
let sourceEl: HTMLDivElement | undefined = $state();
|
|
@@ -42,22 +41,24 @@
|
|
|
42
41
|
}
|
|
43
42
|
});
|
|
44
43
|
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
const depth =
|
|
44
|
+
// Undefined only for a block mounted with no editor, as the unit tests mount it.
|
|
45
|
+
const options = leaf.getOptions() as Required<TocOptions> | undefined;
|
|
46
|
+
const depth = options?.maxDepth ?? MAX_HEADING_DEPTH;
|
|
48
47
|
|
|
49
|
-
//
|
|
50
|
-
//
|
|
51
|
-
const headings = $derived(
|
|
48
|
+
// This reads heading bytes through the prop, subscribing to the CST's $state proxy, so an
|
|
49
|
+
// edit above re-runs it; left uncached so the derived stays reactive.
|
|
50
|
+
const headings = $derived(
|
|
51
|
+
collectHeadings(document, depth, leaf.getEditor()?.computeInlineContent)
|
|
52
|
+
);
|
|
52
53
|
|
|
53
|
-
//
|
|
54
|
-
// well as scrolling, so focus never stays
|
|
54
|
+
// One navigation at a time per block (`navigation-queue.ts` says why). `navigateTo` moves
|
|
55
|
+
// the caret as well as scrolling, so focus never stays somewhere the keyboard cannot reach.
|
|
55
56
|
const navigation = createNavigationQueue({
|
|
56
57
|
navigateTo: (path) => rects?.navigateTo(path) ?? Promise.resolve()
|
|
57
58
|
});
|
|
58
59
|
|
|
59
|
-
//
|
|
60
|
-
//
|
|
60
|
+
// Stops the block showing its source on pointerdown, so clicking an entry navigates instead
|
|
61
|
+
// of opening the source. It only reads, so it works in reading mode too.
|
|
61
62
|
function onEntryPointerDown(e: PointerEvent): void {
|
|
62
63
|
e.stopPropagation();
|
|
63
64
|
}
|
|
@@ -74,8 +75,8 @@
|
|
|
74
75
|
export const getSelectedText = leaf.getSelectedText;
|
|
75
76
|
export const setSelection = leaf.setSelection;
|
|
76
77
|
export const measurePartialRects = leaf.measurePartialRects;
|
|
77
|
-
export const runCommand = leaf.runCommand;
|
|
78
78
|
export const insertMarkdown = leaf.insertMarkdown;
|
|
79
|
+
export const afterSourceCommit = leaf.afterSourceCommit;
|
|
79
80
|
|
|
80
81
|
void ({
|
|
81
82
|
editable,
|
|
@@ -87,8 +88,8 @@
|
|
|
87
88
|
getSelectedText,
|
|
88
89
|
setSelection,
|
|
89
90
|
measurePartialRects,
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
insertMarkdown,
|
|
92
|
+
afterSourceCommit
|
|
92
93
|
} satisfies BlockComponent);
|
|
93
94
|
</script>
|
|
94
95
|
|
|
@@ -131,7 +132,7 @@
|
|
|
131
132
|
{/if}
|
|
132
133
|
|
|
133
134
|
<style>
|
|
134
|
-
/*
|
|
135
|
+
/* Only the differences from the shared .md-source-surface (editor.css). */
|
|
135
136
|
.toc-block-source {
|
|
136
137
|
outline: none;
|
|
137
138
|
padding: 8px 12px;
|
|
@@ -157,8 +158,8 @@
|
|
|
157
158
|
list-style: none;
|
|
158
159
|
}
|
|
159
160
|
|
|
160
|
-
/*
|
|
161
|
-
ring are the only
|
|
161
|
+
/* The browser's button styling is reset to a plain full-width row: the accent hover and
|
|
162
|
+
the focus ring are the only cues. */
|
|
162
163
|
.toc-block-item {
|
|
163
164
|
display: block;
|
|
164
165
|
width: 100%;
|
|
@@ -5,7 +5,6 @@ type $$ComponentProps = {
|
|
|
5
5
|
myPath?: number[];
|
|
6
6
|
document?: DocumentView;
|
|
7
7
|
rects?: EditorRects;
|
|
8
|
-
maxDepth?: number;
|
|
9
8
|
};
|
|
10
9
|
declare const TocBlock: import("svelte").Component<$$ComponentProps, {
|
|
11
10
|
editable: true;
|
|
@@ -17,8 +16,8 @@ declare const TocBlock: import("svelte").Component<$$ComponentProps, {
|
|
|
17
16
|
getSelectedText: () => string;
|
|
18
17
|
setSelection: (start: number, end: number) => void;
|
|
19
18
|
measurePartialRects: (startOffset: number, endOffset: number) => DOMRect[];
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
insertMarkdown: (md: string) => Promise<boolean>;
|
|
20
|
+
afterSourceCommit: (run: () => void) => void;
|
|
22
21
|
}, "">;
|
|
23
22
|
type TocBlock = ReturnType<typeof TocBlock>;
|
|
24
23
|
export default TocBlock;
|
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The heading outline as a pure function over the read-only document.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* The heading outline as a pure function over the read-only document. It recurses through
|
|
3
|
+
* containers, so a heading nested in a blockquote or list is still collected at its own path
|
|
4
|
+
* and stays navigable.
|
|
5
5
|
*/
|
|
6
|
-
import { type DocumentView, type InlineNode } from '../../plugin';
|
|
6
|
+
import { type DocumentView, type EditorContext, type InlineNode } from '../../plugin';
|
|
7
7
|
/** Deepest heading level a document can list; `[[toc]]` has no meaning past GFM's six. */
|
|
8
8
|
export declare const MAX_HEADING_DEPTH = 6;
|
|
9
|
-
/**
|
|
10
|
-
* The instance's `{ plugin, options }` depth, else `fallback` (the factory argument's
|
|
11
|
-
* bare-install default). Options arrive as `unknown` from the platform, so anything but a
|
|
12
|
-
* whole number in 1..6 is not a depth and falls back rather than listing nothing.
|
|
13
|
-
*/
|
|
14
|
-
export declare function resolveMaxDepth(options: unknown, fallback: number): number;
|
|
15
9
|
export interface TocEntry {
|
|
16
10
|
/** Stable and unique per position: the keyed-loop identity. */
|
|
17
11
|
id: string;
|
|
18
|
-
/**
|
|
12
|
+
/** Document-absolute block path of the heading, for `rects.scrollTo`. */
|
|
19
13
|
path: number[];
|
|
20
14
|
level: number;
|
|
21
15
|
label: string;
|
|
@@ -25,4 +19,5 @@ export interface TocEntry {
|
|
|
25
19
|
* render to, and anything unrecognized falls back to its source bytes.
|
|
26
20
|
*/
|
|
27
21
|
export declare function projectInlineText(nodes: readonly InlineNode[], raw: string): string;
|
|
28
|
-
|
|
22
|
+
/** Labels read through `read`, the editor's inline parse, so syntax it left out stays text. */
|
|
23
|
+
export declare function collectHeadings(document: DocumentView | undefined, maxDepth: number, read?: EditorContext['computeInlineContent']): TocEntry[];
|
|
@@ -1,22 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The heading outline as a pure function over the read-only document.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* The heading outline as a pure function over the read-only document. It recurses through
|
|
3
|
+
* containers, so a heading nested in a blockquote or list is still collected at its own path
|
|
4
|
+
* and stays navigable.
|
|
5
5
|
*/
|
|
6
|
-
import { computeInlineContent, headingLevel } from '../../plugin';
|
|
6
|
+
import { computeInlineContent, headingLevel, trimWhitespace, walkBlocks } from '../../plugin';
|
|
7
7
|
/** Deepest heading level a document can list; `[[toc]]` has no meaning past GFM's six. */
|
|
8
8
|
export const MAX_HEADING_DEPTH = 6;
|
|
9
|
-
/**
|
|
10
|
-
* The instance's `{ plugin, options }` depth, else `fallback` (the factory argument's
|
|
11
|
-
* bare-install default). Options arrive as `unknown` from the platform, so anything but a
|
|
12
|
-
* whole number in 1..6 is not a depth and falls back rather than listing nothing.
|
|
13
|
-
*/
|
|
14
|
-
export function resolveMaxDepth(options, fallback) {
|
|
15
|
-
const declared = options?.maxDepth;
|
|
16
|
-
if (typeof declared !== 'number' || !Number.isInteger(declared))
|
|
17
|
-
return fallback;
|
|
18
|
-
return declared >= 1 && declared <= MAX_HEADING_DEPTH ? declared : fallback;
|
|
19
|
-
}
|
|
20
9
|
/**
|
|
21
10
|
* Plain-text projection: markers drop with their wrapper, value nodes show what they
|
|
22
11
|
* render to, and anything unrecognized falls back to its source bytes.
|
|
@@ -39,27 +28,24 @@ export function projectInlineText(nodes, raw) {
|
|
|
39
28
|
}
|
|
40
29
|
return text;
|
|
41
30
|
}
|
|
42
|
-
|
|
31
|
+
/** Labels read through `read`, the editor's inline parse, so syntax it left out stays text. */
|
|
32
|
+
export function collectHeadings(document, maxDepth, read = computeInlineContent) {
|
|
43
33
|
const entries = [];
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
walk(document?.children ?? [], []);
|
|
34
|
+
if (!document)
|
|
35
|
+
return entries;
|
|
36
|
+
walkBlocks(document, (node, path) => {
|
|
37
|
+
const level = headingLevel(node);
|
|
38
|
+
if (level === null)
|
|
39
|
+
return;
|
|
40
|
+
if (level <= maxDepth) {
|
|
41
|
+
entries.push({
|
|
42
|
+
id: path.join('.'),
|
|
43
|
+
path,
|
|
44
|
+
level,
|
|
45
|
+
label: trimWhitespace(projectInlineText(read(node), node.raw))
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return 'skip';
|
|
49
|
+
});
|
|
64
50
|
return entries;
|
|
65
51
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* caret, and two overlapping navigations from one block land two. A mid-flight call
|
|
5
|
-
* overwrites the pending target, so the newest wins with no extra scroll.
|
|
2
|
+
* One `rects.navigateTo` at a time per block, since two overlapping navigations would move the
|
|
3
|
+
* caret twice. A call while one is in progress replaces the pending target, so the newest wins.
|
|
6
4
|
*/
|
|
7
5
|
export interface NavigationQueue {
|
|
8
6
|
navigateTo(path: number[]): Promise<void>;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A `[[toc]]`
|
|
3
|
-
* `BlockComponentProps.document
|
|
4
|
-
*
|
|
2
|
+
* A `[[toc]]` block whose rendered view lists the document's headings, read straight off
|
|
3
|
+
* `BlockComponentProps.document`: the worked example of using that prop. Recognition starts
|
|
4
|
+
* only once the plugin registers, so without it `[[toc]]` is a plain paragraph.
|
|
5
5
|
*/
|
|
6
6
|
import { type EditorPlugin } from '../../plugin';
|
|
7
7
|
export declare const TOC_BLOCK = "toc";
|
|
8
8
|
export declare function registerTocBlock(): void;
|
|
9
9
|
export type MaxHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
10
|
-
/** The
|
|
11
|
-
*
|
|
10
|
+
/** The factory argument, which sets every editor's default, and an editor's `{ plugin, options }`
|
|
11
|
+
* entry, which overrides it. */
|
|
12
12
|
export interface TocOptions {
|
|
13
13
|
/** Deepest heading level listed (default 6 = every level). */
|
|
14
14
|
maxDepth?: MaxHeadingLevel;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A `[[toc]]`
|
|
3
|
-
* `BlockComponentProps.document
|
|
4
|
-
*
|
|
2
|
+
* A `[[toc]]` block whose rendered view lists the document's headings, read straight off
|
|
3
|
+
* `BlockComponentProps.document`: the worked example of using that prop. Recognition starts
|
|
4
|
+
* only once the plugin registers, so without it `[[toc]]` is a plain paragraph.
|
|
5
5
|
*/
|
|
6
6
|
import { definePlugin, declarePluginKind, declaredPluginKind, registerBlockKind, registerBlockOpener, registerBlockComponent, defineBlockComponent, simpleLeafClosure, OPENER_PRIORITIES } from '../../plugin';
|
|
7
7
|
import TocBlock from './TocBlock.svelte';
|
|
@@ -10,14 +10,15 @@ export const TOC_BLOCK = 'toc';
|
|
|
10
10
|
const TOC_LINE = '[[toc]]';
|
|
11
11
|
export function registerTocBlock() {
|
|
12
12
|
const toc = declarePluginKind(TOC_BLOCK);
|
|
13
|
-
// A source
|
|
14
|
-
// so a raw taken verbatim from the line round-trips.
|
|
13
|
+
// A block that holds its own source, like `fencedCode`: `serialize` re-emits
|
|
14
|
+
// `leadingTrivia + raw`, so a raw taken verbatim from the line round-trips.
|
|
15
15
|
registerBlockKind(toc, {
|
|
16
|
+
label: 'Table of contents',
|
|
16
17
|
mergeRole: 'not-mergeable',
|
|
17
18
|
editable: true,
|
|
18
19
|
supportsInline: false,
|
|
19
|
-
// Render-primary like the math
|
|
20
|
-
// at either edge, so both
|
|
20
|
+
// Render-primary like the math blocks: the rendered view gives the caret nowhere to sit
|
|
21
|
+
// at either edge, so both edges take the gap caret.
|
|
21
22
|
gapEdges: 'both',
|
|
22
23
|
conformanceFixture: '[[toc]]\n',
|
|
23
24
|
closure: simpleLeafClosure({
|
|
@@ -41,8 +42,8 @@ export function registerTocBlock() {
|
|
|
41
42
|
})
|
|
42
43
|
});
|
|
43
44
|
registerBlockOpener(toc, {
|
|
44
|
-
//
|
|
45
|
-
// whatever that matcher
|
|
45
|
+
// Just below the only built-in that consumes brackets, so `[[toc]]` resolves here
|
|
46
|
+
// whatever that matcher does.
|
|
46
47
|
priority: OPENER_PRIORITIES.linkReferenceDefinition - 5,
|
|
47
48
|
interruptsParagraph: (text) => text === TOC_LINE,
|
|
48
49
|
tryOpen(ctx) {
|
|
@@ -58,14 +59,20 @@ export function registerTocBlock() {
|
|
|
58
59
|
});
|
|
59
60
|
}
|
|
60
61
|
export function tocPlugin(options) {
|
|
61
|
-
// Definition-time, so it is the BARE-install default only: the block prefers this editor's
|
|
62
|
-
// `{ plugin, options }` depth, which is what lets two instances differ.
|
|
63
|
-
const maxDepth = options?.maxDepth ?? MAX_HEADING_DEPTH;
|
|
64
62
|
return definePlugin({
|
|
65
63
|
name: 'toc',
|
|
64
|
+
defaults: { maxDepth: options?.maxDepth ?? MAX_HEADING_DEPTH },
|
|
65
|
+
// Anything but a whole number in 1..6 keeps the default rather than listing nothing.
|
|
66
|
+
parseOptions(raw) {
|
|
67
|
+
const maxDepth = raw?.maxDepth;
|
|
68
|
+
return isMaxHeadingLevel(maxDepth) ? { maxDepth } : {};
|
|
69
|
+
},
|
|
66
70
|
setup() {
|
|
67
71
|
registerTocBlock();
|
|
68
|
-
registerBlockComponent(declaredPluginKind(TOC_BLOCK), defineBlockComponent(TocBlock
|
|
72
|
+
registerBlockComponent(declaredPluginKind(TOC_BLOCK), defineBlockComponent(TocBlock));
|
|
69
73
|
}
|
|
70
74
|
});
|
|
71
75
|
}
|
|
76
|
+
function isMaxHeadingLevel(value) {
|
|
77
|
+
return (Number.isInteger(value) && value >= 1 && value <= MAX_HEADING_DEPTH);
|
|
78
|
+
}
|
|
@@ -1,32 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The presentation-mode contract. `source` is the editing default (
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* while staying editable. Every door reports the EFFECTIVE mode.
|
|
2
|
+
* The presentation-mode contract. `source` is the editing default (styled source); `reading`
|
|
3
|
+
* hides markers and is read-only; the preview modes show markers back in the caret's block or
|
|
4
|
+
* construct (`components/blocks/text/construct-reveal.ts`); `live` hides markers and shows none
|
|
5
|
+
* back while staying editable. Every read reports the mode in effect.
|
|
7
6
|
*/
|
|
8
7
|
export type PresentationMode = 'source' | 'reading' | 'preview-block' | 'preview-inline' | 'live';
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* families match known values only, so an unrecognized one must read as the editing default here or
|
|
12
|
-
* the stylesheet and the caret walk disagree about the same block.
|
|
13
|
-
*/
|
|
8
|
+
/** Narrows a mode read off the DOM or handed in untyped: an unrecognized value reads as the
|
|
9
|
+
* editing default, as the marker-hiding CSS does, or the two would disagree about a block. */
|
|
14
10
|
export declare function asPresentationMode(value: string | null | undefined): PresentationMode;
|
|
15
11
|
/** Membership for the marker-hiding CSS families and the `data-list-marker` hook that
|
|
16
12
|
* feeds them: styled source is the one mode that paints Markdown syntax. */
|
|
17
13
|
export declare function hidesMarkers(mode: PresentationMode): boolean;
|
|
18
|
-
/** The
|
|
19
|
-
*
|
|
14
|
+
/** The modes that show markers back in a focused block, the only ones needing `data-focused`;
|
|
15
|
+
* live hides markers and never shows them back. */
|
|
20
16
|
export declare function isPreviewMode(mode: PresentationMode): boolean;
|
|
21
|
-
/**
|
|
22
|
-
*
|
|
23
|
-
* preview rungs by revealing that block. The question every seam writing at the caret asks, since
|
|
24
|
-
* a rewrite may only drop bytes the reader never saw (live-mode.md § 2).
|
|
25
|
-
*/
|
|
17
|
+
/** Whether the mode paints markers in the caret's block: the check everything writing at the caret
|
|
18
|
+
* asks, since a rewrite may drop only bytes the user never saw (`docs/design/live-mode.md` § 2). */
|
|
26
19
|
export declare function paintsFocusedMarkers(mode: PresentationMode): boolean;
|
|
27
|
-
/**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
*
|
|
31
|
-
|
|
32
|
-
export declare function isReadingMode(getMode: (() => PresentationMode) | undefined): boolean;
|
|
20
|
+
/** The converse, the one check a rewrite asks before dropping delimiter bytes at the caret. */
|
|
21
|
+
export declare function hidesDelimitersAtCaret(mode: PresentationMode): boolean;
|
|
22
|
+
/** The read-only check every dispatch path keys off. A plain getter type keeps `schema/` and
|
|
23
|
+
* `selection/` off `editor-keys`; the getter is required, since only the editor picks the default. */
|
|
24
|
+
export declare function isReadingMode(getMode: () => PresentationMode): boolean;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The presentation-mode contract. `source` is the editing default (
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* while staying editable. Every door reports the EFFECTIVE mode.
|
|
2
|
+
* The presentation-mode contract. `source` is the editing default (styled source); `reading`
|
|
3
|
+
* hides markers and is read-only; the preview modes show markers back in the caret's block or
|
|
4
|
+
* construct (`components/blocks/text/construct-reveal.ts`); `live` hides markers and shows none
|
|
5
|
+
* back while staying editable. Every read reports the mode in effect.
|
|
7
6
|
*/
|
|
8
|
-
/** Keyed by the union, so a
|
|
9
|
-
* silently through {@link asPresentationMode}
|
|
7
|
+
/** Keyed by the union, so a mode added to it fails `npm run check` here rather than falling
|
|
8
|
+
* silently through {@link asPresentationMode}. */
|
|
10
9
|
const MODES = {
|
|
11
10
|
source: true,
|
|
12
11
|
reading: true,
|
|
@@ -14,11 +13,8 @@ const MODES = {
|
|
|
14
13
|
'preview-inline': true,
|
|
15
14
|
live: true
|
|
16
15
|
};
|
|
17
|
-
/**
|
|
18
|
-
*
|
|
19
|
-
* families match known values only, so an unrecognized one must read as the editing default here or
|
|
20
|
-
* the stylesheet and the caret walk disagree about the same block.
|
|
21
|
-
*/
|
|
16
|
+
/** Narrows a mode read off the DOM or handed in untyped: an unrecognized value reads as the
|
|
17
|
+
* editing default, as the marker-hiding CSS does, or the two would disagree about a block. */
|
|
22
18
|
export function asPresentationMode(value) {
|
|
23
19
|
return value != null && Object.hasOwn(MODES, value) ? value : 'source';
|
|
24
20
|
}
|
|
@@ -27,24 +23,22 @@ export function asPresentationMode(value) {
|
|
|
27
23
|
export function hidesMarkers(mode) {
|
|
28
24
|
return mode !== 'source';
|
|
29
25
|
}
|
|
30
|
-
/** The
|
|
31
|
-
*
|
|
26
|
+
/** The modes that show markers back in a focused block, the only ones needing `data-focused`;
|
|
27
|
+
* live hides markers and never shows them back. */
|
|
32
28
|
export function isPreviewMode(mode) {
|
|
33
29
|
return mode === 'preview-block' || mode === 'preview-inline';
|
|
34
30
|
}
|
|
35
|
-
/**
|
|
36
|
-
*
|
|
37
|
-
* preview rungs by revealing that block. The question every seam writing at the caret asks, since
|
|
38
|
-
* a rewrite may only drop bytes the reader never saw (live-mode.md § 2).
|
|
39
|
-
*/
|
|
31
|
+
/** Whether the mode paints markers in the caret's block: the check everything writing at the caret
|
|
32
|
+
* asks, since a rewrite may drop only bytes the user never saw (`docs/design/live-mode.md` § 2). */
|
|
40
33
|
export function paintsFocusedMarkers(mode) {
|
|
41
34
|
return !hidesMarkers(mode) || isPreviewMode(mode);
|
|
42
35
|
}
|
|
43
|
-
/**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
/** The converse, the one check a rewrite asks before dropping delimiter bytes at the caret. */
|
|
37
|
+
export function hidesDelimitersAtCaret(mode) {
|
|
38
|
+
return !paintsFocusedMarkers(mode);
|
|
39
|
+
}
|
|
40
|
+
/** The read-only check every dispatch path keys off. A plain getter type keeps `schema/` and
|
|
41
|
+
* `selection/` off `editor-keys`; the getter is required, since only the editor picks the default. */
|
|
48
42
|
export function isReadingMode(getMode) {
|
|
49
|
-
return getMode
|
|
43
|
+
return getMode() === 'reading';
|
|
50
44
|
}
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A container's inner
|
|
3
|
-
*
|
|
4
|
-
* apply `StructuralChange`
|
|
2
|
+
* A container's inner block list: where its keyed-each ids come from and where its child
|
|
3
|
+
* component refs are stored. Structural changes go through the commit calls on
|
|
4
|
+
* `UndoController`, which apply a `StructuralChange` to keep ids and refs lined up with the
|
|
5
|
+
* children.
|
|
5
6
|
*/
|
|
6
7
|
import type { BlockComponent } from '../block-component';
|
|
7
8
|
import type { NodeView } from '../core/node-views';
|
|
8
9
|
import { type RefSlots } from './publish-ref.svelte';
|
|
9
10
|
export interface BlockListState {
|
|
10
|
-
/** Settable because ids live on the node, where the write reaches the `$state` proxy.
|
|
11
|
-
*
|
|
12
|
-
* and the property itself never moves. */
|
|
11
|
+
/** Settable because the ids live on the node, where the write reaches the `$state` proxy.
|
|
12
|
+
* The refs array keeps its identity for life; `replaceRefs` rewrites its contents. */
|
|
13
13
|
innerBlockIds: string[];
|
|
14
14
|
readonly innerBlockRefs: (BlockComponent | undefined)[];
|
|
15
|
-
/**
|
|
16
|
-
* the container surface, the mount registry — addresses the scope by one identity. */
|
|
15
|
+
/** The accessors over `innerBlockRefs` that a child's mount writes through. */
|
|
17
16
|
readonly refSlots: RefSlots<BlockComponent>;
|
|
18
17
|
}
|
|
19
|
-
/** `getNode` must be a live getter
|
|
20
|
-
*
|
|
21
|
-
* the bytes-view carve-out. */
|
|
18
|
+
/** `getNode` must be a live getter: a node passed by value goes stale when undo swaps in a deep
|
|
19
|
+
* clone. A view is enough, since `childIds` is the only field written. */
|
|
22
20
|
export declare function createBlockListState(getNode: () => NodeView): BlockListState;
|