@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,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Publishing side of the ancestry settle (`tree-operations/unshare.ts`): a fold at a container's
|
|
3
|
+
* own slot splices its PARENT's children, a scope the commit's own change descriptor never
|
|
4
|
+
* covers, so that scope's ids and refs are resynced here instead.
|
|
5
|
+
*/
|
|
6
|
+
import { applyStructuralChangeToIdsRefs } from '../tree-operations/structural-change';
|
|
7
|
+
import { spliceMany } from '../tree-operations/splice-many';
|
|
8
|
+
import { assignIds } from '../block-id';
|
|
9
|
+
import { getStateForNode } from '../reactivity/state-registry';
|
|
10
|
+
import { replaceRefs } from '../reactivity/publish-ref.svelte';
|
|
11
|
+
/**
|
|
12
|
+
* Resync every folded scope's ids/refs and return the unwind for them, which a commit rolling
|
|
13
|
+
* back runs beside its own registers.
|
|
14
|
+
*/
|
|
15
|
+
export function publishAncestryFolds(deps, folds) {
|
|
16
|
+
const restores = [];
|
|
17
|
+
for (const fold of folds) {
|
|
18
|
+
restores.push(fold.owner ? publishContainerFold(deps, fold) : publishDocFold(deps, fold));
|
|
19
|
+
}
|
|
20
|
+
return () => {
|
|
21
|
+
for (let i = restores.length - 1; i >= 0; i--)
|
|
22
|
+
restores[i]();
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The landing a fold owes the caret: the container's slot is always gone (the reparse re-mints
|
|
27
|
+
* every block in the folded window), so a door whose focus addressed it has nothing to land on.
|
|
28
|
+
* `scopePath` is the committing scope's own path, from which the fold's depth names the parent.
|
|
29
|
+
* The chain rebuilds innermost-first, so the LAST fold is the outermost one — the one whose slot
|
|
30
|
+
* swallowed the others, and the only landing still addressable after them all.
|
|
31
|
+
*/
|
|
32
|
+
export function foldLandingFor(folds, scopePath) {
|
|
33
|
+
const fold = folds[folds.length - 1];
|
|
34
|
+
if (!fold)
|
|
35
|
+
return null;
|
|
36
|
+
return {
|
|
37
|
+
path: [...scopePath.slice(0, fold.depth), fold.landing.index],
|
|
38
|
+
offset: fold.landing.offset
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A splice made outside the commit ceremony, published as the ceremony publishes the change its
|
|
43
|
+
* mutate returns. `owner` is the container whose children moved, or undefined for the document.
|
|
44
|
+
*/
|
|
45
|
+
export function publishScopeFold(deps, owner, change) {
|
|
46
|
+
if (change.op === 'noop')
|
|
47
|
+
return;
|
|
48
|
+
if (owner)
|
|
49
|
+
publishContainerScope(owner, change);
|
|
50
|
+
else
|
|
51
|
+
publishDocScope(deps, change);
|
|
52
|
+
}
|
|
53
|
+
function publishDocScope(deps, change) {
|
|
54
|
+
const ids = [...deps.blockIds];
|
|
55
|
+
const refs = [...deps.blockRefs];
|
|
56
|
+
applyStructuralChangeToIdsRefs(change, ids, refs);
|
|
57
|
+
deps.setBlockIds(ids);
|
|
58
|
+
deps.setBlockRefs(refs);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Ids live on the owner node, which is what an unmounted container's BlockListState reads back;
|
|
62
|
+
* refs live on the state and only exist while the scope is mounted.
|
|
63
|
+
*/
|
|
64
|
+
function publishContainerScope(owner, change) {
|
|
65
|
+
const state = getStateForNode(owner);
|
|
66
|
+
// A container that never mounted has no ids to carry across, and this runs AFTER the fold —
|
|
67
|
+
// so one fresh id per surviving child is the whole answer, where a descriptor over a window
|
|
68
|
+
// the seeded array never held would mis-shape it (G1.36).
|
|
69
|
+
if (!owner.childIds) {
|
|
70
|
+
owner.childIds = assignIds(owner.children ?? []);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const ids = [...owner.childIds];
|
|
74
|
+
const refs = state ? [...state.innerBlockRefs] : [];
|
|
75
|
+
applyStructuralChangeToIdsRefs(change, ids, refs);
|
|
76
|
+
owner.childIds = ids;
|
|
77
|
+
if (state)
|
|
78
|
+
replaceRefs(state.innerBlockRefs, refs);
|
|
79
|
+
}
|
|
80
|
+
function publishDocFold(deps, fold) {
|
|
81
|
+
const savedIds = [...deps.blockIds];
|
|
82
|
+
const savedRefs = [...deps.blockRefs];
|
|
83
|
+
publishScopeFold(deps, undefined, fold.change);
|
|
84
|
+
return () => {
|
|
85
|
+
deps.setBlockIds(savedIds);
|
|
86
|
+
deps.setBlockRefs(savedRefs);
|
|
87
|
+
restoreChildren(fold);
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function publishContainerFold(deps, fold) {
|
|
91
|
+
const owner = fold.owner;
|
|
92
|
+
const state = getStateForNode(owner);
|
|
93
|
+
const savedIds = owner.childIds;
|
|
94
|
+
const savedRefs = state ? [...state.innerBlockRefs] : [];
|
|
95
|
+
publishScopeFold(deps, owner, fold.change);
|
|
96
|
+
return () => {
|
|
97
|
+
owner.childIds = savedIds;
|
|
98
|
+
if (state)
|
|
99
|
+
replaceRefs(state.innerBlockRefs, savedRefs);
|
|
100
|
+
restoreChildren(fold);
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/** The whole pre-splice array: a fold re-mints plural slots, so no narrower register covers it. */
|
|
104
|
+
function restoreChildren(fold) {
|
|
105
|
+
spliceMany(fold.siblings, 0, fold.siblings.length, fold.before);
|
|
106
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scope-parameterized structural-edit core shared by the top-level and container
|
|
3
|
+
* BlockEditActions factories. Each method is the interior body only — no edge guards,
|
|
4
|
+
* no upward delegation, no unwrap dispatch; the factories add those.
|
|
5
|
+
*/
|
|
6
|
+
import type { CstNode } from '../core/nodes';
|
|
7
|
+
import type { CommitAfterTick, UndoEntryMode } from '../action-contracts';
|
|
8
|
+
import type { CommitScope } from './block-edit-scope';
|
|
9
|
+
export interface BlockEditCore {
|
|
10
|
+
split(i: number, offset: number): Promise<void>;
|
|
11
|
+
descendToBody(i: number): Promise<void>;
|
|
12
|
+
insertParagraph(i: number, text: string): Promise<void>;
|
|
13
|
+
mergeWithPreviousInterior(i: number): Promise<void>;
|
|
14
|
+
mergeWithNextInterior(i: number): Promise<void>;
|
|
15
|
+
deleteInterior(i: number): Promise<void>;
|
|
16
|
+
updateBlockMetadata(i: number, metadata: Record<string, unknown>, options?: {
|
|
17
|
+
undoEntry?: UndoEntryMode;
|
|
18
|
+
afterTick?: CommitAfterTick;
|
|
19
|
+
}): Promise<void>;
|
|
20
|
+
replaceBlock(i: number, replacement: CstNode[], focus?: {
|
|
21
|
+
replacementIndex: number;
|
|
22
|
+
offset: number;
|
|
23
|
+
path?: number[];
|
|
24
|
+
}, options?: {
|
|
25
|
+
undoEntry?: UndoEntryMode;
|
|
26
|
+
snapshotOffset?: number;
|
|
27
|
+
}): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
export declare function createBlockEditCore(scope: CommitScope): BlockEditCore;
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scope-parameterized structural-edit core shared by the top-level and container
|
|
3
|
+
* BlockEditActions factories. Each method is the interior body only — no edge guards,
|
|
4
|
+
* no upward delegation, no unwrap dispatch; the factories add those.
|
|
5
|
+
*/
|
|
6
|
+
import { CURSOR_END, CURSOR_EXACT_START, CURSOR_START } from '../block-component';
|
|
7
|
+
import { displayLength, trailingLineEnding } from '../core/lines';
|
|
8
|
+
import { splitNode as performSplit, assertSplitLanding, mergeWithNext as performMergeNext, mergeIntoPrevDeepLeaf, deleteNode as performDelete, ensureEditableContainers, normalizeReplacementTrivia, rebuildUnsharedChain, restoreSeparatorOnFill, dropDoubledSeparator, emptyParagraph, paragraphNode } from '../tree-operations';
|
|
9
|
+
import { replacePreservingFirst, stampStructuralChange } from '../tree-operations/structural-change';
|
|
10
|
+
import { spliceMany } from '../tree-operations/splice-many';
|
|
11
|
+
import { isMergeEligible, isBlockEditable } from '../schema/merge-rules';
|
|
12
|
+
import { getBlockKindDescriptor } from '../schema/block-kind-descriptor';
|
|
13
|
+
import { mergedElseFocusNext, mergedElseFocusPrevious } from './merge-fallback';
|
|
14
|
+
/** The byte/settle sinks' owner answer, read live off the commit's owned view. */
|
|
15
|
+
const bodyParentOf = (view) => ({
|
|
16
|
+
children: view.children,
|
|
17
|
+
ownerKind: view.ownerKind,
|
|
18
|
+
owner: view.owner
|
|
19
|
+
});
|
|
20
|
+
/** The ineligible-merge cascade both directions share; `dir` names the neighbour side. */
|
|
21
|
+
async function handleIneligibleNeighbor(scope, i, dir) {
|
|
22
|
+
const neighbor = i + dir;
|
|
23
|
+
const neighborKind = scope.children()[neighbor].kind;
|
|
24
|
+
// A whole-block-focus neighbor is focused, not deleted: press one highlights it, a second
|
|
25
|
+
// press deletes it. Ordered first so a not-mergeable-but-editable kind never dead-ends here.
|
|
26
|
+
if (getBlockKindDescriptor(neighborKind).blockFocus === 'whole-block') {
|
|
27
|
+
scope.refAt(neighbor)?.focus(0);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (isBlockEditable(neighborKind)) {
|
|
31
|
+
scope.refAt(neighbor)?.focus(dir < 0 ? CURSOR_END : CURSOR_START);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
await scope.commit({
|
|
35
|
+
snapshot: { index: i, offset: dir < 0 ? 0 : CURSOR_END },
|
|
36
|
+
eventTarget: neighbor,
|
|
37
|
+
op: { kind: 'delete' },
|
|
38
|
+
mutate: (view) => performDelete(bodyParentOf(view), neighbor, view.sharing),
|
|
39
|
+
afterTick: () => scope.refAt(dir < 0 ? neighbor : i)?.focus(dir < 0 ? CURSOR_START : CURSOR_END),
|
|
40
|
+
discardIfNoop: true
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export function createBlockEditCore(scope) {
|
|
44
|
+
const core = {
|
|
45
|
+
async split(i, offset) {
|
|
46
|
+
// Offset 0 is not special: empty block above, content below, caret on the content. The
|
|
47
|
+
// landing is the primitive's answer, not `i + 1` — a plural first half pushes the
|
|
48
|
+
// second half further down, and G1.34 holds the seat to it.
|
|
49
|
+
let secondHalfIndex = i + 1;
|
|
50
|
+
let split;
|
|
51
|
+
await scope.commit({
|
|
52
|
+
snapshot: { index: i, offset },
|
|
53
|
+
eventTarget: i,
|
|
54
|
+
op: { kind: 'split', detail: { at: offset } },
|
|
55
|
+
mutate: (view) => {
|
|
56
|
+
split = performSplit(bodyParentOf(view), i, offset, view.sharing, view.getPresentationMode?.(), view.linkRef);
|
|
57
|
+
secondHalfIndex = split.secondHalfIndex;
|
|
58
|
+
stampStructuralChange(view.children, split.change, view.sharing);
|
|
59
|
+
return split.change;
|
|
60
|
+
},
|
|
61
|
+
afterTick: () => {
|
|
62
|
+
if (split)
|
|
63
|
+
assertSplitLanding(split, secondHalfIndex);
|
|
64
|
+
scope.refAt(secondHalfIndex)?.focus(CURSOR_EXACT_START);
|
|
65
|
+
},
|
|
66
|
+
// A single-line/chrome block splits to nothing, so discard rather than
|
|
67
|
+
// mint a dead entry on a rebound Enter.
|
|
68
|
+
discardIfNoop: true
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
async descendToBody(i) {
|
|
72
|
+
const children = scope.children();
|
|
73
|
+
// A body child already exists: pure focus move, no undo entry. An absent ref
|
|
74
|
+
// (windowed-out, or a collapsed body) leaves the caret put — load-bearing.
|
|
75
|
+
if (i + 1 < children.length) {
|
|
76
|
+
scope.refAt(i + 1)?.focus(CURSOR_START);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
await scope.commit({
|
|
80
|
+
snapshot: { index: i, offset: 0 },
|
|
81
|
+
eventTarget: i + 1,
|
|
82
|
+
op: { kind: 'appendBlock' },
|
|
83
|
+
mutate: (view) => {
|
|
84
|
+
// The synthesized body line IS a line ending, so it takes the chrome
|
|
85
|
+
// sibling's (G4.20); a defaulted LF strands one in a CRLF container.
|
|
86
|
+
const body = emptyParagraph('', trailingLineEnding(view.children[i]?.raw ?? '\n'));
|
|
87
|
+
view.children.splice(i + 1, 0, body);
|
|
88
|
+
const change = { op: 'insert', at: i + 1, count: 1 };
|
|
89
|
+
stampStructuralChange(view.children, change, view.sharing);
|
|
90
|
+
return change;
|
|
91
|
+
},
|
|
92
|
+
afterTick: () => scope.refAt(i + 1)?.focus(0)
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
/**
|
|
96
|
+
* The between-blocks caret's mint (`selection/gap-caret.ts`). `i` is a BOUNDARY index,
|
|
97
|
+
* so `children.length` appends; the caret lands after the text the paragraph carries.
|
|
98
|
+
*/
|
|
99
|
+
async insertParagraph(i, text) {
|
|
100
|
+
const children = scope.children();
|
|
101
|
+
// Both the separator and the paragraph's own bytes ARE line endings, so both take a
|
|
102
|
+
// real neighbour's (G4.20); a boundary always has one on at least one side.
|
|
103
|
+
const lineEnding = trailingLineEnding((children[i - 1] ?? children[i])?.raw ?? '\n');
|
|
104
|
+
await scope.commit({
|
|
105
|
+
snapshot: { index: i, offset: 0 },
|
|
106
|
+
eventTarget: i,
|
|
107
|
+
op: { kind: 'insertBlock' },
|
|
108
|
+
mutate: (view) => {
|
|
109
|
+
// Only the scope's head block owns no separator; anywhere else the mint owes
|
|
110
|
+
// its predecessor a blank line, whatever the displaced sibling carried.
|
|
111
|
+
const trivia = i > 0 ? lineEnding : (view.children[0]?.leadingTrivia ?? '');
|
|
112
|
+
view.children.splice(i, 0, paragraphNode(trivia, text, lineEnding));
|
|
113
|
+
const change = { op: 'insert', at: i, count: 1 };
|
|
114
|
+
stampStructuralChange(view.children, change, view.sharing);
|
|
115
|
+
// A gap-caret paragraph is a block of its own on BOTH sides, which the splice
|
|
116
|
+
// settle cannot infer: the displaced sibling is a body block now, not the head,
|
|
117
|
+
// so it owes its own separator, and an EMPTY mint is a blank line itself.
|
|
118
|
+
const parent = bodyParentOf(view);
|
|
119
|
+
restoreSeparatorOnFill(parent, i + 1, view.sharing);
|
|
120
|
+
dropDoubledSeparator(parent, i, view.sharing);
|
|
121
|
+
return change;
|
|
122
|
+
},
|
|
123
|
+
afterTick: () => scope.refAt(i)?.focus(displayLength(text))
|
|
124
|
+
});
|
|
125
|
+
},
|
|
126
|
+
async mergeWithPreviousInterior(i) {
|
|
127
|
+
const children = scope.children();
|
|
128
|
+
const prevKind = children[i - 1].kind;
|
|
129
|
+
const currKind = children[i].kind;
|
|
130
|
+
if (!isMergeEligible(prevKind, currKind)) {
|
|
131
|
+
await handleIneligibleNeighbor(scope, i, -1);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
let mergeResult = null;
|
|
135
|
+
await scope.commit({
|
|
136
|
+
snapshot: { index: i, offset: 0 },
|
|
137
|
+
eventTarget: i,
|
|
138
|
+
op: { kind: 'merge', detail: { direction: 'prev' } },
|
|
139
|
+
mutate: (view) => {
|
|
140
|
+
mergeResult = mergeIntoPrevDeepLeaf(bodyParentOf(view), i, view.sharing, view.getPresentationMode?.(), view.linkRef, view.grammar);
|
|
141
|
+
return mergeResult?.change ?? { op: 'noop' };
|
|
142
|
+
},
|
|
143
|
+
afterTick: () => {
|
|
144
|
+
const ref = scope.refAt(i - 1);
|
|
145
|
+
const merged = mergedElseFocusPrevious(mergeResult, ref);
|
|
146
|
+
if (!merged)
|
|
147
|
+
return;
|
|
148
|
+
if (merged.targetPath.length === 0)
|
|
149
|
+
ref?.focus(merged.joinOffset);
|
|
150
|
+
else
|
|
151
|
+
ref?.focusByPath?.(merged.targetPath, merged.joinOffset);
|
|
152
|
+
},
|
|
153
|
+
// A no-target merge changes nothing; discard the entry but keep afterTick,
|
|
154
|
+
// which still lands the caret.
|
|
155
|
+
discardIfNoop: true
|
|
156
|
+
});
|
|
157
|
+
},
|
|
158
|
+
async mergeWithNextInterior(i) {
|
|
159
|
+
const children = scope.children();
|
|
160
|
+
const currKind = children[i].kind;
|
|
161
|
+
const nextKind = children[i + 1].kind;
|
|
162
|
+
if (!isMergeEligible(currKind, nextKind)) {
|
|
163
|
+
await handleIneligibleNeighbor(scope, i, 1);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
// The landing is the primitive's answer, not `displayLength` read ahead of it: a live
|
|
167
|
+
// seam cleanup drops runs on the first block's side and moves where the two met.
|
|
168
|
+
let merged = { change: { op: 'noop' }, joinOffset: 0 };
|
|
169
|
+
await scope.commit({
|
|
170
|
+
snapshot: { index: i, offset: CURSOR_END },
|
|
171
|
+
eventTarget: i,
|
|
172
|
+
op: { kind: 'merge', detail: { direction: 'next' } },
|
|
173
|
+
mutate: (view) => {
|
|
174
|
+
merged = performMergeNext({ children: view.children }, i, view.getPresentationMode?.(), view.linkRef);
|
|
175
|
+
stampStructuralChange(view.children, merged.change, view.sharing);
|
|
176
|
+
return merged.change;
|
|
177
|
+
},
|
|
178
|
+
afterTick: () => {
|
|
179
|
+
if (mergedElseFocusNext(merged.change, scope.refAt(i + 1))) {
|
|
180
|
+
scope.refAt(i)?.focus(merged.joinOffset);
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
discardIfNoop: true
|
|
184
|
+
});
|
|
185
|
+
},
|
|
186
|
+
async deleteInterior(i) {
|
|
187
|
+
await scope.commit({
|
|
188
|
+
snapshot: { index: i, offset: 0 },
|
|
189
|
+
eventTarget: i,
|
|
190
|
+
op: { kind: 'delete' },
|
|
191
|
+
mutate: (view) => performDelete(bodyParentOf(view), i, view.sharing),
|
|
192
|
+
afterTick: () => {
|
|
193
|
+
const focusIdx = Math.min(i, scope.children().length - 1);
|
|
194
|
+
if (focusIdx >= 0)
|
|
195
|
+
scope.refAt(focusIdx)?.focus(CURSOR_START);
|
|
196
|
+
},
|
|
197
|
+
discardIfNoop: true
|
|
198
|
+
});
|
|
199
|
+
},
|
|
200
|
+
async updateBlockMetadata(i, metadata, options) {
|
|
201
|
+
const children = scope.children();
|
|
202
|
+
if (i < 0 || i >= children.length)
|
|
203
|
+
return;
|
|
204
|
+
const fields = Object.keys(metadata);
|
|
205
|
+
if (fields.length === 0)
|
|
206
|
+
return;
|
|
207
|
+
// `mutate` returns noop, so the ceremony's dev oracle can't infer the resynced
|
|
208
|
+
// node. The owned copy exists only after unshareChild, hence a stable array
|
|
209
|
+
// the ceremony reads post-mutate.
|
|
210
|
+
const touchedNodes = [];
|
|
211
|
+
await scope.commit({
|
|
212
|
+
snapshot: options?.undoEntry === 'join' ? 'skip' : { index: i, offset: 0 },
|
|
213
|
+
eventTarget: i,
|
|
214
|
+
op: { kind: 'metadataUpdate', detail: { fields } },
|
|
215
|
+
touchedNodes,
|
|
216
|
+
mutate: (view) => {
|
|
217
|
+
const node = view.unshareChild(i);
|
|
218
|
+
node.metadata = { ...(node.metadata ?? {}), ...metadata };
|
|
219
|
+
// Through the chain funnel, not a bare rebuild: metadata can feed the
|
|
220
|
+
// container's OPENER line (an alert's type), so the rebuilt bytes may open
|
|
221
|
+
// as a different kind. The document branch runs no chain rebuild of its
|
|
222
|
+
// own, so this is the only seam a top-level metadata write crosses.
|
|
223
|
+
// `folds: null` — the rebuild root is the commit's own scope array, whose
|
|
224
|
+
// descriptor this mutate has already fixed as `noop`.
|
|
225
|
+
const [reclassified] = rebuildUnsharedChain({ children: view.children }, [node], view.sharing, null, view.grammar);
|
|
226
|
+
touchedNodes.push(reclassified?.replacement ?? node);
|
|
227
|
+
return { op: 'noop' };
|
|
228
|
+
},
|
|
229
|
+
afterTick: options?.afterTick
|
|
230
|
+
});
|
|
231
|
+
},
|
|
232
|
+
async replaceBlock(i, replacement, focus, options) {
|
|
233
|
+
const children = scope.children();
|
|
234
|
+
if (i < 0 || i >= children.length)
|
|
235
|
+
return;
|
|
236
|
+
// `snapshotOffset` is where the caret WAS, which undo restores; `focus.offset` is where
|
|
237
|
+
// it lands. They part company when the replacement seats it inside a new structure.
|
|
238
|
+
const snapshot = options?.undoEntry === 'join'
|
|
239
|
+
? 'skip'
|
|
240
|
+
: { index: i, offset: options?.snapshotOffset ?? focus?.offset ?? 0 };
|
|
241
|
+
await scope.commit({
|
|
242
|
+
snapshot,
|
|
243
|
+
eventTarget: i,
|
|
244
|
+
// Empty-replace op-kind is per-scope: top-level emits `replaceBlock{count:0}`,
|
|
245
|
+
// container collapses to `delete`. The structural change is `delete` either way.
|
|
246
|
+
op: replacement.length === 0
|
|
247
|
+
? scope.collapseEmptyReplaceToDelete
|
|
248
|
+
? { kind: 'delete' }
|
|
249
|
+
: { kind: 'replaceBlock', detail: { count: 0 } }
|
|
250
|
+
: { kind: 'replaceBlock', detail: { count: replacement.length } },
|
|
251
|
+
mutate: (view) => {
|
|
252
|
+
if (replacement.length === 0) {
|
|
253
|
+
view.children.splice(i, 1);
|
|
254
|
+
return { op: 'delete', at: i, count: 1 };
|
|
255
|
+
}
|
|
256
|
+
const normalized = normalizeReplacementTrivia(view.children[i], replacement);
|
|
257
|
+
for (const node of normalized)
|
|
258
|
+
ensureEditableContainers(node);
|
|
259
|
+
spliceMany(view.children, i, 1, normalized);
|
|
260
|
+
const change = replacePreservingFirst(i, 1, normalized.length);
|
|
261
|
+
stampStructuralChange(view.children, change, view.sharing);
|
|
262
|
+
return change;
|
|
263
|
+
},
|
|
264
|
+
afterTick: () => {
|
|
265
|
+
if (!focus || replacement.length === 0)
|
|
266
|
+
return;
|
|
267
|
+
const ref = scope.refAt(i + focus.replacementIndex);
|
|
268
|
+
if (focus.path?.length)
|
|
269
|
+
ref?.focusByPath?.(focus.path, focus.offset);
|
|
270
|
+
else
|
|
271
|
+
ref?.focus(focus.offset);
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
return core;
|
|
277
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-level adapter for the shared block-edit core: commit ceremony, child addressing, refs and
|
|
3
|
+
* unshare, for a top-level edit vs a container one. Both factories are the SINGLE mint point for
|
|
4
|
+
* the commit args' doc-absolute paths, as `DocPath` — the core hands over local indices only.
|
|
5
|
+
* G1.16 stays the runtime belt for the JS callers types don't bind.
|
|
6
|
+
*/
|
|
7
|
+
import type { OpDescriptor } from '../schema/operations';
|
|
8
|
+
import type { CommitAfterTick, ContainerScope } from '../action-contracts';
|
|
9
|
+
import type { AnyBlockKind, CstNode } from '../core/nodes';
|
|
10
|
+
import type { NodeView } from '../core/node-views';
|
|
11
|
+
import type { StructuralChange } from '../tree-operations/structural-change';
|
|
12
|
+
import type { SharingState } from '../tree-operations/sharing';
|
|
13
|
+
import type { GrammarView } from '../schema/block-openers';
|
|
14
|
+
import type { InlineResolverRef } from '../schema/inline-construct-policy';
|
|
15
|
+
import type { PresentationModeGetter } from '../editor-keys';
|
|
16
|
+
import type { BlockComponent } from '../block-component';
|
|
17
|
+
import type { EditorActionsDeps, UndoController } from './deps';
|
|
18
|
+
import type { NestedActionsDeps } from './nested/nested-actions';
|
|
19
|
+
import type { BlockListState } from '../reactivity/block-list-state.svelte';
|
|
20
|
+
/** Owned mutation view the core's `mutate` writes through — uniform across levels. */
|
|
21
|
+
export interface MutationView {
|
|
22
|
+
children: CstNode[];
|
|
23
|
+
sharing: SharingState;
|
|
24
|
+
/** The container these children belong to, for mutations whose bytes must satisfy
|
|
25
|
+
* its grammar (`bodyWrite`). Absent at the document root. */
|
|
26
|
+
ownerKind?: AnyBlockKind;
|
|
27
|
+
/** The container NODE itself, for settles that write its wrap slots. Nullable
|
|
28
|
+
* rather than optional so each adapter answers; `undefined` is the document root. */
|
|
29
|
+
owner: CstNode | undefined;
|
|
30
|
+
/** The instance's block grammar, for mutations that re-parse. Absent = the global grammar. */
|
|
31
|
+
grammar?: GrammarView;
|
|
32
|
+
/** Live EFFECTIVE mode, for mutations whose bytes depend on what the mode paints. Nullable
|
|
33
|
+
* rather than optional so each adapter answers; `undefined` reads as not-live. */
|
|
34
|
+
getPresentationMode: PresentationModeGetter | undefined;
|
|
35
|
+
/** The instance's link-reference resolver, so a rewrite parses the reference forms the render
|
|
36
|
+
* path drew. Nullable for the same reason as the mode; `undefined` reads them as brackets. */
|
|
37
|
+
linkRef: InlineResolverRef | undefined;
|
|
38
|
+
/** Copy-out-of-sharing the child at `i` before an in-place write; returns the owned node. */
|
|
39
|
+
unshareChild(i: number): CstNode;
|
|
40
|
+
}
|
|
41
|
+
export interface ScopeCommitArgs {
|
|
42
|
+
/** Snapshot coordinate in THIS scope's local index space, or 'skip' to join a caller's entry. */
|
|
43
|
+
snapshot: {
|
|
44
|
+
index: number;
|
|
45
|
+
offset: number;
|
|
46
|
+
} | 'skip';
|
|
47
|
+
/** Local index the edit event targets; the factory prefixes the scope's absolute path. */
|
|
48
|
+
eventTarget: number;
|
|
49
|
+
op: OpDescriptor;
|
|
50
|
+
mutate: (view: MutationView) => StructuralChange;
|
|
51
|
+
afterTick?: CommitAfterTick;
|
|
52
|
+
/**
|
|
53
|
+
* Leaves the dev staleness oracle checks when `mutate` returns `noop`. The owned
|
|
54
|
+
* copy exists only after `mutate` runs, hence a stable array. Top-level only.
|
|
55
|
+
*/
|
|
56
|
+
touchedNodes?: CstNode[];
|
|
57
|
+
/**
|
|
58
|
+
* A structural op that can legitimately no-op, so the ceremony discards the snapshot
|
|
59
|
+
* rather than mint a dead entry. Never on content/metadata commits — their `noop`
|
|
60
|
+
* still carries a byte change (action-contracts `DiscardIfNoop`).
|
|
61
|
+
*/
|
|
62
|
+
discardIfNoop?: boolean;
|
|
63
|
+
}
|
|
64
|
+
export interface CommitScope {
|
|
65
|
+
/** Read accessor — mutation happens through the commit's owned view, never this. */
|
|
66
|
+
children(): readonly NodeView[];
|
|
67
|
+
refAt(i: number): BlockComponent | undefined;
|
|
68
|
+
/** Empty replaceBlock emits `delete` (container) vs `replaceBlock{count:0}` (top-level). */
|
|
69
|
+
collapseEmptyReplaceToDelete: boolean;
|
|
70
|
+
commit(args: ScopeCommitArgs): Promise<void>;
|
|
71
|
+
}
|
|
72
|
+
/** The byte/settle sinks' owner answer for a container commit's own scope — {@link MutationView}'s twin. */
|
|
73
|
+
export declare const scopeParentOf: (scope: ContainerScope) => {
|
|
74
|
+
children: CstNode[];
|
|
75
|
+
ownerKind: "heading" | "setextHeading" | "paragraph" | "fencedCode" | "thematicBreak" | "indentedCode" | "htmlBlock" | "linkReferenceDefinition" | "tableCell" | "unrecognized" | "blockquote" | "list" | "listItem" | "table" | "tableRow" | import("../plugin").PluginBlockKind;
|
|
76
|
+
owner: CstNode;
|
|
77
|
+
};
|
|
78
|
+
export declare function createTopLevelScope(deps: EditorActionsDeps, controller: UndoController): CommitScope;
|
|
79
|
+
export declare function createContainerScope(state: BlockListState, deps: NestedActionsDeps): CommitScope;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-level adapter for the shared block-edit core: commit ceremony, child addressing, refs and
|
|
3
|
+
* unshare, for a top-level edit vs a container one. Both factories are the SINGLE mint point for
|
|
4
|
+
* the commit args' doc-absolute paths, as `DocPath` — the core hands over local indices only.
|
|
5
|
+
* G1.16 stays the runtime belt for the JS callers types don't bind.
|
|
6
|
+
*/
|
|
7
|
+
import { ensureUnsharedPath, ensureUnsharedChild } from '../tree-operations';
|
|
8
|
+
import { asDocPath } from '../selection/path-math';
|
|
9
|
+
import { extendDocPath } from '../cursor/coordinate-spaces';
|
|
10
|
+
/** The byte/settle sinks' owner answer for a container commit's own scope — {@link MutationView}'s twin. */
|
|
11
|
+
export const scopeParentOf = (scope) => ({
|
|
12
|
+
children: scope.children,
|
|
13
|
+
ownerKind: scope.node.kind,
|
|
14
|
+
owner: scope.node
|
|
15
|
+
});
|
|
16
|
+
// ── Top-level adapter ────────────────────────────────────────────────────────
|
|
17
|
+
export function createTopLevelScope(deps, controller) {
|
|
18
|
+
return {
|
|
19
|
+
children: () => deps.doc.children,
|
|
20
|
+
refAt: (i) => deps.blockRefs[i],
|
|
21
|
+
collapseEmptyReplaceToDelete: false,
|
|
22
|
+
commit({ snapshot, eventTarget, op, mutate, afterTick, touchedNodes, discardIfNoop }) {
|
|
23
|
+
return controller.commitStructural({
|
|
24
|
+
snapshot: snapshot === 'skip'
|
|
25
|
+
? 'skip'
|
|
26
|
+
: { path: asDocPath([snapshot.index]), offset: snapshot.offset },
|
|
27
|
+
mutate: (children) => mutate({
|
|
28
|
+
children,
|
|
29
|
+
sharing: deps.sharing,
|
|
30
|
+
owner: undefined,
|
|
31
|
+
grammar: deps.grammar,
|
|
32
|
+
getPresentationMode: deps.getPresentationMode,
|
|
33
|
+
linkRef: deps.linkRef,
|
|
34
|
+
unshareChild: (i) => ensureUnsharedPath({ children }, [i], deps.sharing)[0]
|
|
35
|
+
}),
|
|
36
|
+
op: { ...op, eventPath: asDocPath([eventTarget]) },
|
|
37
|
+
afterTick,
|
|
38
|
+
touchedNodes,
|
|
39
|
+
discardIfNoop
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
// ── Container adapter ────────────────────────────────────────────────────────
|
|
45
|
+
export function createContainerScope(state, deps) {
|
|
46
|
+
return {
|
|
47
|
+
// A fold at this container's own slot detaches it (`tree-operations/unshare.ts`), so a
|
|
48
|
+
// post-commit read can find the scope gone rather than merely empty.
|
|
49
|
+
children: () => deps.node?.children ?? [],
|
|
50
|
+
refAt: (i) => state.innerBlockRefs[i],
|
|
51
|
+
collapseEmptyReplaceToDelete: true,
|
|
52
|
+
commit({ snapshot, eventTarget, op, mutate, afterTick, discardIfNoop }) {
|
|
53
|
+
return deps.parent.containerEdit.commitContainer({
|
|
54
|
+
containerNode: deps.node,
|
|
55
|
+
path: deps.path,
|
|
56
|
+
state,
|
|
57
|
+
snapshot: snapshot === 'skip'
|
|
58
|
+
? 'skip'
|
|
59
|
+
: { path: extendDocPath(deps.path, snapshot.index), offset: snapshot.offset },
|
|
60
|
+
mutate: (scope) => mutate({
|
|
61
|
+
children: scope.children,
|
|
62
|
+
sharing: scope.sharing,
|
|
63
|
+
ownerKind: scope.node.kind,
|
|
64
|
+
owner: scope.node,
|
|
65
|
+
grammar: deps.grammar,
|
|
66
|
+
getPresentationMode: deps.getPresentationMode,
|
|
67
|
+
linkRef: deps.linkRef,
|
|
68
|
+
unshareChild: (i) => ensureUnsharedChild(scope.node, i, scope.sharing)
|
|
69
|
+
}),
|
|
70
|
+
op: { ...op, eventPath: extendDocPath(deps.path, eventTarget) },
|
|
71
|
+
afterTick,
|
|
72
|
+
discardIfNoop
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Top-level BlockEditActions factory. Structural mutations route through the shared
|
|
3
|
+
* `block-edit-core` against a top-level `CommitScope`; this factory adds the edge
|
|
4
|
+
* guards and the one per-level body the core can't share, `updateBlockContent`.
|
|
5
|
+
*/
|
|
6
|
+
import type { BlockEditActions } from '../action-contracts';
|
|
7
|
+
import type { EditorActionsDeps, UndoController } from './deps';
|
|
8
|
+
export declare function createBlockEditActions(deps: EditorActionsDeps, controller: UndoController): BlockEditActions;
|