@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,152 +1,148 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Link reference definition parser, CommonMark §4.7 (`[label]: url "title"
|
|
3
|
-
*
|
|
2
|
+
* Link reference definition parser, CommonMark §4.7 (`[label]: url "title"`). The label,
|
|
3
|
+
* destination and title are read by the link grammar in `inline/link-destination.ts`, and may
|
|
4
|
+
* continue on the lines after the first that a paragraph would absorb. Footnote labels
|
|
5
|
+
* (`[^...]:`) stay paragraphs.
|
|
4
6
|
*/
|
|
5
|
-
import {
|
|
7
|
+
import { isBlankLine, isWhitespaceChar } from '../lines';
|
|
6
8
|
import { joinRaw } from '../parser';
|
|
9
|
+
import { linkTitleValue, parseLinkDestination, scanLinkTitle, scanLinkLabel, SPAN_OPEN } from '../inline/link-destination';
|
|
7
10
|
import { lineInterruptsParagraph } from '../../schema/block-openers';
|
|
8
11
|
import { matchSetextUnderline } from './paragraph';
|
|
9
12
|
export function parseLinkReferenceDefinition(lines, startIndex, endIndex, leadingTrivia) {
|
|
10
|
-
const
|
|
11
|
-
|
|
13
|
+
const labelStart = labelOpenerOffset(lines[startIndex].text);
|
|
14
|
+
if (labelStart < 0)
|
|
15
|
+
return null;
|
|
16
|
+
const window = new DefinitionWindow(lines, startIndex, endIndex);
|
|
17
|
+
const opener = readLabel(window, labelStart);
|
|
12
18
|
if (!opener)
|
|
13
19
|
return null;
|
|
14
20
|
const { label, afterColon } = opener;
|
|
15
21
|
if (label.startsWith('^'))
|
|
16
22
|
return null;
|
|
17
|
-
|
|
18
|
-
const destination =
|
|
23
|
+
const destStart = skipSeparator(window, afterColon);
|
|
24
|
+
const destination = parseLinkDestination(window.text, destStart, window.text.length);
|
|
19
25
|
if (!destination)
|
|
20
26
|
return null;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
// §4.7: non-whitespace after the destination that isn't a well-formed title on its own line
|
|
28
|
+
// end means there is no definition; a title that fails on a later line leaves it untitled.
|
|
29
|
+
let lastOffset = -1;
|
|
30
|
+
let title;
|
|
31
|
+
const titleStart = skipSeparator(window, destination.end);
|
|
32
|
+
if (titleStart > destination.end) {
|
|
33
|
+
const titleEnd = readSpan(window, titleStart, scanLinkTitle);
|
|
34
|
+
if (titleEnd >= 0 && atLineEnd(window.text, titleEnd)) {
|
|
35
|
+
lastOffset = titleEnd;
|
|
36
|
+
title = linkTitleValue(window.text, titleStart, titleEnd);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (lastOffset < 0) {
|
|
40
|
+
if (!atLineEnd(window.text, destination.end))
|
|
41
|
+
return null;
|
|
42
|
+
lastOffset = destination.end;
|
|
43
|
+
}
|
|
44
|
+
const endLine = window.lineAt(lastOffset) + 1;
|
|
34
45
|
return {
|
|
35
46
|
node: {
|
|
36
47
|
kind: 'linkReferenceDefinition',
|
|
37
48
|
leadingTrivia,
|
|
38
|
-
raw,
|
|
49
|
+
raw: joinRaw(lines, startIndex, endLine),
|
|
39
50
|
metadata: {
|
|
40
51
|
label,
|
|
41
|
-
url,
|
|
52
|
+
url: destination.url,
|
|
42
53
|
...(title !== undefined ? { title } : {})
|
|
43
54
|
}
|
|
44
55
|
},
|
|
45
|
-
consumed:
|
|
56
|
+
consumed: endLine - startIndex
|
|
46
57
|
};
|
|
47
58
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
// unescaped-`[` rejection are out of scope for this line-oriented parser.
|
|
75
|
-
function matchLabelOpener(line) {
|
|
76
|
-
let i = 0;
|
|
77
|
-
while (i < line.length && i < 3 && line[i] === ' ')
|
|
78
|
-
i++;
|
|
79
|
-
if (line[i] !== '[')
|
|
80
|
-
return null;
|
|
81
|
-
const labelStart = i + 1;
|
|
82
|
-
let j = labelStart;
|
|
83
|
-
while (j < line.length) {
|
|
84
|
-
const ch = line[j];
|
|
85
|
-
if (ch === '\\' && j + 1 < line.length && ESCAPABLE_PUNCTUATION.has(line[j + 1])) {
|
|
86
|
-
j += 2;
|
|
87
|
-
continue;
|
|
59
|
+
// ── The lines a definition can span ─────────────────────────────────────────
|
|
60
|
+
/** The definition's first line plus each later line a paragraph would continue onto, joined by
|
|
61
|
+
* `\n` without leading whitespace (§4.7); a line joins only when a read runs off the end. */
|
|
62
|
+
class DefinitionWindow {
|
|
63
|
+
lines;
|
|
64
|
+
startIndex;
|
|
65
|
+
endIndex;
|
|
66
|
+
text;
|
|
67
|
+
/** Offset in `text` where each joined line ends. */
|
|
68
|
+
lineEnds;
|
|
69
|
+
next;
|
|
70
|
+
constructor(lines, startIndex, endIndex) {
|
|
71
|
+
this.lines = lines;
|
|
72
|
+
this.startIndex = startIndex;
|
|
73
|
+
this.endIndex = endIndex;
|
|
74
|
+
this.text = lines[startIndex].text;
|
|
75
|
+
this.lineEnds = [this.text.length];
|
|
76
|
+
this.next = startIndex + 1;
|
|
77
|
+
}
|
|
78
|
+
/** Joins the next line if a paragraph would continue onto it. */
|
|
79
|
+
grow() {
|
|
80
|
+
if (this.next >= this.endIndex)
|
|
81
|
+
return false;
|
|
82
|
+
const line = this.lines[this.next].text;
|
|
83
|
+
if (isBlankLine(line) || lineInterruptsParagraph(line) || matchSetextUnderline(line)) {
|
|
84
|
+
return false;
|
|
88
85
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
this.text += '\n' + line.replace(/^[ \t]+/, '');
|
|
87
|
+
this.lineEnds.push(this.text.length);
|
|
88
|
+
this.next++;
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
/** The index into `lines` of the joined line holding `offset`. */
|
|
92
|
+
lineAt(offset) {
|
|
93
|
+
let i = 0;
|
|
94
|
+
while (this.lineEnds[i] < offset)
|
|
95
|
+
i++;
|
|
96
|
+
return this.startIndex + i;
|
|
92
97
|
}
|
|
93
|
-
if (j >= line.length || line[j] !== ']')
|
|
94
|
-
return null;
|
|
95
|
-
if (j + 1 >= line.length || line[j + 1] !== ':')
|
|
96
|
-
return null;
|
|
97
|
-
const label = line.slice(labelStart, j);
|
|
98
|
-
// §4.7: a label holds at least one non-whitespace character.
|
|
99
|
-
if (label.trim() === '')
|
|
100
|
-
return null;
|
|
101
|
-
return { label, afterColon: line.slice(j + 2) };
|
|
102
98
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if (
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
99
|
+
/** Skips spaces and tabs with at most one line ending among them, joining that next line. */
|
|
100
|
+
function skipSeparator(window, pos) {
|
|
101
|
+
pos = skipSpaces(window.text, pos);
|
|
102
|
+
if (pos === window.text.length && !window.grow())
|
|
103
|
+
return pos;
|
|
104
|
+
return window.text[pos] === '\n' ? skipSpaces(window.text, pos + 1) : pos;
|
|
105
|
+
}
|
|
106
|
+
/** The end of the label or title opening at `pos`, joining lines until it closes, or a miss. */
|
|
107
|
+
function readSpan(window, pos, scan) {
|
|
108
|
+
let from = pos + 1;
|
|
109
|
+
for (;;) {
|
|
110
|
+
const spanEnd = scan(window.text, pos, window.text.length, from);
|
|
111
|
+
if (spanEnd !== SPAN_OPEN)
|
|
112
|
+
return spanEnd;
|
|
113
|
+
from = window.text.length;
|
|
114
|
+
if (!window.grow())
|
|
115
|
+
return -1;
|
|
111
116
|
}
|
|
112
|
-
const m = s.match(/^(\S+)/);
|
|
113
|
-
if (!m)
|
|
114
|
-
return null;
|
|
115
|
-
return { url: m[1], consumed: m[1].length };
|
|
116
117
|
}
|
|
117
|
-
|
|
118
|
-
function
|
|
119
|
-
|
|
120
|
-
if (
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
if (close === -1)
|
|
124
|
-
return null;
|
|
125
|
-
return { title: s.slice(1, close), consumed: close + 1 };
|
|
118
|
+
// The document's last line can end in a lone `\r`, which the line splitter leaves in its text.
|
|
119
|
+
function atLineEnd(text, pos) {
|
|
120
|
+
pos = skipSpaces(text, pos);
|
|
121
|
+
if (text[pos] === '\r')
|
|
122
|
+
pos++;
|
|
123
|
+
return pos === text.length || text[pos] === '\n';
|
|
126
124
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
return null;
|
|
132
|
-
return stripLeadingSpaces(s.slice(t.consumed)).length === 0 ? { title: t.title } : null;
|
|
125
|
+
function skipSpaces(text, pos) {
|
|
126
|
+
while (text[pos] === ' ' || text[pos] === '\t')
|
|
127
|
+
pos++;
|
|
128
|
+
return pos;
|
|
133
129
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
return {
|
|
130
|
+
// ── Label ───────────────────────────────────────────────────────────────────
|
|
131
|
+
/** Where the definition's `[` sits, up to three spaces in, or -1. */
|
|
132
|
+
function labelOpenerOffset(line) {
|
|
133
|
+
let pos = 0;
|
|
134
|
+
while (pos < 3 && line[pos] === ' ')
|
|
135
|
+
pos++;
|
|
136
|
+
return line[pos] === '[' ? pos : -1;
|
|
137
|
+
}
|
|
138
|
+
/** The label opening at `pos` and the offset past its `]:`. */
|
|
139
|
+
function readLabel(window, pos) {
|
|
140
|
+
const labelEnd = readSpan(window, pos, scanLinkLabel);
|
|
141
|
+
if (labelEnd < 0 || window.text[labelEnd] !== ':')
|
|
142
|
+
return null;
|
|
143
|
+
const label = window.text.slice(pos + 1, labelEnd - 1);
|
|
144
|
+
// §6.6: a label holds at least one non-whitespace character, in §2.1's ASCII sense.
|
|
145
|
+
if ([...label].every(isWhitespaceChar))
|
|
146
|
+
return null;
|
|
147
|
+
return { label, afterColon: labelEnd + 1 };
|
|
152
148
|
}
|
|
@@ -4,16 +4,23 @@
|
|
|
4
4
|
* only the item's own top-level paragraph, never one open inside a nested sub-list.
|
|
5
5
|
*/
|
|
6
6
|
import { type ParsedLine } from '../lines';
|
|
7
|
-
import { type BlockOpenerResult } from '../../schema/block-openers';
|
|
7
|
+
import { type BlockOpenerResult, type GrammarView } from '../../schema/block-openers';
|
|
8
8
|
export declare function matchListItem(text: string): {
|
|
9
9
|
marker: string;
|
|
10
10
|
ordered: boolean;
|
|
11
11
|
indent: number;
|
|
12
12
|
} | null;
|
|
13
|
+
/** A marker line with nothing after the marker. The gap is required: a bare `-` opens no list. */
|
|
14
|
+
export declare function isContentlessItemLine(text: string): boolean;
|
|
13
15
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* Standalone list parsing (`matchListItem`) accepts both.
|
|
16
|
+
* The task marker at the start of `text`, the one reading of its extent: the box, then spaces or
|
|
17
|
+
* tabs. Never a line ending, so a CRLF line's `\r` stays with the line's ending.
|
|
17
18
|
*/
|
|
19
|
+
export declare function matchTaskCheckbox(text: string): {
|
|
20
|
+
checked: boolean;
|
|
21
|
+
rawMarker: string;
|
|
22
|
+
} | null;
|
|
23
|
+
/** CommonMark §5.2: a marker interrupts a paragraph only as a bullet or at `1`, with a non-empty
|
|
24
|
+
* first item, so "... is 2. bananas" is no list. `matchListItem` accepts both. */
|
|
18
25
|
export declare function canInterruptParagraph(text: string): boolean;
|
|
19
|
-
export declare function parseList(lines: ParsedLine[], startIndex: number, endIndex: number, leadingTrivia: string, depth?: number, isDocumentParse?: boolean): BlockOpenerResult;
|
|
26
|
+
export declare function parseList(lines: ParsedLine[], startIndex: number, endIndex: number, leadingTrivia: string, grammar: GrammarView, depth?: number, isDocumentParse?: boolean): BlockOpenerResult;
|
|
@@ -3,11 +3,22 @@
|
|
|
3
3
|
* line (non-blank, not a paragraph interrupter), as in the blockquote parser. Laziness reaches
|
|
4
4
|
* only the item's own top-level paragraph, never one open inside a nested sub-list.
|
|
5
5
|
*/
|
|
6
|
-
import { remapStrippedLines } from '../lines';
|
|
6
|
+
import { indentColumns, remapStrippedLines, stripIndentColumns } from '../lines';
|
|
7
7
|
import { joinRaw, isBlankLine, parseBlocks } from '../parser';
|
|
8
|
-
import {
|
|
8
|
+
import { lineInterruptsParagraph, lineStartsOuterBlock } from '../../schema/block-openers';
|
|
9
|
+
// ── List markers ─────────────────────────────────────────────────────────────
|
|
10
|
+
// GFM §5.2: a marker, then spaces or tabs. A non-breaking space after the marker is content, so
|
|
11
|
+
// that line opens no item.
|
|
12
|
+
const BULLET = '[-*+]';
|
|
13
|
+
const withDelimiter = (digits) => `${digits}[.)]`;
|
|
14
|
+
const MARKER = `(?:${BULLET}|${withDelimiter('\\d{1,9}')})`;
|
|
15
|
+
const GAP = '[ \\t]+';
|
|
16
|
+
const ITEM_START = new RegExp(`^( {0,3})(${MARKER}${GAP})`);
|
|
17
|
+
const CONTENTLESS_ITEM = new RegExp(`^ {0,3}${MARKER}${GAP}$`);
|
|
18
|
+
// Content after the gap: neither a space or tab nor a line ending the splitter left on the line.
|
|
19
|
+
const INTERRUPTING_ITEM = new RegExp(`^ {0,3}(?:${BULLET}|${withDelimiter('1')})${GAP}[^ \\t\\r\\n]`);
|
|
9
20
|
export function matchListItem(text) {
|
|
10
|
-
const m = text.match(
|
|
21
|
+
const m = text.match(ITEM_START);
|
|
11
22
|
if (!m)
|
|
12
23
|
return null;
|
|
13
24
|
return {
|
|
@@ -16,19 +27,24 @@ export function matchListItem(text) {
|
|
|
16
27
|
indent: m[0].length
|
|
17
28
|
};
|
|
18
29
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return
|
|
30
|
+
/** A marker line with nothing after the marker. The gap is required: a bare `-` opens no list. */
|
|
31
|
+
export function isContentlessItemLine(text) {
|
|
32
|
+
return CONTENTLESS_ITEM.test(text);
|
|
22
33
|
}
|
|
23
34
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* Standalone list parsing (`matchListItem`) accepts both.
|
|
35
|
+
* The task marker at the start of `text`, the one reading of its extent: the box, then spaces or
|
|
36
|
+
* tabs. Never a line ending, so a CRLF line's `\r` stays with the line's ending.
|
|
27
37
|
*/
|
|
38
|
+
export function matchTaskCheckbox(text) {
|
|
39
|
+
const m = text.match(/^\[( |x|X)\][ \t]+/);
|
|
40
|
+
return m ? { checked: m[1].toLowerCase() === 'x', rawMarker: m[0] } : null;
|
|
41
|
+
}
|
|
42
|
+
/** CommonMark §5.2: a marker interrupts a paragraph only as a bullet or at `1`, with a non-empty
|
|
43
|
+
* first item, so "... is 2. bananas" is no list. `matchListItem` accepts both. */
|
|
28
44
|
export function canInterruptParagraph(text) {
|
|
29
|
-
return
|
|
45
|
+
return INTERRUPTING_ITEM.test(text);
|
|
30
46
|
}
|
|
31
|
-
export function parseList(lines, startIndex, endIndex, leadingTrivia, depth = 0, isDocumentParse = false) {
|
|
47
|
+
export function parseList(lines, startIndex, endIndex, leadingTrivia, grammar, depth = 0, isDocumentParse = false) {
|
|
32
48
|
const firstMatch = matchListItem(lines[startIndex].text);
|
|
33
49
|
const ordered = firstMatch.ordered;
|
|
34
50
|
const items = [];
|
|
@@ -42,27 +58,30 @@ export function parseList(lines, startIndex, endIndex, leadingTrivia, depth = 0,
|
|
|
42
58
|
// The marker line strips to its content; a paragraph is open unless that content opens a block.
|
|
43
59
|
let paragraphOpen = wouldKeepParagraphOpen(lines[i].text.slice(contentIndent));
|
|
44
60
|
i++;
|
|
45
|
-
//
|
|
61
|
+
// Any line indented to the content column belongs to the body, a whitespace-only one too; a
|
|
62
|
+
// run of bare blank lines is taken in only when such a line follows it.
|
|
46
63
|
while (i < endIndex) {
|
|
47
|
-
if (
|
|
64
|
+
if (indentColumns(lines[i].text) >= contentIndent) {
|
|
65
|
+
paragraphOpen = wouldKeepParagraphOpen(stripIndentColumns(lines[i].text, contentIndent));
|
|
66
|
+
i++;
|
|
67
|
+
}
|
|
68
|
+
else if (isBlankLine(lines[i].text)) {
|
|
48
69
|
let j = i;
|
|
49
|
-
while (j < endIndex &&
|
|
70
|
+
while (j < endIndex &&
|
|
71
|
+
isBlankLine(lines[j].text) &&
|
|
72
|
+
indentColumns(lines[j].text) < contentIndent) {
|
|
50
73
|
j++;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
i = j
|
|
74
|
+
}
|
|
75
|
+
if (j < endIndex && indentColumns(lines[j].text) >= contentIndent) {
|
|
76
|
+
i = j;
|
|
54
77
|
}
|
|
55
78
|
else {
|
|
56
79
|
break;
|
|
57
80
|
}
|
|
58
81
|
}
|
|
59
|
-
else if (getIndent(lines[i].text) >= contentIndent) {
|
|
60
|
-
paragraphOpen = wouldKeepParagraphOpen(lines[i].text.slice(contentIndent));
|
|
61
|
-
i++;
|
|
62
|
-
}
|
|
63
82
|
else if (paragraphOpen &&
|
|
64
83
|
wouldKeepParagraphOpen(lines[i].text) &&
|
|
65
|
-
!lineStartsOuterBlock(lines[i], { paragraphOpen: true })) {
|
|
84
|
+
!lineStartsOuterBlock(lines[i], { paragraphOpen: true, grammar })) {
|
|
66
85
|
// Lazy continuation: the verbatim bytes stay in raw, and stripListItemLines
|
|
67
86
|
// feeds the paragraph parser one continuous paragraph.
|
|
68
87
|
i++;
|
|
@@ -73,12 +92,18 @@ export function parseList(lines, startIndex, endIndex, leadingTrivia, depth = 0,
|
|
|
73
92
|
}
|
|
74
93
|
const itemRaw = joinRaw(lines, itemStartIndex, i);
|
|
75
94
|
const baseLines = stripListItemLines(lines, itemStartIndex, i, contentIndent);
|
|
76
|
-
// A leading `[ ] ` is the task marker
|
|
95
|
+
// A leading `[ ] ` is the task marker, and the rest of its line starts the item's paragraph
|
|
96
|
+
// (GFM task lists). The lines are rebuilt so body offsets match the stripped bytes.
|
|
77
97
|
const task = matchTaskCheckbox(baseLines.length > 0 ? baseLines[0].text : '');
|
|
78
98
|
const strippedLines = task
|
|
79
99
|
? remapStrippedLines(baseLines, (line, index) => index === 0 ? line.text.slice(task.rawMarker.length) : line.text)
|
|
80
100
|
: baseLines;
|
|
81
|
-
const inner = parseBlocks(strippedLines, 0, strippedLines.length,
|
|
101
|
+
const inner = parseBlocks(strippedLines, 0, strippedLines.length, {
|
|
102
|
+
grammar,
|
|
103
|
+
scope: isDocumentParse ? 'document' : 'fragment',
|
|
104
|
+
depth: depth + 1,
|
|
105
|
+
firstLineIsParagraph: task !== null
|
|
106
|
+
});
|
|
82
107
|
items.push({
|
|
83
108
|
kind: 'listItem',
|
|
84
109
|
leadingTrivia: '',
|
|
@@ -108,14 +133,8 @@ export function parseList(lines, startIndex, endIndex, leadingTrivia, depth = 0,
|
|
|
108
133
|
consumed: i - startIndex
|
|
109
134
|
};
|
|
110
135
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Lazy continuation extends only an open paragraph. Any list marker is block-level, resolved
|
|
116
|
-
* by the outer item loop, so an ordered marker not starting at 1 is excluded here even though
|
|
117
|
-
* §5.2 says it cannot interrupt a paragraph.
|
|
118
|
-
*/
|
|
136
|
+
/** Lazy continuation extends only an open paragraph. Every list marker is left to the item loop, so
|
|
137
|
+
* an ordered marker not at 1 is excluded here too. */
|
|
119
138
|
function wouldKeepParagraphOpen(strippedText) {
|
|
120
139
|
if (isBlankLine(strippedText))
|
|
121
140
|
return false;
|
|
@@ -125,9 +144,7 @@ function wouldKeepParagraphOpen(strippedText) {
|
|
|
125
144
|
return false;
|
|
126
145
|
return true;
|
|
127
146
|
}
|
|
147
|
+
/** The marker line loses its marker; every later line up to `contentIndent` columns. */
|
|
128
148
|
function stripListItemLines(lines, startIndex, endIndex, contentIndent) {
|
|
129
|
-
return remapStrippedLines(lines.slice(startIndex, endIndex), (line, i) =>
|
|
130
|
-
const stripCount = i === 0 ? contentIndent : Math.min(getIndent(line.text), contentIndent);
|
|
131
|
-
return line.text.slice(stripCount);
|
|
132
|
-
});
|
|
149
|
+
return remapStrippedLines(lines.slice(startIndex, endIndex), (line, i) => i === 0 ? line.text.slice(contentIndent) : stripIndentColumns(line.text, contentIndent));
|
|
133
150
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Paragraph fallback. Owns setext-heading and table detection too: both emerge from
|
|
3
3
|
* paragraph continuation (next-line lookahead), not from their own top-level matchers.
|
|
4
4
|
*/
|
|
5
|
-
import type
|
|
6
|
-
import { type BlockOpenerResult } from '../../schema/block-openers';
|
|
7
|
-
export declare function parseParagraph(lines: ParsedLine[], startIndex: number, endIndex: number, leadingTrivia: string): BlockOpenerResult;
|
|
5
|
+
import { type ParsedLine } from '../lines';
|
|
6
|
+
import { type BlockOpenerResult, type GrammarView } from '../../schema/block-openers';
|
|
7
|
+
export declare function parseParagraph(lines: ParsedLine[], startIndex: number, endIndex: number, leadingTrivia: string, grammar: GrammarView): BlockOpenerResult;
|
|
8
8
|
export declare function matchSetextUnderline(text: string): {
|
|
9
9
|
level: 1 | 2;
|
|
10
10
|
} | null;
|
|
@@ -2,23 +2,30 @@
|
|
|
2
2
|
* Paragraph fallback. Owns setext-heading and table detection too: both emerge from
|
|
3
3
|
* paragraph continuation (next-line lookahead), not from their own top-level matchers.
|
|
4
4
|
*/
|
|
5
|
+
import { OPTIONAL_LINE_ENDING } from '../lines';
|
|
5
6
|
import { joinRaw, isBlankLine } from '../parser';
|
|
6
7
|
import { lineInterruptsParagraph } from '../../schema/block-openers';
|
|
7
8
|
import { matchTableDelimiterRow, parseTable, tableHeaderCells } from './table';
|
|
8
|
-
|
|
9
|
+
import { matchThematicBreak } from './thematic-break';
|
|
10
|
+
export function parseParagraph(lines, startIndex, endIndex, leadingTrivia, grammar) {
|
|
9
11
|
if (startIndex + 1 < endIndex) {
|
|
10
12
|
const delimiter = matchTableDelimiterRow(lines[startIndex + 1].text);
|
|
11
13
|
const header = tableHeaderCells(lines[startIndex].text);
|
|
12
14
|
// GFM §4.10: a header/delimiter count mismatch is no table; accepting it would
|
|
13
15
|
// truncate surplus header cells out of the model.
|
|
14
16
|
if (delimiter && header && header.length === delimiter.columnCount) {
|
|
15
|
-
return parseTable(lines, startIndex, endIndex, leadingTrivia, delimiter);
|
|
17
|
+
return parseTable(lines, startIndex, endIndex, leadingTrivia, delimiter, grammar);
|
|
16
18
|
}
|
|
17
19
|
}
|
|
18
20
|
let i = startIndex + 1;
|
|
19
21
|
while (i < endIndex && !isBlankLine(lines[i].text) && !lineInterruptsParagraph(lines[i].text)) {
|
|
20
22
|
const setext = matchSetextUnderline(lines[i].text);
|
|
21
|
-
|
|
23
|
+
// With setext headings off, `---` is the thematic break GFM reads once setext is out.
|
|
24
|
+
if (setext && !grammar.setextHeading) {
|
|
25
|
+
if (matchThematicBreak(lines[i].text))
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
else if (setext) {
|
|
22
29
|
const raw = joinRaw(lines, startIndex, i + 1);
|
|
23
30
|
return {
|
|
24
31
|
node: { kind: 'setextHeading', leadingTrivia, raw, metadata: { level: setext.level } },
|
|
@@ -33,10 +40,12 @@ export function parseParagraph(lines, startIndex, endIndex, leadingTrivia) {
|
|
|
33
40
|
consumed: i - startIndex
|
|
34
41
|
};
|
|
35
42
|
}
|
|
43
|
+
const SETEXT_1 = new RegExp(`^ {0,3}=+[ \\t]*${OPTIONAL_LINE_ENDING}$`);
|
|
44
|
+
const SETEXT_2 = new RegExp(`^ {0,3}-+[ \\t]*${OPTIONAL_LINE_ENDING}$`);
|
|
36
45
|
export function matchSetextUnderline(text) {
|
|
37
|
-
if (
|
|
46
|
+
if (SETEXT_1.test(text))
|
|
38
47
|
return { level: 1 };
|
|
39
|
-
if (
|
|
48
|
+
if (SETEXT_2.test(text))
|
|
40
49
|
return { level: 2 };
|
|
41
50
|
return null;
|
|
42
51
|
}
|
|
@@ -4,10 +4,7 @@
|
|
|
4
4
|
* `core/parser.ts`, the guaranteed load path the built-in openers already ride.
|
|
5
5
|
*/
|
|
6
6
|
import { type CompletionResult } from '../../schema/block-completions';
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* which the scan alone would take as a two-cell header. The predicate stays the outer bound — a
|
|
10
|
-
* row it rejects never completes.
|
|
11
|
-
*/
|
|
7
|
+
/** Requires a leading pipe on top of the row predicate, since prose carries pipes too
|
|
8
|
+
* (`ls | grep foo`); a row the predicate rejects never completes. */
|
|
12
9
|
export declare function tryCompleteTableRow(line: string): CompletionResult | null;
|
|
13
10
|
export declare function registerTableCompleter(): void;
|
|
@@ -3,20 +3,17 @@
|
|
|
3
3
|
* canonical delimiter row and one empty body row, caret in the first body cell. Registered from
|
|
4
4
|
* `core/parser.ts`, the guaranteed load path the built-in openers already ride.
|
|
5
5
|
*/
|
|
6
|
-
import { trimTrailingLineEnding } from '../lines';
|
|
6
|
+
import { trimTrailingLineEnding, trimWhitespace } from '../lines';
|
|
7
7
|
import { registerBlockCompleter } from '../../schema/block-completions';
|
|
8
8
|
import { writeTableRow } from '../../schema/container-rebuilders';
|
|
9
9
|
import { tableHeaderCells } from './table';
|
|
10
|
-
// `parseTable`
|
|
10
|
+
// `parseTable` puts the header at child 0 and synthesizes the delimiter from metadata, so the
|
|
11
11
|
// first body row is child 1.
|
|
12
12
|
const FIRST_BODY_CELL = [1, 0];
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* which the scan alone would take as a two-cell header. The predicate stays the outer bound — a
|
|
16
|
-
* row it rejects never completes.
|
|
17
|
-
*/
|
|
13
|
+
/** Requires a leading pipe on top of the row predicate, since prose carries pipes too
|
|
14
|
+
* (`ls | grep foo`); a row the predicate rejects never completes. */
|
|
18
15
|
export function tryCompleteTableRow(line) {
|
|
19
|
-
if (!line
|
|
16
|
+
if (!trimWhitespace(line).startsWith('|'))
|
|
20
17
|
return null;
|
|
21
18
|
const cells = tableHeaderCells(line);
|
|
22
19
|
if (!cells || cells.length < 2)
|
|
@@ -33,8 +30,8 @@ export function tryCompleteTableRow(line) {
|
|
|
33
30
|
export function registerTableCompleter() {
|
|
34
31
|
registerBlockCompleter('table', { tryComplete: tryCompleteTableRow });
|
|
35
32
|
}
|
|
36
|
-
/** Through the row rebuilder, so
|
|
37
|
-
* owns line endings, so the rebuilder's is trimmed back off. */
|
|
33
|
+
/** Through the row rebuilder, so the padding written is the padding the serializer emits. The
|
|
34
|
+
* caller owns line endings, so the rebuilder's is trimmed back off. */
|
|
38
35
|
function canonicalRow(cells) {
|
|
39
36
|
const row = {
|
|
40
37
|
kind: 'tableRow',
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { TableAlignment } from '../nodes';
|
|
2
|
-
import type
|
|
3
|
-
import { type BlockOpenerResult } from '../../schema/block-openers';
|
|
2
|
+
import { type ParsedLine } from '../lines';
|
|
3
|
+
import { type BlockOpenerResult, type GrammarView } from '../../schema/block-openers';
|
|
4
4
|
export declare function splitRowCells(rowText: string): string[];
|
|
5
|
-
/**
|
|
6
|
-
*
|
|
7
|
-
* the shape, so a row the continuation scan accepts and the Enter completer refuses cannot exist.
|
|
8
|
-
* Arity against the delimiter is the caller's check.
|
|
9
|
-
*/
|
|
5
|
+
/** The cells a line offers as a header row, or null: the one definition, so the continuation scan
|
|
6
|
+
* and the Enter completer cannot disagree. Arity against the delimiter is the caller's check. */
|
|
10
7
|
export declare function tableHeaderCells(text: string): string[] | null;
|
|
11
8
|
export declare function matchTableDelimiterRow(text: string): {
|
|
12
9
|
columnCount: number;
|
|
13
10
|
alignments: TableAlignment[];
|
|
14
11
|
} | null;
|
|
12
|
+
/** Whether a table takes `lines[index]` as one more row, pipe or none: GFM ends a table only at a
|
|
13
|
+
* blank line or a block start (spec example 201), judged in the editor's grammar. */
|
|
14
|
+
export declare function tableTakesLine(lines: ParsedLine[], index: number, end: number, grammar: GrammarView): boolean;
|
|
15
15
|
export declare function parseTable(lines: ParsedLine[], startIndex: number, endIndex: number, leadingTrivia: string, delimiter: {
|
|
16
16
|
columnCount: number;
|
|
17
17
|
alignments: TableAlignment[];
|
|
18
|
-
}): BlockOpenerResult;
|
|
18
|
+
}, grammar: GrammarView): BlockOpenerResult;
|