@voithos-labs/aragonite 0.10.1
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/LICENSE +661 -0
- package/README.md +365 -0
- package/THIRD-PARTY-NOTICES.md +102 -0
- package/dist/a11y-strings.d.ts +46 -0
- package/dist/a11y-strings.js +62 -0
- package/dist/action-contracts.d.ts +301 -0
- package/dist/action-contracts.js +5 -0
- package/dist/active-editor.d.ts +16 -0
- package/dist/active-editor.js +67 -0
- package/dist/ambient/ambient-cursor.d.ts +41 -0
- package/dist/ambient/ambient-cursor.js +120 -0
- package/dist/ambient/ambient-dom.d.ts +9 -0
- package/dist/ambient/ambient-dom.js +102 -0
- package/dist/assert.d.ts +6 -0
- package/dist/assert.js +17 -0
- package/dist/block-component.d.ts +274 -0
- package/dist/block-component.js +43 -0
- package/dist/block-id.d.ts +14 -0
- package/dist/block-id.js +34 -0
- package/dist/bounded-memo.d.ts +14 -0
- package/dist/bounded-memo.js +32 -0
- package/dist/components/BlockDragHandle.svelte +66 -0
- package/dist/components/BlockDragHandle.svelte.d.ts +18 -0
- package/dist/components/BlockHost.svelte +328 -0
- package/dist/components/BlockHost.svelte.d.ts +15 -0
- package/dist/components/BlockList.svelte +114 -0
- package/dist/components/BlockList.svelte.d.ts +16 -0
- package/dist/components/DecorationOverlay.svelte +156 -0
- package/dist/components/DecorationOverlay.svelte.d.ts +14 -0
- package/dist/components/Editor.svelte +1849 -0
- package/dist/components/Editor.svelte.d.ts +49 -0
- package/dist/components/GapCaret.svelte +226 -0
- package/dist/components/GapCaret.svelte.d.ts +9 -0
- package/dist/components/SearchBar.svelte +243 -0
- package/dist/components/SearchBar.svelte.d.ts +7 -0
- package/dist/components/SelectionOverlay.svelte +171 -0
- package/dist/components/SelectionOverlay.svelte.d.ts +14 -0
- package/dist/components/block-content-selector.d.ts +12 -0
- package/dist/components/block-content-selector.js +12 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +32 -0
- package/dist/components/blocks/BlockquoteBlock.svelte.d.ts +11 -0
- package/dist/components/blocks/ThematicBreakBlock.svelte +156 -0
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +17 -0
- package/dist/components/blocks/code/CodeBlock.svelte +726 -0
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +23 -0
- package/dist/components/blocks/code/CodeLanguageChip.svelte +127 -0
- package/dist/components/blocks/code/CodeLanguageChip.svelte.d.ts +14 -0
- package/dist/components/blocks/code/code-beforeinput.d.ts +30 -0
- package/dist/components/blocks/code/code-beforeinput.js +40 -0
- package/dist/components/blocks/code/code-bootstrap.d.ts +8 -0
- package/dist/components/blocks/code/code-bootstrap.js +54 -0
- package/dist/components/blocks/code/code-editing.d.ts +28 -0
- package/dist/components/blocks/code/code-editing.js +79 -0
- package/dist/components/blocks/code/code-enter.d.ts +22 -0
- package/dist/components/blocks/code/code-enter.js +19 -0
- package/dist/components/blocks/code/code-fence-boundary.d.ts +77 -0
- package/dist/components/blocks/code/code-fence-boundary.js +169 -0
- package/dist/components/blocks/code/code-fence-exit.d.ts +24 -0
- package/dist/components/blocks/code/code-fence-exit.js +36 -0
- package/dist/components/blocks/code/code-indent.d.ts +14 -0
- package/dist/components/blocks/code/code-indent.js +87 -0
- package/dist/components/blocks/code/code-languages.d.ts +15 -0
- package/dist/components/blocks/code/code-languages.js +30 -0
- package/dist/components/blocks/code/code-paste-surface.d.ts +6 -0
- package/dist/components/blocks/code/code-paste-surface.js +29 -0
- package/dist/components/blocks/code/code-paste.d.ts +24 -0
- package/dist/components/blocks/code/code-paste.js +21 -0
- package/dist/components/blocks/code/code-renderer.d.ts +18 -0
- package/dist/components/blocks/code/code-renderer.js +249 -0
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +51 -0
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte.d.ts +11 -0
- package/dist/components/blocks/directive/activate-directives.d.ts +7 -0
- package/dist/components/blocks/directive/activate-directives.js +23 -0
- package/dist/components/blocks/editable-leaf.d.ts +126 -0
- package/dist/components/blocks/editable-leaf.js +410 -0
- package/dist/components/blocks/editable-surface.d.ts +209 -0
- package/dist/components/blocks/editable-surface.js +331 -0
- package/dist/components/blocks/list/ListBlock.svelte +162 -0
- package/dist/components/blocks/list/ListBlock.svelte.d.ts +11 -0
- package/dist/components/blocks/list/ListItemBlock.svelte +324 -0
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +14 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +3 -0
- package/dist/components/blocks/list/task-checkbox.js +33 -0
- package/dist/components/blocks/plain-text-backend.d.ts +21 -0
- package/dist/components/blocks/plain-text-backend.js +47 -0
- package/dist/components/blocks/surface-wiring.svelte.d.ts +18 -0
- package/dist/components/blocks/surface-wiring.svelte.js +68 -0
- package/dist/components/blocks/table/TableActionMenu.svelte +267 -0
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +15 -0
- package/dist/components/blocks/table/TableBlock.svelte +765 -0
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +30 -0
- package/dist/components/blocks/table/TableCellBlock.svelte +1075 -0
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +30 -0
- package/dist/components/blocks/table/TableGrip.svelte +91 -0
- package/dist/components/blocks/table/TableGrip.svelte.d.ts +8 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +233 -0
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +34 -0
- package/dist/components/blocks/table/cell-clipboard.d.ts +23 -0
- package/dist/components/blocks/table/cell-clipboard.js +34 -0
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +37 -0
- package/dist/components/blocks/table/cell-keydown-plan.js +66 -0
- package/dist/components/blocks/table/cell-pointer.d.ts +58 -0
- package/dist/components/blocks/table/cell-pointer.js +153 -0
- package/dist/components/blocks/table/cell-render.d.ts +51 -0
- package/dist/components/blocks/table/cell-render.js +98 -0
- package/dist/components/blocks/table/cell-table-commands.d.ts +12 -0
- package/dist/components/blocks/table/cell-table-commands.js +21 -0
- package/dist/components/blocks/table/cell-x-mapping.d.ts +6 -0
- package/dist/components/blocks/table/cell-x-mapping.js +16 -0
- package/dist/components/blocks/table/selected-cells.d.ts +19 -0
- package/dist/components/blocks/table/selected-cells.js +35 -0
- package/dist/components/blocks/table/table-caret-at-point.d.ts +8 -0
- package/dist/components/blocks/table/table-caret-at-point.js +35 -0
- package/dist/components/blocks/table/table-cell-paste.d.ts +16 -0
- package/dist/components/blocks/table/table-cell-paste.js +75 -0
- package/dist/components/blocks/table/table-drag-hit-test.d.ts +5 -0
- package/dist/components/blocks/table/table-drag-hit-test.js +20 -0
- package/dist/components/blocks/table/table-drop-target.d.ts +1 -0
- package/dist/components/blocks/table/table-drop-target.js +16 -0
- package/dist/components/blocks/table/table-menu-model.d.ts +52 -0
- package/dist/components/blocks/table/table-menu-model.js +78 -0
- package/dist/components/blocks/table/table-navigation.d.ts +8 -0
- package/dist/components/blocks/table/table-navigation.js +22 -0
- package/dist/components/blocks/table/table-reorder-drag.d.ts +78 -0
- package/dist/components/blocks/table/table-reorder-drag.js +97 -0
- package/dist/components/blocks/text/TextEditableBlock.svelte +1012 -0
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +33 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +8 -0
- package/dist/components/blocks/text/click-snap-guard.js +19 -0
- package/dist/components/blocks/text/composition-seat.d.ts +50 -0
- package/dist/components/blocks/text/composition-seat.js +65 -0
- package/dist/components/blocks/text/construct-edge-delete.d.ts +47 -0
- package/dist/components/blocks/text/construct-edge-delete.js +164 -0
- package/dist/components/blocks/text/construct-reveal.d.ts +39 -0
- package/dist/components/blocks/text/construct-reveal.js +164 -0
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +91 -0
- package/dist/components/blocks/text/edge-policy-dispatch.js +457 -0
- package/dist/components/blocks/text/edge-seat.d.ts +42 -0
- package/dist/components/blocks/text/edge-seat.js +197 -0
- package/dist/components/blocks/text/hidden-suffix.d.ts +10 -0
- package/dist/components/blocks/text/hidden-suffix.js +15 -0
- package/dist/components/blocks/text/link-at-point.d.ts +33 -0
- package/dist/components/blocks/text/link-at-point.js +47 -0
- package/dist/components/blocks/text/link-source-bytes.d.ts +37 -0
- package/dist/components/blocks/text/link-source-bytes.js +161 -0
- package/dist/components/blocks/text/live-join-seam.d.ts +15 -0
- package/dist/components/blocks/text/live-join-seam.js +327 -0
- package/dist/components/blocks/text/live-selection-edit.d.ts +68 -0
- package/dist/components/blocks/text/live-selection-edit.js +120 -0
- package/dist/components/blocks/text/live-split-rebalance.d.ts +56 -0
- package/dist/components/blocks/text/live-split-rebalance.js +239 -0
- package/dist/components/blocks/text/marker-completion.d.ts +18 -0
- package/dist/components/blocks/text/marker-completion.js +29 -0
- package/dist/components/blocks/text/pending-mark-insert.d.ts +37 -0
- package/dist/components/blocks/text/pending-mark-insert.js +188 -0
- package/dist/components/blocks/text/screen-diff.d.ts +20 -0
- package/dist/components/blocks/text/screen-diff.js +39 -0
- package/dist/components/blocks/text/text-clipboard.d.ts +70 -0
- package/dist/components/blocks/text/text-clipboard.js +131 -0
- package/dist/components/blocks/text/text-keydown.d.ts +39 -0
- package/dist/components/blocks/text/text-keydown.js +80 -0
- package/dist/components/blocks/text/text-render.d.ts +67 -0
- package/dist/components/blocks/text/text-render.js +215 -0
- package/dist/components/blocks/text/widget-adjacency.d.ts +30 -0
- package/dist/components/blocks/text/widget-adjacency.js +68 -0
- package/dist/components/blocks/text/widget-interaction.d.ts +90 -0
- package/dist/components/blocks/text/widget-interaction.js +591 -0
- package/dist/components/blocks/widget-portal.d.ts +54 -0
- package/dist/components/blocks/widget-portal.js +136 -0
- package/dist/components/built-in-blocks.d.ts +7 -0
- package/dist/components/built-in-blocks.js +77 -0
- package/dist/components/editor-root-clipboard.d.ts +29 -0
- package/dist/components/editor-root-clipboard.js +105 -0
- package/dist/components/editor-root-keydown.d.ts +47 -0
- package/dist/components/editor-root-keydown.js +88 -0
- package/dist/components/editor-root-listeners.d.ts +44 -0
- package/dist/components/editor-root-listeners.js +112 -0
- package/dist/components/image/ImageOverlayHost.svelte +115 -0
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +20 -0
- package/dist/components/image/ImageProperties.svelte +153 -0
- package/dist/components/image/ImageProperties.svelte.d.ts +14 -0
- package/dist/components/image/ImageResizeHandles.svelte +188 -0
- package/dist/components/image/ImageResizeHandles.svelte.d.ts +10 -0
- package/dist/components/image/image-edit-commit.d.ts +38 -0
- package/dist/components/image/image-edit-commit.js +159 -0
- package/dist/components/image/image-resize.d.ts +11 -0
- package/dist/components/image/image-resize.js +38 -0
- package/dist/components/image/image-source-bytes.d.ts +15 -0
- package/dist/components/image/image-source-bytes.js +73 -0
- package/dist/components/image/image-widget-editing.d.ts +7 -0
- package/dist/components/image/image-widget-editing.js +41 -0
- package/dist/components/image/widget-dom.d.ts +11 -0
- package/dist/components/image/widget-dom.js +110 -0
- package/dist/components/image/widget-selection-state.svelte.d.ts +18 -0
- package/dist/components/image/widget-selection-state.svelte.js +26 -0
- package/dist/components/link-card/LinkCard.svelte +190 -0
- package/dist/components/link-card/LinkCard.svelte.d.ts +18 -0
- package/dist/components/link-card/LinkCardHost.svelte +181 -0
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +25 -0
- package/dist/components/link-card/link-card-commit.d.ts +50 -0
- package/dist/components/link-card/link-card-commit.js +134 -0
- package/dist/components/link-card/link-card-entry.d.ts +39 -0
- package/dist/components/link-card/link-card-entry.js +51 -0
- package/dist/components/link-card/link-card-state.svelte.d.ts +44 -0
- package/dist/components/link-card/link-card-state.svelte.js +46 -0
- package/dist/components/lrd-map-gate.d.ts +18 -0
- package/dist/components/lrd-map-gate.js +22 -0
- package/dist/components/paste-image-arm.d.ts +29 -0
- package/dist/components/paste-image-arm.js +61 -0
- package/dist/components/portal.d.ts +11 -0
- package/dist/components/portal.js +29 -0
- package/dist/core/directive/activate.d.ts +8 -0
- package/dist/core/directive/activate.js +25 -0
- package/dist/core/directive/container-opener.d.ts +7 -0
- package/dist/core/directive/container-opener.js +162 -0
- package/dist/core/directive/grammar.d.ts +50 -0
- package/dist/core/directive/grammar.js +88 -0
- package/dist/core/directive/kinds.d.ts +31 -0
- package/dist/core/directive/kinds.js +137 -0
- package/dist/core/directive/registry.d.ts +39 -0
- package/dist/core/directive/registry.js +49 -0
- package/dist/core/directive/text-recognizer.d.ts +8 -0
- package/dist/core/directive/text-recognizer.js +87 -0
- package/dist/core/escapable.d.ts +6 -0
- package/dist/core/escapable.js +6 -0
- package/dist/core/inline/backticks.d.ts +16 -0
- package/dist/core/inline/backticks.js +62 -0
- package/dist/core/inline/character-refs.d.ts +7 -0
- package/dist/core/inline/character-refs.js +70 -0
- package/dist/core/inline/destination-bytes.d.ts +7 -0
- package/dist/core/inline/destination-bytes.js +14 -0
- package/dist/core/inline/entity-widget.d.ts +11 -0
- package/dist/core/inline/entity-widget.js +21 -0
- package/dist/core/inline/format-toggle.d.ts +50 -0
- package/dist/core/inline/format-toggle.js +533 -0
- package/dist/core/inline/html-entities.d.ts +8 -0
- package/dist/core/inline/html-entities.js +2134 -0
- package/dist/core/inline/html-tag-grammar.d.ts +16 -0
- package/dist/core/inline/html-tag-grammar.js +58 -0
- package/dist/core/inline/image-dimensions.d.ts +6 -0
- package/dist/core/inline/image-dimensions.js +42 -0
- package/dist/core/inline/index.d.ts +42 -0
- package/dist/core/inline/index.js +77 -0
- package/dist/core/inline/inline-cache.d.ts +20 -0
- package/dist/core/inline/inline-cache.js +28 -0
- package/dist/core/inline/inline-widgets.d.ts +124 -0
- package/dist/core/inline/inline-widgets.js +131 -0
- package/dist/core/inline/link-reference-resolver.d.ts +21 -0
- package/dist/core/inline/link-reference-resolver.js +46 -0
- package/dist/core/inline/raw-html-widget.d.ts +10 -0
- package/dist/core/inline/raw-html-widget.js +22 -0
- package/dist/core/inline/scan/autolinks.d.ts +23 -0
- package/dist/core/inline/scan/autolinks.js +354 -0
- package/dist/core/inline/scan/brackets.d.ts +11 -0
- package/dist/core/inline/scan/brackets.js +284 -0
- package/dist/core/inline/scan/code-spans.d.ts +7 -0
- package/dist/core/inline/scan/code-spans.js +27 -0
- package/dist/core/inline/scan/emphasis.d.ts +10 -0
- package/dist/core/inline/scan/emphasis.js +276 -0
- package/dist/core/inline/scan/index.d.ts +7 -0
- package/dist/core/inline/scan/index.js +176 -0
- package/dist/core/inline/scan/plugin-syntax.d.ts +62 -0
- package/dist/core/inline/scan/plugin-syntax.js +150 -0
- package/dist/core/inline/scan/scan-state.d.ts +47 -0
- package/dist/core/inline/scan/scan-state.js +48 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +14 -0
- package/dist/core/inline/scan/simple-nodes.js +53 -0
- package/dist/core/inline/scan/url.d.ts +12 -0
- package/dist/core/inline/scan/url.js +82 -0
- package/dist/core/inline/transparency.d.ts +8 -0
- package/dist/core/inline/transparency.js +39 -0
- package/dist/core/inline/visibility.d.ts +81 -0
- package/dist/core/inline/visibility.js +144 -0
- package/dist/core/inline/walk.d.ts +14 -0
- package/dist/core/inline/walk.js +29 -0
- package/dist/core/inline-render.d.ts +48 -0
- package/dist/core/inline-render.js +322 -0
- package/dist/core/lines.d.ts +44 -0
- package/dist/core/lines.js +91 -0
- package/dist/core/node-views.d.ts +22 -0
- package/dist/core/node-views.js +8 -0
- package/dist/core/nodes.d.ts +297 -0
- package/dist/core/nodes.js +83 -0
- package/dist/core/parser.d.ts +68 -0
- package/dist/core/parser.js +189 -0
- package/dist/core/parsers/blockquote.d.ts +17 -0
- package/dist/core/parsers/blockquote.js +69 -0
- package/dist/core/parsers/built-in-openers.d.ts +8 -0
- package/dist/core/parsers/built-in-openers.js +124 -0
- package/dist/core/parsers/fence-syntax.d.ts +24 -0
- package/dist/core/parsers/fence-syntax.js +44 -0
- package/dist/core/parsers/fenced-code.d.ts +7 -0
- package/dist/core/parsers/fenced-code.js +29 -0
- package/dist/core/parsers/heading.d.ts +3 -0
- package/dist/core/parsers/heading.js +6 -0
- package/dist/core/parsers/html-block.d.ts +17 -0
- package/dist/core/parsers/html-block.js +94 -0
- package/dist/core/parsers/indented-code.d.ts +4 -0
- package/dist/core/parsers/indented-code.js +41 -0
- package/dist/core/parsers/link-reference.d.ts +7 -0
- package/dist/core/parsers/link-reference.js +152 -0
- package/dist/core/parsers/list.d.ts +19 -0
- package/dist/core/parsers/list.js +133 -0
- package/dist/core/parsers/paragraph.d.ts +10 -0
- package/dist/core/parsers/paragraph.js +42 -0
- package/dist/core/parsers/table-completion.d.ts +13 -0
- package/dist/core/parsers/table-completion.js +48 -0
- package/dist/core/parsers/table.d.ts +18 -0
- package/dist/core/parsers/table.js +110 -0
- package/dist/core/parsers/thematic-break.d.ts +1 -0
- package/dist/core/parsers/thematic-break.js +19 -0
- package/dist/core/serializer.d.ts +15 -0
- package/dist/core/serializer.js +11 -0
- package/dist/core/terminator-escalation.d.ts +8 -0
- package/dist/core/terminator-escalation.js +18 -0
- package/dist/core/url-policy.d.ts +14 -0
- package/dist/core/url-policy.js +44 -0
- package/dist/cursor/content-offsets.d.ts +29 -0
- package/dist/cursor/content-offsets.js +151 -0
- package/dist/cursor/coordinate-spaces.d.ts +65 -0
- package/dist/cursor/coordinate-spaces.js +66 -0
- package/dist/cursor/dom-walk.d.ts +18 -0
- package/dist/cursor/dom-walk.js +31 -0
- package/dist/cursor/edge-affinity.d.ts +44 -0
- package/dist/cursor/edge-affinity.js +60 -0
- package/dist/cursor/focused-caret.d.ts +10 -0
- package/dist/cursor/focused-caret.js +24 -0
- package/dist/cursor/height-model.d.ts +24 -0
- package/dist/cursor/height-model.js +72 -0
- package/dist/cursor/height-oracle.d.ts +24 -0
- package/dist/cursor/height-oracle.js +94 -0
- package/dist/cursor/overlay-rects.d.ts +8 -0
- package/dist/cursor/overlay-rects.js +19 -0
- package/dist/cursor/overlay-remeasure.d.ts +17 -0
- package/dist/cursor/overlay-remeasure.js +31 -0
- package/dist/cursor/pending-marks.d.ts +24 -0
- package/dist/cursor/pending-marks.js +36 -0
- package/dist/cursor/point-offset.d.ts +21 -0
- package/dist/cursor/point-offset.js +48 -0
- package/dist/cursor/reveal-anchor.d.ts +30 -0
- package/dist/cursor/reveal-anchor.js +31 -0
- package/dist/cursor/reveal-source.d.ts +35 -0
- package/dist/cursor/reveal-source.js +51 -0
- package/dist/cursor/scroll-ancestors.d.ts +28 -0
- package/dist/cursor/scroll-ancestors.js +89 -0
- package/dist/cursor/scrollport.d.ts +20 -0
- package/dist/cursor/scrollport.js +41 -0
- package/dist/cursor/sticky-column.d.ts +35 -0
- package/dist/cursor/sticky-column.js +64 -0
- package/dist/cursor/sticky-measure.d.ts +16 -0
- package/dist/cursor/sticky-measure.js +97 -0
- package/dist/cursor/typography-estimates.d.ts +21 -0
- package/dist/cursor/typography-estimates.js +21 -0
- package/dist/cursor/visual-lines.d.ts +25 -0
- package/dist/cursor/visual-lines.js +125 -0
- package/dist/cursor/widget-offset.d.ts +132 -0
- package/dist/cursor/widget-offset.js +543 -0
- package/dist/debug/diagnostics-report.d.ts +17 -0
- package/dist/debug/diagnostics-report.js +25 -0
- package/dist/debug/dump-tree.d.ts +6 -0
- package/dist/debug/dump-tree.js +114 -0
- package/dist/debug/inspect.d.ts +19 -0
- package/dist/debug/inspect.js +116 -0
- package/dist/debug/interaction-trace.d.ts +39 -0
- package/dist/debug/interaction-trace.js +105 -0
- package/dist/debug/operations-log.d.ts +14 -0
- package/dist/debug/operations-log.js +30 -0
- package/dist/decorations/buckets.d.ts +40 -0
- package/dist/decorations/buckets.js +87 -0
- package/dist/decorations/decoration-state.svelte.d.ts +20 -0
- package/dist/decorations/decoration-state.svelte.js +195 -0
- package/dist/decorations/island-dom.d.ts +35 -0
- package/dist/decorations/island-dom.js +148 -0
- package/dist/decorations/reserved-attrs.d.ts +12 -0
- package/dist/decorations/reserved-attrs.js +47 -0
- package/dist/decorations/types.d.ts +68 -0
- package/dist/decorations/types.js +5 -0
- package/dist/decorations/widget-dom.d.ts +15 -0
- package/dist/decorations/widget-dom.js +35 -0
- package/dist/dev-warn.d.ts +13 -0
- package/dist/dev-warn.js +28 -0
- package/dist/editor-actions/ancestry-folds.d.ts +32 -0
- package/dist/editor-actions/ancestry-folds.js +106 -0
- package/dist/editor-actions/block-edit-core.d.ts +29 -0
- package/dist/editor-actions/block-edit-core.js +277 -0
- package/dist/editor-actions/block-edit-scope.d.ts +79 -0
- package/dist/editor-actions/block-edit-scope.js +76 -0
- package/dist/editor-actions/block-edit.d.ts +8 -0
- package/dist/editor-actions/block-edit.js +111 -0
- package/dist/editor-actions/commit/history.d.ts +9 -0
- package/dist/editor-actions/commit/history.js +77 -0
- package/dist/editor-actions/commit/text-batch.d.ts +34 -0
- package/dist/editor-actions/commit/text-batch.js +61 -0
- package/dist/editor-actions/commit/undo-controller.d.ts +7 -0
- package/dist/editor-actions/commit/undo-controller.js +570 -0
- package/dist/editor-actions/container-block-component.d.ts +85 -0
- package/dist/editor-actions/container-block-component.js +228 -0
- package/dist/editor-actions/container-edit.d.ts +7 -0
- package/dist/editor-actions/container-edit.js +49 -0
- package/dist/editor-actions/container-exit-overrides.d.ts +16 -0
- package/dist/editor-actions/container-exit-overrides.js +38 -0
- package/dist/editor-actions/deps.d.ts +60 -0
- package/dist/editor-actions/deps.js +1 -0
- package/dist/editor-actions/enter-completion.d.ts +25 -0
- package/dist/editor-actions/enter-completion.js +76 -0
- package/dist/editor-actions/focus/focus-dispatch.d.ts +36 -0
- package/dist/editor-actions/focus/focus-dispatch.js +106 -0
- package/dist/editor-actions/focus/focus-landing.d.ts +7 -0
- package/dist/editor-actions/focus/focus-landing.js +39 -0
- package/dist/editor-actions/focus/focus.d.ts +7 -0
- package/dist/editor-actions/focus/focus.js +74 -0
- package/dist/editor-actions/index.d.ts +15 -0
- package/dist/editor-actions/index.js +19 -0
- package/dist/editor-actions/inline-range-commit.d.ts +20 -0
- package/dist/editor-actions/inline-range-commit.js +63 -0
- package/dist/editor-actions/list-context.d.ts +25 -0
- package/dist/editor-actions/list-context.js +285 -0
- package/dist/editor-actions/list-overrides.d.ts +13 -0
- package/dist/editor-actions/list-overrides.js +26 -0
- package/dist/editor-actions/merge-fallback.d.ts +19 -0
- package/dist/editor-actions/merge-fallback.js +27 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +65 -0
- package/dist/editor-actions/nested/nested-actions.js +59 -0
- package/dist/editor-actions/nested/nested-block-edit.d.ts +10 -0
- package/dist/editor-actions/nested/nested-block-edit.js +181 -0
- package/dist/editor-actions/nested/nested-focus.d.ts +9 -0
- package/dist/editor-actions/nested/nested-focus.js +30 -0
- package/dist/editor-actions/paste-coordinator.d.ts +4 -0
- package/dist/editor-actions/paste-coordinator.js +20 -0
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +25 -0
- package/dist/editor-actions/plugin/chrome-leaf.js +80 -0
- package/dist/editor-actions/plugin/container.d.ts +137 -0
- package/dist/editor-actions/plugin/container.js +351 -0
- package/dist/editor-actions/plugin/directive-container.d.ts +13 -0
- package/dist/editor-actions/plugin/directive-container.js +31 -0
- package/dist/editor-actions/reorder-action.d.ts +17 -0
- package/dist/editor-actions/reorder-action.js +104 -0
- package/dist/editor-actions/reorder-drag.d.ts +34 -0
- package/dist/editor-actions/reorder-drag.js +152 -0
- package/dist/editor-actions/replacement-focus.d.ts +27 -0
- package/dist/editor-actions/replacement-focus.js +60 -0
- package/dist/editor-actions/search-replace.d.ts +6 -0
- package/dist/editor-actions/search-replace.js +145 -0
- package/dist/editor-actions/table-context.d.ts +34 -0
- package/dist/editor-actions/table-context.js +292 -0
- package/dist/editor-actions/unwrap-strategies.d.ts +14 -0
- package/dist/editor-actions/unwrap-strategies.js +131 -0
- package/dist/editor-actions/whole-block-focus-surface.d.ts +51 -0
- package/dist/editor-actions/whole-block-focus-surface.js +171 -0
- package/dist/editor-events.d.ts +89 -0
- package/dist/editor-events.js +96 -0
- package/dist/editor-keys.d.ts +197 -0
- package/dist/editor-keys.js +40 -0
- package/dist/editor-props.d.ts +164 -0
- package/dist/editor-props.js +1 -0
- package/dist/editor-rects.d.ts +58 -0
- package/dist/editor-rects.js +114 -0
- package/dist/env.d.ts +12 -0
- package/dist/env.js +20 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +19 -0
- package/dist/invariants/commit-paths.d.ts +10 -0
- package/dist/invariants/commit-paths.js +25 -0
- package/dist/invariants/commit-scope.d.ts +9 -0
- package/dist/invariants/commit-scope.js +16 -0
- package/dist/invariants/context-keys.d.ts +7 -0
- package/dist/invariants/context-keys.js +14 -0
- package/dist/invariants/descriptor.d.ts +10 -0
- package/dist/invariants/descriptor.js +24 -0
- package/dist/invariants/inline-transitions.d.ts +23 -0
- package/dist/invariants/inline-transitions.js +52 -0
- package/dist/invariants/install.d.ts +36 -0
- package/dist/invariants/install.js +66 -0
- package/dist/invariants/landable-caret.d.ts +12 -0
- package/dist/invariants/landable-caret.js +31 -0
- package/dist/invariants/marker-css-parity.d.ts +10 -0
- package/dist/invariants/marker-css-parity.js +87 -0
- package/dist/invariants/node-shape.d.ts +44 -0
- package/dist/invariants/node-shape.js +258 -0
- package/dist/invariants/registry.d.ts +126 -0
- package/dist/invariants/registry.js +349 -0
- package/dist/invariants/render-fidelity.d.ts +8 -0
- package/dist/invariants/render-fidelity.js +33 -0
- package/dist/invariants/selection-endpoints.d.ts +19 -0
- package/dist/invariants/selection-endpoints.js +78 -0
- package/dist/invariants/single-node-sink.d.ts +9 -0
- package/dist/invariants/single-node-sink.js +16 -0
- package/dist/invariants/snapshot-integrity.d.ts +17 -0
- package/dist/invariants/snapshot-integrity.js +24 -0
- package/dist/invariants/split-landing.d.ts +8 -0
- package/dist/invariants/split-landing.js +15 -0
- package/dist/invariants/structural-descriptor.d.ts +21 -0
- package/dist/invariants/structural-descriptor.js +50 -0
- package/dist/perf/instruments.d.ts +49 -0
- package/dist/perf/instruments.js +154 -0
- package/dist/perf/use-mount-gauge.svelte.d.ts +1 -0
- package/dist/perf/use-mount-gauge.svelte.js +15 -0
- package/dist/plugin.d.ts +102 -0
- package/dist/plugin.js +156 -0
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +144 -0
- package/dist/plugins/admonitions/AdmonitionBlock.svelte.d.ts +11 -0
- package/dist/plugins/admonitions/admonition-kind.d.ts +8 -0
- package/dist/plugins/admonitions/admonition-kind.js +97 -0
- package/dist/plugins/admonitions/convert-document.d.ts +11 -0
- package/dist/plugins/admonitions/convert-document.js +39 -0
- package/dist/plugins/admonitions/gh-alert.d.ts +13 -0
- package/dist/plugins/admonitions/gh-alert.js +83 -0
- package/dist/plugins/admonitions/github-alert-kind.d.ts +12 -0
- package/dist/plugins/admonitions/github-alert-kind.js +125 -0
- package/dist/plugins/admonitions/index.d.ts +6 -0
- package/dist/plugins/admonitions/index.js +8 -0
- package/dist/plugins/admonitions/kinds.d.ts +26 -0
- package/dist/plugins/admonitions/kinds.js +18 -0
- package/dist/plugins/admonitions/register.d.ts +7 -0
- package/dist/plugins/admonitions/register.js +12 -0
- package/dist/plugins/details/DetailsBlock.svelte +129 -0
- package/dist/plugins/details/DetailsBlock.svelte.d.ts +11 -0
- package/dist/plugins/details/details-disclosure.svelte.d.ts +17 -0
- package/dist/plugins/details/details-disclosure.svelte.js +24 -0
- package/dist/plugins/details/details-kind.d.ts +25 -0
- package/dist/plugins/details/details-kind.js +237 -0
- package/dist/plugins/details/index.d.ts +2 -0
- package/dist/plugins/details/index.js +2 -0
- package/dist/plugins/details/register.d.ts +6 -0
- package/dist/plugins/details/register.js +15 -0
- package/dist/plugins/emoji/emoji-plugin.d.ts +2 -0
- package/dist/plugins/emoji/emoji-plugin.js +10 -0
- package/dist/plugins/emoji/emoji-recognizer.d.ts +18 -0
- package/dist/plugins/emoji/emoji-recognizer.js +63 -0
- package/dist/plugins/emoji/emoji-table.d.ts +1 -0
- package/dist/plugins/emoji/emoji-table.js +1919 -0
- package/dist/plugins/emoji/index.d.ts +3 -0
- package/dist/plugins/emoji/index.js +4 -0
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +103 -0
- package/dist/plugins/footnotes/FootnoteDefinition.svelte.d.ts +13 -0
- package/dist/plugins/footnotes/FootnoteReference.svelte +50 -0
- package/dist/plugins/footnotes/FootnoteReference.svelte.d.ts +4 -0
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +4 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +14 -0
- package/dist/plugins/footnotes/footnote-definition.js +147 -0
- package/dist/plugins/footnotes/footnote-lookup.d.ts +9 -0
- package/dist/plugins/footnotes/footnote-lookup.js +33 -0
- package/dist/plugins/footnotes/footnote-numbering.d.ts +23 -0
- package/dist/plugins/footnotes/footnote-numbering.js +78 -0
- package/dist/plugins/footnotes/footnote-reference.d.ts +7 -0
- package/dist/plugins/footnotes/footnote-reference.js +54 -0
- package/dist/plugins/footnotes/footnotes-plugin.d.ts +7 -0
- package/dist/plugins/footnotes/footnotes-plugin.js +17 -0
- package/dist/plugins/footnotes/index.d.ts +5 -0
- package/dist/plugins/footnotes/index.js +6 -0
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +17 -0
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +31 -0
- package/dist/plugins/highlight-occurrences/index.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/index.js +1 -0
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +26 -0
- package/dist/plugins/highlight-occurrences/occurrence-source.js +54 -0
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +33 -0
- package/dist/plugins/highlight-occurrences/occurrences.js +108 -0
- package/dist/plugins/latex/BlockMath.svelte +119 -0
- package/dist/plugins/latex/BlockMath.svelte.d.ts +21 -0
- package/dist/plugins/latex/MathInline.svelte +28 -0
- package/dist/plugins/latex/MathInline.svelte.d.ts +4 -0
- package/dist/plugins/latex/index.d.ts +3 -0
- package/dist/plugins/latex/index.js +4 -0
- package/dist/plugins/latex/latex-kind.d.ts +17 -0
- package/dist/plugins/latex/latex-kind.js +224 -0
- package/dist/plugins/latex/math-completion.d.ts +10 -0
- package/dist/plugins/latex/math-completion.js +19 -0
- package/dist/plugins/latex/math-renderer.d.ts +26 -0
- package/dist/plugins/latex/math-renderer.js +42 -0
- package/dist/plugins/latex/register.d.ts +10 -0
- package/dist/plugins/latex/register.js +23 -0
- package/dist/plugins/latex/renderer.d.ts +13 -0
- package/dist/plugins/latex/renderer.js +34 -0
- package/dist/plugins/mermaid/MermaidBlock.svelte +572 -0
- package/dist/plugins/mermaid/MermaidBlock.svelte.d.ts +11 -0
- package/dist/plugins/mermaid/index.d.ts +3 -0
- package/dist/plugins/mermaid/index.js +3 -0
- package/dist/plugins/mermaid/mermaid-kind.d.ts +38 -0
- package/dist/plugins/mermaid/mermaid-kind.js +176 -0
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +28 -0
- package/dist/plugins/mermaid/mermaid-renderer.js +35 -0
- package/dist/plugins/mermaid/register.d.ts +10 -0
- package/dist/plugins/mermaid/register.js +20 -0
- package/dist/plugins/mermaid/renderer.d.ts +11 -0
- package/dist/plugins/mermaid/renderer.js +53 -0
- package/dist/plugins/parrot/ParrotBlock.svelte +342 -0
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +21 -0
- package/dist/plugins/parrot/index.d.ts +1 -0
- package/dist/plugins/parrot/index.js +2 -0
- package/dist/plugins/parrot/parrot-plugin.d.ts +3 -0
- package/dist/plugins/parrot/parrot-plugin.js +49 -0
- package/dist/plugins/toc/TocBlock.svelte +218 -0
- package/dist/plugins/toc/TocBlock.svelte.d.ts +24 -0
- package/dist/plugins/toc/heading-outline.d.ts +28 -0
- package/dist/plugins/toc/heading-outline.js +65 -0
- package/dist/plugins/toc/index.d.ts +2 -0
- package/dist/plugins/toc/index.js +2 -0
- package/dist/plugins/toc/navigation-queue.d.ts +12 -0
- package/dist/plugins/toc/navigation-queue.js +21 -0
- package/dist/plugins/toc/toc-plugin.d.ts +16 -0
- package/dist/plugins/toc/toc-plugin.js +71 -0
- package/dist/presentation-mode.d.ts +32 -0
- package/dist/presentation-mode.js +50 -0
- package/dist/reactivity/block-list-state.svelte.d.ts +22 -0
- package/dist/reactivity/block-list-state.svelte.js +46 -0
- package/dist/reactivity/block-window.svelte.d.ts +41 -0
- package/dist/reactivity/block-window.svelte.js +93 -0
- package/dist/reactivity/content-version.svelte.d.ts +14 -0
- package/dist/reactivity/content-version.svelte.js +16 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +100 -0
- package/dist/reactivity/list-windowing.svelte.js +402 -0
- package/dist/reactivity/measure-batch.d.ts +15 -0
- package/dist/reactivity/measure-batch.js +18 -0
- package/dist/reactivity/publish-ref.svelte.d.ts +54 -0
- package/dist/reactivity/publish-ref.svelte.js +128 -0
- package/dist/reactivity/scope-geometry.d.ts +18 -0
- package/dist/reactivity/scope-geometry.js +29 -0
- package/dist/reactivity/state-registry.d.ts +10 -0
- package/dist/reactivity/state-registry.js +44 -0
- package/dist/reactivity/use-container-windowing.svelte.d.ts +35 -0
- package/dist/reactivity/use-container-windowing.svelte.js +95 -0
- package/dist/reactivity/window-slice.d.ts +11 -0
- package/dist/reactivity/window-slice.js +9 -0
- package/dist/scan-index.d.ts +11 -0
- package/dist/scan-index.js +27 -0
- package/dist/schema/block-commands.d.ts +105 -0
- package/dist/schema/block-commands.js +179 -0
- package/dist/schema/block-completions.d.ts +33 -0
- package/dist/schema/block-completions.js +49 -0
- package/dist/schema/block-component-registry.d.ts +33 -0
- package/dist/schema/block-component-registry.js +33 -0
- package/dist/schema/block-kind-descriptor.d.ts +281 -0
- package/dist/schema/block-kind-descriptor.js +187 -0
- package/dist/schema/block-openers.d.ts +94 -0
- package/dist/schema/block-openers.js +150 -0
- package/dist/schema/built-in-descriptors.d.ts +8 -0
- package/dist/schema/built-in-descriptors.js +560 -0
- package/dist/schema/child-spans.d.ts +25 -0
- package/dist/schema/child-spans.js +161 -0
- package/dist/schema/closure.d.ts +39 -0
- package/dist/schema/closure.js +55 -0
- package/dist/schema/command-id.d.ts +20 -0
- package/dist/schema/command-id.js +42 -0
- package/dist/schema/commands.d.ts +147 -0
- package/dist/schema/commands.js +294 -0
- package/dist/schema/container-raw.d.ts +21 -0
- package/dist/schema/container-raw.js +43 -0
- package/dist/schema/container-rebuilders.d.ts +32 -0
- package/dist/schema/container-rebuilders.js +95 -0
- package/dist/schema/define-plugin-block.d.ts +15 -0
- package/dist/schema/define-plugin-block.js +18 -0
- package/dist/schema/fenced-code-raw.d.ts +43 -0
- package/dist/schema/fenced-code-raw.js +220 -0
- package/dist/schema/global-commands.d.ts +11 -0
- package/dist/schema/global-commands.js +40 -0
- package/dist/schema/inline-construct-policy.d.ts +131 -0
- package/dist/schema/inline-construct-policy.js +96 -0
- package/dist/schema/keybinding-overrides.d.ts +39 -0
- package/dist/schema/keybinding-overrides.js +43 -0
- package/dist/schema/keybindings.d.ts +36 -0
- package/dist/schema/keybindings.js +75 -0
- package/dist/schema/merge-rules.d.ts +28 -0
- package/dist/schema/merge-rules.js +57 -0
- package/dist/schema/opener-priorities.d.ts +16 -0
- package/dist/schema/opener-priorities.js +16 -0
- package/dist/schema/operations.d.ts +110 -0
- package/dist/schema/operations.js +6 -0
- package/dist/schema/plugin-activation.d.ts +13 -0
- package/dist/schema/plugin-activation.js +18 -0
- package/dist/schema/plugin-editor-context.d.ts +33 -0
- package/dist/schema/plugin-editor-context.js +65 -0
- package/dist/schema/plugin-install.d.ts +58 -0
- package/dist/schema/plugin-install.js +132 -0
- package/dist/schema/plugin-kind.d.ts +21 -0
- package/dist/schema/plugin-kind.js +86 -0
- package/dist/schema/plugin-name.d.ts +1 -0
- package/dist/schema/plugin-name.js +7 -0
- package/dist/schema/register-once.d.ts +9 -0
- package/dist/schema/register-once.js +35 -0
- package/dist/schema/registration-checks.d.ts +32 -0
- package/dist/schema/registration-checks.js +122 -0
- package/dist/schema/registration-pending.d.ts +28 -0
- package/dist/schema/registration-pending.js +48 -0
- package/dist/schema/registry-reset.d.ts +7 -0
- package/dist/schema/registry-reset.js +30 -0
- package/dist/schema/registry-view.d.ts +30 -0
- package/dist/schema/registry-view.js +39 -0
- package/dist/schema/reserved-chords.d.ts +35 -0
- package/dist/schema/reserved-chords.js +313 -0
- package/dist/schema/reserved-chrome.d.ts +23 -0
- package/dist/schema/reserved-chrome.js +33 -0
- package/dist/schema/table-cell-raw.d.ts +14 -0
- package/dist/schema/table-cell-raw.js +30 -0
- package/dist/schema/whole-block-unit.d.ts +8 -0
- package/dist/schema/whole-block-unit.js +12 -0
- package/dist/search/document-scan.d.ts +22 -0
- package/dist/search/document-scan.js +39 -0
- package/dist/search/matcher.d.ts +31 -0
- package/dist/search/matcher.js +70 -0
- package/dist/search/regex-executor.d.ts +41 -0
- package/dist/search/regex-executor.js +165 -0
- package/dist/search/replace.d.ts +15 -0
- package/dist/search/replace.js +29 -0
- package/dist/search/search-state.svelte.d.ts +59 -0
- package/dist/search/search-state.svelte.js +231 -0
- package/dist/selection/autoscroll.d.ts +26 -0
- package/dist/selection/autoscroll.js +91 -0
- package/dist/selection/block-hit-test.d.ts +37 -0
- package/dist/selection/block-hit-test.js +59 -0
- package/dist/selection/caret-doors.d.ts +20 -0
- package/dist/selection/caret-doors.js +44 -0
- package/dist/selection/caret-restore.d.ts +15 -0
- package/dist/selection/caret-restore.js +32 -0
- package/dist/selection/char-endpoint-snap.d.ts +15 -0
- package/dist/selection/char-endpoint-snap.js +39 -0
- package/dist/selection/clipboard-text.d.ts +13 -0
- package/dist/selection/clipboard-text.js +314 -0
- package/dist/selection/cross-block/clipboard.d.ts +14 -0
- package/dist/selection/cross-block/clipboard.js +20 -0
- package/dist/selection/cross-block/dispatch.d.ts +78 -0
- package/dist/selection/cross-block/dispatch.js +57 -0
- package/dist/selection/cross-block/format-range.d.ts +38 -0
- package/dist/selection/cross-block/format-range.js +193 -0
- package/dist/selection/cross-block/format-toggle.d.ts +27 -0
- package/dist/selection/cross-block/format-toggle.js +109 -0
- package/dist/selection/cross-block/keydown.d.ts +11 -0
- package/dist/selection/cross-block/keydown.js +339 -0
- package/dist/selection/cross-block/ops.d.ts +56 -0
- package/dist/selection/cross-block/ops.js +210 -0
- package/dist/selection/cross-block/paste.d.ts +8 -0
- package/dist/selection/cross-block/paste.js +156 -0
- package/dist/selection/cross-block/pointer.d.ts +19 -0
- package/dist/selection/cross-block/pointer.js +80 -0
- package/dist/selection/cross-block/type-replace.d.ts +10 -0
- package/dist/selection/cross-block/type-replace.js +129 -0
- package/dist/selection/dead-space-caret.d.ts +39 -0
- package/dist/selection/dead-space-caret.js +173 -0
- package/dist/selection/drag-pointer.d.ts +22 -0
- package/dist/selection/drag-pointer.js +89 -0
- package/dist/selection/gap-caret.d.ts +47 -0
- package/dist/selection/gap-caret.js +72 -0
- package/dist/selection/keyboard-extend.d.ts +43 -0
- package/dist/selection/keyboard-extend.js +257 -0
- package/dist/selection/native-bridge.d.ts +47 -0
- package/dist/selection/native-bridge.js +204 -0
- package/dist/selection/nearest-block.d.ts +43 -0
- package/dist/selection/nearest-block.js +73 -0
- package/dist/selection/path-lookup.d.ts +32 -0
- package/dist/selection/path-lookup.js +132 -0
- package/dist/selection/path-math.d.ts +35 -0
- package/dist/selection/path-math.js +90 -0
- package/dist/selection/pointer-session.d.ts +43 -0
- package/dist/selection/pointer-session.js +111 -0
- package/dist/selection/primitives.d.ts +75 -0
- package/dist/selection/primitives.js +91 -0
- package/dist/selection/range-delete-ceremony.d.ts +85 -0
- package/dist/selection/range-delete-ceremony.js +197 -0
- package/dist/selection/range-delete-chrome.d.ts +39 -0
- package/dist/selection/range-delete-chrome.js +105 -0
- package/dist/selection/range-delete-table-coverage.d.ts +28 -0
- package/dist/selection/range-delete-table-coverage.js +168 -0
- package/dist/selection/range-delete-table.d.ts +16 -0
- package/dist/selection/range-delete-table.js +347 -0
- package/dist/selection/range-delete.d.ts +33 -0
- package/dist/selection/range-delete.js +121 -0
- package/dist/selection/selection-description.d.ts +7 -0
- package/dist/selection/selection-description.js +18 -0
- package/dist/selection/selection-restore.d.ts +46 -0
- package/dist/selection/selection-restore.js +66 -0
- package/dist/selection/selection-state.svelte.d.ts +72 -0
- package/dist/selection/selection-state.svelte.js +247 -0
- package/dist/selection/shared-keydown.d.ts +61 -0
- package/dist/selection/shared-keydown.js +150 -0
- package/dist/selection/table-endpoint-snap.d.ts +55 -0
- package/dist/selection/table-endpoint-snap.js +143 -0
- package/dist/selection/table-rect-extend.d.ts +23 -0
- package/dist/selection/table-rect-extend.js +46 -0
- package/dist/selection/widget-range-paint.d.ts +12 -0
- package/dist/selection/widget-range-paint.js +44 -0
- package/dist/styles/editor-theme.css +151 -0
- package/dist/styles/editor.css +585 -0
- package/dist/testing/conformance-core.d.ts +45 -0
- package/dist/testing/conformance-core.js +105 -0
- package/dist/testing/container-conformance.d.ts +137 -0
- package/dist/testing/container-conformance.js +533 -0
- package/dist/testing/headless-actions.d.ts +37 -0
- package/dist/testing/headless-actions.js +118 -0
- package/dist/testing/inline-conformance.d.ts +50 -0
- package/dist/testing/inline-conformance.js +442 -0
- package/dist/testing/kind-conformance.d.ts +54 -0
- package/dist/testing/kind-conformance.js +325 -0
- package/dist/testing/mount-dom-stubs.d.ts +8 -0
- package/dist/testing/mount-dom-stubs.js +19 -0
- package/dist/testing/parse-convergence.d.ts +14 -0
- package/dist/testing/parse-convergence.js +81 -0
- package/dist/testing.d.ts +20 -0
- package/dist/testing.js +61 -0
- package/dist/tree-operations/blockquote.d.ts +18 -0
- package/dist/tree-operations/blockquote.js +59 -0
- package/dist/tree-operations/children.d.ts +17 -0
- package/dist/tree-operations/children.js +56 -0
- package/dist/tree-operations/cleanup.d.ts +10 -0
- package/dist/tree-operations/cleanup.js +25 -0
- package/dist/tree-operations/clone.d.ts +5 -0
- package/dist/tree-operations/clone.js +43 -0
- package/dist/tree-operations/container-lift.d.ts +9 -0
- package/dist/tree-operations/container-lift.js +29 -0
- package/dist/tree-operations/index.d.ts +16 -0
- package/dist/tree-operations/index.js +14 -0
- package/dist/tree-operations/list/empty-check.d.ts +7 -0
- package/dist/tree-operations/list/empty-check.js +19 -0
- package/dist/tree-operations/list/exit-replacement.d.ts +13 -0
- package/dist/tree-operations/list/exit-replacement.js +49 -0
- package/dist/tree-operations/list/item-partition.d.ts +13 -0
- package/dist/tree-operations/list/item-partition.js +33 -0
- package/dist/tree-operations/list/list-builders.d.ts +44 -0
- package/dist/tree-operations/list/list-builders.js +129 -0
- package/dist/tree-operations/list/ordered-markers.d.ts +36 -0
- package/dist/tree-operations/list/ordered-markers.js +114 -0
- package/dist/tree-operations/list/reconcile-task.d.ts +12 -0
- package/dist/tree-operations/list/reconcile-task.js +47 -0
- package/dist/tree-operations/list/sublist-separator.d.ts +13 -0
- package/dist/tree-operations/list/sublist-separator.js +34 -0
- package/dist/tree-operations/list/terminator.d.ts +17 -0
- package/dist/tree-operations/list/terminator.js +60 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +29 -0
- package/dist/tree-operations/list/unwrap-merge.js +202 -0
- package/dist/tree-operations/node-ops.d.ts +296 -0
- package/dist/tree-operations/node-ops.js +1428 -0
- package/dist/tree-operations/parse-block.d.ts +3 -0
- package/dist/tree-operations/parse-block.js +8 -0
- package/dist/tree-operations/paste/apply.d.ts +12 -0
- package/dist/tree-operations/paste/apply.js +75 -0
- package/dist/tree-operations/paste/body-write.d.ts +19 -0
- package/dist/tree-operations/paste/body-write.js +53 -0
- package/dist/tree-operations/paste/container-match.d.ts +32 -0
- package/dist/tree-operations/paste/container-match.js +238 -0
- package/dist/tree-operations/paste/container-paste.d.ts +10 -0
- package/dist/tree-operations/paste/container-paste.js +27 -0
- package/dist/tree-operations/paste/dispatch.d.ts +61 -0
- package/dist/tree-operations/paste/dispatch.js +138 -0
- package/dist/tree-operations/paste/find-enclosing-list.d.ts +8 -0
- package/dist/tree-operations/paste/find-enclosing-list.js +30 -0
- package/dist/tree-operations/paste/focus-target.d.ts +27 -0
- package/dist/tree-operations/paste/focus-target.js +40 -0
- package/dist/tree-operations/paste/hooks.d.ts +17 -0
- package/dist/tree-operations/paste/hooks.js +80 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +29 -0
- package/dist/tree-operations/paste/list-absorb.js +106 -0
- package/dist/tree-operations/paste/list-break-out.d.ts +42 -0
- package/dist/tree-operations/paste/list-break-out.js +136 -0
- package/dist/tree-operations/paste/parent-scope.d.ts +17 -0
- package/dist/tree-operations/paste/parent-scope.js +35 -0
- package/dist/tree-operations/paste/paste-deps.d.ts +20 -0
- package/dist/tree-operations/paste/paste-deps.js +6 -0
- package/dist/tree-operations/paste/paste-replacement.d.ts +8 -0
- package/dist/tree-operations/paste/paste-replacement.js +60 -0
- package/dist/tree-operations/paste/paste-transforms.d.ts +25 -0
- package/dist/tree-operations/paste/paste-transforms.js +72 -0
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +29 -0
- package/dist/tree-operations/paste/replace-block-at-parent.js +75 -0
- package/dist/tree-operations/paste/strategy.d.ts +9 -0
- package/dist/tree-operations/paste/strategy.js +20 -0
- package/dist/tree-operations/paste/table-slice.d.ts +10 -0
- package/dist/tree-operations/paste/table-slice.js +39 -0
- package/dist/tree-operations/paste-surfaces.d.ts +61 -0
- package/dist/tree-operations/paste-surfaces.js +15 -0
- package/dist/tree-operations/path-mutate.d.ts +12 -0
- package/dist/tree-operations/path-mutate.js +20 -0
- package/dist/tree-operations/reorder-unit.d.ts +17 -0
- package/dist/tree-operations/reorder-unit.js +37 -0
- package/dist/tree-operations/reorder.d.ts +13 -0
- package/dist/tree-operations/reorder.js +57 -0
- package/dist/tree-operations/sharing.d.ts +18 -0
- package/dist/tree-operations/sharing.js +14 -0
- package/dist/tree-operations/splice-many.d.ts +9 -0
- package/dist/tree-operations/splice-many.js +22 -0
- package/dist/tree-operations/structural-change.d.ts +65 -0
- package/dist/tree-operations/structural-change.js +117 -0
- package/dist/tree-operations/sub-table-copy.d.ts +6 -0
- package/dist/tree-operations/sub-table-copy.js +43 -0
- package/dist/tree-operations/table-mutations.d.ts +17 -0
- package/dist/tree-operations/table-mutations.js +101 -0
- package/dist/tree-operations/unshare.d.ts +101 -0
- package/dist/tree-operations/unshare.js +248 -0
- package/dist/undo/manager.d.ts +2 -0
- package/dist/undo/manager.js +50 -0
- package/dist/undo/types.d.ts +44 -0
- package/dist/undo/types.js +7 -0
- package/docs/guide/consumer-guide.md +1098 -0
- package/docs/guide/directives.md +223 -0
- package/docs/guide/plugin-api.md +329 -0
- package/docs/guide/plugin-guide/conspiracy.gif +0 -0
- package/docs/guide/plugin-guide/parrot-frames.md +209 -0
- package/docs/guide/plugin-guide/parrot.gif +0 -0
- package/docs/guide/plugin-guide.md +1693 -0
- package/docs/guide/plugin-testing.md +463 -0
- package/package.json +238 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime `BlockKind → component` map. BlockHost looks up by kind; plugin
|
|
3
|
+
* kinds register a descriptor plus a component entry.
|
|
4
|
+
*/
|
|
5
|
+
import { isBuiltinBlockKind } from '../core/nodes';
|
|
6
|
+
import { deletePluginEntries, registerOnce } from './register-once';
|
|
7
|
+
/**
|
|
8
|
+
* Typed constructor for a registry entry: the component publishes one of the two sanctioned
|
|
9
|
+
* surface shapes, and its props are a subset of what BlockHost passes. A container that forgot
|
|
10
|
+
* its `containerApi` fails here rather than mounting as a block nothing can focus. The internal
|
|
11
|
+
* cast widens contravariant props to the registry's `Record<string, unknown>`.
|
|
12
|
+
*/
|
|
13
|
+
export function defineBlockComponent(component, extraProps) {
|
|
14
|
+
return { component: component, extraProps };
|
|
15
|
+
}
|
|
16
|
+
const registry = new Map();
|
|
17
|
+
export function registerBlockComponent(kind, entry) {
|
|
18
|
+
registerOnce(registry.has(kind), () => registry.set(kind, entry), `registerBlockComponent: "${kind}" is already registered. Components are register-once.`);
|
|
19
|
+
}
|
|
20
|
+
export function getBlockComponent(kind) {
|
|
21
|
+
return registry.get(kind);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Probe whether a component is registered — `registerBlockComponent` throws on duplicate, so a
|
|
25
|
+
* plugin registering idempotently (HMR / re-import) guards on this. Takes a plain name.
|
|
26
|
+
*/
|
|
27
|
+
export function isBlockComponentRegistered(kind) {
|
|
28
|
+
return registry.has(kind);
|
|
29
|
+
}
|
|
30
|
+
/** Test-only. Removes every non-built-in component entry; built-ins survive. */
|
|
31
|
+
export function __removePluginComponentsForTests() {
|
|
32
|
+
deletePluginEntries(registry, isBuiltinBlockKind);
|
|
33
|
+
}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import { type AnyBlockKind, type CstNode } from '../core/nodes';
|
|
2
|
+
import type { NodeView } from '../core/node-views';
|
|
3
|
+
import type { ContainerBodyWrap } from '../core/parser';
|
|
4
|
+
import type { ChildRawChange } from './child-spans';
|
|
5
|
+
import type { ClosureBlock } from './closure';
|
|
6
|
+
import type { KeyBinding } from './keybindings';
|
|
7
|
+
/**
|
|
8
|
+
* Backspace-merge role. Full spec: `docs/design/editor.md` — Merge eligibility: roles, not pairs.
|
|
9
|
+
* Lives here, not `merge-rules.ts`, so the descriptor registry can reference it without a cycle.
|
|
10
|
+
* The tuple is the one home: G1.30's runtime vocabulary is derived from it, not re-listed.
|
|
11
|
+
*/
|
|
12
|
+
export declare const MERGE_ROLES: readonly ["prose", "prose-absorber", "container", "self-merge", "not-mergeable"];
|
|
13
|
+
export type MergeRole = (typeof MERGE_ROLES)[number];
|
|
14
|
+
/** G1.30's runtime half, for the registrations a `MergeRole` parameter cannot bind (plugin casts). */
|
|
15
|
+
export declare const isKnownMergeRole: (role: string) => boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The first-child Backspace strategies, each answering whether it carries child 0 out of the
|
|
18
|
+
* container. G1.37's chrome arms read that answer, so a new strategy cannot arrive without one.
|
|
19
|
+
*/
|
|
20
|
+
declare const FIRST_CHILD_BACKSPACE_LIFTS: {
|
|
21
|
+
readonly 'lift-first-child-drop-opener': true;
|
|
22
|
+
readonly 'lift-first-child-keep-container': true;
|
|
23
|
+
readonly 'keep-reserved-chrome': false;
|
|
24
|
+
readonly 'list-item-cascade': false;
|
|
25
|
+
};
|
|
26
|
+
export type FirstChildBackspace = keyof typeof FIRST_CHILD_BACKSPACE_LIFTS;
|
|
27
|
+
export declare const liftsFirstChild: (strategy: FirstChildBackspace) => boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Backspace-at-start behavior for a container's children; strategies live in
|
|
30
|
+
* `editor-actions/unwrap-strategies.ts`. Absent = default (first child delegates upward;
|
|
31
|
+
* middle children follow merge-rules).
|
|
32
|
+
*/
|
|
33
|
+
export interface UnwrapRole {
|
|
34
|
+
/**
|
|
35
|
+
* `'-drop-opener'` is the quote shape, whose opener line goes with the lift so the
|
|
36
|
+
* remainder reparses as a plain quote; `'-keep-container'` is the shape `rebuildRaw`
|
|
37
|
+
* re-emits, so the remainder keeps its kind; `'keep-reserved-chrome'` declines, because
|
|
38
|
+
* child 0 is the container's chrome and a lift would carry it out.
|
|
39
|
+
*/
|
|
40
|
+
firstChildBackspace: FirstChildBackspace;
|
|
41
|
+
middleChildBackspace: 'default-merge' | 'list-item-cascade';
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A container whose direct children reorder among themselves (Alt+Arrow / drag handle). The
|
|
45
|
+
* reorder walk resolves the unit at the nearest ancestor declaring this; absent = children are
|
|
46
|
+
* NOT independently reorderable, and the container declines the reorder at its boundary.
|
|
47
|
+
*/
|
|
48
|
+
export interface ReorderChildrenRole {
|
|
49
|
+
/**
|
|
50
|
+
* Direct children carry position-dependent markers needing a renumber after a permutation
|
|
51
|
+
* (ordered-list numbering). Absent = position-independent, so `rebuildRaw` alone re-emits.
|
|
52
|
+
*/
|
|
53
|
+
renumberMarkers?: true;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* A caret landing inside a kind's own addressing: the child path a `focusByPath` walks (empty
|
|
57
|
+
* for a leaf, which is its own landing) and the offset within the leaf it names. `CURSOR_END`
|
|
58
|
+
* is a legal offset here, and the one way to say "wherever that leaf ends".
|
|
59
|
+
*/
|
|
60
|
+
export interface CaretTarget {
|
|
61
|
+
path: number[];
|
|
62
|
+
offset: number;
|
|
63
|
+
}
|
|
64
|
+
export interface BlockKindDescriptor {
|
|
65
|
+
mergeRole: MergeRole;
|
|
66
|
+
editable: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* The kind's closure-matrix row: its answer to every cross-cutting editor system. Required,
|
|
69
|
+
* so a kind cannot ship closed under a subsystem nobody asked about.
|
|
70
|
+
*/
|
|
71
|
+
closure: ClosureBlock;
|
|
72
|
+
/**
|
|
73
|
+
* Markdown parsing to a tree containing this kind, for the conformance battery; omit for
|
|
74
|
+
* kinds no document scan yields in isolation. G1.24 checks a declared fixture, not existence.
|
|
75
|
+
*/
|
|
76
|
+
conformanceFixture?: string;
|
|
77
|
+
/**
|
|
78
|
+
* `'whole-block'` opts an opaque, childless block into the focus-then-delete model: arrow
|
|
79
|
+
* traversal stops on it, and Backspace/Delete focuses it before a second press deletes.
|
|
80
|
+
*/
|
|
81
|
+
blockFocus?: 'whole-block';
|
|
82
|
+
/**
|
|
83
|
+
* Edges whose sibling-paragraph insertion this kind's own editing surface cannot host, so an
|
|
84
|
+
* eligible boundary beside it gets a gap caret (`selection/gap-caret.ts`). Required, with
|
|
85
|
+
* `'none'` the explicit answer: the surface, or an existing affordance, already covers
|
|
86
|
+
* insertion at both edges. An omission once read as that decision; now it cannot compile.
|
|
87
|
+
*/
|
|
88
|
+
gapEdges: 'before' | 'after' | 'both' | 'none';
|
|
89
|
+
isContainer: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Shape of a container's raw↔children relationship (container kinds only).
|
|
92
|
+
* `'strip'` — outer syntax wraps a strip-and-recurse body: `strip(raw) === serialize(children)`.
|
|
93
|
+
* `'grid'` — cells parse straight from `raw`, and that does not hold. A cell index addresses
|
|
94
|
+
* the OUTER grid as `row * width + column`: rows of equal-width cells, the width read off row 0.
|
|
95
|
+
* `'opaque'` — `raw` is authoritative, not a strip-decomposition; exempt from the stale-raw
|
|
96
|
+
* byte-check, and its `rebuildRaw` must be deterministic over children/metadata/inner trivia.
|
|
97
|
+
*/
|
|
98
|
+
containerContract?: 'strip' | 'grid' | 'opaque';
|
|
99
|
+
/**
|
|
100
|
+
* The wrap this container's opener parses its body with, when the body sits between chrome
|
|
101
|
+
* lines of the container's own: a parse then peels the chrome-adjacent blank line into
|
|
102
|
+
* `innerPrefix`/`innerSuffix` (`core/parser.parseContainerBody`), which is what makes that
|
|
103
|
+
* line the wrap's rather than a body block. Absent = the body starts at the container's own
|
|
104
|
+
* first line (blockquote, list item) and `innerPrefix` is always empty.
|
|
105
|
+
*/
|
|
106
|
+
bodyWrap?: ContainerBodyWrap;
|
|
107
|
+
/**
|
|
108
|
+
* The kind has no standalone line recognizer, so `parse(raw)` would NOT reproduce it: its
|
|
109
|
+
* container's rebuildRaw owns the syntax, and a content edit writes `raw` without re-deriving.
|
|
110
|
+
*/
|
|
111
|
+
contextDependentKind?: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Make `raw` legal as this kind's own bytes: escape what the grammar would restructure, and
|
|
114
|
+
* restore, drop, escalate or sanitize the block's own syntax around a write that broke it
|
|
115
|
+
* (`schema/fenced-code-raw.ts` is the worked rule). Reads `node` for the block's own shape,
|
|
116
|
+
* must be idempotent, and owes callers a caret image when it is not prefix-composable. Every
|
|
117
|
+
* write sink applies it.
|
|
118
|
+
*/
|
|
119
|
+
normalizeRawWrite?: (raw: string, node: NodeView) => string;
|
|
120
|
+
/**
|
|
121
|
+
* Make text legal as a CHILD's raw inside this container's body (container kinds only) —
|
|
122
|
+
* `normalizeRawWrite`'s ancestor-side counterpart, for a container whose FIXED terminator
|
|
123
|
+
* (`</details>`) a body write could otherwise reproduce and truncate on. Applied at the write
|
|
124
|
+
* sinks upstream of the kind-deriving reparse, since the escape changes what the bytes parse
|
|
125
|
+
* to. `normalize` is idempotent and LINE-LOCAL; `mapOffset` is its exact caret image.
|
|
126
|
+
*/
|
|
127
|
+
bodyWrite?: {
|
|
128
|
+
normalize: (raw: string) => string;
|
|
129
|
+
mapOffset: (raw: string, offset: number) => number;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Child index 0 is a reserved chrome leaf of the given kind — a title whose bytes live in the
|
|
133
|
+
* container's own raw. Enforced: always present, single-line, cleared-not-deleted by range
|
|
134
|
+
* ops, kind-stable. Register the chrome kind itself via `registerChromeLeaf`.
|
|
135
|
+
*/
|
|
136
|
+
reservedChrome?: {
|
|
137
|
+
kind: AnyBlockKind;
|
|
138
|
+
/**
|
|
139
|
+
* PURE model probe (node in, bool out; no DOM, no component state) for collapsed state.
|
|
140
|
+
* Collapse-aware walks stop at the chrome leaf rather than reach into a clamped-out body.
|
|
141
|
+
*/
|
|
142
|
+
isCollapsed?: (node: NodeView) => boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Pure patch that expands a collapsed node, so a reveal aimed at a clamped-out body child
|
|
145
|
+
* opens the container. Absent or null = no door, and the reveal degrades to the chrome row.
|
|
146
|
+
*/
|
|
147
|
+
expandPatch?: (node: NodeView) => Record<string, unknown> | null;
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* How a clipboard whose TOP block is this kind merges into a same-kind ancestor instead of
|
|
151
|
+
* nesting as a sub-container. Absent = always nest (the default structural path).
|
|
152
|
+
*/
|
|
153
|
+
containerPaste?: {
|
|
154
|
+
/** Confirms the merge against the candidate ancestor (e.g. equal list ordered flags). */
|
|
155
|
+
matchesAncestor: (clipboardTop: CstNode, ancestor: CstNode) => boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Non-empty single-block targets: splice clipboard items as siblings in the enclosing
|
|
158
|
+
* container when it matches, split it when it doesn't. The apply path is list-shaped.
|
|
159
|
+
*/
|
|
160
|
+
siblingAbsorb: boolean;
|
|
161
|
+
};
|
|
162
|
+
/** Backspace-at-start unwrap strategies for this container's children. Absent = default dispatch. */
|
|
163
|
+
unwrapRole?: UnwrapRole;
|
|
164
|
+
/**
|
|
165
|
+
* `'complete-marker'` consumes EVERY space typed at the content start of an empty child, at
|
|
166
|
+
* any child index, repeated presses included. A `rebuildRaw` that canonicalizes the marker's
|
|
167
|
+
* trailing space is what makes the first press byte-honest: the space it took reappears the
|
|
168
|
+
* moment content arrives. Without one, every press is simply eaten.
|
|
169
|
+
*/
|
|
170
|
+
contentStartSpace?: 'complete-marker';
|
|
171
|
+
/** This container's direct children reorder among themselves. Absent = not reorder-within. */
|
|
172
|
+
reorderChildren?: ReorderChildrenRole;
|
|
173
|
+
/** Chord -> command map, consulted before the global table so a kind can shadow a global. */
|
|
174
|
+
keymap?: KeyBinding[];
|
|
175
|
+
/** True when the block's raw contains inline syntax the inline parser should process on every edit. */
|
|
176
|
+
supportsInline: boolean;
|
|
177
|
+
/**
|
|
178
|
+
* Content range (post-marker offsets) in a node's raw, for prose kinds whose markers occupy
|
|
179
|
+
* a prefix of it. Absent = the default `start=0, end=displayLength`.
|
|
180
|
+
*/
|
|
181
|
+
getContentRange?: (node: NodeView) => {
|
|
182
|
+
start: number;
|
|
183
|
+
end: number;
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* `'demote-first'` makes Backspace at the CONTENT start give up this kind's own structural
|
|
187
|
+
* bytes before merging — the first press a user can aim at markers they cannot see
|
|
188
|
+
* (live-mode.md § 4.4).
|
|
189
|
+
* Marker-hiding modes only; requires `getContentRange` (G1.32). Absent = the merge cascade.
|
|
190
|
+
*/
|
|
191
|
+
contentStartBackspace?: 'demote-first';
|
|
192
|
+
/**
|
|
193
|
+
* Recompute `raw` from children + metadata; built-ins in `schema/container-rebuilders.ts`.
|
|
194
|
+
* `changed` names the one child whose own raw just moved, for a rebuilder that can rewrite
|
|
195
|
+
* that child's region instead of re-reading every child. Ignoring it is always correct.
|
|
196
|
+
*/
|
|
197
|
+
rebuildRaw?: (node: CstNode, changed?: ChildRawChange) => void;
|
|
198
|
+
/** Inline image nodes render as widgets in this kind; opt out (e.g. tableCell) for alt-only fallback. */
|
|
199
|
+
renderImagesAsWidgets?: boolean;
|
|
200
|
+
/**
|
|
201
|
+
* Translate a foreign drag's viewport point into an internal focus offset, for a kind with
|
|
202
|
+
* its own coordinate addressing; null when the point is outside an addressable region.
|
|
203
|
+
* Patched in from `components/built-in-blocks.ts`, so schema keeps no component import.
|
|
204
|
+
*/
|
|
205
|
+
foreignDragHitTest?: (blockEl: HTMLElement, clientX: number, clientY: number) => number | null;
|
|
206
|
+
/**
|
|
207
|
+
* Translate a point in this block's box into a caret landing in the kind's own addressing.
|
|
208
|
+
* TOTAL within the box, unlike {@link foreignDragHitTest}: snap to the NEAREST leaf where a
|
|
209
|
+
* drag declines off-cell.
|
|
210
|
+
*/
|
|
211
|
+
caretTargetAtPoint?: (blockEl: HTMLElement, clientX: number, clientY: number) => CaretTarget | null;
|
|
212
|
+
/** O(1) content-height estimate in px for virtual rendering — no subtree walk.
|
|
213
|
+
* The oracle adds block chrome; the measured cache still supersedes. */
|
|
214
|
+
estimateHeight?: (node: NodeView, env: {
|
|
215
|
+
width: number;
|
|
216
|
+
}) => number;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* The descriptor's fields as data, for the census that holds the published field reference
|
|
220
|
+
* (`docs/design/plugin-contract.md`) to this type. Complete in both directions below, so the
|
|
221
|
+
* manifest cannot drift from the shape it enumerates.
|
|
222
|
+
*/
|
|
223
|
+
export declare const DESCRIPTOR_FIELDS: readonly ["mergeRole", "editable", "closure", "conformanceFixture", "blockFocus", "gapEdges", "isContainer", "containerContract", "bodyWrap", "contextDependentKind", "normalizeRawWrite", "bodyWrite", "reservedChrome", "containerPaste", "unwrapRole", "contentStartSpace", "reorderChildren", "keymap", "supportsInline", "getContentRange", "contentStartBackspace", "rebuildRaw", "renderImagesAsWidgets", "foreignDragHitTest", "caretTargetAtPoint", "estimateHeight"];
|
|
224
|
+
/**
|
|
225
|
+
* Container-only fields as one unit: `contract` and `rebuildRaw` are required together, and a
|
|
226
|
+
* leaf has no way to carry any of them. Field semantics live on `BlockKindDescriptor`, the flat
|
|
227
|
+
* read-side shape the group normalizes into.
|
|
228
|
+
*/
|
|
229
|
+
export interface ContainerDescriptorGroup {
|
|
230
|
+
contract: 'strip' | 'grid' | 'opaque';
|
|
231
|
+
rebuildRaw: (node: CstNode, changed?: ChildRawChange) => void;
|
|
232
|
+
bodyWrap?: ContainerBodyWrap;
|
|
233
|
+
reservedChrome?: BlockKindDescriptor['reservedChrome'];
|
|
234
|
+
containerPaste?: BlockKindDescriptor['containerPaste'];
|
|
235
|
+
unwrapRole?: UnwrapRole;
|
|
236
|
+
contentStartSpace?: BlockKindDescriptor['contentStartSpace'];
|
|
237
|
+
reorderChildren?: ReorderChildrenRole;
|
|
238
|
+
bodyWrite?: BlockKindDescriptor['bodyWrite'];
|
|
239
|
+
}
|
|
240
|
+
export declare const CONTAINER_ONLY_KEYS: readonly ["isContainer", "containerContract", "bodyWrap", "rebuildRaw", "reservedChrome", "containerPaste", "unwrapRole", "contentStartSpace", "reorderChildren", "bodyWrite"];
|
|
241
|
+
type ContainerOnlyKey = (typeof CONTAINER_ONLY_KEYS)[number];
|
|
242
|
+
/**
|
|
243
|
+
* The write-side shape `registerBlockKind` accepts. `isContainer` is derived
|
|
244
|
+
* (`container !== undefined`), never declared.
|
|
245
|
+
*/
|
|
246
|
+
export interface BlockKindRegistration extends Omit<BlockKindDescriptor, ContainerOnlyKey> {
|
|
247
|
+
container?: ContainerDescriptorGroup;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* The augment shape: top-level fields replace; a partial `container` group merges into the
|
|
251
|
+
* existing group, and is refused outright for a kind registered as a leaf.
|
|
252
|
+
*/
|
|
253
|
+
export type BlockKindAugmentation = Partial<Omit<BlockKindRegistration, 'container'>> & {
|
|
254
|
+
container?: Partial<ContainerDescriptorGroup>;
|
|
255
|
+
};
|
|
256
|
+
export declare function registerBlockKind(kind: AnyBlockKind, registration: BlockKindRegistration): void;
|
|
257
|
+
/**
|
|
258
|
+
* Merge fields into a plugin's own registration — the public authoring entry. Rejects built-in
|
|
259
|
+
* kinds (built-in wire-up uses the internal `augmentBuiltin` seam) and kinds owned by a
|
|
260
|
+
* different plugin, so cross-plugin last-writer-wins is a loud throw rather than a silent
|
|
261
|
+
* override. A kind with no recorded owner (declared outside any plugin install) stays open.
|
|
262
|
+
*/
|
|
263
|
+
export declare function augmentBlockKind(kind: AnyBlockKind, fields: BlockKindAugmentation): void;
|
|
264
|
+
/**
|
|
265
|
+
* Internal seam for augmenting a BUILT-IN descriptor: top-of-DAG wire-up
|
|
266
|
+
* (`components/built-in-blocks.ts`) patches in behavior this file cannot import. Kept off the
|
|
267
|
+
* public `@voithos-labs/aragonite/plugin` surface so a plugin can't rewrite a built-in.
|
|
268
|
+
*/
|
|
269
|
+
export declare function augmentBuiltin(kind: AnyBlockKind, fields: BlockKindAugmentation): void;
|
|
270
|
+
export declare function getBlockKindDescriptor(kind: AnyBlockKind): BlockKindDescriptor;
|
|
271
|
+
export declare function tryGetBlockKindDescriptor(kind: AnyBlockKind): BlockKindDescriptor | undefined;
|
|
272
|
+
/**
|
|
273
|
+
* Probe whether a kind descriptor exists — `registerBlockKind` throws on duplicate, so a plugin
|
|
274
|
+
* registering idempotently (HMR / re-import) guards on this. Takes a plain, unbranded name.
|
|
275
|
+
*/
|
|
276
|
+
export declare function isBlockKindRegistered(kind: string): boolean;
|
|
277
|
+
/** Every kind currently registered. Caller must not mutate. */
|
|
278
|
+
export declare function getAllRegisteredKinds(): AnyBlockKind[];
|
|
279
|
+
/** Test-only. Removes every non-built-in descriptor; built-ins survive. */
|
|
280
|
+
export declare function __removePluginBlockKindsForTests(): void;
|
|
281
|
+
export {};
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { isBuiltinBlockKind } from '../core/nodes';
|
|
2
|
+
import { enqueueRegistrationCheck } from './registration-pending';
|
|
3
|
+
import { currentInstallingPlugin, pluginKindOwner } from './plugin-install';
|
|
4
|
+
import { deletePluginEntries, registerOnce } from './register-once';
|
|
5
|
+
/**
|
|
6
|
+
* Backspace-merge role. Full spec: `docs/design/editor.md` — Merge eligibility: roles, not pairs.
|
|
7
|
+
* Lives here, not `merge-rules.ts`, so the descriptor registry can reference it without a cycle.
|
|
8
|
+
* The tuple is the one home: G1.30's runtime vocabulary is derived from it, not re-listed.
|
|
9
|
+
*/
|
|
10
|
+
export const MERGE_ROLES = [
|
|
11
|
+
'prose',
|
|
12
|
+
'prose-absorber',
|
|
13
|
+
'container',
|
|
14
|
+
'self-merge',
|
|
15
|
+
'not-mergeable'
|
|
16
|
+
];
|
|
17
|
+
/** G1.30's runtime half, for the registrations a `MergeRole` parameter cannot bind (plugin casts). */
|
|
18
|
+
export const isKnownMergeRole = (role) => MERGE_ROLES.includes(role);
|
|
19
|
+
/**
|
|
20
|
+
* The first-child Backspace strategies, each answering whether it carries child 0 out of the
|
|
21
|
+
* container. G1.37's chrome arms read that answer, so a new strategy cannot arrive without one.
|
|
22
|
+
*/
|
|
23
|
+
const FIRST_CHILD_BACKSPACE_LIFTS = {
|
|
24
|
+
'lift-first-child-drop-opener': true,
|
|
25
|
+
'lift-first-child-keep-container': true,
|
|
26
|
+
'keep-reserved-chrome': false,
|
|
27
|
+
'list-item-cascade': false
|
|
28
|
+
};
|
|
29
|
+
export const liftsFirstChild = (strategy) => FIRST_CHILD_BACKSPACE_LIFTS[strategy];
|
|
30
|
+
/**
|
|
31
|
+
* The descriptor's fields as data, for the census that holds the published field reference
|
|
32
|
+
* (`docs/design/plugin-contract.md`) to this type. Complete in both directions below, so the
|
|
33
|
+
* manifest cannot drift from the shape it enumerates.
|
|
34
|
+
*/
|
|
35
|
+
export const DESCRIPTOR_FIELDS = [
|
|
36
|
+
'mergeRole',
|
|
37
|
+
'editable',
|
|
38
|
+
'closure',
|
|
39
|
+
'conformanceFixture',
|
|
40
|
+
'blockFocus',
|
|
41
|
+
'gapEdges',
|
|
42
|
+
'isContainer',
|
|
43
|
+
'containerContract',
|
|
44
|
+
'bodyWrap',
|
|
45
|
+
'contextDependentKind',
|
|
46
|
+
'normalizeRawWrite',
|
|
47
|
+
'bodyWrite',
|
|
48
|
+
'reservedChrome',
|
|
49
|
+
'containerPaste',
|
|
50
|
+
'unwrapRole',
|
|
51
|
+
'contentStartSpace',
|
|
52
|
+
'reorderChildren',
|
|
53
|
+
'keymap',
|
|
54
|
+
'supportsInline',
|
|
55
|
+
'getContentRange',
|
|
56
|
+
'contentStartBackspace',
|
|
57
|
+
'rebuildRaw',
|
|
58
|
+
'renderImagesAsWidgets',
|
|
59
|
+
'foreignDragHitTest',
|
|
60
|
+
'caretTargetAtPoint',
|
|
61
|
+
'estimateHeight'
|
|
62
|
+
];
|
|
63
|
+
const _descriptorFieldsAreComplete = true;
|
|
64
|
+
void _descriptorFieldsAreComplete;
|
|
65
|
+
// One source for both the type-level Omit and the runtime strip: excess-property checks bite
|
|
66
|
+
// only fresh literals, so a widened value can structurally smuggle these keys past the types.
|
|
67
|
+
export const CONTAINER_ONLY_KEYS = [
|
|
68
|
+
'isContainer',
|
|
69
|
+
'containerContract',
|
|
70
|
+
'bodyWrap',
|
|
71
|
+
'rebuildRaw',
|
|
72
|
+
'reservedChrome',
|
|
73
|
+
'containerPaste',
|
|
74
|
+
'unwrapRole',
|
|
75
|
+
'contentStartSpace',
|
|
76
|
+
'reorderChildren',
|
|
77
|
+
'bodyWrite'
|
|
78
|
+
];
|
|
79
|
+
const _containerOnlyKeysAreComplete = true;
|
|
80
|
+
void _containerOnlyKeysAreComplete;
|
|
81
|
+
function stripContainerOnlyKeys(fields) {
|
|
82
|
+
const stripped = { ...fields };
|
|
83
|
+
for (const key of CONTAINER_ONLY_KEYS)
|
|
84
|
+
delete stripped[key];
|
|
85
|
+
return stripped;
|
|
86
|
+
}
|
|
87
|
+
// ── Registry ────────────────────────────────────────────────────────────────
|
|
88
|
+
const registry = new Map();
|
|
89
|
+
// ── Public API ──────────────────────────────────────────────────────────────
|
|
90
|
+
export function registerBlockKind(kind, registration) {
|
|
91
|
+
const isDuplicate = registry.has(kind);
|
|
92
|
+
const owner = isDuplicate ? pluginKindOwner(kind) : null;
|
|
93
|
+
registerOnce(isDuplicate, () => {
|
|
94
|
+
registry.set(kind, normalizeRegistration(registration));
|
|
95
|
+
enqueueRegistrationCheck(kind);
|
|
96
|
+
}, `registerBlockKind: "${kind}" is already registered. Kinds are register-once — ` +
|
|
97
|
+
`use augmentBlockKind to merge fields into an existing registration.` +
|
|
98
|
+
(owner ? ` — first declared by plugin '${owner}'` : ''));
|
|
99
|
+
}
|
|
100
|
+
// The flat part is stripped and isContainer derived, so the `container` group is the only
|
|
101
|
+
// source of container fields — a widened or stale-keyed registration object cannot leak.
|
|
102
|
+
function normalizeRegistration(registration) {
|
|
103
|
+
const { container, ...rest } = registration;
|
|
104
|
+
const flat = stripContainerOnlyKeys(rest);
|
|
105
|
+
if (!container)
|
|
106
|
+
return { ...flat, isContainer: false };
|
|
107
|
+
const { contract, ...containerFields } = container;
|
|
108
|
+
return { ...flat, ...containerFields, isContainer: true, containerContract: contract };
|
|
109
|
+
}
|
|
110
|
+
// Throws if the kind was never registered (no accidental creation via partial data). The
|
|
111
|
+
// built-in-vs-plugin gate lives in the two public entries below; the leaf/container gate lives
|
|
112
|
+
// here so both entries inherit it.
|
|
113
|
+
function mergeBlockKindFields(entry, kind, fields) {
|
|
114
|
+
const existing = registry.get(kind);
|
|
115
|
+
if (!existing) {
|
|
116
|
+
throw new Error(`${entry}: cannot augment "${kind}" — no base descriptor. Call registerBlockKind first.`);
|
|
117
|
+
}
|
|
118
|
+
const { container, ...rest } = fields;
|
|
119
|
+
const next = { ...existing, ...stripContainerOnlyKeys(rest) };
|
|
120
|
+
if (container) {
|
|
121
|
+
if (!existing.isContainer) {
|
|
122
|
+
throw new Error(`${entry}: cannot augment "${kind}" with container fields — it was registered as a leaf`);
|
|
123
|
+
}
|
|
124
|
+
// Merge, never unset: skipping undefined keeps an explicitly-undefined group field from
|
|
125
|
+
// breaking the contract/rebuild pairing. Keyed off the group, not a hand-kept field list.
|
|
126
|
+
const { contract, ...group } = container;
|
|
127
|
+
next.containerContract = contract ?? existing.containerContract;
|
|
128
|
+
Object.assign(next, Object.fromEntries(Object.entries(group).filter(([, value]) => value !== undefined)));
|
|
129
|
+
}
|
|
130
|
+
registry.set(kind, next);
|
|
131
|
+
enqueueRegistrationCheck(kind);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Merge fields into a plugin's own registration — the public authoring entry. Rejects built-in
|
|
135
|
+
* kinds (built-in wire-up uses the internal `augmentBuiltin` seam) and kinds owned by a
|
|
136
|
+
* different plugin, so cross-plugin last-writer-wins is a loud throw rather than a silent
|
|
137
|
+
* override. A kind with no recorded owner (declared outside any plugin install) stays open.
|
|
138
|
+
*/
|
|
139
|
+
export function augmentBlockKind(kind, fields) {
|
|
140
|
+
if (isBuiltinBlockKind(kind)) {
|
|
141
|
+
throw new Error(`augmentBlockKind: "${kind}" is a built-in kind — the plugin surface may only augment ` +
|
|
142
|
+
`plugin-declared kinds.`);
|
|
143
|
+
}
|
|
144
|
+
const owner = pluginKindOwner(kind);
|
|
145
|
+
const installer = currentInstallingPlugin();
|
|
146
|
+
if (owner !== null && owner !== installer) {
|
|
147
|
+
throw new Error(`augmentBlockKind: "${kind}" is owned by plugin '${owner}' — ` +
|
|
148
|
+
(installer
|
|
149
|
+
? `plugin '${installer}' may not augment another plugin's kind.`
|
|
150
|
+
: `only plugin '${owner}' may augment its own kind, from its setup.`));
|
|
151
|
+
}
|
|
152
|
+
mergeBlockKindFields('augmentBlockKind', kind, fields);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Internal seam for augmenting a BUILT-IN descriptor: top-of-DAG wire-up
|
|
156
|
+
* (`components/built-in-blocks.ts`) patches in behavior this file cannot import. Kept off the
|
|
157
|
+
* public `@voithos-labs/aragonite/plugin` surface so a plugin can't rewrite a built-in.
|
|
158
|
+
*/
|
|
159
|
+
export function augmentBuiltin(kind, fields) {
|
|
160
|
+
mergeBlockKindFields('augmentBuiltin', kind, fields);
|
|
161
|
+
}
|
|
162
|
+
export function getBlockKindDescriptor(kind) {
|
|
163
|
+
const d = registry.get(kind);
|
|
164
|
+
if (!d) {
|
|
165
|
+
throw new Error(`getBlockKindDescriptor: no descriptor registered for kind "${kind}". ` +
|
|
166
|
+
`Register at module load (see built-in-descriptors.ts).`);
|
|
167
|
+
}
|
|
168
|
+
return d;
|
|
169
|
+
}
|
|
170
|
+
export function tryGetBlockKindDescriptor(kind) {
|
|
171
|
+
return registry.get(kind);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Probe whether a kind descriptor exists — `registerBlockKind` throws on duplicate, so a plugin
|
|
175
|
+
* registering idempotently (HMR / re-import) guards on this. Takes a plain, unbranded name.
|
|
176
|
+
*/
|
|
177
|
+
export function isBlockKindRegistered(kind) {
|
|
178
|
+
return registry.has(kind);
|
|
179
|
+
}
|
|
180
|
+
/** Every kind currently registered. Caller must not mutate. */
|
|
181
|
+
export function getAllRegisteredKinds() {
|
|
182
|
+
return Array.from(registry.keys());
|
|
183
|
+
}
|
|
184
|
+
/** Test-only. Removes every non-built-in descriptor; built-ins survive. */
|
|
185
|
+
export function __removePluginBlockKindsForTests() {
|
|
186
|
+
deletePluginEntries(registry, isBuiltinBlockKind);
|
|
187
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-kind block-opener registry: the parser's dispatch order and the paragraph-interrupt scan
|
|
3
|
+
* both derive from these declarations, so a registered opener is automatically in both.
|
|
4
|
+
* Paragraph is the unregistered total fallback; setext headings and tables emerge from its
|
|
5
|
+
* continuation scan, not from openers.
|
|
6
|
+
*/
|
|
7
|
+
import { type AnyBlockKind, type CstNode } from '../core/nodes';
|
|
8
|
+
import type { ParsedLine } from '../core/lines';
|
|
9
|
+
/** Minted fresh per block and read synchronously; never a handle to keep past the return. */
|
|
10
|
+
export interface OpenContext {
|
|
11
|
+
lines: ParsedLine[];
|
|
12
|
+
index: number;
|
|
13
|
+
end: number;
|
|
14
|
+
/** The line at `index`, precomputed once per dispatch. */
|
|
15
|
+
line: ParsedLine;
|
|
16
|
+
/** Blank-line bytes folded above this block: non-empty is the "preceded by blank" interrupt context (GFM §4.4). */
|
|
17
|
+
leadingTrivia: string;
|
|
18
|
+
/** True when this parse entry was given a whole document (`parse` scope `'document'`), false for one block's bytes read standalone. Constant through nested container recursion, so a document-position gate composes it with `index`/`depth`/`leadingTrivia`. */
|
|
19
|
+
isDocumentParse: boolean;
|
|
20
|
+
/** Container-nesting depth of this parse level (0 at the document root). A container opener that reparses its body recurses at `depth + 1`; the cap (`MAX_NESTING_DEPTH`) folds deeper input into paragraph content. */
|
|
21
|
+
depth: number;
|
|
22
|
+
/**
|
|
23
|
+
* The instance seam over the global openers. Nested container reparses create their own
|
|
24
|
+
* context and default to the global grammar (the enablement boundary — see `parse`).
|
|
25
|
+
*/
|
|
26
|
+
grammar: GrammarView;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A claim on the lines starting at `ctx.index`. `consumed` is a count, not a resume position,
|
|
30
|
+
* and must be >= 1 — claiming nothing would spin the parse loop, so the dispatch declines it.
|
|
31
|
+
*/
|
|
32
|
+
export interface BlockOpenerResult {
|
|
33
|
+
node: CstNode;
|
|
34
|
+
consumed: number;
|
|
35
|
+
}
|
|
36
|
+
export interface BlockOpener {
|
|
37
|
+
priority: number;
|
|
38
|
+
/** Attempt to open this kind at ctx.index; null declines. */
|
|
39
|
+
tryOpen(ctx: OpenContext): BlockOpenerResult | null;
|
|
40
|
+
/** Whether a line of this kind interrupts an open paragraph (GFM continuation rules); `false` = never. */
|
|
41
|
+
interruptsParagraph: ((lineText: string) => boolean) | false;
|
|
42
|
+
}
|
|
43
|
+
export declare function registerBlockOpener(kind: AnyBlockKind, opener: BlockOpener): void;
|
|
44
|
+
/**
|
|
45
|
+
* Probe whether an opener is registered — `registerBlockOpener` throws on duplicate, so a
|
|
46
|
+
* plugin registering idempotently (HMR / re-import) guards on this. Takes a plain name.
|
|
47
|
+
*/
|
|
48
|
+
export declare function isBlockOpenerRegistered(kind: string): boolean;
|
|
49
|
+
/** A per-instance enablement predicate: `true` keeps the kind's opener in the grammar. */
|
|
50
|
+
export type OpenerEnablement = (kind: AnyBlockKind) => boolean;
|
|
51
|
+
/**
|
|
52
|
+
* The parser's dispatch order (G1.10 warns on a priority tie). The grammar-consumption seam:
|
|
53
|
+
* pending registrations are validated before this read, and flush-before-mark keeps a registrant
|
|
54
|
+
* racing the first read out of the late-opener warn (G1.17). `isEnabled` filters plugin kinds
|
|
55
|
+
* per instance; absent = all definitions, cached. Built-ins are never filtered.
|
|
56
|
+
*/
|
|
57
|
+
export declare function getOrderedOpeners(isEnabled?: OpenerEnablement): readonly BlockOpener[];
|
|
58
|
+
/**
|
|
59
|
+
* Registry-derived paragraph-interrupt check, carrying the same seam duties as
|
|
60
|
+
* `getOrderedOpeners`. NOT enablement-filtered: the parsers call it directly rather than
|
|
61
|
+
* through a GrammarView, so the interrupt scan is the global-grammar boundary.
|
|
62
|
+
*/
|
|
63
|
+
export declare function lineInterruptsParagraph(lineText: string): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* The grammar as a per-instance resolution object over the global openers, threaded by
|
|
66
|
+
* `parse(source, { grammar })`. Only the opener dispatch is instance-resolved; the
|
|
67
|
+
* paragraph-interrupt scan stays on the global-grammar boundary.
|
|
68
|
+
*/
|
|
69
|
+
export interface GrammarView {
|
|
70
|
+
orderedOpeners(): readonly BlockOpener[];
|
|
71
|
+
}
|
|
72
|
+
export declare const defaultGrammarView: GrammarView;
|
|
73
|
+
export declare function createGrammarView(isEnabled: OpenerEnablement): GrammarView;
|
|
74
|
+
/** What a line means at the outer level, which turns on whether a paragraph is open above it. */
|
|
75
|
+
export interface OuterBlockScan {
|
|
76
|
+
/** A lazy continuation: an open paragraph absorbs the starts §4.4 forbids from interrupting. */
|
|
77
|
+
paragraphOpen: boolean;
|
|
78
|
+
/** Defaults to the global openers, the boundary `lineInterruptsParagraph` also reads. */
|
|
79
|
+
grammar?: GrammarView;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Does `line` start a block at the outer level? cmark-gfm ends both a lazy continuation and a
|
|
83
|
+
* table's row scan there, and the paragraph-interrupt exceptions do not apply. Two claims are
|
|
84
|
+
* transparent: a link reference definition is carved out of a paragraph at finalize rather than
|
|
85
|
+
* opened as a block, and indented code cannot open while a paragraph is open to absorb the line.
|
|
86
|
+
*/
|
|
87
|
+
export declare function lineStartsOuterBlock(line: ParsedLine, scan: OuterBlockScan): boolean;
|
|
88
|
+
/** Registry introspection for the invariant guard (G1.10). */
|
|
89
|
+
export declare function listRegisteredOpeners(): {
|
|
90
|
+
kind: AnyBlockKind;
|
|
91
|
+
priority: number;
|
|
92
|
+
}[];
|
|
93
|
+
export declare function __resetBlockOpenersForTests(): void;
|
|
94
|
+
export declare function __removePluginOpenersForTests(): void;
|