@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,114 @@
|
|
|
1
|
+
/** Ordered-list marker bookkeeping: reads, renumbering, and matching item style to a list. */
|
|
2
|
+
import { metadataOf } from '../../core/nodes';
|
|
3
|
+
import { rebuildListItemRaw } from '../../schema/container-rebuilders';
|
|
4
|
+
import { ensureUnsharedChild } from '../unshare';
|
|
5
|
+
// ── Marker reads ─────────────────────────────────────────────────────────────
|
|
6
|
+
/** Read an item's marker as an integer base, defaulting to 1 for non-numeric markers. */
|
|
7
|
+
export function orderedBaseOf(item) {
|
|
8
|
+
if (!item)
|
|
9
|
+
return 1;
|
|
10
|
+
const marker = metadataOf(item, 'listItem')?.marker ?? '';
|
|
11
|
+
const n = parseInt(marker, 10);
|
|
12
|
+
return Number.isFinite(n) && n > 0 ? n : 1;
|
|
13
|
+
}
|
|
14
|
+
/** The punctuation suffix (`. ` or `) `) from a list's first item; defaults to `. `. */
|
|
15
|
+
export function readOrderedSuffix(list) {
|
|
16
|
+
const first = list.children?.[0];
|
|
17
|
+
if (!first)
|
|
18
|
+
return '. ';
|
|
19
|
+
const marker = metadataOf(first, 'listItem')?.marker ?? '1. ';
|
|
20
|
+
return marker.replace(/^\d+/, '') || '. ';
|
|
21
|
+
}
|
|
22
|
+
// ── Renumbering ──────────────────────────────────────────────────────────────
|
|
23
|
+
/** Increment an ordered marker's numeric prefix, preserving its suffix. */
|
|
24
|
+
export function bumpOrderedMarker(marker) {
|
|
25
|
+
return marker.replace(/^(\d+)/, (_, n) => String(Number(n) + 1));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Renumber an ordered list's items in place from `fromIndex`, preserving marker suffixes.
|
|
29
|
+
* `fromIndex = 0` resets the sequence to 1; `renumberOrderedListFrom` owns non-1 bases.
|
|
30
|
+
* Every renumbered item's metadata and raw is WRITTEN, so a live-tree caller must pass
|
|
31
|
+
* `sharing`; construction-time callers on fresh nodes may omit it.
|
|
32
|
+
*/
|
|
33
|
+
export function renumberOrderedList(list, fromIndex = 0, sharing) {
|
|
34
|
+
if (!list.children)
|
|
35
|
+
return;
|
|
36
|
+
if (!metadataOf(list, 'list')?.ordered)
|
|
37
|
+
return;
|
|
38
|
+
for (let j = fromIndex; j < list.children.length; j++) {
|
|
39
|
+
const item = sharing ? ensureUnsharedChild(list, j, sharing) : list.children[j];
|
|
40
|
+
const prevNum = j > 0 ? parseInt(metadataOf(list.children[j - 1], 'listItem').marker, 10) || 0 : 0;
|
|
41
|
+
const meta = metadataOf(item, 'listItem');
|
|
42
|
+
const suffix = meta.marker.replace(/^\d+/, '');
|
|
43
|
+
meta.marker = String(prevNum + 1) + suffix;
|
|
44
|
+
rebuildListItemRaw(item);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Renumber an ordered list from an arbitrary `base`: seed item 0's marker with `base`
|
|
49
|
+
* (suffix-preserving), then continue the sequence from item 1. No-op on unordered or
|
|
50
|
+
* childless lists.
|
|
51
|
+
*/
|
|
52
|
+
export function renumberOrderedListFrom(list, base, sharing) {
|
|
53
|
+
if (!metadataOf(list, 'list')?.ordered)
|
|
54
|
+
return;
|
|
55
|
+
if (!list.children || list.children.length === 0)
|
|
56
|
+
return;
|
|
57
|
+
const first = sharing ? ensureUnsharedChild(list, 0, sharing) : list.children[0];
|
|
58
|
+
const meta = metadataOf(first, 'listItem');
|
|
59
|
+
meta.marker = String(base) + (meta.marker.replace(/^\d+/, '') || '. ');
|
|
60
|
+
rebuildListItemRaw(first);
|
|
61
|
+
renumberOrderedList(list, 1, sharing);
|
|
62
|
+
}
|
|
63
|
+
// ── Style templating ─────────────────────────────────────────────────────────
|
|
64
|
+
/**
|
|
65
|
+
* Rewrite `item`'s marker style to match `parentList`, templating the suffix from a
|
|
66
|
+
* sibling so the destination list's choices are preserved. Numbers stay the caller's
|
|
67
|
+
* renumber pass's job: only the glyph and punctuation suffix reconcile here.
|
|
68
|
+
*/
|
|
69
|
+
export function normalizeItemMarkerToList(item, parentList) {
|
|
70
|
+
const parentOrdered = metadataOf(parentList, 'list')?.ordered ?? false;
|
|
71
|
+
const meta = metadataOf(item, 'listItem');
|
|
72
|
+
const itemOrdered = /^\d/.test(meta.marker);
|
|
73
|
+
const siblings = parentList.children ?? [];
|
|
74
|
+
const templateMarker = siblings.length > 0 ? metadataOf(siblings[0], 'listItem').marker : undefined;
|
|
75
|
+
let target;
|
|
76
|
+
if (parentOrdered) {
|
|
77
|
+
const suffix = templateMarker?.replace(/^\d+/, '');
|
|
78
|
+
target = itemOrdered
|
|
79
|
+
? meta.marker.replace(/\D.*$/, '') + (suffix || '. ')
|
|
80
|
+
: '1' + (suffix ?? '. ');
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
target = templateMarker ?? '- ';
|
|
84
|
+
}
|
|
85
|
+
if (meta.marker === target)
|
|
86
|
+
return;
|
|
87
|
+
meta.marker = target;
|
|
88
|
+
rebuildListItemRaw(item);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Rewrite pasted items' markers to the enclosing list's style: an unordered list templates
|
|
92
|
+
* the bullet glyph, an ordered list continues the sequence from `firstIndex`. Runs BEFORE
|
|
93
|
+
* any splice: `$state` wraps entries lazily, so a marker written to a newly-spliced item
|
|
94
|
+
* bypasses reactivity.
|
|
95
|
+
*/
|
|
96
|
+
export function templatePastedItemMarkers(items, outer, firstIndex) {
|
|
97
|
+
if (outer.kind !== 'list')
|
|
98
|
+
return;
|
|
99
|
+
if (metadataOf(outer, 'list')?.ordered) {
|
|
100
|
+
const suffix = readOrderedSuffix(outer);
|
|
101
|
+
const base = orderedBaseOf(outer.children?.[0]);
|
|
102
|
+
items.forEach((item, i) => {
|
|
103
|
+
const meta = metadataOf(item, 'listItem');
|
|
104
|
+
if (!meta)
|
|
105
|
+
return;
|
|
106
|
+
meta.marker = String(base + firstIndex + i) + suffix;
|
|
107
|
+
rebuildListItemRaw(item);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
for (const item of items)
|
|
112
|
+
normalizeItemMarkerToList(item, outer);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reconcile listItem task metadata against its first paragraph's raw. The parser stores
|
|
3
|
+
* the task marker on the item's metadata, but live typing only mutates `paragraph.raw` —
|
|
4
|
+
* so without this, typing `[ ] ` serializes as a task the live CST still calls plain.
|
|
5
|
+
*/
|
|
6
|
+
import type { CstNode } from '../../core/nodes';
|
|
7
|
+
/**
|
|
8
|
+
* Align the item's task fields with what a fresh parse of its first line would produce.
|
|
9
|
+
* On demote the stripped marker bytes are restored into the paragraph raw, so the user's
|
|
10
|
+
* content survives.
|
|
11
|
+
*/
|
|
12
|
+
export declare function reconcileTaskMetadata(listItem: CstNode): void;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reconcile listItem task metadata against its first paragraph's raw. The parser stores
|
|
3
|
+
* the task marker on the item's metadata, but live typing only mutates `paragraph.raw` —
|
|
4
|
+
* so without this, typing `[ ] ` serializes as a task the live CST still calls plain.
|
|
5
|
+
*/
|
|
6
|
+
import { metadataOf } from '../../core/nodes';
|
|
7
|
+
const TASK_REGEX = /^\[( |x|X)\]\s+/;
|
|
8
|
+
/**
|
|
9
|
+
* Align the item's task fields with what a fresh parse of its first line would produce.
|
|
10
|
+
* On demote the stripped marker bytes are restored into the paragraph raw, so the user's
|
|
11
|
+
* content survives.
|
|
12
|
+
*/
|
|
13
|
+
export function reconcileTaskMetadata(listItem) {
|
|
14
|
+
if (listItem.kind !== 'listItem')
|
|
15
|
+
return;
|
|
16
|
+
const firstChild = listItem.children?.[0];
|
|
17
|
+
if (!firstChild || firstChild.kind !== 'paragraph')
|
|
18
|
+
return;
|
|
19
|
+
const meta = metadataOf(listItem, 'listItem');
|
|
20
|
+
if (!meta)
|
|
21
|
+
return;
|
|
22
|
+
const firstLineEnd = firstChild.raw.indexOf('\n');
|
|
23
|
+
const firstLineRaw = firstLineEnd === -1 ? firstChild.raw : firstChild.raw.slice(0, firstLineEnd);
|
|
24
|
+
const restRaw = firstLineEnd === -1 ? '' : firstChild.raw.slice(firstLineEnd);
|
|
25
|
+
const effectiveFirstLine = (meta.taskMarker ?? '') + firstLineRaw;
|
|
26
|
+
const match = effectiveFirstLine.match(TASK_REGEX);
|
|
27
|
+
if (match) {
|
|
28
|
+
const newTaskMarker = match[0];
|
|
29
|
+
const newTaskChecked = match[1].toLowerCase() === 'x';
|
|
30
|
+
const drift = meta.taskItem !== true ||
|
|
31
|
+
meta.taskMarker !== newTaskMarker ||
|
|
32
|
+
meta.taskChecked !== newTaskChecked;
|
|
33
|
+
if (drift) {
|
|
34
|
+
meta.taskItem = true;
|
|
35
|
+
meta.taskMarker = newTaskMarker;
|
|
36
|
+
meta.taskChecked = newTaskChecked;
|
|
37
|
+
firstChild.raw = effectiveFirstLine.slice(newTaskMarker.length) + restRaw;
|
|
38
|
+
}
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (meta.taskItem === true || meta.taskMarker !== null) {
|
|
42
|
+
firstChild.raw = effectiveFirstLine + restRaw;
|
|
43
|
+
meta.taskItem = false;
|
|
44
|
+
meta.taskMarker = null;
|
|
45
|
+
meta.taskChecked = false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The blank line a list whose first item is EMPTY owes the paragraph directly above it. A
|
|
3
|
+
* content-less marker cannot interrupt a paragraph (CommonMark § 5.2), so those bytes reload as
|
|
4
|
+
* a setext heading, and the marker is the item's only evidence, so the seam absorb has nothing
|
|
5
|
+
* to fold it into. A content-bearing list that stopped interrupting is the absorb's case.
|
|
6
|
+
*/
|
|
7
|
+
import type { CstNode } from '../../core/nodes';
|
|
8
|
+
/**
|
|
9
|
+
* Give the child at `index` its separating line when it is a list no reload could read back.
|
|
10
|
+
* Idempotent, and a no-op for every child that already stands apart, so a nesting splice or a
|
|
11
|
+
* raw rebuild may call it unconditionally.
|
|
12
|
+
*/
|
|
13
|
+
export declare function settleSublistSeparator(children: CstNode[], index: number): void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The blank line a list whose first item is EMPTY owes the paragraph directly above it. A
|
|
3
|
+
* content-less marker cannot interrupt a paragraph (CommonMark § 5.2), so those bytes reload as
|
|
4
|
+
* a setext heading, and the marker is the item's only evidence, so the seam absorb has nothing
|
|
5
|
+
* to fold it into. A content-bearing list that stopped interrupting is the absorb's case.
|
|
6
|
+
*/
|
|
7
|
+
import { trailingLineEnding } from '../../core/lines';
|
|
8
|
+
/**
|
|
9
|
+
* A marker line carrying nothing after it: the Enter+Tab mint, and an emptied nested item. The
|
|
10
|
+
* trailing run is required, matching `matchListItem` — a bare `-` never opened a list at all.
|
|
11
|
+
*/
|
|
12
|
+
const EMPTY_MARKER_LINE = /^ {0,3}(?:[-*+]|\d{1,9}[.)])[ \t]+$/;
|
|
13
|
+
/**
|
|
14
|
+
* Give the child at `index` its separating line when it is a list no reload could read back.
|
|
15
|
+
* Idempotent, and a no-op for every child that already stands apart, so a nesting splice or a
|
|
16
|
+
* raw rebuild may call it unconditionally.
|
|
17
|
+
*/
|
|
18
|
+
export function settleSublistSeparator(children, index) {
|
|
19
|
+
const list = children[index];
|
|
20
|
+
const above = children[index - 1];
|
|
21
|
+
if (!list || list.kind !== 'list' || list.leadingTrivia !== '')
|
|
22
|
+
return;
|
|
23
|
+
if (!above || above.kind !== 'paragraph' || above.raw.trim() === '')
|
|
24
|
+
return;
|
|
25
|
+
if (!EMPTY_MARKER_LINE.test(firstLineOf(list.raw)))
|
|
26
|
+
return;
|
|
27
|
+
list.leadingTrivia = trailingLineEnding(above.raw);
|
|
28
|
+
}
|
|
29
|
+
function firstLineOf(raw) {
|
|
30
|
+
const nl = raw.indexOf('\n');
|
|
31
|
+
if (nl < 0)
|
|
32
|
+
return raw;
|
|
33
|
+
return raw[nl - 1] === '\r' ? raw.slice(0, nl - 1) : raw.slice(0, nl);
|
|
34
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensure a list item's `raw` ends with a line ending. Without it `rebuildListRaw`
|
|
3
|
+
* concatenates adjacent items' raws into one line, which re-parses as one item. The
|
|
4
|
+
* ending is a parameter, never a literal `'\n'`: an item arriving without one adopts the
|
|
5
|
+
* target's (G4.20), or a paste strands an LF line inside a CRLF list. Parse-time items
|
|
6
|
+
* keep their original state; only mid-list splices normalize.
|
|
7
|
+
*/
|
|
8
|
+
import type { CstNode } from '../../core/nodes';
|
|
9
|
+
export declare function ensureListItemNewlineTerminated(item: CstNode, ending: '\n' | '\r\n'): void;
|
|
10
|
+
/** Normalize every pasted listItem in `items` (non-listItems pass through). */
|
|
11
|
+
export declare function newlineTerminateListItems(items: CstNode[], ending: '\n' | '\r\n'): void;
|
|
12
|
+
/**
|
|
13
|
+
* THE way pasted items enter a list's children mid-array: termination is welded to the
|
|
14
|
+
* splice so a new paste path cannot forget it. The ending comes from the neighbours the
|
|
15
|
+
* items join — displaced target, then the item above, then the list head.
|
|
16
|
+
*/
|
|
17
|
+
export declare function spliceTerminatedItems(children: CstNode[], at: number, removeCount: number, items: CstNode[]): void;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensure a list item's `raw` ends with a line ending. Without it `rebuildListRaw`
|
|
3
|
+
* concatenates adjacent items' raws into one line, which re-parses as one item. The
|
|
4
|
+
* ending is a parameter, never a literal `'\n'`: an item arriving without one adopts the
|
|
5
|
+
* target's (G4.20), or a paste strands an LF line inside a CRLF list. Parse-time items
|
|
6
|
+
* keep their original state; only mid-list splices normalize.
|
|
7
|
+
*/
|
|
8
|
+
import { trailingLineEnding } from '../../core/lines';
|
|
9
|
+
import { spliceMany } from '../splice-many';
|
|
10
|
+
import { rebuildContainerRawIfContainer } from '../../schema/container-raw';
|
|
11
|
+
import { getBlockKindDescriptor } from '../../schema/block-kind-descriptor';
|
|
12
|
+
/**
|
|
13
|
+
* The child holding the node's last LINE, or null when the node's own raw holds it. Only a
|
|
14
|
+
* strip container serializes its children's raws as whole lines; a grid cell and an opaque
|
|
15
|
+
* body live inside a line their container emits, so the ending belongs to the container.
|
|
16
|
+
*/
|
|
17
|
+
function lastLineOwningChild(node) {
|
|
18
|
+
if (getBlockKindDescriptor(node.kind).containerContract !== 'strip')
|
|
19
|
+
return null;
|
|
20
|
+
const children = node.children;
|
|
21
|
+
if (!children || children.length === 0)
|
|
22
|
+
return null;
|
|
23
|
+
return children[children.length - 1];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Terminate the deepest node that owns its own last line, then rebuild every strip container
|
|
27
|
+
* above it: such a container's raw is DERIVED from its children, so appending to it directly
|
|
28
|
+
* leaves the two disagreeing (G1.1) and its tail item still unterminated.
|
|
29
|
+
*/
|
|
30
|
+
function terminateLastLine(node, ending) {
|
|
31
|
+
if (node.raw.endsWith('\n'))
|
|
32
|
+
return;
|
|
33
|
+
const child = lastLineOwningChild(node);
|
|
34
|
+
if (!child) {
|
|
35
|
+
node.raw += ending;
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
terminateLastLine(child, ending);
|
|
39
|
+
rebuildContainerRawIfContainer(node);
|
|
40
|
+
}
|
|
41
|
+
export function ensureListItemNewlineTerminated(item, ending) {
|
|
42
|
+
terminateLastLine(item, ending);
|
|
43
|
+
}
|
|
44
|
+
/** Normalize every pasted listItem in `items` (non-listItems pass through). */
|
|
45
|
+
export function newlineTerminateListItems(items, ending) {
|
|
46
|
+
for (const item of items) {
|
|
47
|
+
if (item.kind === 'listItem')
|
|
48
|
+
ensureListItemNewlineTerminated(item, ending);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* THE way pasted items enter a list's children mid-array: termination is welded to the
|
|
53
|
+
* splice so a new paste path cannot forget it. The ending comes from the neighbours the
|
|
54
|
+
* items join — displaced target, then the item above, then the list head.
|
|
55
|
+
*/
|
|
56
|
+
export function spliceTerminatedItems(children, at, removeCount, items) {
|
|
57
|
+
const neighbour = (removeCount > 0 ? children[at] : undefined) ?? children[at - 1] ?? children[0];
|
|
58
|
+
newlineTerminateListItems(items, neighbour ? trailingLineEnding(neighbour.raw) : '\n');
|
|
59
|
+
spliceMany(children, at, removeCount, items);
|
|
60
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural list-item reshaping for U1 (unwrap a list's first item) and M1 (merge a
|
|
3
|
+
* non-first item into the deepest text leaf of the preceding item). Both preserve absolute
|
|
4
|
+
* indent and keep ordered-marker sequences intact.
|
|
5
|
+
*/
|
|
6
|
+
import type { CstNode } from '../../core/nodes';
|
|
7
|
+
import type { NodeView } from '../../core/node-views';
|
|
8
|
+
import type { PresentationMode } from '../../presentation-mode';
|
|
9
|
+
import type { InlineResolverRef } from '../../schema/inline-construct-policy';
|
|
10
|
+
import type { SharingState } from '../sharing';
|
|
11
|
+
/**
|
|
12
|
+
* Unwrap a list's first item (Rule U1) without mutating the input. Output order: the item's
|
|
13
|
+
* non-promoting children lifted in place, then the shrunk parent list with the promoted
|
|
14
|
+
* sub-list items prepended and ordered markers renumbered.
|
|
15
|
+
*/
|
|
16
|
+
export declare function unwrapFirstItemFromList(list: NodeView): CstNode[];
|
|
17
|
+
/**
|
|
18
|
+
* Merge the list item at `currentIndex` into the deepest text-bearing leaf of the
|
|
19
|
+
* preceding item, mutating `list` in place and returning the merge point for the caret.
|
|
20
|
+
* `targetPath`'s trailing index is the LAST paragraph in the target item, not always 0.
|
|
21
|
+
* Null when the previous item exposes only an opaque deepest leaf — that is a legitimate
|
|
22
|
+
* outcome the caller falls back from, unlike a bad `currentIndex`, which throws.
|
|
23
|
+
*/
|
|
24
|
+
export declare function mergeListItemIntoPrevious(list: CstNode, children: CstNode[], currentIndex: number, sharing: SharingState | undefined, presentationMode: PresentationMode | undefined, linkRef: InlineResolverRef | undefined): {
|
|
25
|
+
mergePoint: {
|
|
26
|
+
targetPath: number[];
|
|
27
|
+
offset: number;
|
|
28
|
+
};
|
|
29
|
+
} | null;
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural list-item reshaping for U1 (unwrap a list's first item) and M1 (merge a
|
|
3
|
+
* non-first item into the deepest text leaf of the preceding item). Both preserve absolute
|
|
4
|
+
* indent and keep ordered-marker sequences intact.
|
|
5
|
+
*/
|
|
6
|
+
import { metadataOf } from '../../core/nodes';
|
|
7
|
+
import { trailingLineEnding } from '../../core/lines';
|
|
8
|
+
import { cleanJoinedRaw } from '../node-ops';
|
|
9
|
+
import { cloneMetadata, cloneNode } from '../clone';
|
|
10
|
+
import { rebuildAncestryRaw } from '../../schema/container-raw';
|
|
11
|
+
import { rebuildListRaw } from '../../schema/container-rebuilders';
|
|
12
|
+
import { walkToDeepestMergeLeaf } from '../../schema/merge-rules';
|
|
13
|
+
import { orderedBaseOf, renumberOrderedList, renumberOrderedListFrom } from './ordered-markers';
|
|
14
|
+
import { partitionItemChildren } from './item-partition';
|
|
15
|
+
import { ensureUnsharedChild, ensureUnsharedNode, ensureUnsharedPath } from '../unshare';
|
|
16
|
+
import { assignIds } from '../../block-id';
|
|
17
|
+
import { pushChild } from '../children';
|
|
18
|
+
/**
|
|
19
|
+
* Unwrap a list's first item (Rule U1) without mutating the input. Output order: the item's
|
|
20
|
+
* non-promoting children lifted in place, then the shrunk parent list with the promoted
|
|
21
|
+
* sub-list items prepended and ordered markers renumbered.
|
|
22
|
+
*/
|
|
23
|
+
export function unwrapFirstItemFromList(list) {
|
|
24
|
+
if (list.kind !== 'list' || !list.children || list.children.length === 0) {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
const parentOrdered = metadataOf(list, 'list')?.ordered ?? false;
|
|
28
|
+
const firstItem = list.children[0];
|
|
29
|
+
if (!firstItem.children || firstItem.children.length === 0) {
|
|
30
|
+
// Empty item: nothing to lift, so return the shrunk list.
|
|
31
|
+
const clonedList = cloneNode(list);
|
|
32
|
+
const rest = clonedList.children.slice(1);
|
|
33
|
+
if (rest.length === 0)
|
|
34
|
+
return [];
|
|
35
|
+
clonedList.children = rest;
|
|
36
|
+
// childIds pairs by index, so it slices with the children or every survivor
|
|
37
|
+
// inherits its predecessor's id.
|
|
38
|
+
clonedList.childIds = clonedList.childIds?.slice(1);
|
|
39
|
+
rebuildListRaw(clonedList);
|
|
40
|
+
return [clonedList];
|
|
41
|
+
}
|
|
42
|
+
const { promotedItems, liftedBlocks } = partitionItemChildren(firstItem.children, parentOrdered);
|
|
43
|
+
const restItems = list.children.slice(1).map(cloneNode);
|
|
44
|
+
const remainingItems = [...promotedItems, ...restItems];
|
|
45
|
+
if (remainingItems.length === 0) {
|
|
46
|
+
return liftedBlocks;
|
|
47
|
+
}
|
|
48
|
+
remainingItems[0].leadingTrivia = '';
|
|
49
|
+
const remainingList = {
|
|
50
|
+
kind: 'list',
|
|
51
|
+
leadingTrivia: '',
|
|
52
|
+
raw: '',
|
|
53
|
+
metadata: list.metadata
|
|
54
|
+
? cloneMetadata(list.metadata)
|
|
55
|
+
: { ordered: parentOrdered },
|
|
56
|
+
children: remainingItems,
|
|
57
|
+
childIds: assignIds(remainingItems),
|
|
58
|
+
innerPrefix: list.innerPrefix ?? '',
|
|
59
|
+
innerSuffix: list.innerSuffix ?? ''
|
|
60
|
+
};
|
|
61
|
+
// Preserve the original list's starting number.
|
|
62
|
+
renumberOrderedListFrom(remainingList, orderedBaseOf(firstItem));
|
|
63
|
+
rebuildListRaw(remainingList);
|
|
64
|
+
liftedBlocks.push(remainingList);
|
|
65
|
+
return liftedBlocks;
|
|
66
|
+
}
|
|
67
|
+
/** M1's target-finder; null when no prose leaf is reachable. */
|
|
68
|
+
function findDeepestVisibleTextTarget(list, targetItemIndex) {
|
|
69
|
+
if (!list.children || targetItemIndex < 0 || targetItemIndex >= list.children.length) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
const startItem = list.children[targetItemIndex];
|
|
73
|
+
const result = walkToDeepestMergeLeaf(startItem, [targetItemIndex]);
|
|
74
|
+
return result ? result.path : null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The depth-1 sibling list that "preserve absolute indent" promotes into: the last list
|
|
78
|
+
* child of the merge target's top-level item, only when the target sits deep enough
|
|
79
|
+
* (path length >= 4). Unshares the list it resolves.
|
|
80
|
+
*/
|
|
81
|
+
function depthOneListFor(list, targetPath, sharing) {
|
|
82
|
+
if (targetPath.length < 4)
|
|
83
|
+
return null;
|
|
84
|
+
const depthOneParent = list.children[targetPath[0]];
|
|
85
|
+
if (!depthOneParent.children)
|
|
86
|
+
return null;
|
|
87
|
+
const idx = depthOneParent.children.findLastIndex((c) => c.kind === 'list');
|
|
88
|
+
if (idx === -1)
|
|
89
|
+
return null;
|
|
90
|
+
const depthOneList = sharing
|
|
91
|
+
? ensureUnsharedChild(depthOneParent, idx, sharing)
|
|
92
|
+
: depthOneParent.children[idx];
|
|
93
|
+
return depthOneList.children ? depthOneList : null;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Relocate the merged-away item's remaining children by "preserve absolute indent":
|
|
97
|
+
* nested-list items promote to the depth-1 sibling container when the merge target sits
|
|
98
|
+
* deeper, everything else absorbs into the target item. Children are MOVED into the live
|
|
99
|
+
* tree and unshared individually, so the snapshot's view of the deleted item stays intact
|
|
100
|
+
* (G1.9).
|
|
101
|
+
*/
|
|
102
|
+
function relocateRemainingChildren(list, targetPath, targetItem, currentItem, lineEnding, sharing) {
|
|
103
|
+
const remainingChildren = currentItem
|
|
104
|
+
.children.slice(1)
|
|
105
|
+
.map((c) => (sharing ? ensureUnsharedNode(c, sharing) : c));
|
|
106
|
+
for (const child of remainingChildren) {
|
|
107
|
+
if (child.kind === 'list' && child.children) {
|
|
108
|
+
const depthOneList = depthOneListFor(list, targetPath, sharing);
|
|
109
|
+
if (depthOneList) {
|
|
110
|
+
for (let i = 0; i < child.children.length; i++) {
|
|
111
|
+
const item = sharing ? ensureUnsharedChild(child, i, sharing) : child.children[i];
|
|
112
|
+
item.leadingTrivia = '';
|
|
113
|
+
// discovered-descendant mutation, see node-ops.ts header
|
|
114
|
+
pushChild(depthOneList, item);
|
|
115
|
+
}
|
|
116
|
+
rebuildListRaw(depthOneList);
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
// discovered-descendant mutation, see node-ops.ts header
|
|
120
|
+
pushChild(targetItem, child);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
// A trailing paragraph keeps its blank-line separator, or the two lazy-continue
|
|
124
|
+
// into one on reload. Other leaves start fresh and need none.
|
|
125
|
+
child.leadingTrivia = child.kind === 'paragraph' ? lineEnding : '';
|
|
126
|
+
// discovered-descendant mutation, see node-ops.ts header
|
|
127
|
+
pushChild(targetItem, child);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Merge the list item at `currentIndex` into the deepest text-bearing leaf of the
|
|
133
|
+
* preceding item, mutating `list` in place and returning the merge point for the caret.
|
|
134
|
+
* `targetPath`'s trailing index is the LAST paragraph in the target item, not always 0.
|
|
135
|
+
* Null when the previous item exposes only an opaque deepest leaf — that is a legitimate
|
|
136
|
+
* outcome the caller falls back from, unlike a bad `currentIndex`, which throws.
|
|
137
|
+
*/
|
|
138
|
+
export function mergeListItemIntoPrevious(list, children, currentIndex, sharing, presentationMode, linkRef) {
|
|
139
|
+
// Targeting may read `list.children`, but the final splice MUST land in `children`
|
|
140
|
+
// (`node-ops.ts` header).
|
|
141
|
+
if (list.kind !== 'list' ||
|
|
142
|
+
!list.children ||
|
|
143
|
+
currentIndex <= 0 ||
|
|
144
|
+
currentIndex >= children.length) {
|
|
145
|
+
throw new Error(`mergeListItemIntoPrevious: invalid currentIndex ${currentIndex}`);
|
|
146
|
+
}
|
|
147
|
+
const previousIndex = currentIndex - 1;
|
|
148
|
+
const targetPath = findDeepestVisibleTextTarget(list, previousIndex);
|
|
149
|
+
if (!targetPath)
|
|
150
|
+
return null;
|
|
151
|
+
// Before any capture: the walk below must see the owned copies, and the target
|
|
152
|
+
// paragraph's raw is written in place.
|
|
153
|
+
if (sharing)
|
|
154
|
+
ensureUnsharedPath({ children: list.children }, targetPath, sharing);
|
|
155
|
+
let targetItem = list;
|
|
156
|
+
for (let i = 0; i < targetPath.length - 1; i++) {
|
|
157
|
+
targetItem = targetItem.children[targetPath[i]];
|
|
158
|
+
}
|
|
159
|
+
// A loose item's walker ends past 0, so reading children[0] would mutate the wrong
|
|
160
|
+
// paragraph.
|
|
161
|
+
const targetParagraphIndex = targetPath[targetPath.length - 1];
|
|
162
|
+
const targetParagraph = targetItem.children?.[targetParagraphIndex];
|
|
163
|
+
if (!targetParagraph || targetParagraph.kind !== 'paragraph') {
|
|
164
|
+
throw new Error('mergeListItemIntoPrevious: target path does not end at a paragraph');
|
|
165
|
+
}
|
|
166
|
+
const targetOriginalText = (targetParagraph.raw ?? '').replace(/\r?\n$/, '');
|
|
167
|
+
const currentItem = children[currentIndex];
|
|
168
|
+
if (!currentItem.children ||
|
|
169
|
+
currentItem.children.length === 0 ||
|
|
170
|
+
currentItem.children[0].kind !== 'paragraph') {
|
|
171
|
+
throw new Error('mergeListItemIntoPrevious: current item does not start with a paragraph');
|
|
172
|
+
}
|
|
173
|
+
const currentFirstParagraph = currentItem.children[0];
|
|
174
|
+
const currentFirstText = (currentFirstParagraph.raw ?? '').replace(/\r?\n$/, '');
|
|
175
|
+
const lineEnding = trailingLineEnding(targetParagraph.raw ?? '');
|
|
176
|
+
// Every destructive join crosses the seam cleaner, M1 included: a literal concatenation
|
|
177
|
+
// surfaces the marker runs the join orphaned, which live paints for nobody.
|
|
178
|
+
const joined = cleanJoinedRaw({
|
|
179
|
+
mergedRaw: targetOriginalText + currentFirstText,
|
|
180
|
+
seam: targetOriginalText.length,
|
|
181
|
+
start: { node: targetParagraph, offset: targetOriginalText.length },
|
|
182
|
+
end: { node: currentFirstParagraph, offset: 0 },
|
|
183
|
+
linkRef
|
|
184
|
+
}, presentationMode);
|
|
185
|
+
// The caret rides the CLEANED seam: a run dropped on the target's side moves where the
|
|
186
|
+
// two halves met.
|
|
187
|
+
const mergeOffset = joined.seam;
|
|
188
|
+
targetParagraph.raw = joined.raw + lineEnding;
|
|
189
|
+
relocateRemainingChildren(list, targetPath, targetItem, currentItem, lineEnding, sharing);
|
|
190
|
+
children.splice(currentIndex, 1);
|
|
191
|
+
// So the post-splice reads below see the new shape; idempotent with the commit's
|
|
192
|
+
// final publish.
|
|
193
|
+
list.children = children;
|
|
194
|
+
rebuildAncestryRaw(list, targetPath);
|
|
195
|
+
if (metadataOf(list, 'list')?.ordered) {
|
|
196
|
+
// M1 only removes a non-first item, so children[0] keeps the list's original base;
|
|
197
|
+
// renumber from 1 to continue it rather than resetting the sequence.
|
|
198
|
+
renumberOrderedList(list, 1, sharing);
|
|
199
|
+
rebuildListRaw(list);
|
|
200
|
+
}
|
|
201
|
+
return { mergePoint: { targetPath, offset: mergeOffset } };
|
|
202
|
+
}
|