@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,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The reuse pool that makes `component` inline widgets churn-safe. The editor rebuilds a block's
|
|
3
|
+
* whole inline-DOM on every keystroke; without a pool each rebuild remounts every widget's Svelte
|
|
4
|
+
* component, losing state and paying KaTeX-scale cost per character. Instances key by
|
|
5
|
+
* `${kind} ${source}`, and `mount`/`unmount` from 'svelte' stay contained here.
|
|
6
|
+
*/
|
|
7
|
+
import type { AnyInlineKind, InlineNode } from '../../core/nodes';
|
|
8
|
+
import type { DocumentView } from '../../core/node-views';
|
|
9
|
+
import type { PresentationMode } from '../../presentation-mode';
|
|
10
|
+
export interface WidgetPoolAdapter<H> {
|
|
11
|
+
/** Build one instance, or null when it cannot be built (a caught mount throw). */
|
|
12
|
+
create(kind: AnyInlineKind, inline: InlineNode, source: string): H | null;
|
|
13
|
+
destroy(handle: H): void;
|
|
14
|
+
element(handle: H): HTMLElement;
|
|
15
|
+
}
|
|
16
|
+
export interface WidgetPool {
|
|
17
|
+
/**
|
|
18
|
+
* Adopt the oldest un-adopted live instance for the key, marking it adopted this
|
|
19
|
+
* pass; else build a new one. Render-pass only — every acquire sits inside a
|
|
20
|
+
* beginPass/sweep bracket. Key-only lookup cannot distinguish byte-identical
|
|
21
|
+
* duplicates, so an out-of-pass caller holding a specific element must restore it.
|
|
22
|
+
*/
|
|
23
|
+
acquire(kind: AnyInlineKind, inline: InlineNode, source: string): HTMLElement | null;
|
|
24
|
+
/** Open a rebuild pass: un-adopt every instance so this pass re-earns them. */
|
|
25
|
+
beginPass(): void;
|
|
26
|
+
/** Close a rebuild pass: destroy every instance not adopted in it. */
|
|
27
|
+
sweep(): void;
|
|
28
|
+
/** Destroy everything — the block is unmounting. */
|
|
29
|
+
dispose(): void;
|
|
30
|
+
}
|
|
31
|
+
export declare function createWidgetPool<H>(adapter: WidgetPoolAdapter<H>): WidgetPool;
|
|
32
|
+
/** The live channels a mounted widget reads beside its frozen `{ inline, source }`
|
|
33
|
+
* snapshot. Every member is optional so a bare harness can mount without a shell. */
|
|
34
|
+
export interface SvelteWidgetPoolDeps {
|
|
35
|
+
/** A widget component's synchronous mount throw goes here (the editor's `error`
|
|
36
|
+
* channel). Absent leaves the caller falling back to the raw span silently. */
|
|
37
|
+
reportError?: (error: unknown) => void;
|
|
38
|
+
getPresentationMode?: () => PresentationMode;
|
|
39
|
+
/** The editor's theme name — the mode read's sibling, for a widget whose body an
|
|
40
|
+
* engine paints (its own colors, unreachable from CSS) rather than CSS styles. */
|
|
41
|
+
getTheme?: () => string;
|
|
42
|
+
getDocument?: () => DocumentView | undefined;
|
|
43
|
+
getContentVersion?: () => number;
|
|
44
|
+
/** The editor's navigation door, for a widget whose gesture jumps elsewhere in the
|
|
45
|
+
* document. Absent in a bare harness. */
|
|
46
|
+
navigateTo?: (path: number[], offset?: number) => Promise<boolean>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The pool wired to Svelte mounting. A synchronous mount throw is caught, reported and surfaced as
|
|
50
|
+
* null so the caller falls back to the raw span. The getters ride ALONGSIDE the frozen
|
|
51
|
+
* `{ inline, source }` snapshot as live props: reuse keys on `${kind} ${source}`, so an instance
|
|
52
|
+
* outlives a mode flip or an edit elsewhere that a frozen value would not.
|
|
53
|
+
*/
|
|
54
|
+
export declare function createSvelteWidgetPool(deps?: SvelteWidgetPoolDeps): WidgetPool;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The reuse pool that makes `component` inline widgets churn-safe. The editor rebuilds a block's
|
|
3
|
+
* whole inline-DOM on every keystroke; without a pool each rebuild remounts every widget's Svelte
|
|
4
|
+
* component, losing state and paying KaTeX-scale cost per character. Instances key by
|
|
5
|
+
* `${kind} ${source}`, and `mount`/`unmount` from 'svelte' stay contained here.
|
|
6
|
+
*/
|
|
7
|
+
import { mount, unmount } from 'svelte';
|
|
8
|
+
import { getInlineWidgetComponent } from '../../core/inline/inline-widgets';
|
|
9
|
+
import { tracePoolPass } from '../../debug/interaction-trace';
|
|
10
|
+
import { assertInvariant } from '../../assert';
|
|
11
|
+
import { checkPoolBracket } from '../../invariants/inline-transitions';
|
|
12
|
+
export function createWidgetPool(adapter) {
|
|
13
|
+
// Multiset per `${kind} ${source}` key: two identical sources in one block are
|
|
14
|
+
// two entries in one bucket, each adopted at most once per pass.
|
|
15
|
+
const buckets = new Map();
|
|
16
|
+
// The acquire bracket (see WidgetPool.acquire) held as explicit state so a
|
|
17
|
+
// violation fires at this seam instead of surfacing as a widget leak (G1.25).
|
|
18
|
+
let passOpen = false;
|
|
19
|
+
// Per-pass adopt/build tallies for the interaction trace, recorded at sweep.
|
|
20
|
+
let passAdopt = 0;
|
|
21
|
+
let passBuild = 0;
|
|
22
|
+
function beginPass() {
|
|
23
|
+
assertInvariant('pool-bracket', () => checkPoolBracket(passOpen, 'beginPass'));
|
|
24
|
+
passOpen = true;
|
|
25
|
+
passAdopt = 0;
|
|
26
|
+
passBuild = 0;
|
|
27
|
+
for (const bucket of buckets.values()) {
|
|
28
|
+
for (const entry of bucket)
|
|
29
|
+
entry.adopted = false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function acquire(kind, inline, source) {
|
|
33
|
+
assertInvariant('pool-bracket', () => checkPoolBracket(passOpen, 'acquire'));
|
|
34
|
+
const key = `${kind} ${source}`;
|
|
35
|
+
const bucket = buckets.get(key);
|
|
36
|
+
const reused = bucket?.find((entry) => !entry.adopted);
|
|
37
|
+
if (reused) {
|
|
38
|
+
reused.adopted = true;
|
|
39
|
+
passAdopt++;
|
|
40
|
+
// Source and rendered body are identical by key; only the widget's position
|
|
41
|
+
// may have shifted, so re-stamp the offsets cursor/selection reads.
|
|
42
|
+
const el = adapter.element(reused.handle);
|
|
43
|
+
el.dataset.sourceStart = String(inline.start);
|
|
44
|
+
el.dataset.sourceEnd = String(inline.end);
|
|
45
|
+
return el;
|
|
46
|
+
}
|
|
47
|
+
const handle = adapter.create(kind, inline, source);
|
|
48
|
+
if (handle === null)
|
|
49
|
+
return null;
|
|
50
|
+
passBuild++;
|
|
51
|
+
const entry = { handle, adopted: true };
|
|
52
|
+
if (bucket)
|
|
53
|
+
bucket.push(entry);
|
|
54
|
+
else
|
|
55
|
+
buckets.set(key, [entry]);
|
|
56
|
+
return adapter.element(handle);
|
|
57
|
+
}
|
|
58
|
+
function sweep() {
|
|
59
|
+
assertInvariant('pool-bracket', () => checkPoolBracket(passOpen, 'sweep'));
|
|
60
|
+
passOpen = false;
|
|
61
|
+
let destroyed = 0;
|
|
62
|
+
for (const [key, bucket] of [...buckets]) {
|
|
63
|
+
const survivors = [];
|
|
64
|
+
for (const entry of bucket) {
|
|
65
|
+
if (entry.adopted) {
|
|
66
|
+
entry.adopted = false;
|
|
67
|
+
survivors.push(entry);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
adapter.destroy(entry.handle);
|
|
71
|
+
destroyed++;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (survivors.length)
|
|
75
|
+
buckets.set(key, survivors);
|
|
76
|
+
else
|
|
77
|
+
buckets.delete(key);
|
|
78
|
+
}
|
|
79
|
+
tracePoolPass(passAdopt, passBuild, destroyed);
|
|
80
|
+
}
|
|
81
|
+
function dispose() {
|
|
82
|
+
passOpen = false;
|
|
83
|
+
for (const bucket of buckets.values()) {
|
|
84
|
+
for (const entry of bucket)
|
|
85
|
+
adapter.destroy(entry.handle);
|
|
86
|
+
}
|
|
87
|
+
buckets.clear();
|
|
88
|
+
}
|
|
89
|
+
return { acquire, beginPass, sweep, dispose };
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The pool wired to Svelte mounting. A synchronous mount throw is caught, reported and surfaced as
|
|
93
|
+
* null so the caller falls back to the raw span. The getters ride ALONGSIDE the frozen
|
|
94
|
+
* `{ inline, source }` snapshot as live props: reuse keys on `${kind} ${source}`, so an instance
|
|
95
|
+
* outlives a mode flip or an edit elsewhere that a frozen value would not.
|
|
96
|
+
*/
|
|
97
|
+
export function createSvelteWidgetPool(deps = {}) {
|
|
98
|
+
const { reportError, getPresentationMode, getTheme, getDocument, getContentVersion, navigateTo } = deps;
|
|
99
|
+
return createWidgetPool({
|
|
100
|
+
create(kind, inline, source) {
|
|
101
|
+
const component = getInlineWidgetComponent(kind);
|
|
102
|
+
if (!component)
|
|
103
|
+
return null;
|
|
104
|
+
const wrapper = document.createElement('span');
|
|
105
|
+
wrapper.dataset.inlineWidget = '';
|
|
106
|
+
wrapper.dataset.sourceStart = String(inline.start);
|
|
107
|
+
wrapper.dataset.sourceEnd = String(inline.end);
|
|
108
|
+
wrapper.setAttribute('contenteditable', 'false');
|
|
109
|
+
try {
|
|
110
|
+
const instance = mount(component, {
|
|
111
|
+
target: wrapper,
|
|
112
|
+
props: {
|
|
113
|
+
inline,
|
|
114
|
+
source,
|
|
115
|
+
getPresentationMode,
|
|
116
|
+
getTheme,
|
|
117
|
+
getDocument,
|
|
118
|
+
getContentVersion,
|
|
119
|
+
navigateTo
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
return { wrapper, instance };
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
reportError?.(error);
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
destroy(handle) {
|
|
130
|
+
void unmount(handle.instance);
|
|
131
|
+
},
|
|
132
|
+
element(handle) {
|
|
133
|
+
return handle.wrapper;
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in block component registrations, applied by an explicit `registerBuiltInBlocks()` call:
|
|
3
|
+
* the `sideEffects` allowlist names dist paths and so never covers the src specifiers this
|
|
4
|
+
* library imports from itself, leaving a bare side-effect import here droppable. Lives in
|
|
5
|
+
* `components/` rather than `schema/` so the schema layer keeps no downstream imports.
|
|
6
|
+
*/
|
|
7
|
+
export declare function registerBuiltInBlocks(): void;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in block component registrations, applied by an explicit `registerBuiltInBlocks()` call:
|
|
3
|
+
* the `sideEffects` allowlist names dist paths and so never covers the src specifiers this
|
|
4
|
+
* library imports from itself, leaving a bare side-effect import here droppable. Lives in
|
|
5
|
+
* `components/` rather than `schema/` so the schema layer keeps no downstream imports.
|
|
6
|
+
*/
|
|
7
|
+
import { metadataOf } from '../core/nodes';
|
|
8
|
+
import { defineBlockComponent, registerBlockComponent } from '../schema/block-component-registry';
|
|
9
|
+
import { augmentBuiltin } from '../schema/block-kind-descriptor';
|
|
10
|
+
import { registerBuiltInDescriptors } from '../schema/built-in-descriptors';
|
|
11
|
+
import { augmentInlineWidgetKind } from '../core/inline/inline-widgets';
|
|
12
|
+
import { registerLiveJoinSeamCleaner, registerLiveSplitRebalancer } from '../schema/inline-construct-policy';
|
|
13
|
+
import { registerPasteSurface } from '../tree-operations/paste-surfaces';
|
|
14
|
+
import { imageWidgetOnSelectedKey } from './image/image-widget-editing';
|
|
15
|
+
import { cleanLiveJoinSeam } from './blocks/text/live-join-seam';
|
|
16
|
+
import { rebalanceLiveSplit } from './blocks/text/live-split-rebalance';
|
|
17
|
+
import TextEditableBlock from './blocks/text/TextEditableBlock.svelte';
|
|
18
|
+
import CodeBlock from './blocks/code/CodeBlock.svelte';
|
|
19
|
+
import ThematicBreakBlock from './blocks/ThematicBreakBlock.svelte';
|
|
20
|
+
import BlockquoteBlock from './blocks/BlockquoteBlock.svelte';
|
|
21
|
+
import ListBlock from './blocks/list/ListBlock.svelte';
|
|
22
|
+
import TableBlock from './blocks/table/TableBlock.svelte';
|
|
23
|
+
import { tableCellPasteSurface } from './blocks/table/table-cell-paste';
|
|
24
|
+
import { tableCaretAtPoint } from './blocks/table/table-caret-at-point';
|
|
25
|
+
import { tableDragHitTest } from './blocks/table/table-drag-hit-test';
|
|
26
|
+
function headingExtraProps(node) {
|
|
27
|
+
const level = metadataOf(node, 'heading')?.level ?? 1;
|
|
28
|
+
return { blockClass: `heading-${level}` };
|
|
29
|
+
}
|
|
30
|
+
const textAsRawBlock = defineBlockComponent(TextEditableBlock, () => ({
|
|
31
|
+
blockClass: 'raw-block'
|
|
32
|
+
}));
|
|
33
|
+
// Idempotence guard, not a registry bypass: a dev-server re-eval resets it so
|
|
34
|
+
// the register-once dev valve still replaces.
|
|
35
|
+
let registered = false;
|
|
36
|
+
export function registerBuiltInBlocks() {
|
|
37
|
+
if (registered)
|
|
38
|
+
return;
|
|
39
|
+
registered = true;
|
|
40
|
+
// Descriptors first — augmentBuiltin('table') below needs `table` registered.
|
|
41
|
+
registerBuiltInDescriptors();
|
|
42
|
+
registerBlockComponent('paragraph', defineBlockComponent(TextEditableBlock, () => ({ blockClass: 'paragraph-block' })));
|
|
43
|
+
registerBlockComponent('heading', defineBlockComponent(TextEditableBlock, headingExtraProps));
|
|
44
|
+
registerBlockComponent('setextHeading', defineBlockComponent(TextEditableBlock, headingExtraProps));
|
|
45
|
+
registerBlockComponent('thematicBreak', defineBlockComponent(ThematicBreakBlock));
|
|
46
|
+
registerBlockComponent('fencedCode', defineBlockComponent(CodeBlock));
|
|
47
|
+
registerBlockComponent('blockquote', defineBlockComponent(BlockquoteBlock));
|
|
48
|
+
registerBlockComponent('list', defineBlockComponent(ListBlock));
|
|
49
|
+
registerBlockComponent('table', defineBlockComponent(TableBlock));
|
|
50
|
+
// Raw-editable fallback for kinds with no rendered surface. tableRow/tableCell
|
|
51
|
+
// render inside TableBlock; these catch only orphans that reach BlockHost directly.
|
|
52
|
+
registerBlockComponent('indentedCode', textAsRawBlock);
|
|
53
|
+
registerBlockComponent('htmlBlock', textAsRawBlock);
|
|
54
|
+
registerBlockComponent('linkReferenceDefinition', textAsRawBlock);
|
|
55
|
+
registerBlockComponent('tableRow', textAsRawBlock);
|
|
56
|
+
registerBlockComponent('tableCell', textAsRawBlock);
|
|
57
|
+
registerBlockComponent('unrecognized', textAsRawBlock);
|
|
58
|
+
// tableCell is the one supportsInline kind with bespoke paste semantics, so it
|
|
59
|
+
// registers here and the default loop in paste/hooks.ts skips it — running both
|
|
60
|
+
// would let ordering silently revert cell paste to the plain inline default.
|
|
61
|
+
registerPasteSurface(tableCellPasteSurface);
|
|
62
|
+
// Table owns cell addressing, so it registers both point→cell hooks through the
|
|
63
|
+
// descriptor registry rather than the selection layer importing the component.
|
|
64
|
+
// Two hooks: a drag needs the exact hit and its decline, a caret the nearest cell.
|
|
65
|
+
augmentBuiltin('table', {
|
|
66
|
+
foreignDragHitTest: tableDragHitTest,
|
|
67
|
+
caretTargetAtPoint: tableCaretAtPoint
|
|
68
|
+
});
|
|
69
|
+
// Image resize is editor-layer behavior, so the core image kind stays data-only
|
|
70
|
+
// and gains its selected-key handler here, where the render layer is reachable.
|
|
71
|
+
augmentInlineWidgetKind('image', { onSelectedKey: imageWidgetOnSelectedKey });
|
|
72
|
+
// The split rebalancer and the join-seam cleaner need the inline parser and the render path,
|
|
73
|
+
// neither of which `tree-operations` may import, so the policy table holds the slots and this
|
|
74
|
+
// layer fills them.
|
|
75
|
+
registerLiveSplitRebalancer(rebalanceLiveSplit);
|
|
76
|
+
registerLiveJoinSeamCleaner(cleanLiveJoinSeam);
|
|
77
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor-root clipboard routing: copy/cut/paste for an event that reached no block surface. A
|
|
3
|
+
* selection whose block hosts no text position leaves the native selection empty, so Chromium
|
|
4
|
+
* dispatches at `document.body`, where no per-block binding sees it. Reading-mode gates live at
|
|
5
|
+
* the arms each route calls into, not here.
|
|
6
|
+
*/
|
|
7
|
+
import type { BlockComponent } from '../block-component';
|
|
8
|
+
import type { DocumentGetter, PasteImageHook } from '../editor-keys';
|
|
9
|
+
import type { SelectionState } from '../selection/selection-state.svelte';
|
|
10
|
+
import type { CrossBlockHandlers } from '../selection/cross-block/dispatch';
|
|
11
|
+
import { type EditorEvents } from '../editor-events';
|
|
12
|
+
export interface EditorRootClipboardDeps {
|
|
13
|
+
selection: SelectionState;
|
|
14
|
+
getDoc: DocumentGetter;
|
|
15
|
+
crossBlock: CrossBlockHandlers;
|
|
16
|
+
/** Required-nullable so this seam cannot silently skip the arm the block surfaces
|
|
17
|
+
* run; `undefined` = no hook. */
|
|
18
|
+
onPasteImage: PasteImageHook | undefined;
|
|
19
|
+
events: EditorEvents;
|
|
20
|
+
/** The block owning the selected inline widget, or null when none is selected. */
|
|
21
|
+
getSelectedWidgetBlock(): BlockComponent | null;
|
|
22
|
+
}
|
|
23
|
+
export interface EditorRootClipboard {
|
|
24
|
+
/** `root` is the element the installing effect captured, not a live binding. */
|
|
25
|
+
handleCopy(event: ClipboardEvent, root: HTMLElement): void;
|
|
26
|
+
handleCut(event: ClipboardEvent, root: HTMLElement): void;
|
|
27
|
+
handlePaste(event: ClipboardEvent, root: HTMLElement): void;
|
|
28
|
+
}
|
|
29
|
+
export declare function createEditorRootClipboard(deps: EditorRootClipboardDeps): EditorRootClipboard;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor-root clipboard routing: copy/cut/paste for an event that reached no block surface. A
|
|
3
|
+
* selection whose block hosts no text position leaves the native selection empty, so Chromium
|
|
4
|
+
* dispatches at `document.body`, where no per-block binding sees it. Reading-mode gates live at
|
|
5
|
+
* the arms each route calls into, not here.
|
|
6
|
+
*/
|
|
7
|
+
import { claimsBodyChord } from '../active-editor';
|
|
8
|
+
import { emitClipboardError } from '../editor-events';
|
|
9
|
+
import { createImagePasteArm } from './paste-image-arm';
|
|
10
|
+
import { writeCrossBlockCopy, writeCrossBlockCut } from '../selection/cross-block/clipboard';
|
|
11
|
+
export function createEditorRootClipboard(deps) {
|
|
12
|
+
const crossDeps = {
|
|
13
|
+
selection: deps.selection,
|
|
14
|
+
getDoc: deps.getDoc,
|
|
15
|
+
crossBlock: deps.crossBlock
|
|
16
|
+
};
|
|
17
|
+
const imageArm = createImagePasteArm({
|
|
18
|
+
onPasteImage: deps.onPasteImage,
|
|
19
|
+
events: deps.events,
|
|
20
|
+
crossBlock: deps.crossBlock
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* The event landed nowhere: on this root, or on the body via the retarget above.
|
|
24
|
+
* Deliberately NOT "inside the root but not a block" — the search input and a
|
|
25
|
+
* host's header field are both inside and own their own clipboard. The body arm is
|
|
26
|
+
* claimant-scoped because the listener sees every editor on the page.
|
|
27
|
+
*/
|
|
28
|
+
function landedNowhere(root, target) {
|
|
29
|
+
if (target === root)
|
|
30
|
+
return true;
|
|
31
|
+
return (target === null || target === root.ownerDocument.body) && claimsBodyChord(root);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Who owns an event that reached no block surface. `defaultPrevented` is the block surfaces'
|
|
35
|
+
* receipt: every arm of their shared clipboard skeleton prevents before it writes, and the one
|
|
36
|
+
* arm that declines to native is a collapsed cell caret, which is neither state below. Order
|
|
37
|
+
* decides nothing — widget selection and cross-block selection clear each other.
|
|
38
|
+
*/
|
|
39
|
+
function targetOf(event, root) {
|
|
40
|
+
if (event.defaultPrevented)
|
|
41
|
+
return null;
|
|
42
|
+
if (!landedNowhere(root, event.target))
|
|
43
|
+
return null;
|
|
44
|
+
const block = deps.getSelectedWidgetBlock();
|
|
45
|
+
if (block)
|
|
46
|
+
return { arm: 'widget', block };
|
|
47
|
+
return deps.selection.isCrossBlock ? { arm: 'cross-block' } : null;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
handleCopy(event, root) {
|
|
51
|
+
const target = targetOf(event, root);
|
|
52
|
+
if (!target)
|
|
53
|
+
return;
|
|
54
|
+
if (target.arm === 'widget')
|
|
55
|
+
target.block.claimRootClipboard?.(event);
|
|
56
|
+
else
|
|
57
|
+
writeCrossBlockCopy(event, crossDeps);
|
|
58
|
+
},
|
|
59
|
+
handleCut(event, root) {
|
|
60
|
+
const target = targetOf(event, root);
|
|
61
|
+
if (!target)
|
|
62
|
+
return;
|
|
63
|
+
if (target.arm === 'widget')
|
|
64
|
+
target.block.claimRootClipboard?.(event);
|
|
65
|
+
else
|
|
66
|
+
void writeCrossBlockCut(event, crossDeps);
|
|
67
|
+
},
|
|
68
|
+
handlePaste(event, root) {
|
|
69
|
+
const target = targetOf(event, root);
|
|
70
|
+
if (!target)
|
|
71
|
+
return;
|
|
72
|
+
if (target.arm === 'widget')
|
|
73
|
+
target.block.claimRootClipboard?.(event);
|
|
74
|
+
else
|
|
75
|
+
void paste(event);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* The image arm first, exactly as a block surface orders it: the root reaches this
|
|
80
|
+
* seam for a pure-image paste whenever the focus endpoint hosts no caret, and going
|
|
81
|
+
* straight to the cross-block arm discarded it for want of any `text/plain`.
|
|
82
|
+
*/
|
|
83
|
+
async function paste(event) {
|
|
84
|
+
// Read the range synchronously with the event, while the cross-block arm still
|
|
85
|
+
// guarantees a selection — below the await, a read could only report nothing.
|
|
86
|
+
const rangeStartPath = deps.selection.start?.path.slice();
|
|
87
|
+
const images = imageArm.filesOf(event.clipboardData);
|
|
88
|
+
if (images.length === 0) {
|
|
89
|
+
await deps.crossBlock.handlePaste(event);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
// Prevent before awaiting the hook, as the surface skeleton does: the browser's
|
|
93
|
+
// own paste would otherwise fire during the import and inject DOM the CST never sees.
|
|
94
|
+
event.preventDefault();
|
|
95
|
+
const markdown = await imageArm.run(event, images);
|
|
96
|
+
if (markdown === null)
|
|
97
|
+
return;
|
|
98
|
+
// The selection collapsed mid-import, leaving an imported asset and no caret —
|
|
99
|
+
// the one landing this seam cannot supply, having no block surface to fall back on.
|
|
100
|
+
emitClipboardError(deps.events, {
|
|
101
|
+
error: new Error('imported image had no insertion point at the editor root; nothing inserted'),
|
|
102
|
+
...(rangeStartPath ? { path: rangeStartPath } : {})
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor-root chord routing: dispatch for keystrokes no mounted block consumed. Pure
|
|
3
|
+
* dispatch over live getters; the installing `$effect` stays in `Editor.svelte`.
|
|
4
|
+
*
|
|
5
|
+
* Arm order is load-bearing (pinned by `test/components/editor-root-keydown.test.ts`): search /
|
|
6
|
+
* Escape runs FIRST because the global-chord arm's focus gate is an unconditional
|
|
7
|
+
* early return, which would swallow a Mod+F pressed with the caret inside a block.
|
|
8
|
+
*/
|
|
9
|
+
import type { PluginEditorLookup } from '../editor-keys';
|
|
10
|
+
import type { PluginActivation } from '../schema/plugin-activation';
|
|
11
|
+
import type { PresentationMode } from '../presentation-mode';
|
|
12
|
+
import type { SearchState } from '../search/search-state.svelte';
|
|
13
|
+
import type { CrossBlockHandlers } from '../selection/cross-block/dispatch';
|
|
14
|
+
import type { CommandErrorSink } from '../schema/block-commands';
|
|
15
|
+
import type { KeybindingOverrideMap } from '../schema/keybinding-overrides';
|
|
16
|
+
import { type GlobalCommandContext } from '../schema/commands';
|
|
17
|
+
export interface EditorRootKeydownDeps {
|
|
18
|
+
/** Getters, never values: a capture freezes the reading-mode gate and the
|
|
19
|
+
* override map at construction time. */
|
|
20
|
+
get searchBarEnabled(): boolean;
|
|
21
|
+
get mode(): PresentationMode;
|
|
22
|
+
/** One predicate, so the root Mod+H and the bar's chevron cannot diverge on when
|
|
23
|
+
* the replace row may open. */
|
|
24
|
+
get canReplace(): boolean;
|
|
25
|
+
get keybindingOverrides(): KeybindingOverrideMap;
|
|
26
|
+
get isCrossBlock(): boolean;
|
|
27
|
+
search: SearchState;
|
|
28
|
+
history: GlobalCommandContext['history'];
|
|
29
|
+
pluginEditor: PluginEditorLookup;
|
|
30
|
+
/** The plugins this instance activated, so the root claims only its own plugins'
|
|
31
|
+
* chords. `undefined` = every installed plugin. */
|
|
32
|
+
activation: PluginActivation | undefined;
|
|
33
|
+
onCommandError: CommandErrorSink;
|
|
34
|
+
crossBlock: Pick<CrossBlockHandlers, 'handleKeyDown'>;
|
|
35
|
+
/** True for nodes in the host's `header` slot: they sit inside `root.contains`
|
|
36
|
+
* without being the editor's own content. */
|
|
37
|
+
isHostChrome(node: Node | null): boolean;
|
|
38
|
+
/** Snapshot the pre-search caret; the bar's close handler restores it. */
|
|
39
|
+
saveSearchRange(range: Range | null): void;
|
|
40
|
+
setReplaceExpanded(expanded: boolean): void;
|
|
41
|
+
}
|
|
42
|
+
export interface EditorRootKeydown {
|
|
43
|
+
/** `root` is the element the installing effect captured, not a live binding: a
|
|
44
|
+
* teardown that nulled the component's reference must not reach here. */
|
|
45
|
+
handleKeyDown(event: KeyboardEvent, root: HTMLElement): void;
|
|
46
|
+
}
|
|
47
|
+
export declare function createEditorRootKeydown(deps: EditorRootKeydownDeps): EditorRootKeydown;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor-root chord routing: dispatch for keystrokes no mounted block consumed. Pure
|
|
3
|
+
* dispatch over live getters; the installing `$effect` stays in `Editor.svelte`.
|
|
4
|
+
*
|
|
5
|
+
* Arm order is load-bearing (pinned by `test/components/editor-root-keydown.test.ts`): search /
|
|
6
|
+
* Escape runs FIRST because the global-chord arm's focus gate is an unconditional
|
|
7
|
+
* early return, which would swallow a Mod+F pressed with the caret inside a block.
|
|
8
|
+
*/
|
|
9
|
+
import { claimsBodyChord, isForeignTextEntry } from '../active-editor';
|
|
10
|
+
import { isReservedUiChord, runGlobalChord } from '../schema/commands';
|
|
11
|
+
import { eventToChord } from '../schema/keybindings';
|
|
12
|
+
export function createEditorRootKeydown(deps) {
|
|
13
|
+
/**
|
|
14
|
+
* Search / Escape: focus inside this editor, or a search chord this instance
|
|
15
|
+
* claims. `claimsBodyChord` gives a lone editor Find/Replace page-wide while
|
|
16
|
+
* keeping a second mounted editor from stealing it. A foreign text-entry surface
|
|
17
|
+
* owns page-global Find while the user types in it, so the editor yields there.
|
|
18
|
+
*/
|
|
19
|
+
function handleSearchChords(event, root, chord, active) {
|
|
20
|
+
if (!(root.contains(active) || (claimsBodyChord(root) && !isForeignTextEntry(active))))
|
|
21
|
+
return false;
|
|
22
|
+
if (deps.searchBarEnabled && chord && isReservedUiChord(chord)) {
|
|
23
|
+
event.preventDefault();
|
|
24
|
+
// Seed the query before open(): focusing the find input collapses the
|
|
25
|
+
// selection. The !isOpen guard keeps a repeat Mod+F from clobbering the
|
|
26
|
+
// saved pre-search caret with the collapsed one.
|
|
27
|
+
const selection = window.getSelection();
|
|
28
|
+
const selected = selection?.toString() ?? '';
|
|
29
|
+
if (!deps.search.isOpen) {
|
|
30
|
+
deps.saveSearchRange(selection && selection.rangeCount ? selection.getRangeAt(0).cloneRange() : null);
|
|
31
|
+
}
|
|
32
|
+
deps.setReplaceExpanded(chord === 'Mod+H' && deps.canReplace);
|
|
33
|
+
deps.search.open();
|
|
34
|
+
if (selected)
|
|
35
|
+
deps.search.setQuery(selected);
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
if (event.key === 'Escape' && deps.search.isOpen) {
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
deps.search.close();
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Undo/redo, plugin-global chords and cross-block motion fire only when no block holds focus:
|
|
47
|
+
* unlike the search chords, these collide with a focused outside element's native behavior (a
|
|
48
|
+
* text input owns Mod+Z). The gap caret's proxy is focused DOM of its own and resolves the same
|
|
49
|
+
* chords at the target (`GapCaret.svelte`), so this arm stays out of its way.
|
|
50
|
+
*/
|
|
51
|
+
function ownsWindowedOutCaret(root, active) {
|
|
52
|
+
const noElementFocused = active === null || active === root.ownerDocument.body;
|
|
53
|
+
return active === root || (noElementFocused && claimsBodyChord(root));
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
handleKeyDown(event, root) {
|
|
57
|
+
// Normalizes the key (CapsLock uppercases e.key without Shift), matching
|
|
58
|
+
// every other chord-dispatch site.
|
|
59
|
+
const chord = eventToChord(event);
|
|
60
|
+
const active = root.ownerDocument.activeElement;
|
|
61
|
+
// Host chrome owns its own keystrokes whole. The yield lives at the dispatch
|
|
62
|
+
// entry rather than in each arm; `isForeignTextEntry` can't answer it, since
|
|
63
|
+
// it means "outside every mounted editor" and the slot is inside one.
|
|
64
|
+
if (deps.isHostChrome(active))
|
|
65
|
+
return;
|
|
66
|
+
if (handleSearchChords(event, root, chord, active))
|
|
67
|
+
return;
|
|
68
|
+
if (!ownsWindowedOutCaret(root, active))
|
|
69
|
+
return;
|
|
70
|
+
// No block is focused here, so resolve at global scope — override tier included, or a
|
|
71
|
+
// consumer's global rebind would be dead at this surface alone. The seam carries the
|
|
72
|
+
// reading gate and answers whether the press was consumed.
|
|
73
|
+
if (chord &&
|
|
74
|
+
runGlobalChord(chord, deps.keybindingOverrides, {
|
|
75
|
+
isReading: deps.mode === 'reading',
|
|
76
|
+
history: deps.history,
|
|
77
|
+
pluginEditor: deps.pluginEditor,
|
|
78
|
+
activation: deps.activation,
|
|
79
|
+
onCommandError: deps.onCommandError
|
|
80
|
+
})) {
|
|
81
|
+
event.preventDefault();
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (deps.isCrossBlock)
|
|
85
|
+
void deps.crossBlock.handleKeyDown(event);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor-root ambient listeners: the mod-active cursor tracker, the selectionchange
|
|
3
|
+
* bridge, and the viewport-height watcher. Pure dispatch over live getters; each
|
|
4
|
+
* installing `$effect` stays in `Editor.svelte` as a guard plus one install call,
|
|
5
|
+
* returning the teardown. `onRoot`/`removeAll` capture that add/remove pair once.
|
|
6
|
+
*/
|
|
7
|
+
import type { UserScrollport } from '../cursor/scroll-ancestors';
|
|
8
|
+
export declare function onRoot<E extends Event>(target: EventTarget, type: string, handler: (event: E) => void, options?: {
|
|
9
|
+
capture?: boolean;
|
|
10
|
+
passive?: boolean;
|
|
11
|
+
}): () => void;
|
|
12
|
+
export declare function removeAll(...removers: (() => void)[]): () => void;
|
|
13
|
+
/**
|
|
14
|
+
* Only Ctrl/Cmd+click activates a link, so CSS switches links to a pointer cursor
|
|
15
|
+
* off `data-mod-active`. Reset on blur and visibility loss, or a modifier released
|
|
16
|
+
* while the page is unfocused sticks the cursor on.
|
|
17
|
+
*/
|
|
18
|
+
export declare function installModActiveTracker(root: HTMLElement): () => void;
|
|
19
|
+
export interface SelectionChangeBridgeDeps {
|
|
20
|
+
/** The element the installing effect captured, not a live binding. */
|
|
21
|
+
root: HTMLElement;
|
|
22
|
+
/** Live predicate, never a capture: the header slot can mount after install. */
|
|
23
|
+
isHostChrome(node: Node | null): boolean;
|
|
24
|
+
/** Emits this editor's current selection snapshot, read at event time. */
|
|
25
|
+
emit(): void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Single-block caret motion never goes through SelectionState, so without this
|
|
29
|
+
* bridge subscribers miss every intra-block move. Scoped to `root` to avoid noise
|
|
30
|
+
* from selections elsewhere on the page.
|
|
31
|
+
*/
|
|
32
|
+
export declare function installSelectionChangeBridge(deps: SelectionChangeBridgeDeps): () => void;
|
|
33
|
+
/**
|
|
34
|
+
* A focus departure is a selection change no browser channel reports: the native range can
|
|
35
|
+
* survive unfocused while the editor's own read goes null, so the channel announces it. Judged
|
|
36
|
+
* after the flush, never at focusout: a structural commit unmounts the focused surface and
|
|
37
|
+
* lands focus again after its own tick, and a departure that came back is no departure.
|
|
38
|
+
*/
|
|
39
|
+
export declare function installEditorBlurAnnouncer(deps: {
|
|
40
|
+
root: HTMLElement;
|
|
41
|
+
emit: () => void;
|
|
42
|
+
}): () => void;
|
|
43
|
+
/** Calls `bump` on a height change of the resolved scrollport `target`. */
|
|
44
|
+
export declare function installViewportHeightWatcher(target: UserScrollport, bump: () => void): () => void;
|