@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,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Container children mutations that keep `childIds` in lockstep, for out-of-commit-scope
|
|
3
|
+
* writes (discovered descendants/ancestors — see the `node-ops.ts` header). Inside a
|
|
4
|
+
* commit scope the StructuralChange descriptor owns id/ref sync; here a hand-rolled
|
|
5
|
+
* splice would let the parallel id array drift and break Svelte's keyed-each rendering.
|
|
6
|
+
* The same shape change invalidates `childSpans`, so both parallel arrays settle here.
|
|
7
|
+
*/
|
|
8
|
+
import { assignIds, generateBlockId } from '../block-id';
|
|
9
|
+
import { dropChildSpans } from '../schema/child-spans';
|
|
10
|
+
import { spliceMany } from './splice-many';
|
|
11
|
+
export function pushChild(container, child) {
|
|
12
|
+
if (!container.children)
|
|
13
|
+
container.children = [];
|
|
14
|
+
// Lazy-init (unlike spliceChildren): pushes land in containers assembled mid-merge that
|
|
15
|
+
// may not have mounted yet, so the parallel array must exist or the new id is dropped.
|
|
16
|
+
if (!container.childIds)
|
|
17
|
+
container.childIds = assignIds(container.children);
|
|
18
|
+
container.children.push(child);
|
|
19
|
+
container.childIds.push(generateBlockId());
|
|
20
|
+
dropChildSpans(container);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Bring `childIds` back to `children`'s length after an in-place children swap. The
|
|
24
|
+
* surviving prefix keeps its ids — a blanket re-mint would remount every child under
|
|
25
|
+
* Svelte's keyed each, the identity the swapping branches exist to preserve. No-op when
|
|
26
|
+
* the array is absent; the mounting BlockList backfills it.
|
|
27
|
+
*/
|
|
28
|
+
export function resyncChildIds(container) {
|
|
29
|
+
dropChildSpans(container);
|
|
30
|
+
const ids = container.childIds;
|
|
31
|
+
if (!ids)
|
|
32
|
+
return;
|
|
33
|
+
if (!container.children) {
|
|
34
|
+
container.childIds = undefined;
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const count = container.children.length;
|
|
38
|
+
if (ids.length > count)
|
|
39
|
+
ids.length = count;
|
|
40
|
+
for (let i = ids.length; i < count; i++)
|
|
41
|
+
ids.push(generateBlockId());
|
|
42
|
+
}
|
|
43
|
+
export function spliceChildren(container, at, removeCount, items) {
|
|
44
|
+
if (!container.children)
|
|
45
|
+
container.children = [];
|
|
46
|
+
// No lazy-init here: containers without childIds get them from the mounting BlockList anyway.
|
|
47
|
+
if (container.childIds) {
|
|
48
|
+
// A replacement's head continues the slot it lands in, so it keeps that slot's id —
|
|
49
|
+
// `replacePreservingFirst`'s rule, which the in-commit-scope splice already carries.
|
|
50
|
+
const continues = removeCount > 0 && items.length > 0;
|
|
51
|
+
const ids = items.map((_, i) => i === 0 && continues ? container.childIds[at] : generateBlockId());
|
|
52
|
+
spliceMany(container.childIds, at, removeCount, ids);
|
|
53
|
+
}
|
|
54
|
+
spliceMany(container.children, at, removeCount, items);
|
|
55
|
+
dropChildSpans(container);
|
|
56
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Document } from '../core/nodes';
|
|
2
|
+
import type { SharingState } from './sharing';
|
|
3
|
+
/**
|
|
4
|
+
* Walk up from `deletedPath`'s parent, removing containers emptied by the cleanup. Stops
|
|
5
|
+
* at `lcaPath` (the range operation's lowest common ancestor, `[]` for the document root)
|
|
6
|
+
* because containers at or above it still hold the start block and cannot legitimately be
|
|
7
|
+
* empty. Owns its spine — each level is unshared before its child is removed, or the
|
|
8
|
+
* splice lands on a node an undo entry still references (`unshare.ts` header).
|
|
9
|
+
*/
|
|
10
|
+
export declare function cascadeCleanupEmptyAncestors(doc: Document, deletedPath: number[], lcaPath: number[], sharing: SharingState): void;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { spliceChildrenSettled } from './node-ops';
|
|
2
|
+
import { ensureUnsharedPath } from './unshare';
|
|
3
|
+
/**
|
|
4
|
+
* Walk up from `deletedPath`'s parent, removing containers emptied by the cleanup. Stops
|
|
5
|
+
* at `lcaPath` (the range operation's lowest common ancestor, `[]` for the document root)
|
|
6
|
+
* because containers at or above it still hold the start block and cannot legitimately be
|
|
7
|
+
* empty. Owns its spine — each level is unshared before its child is removed, or the
|
|
8
|
+
* splice lands on a node an undo entry still references (`unshare.ts` header).
|
|
9
|
+
*/
|
|
10
|
+
export function cascadeCleanupEmptyAncestors(doc, deletedPath, lcaPath, sharing) {
|
|
11
|
+
let currentPath = deletedPath.slice(0, -1);
|
|
12
|
+
while (currentPath.length > lcaPath.length) {
|
|
13
|
+
const parentPath = currentPath.slice(0, -1);
|
|
14
|
+
const chain = ensureUnsharedPath(doc, parentPath, sharing);
|
|
15
|
+
const parent = chain[chain.length - 1] ?? doc;
|
|
16
|
+
if (!parent.children)
|
|
17
|
+
break;
|
|
18
|
+
const idx = currentPath[currentPath.length - 1];
|
|
19
|
+
const node = parent.children[idx];
|
|
20
|
+
if (!node || !node.children || node.children.length > 0)
|
|
21
|
+
break;
|
|
22
|
+
spliceChildrenSettled(parent, idx, 1, [], sharing);
|
|
23
|
+
currentPath = parentPath;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { CstNode, Document } from '../core/nodes';
|
|
2
|
+
import type { DocumentView, NodeView } from '../core/node-views';
|
|
3
|
+
export declare function cloneDocument(doc: DocumentView): Document;
|
|
4
|
+
export declare function cloneNode(node: NodeView): CstNode;
|
|
5
|
+
export declare function cloneMetadata(meta: NonNullable<NodeView['metadata']>): NonNullable<CstNode['metadata']>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { assertInvariant } from '../assert';
|
|
2
|
+
import { checkCloneSafeMetadata } from '../invariants/node-shape';
|
|
3
|
+
// ── Document ────────────────────────────────────────────────────────────────
|
|
4
|
+
// A deep clone of a view is a fully owned mutable tree — the clone door (core/node-views.ts).
|
|
5
|
+
export function cloneDocument(doc) {
|
|
6
|
+
return {
|
|
7
|
+
kind: 'document',
|
|
8
|
+
prefix: doc.prefix,
|
|
9
|
+
children: doc.children.map(cloneNode),
|
|
10
|
+
suffix: doc.suffix
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
// ── Node ────────────────────────────────────────────────────────────────────
|
|
14
|
+
export function cloneNode(node) {
|
|
15
|
+
// `kind` is a runtime value spanning every arm, so no literal arm matches —
|
|
16
|
+
// the cast is the generic-clone door, mirroring copyNode's spread (unshare.ts).
|
|
17
|
+
const cloned = {
|
|
18
|
+
kind: node.kind,
|
|
19
|
+
leadingTrivia: node.leadingTrivia,
|
|
20
|
+
raw: node.raw
|
|
21
|
+
};
|
|
22
|
+
if (node.metadata) {
|
|
23
|
+
assertInvariant('clone-safe-metadata', () => checkCloneSafeMetadata(node));
|
|
24
|
+
cloned.metadata = cloneMetadata(node.metadata);
|
|
25
|
+
}
|
|
26
|
+
if (node.children) {
|
|
27
|
+
cloned.innerPrefix = node.innerPrefix;
|
|
28
|
+
cloned.children = node.children.map(cloneNode);
|
|
29
|
+
cloned.innerSuffix = node.innerSuffix;
|
|
30
|
+
if (node.childIds)
|
|
31
|
+
cloned.childIds = [...node.childIds];
|
|
32
|
+
}
|
|
33
|
+
return cloned;
|
|
34
|
+
}
|
|
35
|
+
// Snapshots must share no mutable reference with the live tree, or an in-place splice on
|
|
36
|
+
// live metadata reaches the snapshot. One level deep suffices — G1.6 forbids deeper.
|
|
37
|
+
export function cloneMetadata(meta) {
|
|
38
|
+
const out = {};
|
|
39
|
+
for (const [k, v] of Object.entries(meta)) {
|
|
40
|
+
out[k] = Array.isArray(v) ? [...v] : v;
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lift a container's first child out while the container itself survives (Rule U2's other
|
|
3
|
+
* shape): the remainder keeps its kind and its `rebuildRaw` re-emits the syntax, so a marker
|
|
4
|
+
* held in metadata rides through. `blockquote.ts`'s `unwrapFirstChildFromQuote` is the shape
|
|
5
|
+
* where the opener lives on the first line and the lift drops it.
|
|
6
|
+
*/
|
|
7
|
+
import type { CstNode } from '../core/nodes';
|
|
8
|
+
import type { NodeView } from '../core/node-views';
|
|
9
|
+
export declare function liftFirstChildKeepingContainer(container: NodeView): CstNode[];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lift a container's first child out while the container itself survives (Rule U2's other
|
|
3
|
+
* shape): the remainder keeps its kind and its `rebuildRaw` re-emits the syntax, so a marker
|
|
4
|
+
* held in metadata rides through. `blockquote.ts`'s `unwrapFirstChildFromQuote` is the shape
|
|
5
|
+
* where the opener lives on the first line and the lift drops it.
|
|
6
|
+
*/
|
|
7
|
+
import { cloneNode } from './clone';
|
|
8
|
+
import { rebuildContainerRaw } from '../schema/container-raw';
|
|
9
|
+
import { assignIds } from '../block-id';
|
|
10
|
+
export function liftFirstChildKeepingContainer(container) {
|
|
11
|
+
const children = container.children;
|
|
12
|
+
if (!children || children.length === 0)
|
|
13
|
+
return [];
|
|
14
|
+
const lifted = cloneNode(children[0]);
|
|
15
|
+
// The container's leading trivia is applied at the caller's splice point.
|
|
16
|
+
lifted.leadingTrivia = '';
|
|
17
|
+
if (children.length === 1)
|
|
18
|
+
return [lifted];
|
|
19
|
+
const remaining = cloneNode(container);
|
|
20
|
+
const remainingChildren = remaining.children.slice(1);
|
|
21
|
+
// The blank line that stood between the two children inside the container is the one that
|
|
22
|
+
// now stands between the lifted block and the container: conserved, never minted.
|
|
23
|
+
remaining.leadingTrivia = remainingChildren[0].leadingTrivia;
|
|
24
|
+
remainingChildren[0].leadingTrivia = '';
|
|
25
|
+
remaining.children = remainingChildren;
|
|
26
|
+
remaining.childIds = assignIds(remainingChildren);
|
|
27
|
+
rebuildContainerRaw(remaining);
|
|
28
|
+
return [lifted, remaining];
|
|
29
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type { NodeParent, MergeIntoPrevResult, MergeResult, SplitResult } from './node-ops';
|
|
2
|
+
export { splitNode, assertSplitLanding, assertSingleNodeSink, mergeWithNext, mergeIntoPrevDeepLeaf, deleteNode, updateNodeContent, reclassifyContainer, focusTargetInReplacement, ensureEditableContainers, normalizeReplacementTrivia, emptyParagraph, paragraphNode, restoreSeparatorOnFill, dropDoubledSeparator, nodeAt } from './node-ops';
|
|
3
|
+
export { unwrapFirstItemFromList, mergeListItemIntoPrevious } from './list/unwrap-merge';
|
|
4
|
+
export { renumberOrderedList, normalizeItemMarkerToList } from './list/ordered-markers';
|
|
5
|
+
export { isItemUserEmpty } from './list/empty-check';
|
|
6
|
+
export { buildExitReplacement } from './list/exit-replacement';
|
|
7
|
+
export { reconcileTaskMetadata } from './list/reconcile-task';
|
|
8
|
+
export { unwrapFirstChildFromQuote } from './blockquote';
|
|
9
|
+
export { liftFirstChildKeepingContainer } from './container-lift';
|
|
10
|
+
export { insertEmptyRow, insertEmptyColumn, deleteRow, deleteColumn, cycleAlignment } from './table-mutations';
|
|
11
|
+
export { copyRectangleAsSubTable } from './sub-table-copy';
|
|
12
|
+
export type { CellPos } from './sub-table-copy';
|
|
13
|
+
export { cascadeCleanupEmptyAncestors } from './cleanup';
|
|
14
|
+
export { ensureUnsharedPath, ensureUnsharedChild, ensureUnsharedNode, ensureUnsharedChildren, ensureUnsharedSubtree, rebuildOwnedContainer, rebuildUnsharedChain, rebuildUnsharedAncestry } from './unshare';
|
|
15
|
+
export { buildPastedReplacement } from './paste/paste-replacement';
|
|
16
|
+
export { cloneDocument, cloneNode } from './clone';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { splitNode, assertSplitLanding, assertSingleNodeSink, mergeWithNext, mergeIntoPrevDeepLeaf, deleteNode, updateNodeContent, reclassifyContainer, focusTargetInReplacement, ensureEditableContainers, normalizeReplacementTrivia, emptyParagraph, paragraphNode, restoreSeparatorOnFill, dropDoubledSeparator, nodeAt } from './node-ops';
|
|
2
|
+
export { unwrapFirstItemFromList, mergeListItemIntoPrevious } from './list/unwrap-merge';
|
|
3
|
+
export { renumberOrderedList, normalizeItemMarkerToList } from './list/ordered-markers';
|
|
4
|
+
export { isItemUserEmpty } from './list/empty-check';
|
|
5
|
+
export { buildExitReplacement } from './list/exit-replacement';
|
|
6
|
+
export { reconcileTaskMetadata } from './list/reconcile-task';
|
|
7
|
+
export { unwrapFirstChildFromQuote } from './blockquote';
|
|
8
|
+
export { liftFirstChildKeepingContainer } from './container-lift';
|
|
9
|
+
export { insertEmptyRow, insertEmptyColumn, deleteRow, deleteColumn, cycleAlignment } from './table-mutations';
|
|
10
|
+
export { copyRectangleAsSubTable } from './sub-table-copy';
|
|
11
|
+
export { cascadeCleanupEmptyAncestors } from './cleanup';
|
|
12
|
+
export { ensureUnsharedPath, ensureUnsharedChild, ensureUnsharedNode, ensureUnsharedChildren, ensureUnsharedSubtree, rebuildOwnedContainer, rebuildUnsharedChain, rebuildUnsharedAncestry } from './unshare';
|
|
13
|
+
export { buildPastedReplacement } from './paste/paste-replacement';
|
|
14
|
+
export { cloneDocument, cloneNode } from './clone';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { NodeView } from '../../core/node-views';
|
|
2
|
+
/**
|
|
3
|
+
* A list item is "user-empty" when every leaf descendant's raw is blank. Deliberately
|
|
4
|
+
* stronger than testing the first child: a shallow check drops trailing content whenever
|
|
5
|
+
* the first paragraph happens to be empty.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isItemUserEmpty(item: NodeView): boolean;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A list item is "user-empty" when every leaf descendant's raw is blank. Deliberately
|
|
3
|
+
* stronger than testing the first child: a shallow check drops trailing content whenever
|
|
4
|
+
* the first paragraph happens to be empty.
|
|
5
|
+
*/
|
|
6
|
+
export function isItemUserEmpty(item) {
|
|
7
|
+
if (!item.children || item.children.length === 0)
|
|
8
|
+
return true;
|
|
9
|
+
for (const child of item.children) {
|
|
10
|
+
if (child.children && child.children.length > 0) {
|
|
11
|
+
if (!isItemUserEmpty(child))
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
else if ((child.raw ?? '').trim() !== '') {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CstNode } from '../../core/nodes';
|
|
2
|
+
import type { NodeView } from '../../core/node-views';
|
|
3
|
+
/**
|
|
4
|
+
* The parent-level replacement when a list item exits its list, laid out as
|
|
5
|
+
* `[firstHalfList?, exitParagraph, ...liftedBlocks, secondHalfList?]`. Matching-type
|
|
6
|
+
* nested items rejoin the surviving halves; everything else lifts as a top-level block.
|
|
7
|
+
* `paragraphIndex` is the exit paragraph's slot, the caller's focus target. Input is not
|
|
8
|
+
* mutated.
|
|
9
|
+
*/
|
|
10
|
+
export declare function buildExitReplacement(list: NodeView, itemIndex: number): {
|
|
11
|
+
blocks: CstNode[];
|
|
12
|
+
paragraphIndex: number;
|
|
13
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { metadataOf } from '../../core/nodes';
|
|
2
|
+
import { trailingLineEnding } from '../../core/lines';
|
|
3
|
+
import { cloneNode } from '../clone';
|
|
4
|
+
import { emptyParagraph } from '../node-ops';
|
|
5
|
+
import { assembleListHalf } from './list-builders';
|
|
6
|
+
import { partitionItemChildren } from './item-partition';
|
|
7
|
+
import { orderedBaseOf } from './ordered-markers';
|
|
8
|
+
/**
|
|
9
|
+
* The parent-level replacement when a list item exits its list, laid out as
|
|
10
|
+
* `[firstHalfList?, exitParagraph, ...liftedBlocks, secondHalfList?]`. Matching-type
|
|
11
|
+
* nested items rejoin the surviving halves; everything else lifts as a top-level block.
|
|
12
|
+
* `paragraphIndex` is the exit paragraph's slot, the caller's focus target. Input is not
|
|
13
|
+
* mutated.
|
|
14
|
+
*/
|
|
15
|
+
export function buildExitReplacement(list, itemIndex) {
|
|
16
|
+
const items = list.children ?? [];
|
|
17
|
+
const exitedItem = items[itemIndex];
|
|
18
|
+
const parentOrdered = metadataOf(list, 'list')?.ordered ?? false;
|
|
19
|
+
// Child 0 is the exiting paragraph, which the fresh one below replaces.
|
|
20
|
+
const { promotedItems, liftedBlocks } = partitionItemChildren((exitedItem?.children ?? []).slice(1), parentOrdered);
|
|
21
|
+
const before = items.slice(0, itemIndex).map(cloneNode);
|
|
22
|
+
const after = items.slice(itemIndex + 1).map(cloneNode);
|
|
23
|
+
// wasFirstItem has no `before` half, so promotions slide into `after`.
|
|
24
|
+
const wasFirstItem = itemIndex === 0;
|
|
25
|
+
const firstHalfItems = wasFirstItem ? [] : [...before, ...promotedItems];
|
|
26
|
+
const secondHalfItems = wasFirstItem ? [...promotedItems, ...after] : after;
|
|
27
|
+
// Every byte this op mints is a line ending, so it takes the list's (G4.20).
|
|
28
|
+
const lineEnding = trailingLineEnding(list.raw);
|
|
29
|
+
const exitParagraph = emptyParagraph('', lineEnding);
|
|
30
|
+
// Preserve the original list's starting number across the split.
|
|
31
|
+
const base = orderedBaseOf(items[0]);
|
|
32
|
+
const blocks = [];
|
|
33
|
+
if (firstHalfItems.length > 0) {
|
|
34
|
+
blocks.push(assembleListHalf(list, firstHalfItems, base));
|
|
35
|
+
// The exit paragraph follows the surviving list; without a blank line the
|
|
36
|
+
// parser lazy-continues a typed line into the list's last item on reload.
|
|
37
|
+
exitParagraph.leadingTrivia = lineEnding;
|
|
38
|
+
}
|
|
39
|
+
const paragraphIndex = blocks.length;
|
|
40
|
+
blocks.push(exitParagraph);
|
|
41
|
+
for (const lifted of liftedBlocks)
|
|
42
|
+
blocks.push(lifted);
|
|
43
|
+
if (secondHalfItems.length > 0) {
|
|
44
|
+
// Continue the sequence across the gap: the exited slot doesn't burn a number.
|
|
45
|
+
const secondHalfStart = base + firstHalfItems.length;
|
|
46
|
+
blocks.push(assembleListHalf(list, secondHalfItems, secondHalfStart));
|
|
47
|
+
}
|
|
48
|
+
return { blocks, paragraphIndex };
|
|
49
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The promote/lift partition U1 and the empty-item exit share: a nested list whose `ordered`
|
|
3
|
+
* matches the parent gives its items to the parent level, everything else lifts out as a
|
|
4
|
+
* sibling block. Output is fully owned; the input is not mutated.
|
|
5
|
+
*/
|
|
6
|
+
import type { CstNode } from '../../core/nodes';
|
|
7
|
+
import type { NodeView } from '../../core/node-views';
|
|
8
|
+
export interface ItemPartition {
|
|
9
|
+
promotedItems: CstNode[];
|
|
10
|
+
liftedBlocks: CstNode[];
|
|
11
|
+
}
|
|
12
|
+
/** Split a dissolving item's `children` into what rejoins the parent list and what lifts. */
|
|
13
|
+
export declare function partitionItemChildren(children: readonly NodeView[], parentOrdered: boolean): ItemPartition;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The promote/lift partition U1 and the empty-item exit share: a nested list whose `ordered`
|
|
3
|
+
* matches the parent gives its items to the parent level, everything else lifts out as a
|
|
4
|
+
* sibling block. Output is fully owned; the input is not mutated.
|
|
5
|
+
*/
|
|
6
|
+
import { metadataOf } from '../../core/nodes';
|
|
7
|
+
import { cloneNode } from '../clone';
|
|
8
|
+
/** Split a dissolving item's `children` into what rejoins the parent list and what lifts. */
|
|
9
|
+
export function partitionItemChildren(children, parentOrdered) {
|
|
10
|
+
const promotedItems = [];
|
|
11
|
+
const liftedBlocks = [];
|
|
12
|
+
for (const child of children) {
|
|
13
|
+
if (promotesToParentLevel(child, parentOrdered)) {
|
|
14
|
+
for (const item of child.children)
|
|
15
|
+
promotedItems.push(adopt(item));
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
liftedBlocks.push(adopt(child));
|
|
19
|
+
}
|
|
20
|
+
return { promotedItems, liftedBlocks };
|
|
21
|
+
}
|
|
22
|
+
// A sublist with no items has nothing to give, and its bytes would vanish with it, so it lifts.
|
|
23
|
+
function promotesToParentLevel(child, parentOrdered) {
|
|
24
|
+
if (child.kind !== 'list' || !child.children?.length)
|
|
25
|
+
return false;
|
|
26
|
+
return (metadataOf(child, 'list')?.ordered ?? false) === parentOrdered;
|
|
27
|
+
}
|
|
28
|
+
/** Both dispositions start a fresh line at their new level. */
|
|
29
|
+
function adopt(node) {
|
|
30
|
+
const owned = cloneNode(node);
|
|
31
|
+
owned.leadingTrivia = '';
|
|
32
|
+
return owned;
|
|
33
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** Constructors for list and listItem CST nodes. */
|
|
2
|
+
import type { CstNode, ListItemMetadata } from '../../core/nodes';
|
|
3
|
+
import type { NodeView } from '../../core/node-views';
|
|
4
|
+
/**
|
|
5
|
+
* A list node carrying `items`, mirroring `template`'s metadata and affixes and
|
|
6
|
+
* renumbering ordered markers from `startNumber`. Items are mutated in place.
|
|
7
|
+
*/
|
|
8
|
+
export declare function assembleListHalf(template: NodeView, items: CstNode[], startNumber: number): CstNode;
|
|
9
|
+
/**
|
|
10
|
+
* A listItem mirroring `template`'s metadata/affixes. `children` are placed verbatim —
|
|
11
|
+
* clone before passing if they are still referenced from the source tree.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildListItemWithContent(template: NodeView, children: CstNode[]): CstNode;
|
|
14
|
+
/**
|
|
15
|
+
* A listItem from explicit metadata with empty affixes, for sites deriving a fresh marker
|
|
16
|
+
* rather than mirroring a source item. `children` are placed verbatim.
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildListItem(metadata: ListItemMetadata, children: CstNode[]): CstNode;
|
|
19
|
+
/**
|
|
20
|
+
* A bare list shell with empty raw. Unlike `assembleListHalf` it neither renumbers nor
|
|
21
|
+
* rebuilds raw; a live-tree caller owns that and must route it through `sharing` so the
|
|
22
|
+
* moved items are unshared before being written (`unshare.ts`).
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildListShell(ordered: boolean, children: CstNode[]): CstNode;
|
|
25
|
+
/**
|
|
26
|
+
* Slice a leaf's raw at `offset` for a paste-style split, re-parsing each half. One
|
|
27
|
+
* leading whitespace is trimmed from the trailing slice, which would otherwise produce
|
|
28
|
+
* double-space markers after a word-boundary split. Null on an empty side. `raw` overrides
|
|
29
|
+
* the leaf's own bytes, which a paste that ran a delete half first supplies.
|
|
30
|
+
*/
|
|
31
|
+
export declare function splitLeafForPaste(leaf: CstNode, offset: number, raw?: string): {
|
|
32
|
+
leadingNode: CstNode | null;
|
|
33
|
+
trailingNode: CstNode | null;
|
|
34
|
+
lineEnding: '\n' | '\r\n';
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* The leading and trailing items replacing `item` when a paste splits it at
|
|
38
|
+
* `(innerIndex, offset)`. Either side is null when the caret sits flush against a
|
|
39
|
+
* boundary. `targetRaw` overrides the target leaf's bytes, as in `splitLeafForPaste`.
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildSplitItems(item: CstNode, innerIndex: number, offset: number, targetRaw?: string): {
|
|
42
|
+
leadingItem: CstNode | null;
|
|
43
|
+
trailingItem: CstNode | null;
|
|
44
|
+
};
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/** Constructors for list and listItem CST nodes. */
|
|
2
|
+
import { snapToScalarBoundary, trailingLineEnding, trimTrailingLineEnding } from '../../core/lines';
|
|
3
|
+
import { rebuildListItemRaw, rebuildListRaw } from '../../schema/container-rebuilders';
|
|
4
|
+
import { cloneMetadata, cloneNode } from '../clone';
|
|
5
|
+
import { parseFirstBlock } from '../parse-block';
|
|
6
|
+
import { renumberOrderedListFrom } from './ordered-markers';
|
|
7
|
+
import { assignIds } from '../../block-id';
|
|
8
|
+
// ── List / item construction ─────────────────────────────────────────────────
|
|
9
|
+
/**
|
|
10
|
+
* A list node carrying `items`, mirroring `template`'s metadata and affixes and
|
|
11
|
+
* renumbering ordered markers from `startNumber`. Items are mutated in place.
|
|
12
|
+
*/
|
|
13
|
+
export function assembleListHalf(template, items, startNumber) {
|
|
14
|
+
const half = {
|
|
15
|
+
kind: 'list',
|
|
16
|
+
leadingTrivia: '',
|
|
17
|
+
raw: '',
|
|
18
|
+
metadata: template.metadata
|
|
19
|
+
? cloneMetadata(template.metadata)
|
|
20
|
+
: { ordered: false },
|
|
21
|
+
children: items,
|
|
22
|
+
childIds: assignIds(items),
|
|
23
|
+
innerPrefix: template.innerPrefix ?? '',
|
|
24
|
+
innerSuffix: template.innerSuffix ?? ''
|
|
25
|
+
};
|
|
26
|
+
if (items[0])
|
|
27
|
+
items[0].leadingTrivia = '';
|
|
28
|
+
for (const item of items)
|
|
29
|
+
rebuildListItemRaw(item);
|
|
30
|
+
renumberOrderedListFrom(half, startNumber);
|
|
31
|
+
rebuildListRaw(half);
|
|
32
|
+
return half;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A listItem mirroring `template`'s metadata/affixes. `children` are placed verbatim —
|
|
36
|
+
* clone before passing if they are still referenced from the source tree.
|
|
37
|
+
*/
|
|
38
|
+
export function buildListItemWithContent(template, children) {
|
|
39
|
+
const metadata = template.metadata
|
|
40
|
+
? cloneMetadata(template.metadata)
|
|
41
|
+
: { marker: '- ', taskItem: false, taskChecked: false, taskMarker: null };
|
|
42
|
+
return mintListItem(metadata, template.innerPrefix ?? '', template.innerSuffix ?? '', children);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A listItem from explicit metadata with empty affixes, for sites deriving a fresh marker
|
|
46
|
+
* rather than mirroring a source item. `children` are placed verbatim.
|
|
47
|
+
*/
|
|
48
|
+
export function buildListItem(metadata, children) {
|
|
49
|
+
return mintListItem(metadata, '', '', children);
|
|
50
|
+
}
|
|
51
|
+
// Affixes are set before the rebuild, which derives the item's raw from them.
|
|
52
|
+
function mintListItem(metadata, innerPrefix, innerSuffix, children) {
|
|
53
|
+
const item = {
|
|
54
|
+
kind: 'listItem',
|
|
55
|
+
leadingTrivia: '',
|
|
56
|
+
raw: '',
|
|
57
|
+
metadata,
|
|
58
|
+
innerPrefix,
|
|
59
|
+
children,
|
|
60
|
+
childIds: assignIds(children),
|
|
61
|
+
innerSuffix
|
|
62
|
+
};
|
|
63
|
+
if (children[0])
|
|
64
|
+
children[0].leadingTrivia = '';
|
|
65
|
+
rebuildListItemRaw(item);
|
|
66
|
+
return item;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* A bare list shell with empty raw. Unlike `assembleListHalf` it neither renumbers nor
|
|
70
|
+
* rebuilds raw; a live-tree caller owns that and must route it through `sharing` so the
|
|
71
|
+
* moved items are unshared before being written (`unshare.ts`).
|
|
72
|
+
*/
|
|
73
|
+
export function buildListShell(ordered, children) {
|
|
74
|
+
const metadata = { ordered };
|
|
75
|
+
return {
|
|
76
|
+
kind: 'list',
|
|
77
|
+
leadingTrivia: '',
|
|
78
|
+
raw: '',
|
|
79
|
+
metadata,
|
|
80
|
+
children,
|
|
81
|
+
childIds: assignIds(children)
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
// ── Paste split ──────────────────────────────────────────────────────────────
|
|
85
|
+
/**
|
|
86
|
+
* Slice a leaf's raw at `offset` for a paste-style split, re-parsing each half. One
|
|
87
|
+
* leading whitespace is trimmed from the trailing slice, which would otherwise produce
|
|
88
|
+
* double-space markers after a word-boundary split. Null on an empty side. `raw` overrides
|
|
89
|
+
* the leaf's own bytes, which a paste that ran a delete half first supplies.
|
|
90
|
+
*/
|
|
91
|
+
export function splitLeafForPaste(leaf, offset, raw = leaf.raw) {
|
|
92
|
+
const lineEnding = trailingLineEnding(raw);
|
|
93
|
+
const display = trimTrailingLineEnding(raw);
|
|
94
|
+
// Off any scalar interior first: the halves become separate items, so a pair cut here is
|
|
95
|
+
// unrecoverable bytes rather than a recoverable edit.
|
|
96
|
+
const cut = snapToScalarBoundary(display, offset);
|
|
97
|
+
const leadingText = display.slice(0, cut);
|
|
98
|
+
const trailingText = display.slice(cut).replace(/^[ \t]/, '');
|
|
99
|
+
const leadingNode = leadingText.length > 0 ? parseFirstBlock(leadingText + lineEnding) : null;
|
|
100
|
+
const trailingNode = trailingText.length > 0 ? parseFirstBlock(trailingText + lineEnding) : null;
|
|
101
|
+
return { leadingNode, trailingNode, lineEnding };
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The leading and trailing items replacing `item` when a paste splits it at
|
|
105
|
+
* `(innerIndex, offset)`. Either side is null when the caret sits flush against a
|
|
106
|
+
* boundary. `targetRaw` overrides the target leaf's bytes, as in `splitLeafForPaste`.
|
|
107
|
+
*/
|
|
108
|
+
export function buildSplitItems(item, innerIndex, offset, targetRaw) {
|
|
109
|
+
if (!item.children)
|
|
110
|
+
return { leadingItem: null, trailingItem: null };
|
|
111
|
+
const targetLeaf = item.children[innerIndex];
|
|
112
|
+
if (!targetLeaf)
|
|
113
|
+
return { leadingItem: null, trailingItem: null };
|
|
114
|
+
const { leadingNode, trailingNode } = splitLeafForPaste(targetLeaf, offset, targetRaw ?? targetLeaf.raw);
|
|
115
|
+
const leadingChildren = item.children.slice(0, innerIndex).map(cloneNode);
|
|
116
|
+
if (leadingNode)
|
|
117
|
+
leadingChildren.push(leadingNode);
|
|
118
|
+
const trailingChildren = [];
|
|
119
|
+
if (trailingNode)
|
|
120
|
+
trailingChildren.push(trailingNode);
|
|
121
|
+
for (const c of item.children.slice(innerIndex + 1))
|
|
122
|
+
trailingChildren.push(cloneNode(c));
|
|
123
|
+
if (trailingChildren[0])
|
|
124
|
+
trailingChildren[0].leadingTrivia = '';
|
|
125
|
+
return {
|
|
126
|
+
leadingItem: leadingChildren.length > 0 ? buildListItemWithContent(item, leadingChildren) : null,
|
|
127
|
+
trailingItem: trailingChildren.length > 0 ? buildListItemWithContent(item, trailingChildren) : null
|
|
128
|
+
};
|
|
129
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Ordered-list marker bookkeeping: reads, renumbering, and matching item style to a list. */
|
|
2
|
+
import type { CstNode } from '../../core/nodes';
|
|
3
|
+
import type { NodeView } from '../../core/node-views';
|
|
4
|
+
import type { SharingState } from '../sharing';
|
|
5
|
+
/** Read an item's marker as an integer base, defaulting to 1 for non-numeric markers. */
|
|
6
|
+
export declare function orderedBaseOf(item: NodeView | undefined): number;
|
|
7
|
+
/** The punctuation suffix (`. ` or `) `) from a list's first item; defaults to `. `. */
|
|
8
|
+
export declare function readOrderedSuffix(list: NodeView): string;
|
|
9
|
+
/** Increment an ordered marker's numeric prefix, preserving its suffix. */
|
|
10
|
+
export declare function bumpOrderedMarker(marker: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Renumber an ordered list's items in place from `fromIndex`, preserving marker suffixes.
|
|
13
|
+
* `fromIndex = 0` resets the sequence to 1; `renumberOrderedListFrom` owns non-1 bases.
|
|
14
|
+
* Every renumbered item's metadata and raw is WRITTEN, so a live-tree caller must pass
|
|
15
|
+
* `sharing`; construction-time callers on fresh nodes may omit it.
|
|
16
|
+
*/
|
|
17
|
+
export declare function renumberOrderedList(list: CstNode, fromIndex?: number, sharing?: SharingState): void;
|
|
18
|
+
/**
|
|
19
|
+
* Renumber an ordered list from an arbitrary `base`: seed item 0's marker with `base`
|
|
20
|
+
* (suffix-preserving), then continue the sequence from item 1. No-op on unordered or
|
|
21
|
+
* childless lists.
|
|
22
|
+
*/
|
|
23
|
+
export declare function renumberOrderedListFrom(list: CstNode, base: number, sharing?: SharingState): void;
|
|
24
|
+
/**
|
|
25
|
+
* Rewrite `item`'s marker style to match `parentList`, templating the suffix from a
|
|
26
|
+
* sibling so the destination list's choices are preserved. Numbers stay the caller's
|
|
27
|
+
* renumber pass's job: only the glyph and punctuation suffix reconcile here.
|
|
28
|
+
*/
|
|
29
|
+
export declare function normalizeItemMarkerToList(item: CstNode, parentList: CstNode): void;
|
|
30
|
+
/**
|
|
31
|
+
* Rewrite pasted items' markers to the enclosing list's style: an unordered list templates
|
|
32
|
+
* the bullet glyph, an ordered list continues the sequence from `firstIndex`. Runs BEFORE
|
|
33
|
+
* any splice: `$state` wraps entries lazily, so a marker written to a newly-spliced item
|
|
34
|
+
* bypasses reactivity.
|
|
35
|
+
*/
|
|
36
|
+
export declare function templatePastedItemMarkers(items: CstNode[], outer: CstNode, firstIndex: number): void;
|