@voithos-labs/aragonite 0.10.3 → 0.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/a11y-strings.d.ts +12 -5
- package/dist/a11y-strings.js +61 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +13 -20
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +619 -1089
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +36 -67
- package/dist/components/SelectionOverlay.svelte.d.ts +6 -4
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +103 -100
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +35 -28
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +58 -32
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +144 -202
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +46 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +99 -144
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +3 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +9 -4
- package/dist/components/blocks/text/click-snap-guard.js +16 -5
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +164 -180
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -105
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +243 -208
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +13 -30
- package/dist/components/drag-handle.js +25 -63
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -31
- package/dist/components/editor-root-listeners.js +49 -46
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +26 -30
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +380 -0
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +14 -0
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +55 -68
- package/dist/core/inline/inline-widgets.js +55 -58
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +33 -17
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -7
- package/dist/cursor/height-oracle.js +26 -75
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +16 -8
- package/dist/cursor/scrollport.js +28 -5
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -13
- package/dist/cursor/visual-lines.js +72 -28
- package/dist/cursor/widget-edge-snap.d.ts +23 -0
- package/dist/cursor/widget-edge-snap.js +39 -0
- package/dist/cursor/widget-offset.d.ts +111 -102
- package/dist/cursor/widget-offset.js +352 -177
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +31 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +33 -52
- package/dist/editor-actions/focus/focus-landing.d.ts +11 -5
- package/dist/editor-actions/focus/focus-landing.js +29 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +55 -76
- package/dist/editor-actions/plugin/container.js +105 -186
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +91 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +38 -8
- package/dist/plugin.js +102 -74
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +113 -85
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -75
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +63 -47
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +18 -7
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +143 -292
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +79 -81
- package/dist/schema/commands.js +156 -116
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +9 -11
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +73 -78
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +93 -152
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +61 -104
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +53 -146
- package/dist/selection/dead-space-caret.d.ts +20 -28
- package/dist/selection/dead-space-caret.js +79 -87
- package/dist/selection/drag-pointer.d.ts +22 -5
- package/dist/selection/drag-pointer.js +63 -31
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -39
- package/dist/selection/keyboard-extend.js +94 -116
- package/dist/selection/multi-click.d.ts +37 -0
- package/dist/selection/multi-click.js +197 -0
- package/dist/selection/native-bridge.d.ts +30 -37
- package/dist/selection/native-bridge.js +80 -100
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +31 -14
- package/dist/selection/path-lookup.js +110 -20
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +9 -0
- package/dist/selection/pointer-gesture.js +11 -0
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -33
- package/dist/selection/primitives.js +61 -53
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -19
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +52 -0
- package/dist/selection/selection-drop.js +317 -0
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +75 -53
- package/dist/styles/editor.css +248 -139
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +19 -0
- package/dist/tree-operations/paste/replacement-parse.js +24 -0
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +329 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +267 -183
- package/docs/guide/plugin-guide.md +341 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +17 -21
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/selection/double-click-trim.d.ts +0 -17
- package/dist/selection/double-click-trim.js +0 -57
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -29
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -75
|
@@ -1,97 +1,58 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* The block form's source as DOM, drawn the way a code block draws its own: the fence lines as
|
|
3
|
+
* markers the marker-hiding modes collapse, the body as highlighted LaTeX tokens. It emits exactly
|
|
4
|
+
* the source's text, so the DOM-to-offset traversal stays exact (G1.28). Anything not shaped like
|
|
5
|
+
* a fence paints as plain tokens.
|
|
6
6
|
*/
|
|
7
|
-
import { highlightCode } from '../../plugin';
|
|
7
|
+
import { displayLines, fenceBodyAsDrawn, highlightCode, isBlankText, renderFencedSource, sliceFencedSource } from '../../plugin';
|
|
8
8
|
const FENCE = '$$';
|
|
9
|
+
const unsliced = (text) => ({ opener: '', body: text, closer: '' });
|
|
10
|
+
/** Both block forms are an opener line, a body and a closer line. GitHub's ```math reads as a code
|
|
11
|
+
* fence does; the `$$` form closes on a line that is exactly `$$`, or on line 0 itself. */
|
|
9
12
|
function sliceMathSource(text) {
|
|
10
13
|
if (!text.startsWith(FENCE))
|
|
11
|
-
return
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
return { opener: '', body: text, closer: '' };
|
|
14
|
+
return sliceFencedSource(text) ?? unsliced(text);
|
|
15
|
+
const firstBreak = text.indexOf('\n');
|
|
16
|
+
if (firstBreak === -1) {
|
|
17
|
+
return text.length >= 4 && text.endsWith(FENCE)
|
|
18
|
+
? { opener: FENCE, body: text.slice(2, -2), closer: FENCE }
|
|
19
|
+
: unsliced(text);
|
|
19
20
|
}
|
|
20
|
-
if (text.
|
|
21
|
-
return
|
|
22
|
-
const opener = text.slice(0,
|
|
21
|
+
if (displayLines(text)[0].text !== FENCE)
|
|
22
|
+
return unsliced(text);
|
|
23
|
+
const opener = text.slice(0, firstBreak + 1);
|
|
23
24
|
const rest = text.slice(opener.length);
|
|
24
|
-
const
|
|
25
|
-
const lastLine =
|
|
25
|
+
const lastBreak = rest.lastIndexOf('\n');
|
|
26
|
+
const lastLine = rest.slice(lastBreak + 1);
|
|
26
27
|
if (lastLine !== FENCE)
|
|
27
28
|
return { opener, body: rest, closer: '' };
|
|
28
|
-
|
|
29
|
-
return { opener, body: '', closer: FENCE };
|
|
30
|
-
// The newline before the closer belongs to the closer's line (the code block's rule), so
|
|
31
|
-
// collapsing that line leaves no blank line at the box's edge — unless the body is blank,
|
|
32
|
-
// where that newline IS the one line the caret can sit on.
|
|
33
|
-
const bodyWithEnding = rest.slice(0, lastNewline + 1);
|
|
34
|
-
if (!/\S/.test(bodyWithEnding))
|
|
35
|
-
return { opener, body: bodyWithEnding, closer: FENCE };
|
|
36
|
-
return { opener, body: rest.slice(0, lastNewline), closer: rest.slice(lastNewline) };
|
|
37
|
-
}
|
|
38
|
-
function fenceLine(text) {
|
|
39
|
-
const line = document.createElement('span');
|
|
40
|
-
line.className = 'md-fence-line';
|
|
41
|
-
const marker = document.createElement('span');
|
|
42
|
-
marker.className = 'md-marker md-fence';
|
|
43
|
-
marker.textContent = text.replace(/\n$/, '').replace(/^\n/, '');
|
|
44
|
-
if (text.startsWith('\n'))
|
|
45
|
-
line.appendChild(document.createTextNode('\n'));
|
|
46
|
-
line.appendChild(marker);
|
|
47
|
-
if (text.endsWith('\n'))
|
|
48
|
-
line.appendChild(document.createTextNode('\n'));
|
|
49
|
-
return line;
|
|
29
|
+
return { opener, body: rest.slice(0, lastBreak + 1), closer: lastLine };
|
|
50
30
|
}
|
|
51
31
|
/**
|
|
52
|
-
* Where the body sits inside the block's source. The fence lines
|
|
53
|
-
* a point measured against the rendered equation
|
|
32
|
+
* Where the body sits inside the block's source. The fence lines paint no glyphs of their own,
|
|
33
|
+
* so a point measured against the rendered equation can only name a place inside this span.
|
|
54
34
|
*/
|
|
55
35
|
export function mathBodySpan(text) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return { start: text.length, end: text.length };
|
|
60
|
-
const closer = /(?:\r?\n)?[ \t]*(?:`{3,}|~{3,})[ \t]*\r?\n?$/.exec(text);
|
|
61
|
-
return { start: firstBreak + 1, end: closer ? closer.index : text.length };
|
|
62
|
-
}
|
|
63
|
-
const { opener, body } = sliceMathSource(text);
|
|
64
|
-
return { start: opener.length, end: opener.length + body.length };
|
|
36
|
+
const source = sliceMathSource(text);
|
|
37
|
+
const start = source.opener.length;
|
|
38
|
+
return { start, end: start + fenceBodyAsDrawn(source).length };
|
|
65
39
|
}
|
|
66
|
-
/**
|
|
67
|
-
*
|
|
68
|
-
* for a caret to sit once the fence lines hide, and Backspace has no byte it could mean. The
|
|
69
|
-
* completion every such block takes as its source is revealed: opener, one empty body line,
|
|
70
|
-
* closer, caret on that line. A block that already has a body line, blank or not, is left alone.
|
|
71
|
-
*/
|
|
40
|
+
/** A block with no body line (`$$$$`, `$$\n$$`) has no caret position once the fence lines hide,
|
|
41
|
+
* so it gains one empty body line with the caret on it. */
|
|
72
42
|
export function completeBareMathSource(text) {
|
|
73
43
|
const { opener, body, closer } = sliceMathSource(text);
|
|
74
44
|
if (!opener || !closer)
|
|
75
45
|
return null;
|
|
76
|
-
if (body.includes('\n') || body
|
|
46
|
+
if (body.includes('\n') || !isBlankText(body))
|
|
77
47
|
return null;
|
|
78
|
-
|
|
79
|
-
|
|
48
|
+
// A one-line `$$$$` has no ending of its own to repeat.
|
|
49
|
+
const [openerLine] = displayLines(opener);
|
|
50
|
+
const ending = openerLine.ending || '\n';
|
|
51
|
+
return {
|
|
52
|
+
text: openerLine.text + ending + ending + closer,
|
|
53
|
+
caret: openerLine.text.length + ending.length
|
|
54
|
+
};
|
|
80
55
|
}
|
|
81
56
|
export function renderMathSource(text) {
|
|
82
|
-
|
|
83
|
-
const frag = document.createDocumentFragment();
|
|
84
|
-
if (opener)
|
|
85
|
-
frag.appendChild(fenceLine(opener));
|
|
86
|
-
frag.appendChild(highlightCode(body, 'latex'));
|
|
87
|
-
// An empty last body line has only the hidden closer after it; the anchor gives the caret
|
|
88
|
-
// that line (see `code-renderer.ts`).
|
|
89
|
-
if (closer.startsWith('\n') && body.endsWith('\n')) {
|
|
90
|
-
const anchor = document.createElement('br');
|
|
91
|
-
anchor.dataset.caretAnchor = 'closer';
|
|
92
|
-
frag.appendChild(anchor);
|
|
93
|
-
}
|
|
94
|
-
if (closer)
|
|
95
|
-
frag.appendChild(fenceLine(closer));
|
|
96
|
-
return frag;
|
|
57
|
+
return renderFencedSource(sliceMathSource(text), (body) => highlightCode(body, 'latex'));
|
|
97
58
|
}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `
|
|
3
|
-
*
|
|
4
|
-
* runs unguarded.
|
|
2
|
+
* `katexRenderer` is the one-import way to supply `renderer`; without one, each formula shows its
|
|
3
|
+
* source. The plugin installs this setup once per process, so it runs unguarded.
|
|
5
4
|
*/
|
|
6
5
|
import { type EditorPlugin } from '../../plugin';
|
|
7
6
|
import { type MathRenderer } from './math-renderer';
|
|
8
7
|
import { type MathBlockLayout } from './math-layout';
|
|
9
8
|
export interface LatexPluginOptions {
|
|
10
|
-
renderer
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* `stacked` (preview below), or `source` (no preview). Definition-time, so it is the
|
|
14
|
-
* bare-install default; an editor's `{ plugin, options: { blockLayout } }` entry overrides it
|
|
15
|
-
* per instance. The block's own toggle cycles from whichever applies.
|
|
16
|
-
*/
|
|
9
|
+
renderer?: MathRenderer;
|
|
10
|
+
/** How a `$$` block opens for editing (`math-layout.ts`); an editor's
|
|
11
|
+
* `{ plugin, options: { blockLayout } }` entry overrides it. */
|
|
17
12
|
blockLayout?: MathBlockLayout;
|
|
18
13
|
}
|
|
19
|
-
|
|
14
|
+
/** What one editor reads: the renderer is process-wide, so only the layout varies per editor. */
|
|
15
|
+
export interface LatexEditorOptions {
|
|
16
|
+
blockLayout: MathBlockLayout;
|
|
17
|
+
}
|
|
18
|
+
export declare function latexPlugin(options?: LatexPluginOptions): EditorPlugin;
|
|
@@ -1,25 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `
|
|
3
|
-
*
|
|
4
|
-
* runs unguarded.
|
|
2
|
+
* `katexRenderer` is the one-import way to supply `renderer`; without one, each formula shows its
|
|
3
|
+
* source. The plugin installs this setup once per process, so it runs unguarded.
|
|
5
4
|
*/
|
|
6
|
-
import { definePlugin, registerBlockComponent, defineBlockComponent, declaredPluginKind } from '../../plugin';
|
|
5
|
+
import { definePlugin, registerBlockComponent, defineBlockComponent, declaredPluginKind, registerInsertEntry } from '../../plugin';
|
|
7
6
|
import { registerMathInline, registerMathBlock, MATH_BLOCK, MATH_FENCE } from './latex-kind';
|
|
8
|
-
import {
|
|
7
|
+
import { mathSlot } from './math-renderer';
|
|
9
8
|
import { isMathBlockLayout } from './math-layout';
|
|
10
9
|
import BlockMath from './BlockMath.svelte';
|
|
11
|
-
export function latexPlugin(options) {
|
|
12
|
-
const
|
|
10
|
+
export function latexPlugin(options = {}) {
|
|
11
|
+
const { renderer } = options;
|
|
13
12
|
return definePlugin({
|
|
14
13
|
name: 'latex',
|
|
14
|
+
defaults: {
|
|
15
|
+
blockLayout: isMathBlockLayout(options.blockLayout) ? options.blockLayout : 'split'
|
|
16
|
+
},
|
|
17
|
+
// An unknown layout keeps the default rather than breaking the block.
|
|
18
|
+
parseOptions(raw) {
|
|
19
|
+
const blockLayout = raw?.blockLayout;
|
|
20
|
+
return isMathBlockLayout(blockLayout) ? { blockLayout } : {};
|
|
21
|
+
},
|
|
15
22
|
setup() {
|
|
16
|
-
|
|
23
|
+
mathSlot.set(renderer ? ({ source, display }, { theme }) => renderer(source, { display, theme }) : null);
|
|
17
24
|
registerMathInline();
|
|
18
|
-
// registerMathBlock
|
|
25
|
+
// registerMathBlock also registers the ```math fence kind; both render through BlockMath.
|
|
19
26
|
registerMathBlock();
|
|
20
|
-
const blockMath = defineBlockComponent(BlockMath
|
|
27
|
+
const blockMath = defineBlockComponent(BlockMath);
|
|
21
28
|
registerBlockComponent(declaredPluginKind(MATH_BLOCK), blockMath);
|
|
22
29
|
registerBlockComponent(declaredPluginKind(MATH_FENCE), blockMath);
|
|
30
|
+
registerInsertEntry({
|
|
31
|
+
id: 'math',
|
|
32
|
+
label: 'Math block',
|
|
33
|
+
icon: 'sigma',
|
|
34
|
+
keywords: ['math', 'latex', 'equation', 'tex'],
|
|
35
|
+
markdown: '$$\n\n$$\n'
|
|
36
|
+
});
|
|
23
37
|
}
|
|
24
38
|
});
|
|
25
39
|
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
3
|
-
* it is how a consumer opts into `katex`, an optional peer
|
|
4
|
-
* pulls.
|
|
2
|
+
* The KaTeX adapter behind the `@voithos-labs/aragonite/plugins/latex/renderer` subpath.
|
|
3
|
+
* Importing it is how a consumer opts into `katex`, an optional peer dependency nothing else
|
|
4
|
+
* pulls in.
|
|
5
5
|
*/
|
|
6
6
|
import 'katex/dist/katex.min.css';
|
|
7
|
-
import type
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export declare const katexRenderer: MathRenderer;
|
|
7
|
+
import { type MathRender } from './math-renderer';
|
|
8
|
+
/** `throwOnError: false` paints a malformed formula as `mathErrorNode` rather than throwing.
|
|
9
|
+
* KaTeX draws no colors of its own, so it has no use for the theme. */
|
|
10
|
+
export declare const katexRenderer: (source: string, { display }: {
|
|
11
|
+
display: boolean;
|
|
12
|
+
}) => MathRender;
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
3
|
-
* it is how a consumer opts into `katex`, an optional peer
|
|
4
|
-
* pulls.
|
|
2
|
+
* The KaTeX adapter behind the `@voithos-labs/aragonite/plugins/latex/renderer` subpath.
|
|
3
|
+
* Importing it is how a consumer opts into `katex`, an optional peer dependency nothing else
|
|
4
|
+
* pulls in.
|
|
5
5
|
*/
|
|
6
6
|
import katex from 'katex';
|
|
7
|
-
//
|
|
8
|
-
//
|
|
7
|
+
// Imported here so a consumer wiring the adapter cannot forget it: `htmlAndMathml` emits a
|
|
8
|
+
// `.katex-mathml` accessibility tree this CSS clips to 1px; without it every equation paints twice.
|
|
9
9
|
import 'katex/dist/katex.min.css';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*
|
|
13
|
-
* hover — so a broken formula reads as what the author typed, not as a sentence about it.
|
|
14
|
-
*/
|
|
10
|
+
import { mathErrorNode } from './math-renderer';
|
|
11
|
+
/** `throwOnError: false` paints a malformed formula as `mathErrorNode` rather than throwing.
|
|
12
|
+
* KaTeX draws no colors of its own, so it has no use for the theme. */
|
|
15
13
|
export const katexRenderer = (source, { display }) => {
|
|
16
14
|
const container = document.createElement('span');
|
|
17
15
|
container.innerHTML = katex.renderToString(source, {
|
|
@@ -22,20 +20,7 @@ export const katexRenderer = (source, { display }) => {
|
|
|
22
20
|
const errorSpan = container.querySelector('.katex-error');
|
|
23
21
|
if (errorSpan) {
|
|
24
22
|
const message = (errorSpan.getAttribute('title') ?? 'invalid LaTeX').replace(/^ParseError:\s*/, '');
|
|
25
|
-
return { dom:
|
|
23
|
+
return { dom: mathErrorNode(source, message), error: message };
|
|
26
24
|
}
|
|
27
25
|
return { dom: container };
|
|
28
26
|
};
|
|
29
|
-
function buildErrorNode(source, message) {
|
|
30
|
-
const span = document.createElement('span');
|
|
31
|
-
span.className = 'math-error';
|
|
32
|
-
span.textContent = source;
|
|
33
|
-
span.title = message;
|
|
34
|
-
// Inline style rather than a stylesheet: the span lands inside any prose block, where no
|
|
35
|
-
// plugin sheet is guaranteed to be mounted.
|
|
36
|
-
span.style.color = 'var(--color-error, #d03025)';
|
|
37
|
-
span.style.fontFamily = 'var(--font-code, ui-monospace, monospace)';
|
|
38
|
-
span.style.fontSize = '0.9em';
|
|
39
|
-
span.style.cursor = 'help';
|
|
40
|
-
return span;
|
|
41
|
-
}
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
// Render-primary on the public
|
|
3
|
-
// commit and kind
|
|
4
|
-
// BlockList. Editing swaps in a plugin
|
|
5
|
-
//
|
|
2
|
+
// Render-primary, built on the public API: `createContainerBlock` supplies the metadata
|
|
3
|
+
// commit and the keydown for kind commands, but the body renders the diagram, with no
|
|
4
|
+
// BlockList. Editing swaps in a textarea this plugin owns, whose text commits through the
|
|
5
|
+
// metadata update as one undo entry.
|
|
6
6
|
import { tick } from 'svelte';
|
|
7
7
|
import {
|
|
8
8
|
createContainerBlock,
|
|
9
9
|
getPluginMetadata,
|
|
10
10
|
trimTrailingLineEnding,
|
|
11
11
|
normalizeLineEndings,
|
|
12
|
+
POINTER_GESTURE_ATTR,
|
|
12
13
|
type NodeView
|
|
13
14
|
} from '../../plugin';
|
|
14
15
|
import { joinMermaidBody, type MermaidMetadata } from './mermaid-kind';
|
|
15
|
-
import {
|
|
16
|
+
import { mermaidSlot, type MermaidRenderResult } from './mermaid-renderer';
|
|
16
17
|
|
|
17
18
|
let { node, index, myPath = [] }: { node: NodeView; index: number; myPath?: number[] } = $props();
|
|
18
19
|
|
|
19
20
|
let boxEl: HTMLElement | undefined = $state();
|
|
20
21
|
|
|
21
|
-
// Every
|
|
22
|
-
//
|
|
22
|
+
// Every state has something focusable, the edit textarea included, so a broken or empty
|
|
23
|
+
// diagram is a stop for the arrow keys and a way back in rather than a caret trap.
|
|
23
24
|
function focusSurfaceEl(): HTMLElement | null {
|
|
24
25
|
return (
|
|
25
26
|
boxEl?.querySelector<HTMLElement>('.mermaid-source, .mermaid-viewport, .mermaid-surface') ??
|
|
@@ -32,6 +33,7 @@
|
|
|
32
33
|
updateOwnMetadata,
|
|
33
34
|
handleKeydown,
|
|
34
35
|
moveFocusOut,
|
|
36
|
+
captureScrollPosition,
|
|
35
37
|
getPresentationMode,
|
|
36
38
|
getTheme
|
|
37
39
|
} = createContainerBlock({
|
|
@@ -45,15 +47,15 @@
|
|
|
45
47
|
commandHooks: () => ({ openEdit, openFocusView })
|
|
46
48
|
});
|
|
47
49
|
|
|
48
|
-
// The factory
|
|
49
|
-
//
|
|
50
|
+
// The factory handles whole-block focus, delete, traversal and reorder, and provides the
|
|
51
|
+
// `measurePartialRects` the overlays are painted from: there are no child blocks here.
|
|
50
52
|
export { containerApi };
|
|
51
53
|
|
|
52
54
|
const code = $derived(getPluginMetadata<MermaidMetadata>(node)?.code ?? '');
|
|
53
55
|
const displayCode = $derived(trimTrailingLineEnding(code));
|
|
54
56
|
|
|
55
|
-
// An empty diagram has no picture to draw and
|
|
56
|
-
// the
|
|
57
|
+
// An empty diagram has no picture to draw and mermaid rejects it, so it opens straight into
|
|
58
|
+
// the textarea; reading mode, which writes no bytes, gets a placeholder instead.
|
|
57
59
|
const isEmpty = $derived(displayCode.trim() === '');
|
|
58
60
|
const isReading = $derived(getPresentationMode() === 'reading');
|
|
59
61
|
|
|
@@ -62,15 +64,15 @@
|
|
|
62
64
|
let rendered = $state<MermaidRenderResult | null>(null);
|
|
63
65
|
$effect(() => {
|
|
64
66
|
const current = code;
|
|
65
|
-
// Reading the theme here is what
|
|
66
|
-
// redraw because
|
|
67
|
+
// Reading the theme here is what makes this effect re-run when the theme changes, and
|
|
68
|
+
// it must redraw because mermaid writes colors into the SVG.
|
|
67
69
|
const theme = getTheme();
|
|
68
|
-
if (isEmpty || !
|
|
70
|
+
if (isEmpty || !mermaidSlot.configured) return;
|
|
69
71
|
let stale = false;
|
|
70
|
-
void
|
|
72
|
+
void mermaidSlot.render(current, { theme }).then(async (result) => {
|
|
71
73
|
if (stale) return;
|
|
72
|
-
// A
|
|
73
|
-
// the editor hidden input
|
|
74
|
+
// A redraw replaces only the rendered element, so only focus inside it is handed back:
|
|
75
|
+
// the editor's hidden input and the toolbar are children of the box and survive.
|
|
74
76
|
const hadFocus = focusSurfaceEl()?.contains(document.activeElement) ?? false;
|
|
75
77
|
rendered = result;
|
|
76
78
|
if (hadFocus) {
|
|
@@ -86,7 +88,7 @@
|
|
|
86
88
|
const surfaceState = $derived(
|
|
87
89
|
isEmpty
|
|
88
90
|
? 'empty'
|
|
89
|
-
: !
|
|
91
|
+
: !mermaidSlot.configured
|
|
90
92
|
? 'no-renderer'
|
|
91
93
|
: rendered?.error
|
|
92
94
|
? 'error'
|
|
@@ -142,34 +144,35 @@
|
|
|
142
144
|
const view = createPanZoom();
|
|
143
145
|
const overlayView = createPanZoom();
|
|
144
146
|
|
|
145
|
-
//
|
|
146
|
-
//
|
|
147
|
-
|
|
147
|
+
// Turned on by focus, so an unfocused diagram hijacks neither the page nor the editor's own
|
|
148
|
+
// drag. The markup attribute is written from this one value.
|
|
149
|
+
let gestureArmed = $state(false);
|
|
150
|
+
// The attribute that tells the editor's pointer handling a drag here is the diagram's own.
|
|
151
|
+
const viewportGesture = $derived({ [POINTER_GESTURE_ATTR]: gestureArmed ? '' : undefined });
|
|
152
|
+
const overlayGesture = { [POINTER_GESTURE_ATTR]: '' };
|
|
148
153
|
|
|
149
154
|
function onViewportWheel(e: WheelEvent): void {
|
|
150
|
-
if (!
|
|
155
|
+
if (!gestureArmed || !(e.ctrlKey || e.metaKey)) return;
|
|
151
156
|
e.preventDefault();
|
|
152
157
|
e.stopPropagation();
|
|
153
158
|
view.zoomBy(e.deltaY);
|
|
154
159
|
}
|
|
155
160
|
|
|
156
161
|
function onViewportPointerDown(e: PointerEvent): void {
|
|
157
|
-
// Never preventDefault, so the browser's focus-on-mousedown still lands: the
|
|
158
|
-
// first click focuses, and only a drag on the now-focused block pans.
|
|
159
162
|
e.stopPropagation();
|
|
160
|
-
if (
|
|
163
|
+
if (gestureArmed) view.beginPan(e);
|
|
161
164
|
}
|
|
162
165
|
|
|
163
166
|
function onOverlayWheel(e: WheelEvent): void {
|
|
164
|
-
// A
|
|
165
|
-
//
|
|
167
|
+
// A zoom view of its own with nothing behind it to scroll, so unlike the in-document
|
|
168
|
+
// view a plain wheel zooms.
|
|
166
169
|
e.preventDefault();
|
|
167
170
|
e.stopPropagation();
|
|
168
171
|
overlayView.zoomBy(e.deltaY);
|
|
169
172
|
}
|
|
170
173
|
|
|
171
|
-
//
|
|
172
|
-
// the
|
|
174
|
+
// The viewport and the cards that show no picture answer clicks the same way, so a double
|
|
175
|
+
// click stays the way out of a broken diagram.
|
|
173
176
|
function onSurfacePointerDown(e: PointerEvent): void {
|
|
174
177
|
e.stopPropagation();
|
|
175
178
|
}
|
|
@@ -219,8 +222,11 @@
|
|
|
219
222
|
// there too, so this closes the command path.
|
|
220
223
|
if (isReading) return;
|
|
221
224
|
if (!editing) seedDraft();
|
|
225
|
+
// Captured before the swap: the card reaches its fitted height only after mounting, and
|
|
226
|
+
// a scroll container at the document's end clamps against the short layout in between.
|
|
227
|
+
const restoreScroll = captureScrollPosition();
|
|
222
228
|
editRequested = true;
|
|
223
|
-
void
|
|
229
|
+
void restoreScroll().then(() => textareaEl?.focus({ preventScroll: true }));
|
|
224
230
|
}
|
|
225
231
|
|
|
226
232
|
function cancelEdit(): void {
|
|
@@ -239,10 +245,12 @@
|
|
|
239
245
|
// an untouched CRLF block must not rewrite its bytes on blur.
|
|
240
246
|
if (value === normalizeLineEndings(editSeed)) return;
|
|
241
247
|
const lineEnding = getPluginMetadata<MermaidMetadata>(node)?.openerLineEnding ?? '\n';
|
|
242
|
-
|
|
243
|
-
//
|
|
244
|
-
|
|
245
|
-
|
|
248
|
+
// Only a keyboard commit puts the caret back on the block; a blur commit must not yank
|
|
249
|
+
// focus back from wherever the user clicked.
|
|
250
|
+
updateOwnMetadata(
|
|
251
|
+
{ code: joinMermaidBody(value, lineEnding) },
|
|
252
|
+
refocus ? { caret: { path: [], offset: 0 } } : undefined
|
|
253
|
+
);
|
|
246
254
|
}
|
|
247
255
|
|
|
248
256
|
// Logical lines, not visual: the box carries no editor caret geometry, so the newlines
|
|
@@ -269,8 +277,8 @@
|
|
|
269
277
|
e.preventDefault();
|
|
270
278
|
cancelEdit();
|
|
271
279
|
} else if (atEditBoxEdge(e.key) && moveFocusOut(e)) {
|
|
272
|
-
// Focus leaves the box, so `focusout` commits the
|
|
273
|
-
//
|
|
280
|
+
// Focus leaves the box, so `focusout` commits the text: leaving by arrow key takes
|
|
281
|
+
// the same path as a blur.
|
|
274
282
|
e.preventDefault();
|
|
275
283
|
} else if (e.key === 'Tab') {
|
|
276
284
|
// Escape is the exit, so Tab indents in place. execCommand inserts through the
|
|
@@ -306,7 +314,13 @@
|
|
|
306
314
|
</script>
|
|
307
315
|
|
|
308
316
|
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
309
|
-
<div
|
|
317
|
+
<div
|
|
318
|
+
class="mermaid-block"
|
|
319
|
+
bind:this={boxEl}
|
|
320
|
+
onkeydown={handleKeydown}
|
|
321
|
+
onfocusin={() => (gestureArmed = true)}
|
|
322
|
+
onfocusout={(e) => (gestureArmed = boxEl?.contains(e.relatedTarget as Node | null) ?? false)}
|
|
323
|
+
>
|
|
310
324
|
{#if editing}
|
|
311
325
|
<textarea
|
|
312
326
|
bind:this={textareaEl}
|
|
@@ -330,6 +344,7 @@
|
|
|
330
344
|
<!-- svelte-ignore a11y_no_noninteractive_tabindex -->
|
|
331
345
|
<div
|
|
332
346
|
class="mermaid-viewport"
|
|
347
|
+
{...viewportGesture}
|
|
333
348
|
tabindex="0"
|
|
334
349
|
role="img"
|
|
335
350
|
aria-label="Mermaid diagram"
|
|
@@ -345,8 +360,8 @@
|
|
|
345
360
|
</div>
|
|
346
361
|
</div>
|
|
347
362
|
{:else}
|
|
348
|
-
<!-- {#key}
|
|
349
|
-
|
|
363
|
+
<!-- {#key} remounts once per state: a change of state replaces the element, and
|
|
364
|
+
its focus and blur timing with it. -->
|
|
350
365
|
{#key surfaceState}
|
|
351
366
|
<!-- svelte-ignore a11y_no_noninteractive_tabindex -->
|
|
352
367
|
<div
|
|
@@ -358,7 +373,7 @@
|
|
|
358
373
|
ondblclick={onSurfaceDblClick}
|
|
359
374
|
>
|
|
360
375
|
{#if surfaceState === 'empty'}
|
|
361
|
-
<!-- Reading mode only: everywhere else an empty diagram
|
|
376
|
+
<!-- Reading mode only: everywhere else an empty diagram opens its textarea. -->
|
|
362
377
|
<div class="mermaid-empty">Empty diagram</div>
|
|
363
378
|
{:else if surfaceState === 'no-renderer'}
|
|
364
379
|
<pre class="mermaid-static">{displayCode}</pre>
|
|
@@ -392,6 +407,7 @@
|
|
|
392
407
|
</div>
|
|
393
408
|
<div
|
|
394
409
|
class="mermaid-overlay-viewport"
|
|
410
|
+
{...overlayGesture}
|
|
395
411
|
onwheel={onOverlayWheel}
|
|
396
412
|
onpointerdown={(e) => {
|
|
397
413
|
e.stopPropagation();
|
|
@@ -432,8 +448,8 @@
|
|
|
432
448
|
background: var(--color-bg-secondary, rgba(128, 128, 128, 0.12));
|
|
433
449
|
}
|
|
434
450
|
|
|
435
|
-
/*
|
|
436
|
-
|
|
451
|
+
/* Shown on hover or focus so the diagram has no buttons over it at rest, following
|
|
452
|
+
SearchBar's raised panel and plain buttons. */
|
|
437
453
|
.mermaid-toolbar {
|
|
438
454
|
position: absolute;
|
|
439
455
|
top: 6px;
|
|
@@ -457,7 +473,7 @@
|
|
|
457
473
|
pointer-events: auto;
|
|
458
474
|
}
|
|
459
475
|
|
|
460
|
-
/* Reading mode drops the edit
|
|
476
|
+
/* Reading mode drops the edit button; Focus and Reset only change the view, so they stay. */
|
|
461
477
|
:global([data-presentation='reading']) .mermaid-toolbar :global([data-testid='mermaid-edit']) {
|
|
462
478
|
display: none;
|
|
463
479
|
}
|
|
@@ -492,8 +508,8 @@
|
|
|
492
508
|
outline: none;
|
|
493
509
|
}
|
|
494
510
|
|
|
495
|
-
/* Only a focused block pans, so only then does the viewport
|
|
496
|
-
`:focus-within
|
|
511
|
+
/* Only a focused block pans, so only then does the viewport show the grab cursor.
|
|
512
|
+
`:focus-within`, because whole-block focus goes to the editor's hidden input beside it. */
|
|
497
513
|
.mermaid-block:focus-within .mermaid-viewport {
|
|
498
514
|
cursor: grab;
|
|
499
515
|
}
|
|
@@ -504,8 +520,8 @@
|
|
|
504
520
|
justify-content: center;
|
|
505
521
|
}
|
|
506
522
|
|
|
507
|
-
/*
|
|
508
|
-
fit-to-content effect; `overflow-y: hidden`
|
|
523
|
+
/* Only the differences from the shared .md-source-surface (editor.css). Height is written by
|
|
524
|
+
the fit-to-content effect; `overflow-y: hidden` lets the box grow rather than scroll. */
|
|
509
525
|
.mermaid-source {
|
|
510
526
|
padding: 8px;
|
|
511
527
|
overflow-y: hidden;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The worked example of a whole-block container, using public registration only: an opaque
|
|
3
3
|
* container with no children, its diagram code in typed metadata, so an
|
|
4
|
-
* `updateOwnMetadata({ code })` commit is the whole edit path.
|
|
4
|
+
* `updateOwnMetadata({ code })` commit is the whole edit path. Uninstalling is safe by
|
|
5
5
|
* construction: without this opener the same bytes parse as plain `fencedCode`.
|
|
6
6
|
*/
|
|
7
7
|
import { type CstNode } from '../../plugin';
|
|
@@ -25,11 +25,8 @@ export interface MermaidMetadata {
|
|
|
25
25
|
* ending put back on every body line. An emptied body commits as `''`, no stray line.
|
|
26
26
|
*/
|
|
27
27
|
export declare function joinMermaidBody(draft: string, lineEnding: string): string;
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
* this kind never re-parses, so the fence is sized against it here — a diagram line that reads as
|
|
31
|
-
* this block's closer would otherwise truncate the block on its next load.
|
|
32
|
-
*/
|
|
28
|
+
/** The opener's inverse, which every code edit goes through; the fence is sized against the body
|
|
29
|
+
* here, since a diagram line reading as the closer would cut the block short on reload. */
|
|
33
30
|
export declare function rebuildMermaidRaw(node: CstNode): void;
|
|
34
31
|
export interface MermaidUiHooks {
|
|
35
32
|
openEdit(): void;
|