@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,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composer for container nestedActions bundles. HistoryActions is deliberately
|
|
3
|
+
* absent: containers never override history, and Svelte context delivers the
|
|
4
|
+
* document-level HISTORY_KEY to any descendant.
|
|
5
|
+
*/
|
|
6
|
+
import type { BlockEditActions, ContainerEditActions, FocusActions, ListContext } from '../../action-contracts';
|
|
7
|
+
import type { NodeView } from '../../core/node-views';
|
|
8
|
+
import type { GrammarView } from '../../schema/block-openers';
|
|
9
|
+
import { type PresentationModeGetter } from '../../editor-keys';
|
|
10
|
+
import type { StickyColumnState } from '../../cursor/sticky-column';
|
|
11
|
+
import type { BlockListState } from '../../reactivity/block-list-state.svelte';
|
|
12
|
+
import type { InlineResolverRef } from '../../schema/inline-construct-policy';
|
|
13
|
+
export interface NestedActionsBundle {
|
|
14
|
+
blockEdit: BlockEditActions;
|
|
15
|
+
focus: FocusActions;
|
|
16
|
+
containerEdit: ContainerEditActions;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The three container coordinates every nested factory reads live. A component mints
|
|
20
|
+
* ONE of these and passes it BY REFERENCE to each factory it wires — never spread,
|
|
21
|
+
* which invokes the getters and captures stale values.
|
|
22
|
+
*/
|
|
23
|
+
export interface NodeScope {
|
|
24
|
+
get index(): number;
|
|
25
|
+
get node(): NodeView;
|
|
26
|
+
/** Doc-absolute path of `node`; spine unsharing + ancestry rebuilds key off it. */
|
|
27
|
+
get path(): number[];
|
|
28
|
+
}
|
|
29
|
+
export interface NestedActionsDeps {
|
|
30
|
+
index: number;
|
|
31
|
+
node: NodeView;
|
|
32
|
+
/** Doc-absolute path of `node`; spine unsharing + ancestry rebuilds key off it. */
|
|
33
|
+
path: number[];
|
|
34
|
+
stickyColumn: StickyColumnState;
|
|
35
|
+
/** The instance's block grammar, so a disabled kind's opener stays skipped when a
|
|
36
|
+
* nested block re-parses. Absent = the global grammar. */
|
|
37
|
+
grammar?: GrammarView;
|
|
38
|
+
/** Live EFFECTIVE mode, for interior mutations whose bytes depend on what the mode paints
|
|
39
|
+
* (the split rebalance). Nullable rather than optional so each container answers. */
|
|
40
|
+
getPresentationMode: PresentationModeGetter | undefined;
|
|
41
|
+
/** The instance's link-reference resolver, required-nullable beside the mode. */
|
|
42
|
+
linkRef: InlineResolverRef | undefined;
|
|
43
|
+
/** Enclosing list's context, when this container is a list nested in one. */
|
|
44
|
+
parentListContext?: ListContext;
|
|
45
|
+
parent: {
|
|
46
|
+
blockEdit: BlockEditActions;
|
|
47
|
+
focus: FocusActions;
|
|
48
|
+
containerEdit: ContainerEditActions;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* `createStandardNestedActions`'s public input: the shared `NodeScope` by reference
|
|
53
|
+
* plus the static config `NestedActionsDeps` carries.
|
|
54
|
+
*/
|
|
55
|
+
export type NestedActionsInput = Omit<NestedActionsDeps, 'index' | 'node' | 'path'> & {
|
|
56
|
+
scope: NodeScope;
|
|
57
|
+
};
|
|
58
|
+
/** Receives stable default bundle references; chain via `defaults.blockEdit.foo(...)`. */
|
|
59
|
+
export type NestedActionsOverrideFactory = (defaults: NestedActionsBundle) => {
|
|
60
|
+
blockEdit?: Partial<BlockEditActions>;
|
|
61
|
+
focus?: Partial<FocusActions>;
|
|
62
|
+
containerEdit?: Partial<ContainerEditActions>;
|
|
63
|
+
};
|
|
64
|
+
export declare function createStandardNestedActions(state: BlockListState, input: NestedActionsInput, overrideFactory?: NestedActionsOverrideFactory): NestedActionsBundle;
|
|
65
|
+
export declare function setNestedActionsContexts(bundle: NestedActionsBundle): void;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composer for container nestedActions bundles. HistoryActions is deliberately
|
|
3
|
+
* absent: containers never override history, and Svelte context delivers the
|
|
4
|
+
* document-level HISTORY_KEY to any descendant.
|
|
5
|
+
*/
|
|
6
|
+
import { setContext } from 'svelte';
|
|
7
|
+
import { BLOCK_EDIT_KEY, CONTAINER_EDIT_KEY, FOCUS_KEY, HISTORY_KEY } from '../../editor-keys';
|
|
8
|
+
import { assertInvariant } from '../../assert';
|
|
9
|
+
import { checkNoContainerHistoryKey } from '../../invariants/context-keys';
|
|
10
|
+
import { createNestedBlockEdit } from './nested-block-edit';
|
|
11
|
+
import { createNestedFocus } from './nested-focus';
|
|
12
|
+
import { withEnterCompletion } from '../enter-completion';
|
|
13
|
+
export function createStandardNestedActions(state, input, overrideFactory) {
|
|
14
|
+
// Adapt `scope` to the inline shape the sub-factories read, once at the choke point
|
|
15
|
+
// rather than at every call site. Getters stay live; destructuring would snapshot.
|
|
16
|
+
const deps = {
|
|
17
|
+
get index() {
|
|
18
|
+
return input.scope.index;
|
|
19
|
+
},
|
|
20
|
+
get node() {
|
|
21
|
+
return input.scope.node;
|
|
22
|
+
},
|
|
23
|
+
get path() {
|
|
24
|
+
return input.scope.path;
|
|
25
|
+
},
|
|
26
|
+
stickyColumn: input.stickyColumn,
|
|
27
|
+
grammar: input.grammar,
|
|
28
|
+
getPresentationMode: input.getPresentationMode,
|
|
29
|
+
linkRef: input.linkRef,
|
|
30
|
+
parentListContext: input.parentListContext,
|
|
31
|
+
parent: input.parent
|
|
32
|
+
};
|
|
33
|
+
const blockEdit = createNestedBlockEdit(state, deps);
|
|
34
|
+
const focus = createNestedFocus(state, deps);
|
|
35
|
+
// Commit coordinates are doc-absolute at their mint point (block-edit-scope), so
|
|
36
|
+
// intermediate containers have nothing to remap and this passes straight through.
|
|
37
|
+
const containerEdit = deps.parent.containerEdit;
|
|
38
|
+
const defaults = { blockEdit, focus, containerEdit };
|
|
39
|
+
// Above the override spread, so a container replacing `splitBlock` keeps the completion arm
|
|
40
|
+
// its subtree owes. `defaults` stays undecorated: an override chaining back into it is
|
|
41
|
+
// already past the consult, and re-entering would spend one press on two.
|
|
42
|
+
const childAt = (index) => deps.node.children?.[index];
|
|
43
|
+
if (!overrideFactory) {
|
|
44
|
+
return { ...defaults, blockEdit: withEnterCompletion(blockEdit, childAt) };
|
|
45
|
+
}
|
|
46
|
+
const overrides = overrideFactory(defaults);
|
|
47
|
+
return {
|
|
48
|
+
blockEdit: withEnterCompletion({ ...blockEdit, ...(overrides.blockEdit ?? {}) }, childAt),
|
|
49
|
+
focus: { ...focus, ...(overrides.focus ?? {}) },
|
|
50
|
+
containerEdit: { ...containerEdit, ...(overrides.containerEdit ?? {}) }
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function setNestedActionsContexts(bundle) {
|
|
54
|
+
const keys = [BLOCK_EDIT_KEY, FOCUS_KEY, CONTAINER_EDIT_KEY];
|
|
55
|
+
assertInvariant('container-history-key', () => checkNoContainerHistoryKey(keys, HISTORY_KEY));
|
|
56
|
+
setContext(BLOCK_EDIT_KEY, bundle.blockEdit);
|
|
57
|
+
setContext(FOCUS_KEY, bundle.focus);
|
|
58
|
+
setContext(CONTAINER_EDIT_KEY, bundle.containerEdit);
|
|
59
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Container BlockEditActions factory. Interior mutations route through the shared
|
|
3
|
+
* `block-edit-core` against a container `CommitScope`; this wrapper owns what the
|
|
4
|
+
* core can't: the children guards, boundary delegation up to `parent.blockEdit`, the
|
|
5
|
+
* unwrap dispatch, and `updateBlockContent`.
|
|
6
|
+
*/
|
|
7
|
+
import type { BlockEditActions } from '../../action-contracts';
|
|
8
|
+
import type { BlockListState } from '../../reactivity/block-list-state.svelte';
|
|
9
|
+
import type { NestedActionsDeps } from './nested-actions';
|
|
10
|
+
export declare function createNestedBlockEdit(state: BlockListState, deps: NestedActionsDeps): BlockEditActions;
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Container BlockEditActions factory. Interior mutations route through the shared
|
|
3
|
+
* `block-edit-core` against a container `CommitScope`; this wrapper owns what the
|
|
4
|
+
* core can't: the children guards, boundary delegation up to `parent.blockEdit`, the
|
|
5
|
+
* unwrap dispatch, and `updateBlockContent`.
|
|
6
|
+
*/
|
|
7
|
+
import { tick } from 'svelte';
|
|
8
|
+
import { updateNodeContent as performUpdate, ensureUnsharedChild, reconcileTaskMetadata } from '../../tree-operations';
|
|
9
|
+
import { stampStructuralChange } from '../../tree-operations/structural-change';
|
|
10
|
+
import { tryGetBlockKindDescriptor } from '../../schema/block-kind-descriptor';
|
|
11
|
+
import { isCollapsedContainer } from '../../schema/reserved-chrome';
|
|
12
|
+
import { assertInvariant } from '../../assert';
|
|
13
|
+
import { firstChildUnwrapStrategies, middleChildUnwrapStrategies } from '../unwrap-strategies';
|
|
14
|
+
import { createContainerScope, scopeParentOf } from '../block-edit-scope';
|
|
15
|
+
import { createBlockEditCore } from '../block-edit-core';
|
|
16
|
+
import { previewContentReparse, focusAfterContentReplace } from '../replacement-focus';
|
|
17
|
+
import { extendDocPath } from '../../cursor/coordinate-spaces';
|
|
18
|
+
export function createNestedBlockEdit(state, deps) {
|
|
19
|
+
const { parent } = deps;
|
|
20
|
+
const scope = createContainerScope(state, deps);
|
|
21
|
+
const core = createBlockEditCore(scope);
|
|
22
|
+
/**
|
|
23
|
+
* Where a caret at `offset` lands once this container's body-write rule has
|
|
24
|
+
* rewritten `text`. Both caret doors read it, since either can arrive from a
|
|
25
|
+
* component that measured the DOM before the rewrite.
|
|
26
|
+
*/
|
|
27
|
+
function mapCommittedOffset(text, offset) {
|
|
28
|
+
const bodyWrite = tryGetBlockKindDescriptor(deps.node.kind)?.bodyWrite;
|
|
29
|
+
return bodyWrite ? bodyWrite.mapOffset(text, offset) : offset;
|
|
30
|
+
}
|
|
31
|
+
const blockEdit = {
|
|
32
|
+
// ── Structural mutations (interior → core, edges → parent) ─────────────
|
|
33
|
+
async splitBlock(innerIndex, offset) {
|
|
34
|
+
if (!deps.node.children)
|
|
35
|
+
return;
|
|
36
|
+
await core.split(innerIndex, offset);
|
|
37
|
+
},
|
|
38
|
+
async descendToBody(innerIndex) {
|
|
39
|
+
if (!deps.node.children)
|
|
40
|
+
return;
|
|
41
|
+
await core.descendToBody(innerIndex);
|
|
42
|
+
},
|
|
43
|
+
async insertParagraph(boundaryIndex, text) {
|
|
44
|
+
if (!deps.node.children)
|
|
45
|
+
return;
|
|
46
|
+
await core.insertParagraph(boundaryIndex, text);
|
|
47
|
+
},
|
|
48
|
+
async mergeWithPrevious(innerIndex) {
|
|
49
|
+
if (!deps.node.children)
|
|
50
|
+
return;
|
|
51
|
+
const unwrapRole = tryGetBlockKindDescriptor(deps.node.kind)?.unwrapRole;
|
|
52
|
+
if (innerIndex <= 0) {
|
|
53
|
+
if (unwrapRole) {
|
|
54
|
+
await firstChildUnwrapStrategies[unwrapRole.firstChildBackspace]({ deps, state });
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
// Undeclared containers delegate upward. Awaited so caller continuations
|
|
58
|
+
// (focus placement) run after the upward chain settles.
|
|
59
|
+
await parent.blockEdit.mergeWithPrevious(deps.index);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (unwrapRole && unwrapRole.middleChildBackspace !== 'default-merge') {
|
|
63
|
+
await middleChildUnwrapStrategies[unwrapRole.middleChildBackspace]({ deps, state }, innerIndex);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
await core.mergeWithPreviousInterior(innerIndex);
|
|
67
|
+
},
|
|
68
|
+
async mergeWithNext(innerIndex) {
|
|
69
|
+
if (!deps.node.children)
|
|
70
|
+
return;
|
|
71
|
+
if (innerIndex >= deps.node.children.length - 1) {
|
|
72
|
+
return parent.blockEdit.mergeWithNext(deps.index);
|
|
73
|
+
}
|
|
74
|
+
// A collapsed container's body is unmounted, so forward-Delete exits past the container
|
|
75
|
+
// rather than dead-ending on the invisible body — a focus move, no mutation.
|
|
76
|
+
// `append: false` keeps the last-block case inert rather than minting a paragraph.
|
|
77
|
+
if (isCollapsedContainer(deps.node)) {
|
|
78
|
+
await parent.focus.moveFocus(deps.index + 1, 'start', { append: false });
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
await core.mergeWithNextInterior(innerIndex);
|
|
82
|
+
},
|
|
83
|
+
async deleteBlock(innerIndex) {
|
|
84
|
+
if (!deps.node.children)
|
|
85
|
+
return;
|
|
86
|
+
if (deps.node.children.length <= 1) {
|
|
87
|
+
return parent.blockEdit.deleteBlock(deps.index);
|
|
88
|
+
}
|
|
89
|
+
await core.deleteInterior(innerIndex);
|
|
90
|
+
},
|
|
91
|
+
updateBlockMetadata: (innerIndex, metadata, options) => core.updateBlockMetadata(innerIndex, metadata, options),
|
|
92
|
+
replaceBlock: (innerIndex, replacement, focus, options) => core.replaceBlock(innerIndex, replacement, focus, options),
|
|
93
|
+
// ── In-place leaf edits (per-level) ────────────────────────────────────
|
|
94
|
+
mapCommittedOffset,
|
|
95
|
+
async updateBlockContent(innerIndex, text, preEditOffset, postEditFocusOffset) {
|
|
96
|
+
// The batch's pause window opens once this keystroke's own work is done, throw
|
|
97
|
+
// included: an unarmed batch never ends by pause.
|
|
98
|
+
try {
|
|
99
|
+
await applyContentUpdate(innerIndex, text, preEditOffset, postEditFocusOffset);
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
parent.containerEdit.armDebouncedPause();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
async function applyContentUpdate(innerIndex, text, preEditOffset, postEditFocusOffset) {
|
|
107
|
+
if (!deps.node.children)
|
|
108
|
+
return;
|
|
109
|
+
// No tail suffix: the document-level fold has no container twin yet.
|
|
110
|
+
const preview = previewContentReparse(deps.node.children[innerIndex], text, deps.grammar, deps.node.kind, '');
|
|
111
|
+
const leafPath = extendDocPath(deps.path, innerIndex);
|
|
112
|
+
if (preview.op !== 'noop') {
|
|
113
|
+
// Mapped, because a caret measured before the rewrite names a position in
|
|
114
|
+
// bytes that never landed. Reachable here and not only on the routine path:
|
|
115
|
+
// completing `</details>` is a kind change, and a kind change commits.
|
|
116
|
+
const focusOffset = mapCommittedOffset(text, postEditFocusOffset ?? preEditOffset ?? 0);
|
|
117
|
+
let settled = { change: { op: 'noop' }, textStart: 0 };
|
|
118
|
+
await parent.containerEdit.commitContainer({
|
|
119
|
+
containerNode: deps.node,
|
|
120
|
+
path: deps.path,
|
|
121
|
+
state,
|
|
122
|
+
snapshot: { path: leafPath, offset: preEditOffset ?? 0 },
|
|
123
|
+
mutate: (scope) => {
|
|
124
|
+
ensureUnsharedChild(scope.node, innerIndex, scope.sharing);
|
|
125
|
+
settled = performUpdate(scopeParentOf(scope), innerIndex, text, deps.grammar, scope.sharing);
|
|
126
|
+
stampStructuralChange(scope.children, settled.change, scope.sharing);
|
|
127
|
+
return settled.change;
|
|
128
|
+
},
|
|
129
|
+
op: {
|
|
130
|
+
kind: 'updateContent',
|
|
131
|
+
detail: { length: text.length },
|
|
132
|
+
eventPath: leafPath
|
|
133
|
+
},
|
|
134
|
+
afterTick: () => focusAfterContentReplace(deps.path, innerIndex, settled, focusOffset, scope)
|
|
135
|
+
});
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
// Routine typing — debounced undo path, no structural commit. The inner leaf's
|
|
139
|
+
// id is the batch key, so a focus move between sibling leaves breaks the batch.
|
|
140
|
+
parent.containerEdit.pushDebouncedCheckpoint(leafPath, preEditOffset ?? 0, state.innerBlockIds[innerIndex]);
|
|
141
|
+
let settled = { change: { op: 'noop' }, textStart: 0 };
|
|
142
|
+
const reclassified = parent.containerEdit.withUnsharedSpine(leafPath, (chain, sharing) => {
|
|
143
|
+
assertInvariant('unshared-spine-depth', () => chain.length === leafPath.length
|
|
144
|
+
? null
|
|
145
|
+
: {
|
|
146
|
+
code: 'unshared-spine-depth',
|
|
147
|
+
message: `withUnsharedSpine: chain depth ${chain.length} != leaf path depth ${leafPath.length}`
|
|
148
|
+
});
|
|
149
|
+
const ownedContainer = chain[leafPath.length - 2];
|
|
150
|
+
if (!ownedContainer?.children)
|
|
151
|
+
return;
|
|
152
|
+
settled = performUpdate({
|
|
153
|
+
children: ownedContainer.children,
|
|
154
|
+
ownerKind: ownedContainer.kind,
|
|
155
|
+
owner: ownedContainer
|
|
156
|
+
}, innerIndex, text, deps.grammar, sharing);
|
|
157
|
+
// taskItem metadata is extracted at parse time from the first stripped
|
|
158
|
+
// line, so without this it freezes while the serialized source drifts.
|
|
159
|
+
if (ownedContainer.kind === 'listItem' && innerIndex === 0) {
|
|
160
|
+
reconcileTaskMetadata(ownedContainer);
|
|
161
|
+
}
|
|
162
|
+
return settled.change;
|
|
163
|
+
});
|
|
164
|
+
parent.containerEdit.nudgeReactivity();
|
|
165
|
+
// The rebuild re-kinded a container on this spine (a typed `> [!TIP]` marker
|
|
166
|
+
// moves into the container's own bytes), so the edited leaf no longer exists.
|
|
167
|
+
// Re-enter at the container's start; its focus walk lands in the body.
|
|
168
|
+
if (reclassified) {
|
|
169
|
+
await tick();
|
|
170
|
+
await parent.focus.moveFocus(deps.index, 'start');
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
// A blank-fill settle can fold here, which the single-node preview probe cannot see;
|
|
174
|
+
// the spine wrapper published the splice, and the caret follows the re-tiled bytes.
|
|
175
|
+
if (settled.change.op === 'noop')
|
|
176
|
+
return;
|
|
177
|
+
await tick();
|
|
178
|
+
focusAfterContentReplace(deps.path, innerIndex, settled, mapCommittedOffset(text, postEditFocusOffset ?? preEditOffset ?? 0), scope);
|
|
179
|
+
}
|
|
180
|
+
return blockEdit;
|
|
181
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FocusActions factory for container nestedActions bundles. Delegates to the
|
|
3
|
+
* pure dispatcher in `focus-dispatch`, supplying the container's live child
|
|
4
|
+
* count so out-of-range delegation routes through the parent correctly.
|
|
5
|
+
*/
|
|
6
|
+
import type { FocusActions } from '../../action-contracts';
|
|
7
|
+
import type { BlockListState } from '../../reactivity/block-list-state.svelte';
|
|
8
|
+
import type { NestedActionsDeps } from './nested-actions';
|
|
9
|
+
export declare function createNestedFocus(state: BlockListState, deps: NestedActionsDeps): FocusActions;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FocusActions factory for container nestedActions bundles. Delegates to the
|
|
3
|
+
* pure dispatcher in `focus-dispatch`, supplying the container's live child
|
|
4
|
+
* count so out-of-range delegation routes through the parent correctly.
|
|
5
|
+
*/
|
|
6
|
+
import { dispatchMoveFocus } from '../focus/focus-dispatch';
|
|
7
|
+
export function createNestedFocus(state, deps) {
|
|
8
|
+
const { stickyColumn, parent } = deps;
|
|
9
|
+
return {
|
|
10
|
+
// A nested scope's reveal IS the editor's recursive revealPath descending
|
|
11
|
+
// through this container, so this scope doesn't own it. The gap stop is forwarded
|
|
12
|
+
// for the same reason: the root holds the doc and selection reads.
|
|
13
|
+
revealPath: parent.focus.revealPath,
|
|
14
|
+
tryGapStop: parent.focus.tryGapStop,
|
|
15
|
+
// Sync, and does not reveal an off-window inner target, unlike the root
|
|
16
|
+
// `moveFocus`. The adjacent-only precondition is the caller's — VR-12
|
|
17
|
+
// (docs/design/virtual-rendering.md).
|
|
18
|
+
async moveFocus(innerIndex, position, options) {
|
|
19
|
+
await dispatchMoveFocus(state.innerBlockRefs, innerIndex, position, stickyColumn, { focus: parent.focus, index: deps.index }, {
|
|
20
|
+
// node.children.length is authoritative: refs.length lags after structural
|
|
21
|
+
// ops because bind:this fires asynchronously.
|
|
22
|
+
childCount: deps.node.children?.length,
|
|
23
|
+
options,
|
|
24
|
+
// The boundaries this scope owns are its own children's, so the container's
|
|
25
|
+
// doc-absolute path is their parent. Read live: `path` moves under edits.
|
|
26
|
+
gapStop: (boundaryIndex) => parent.focus.tryGapStop(deps.path, boundaryIndex)
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Lets paste modules depend on a narrow interface in their own layer instead of reaching up into editor-actions. */
|
|
2
|
+
import type { PasteCommitCoordinator } from '../tree-operations/paste/paste-deps';
|
|
3
|
+
import type { EditorActionsDeps, UndoController } from './deps';
|
|
4
|
+
export declare function createPasteCoordinator(controller: UndoController, revealPath: EditorActionsDeps['revealPath']): PasteCommitCoordinator;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Lets paste modules depend on a narrow interface in their own layer instead of reaching up into editor-actions. */
|
|
2
|
+
import { getStateForNode } from '../reactivity/state-registry';
|
|
3
|
+
export function createPasteCoordinator(controller, revealPath) {
|
|
4
|
+
return {
|
|
5
|
+
commitMultiScope: controller.commitMultiScope,
|
|
6
|
+
getDocScope: controller.getDocScope,
|
|
7
|
+
// editor-actions may read reactivity and reveal (downward edges); supplying
|
|
8
|
+
// them here keeps `tree-operations/paste/` from importing either itself.
|
|
9
|
+
resolveState: getStateForNode,
|
|
10
|
+
landCaret: async (path, offset) => {
|
|
11
|
+
const stamp = controller.historyGeneration();
|
|
12
|
+
const block = await revealPath(path);
|
|
13
|
+
// A history swap that resolved inside the reveal restored a different tree, so
|
|
14
|
+
// this path no longer addresses what the paste aimed at.
|
|
15
|
+
if (controller.historyGeneration() !== stamp)
|
|
16
|
+
return;
|
|
17
|
+
block?.focus(offset);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register a container-chrome leaf kind: editable text at a reserved child slot of a plugin
|
|
3
|
+
* container (a callout title, a details summary). The container declares the slot via
|
|
4
|
+
* `reservedChrome`; this seam supplies the leaf. Chrome only, never standalone recognizer-backed
|
|
5
|
+
* kinds — the contract is a single-line, plain-text child (`docs/design/plugin-contract.md`).
|
|
6
|
+
*/
|
|
7
|
+
import type { Component } from 'svelte';
|
|
8
|
+
import { type MergeRole } from '../../schema/block-kind-descriptor';
|
|
9
|
+
import { type KeyBinding } from '../../schema/keybindings';
|
|
10
|
+
import { type AnyBlockKind, type CstNode } from '../../core/nodes';
|
|
11
|
+
import type { BlockComponent, BlockComponentProps } from '../../block-component';
|
|
12
|
+
/**
|
|
13
|
+
* Mint the reserved child-0 node for a chrome leaf. An empty title collapses to a
|
|
14
|
+
* bare newline, so the empty leaf still holds a line.
|
|
15
|
+
*/
|
|
16
|
+
export declare function chromeChild(kind: AnyBlockKind, text: string): CstNode;
|
|
17
|
+
export interface ChromeLeafOptions {
|
|
18
|
+
/** CSS class on the leaf's surface, for chrome styling. */
|
|
19
|
+
blockClass?: string;
|
|
20
|
+
/** A binding replaces the seam default for its chord; the defaults fill the rest. */
|
|
21
|
+
keymap?: KeyBinding[];
|
|
22
|
+
/** Defaults to 'not-mergeable' (chrome: body prose cannot merge into it). */
|
|
23
|
+
mergeRole?: MergeRole;
|
|
24
|
+
}
|
|
25
|
+
export declare function registerChromeLeaf<P extends Partial<BlockComponentProps> & Record<string, unknown>>(kind: AnyBlockKind, component: Component<P, BlockComponent>, opts?: ChromeLeafOptions): void;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register a container-chrome leaf kind: editable text at a reserved child slot of a plugin
|
|
3
|
+
* container (a callout title, a details summary). The container declares the slot via
|
|
4
|
+
* `reservedChrome`; this seam supplies the leaf. Chrome only, never standalone recognizer-backed
|
|
5
|
+
* kinds — the contract is a single-line, plain-text child (`docs/design/plugin-contract.md`).
|
|
6
|
+
*/
|
|
7
|
+
import { registerBlockKind } from '../../schema/block-kind-descriptor';
|
|
8
|
+
import { registerBlockComponent, defineBlockComponent } from '../../schema/block-component-registry';
|
|
9
|
+
import { normalizeChord } from '../../schema/keybindings';
|
|
10
|
+
import { registerPasteSurface } from '../../tree-operations/paste-surfaces';
|
|
11
|
+
import { defaultInlineHook } from '../../tree-operations/paste/hooks';
|
|
12
|
+
import { makeBlockNode } from '../../core/nodes';
|
|
13
|
+
/**
|
|
14
|
+
* Mint the reserved child-0 node for a chrome leaf. An empty title collapses to a
|
|
15
|
+
* bare newline, so the empty leaf still holds a line.
|
|
16
|
+
*/
|
|
17
|
+
export function chromeChild(kind, text) {
|
|
18
|
+
return makeBlockNode({ kind, leadingTrivia: '', raw: text ? `${text}\n` : '\n' });
|
|
19
|
+
}
|
|
20
|
+
// Chrome is single-line by serialization, so Enter descends into the body
|
|
21
|
+
// instead of splitting; Backspace/Delete take the ordinary merge walk.
|
|
22
|
+
const CHROME_DEFAULT_KEYMAP = [
|
|
23
|
+
{ chord: 'Enter', command: 'chrome.descendToBody' },
|
|
24
|
+
{ chord: 'Backspace', command: 'block.mergePrev' },
|
|
25
|
+
{ chord: 'Delete', command: 'block.mergeNext' }
|
|
26
|
+
];
|
|
27
|
+
function mergeChromeKeymap(overrides) {
|
|
28
|
+
if (!overrides?.length)
|
|
29
|
+
return [...CHROME_DEFAULT_KEYMAP];
|
|
30
|
+
const overridden = new Set(overrides.map((b) => normalizeChord(b.chord)));
|
|
31
|
+
return [
|
|
32
|
+
...overrides,
|
|
33
|
+
...CHROME_DEFAULT_KEYMAP.filter((b) => !overridden.has(normalizeChord(b.chord)))
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
export function registerChromeLeaf(kind, component, opts = {}) {
|
|
37
|
+
registerBlockKind(kind, {
|
|
38
|
+
gapEdges: 'none',
|
|
39
|
+
mergeRole: opts.mergeRole ?? 'not-mergeable',
|
|
40
|
+
editable: true,
|
|
41
|
+
supportsInline: false,
|
|
42
|
+
contextDependentKind: true,
|
|
43
|
+
keymap: mergeChromeKeymap(opts.keymap),
|
|
44
|
+
// No conformanceFixture: the container opener mints child-0, so a chrome leaf
|
|
45
|
+
// never stands alone as a document scan's result.
|
|
46
|
+
closure: {
|
|
47
|
+
roundTrip: {
|
|
48
|
+
mode: 'implemented',
|
|
49
|
+
via: 'contextDependentKind — the container rebuildRaw emits the chrome bytes into its opener line'
|
|
50
|
+
},
|
|
51
|
+
focus: {
|
|
52
|
+
mode: 'implemented',
|
|
53
|
+
via: 'native caret; Enter descends to the body (chrome.descendToBody)'
|
|
54
|
+
},
|
|
55
|
+
mergeBackspace: {
|
|
56
|
+
mode: 'implemented',
|
|
57
|
+
via: 'not-mergeable chrome — cleared-not-deleted by range ops; Backspace/Delete take the merge walk'
|
|
58
|
+
},
|
|
59
|
+
selectionPaint: { mode: 'implemented', via: 'measurePartialRects (raw offsets)' },
|
|
60
|
+
searchPaint: { mode: 'implemented', via: 'chrome raw scanned; matches painted as marks' },
|
|
61
|
+
reorder: {
|
|
62
|
+
mode: 'not-supported',
|
|
63
|
+
reason: 'reserved child 0 — no independent block identity to move'
|
|
64
|
+
},
|
|
65
|
+
undo: { mode: 'inherit-default' },
|
|
66
|
+
clipboard: {
|
|
67
|
+
mode: 'implemented',
|
|
68
|
+
via: 'byte-slice copy; a slice touching the chrome re-emits the container — a mid-chrome start reopens it around the collected body, a mid-chrome end yields a chrome-only container'
|
|
69
|
+
},
|
|
70
|
+
simOracle: {
|
|
71
|
+
mode: 'implemented',
|
|
72
|
+
via: 'reserved-chrome structural-ops e2e under the [invariant:] watcher'
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
registerBlockComponent(kind, defineBlockComponent(component, () => ({ blockClass: opts.blockClass })));
|
|
77
|
+
// Inline-only surface, so `surfaceForcesInline` holds if a paste ever reaches
|
|
78
|
+
// surface resolution — defense behind the gate that already flattens chrome pastes.
|
|
79
|
+
registerPasteSurface({ kind, onInlinePaste: defaultInlineHook });
|
|
80
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The container-authoring seam a plugin block component builds on: the built-in
|
|
3
|
+
* container wiring collapsed into one factory, so a plugin never touches an editor
|
|
4
|
+
* context key. Call synchronously during component init — `getContext` reads the
|
|
5
|
+
* ancestor contexts and `useContainerWindowing` sets its own.
|
|
6
|
+
*/
|
|
7
|
+
import type { BlockEditActions, CommitAfterTick, FocusActions } from '../../action-contracts';
|
|
8
|
+
import type { NodeView } from '../../core/node-views';
|
|
9
|
+
import type { AmbientPrefix, BlockComponent, ContainerBlockComponent } from '../../block-component';
|
|
10
|
+
import { type KindCommandTarget } from '../../schema/block-commands';
|
|
11
|
+
import { type PresentationMode } from '../../presentation-mode';
|
|
12
|
+
import { type PluginEditorLookup } from '../../editor-keys';
|
|
13
|
+
import type { WindowResult } from '../../reactivity/block-window.svelte';
|
|
14
|
+
import type { RefSlots } from '../../reactivity/publish-ref.svelte';
|
|
15
|
+
import { type NestedActionsOverrideFactory } from '../nested/nested-actions';
|
|
16
|
+
/**
|
|
17
|
+
* The frozen inputs the host component feeds in. A function-valued field is a **live
|
|
18
|
+
* read**, re-evaluated on every use; a plain-valued field is static configuration.
|
|
19
|
+
* `getBoxEl` returns the chrome box whose direct `.block-list` child the windowing
|
|
20
|
+
* lookups walk, so chrome siblings beside the list are fine.
|
|
21
|
+
*/
|
|
22
|
+
export interface ContainerBlockDeps {
|
|
23
|
+
getNode(): NodeView;
|
|
24
|
+
getIndex(): number;
|
|
25
|
+
getPath(): number[];
|
|
26
|
+
getBoxEl(): HTMLElement | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Opt into whole-block focus for an opaque, childless container: the element that
|
|
29
|
+
* takes DOM focus. The kind must also declare `blockFocus: 'whole-block'`. Supply
|
|
30
|
+
* a surface for EVERY steady state — a null degrades to the box with a dev warning.
|
|
31
|
+
*/
|
|
32
|
+
getFocusEl?: () => HTMLElement | null | undefined;
|
|
33
|
+
/** Escape hatch only: the clamp derives from a declared `reservedChrome.isCollapsed`. */
|
|
34
|
+
isCollapsed?: () => boolean;
|
|
35
|
+
/** View-state hooks handed to a minted block command as `ctx.hooks`; typed `unknown`. */
|
|
36
|
+
commandHooks?: () => unknown;
|
|
37
|
+
/** Ambient prefix painted before the FIRST child's bytes — the listItem `- ` model. */
|
|
38
|
+
getAmbientPrefix?: () => AmbientPrefix;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The `BlockList` props the host spreads onto its rendered `<BlockList>`. Authored
|
|
42
|
+
* rather than derived, so an internal prop edit fails the check below instead of
|
|
43
|
+
* silently rewriting this contract.
|
|
44
|
+
*/
|
|
45
|
+
export interface ContainerBlockListProps {
|
|
46
|
+
children: readonly NodeView[];
|
|
47
|
+
blockIds: string[];
|
|
48
|
+
slots: RefSlots<BlockComponent>;
|
|
49
|
+
parentPath?: number[];
|
|
50
|
+
window?: WindowResult;
|
|
51
|
+
reorderable?: boolean;
|
|
52
|
+
ambientPrefixForFirst?: AmbientPrefix;
|
|
53
|
+
}
|
|
54
|
+
export type { ContainerBlockComponent };
|
|
55
|
+
export interface ContainerBlock {
|
|
56
|
+
/** Spread onto `<BlockList {...blockListProps} />` inside the chrome box. */
|
|
57
|
+
blockListProps: ContainerBlockListProps;
|
|
58
|
+
/** The live EFFECTIVE mode, for gating edit affordances. Preferred over the DOM probe. */
|
|
59
|
+
getPresentationMode(): PresentationMode;
|
|
60
|
+
/**
|
|
61
|
+
* The live editor theme name (`data-editor-theme`). A body painted by an engine
|
|
62
|
+
* rather than CSS must key its render on this and re-render when it changes.
|
|
63
|
+
*/
|
|
64
|
+
getTheme(): string;
|
|
65
|
+
/**
|
|
66
|
+
* This editor instance's options for the plugin owning this block's kind — the
|
|
67
|
+
* `{ plugin, options }` entry's channel, so two editors in one process configure the
|
|
68
|
+
* same kind differently. `unknown`, like `commandHooks`: the plugin narrows it.
|
|
69
|
+
*/
|
|
70
|
+
getOptions(): unknown;
|
|
71
|
+
/** The `BlockComponent` surface the host re-exports for BlockHost. */
|
|
72
|
+
containerApi: ContainerBlockComponent;
|
|
73
|
+
/**
|
|
74
|
+
* Commit a shallow metadata patch on THIS container as one undoable entry, through
|
|
75
|
+
* the kind's `rebuildRaw`. `afterTick` runs once the commit's DOM has settled.
|
|
76
|
+
*/
|
|
77
|
+
updateOwnMetadata(patch: Record<string, unknown>, afterTick?: CommitAfterTick): void | Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Attach to the chrome box: a chord bubbling from an inner leaf resolves against
|
|
80
|
+
* this kind's keymap. Kind-only, so a bubbled undo/redo never double-fires.
|
|
81
|
+
*/
|
|
82
|
+
handleKeydown(e: KeyboardEvent): void;
|
|
83
|
+
/**
|
|
84
|
+
* Hand the caret to the neighbour a plain arrow points at — the boundary exit for a
|
|
85
|
+
* plugin-owned editable whose caret has reached its own edge. Routes through the
|
|
86
|
+
* editor's focus traversal, so the landing inherits skip-non-focusable, container
|
|
87
|
+
* entry and windowing reveal. False for a modified or non-arrow key: leave it native.
|
|
88
|
+
*/
|
|
89
|
+
moveFocusOut(e: KeyboardEvent): boolean;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Collapse-ness has ONE definition: the descriptor's `reservedChrome.isCollapsed`
|
|
93
|
+
* probe. An explicit dep is dev-cross-checked against it, except in reading mode,
|
|
94
|
+
* which cannot write — a reader's open section is legitimately ahead of the document.
|
|
95
|
+
*/
|
|
96
|
+
export declare function composeCollapseProbe(explicit: (() => boolean) | undefined, getNode: () => NodeView, getPresentationMode?: () => PresentationMode): () => boolean;
|
|
97
|
+
/**
|
|
98
|
+
* The expand door a reveal opens before descending into a collapsed body. Commits
|
|
99
|
+
* `reservedChrome.expandPatch` as a real undoable edit, not a view-only divergence
|
|
100
|
+
* from the CST; declines in reading mode, which commits nothing.
|
|
101
|
+
*/
|
|
102
|
+
export declare function composeExpandDoor(deps: {
|
|
103
|
+
getNode: () => NodeView;
|
|
104
|
+
isCollapsed: () => boolean;
|
|
105
|
+
getPresentationMode: () => PresentationMode;
|
|
106
|
+
commit: (patch: Record<string, unknown>) => void | Promise<void>;
|
|
107
|
+
}): () => Promise<boolean>;
|
|
108
|
+
/**
|
|
109
|
+
* The `updateOwnMetadata` gate: reading mode writes no bytes (plugin-contract.md), so the
|
|
110
|
+
* commit declines as a no-op and DEV names the kind that knocked.
|
|
111
|
+
*/
|
|
112
|
+
export declare function composeMetadataDoor(deps: {
|
|
113
|
+
getNode: () => NodeView;
|
|
114
|
+
getPresentationMode: () => PresentationMode;
|
|
115
|
+
commit: (patch: Record<string, unknown>, afterTick?: CommitAfterTick) => void | Promise<void>;
|
|
116
|
+
}): ContainerBlock['updateOwnMetadata'];
|
|
117
|
+
/** While collapsed the body is unmounted, so `descendToBody` would mint an invisible one. */
|
|
118
|
+
export declare function gateDescendOnCollapse(isCollapsed: (() => boolean) | undefined, descend: (innerIndex: number) => void | Promise<void>): (innerIndex: number) => Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* While collapsed only the chrome row is mounted, so an interior `moveFocus`
|
|
121
|
+
* targeting a body index dead-ends on the unmounted ref. Route body targets past the
|
|
122
|
+
* container instead — the same exit an open container's past-end move takes.
|
|
123
|
+
*/
|
|
124
|
+
export declare function gateMoveFocusOnCollapse(isCollapsed: (() => boolean) | undefined, moveWithin: FocusActions['moveFocus'], parentFocus: FocusActions, getIndex: () => number): FocusActions['moveFocus'];
|
|
125
|
+
export type NestedActionsOverrides = ReturnType<NestedActionsOverrideFactory>;
|
|
126
|
+
/** Each surface spreads its base first: a gate ADDS a member, never replaces one. */
|
|
127
|
+
export declare function composeCollapseGates(base: NestedActionsOverrides, gates: {
|
|
128
|
+
descendToBody: NonNullable<BlockEditActions['descendToBody']>;
|
|
129
|
+
moveFocus: FocusActions['moveFocus'];
|
|
130
|
+
}): NestedActionsOverrides;
|
|
131
|
+
/**
|
|
132
|
+
* The kind-command target a plugin container bubbles into `dispatchKindCommand`.
|
|
133
|
+
* `runCommand` is inert — a plugin container owns no built-in kind commands, so a
|
|
134
|
+
* chord resolves only through a registered one.
|
|
135
|
+
*/
|
|
136
|
+
export declare function buildContainerKindTarget(deps: Pick<ContainerBlockDeps, 'getNode' | 'commandHooks'>, updateOwnMetadata: ContainerBlock['updateOwnMetadata'], pluginEditor?: PluginEditorLookup): KindCommandTarget;
|
|
137
|
+
export declare function createContainerBlock(deps: ContainerBlockDeps): ContainerBlock;
|