@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,294 @@
|
|
|
1
|
+
import { devWarn } from '../dev-warn';
|
|
2
|
+
import { deletePluginEntries, registerOnce, devReplacesRegistration } from './register-once';
|
|
3
|
+
import { tryGetBlockKindDescriptor } from './block-kind-descriptor';
|
|
4
|
+
import { normalizeChord, isChordWellFormed } from './keybindings';
|
|
5
|
+
import { lookupOverride, overrideDecision } from './keybinding-overrides';
|
|
6
|
+
export const GLOBAL_COMMAND_IDS = ['history.undo', 'history.redo'];
|
|
7
|
+
export const BLOCK_COMMAND_IDS = [
|
|
8
|
+
'block.split',
|
|
9
|
+
'block.hardBreak',
|
|
10
|
+
'block.insertTab',
|
|
11
|
+
'block.mergePrev',
|
|
12
|
+
'block.mergeNext',
|
|
13
|
+
'block.moveUp',
|
|
14
|
+
'block.moveDown',
|
|
15
|
+
'format.toggleStrong',
|
|
16
|
+
'format.toggleEmphasis',
|
|
17
|
+
'format.toggleStrikethrough',
|
|
18
|
+
'format.toggleCode',
|
|
19
|
+
'link.openCard',
|
|
20
|
+
'heading.cycle',
|
|
21
|
+
'code.newline',
|
|
22
|
+
'code.indent',
|
|
23
|
+
'code.dedent',
|
|
24
|
+
'code.backspace',
|
|
25
|
+
'code.delete',
|
|
26
|
+
'list.indent',
|
|
27
|
+
'list.unindent',
|
|
28
|
+
'cell.enter',
|
|
29
|
+
'cell.tab',
|
|
30
|
+
'cell.shiftTab',
|
|
31
|
+
// Bound on `tableCell` (the focused surface) but named for their subject: each takes the
|
|
32
|
+
// focused cell's row or column as its index, supplied from the cell's own props.
|
|
33
|
+
'table.insertRowBelow',
|
|
34
|
+
'table.insertRowAbove',
|
|
35
|
+
'table.insertColumnRight',
|
|
36
|
+
'table.insertColumnLeft',
|
|
37
|
+
'table.deleteRow',
|
|
38
|
+
'table.deleteColumn',
|
|
39
|
+
'table.moveRowUp',
|
|
40
|
+
'table.moveRowDown',
|
|
41
|
+
'table.moveColumnLeft',
|
|
42
|
+
'table.moveColumnRight',
|
|
43
|
+
'table.cycleAlignment',
|
|
44
|
+
'chrome.descendToBody'
|
|
45
|
+
];
|
|
46
|
+
/**
|
|
47
|
+
* Commands whose arms rewrite one block's bytes around that block's own selection and have no
|
|
48
|
+
* cross-block reading: the dispatch seam declines them outright while a range is painted.
|
|
49
|
+
* Membership is the arm's shape, not the id's prefix — the link card mints its link over one
|
|
50
|
+
* block's offsets, and a range gives it no one block to mint into.
|
|
51
|
+
*/
|
|
52
|
+
export const RANGE_DECLINED_COMMAND_IDS = new Set([
|
|
53
|
+
'link.openCard'
|
|
54
|
+
]);
|
|
55
|
+
/**
|
|
56
|
+
* The same one-block arms, but with a cross-block one behind them
|
|
57
|
+
* (`selection/cross-block/format-toggle.ts`), which the seam routes to through an injected
|
|
58
|
+
* router. Declined wherever no router is threaded, so a dispatch site that skips it cannot
|
|
59
|
+
* fall through to the focused block's own offsets.
|
|
60
|
+
*/
|
|
61
|
+
export const CROSS_BLOCK_RANGE_COMMAND_IDS = new Set([
|
|
62
|
+
'format.toggleStrong',
|
|
63
|
+
'format.toggleEmphasis',
|
|
64
|
+
'format.toggleStrikethrough',
|
|
65
|
+
'format.toggleCode'
|
|
66
|
+
]);
|
|
67
|
+
/**
|
|
68
|
+
* The command ids a host's selection toolbar invokes through `EditorInstance.runCommand`. The
|
|
69
|
+
* rest of the vocabulary stays internal until the command registry unifies it.
|
|
70
|
+
*/
|
|
71
|
+
export const TOOLBAR_COMMANDS = {
|
|
72
|
+
toggleStrong: 'format.toggleStrong',
|
|
73
|
+
toggleEmphasis: 'format.toggleEmphasis',
|
|
74
|
+
toggleStrikethrough: 'format.toggleStrikethrough',
|
|
75
|
+
toggleCode: 'format.toggleCode',
|
|
76
|
+
/** The link editor Mod+K opens: over a selection it creates, inside a link it edits. */
|
|
77
|
+
editLink: 'link.openCard'
|
|
78
|
+
};
|
|
79
|
+
const globalCommands = new Map();
|
|
80
|
+
export function registerCommand(id, run) {
|
|
81
|
+
registerOnce(globalCommands.has(id), () => globalCommands.set(id, run), `registerCommand: "${id}" is already registered. Commands are register-once.`);
|
|
82
|
+
}
|
|
83
|
+
export function getCommand(id) {
|
|
84
|
+
return globalCommands.get(id);
|
|
85
|
+
}
|
|
86
|
+
const BUILTIN_COMMAND_IDS = new Set([...GLOBAL_COMMAND_IDS, ...BLOCK_COMMAND_IDS]);
|
|
87
|
+
/** True when the id is in the closed built-in vocabulary. Takes a plain, unbranded name. */
|
|
88
|
+
export function isBuiltinCommandId(id) {
|
|
89
|
+
return BUILTIN_COMMAND_IDS.has(id);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Test-only. Removes every command outside the closed built-in vocabulary; the plugin-global
|
|
93
|
+
* chord keymap resets separately (`__resetPluginGlobalKeymapForTests`).
|
|
94
|
+
*/
|
|
95
|
+
export function __removePluginCommandsForTests() {
|
|
96
|
+
deletePluginEntries(globalCommands, (id) => BUILTIN_COMMAND_IDS.has(id));
|
|
97
|
+
}
|
|
98
|
+
const warnedDeadKeys = new Set();
|
|
99
|
+
/**
|
|
100
|
+
* Dev-warn once per (id, path) that a command reached no runnable handler at `path` — a dead
|
|
101
|
+
* key. Unreachable, not unregistered: a minted command resolves only where the dispatch target
|
|
102
|
+
* supplies a command context.
|
|
103
|
+
*/
|
|
104
|
+
export function warnDeadKeyCommand(id, path) {
|
|
105
|
+
const key = `${path} ${id}`;
|
|
106
|
+
if (warnedDeadKeys.has(key))
|
|
107
|
+
return;
|
|
108
|
+
warnedDeadKeys.add(key);
|
|
109
|
+
devWarn('commands', `command "${id}" reached no handler on the ${path} path; key is dead`);
|
|
110
|
+
}
|
|
111
|
+
/** Test-only. Clears the dead-key warn memo so each test sees a first-time warn. */
|
|
112
|
+
export function __resetCommandWarningsForTests() {
|
|
113
|
+
warnedDeadKeys.clear();
|
|
114
|
+
}
|
|
115
|
+
registerCommand('history.undo', (ctx) => {
|
|
116
|
+
void ctx.history.requestUndo();
|
|
117
|
+
return true;
|
|
118
|
+
});
|
|
119
|
+
registerCommand('history.redo', (ctx) => {
|
|
120
|
+
void ctx.history.requestRedo();
|
|
121
|
+
return true;
|
|
122
|
+
});
|
|
123
|
+
export const GLOBAL_KEYMAP = [
|
|
124
|
+
{ chord: 'Mod+Z', command: 'history.undo' },
|
|
125
|
+
{ chord: 'Mod+Y', command: 'history.redo' },
|
|
126
|
+
{ chord: 'Mod+Shift+Z', command: 'history.redo' }
|
|
127
|
+
];
|
|
128
|
+
const pluginGlobalKeymap = [];
|
|
129
|
+
// Chords the editor UI intercepts outside the command resolvers (the search bar's
|
|
130
|
+
// document-level listener) — a plugin binding one would double-fire on a single keypress.
|
|
131
|
+
const RESERVED_UI_CHORDS = new Set(['Mod+F', 'Mod+H']);
|
|
132
|
+
/**
|
|
133
|
+
* True when the editor UI intercepts a chord outside the command resolvers. The single source
|
|
134
|
+
* both the plugin-global registration guard and the editor-root keydown handler read.
|
|
135
|
+
*/
|
|
136
|
+
export function isReservedUiChord(chord) {
|
|
137
|
+
return RESERVED_UI_CHORDS.has(normalizeChord(chord));
|
|
138
|
+
}
|
|
139
|
+
/** The same pair, for the callers that must enumerate it rather than test one chord. */
|
|
140
|
+
export function reservedUiChords() {
|
|
141
|
+
return [...RESERVED_UI_CHORDS];
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* `candidateCommand` is the id the incoming registration will bind (the mint is deterministic:
|
|
145
|
+
* name IS the id). A dev-server re-eval re-binding its OWN command to its OWN chord is an
|
|
146
|
+
* idempotent replace, not a collision; reserved chords and cross-command collisions still throw.
|
|
147
|
+
*/
|
|
148
|
+
export function assertPluginGlobalChordAvailable(rawChord, candidateCommand) {
|
|
149
|
+
// Fails loudly, not warn-and-drop: a malformed chord (the `'Ctrl+B'` → bare `'B'` trap) would
|
|
150
|
+
// bind a handler that fires on every plain keypress. Thrown before the mint (see
|
|
151
|
+
// global-commands.ts), so a rejected registration leaves no orphaned command.
|
|
152
|
+
if (!isChordWellFormed(rawChord)) {
|
|
153
|
+
throw new Error(`plugin global chord "${rawChord}" is malformed — modifiers must be Mod/Alt/Shift and the key non-empty`);
|
|
154
|
+
}
|
|
155
|
+
const chord = normalizeChord(rawChord);
|
|
156
|
+
if (RESERVED_UI_CHORDS.has(chord)) {
|
|
157
|
+
throw new Error(`plugin global chord "${rawChord}" is reserved by the editor UI (search) — pick another chord`);
|
|
158
|
+
}
|
|
159
|
+
// Activation-blind: registration is process-global register-once, so a chord no editor
|
|
160
|
+
// has activated yet still collides.
|
|
161
|
+
const collision = builtinGlobalBinding(chord, undefined);
|
|
162
|
+
if (collision) {
|
|
163
|
+
if (devReplacesRegistration() && collision.command === candidateCommand)
|
|
164
|
+
return;
|
|
165
|
+
throw new Error(`plugin global chord "${rawChord}" is already bound to "${collision.command}" — global chords are register-once`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
export function registerPluginGlobalBinding(binding, plugin) {
|
|
169
|
+
assertPluginGlobalChordAvailable(binding.chord, binding.command);
|
|
170
|
+
// A dev re-eval passed the same-command exemption above: replace in place instead of stacking
|
|
171
|
+
// a duplicate. A fresh registration never finds an existing entry.
|
|
172
|
+
const chord = normalizeChord(binding.chord);
|
|
173
|
+
const entry = { ...binding, plugin };
|
|
174
|
+
const existing = pluginGlobalKeymap.findIndex((b) => normalizeChord(b.chord) === chord);
|
|
175
|
+
if (existing >= 0)
|
|
176
|
+
pluginGlobalKeymap[existing] = entry;
|
|
177
|
+
else
|
|
178
|
+
pluginGlobalKeymap.push(entry);
|
|
179
|
+
}
|
|
180
|
+
/** The tier's one activation gate: every read of a plugin-global chord passes through it,
|
|
181
|
+
* and an absent activation means every installed plugin. */
|
|
182
|
+
function claimedHere(entry, activation) {
|
|
183
|
+
return entry.plugin === null || activation === undefined || activation.isActive(entry.plugin);
|
|
184
|
+
}
|
|
185
|
+
export function pluginGlobalBinding(chord, activation) {
|
|
186
|
+
const entry = findByChord(pluginGlobalKeymap, chord);
|
|
187
|
+
return entry && claimedHere(entry, activation) ? entry : null;
|
|
188
|
+
}
|
|
189
|
+
/** Every chord the plugin-global tier binds for `activation`. Registration is process-global,
|
|
190
|
+
* so an absent activation reflects plugins any mounted editor installed. */
|
|
191
|
+
export function pluginGlobalChords(activation) {
|
|
192
|
+
return pluginGlobalKeymap
|
|
193
|
+
.filter((entry) => claimedHere(entry, activation))
|
|
194
|
+
.map((b) => normalizeChord(b.chord));
|
|
195
|
+
}
|
|
196
|
+
export function __resetPluginGlobalKeymapForTests() {
|
|
197
|
+
pluginGlobalKeymap.length = 0;
|
|
198
|
+
}
|
|
199
|
+
/** First binding in `bindings` whose chord normalizes to the already-normalized `chord`. */
|
|
200
|
+
function findByChord(bindings, chord) {
|
|
201
|
+
return bindings?.find((b) => normalizeChord(b.chord) === chord) ?? null;
|
|
202
|
+
}
|
|
203
|
+
function builtinKindBinding(chord, kind) {
|
|
204
|
+
return findByChord(tryGetBlockKindDescriptor(kind)?.keymap, chord);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* The consumer-override tier shared by leaf and bubble resolution: kind override, then global.
|
|
208
|
+
* `null` is a disable decision; `undefined` means neither tier decided.
|
|
209
|
+
*/
|
|
210
|
+
function overrideTier(overrides, kind, chord) {
|
|
211
|
+
const kindDecision = overrideDecision(lookupOverride(overrides, kind, chord));
|
|
212
|
+
if (kindDecision !== undefined)
|
|
213
|
+
return kindDecision;
|
|
214
|
+
return overrideDecision(lookupOverride(overrides, 'global', chord));
|
|
215
|
+
}
|
|
216
|
+
/** The built-in global keymap tier, then the plugin-global tier — the shared tail of
|
|
217
|
+
* leaf resolution and both global-only resolvers. */
|
|
218
|
+
function builtinGlobalBinding(chord, activation) {
|
|
219
|
+
return findByChord(GLOBAL_KEYMAP, chord) ?? pluginGlobalBinding(chord, activation);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Container-bubble resolution: override(kind) → override(global) → built-in kind keymap. No
|
|
223
|
+
* built-in GLOBAL fallthrough — undo/redo belong to the focused leaf, and a bubble re-firing
|
|
224
|
+
* them would double-fire. Consumer overrides ARE honored at both scopes, so a global disable
|
|
225
|
+
* unbinds a chord a kind defines, and a global bind shadows the built-in kind binding.
|
|
226
|
+
*/
|
|
227
|
+
export function resolveKindBinding(chord, kind, overrides) {
|
|
228
|
+
const override = overrideTier(overrides, kind, chord);
|
|
229
|
+
if (override !== undefined)
|
|
230
|
+
return override;
|
|
231
|
+
return builtinKindBinding(chord, kind);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Leaf precedence: override(kind) → override(global) → built-in kind → built-in global. Override
|
|
235
|
+
* source dominates specificity, so a global disable suppresses a chord a kind defines.
|
|
236
|
+
*/
|
|
237
|
+
export function resolveBinding(chord, kind, overrides, activation) {
|
|
238
|
+
const override = overrideTier(overrides, kind, chord);
|
|
239
|
+
if (override !== undefined)
|
|
240
|
+
return override;
|
|
241
|
+
return builtinKindBinding(chord, kind) ?? builtinGlobalBinding(chord, activation);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* True when the built-in keymap, or a plugin-global chord `activation` claims, binds this exact
|
|
245
|
+
* chord BEFORE any consumer override — never a modified variant like `Mod+Alt+Y`. Override-BLIND
|
|
246
|
+
* by design: it answers which chords carry a native browser default to suppress, not which
|
|
247
|
+
* command runs. A dispatch question reads `runGlobalChord`/`runGlobalChordOnKind`, which consult
|
|
248
|
+
* the override tier.
|
|
249
|
+
*/
|
|
250
|
+
export function isDefaultGlobalChord(chord, activation) {
|
|
251
|
+
return builtinGlobalBinding(chord, activation) !== null;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Resolve a chord at GLOBAL scope only, for input-layer sites with no focused block for a kind
|
|
255
|
+
* tier to apply to: a consumer global override, else the editor-global keymap.
|
|
256
|
+
*/
|
|
257
|
+
export function resolveGlobalBinding(chord, overrides, activation) {
|
|
258
|
+
const decision = overrideDecision(lookupOverride(overrides, 'global', chord));
|
|
259
|
+
if (decision !== undefined)
|
|
260
|
+
return decision;
|
|
261
|
+
return builtinGlobalBinding(chord, activation);
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Run whatever `chord` claims at global scope, for the surfaces with no focused block for a kind
|
|
265
|
+
* tier to apply to — the editor root's windowed-out caret, the gap caret's proxy. True means the
|
|
266
|
+
* press was CONSUMED, which a disabled chord is without running anything.
|
|
267
|
+
*/
|
|
268
|
+
export function runGlobalChord(chord, overrides, context) {
|
|
269
|
+
return runClaimedGlobalChord(resolveGlobalBinding(chord, overrides, context.activation), chord, context, false);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* The same, for a block that IS its own focus target: no inner leaf carries the global tier for
|
|
273
|
+
* it, so resolution takes the leaf precedence and a consumer's KIND-scoped rebind reaches here.
|
|
274
|
+
*/
|
|
275
|
+
export function runGlobalChordOnKind(chord, kind, overrides, context) {
|
|
276
|
+
return runClaimedGlobalChord(resolveBinding(chord, kind, overrides, context.activation), chord, context, true);
|
|
277
|
+
}
|
|
278
|
+
/** A chord the built-in tables bind is consumed whatever an override left it resolving to: the
|
|
279
|
+
* fall-through is the browser's own history, which bypasses the CST undo stack. */
|
|
280
|
+
function runClaimedGlobalChord(binding, chord, context, kindDispatchBelow) {
|
|
281
|
+
const run = binding ? getCommand(binding.command) : undefined;
|
|
282
|
+
const consumed = !!run || isDefaultGlobalChord(chord, context.activation);
|
|
283
|
+
// A resolved binding no global command backs is dead only where nothing else can answer it:
|
|
284
|
+
// consumed here and inert, or declined at a surface with no kind dispatch under it. A kind
|
|
285
|
+
// keymap chord declining INTO that dispatch is the normal handoff.
|
|
286
|
+
if (binding && !run && (consumed || !kindDispatchBelow)) {
|
|
287
|
+
warnDeadKeyCommand(binding.command, 'global-chord');
|
|
288
|
+
}
|
|
289
|
+
if (!consumed)
|
|
290
|
+
return false;
|
|
291
|
+
if (!context.isReading)
|
|
292
|
+
run?.(context);
|
|
293
|
+
return true;
|
|
294
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ancestry dispatch for container raw rebuilds — looks up
|
|
3
|
+
* `descriptor.rebuildRaw`, so plugin containers participate by declaring one.
|
|
4
|
+
*/
|
|
5
|
+
import type { CstNode } from '../core/nodes';
|
|
6
|
+
import type { ChildRawChange } from './child-spans';
|
|
7
|
+
/**
|
|
8
|
+
* Rebuild `raw` for every container along `path`, innermost first. The leaf at the tail of
|
|
9
|
+
* `path` is NOT rebuilt — callers mutate its raw before calling. Empty path rebuilds `root`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function rebuildAncestryRaw(root: CstNode, path: number[]): void;
|
|
12
|
+
/**
|
|
13
|
+
* Dispatch via the kind's descriptor `rebuildRaw`; throws on a leaf. Callers walking ancestry
|
|
14
|
+
* chains use {@link rebuildContainerRawIfContainer} instead.
|
|
15
|
+
*/
|
|
16
|
+
export declare function rebuildContainerRaw(node: CstNode): void;
|
|
17
|
+
/**
|
|
18
|
+
* Rebuild `raw` when `node` has a rebuildRaw on its descriptor; no-op otherwise. `changed` is
|
|
19
|
+
* the one-child hint (`child-spans.ts`); a rebuilder ignoring it re-derives the whole raw.
|
|
20
|
+
*/
|
|
21
|
+
export declare function rebuildContainerRawIfContainer(node: CstNode, changed?: ChildRawChange): void;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ancestry dispatch for container raw rebuilds — looks up
|
|
3
|
+
* `descriptor.rebuildRaw`, so plugin containers participate by declaring one.
|
|
4
|
+
*/
|
|
5
|
+
import { tryGetBlockKindDescriptor } from './block-kind-descriptor';
|
|
6
|
+
/**
|
|
7
|
+
* Rebuild `raw` for every container along `path`, innermost first. The leaf at the tail of
|
|
8
|
+
* `path` is NOT rebuilt — callers mutate its raw before calling. Empty path rebuilds `root`.
|
|
9
|
+
*/
|
|
10
|
+
export function rebuildAncestryRaw(root, path) {
|
|
11
|
+
if (path.length === 0) {
|
|
12
|
+
rebuildContainerRaw(root);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const containers = [];
|
|
16
|
+
let current = root;
|
|
17
|
+
for (let i = 0; i < path.length - 1; i++) {
|
|
18
|
+
current = current.children[path[i]];
|
|
19
|
+
containers.push(current);
|
|
20
|
+
}
|
|
21
|
+
for (let i = containers.length - 1; i >= 0; i--) {
|
|
22
|
+
rebuildContainerRaw(containers[i]);
|
|
23
|
+
}
|
|
24
|
+
rebuildContainerRaw(root);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Dispatch via the kind's descriptor `rebuildRaw`; throws on a leaf. Callers walking ancestry
|
|
28
|
+
* chains use {@link rebuildContainerRawIfContainer} instead.
|
|
29
|
+
*/
|
|
30
|
+
export function rebuildContainerRaw(node) {
|
|
31
|
+
const rebuild = tryGetBlockKindDescriptor(node.kind)?.rebuildRaw;
|
|
32
|
+
if (!rebuild) {
|
|
33
|
+
throw new Error(`rebuildContainerRaw: kind "${node.kind}" has no rebuildRaw — only container kinds are valid`);
|
|
34
|
+
}
|
|
35
|
+
rebuild(node);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Rebuild `raw` when `node` has a rebuildRaw on its descriptor; no-op otherwise. `changed` is
|
|
39
|
+
* the one-child hint (`child-spans.ts`); a rebuilder ignoring it re-derives the whole raw.
|
|
40
|
+
*/
|
|
41
|
+
export function rebuildContainerRawIfContainer(node, changed) {
|
|
42
|
+
tryGetBlockKindDescriptor(node.kind)?.rebuildRaw?.(node, changed);
|
|
43
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-container-kind raw rebuilders. Separate from container-raw.ts (the ancestry dispatch) so
|
|
3
|
+
* the built-in registrations can declare rebuildRaw directly: this file reaches no registry,
|
|
4
|
+
* while the dispatch must import one, and same-file would cycle. The strip and concat shapes
|
|
5
|
+
* live in child-spans.ts; each kind here contributes only its own per-line syntax.
|
|
6
|
+
*/
|
|
7
|
+
import type { CstNode } from '../core/nodes';
|
|
8
|
+
import { type ChildRawChange } from './child-spans';
|
|
9
|
+
/** Rebuild a blockquote's `raw`: `> ` on content lines, `>` on blank lines. */
|
|
10
|
+
export declare function rebuildBlockquoteRaw(node: CstNode, changed?: ChildRawChange): void;
|
|
11
|
+
/**
|
|
12
|
+
* Rebuild a list item's `raw`: marker on the first line, indentation on continuations. Blank
|
|
13
|
+
* lines stay unindented — GFM loose-list form.
|
|
14
|
+
*/
|
|
15
|
+
export declare function rebuildListItemRaw(node: CstNode, changed?: ChildRawChange): void;
|
|
16
|
+
export declare function rebuildListRaw(node: CstNode, changed?: ChildRawChange): void;
|
|
17
|
+
/** `| c0 | c1 | ... |` plus the row's own ending (single-space padding). */
|
|
18
|
+
export declare function rebuildTableRowRaw(node: CstNode): void;
|
|
19
|
+
/**
|
|
20
|
+
* The same bytes under an ending the row does not own: a row minted by a structural op has no
|
|
21
|
+
* authored one, so the TABLE dictates it. Split from the descriptor-shaped rebuilder above
|
|
22
|
+
* because `rebuildRaw`'s second parameter is the changed-child hint.
|
|
23
|
+
*/
|
|
24
|
+
export declare function writeTableRow(node: CstNode, lineEnding: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Header + synthesized canonical delimiter + body rows. Every row is rebuilt before assembly, so
|
|
27
|
+
* the whole table normalizes to canonical padding on first structural mutation rather than
|
|
28
|
+
* landing half-padded. The table's own ending drives every emitted line (G4.20): a row minted by
|
|
29
|
+
* a structural op has no authored ending, so per-row detection would strand it on LF in a CRLF
|
|
30
|
+
* table.
|
|
31
|
+
*/
|
|
32
|
+
export declare function rebuildTableRaw(node: CstNode): void;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-container-kind raw rebuilders. Separate from container-raw.ts (the ancestry dispatch) so
|
|
3
|
+
* the built-in registrations can declare rebuildRaw directly: this file reaches no registry,
|
|
4
|
+
* while the dispatch must import one, and same-file would cycle. The strip and concat shapes
|
|
5
|
+
* live in child-spans.ts; each kind here contributes only its own per-line syntax.
|
|
6
|
+
*/
|
|
7
|
+
import { metadataOf } from '../core/nodes';
|
|
8
|
+
import { trailingLineEnding } from '../core/lines';
|
|
9
|
+
import { rebuildConcatRaw, rebuildStripRaw } from './child-spans';
|
|
10
|
+
// ── Blockquote ───────────────────────────────────────────────────────────────
|
|
11
|
+
/** Rebuild a blockquote's `raw`: `> ` on content lines, `>` on blank lines. */
|
|
12
|
+
export function rebuildBlockquoteRaw(node, changed) {
|
|
13
|
+
if (!node.children)
|
|
14
|
+
return;
|
|
15
|
+
rebuildStripRaw(node, quoteLine, changed);
|
|
16
|
+
}
|
|
17
|
+
const quoteLine = (text) => (text === '' ? '>' : '> ' + text);
|
|
18
|
+
// ── List ─────────────────────────────────────────────────────────────────────
|
|
19
|
+
/**
|
|
20
|
+
* Rebuild a list item's `raw`: marker on the first line, indentation on continuations. Blank
|
|
21
|
+
* lines stay unindented — GFM loose-list form.
|
|
22
|
+
*/
|
|
23
|
+
export function rebuildListItemRaw(node, changed) {
|
|
24
|
+
if (!node.children || !node.metadata)
|
|
25
|
+
return;
|
|
26
|
+
const meta = metadataOf(node, 'listItem');
|
|
27
|
+
const marker = meta.marker ?? '- ';
|
|
28
|
+
const taskMarker = meta.taskMarker ?? '';
|
|
29
|
+
const indent = ' '.repeat(marker.length);
|
|
30
|
+
rebuildStripRaw(node, (text, first) => {
|
|
31
|
+
if (first)
|
|
32
|
+
return marker + taskMarker + text;
|
|
33
|
+
return text === '' ? '' : indent + text;
|
|
34
|
+
}, changed);
|
|
35
|
+
}
|
|
36
|
+
export function rebuildListRaw(node, changed) {
|
|
37
|
+
if (!node.children)
|
|
38
|
+
return;
|
|
39
|
+
rebuildConcatRaw(node, changed);
|
|
40
|
+
}
|
|
41
|
+
// ── Table ────────────────────────────────────────────────────────────────────
|
|
42
|
+
/** `| c0 | c1 | ... |` plus the row's own ending (single-space padding). */
|
|
43
|
+
export function rebuildTableRowRaw(node) {
|
|
44
|
+
writeTableRow(node, trailingLineEnding(node.raw));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The same bytes under an ending the row does not own: a row minted by a structural op has no
|
|
48
|
+
* authored one, so the TABLE dictates it. Split from the descriptor-shaped rebuilder above
|
|
49
|
+
* because `rebuildRaw`'s second parameter is the changed-child hint.
|
|
50
|
+
*/
|
|
51
|
+
export function writeTableRow(node, lineEnding) {
|
|
52
|
+
if (!node.children)
|
|
53
|
+
return;
|
|
54
|
+
const cells = node.children.map((c) => c.raw);
|
|
55
|
+
node.raw = '| ' + cells.join(' | ') + ' |' + lineEnding;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Header + synthesized canonical delimiter + body rows. Every row is rebuilt before assembly, so
|
|
59
|
+
* the whole table normalizes to canonical padding on first structural mutation rather than
|
|
60
|
+
* landing half-padded. The table's own ending drives every emitted line (G4.20): a row minted by
|
|
61
|
+
* a structural op has no authored ending, so per-row detection would strand it on LF in a CRLF
|
|
62
|
+
* table.
|
|
63
|
+
*/
|
|
64
|
+
export function rebuildTableRaw(node) {
|
|
65
|
+
if (!node.children)
|
|
66
|
+
return;
|
|
67
|
+
const meta = metadataOf(node, 'table');
|
|
68
|
+
const lineEnding = trailingLineEnding(node.raw);
|
|
69
|
+
for (const row of node.children)
|
|
70
|
+
writeTableRow(row, lineEnding);
|
|
71
|
+
const headerRow = node.children[0];
|
|
72
|
+
const bodyRows = node.children.slice(1);
|
|
73
|
+
const delimiterCells = meta.alignments.map(formatAlignmentCell).join(' | ');
|
|
74
|
+
const delimiterLine = '| ' + delimiterCells + ' |' + lineEnding;
|
|
75
|
+
let raw = (headerRow?.raw ?? '') + delimiterLine;
|
|
76
|
+
for (const r of bodyRows)
|
|
77
|
+
raw += r.raw;
|
|
78
|
+
node.raw = raw;
|
|
79
|
+
}
|
|
80
|
+
function formatAlignmentCell(a) {
|
|
81
|
+
switch (a) {
|
|
82
|
+
case 'left':
|
|
83
|
+
return ':---';
|
|
84
|
+
case 'center':
|
|
85
|
+
return ':---:';
|
|
86
|
+
case 'right':
|
|
87
|
+
return '---:';
|
|
88
|
+
case 'none':
|
|
89
|
+
return '---';
|
|
90
|
+
default: {
|
|
91
|
+
const _exhaustive = a;
|
|
92
|
+
throw new Error(`Unknown alignment: ${_exhaustive}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single-block plugin unit: declare-and-describe a kind, then bind its component, sparing a
|
|
3
|
+
* one-kind plugin the register/define double-wrap and its setup ordering. A multi-kind plugin
|
|
4
|
+
* stays on `definePlugin` directly. `kind` is the plain declared-kind NAME, branded lazily after
|
|
5
|
+
* `register` runs — `declaredPluginKind` throws for a not-yet-declared name.
|
|
6
|
+
*/
|
|
7
|
+
import type { Component } from 'svelte';
|
|
8
|
+
import { type EditorPlugin } from './plugin-install';
|
|
9
|
+
import type { BlockComponentExports, BlockComponentProps } from '../block-component';
|
|
10
|
+
export declare function definePluginBlock<P extends Partial<BlockComponentProps> & Record<string, unknown>>(config: {
|
|
11
|
+
name: string;
|
|
12
|
+
kind: string;
|
|
13
|
+
component: Component<P, BlockComponentExports>;
|
|
14
|
+
register: () => void;
|
|
15
|
+
}): EditorPlugin;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single-block plugin unit: declare-and-describe a kind, then bind its component, sparing a
|
|
3
|
+
* one-kind plugin the register/define double-wrap and its setup ordering. A multi-kind plugin
|
|
4
|
+
* stays on `definePlugin` directly. `kind` is the plain declared-kind NAME, branded lazily after
|
|
5
|
+
* `register` runs — `declaredPluginKind` throws for a not-yet-declared name.
|
|
6
|
+
*/
|
|
7
|
+
import { definePlugin } from './plugin-install';
|
|
8
|
+
import { declaredPluginKind } from './plugin-kind';
|
|
9
|
+
import { registerBlockComponent, defineBlockComponent } from './block-component-registry';
|
|
10
|
+
export function definePluginBlock(config) {
|
|
11
|
+
return definePlugin({
|
|
12
|
+
name: config.name,
|
|
13
|
+
setup() {
|
|
14
|
+
config.register();
|
|
15
|
+
registerBlockComponent(declaredPluginKind(config.kind), defineBlockComponent(config.component));
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The fencedCode raw-write rule, declared on the kind as `normalizeRawWrite` and applied at every
|
|
3
|
+
* write sink. RESTORE re-appends a closer a truncating write dropped and DROP removes one it
|
|
4
|
+
* stranded, ESCALATE grows both runs past a body line that would read as the closer, SANITIZE
|
|
5
|
+
* drops backticks from a backtick fence's info string (CommonMark §4.5) — all off the block's OWN
|
|
6
|
+
* fence shape, which is why the pass takes a node. An authored open fence is exempt.
|
|
7
|
+
*/
|
|
8
|
+
import type { NodeView } from '../core/node-views';
|
|
9
|
+
export interface FenceShape {
|
|
10
|
+
marker: '`' | '~';
|
|
11
|
+
/** The block's own run length, from its metadata — not re-scanned from the write. */
|
|
12
|
+
length: number;
|
|
13
|
+
closed: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** Whether the written bytes are the user authoring the block's syntax, or content. */
|
|
16
|
+
export type FenceWriteMode = 'authored' | 'literal';
|
|
17
|
+
export interface FenceWriteInput {
|
|
18
|
+
/** Display text about to be committed — raw without its trailing line ending. */
|
|
19
|
+
display: string;
|
|
20
|
+
/** Caret offset in `display`, mapped onto the reconciled bytes on the way out. */
|
|
21
|
+
caret: number;
|
|
22
|
+
fence: FenceShape;
|
|
23
|
+
mode: FenceWriteMode;
|
|
24
|
+
}
|
|
25
|
+
export interface FenceWriteResult {
|
|
26
|
+
display: string;
|
|
27
|
+
caret: number;
|
|
28
|
+
}
|
|
29
|
+
export declare function fenceShapeOf(node: NodeView): FenceShape;
|
|
30
|
+
export declare function reconcileFenceWrite(input: FenceWriteInput): FenceWriteResult;
|
|
31
|
+
/**
|
|
32
|
+
* A whole fencedCode `raw` made legal — the kind's `normalizeRawWrite`. Literal by
|
|
33
|
+
* construction: a sink reaching a node's bytes without its surface is never the author
|
|
34
|
+
* typing the block's own syntax. The fence lines reconcile first, so ESCALATE measures a
|
|
35
|
+
* body that ends where the closer does.
|
|
36
|
+
*/
|
|
37
|
+
export declare function normalizeFencedRaw(raw: string, node: NodeView): string;
|
|
38
|
+
/**
|
|
39
|
+
* The bytes with `info` written onto the opening fence line. Only that span moves, so the
|
|
40
|
+
* indent, both marker runs, the body and the closer come through byte-identical. Null when
|
|
41
|
+
* line 0 does not read as this block's opener at all.
|
|
42
|
+
*/
|
|
43
|
+
export declare function writeFenceInfo(display: string, info: string, fence: FenceShape): string | null;
|