@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,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The attachable field report `getDiagnostics().serializeDiagnostics()` produces:
|
|
3
|
+
* a fenced-markdown snapshot a consumer pastes into a bug report. Pure over its
|
|
4
|
+
* inputs so the privacy pin — the document source is EXCLUDED unless the consumer
|
|
5
|
+
* opts in — is unit-testable without mounting the editor.
|
|
6
|
+
*/
|
|
7
|
+
export interface DiagnosticsReportInput {
|
|
8
|
+
timestamp: string;
|
|
9
|
+
/** Tails pre-rendered by the debug engine. */
|
|
10
|
+
trace: string;
|
|
11
|
+
opsLog: string;
|
|
12
|
+
selection: string;
|
|
13
|
+
/** Raw document Markdown. Emitted ONLY when `includeSource` is true. */
|
|
14
|
+
source: string;
|
|
15
|
+
includeSource: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function buildDiagnosticsReport(input: DiagnosticsReportInput): string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The attachable field report `getDiagnostics().serializeDiagnostics()` produces:
|
|
3
|
+
* a fenced-markdown snapshot a consumer pastes into a bug report. Pure over its
|
|
4
|
+
* inputs so the privacy pin — the document source is EXCLUDED unless the consumer
|
|
5
|
+
* opts in — is unit-testable without mounting the editor.
|
|
6
|
+
*/
|
|
7
|
+
import { escalatedFenceLength } from '../core/parsers/fence-syntax';
|
|
8
|
+
// A trace tail or a document body routinely holds a fence of its own, which would close the
|
|
9
|
+
// section early and hand the maintainer a malformed report.
|
|
10
|
+
function fenced(title, body) {
|
|
11
|
+
const text = body || '(empty)';
|
|
12
|
+
const fence = '`'.repeat(escalatedFenceLength(text, '`', 3));
|
|
13
|
+
return `## ${title}\n\n${fence}\n${text}\n${fence}`;
|
|
14
|
+
}
|
|
15
|
+
export function buildDiagnosticsReport(input) {
|
|
16
|
+
const sections = [
|
|
17
|
+
fenced('Interaction trace', input.trace),
|
|
18
|
+
fenced('Operations log', input.opsLog),
|
|
19
|
+
fenced('Selection', input.selection)
|
|
20
|
+
];
|
|
21
|
+
// Default-excluded: a field report must not leak the document unless asked.
|
|
22
|
+
if (input.includeSource)
|
|
23
|
+
sections.push(fenced('Source', input.source));
|
|
24
|
+
return `# aragonite editor diagnostics — ${input.timestamp}\n\n${sections.join('\n\n')}\n`;
|
|
25
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { isBuiltinBlockNode } from '../core/nodes';
|
|
2
|
+
import { trimTrailingLineEnding } from '../core/lines';
|
|
3
|
+
const DEFAULTS = {
|
|
4
|
+
maxRawChars: 40,
|
|
5
|
+
showAllMetadata: false
|
|
6
|
+
};
|
|
7
|
+
export function dumpTree(doc, opts = {}) {
|
|
8
|
+
const options = { ...DEFAULTS, ...opts };
|
|
9
|
+
if (!doc.children || doc.children.length === 0)
|
|
10
|
+
return '';
|
|
11
|
+
const lines = [];
|
|
12
|
+
for (let i = 0; i < doc.children.length; i++) {
|
|
13
|
+
renderNode(doc.children[i], i, 0, lines, options);
|
|
14
|
+
}
|
|
15
|
+
return lines.join('\n');
|
|
16
|
+
}
|
|
17
|
+
function renderNode(node, index, depth, lines, opts) {
|
|
18
|
+
const indent = ' '.repeat(depth);
|
|
19
|
+
const header = [`${indent}[${index}] ${node.kind}`];
|
|
20
|
+
const meta = formatMetadata(node, opts);
|
|
21
|
+
if (meta)
|
|
22
|
+
header.push(meta);
|
|
23
|
+
if (node.children && node.children.length > 0) {
|
|
24
|
+
header.push(`children=${node.children.length}`);
|
|
25
|
+
}
|
|
26
|
+
const rawDisplay = truncate(trimTrailingLineEnding(node.raw), opts.maxRawChars);
|
|
27
|
+
const triviaStr = node.leadingTrivia && node.leadingTrivia.length > 0
|
|
28
|
+
? `trivia=${JSON.stringify(node.leadingTrivia)}`
|
|
29
|
+
: null;
|
|
30
|
+
if (rawDisplay.includes('\n')) {
|
|
31
|
+
// Continuation lines take one extra column so they align after the opening quote
|
|
32
|
+
// instead of reading as child entries, which start with `[` at the same indent.
|
|
33
|
+
if (triviaStr)
|
|
34
|
+
header.push(triviaStr);
|
|
35
|
+
lines.push(header.join(' '));
|
|
36
|
+
const rawLines = rawDisplay.split('\n');
|
|
37
|
+
const rawIndent = indent + ' ';
|
|
38
|
+
const contIndent = rawIndent + ' ';
|
|
39
|
+
lines.push(`${rawIndent}"${rawLines[0]}`);
|
|
40
|
+
for (let i = 1; i < rawLines.length - 1; i++) {
|
|
41
|
+
lines.push(`${contIndent}${rawLines[i]}`);
|
|
42
|
+
}
|
|
43
|
+
lines.push(`${contIndent}${rawLines[rawLines.length - 1]}"`);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
header.push(`"${rawDisplay}"`);
|
|
47
|
+
if (triviaStr)
|
|
48
|
+
header.push(triviaStr);
|
|
49
|
+
lines.push(header.join(' '));
|
|
50
|
+
}
|
|
51
|
+
if (node.children && node.children.length > 0) {
|
|
52
|
+
for (let i = 0; i < node.children.length; i++) {
|
|
53
|
+
renderNode(node.children[i], i, depth + 1, lines, opts);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function formatMetadata(node, opts) {
|
|
58
|
+
const m = node.metadata;
|
|
59
|
+
if (!m)
|
|
60
|
+
return '';
|
|
61
|
+
const frags = [];
|
|
62
|
+
// Narrowing to the built-in union lets each arm read its own metadata directly, with no
|
|
63
|
+
// `'field' in m` probing.
|
|
64
|
+
if (isBuiltinBlockNode(node)) {
|
|
65
|
+
switch (node.kind) {
|
|
66
|
+
case 'heading':
|
|
67
|
+
case 'setextHeading':
|
|
68
|
+
if (node.metadata.level)
|
|
69
|
+
frags.push(`level=${node.metadata.level}`);
|
|
70
|
+
break;
|
|
71
|
+
case 'fencedCode':
|
|
72
|
+
if (node.metadata.info)
|
|
73
|
+
frags.push(`info=${JSON.stringify(node.metadata.info)}`);
|
|
74
|
+
if (node.metadata.fenceMarker)
|
|
75
|
+
frags.push(`fence=${JSON.stringify(node.metadata.fenceMarker)}`);
|
|
76
|
+
if (node.metadata.fenceLength)
|
|
77
|
+
frags.push(`fenceLength=${node.metadata.fenceLength}`);
|
|
78
|
+
break;
|
|
79
|
+
case 'thematicBreak':
|
|
80
|
+
if (node.metadata.marker)
|
|
81
|
+
frags.push(`marker=${JSON.stringify(node.metadata.marker)}`);
|
|
82
|
+
break;
|
|
83
|
+
case 'list':
|
|
84
|
+
frags.push(`kind=${node.metadata.ordered ? 'ordered' : 'bullet'}`);
|
|
85
|
+
break;
|
|
86
|
+
case 'listItem':
|
|
87
|
+
if (node.metadata.marker)
|
|
88
|
+
frags.push(`marker=${JSON.stringify(node.metadata.marker)}`);
|
|
89
|
+
if (node.metadata.taskItem)
|
|
90
|
+
frags.push(`task=${node.metadata.taskChecked ? 'x' : ' '}`);
|
|
91
|
+
break;
|
|
92
|
+
case 'blockquote':
|
|
93
|
+
if (node.metadata.quoteDepth)
|
|
94
|
+
frags.push(`quoteDepth=${node.metadata.quoteDepth}`);
|
|
95
|
+
break;
|
|
96
|
+
case 'linkReferenceDefinition':
|
|
97
|
+
if (node.metadata.label)
|
|
98
|
+
frags.push(`label=${JSON.stringify(node.metadata.label)}`);
|
|
99
|
+
break;
|
|
100
|
+
case 'table':
|
|
101
|
+
if (node.metadata.columnCount)
|
|
102
|
+
frags.push(`columnCount=${node.metadata.columnCount}`);
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (opts.showAllMetadata)
|
|
109
|
+
frags.push(`metaRaw=${JSON.stringify(m)}`);
|
|
110
|
+
return frags.join(' ');
|
|
111
|
+
}
|
|
112
|
+
function truncate(s, max) {
|
|
113
|
+
return s.length <= max ? s : s.slice(0, max) + '…';
|
|
114
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal debug engine — never exported from the public barrel (`src/lib/index.ts`).
|
|
3
|
+
* Output format is disposable: assert on structured accessors (getSource, kinds, paths).
|
|
4
|
+
*/
|
|
5
|
+
import type { InlineNode } from '../core/nodes';
|
|
6
|
+
import type { SelectionState } from '../selection/selection-state.svelte';
|
|
7
|
+
import { type UndoEntry } from '../undo/types';
|
|
8
|
+
import type { OperationsLog } from './operations-log';
|
|
9
|
+
import type { InteractionTraceEntry } from './interaction-trace';
|
|
10
|
+
export { dumpTree } from './dump-tree';
|
|
11
|
+
export declare function dumpSelection(state: SelectionState | null): string;
|
|
12
|
+
export interface UndoStackLike {
|
|
13
|
+
undo: UndoEntry[];
|
|
14
|
+
redo: UndoEntry[];
|
|
15
|
+
}
|
|
16
|
+
export declare function dumpUndoStack(stack: UndoStackLike, n?: number): string;
|
|
17
|
+
export declare function dumpInlineTree(nodes: InlineNode[] | undefined): string;
|
|
18
|
+
export declare function dumpOperationsLog(log: OperationsLog, n?: number): string;
|
|
19
|
+
export declare function dumpInteractionTrace(entries: InteractionTraceEntry[], n?: number): string;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal debug engine — never exported from the public barrel (`src/lib/index.ts`).
|
|
3
|
+
* Output format is disposable: assert on structured accessors (getSource, kinds, paths).
|
|
4
|
+
*/
|
|
5
|
+
import { isGapSelection } from '../undo/types';
|
|
6
|
+
export { dumpTree } from './dump-tree';
|
|
7
|
+
// ── Selection ──────────────────────────────────────────────────────────────
|
|
8
|
+
export function dumpSelection(state) {
|
|
9
|
+
if (!state || !state.anchor || !state.focus)
|
|
10
|
+
return '(no selection)';
|
|
11
|
+
const parts = [
|
|
12
|
+
`anchor=${formatPoint(state.anchor)}`,
|
|
13
|
+
`focus=${formatPoint(state.focus)}`,
|
|
14
|
+
`cross-block=${state.isCrossBlock}`
|
|
15
|
+
];
|
|
16
|
+
if (state.isCrossBlock && state.start && state.end) {
|
|
17
|
+
parts.push(`start=${formatPoint(state.start)}`);
|
|
18
|
+
parts.push(`end=${formatPoint(state.end)}`);
|
|
19
|
+
}
|
|
20
|
+
return parts.join(' ');
|
|
21
|
+
}
|
|
22
|
+
function formatPoint(p) {
|
|
23
|
+
return `[${p.path.join(',')}]@${p.offset}`;
|
|
24
|
+
}
|
|
25
|
+
export function dumpUndoStack(stack, n = 10) {
|
|
26
|
+
const entries = stack.undo.slice(-n).reverse();
|
|
27
|
+
const lines = entries.map((e, i) => {
|
|
28
|
+
const selStr = e.selection ? formatUndoSelection(e.selection) : 'selection=null';
|
|
29
|
+
return `[${i}] ${selStr}`;
|
|
30
|
+
});
|
|
31
|
+
lines.push(`undo-depth=${stack.undo.length} redo-depth=${stack.redo.length}`);
|
|
32
|
+
return lines.join('\n');
|
|
33
|
+
}
|
|
34
|
+
function formatUndoSelection(sel) {
|
|
35
|
+
if (!sel)
|
|
36
|
+
return 'selection=null';
|
|
37
|
+
if (isGapSelection(sel)) {
|
|
38
|
+
return `selection=gap[${sel.gapCaret.parentPath.join(',')}]#${sel.gapCaret.index}`;
|
|
39
|
+
}
|
|
40
|
+
const a = formatPoint(sel.anchor);
|
|
41
|
+
const f = formatPoint(sel.focus);
|
|
42
|
+
return `selection=${a}→${f}`;
|
|
43
|
+
}
|
|
44
|
+
// ── Inline tree ────────────────────────────────────────────────────────────
|
|
45
|
+
export function dumpInlineTree(nodes) {
|
|
46
|
+
if (!nodes || nodes.length === 0)
|
|
47
|
+
return '';
|
|
48
|
+
const lines = [];
|
|
49
|
+
for (const node of nodes)
|
|
50
|
+
renderInline(node, 0, lines);
|
|
51
|
+
return lines.join('\n');
|
|
52
|
+
}
|
|
53
|
+
function renderInline(node, depth, lines) {
|
|
54
|
+
const indent = ' '.repeat(depth);
|
|
55
|
+
const range = `[${node.start},${node.end}]`;
|
|
56
|
+
const text = 'text' in node ? ` "${node.text}"` : '';
|
|
57
|
+
const url = 'url' in node && node.url ? ` url=${JSON.stringify(node.url)}` : '';
|
|
58
|
+
const decoded = node.kind === 'entityReference' && node.decoded !== undefined
|
|
59
|
+
? ` decoded=${JSON.stringify(node.decoded)}`
|
|
60
|
+
: '';
|
|
61
|
+
lines.push(`${indent}${node.kind} ${range}${text}${url}${decoded}`);
|
|
62
|
+
if ('children' in node && node.children) {
|
|
63
|
+
for (const c of node.children)
|
|
64
|
+
renderInline(c, depth + 1, lines);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// ── Operations log ─────────────────────────────────────────────────────────
|
|
68
|
+
export function dumpOperationsLog(log, n = 20) {
|
|
69
|
+
const snap = log.snapshot();
|
|
70
|
+
if (snap.length === 0)
|
|
71
|
+
return '(no operations recorded)';
|
|
72
|
+
const tail = snap.slice(-n);
|
|
73
|
+
const now = Date.now();
|
|
74
|
+
return tail.map((e) => renderOp(e, now)).join('\n');
|
|
75
|
+
}
|
|
76
|
+
function renderOp(e, now) {
|
|
77
|
+
const base = `[${now - e.t}ms ago] op=${e.op} path=[${e.path.join(',')}]`;
|
|
78
|
+
const detail = renderDetail(e);
|
|
79
|
+
return detail ? `${base} ${detail}` : base;
|
|
80
|
+
}
|
|
81
|
+
// ── Interaction trace ──────────────────────────────────────────────────────
|
|
82
|
+
export function dumpInteractionTrace(entries, n = 50) {
|
|
83
|
+
if (entries.length === 0)
|
|
84
|
+
return '(no interactions recorded)';
|
|
85
|
+
const tail = entries.slice(-n);
|
|
86
|
+
const now = performance.now();
|
|
87
|
+
return tail.map((e) => renderTraceEntry(e, now)).join('\n');
|
|
88
|
+
}
|
|
89
|
+
function renderTraceEntry(e, now) {
|
|
90
|
+
const base = `[${Math.round(now - e.t)}ms ago] ${e.site}/${e.kind}`;
|
|
91
|
+
if (!e.detail)
|
|
92
|
+
return base;
|
|
93
|
+
const detail = Object.entries(e.detail)
|
|
94
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
95
|
+
.join(' ');
|
|
96
|
+
return detail ? `${base} ${detail}` : base;
|
|
97
|
+
}
|
|
98
|
+
/** Detail fields worth printing, per op. An op whose detail carries nothing a reader needs
|
|
99
|
+
* is simply absent; a variant missing any listed field prints none of them. */
|
|
100
|
+
const DETAIL_FIELDS = {
|
|
101
|
+
split: ['at'],
|
|
102
|
+
merge: ['direction'],
|
|
103
|
+
updateContent: ['length'],
|
|
104
|
+
replaceBlock: ['count'],
|
|
105
|
+
tableInsertRow: ['rowIdx', 'side'],
|
|
106
|
+
tableDeleteRow: ['rowIdx'],
|
|
107
|
+
tableInsertColumn: ['colIdx', 'side'],
|
|
108
|
+
tableDeleteColumn: ['colIdx'],
|
|
109
|
+
tableCycleAlignment: ['colIdx']
|
|
110
|
+
};
|
|
111
|
+
function renderDetail(e) {
|
|
112
|
+
const fields = DETAIL_FIELDS[e.op];
|
|
113
|
+
if (!fields || fields.some((f) => e.detail[f] === undefined))
|
|
114
|
+
return '';
|
|
115
|
+
return fields.map((f) => `${f}=${e.detail[f]}`).join(' ');
|
|
116
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded ring buffer of the inline layer's transient state transitions, read through the debug
|
|
3
|
+
* panel and `getDiagnostics()`. Unlike `perf/instruments.ts` it arms from anywhere, production
|
|
4
|
+
* included, so a consumer app can attach it to a bug report — which is why entries carry cheap
|
|
5
|
+
* primitives ONLY, never node references or raw document text. The buffer is module-global, so
|
|
6
|
+
* two editors on one page interleave.
|
|
7
|
+
*/
|
|
8
|
+
export interface InteractionTraceEntry {
|
|
9
|
+
/** `performance.now()` at record time — monotonic, no wall clock. */
|
|
10
|
+
t: number;
|
|
11
|
+
site: string;
|
|
12
|
+
kind: string;
|
|
13
|
+
detail?: Record<string, string | number | boolean>;
|
|
14
|
+
}
|
|
15
|
+
export declare function enableInteractionTrace(): void;
|
|
16
|
+
export declare function disableInteractionTrace(): void;
|
|
17
|
+
export declare function isInteractionTraceEnabled(): boolean;
|
|
18
|
+
/** Empty the buffer without touching the enabled flag — test isolation. */
|
|
19
|
+
export declare function resetInteractionTrace(): void;
|
|
20
|
+
export declare function interactionTraceSnapshot(): InteractionTraceEntry[];
|
|
21
|
+
/** `changed` names the differing render-key segments, comma-joined. */
|
|
22
|
+
export declare function traceRebuild(changed: string, force: boolean): void;
|
|
23
|
+
export declare function traceCursorCapture(walk: number): void;
|
|
24
|
+
export declare function traceCursorRestore(walk: number): void;
|
|
25
|
+
export declare function tracePendingCursorSet(source: string, offset: number | null): void;
|
|
26
|
+
/** `applied` false = the block lost focus before the effect ran, so the caret restore was
|
|
27
|
+
* legally skipped. */
|
|
28
|
+
export declare function tracePendingCursorConsume(offset: number, applied: boolean): void;
|
|
29
|
+
/** `construct` carries a `kind:start-end` descriptor; other tiers record the tier alone. */
|
|
30
|
+
export declare function traceRevealOpen(tier: 'inline' | 'leaf' | 'construct', construct?: string): void;
|
|
31
|
+
export type RevealFoldReason = 'commit' | 'cancel' | 'no-edit' | 'selection-escape' | 'blur' | 'caret-exit';
|
|
32
|
+
export declare function traceRevealFold(reason: RevealFoldReason, construct?: string): void;
|
|
33
|
+
/** One record per rebuild bracket, counted inside the pool rather than per widget. */
|
|
34
|
+
export declare function tracePoolPass(adopt: number, build: number, destroyed: number): void;
|
|
35
|
+
export declare function traceCompositionStart(): void;
|
|
36
|
+
export declare function traceCompositionEnd(): void;
|
|
37
|
+
export declare function traceIslandsApplied(count: number): void;
|
|
38
|
+
export declare function traceStickyCapture(x: number): void;
|
|
39
|
+
export declare function traceStickyReset(): void;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded ring buffer of the inline layer's transient state transitions, read through the debug
|
|
3
|
+
* panel and `getDiagnostics()`. Unlike `perf/instruments.ts` it arms from anywhere, production
|
|
4
|
+
* included, so a consumer app can attach it to a bug report — which is why entries carry cheap
|
|
5
|
+
* primitives ONLY, never node references or raw document text. The buffer is module-global, so
|
|
6
|
+
* two editors on one page interleave.
|
|
7
|
+
*/
|
|
8
|
+
const CAPACITY = 200;
|
|
9
|
+
let enabled = false;
|
|
10
|
+
let buf = [];
|
|
11
|
+
// ── Switch and readout ──────────────────────────────────────────────────────
|
|
12
|
+
export function enableInteractionTrace() {
|
|
13
|
+
enabled = true;
|
|
14
|
+
}
|
|
15
|
+
export function disableInteractionTrace() {
|
|
16
|
+
enabled = false;
|
|
17
|
+
}
|
|
18
|
+
export function isInteractionTraceEnabled() {
|
|
19
|
+
return enabled;
|
|
20
|
+
}
|
|
21
|
+
/** Empty the buffer without touching the enabled flag — test isolation. */
|
|
22
|
+
export function resetInteractionTrace() {
|
|
23
|
+
buf = [];
|
|
24
|
+
}
|
|
25
|
+
export function interactionTraceSnapshot() {
|
|
26
|
+
return buf.slice();
|
|
27
|
+
}
|
|
28
|
+
function record(site, kind, detail) {
|
|
29
|
+
buf.push({ t: performance.now(), site, kind, detail });
|
|
30
|
+
if (buf.length > CAPACITY)
|
|
31
|
+
buf.splice(0, buf.length - CAPACITY);
|
|
32
|
+
}
|
|
33
|
+
// ── Recorders (one per transition family) ────────────────────────────────────
|
|
34
|
+
// Every recorder opens with the disabled gate. Detail assembly that would allocate stays
|
|
35
|
+
// behind an `isInteractionTraceEnabled()` guard at the call site.
|
|
36
|
+
/** `changed` names the differing render-key segments, comma-joined. */
|
|
37
|
+
export function traceRebuild(changed, force) {
|
|
38
|
+
if (!enabled)
|
|
39
|
+
return;
|
|
40
|
+
record('text-render', 'rebuild', { changed, force });
|
|
41
|
+
}
|
|
42
|
+
export function traceCursorCapture(walk) {
|
|
43
|
+
if (!enabled)
|
|
44
|
+
return;
|
|
45
|
+
record('text-render', 'cursor-capture', { walk });
|
|
46
|
+
}
|
|
47
|
+
export function traceCursorRestore(walk) {
|
|
48
|
+
if (!enabled)
|
|
49
|
+
return;
|
|
50
|
+
record('text-render', 'cursor-restore', { walk });
|
|
51
|
+
}
|
|
52
|
+
export function tracePendingCursorSet(source, offset) {
|
|
53
|
+
if (!enabled)
|
|
54
|
+
return;
|
|
55
|
+
record('pending-cursor', 'set', { source, offset: offset ?? -1, cleared: offset === null });
|
|
56
|
+
}
|
|
57
|
+
/** `applied` false = the block lost focus before the effect ran, so the caret restore was
|
|
58
|
+
* legally skipped. */
|
|
59
|
+
export function tracePendingCursorConsume(offset, applied) {
|
|
60
|
+
if (!enabled)
|
|
61
|
+
return;
|
|
62
|
+
record('pending-cursor', 'consume', { offset, applied });
|
|
63
|
+
}
|
|
64
|
+
/** `construct` carries a `kind:start-end` descriptor; other tiers record the tier alone. */
|
|
65
|
+
export function traceRevealOpen(tier, construct) {
|
|
66
|
+
if (!enabled)
|
|
67
|
+
return;
|
|
68
|
+
record('reveal', 'open', construct === undefined ? { tier } : { tier, construct });
|
|
69
|
+
}
|
|
70
|
+
export function traceRevealFold(reason, construct) {
|
|
71
|
+
if (!enabled)
|
|
72
|
+
return;
|
|
73
|
+
record('reveal', 'fold', construct === undefined ? { reason } : { reason, construct });
|
|
74
|
+
}
|
|
75
|
+
/** One record per rebuild bracket, counted inside the pool rather than per widget. */
|
|
76
|
+
export function tracePoolPass(adopt, build, destroyed) {
|
|
77
|
+
if (!enabled)
|
|
78
|
+
return;
|
|
79
|
+
record('widget-pool', 'pass', { adopt, build, destroyed });
|
|
80
|
+
}
|
|
81
|
+
export function traceCompositionStart() {
|
|
82
|
+
if (!enabled)
|
|
83
|
+
return;
|
|
84
|
+
record('composition', 'start');
|
|
85
|
+
}
|
|
86
|
+
export function traceCompositionEnd() {
|
|
87
|
+
if (!enabled)
|
|
88
|
+
return;
|
|
89
|
+
record('composition', 'end');
|
|
90
|
+
}
|
|
91
|
+
export function traceIslandsApplied(count) {
|
|
92
|
+
if (!enabled)
|
|
93
|
+
return;
|
|
94
|
+
record('text-render', 'islands', { count });
|
|
95
|
+
}
|
|
96
|
+
export function traceStickyCapture(x) {
|
|
97
|
+
if (!enabled)
|
|
98
|
+
return;
|
|
99
|
+
record('sticky-column', 'capture', { x });
|
|
100
|
+
}
|
|
101
|
+
export function traceStickyReset() {
|
|
102
|
+
if (!enabled)
|
|
103
|
+
return;
|
|
104
|
+
record('sticky-column', 'reset');
|
|
105
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { OperationKind } from '../schema/operations';
|
|
2
|
+
export interface OperationEntry {
|
|
3
|
+
op: OperationKind;
|
|
4
|
+
path: number[];
|
|
5
|
+
detail: Record<string, unknown>;
|
|
6
|
+
t: number;
|
|
7
|
+
}
|
|
8
|
+
export interface OperationsLog {
|
|
9
|
+
record(entry: Omit<OperationEntry, 't'>): void;
|
|
10
|
+
snapshot(): OperationEntry[];
|
|
11
|
+
subscribe(listener: (entry: OperationEntry) => void): () => void;
|
|
12
|
+
}
|
|
13
|
+
/** Bounded FIFO; oldest entries evicted past `capacity`. */
|
|
14
|
+
export declare function createOperationsLog(capacity?: number): OperationsLog;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { devWarn } from '../dev-warn';
|
|
2
|
+
/** Bounded FIFO; oldest entries evicted past `capacity`. */
|
|
3
|
+
export function createOperationsLog(capacity = 100) {
|
|
4
|
+
const buf = [];
|
|
5
|
+
const listeners = new Set();
|
|
6
|
+
return {
|
|
7
|
+
record(entry) {
|
|
8
|
+
const stamped = { ...entry, t: Date.now() };
|
|
9
|
+
buf.push(stamped);
|
|
10
|
+
if (buf.length > capacity)
|
|
11
|
+
buf.splice(0, buf.length - capacity);
|
|
12
|
+
// Snapshot before iterating so a self-disposing subscriber doesn't abort the loop.
|
|
13
|
+
for (const l of [...listeners]) {
|
|
14
|
+
try {
|
|
15
|
+
l(stamped);
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
devWarn('operations-log', 'subscriber threw while handling entry', err);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
snapshot() {
|
|
23
|
+
return buf.slice();
|
|
24
|
+
},
|
|
25
|
+
subscribe(listener) {
|
|
26
|
+
listeners.add(listener);
|
|
27
|
+
return () => listeners.delete(listener);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-run indexes of a merged decoration set, built once when the set changes so each
|
|
3
|
+
* overlay reads only its own bucket instead of scanning every decoration per render.
|
|
4
|
+
*/
|
|
5
|
+
import type { Decoration, MarkDecoration } from './types';
|
|
6
|
+
/** A decoration paired with its flat-list position — the stable key overlays render against. */
|
|
7
|
+
export interface IndexedDecoration<D extends Decoration = Decoration> {
|
|
8
|
+
dec: D;
|
|
9
|
+
index: number;
|
|
10
|
+
}
|
|
11
|
+
/** Stable key for a block path; distinct paths never collide, elements being numbers. */
|
|
12
|
+
export declare function pathKey(path: readonly number[]): string;
|
|
13
|
+
/** Bucket `{ path }`-bearing items by block path, preserving flat order. Shared by
|
|
14
|
+
* decorations and search. */
|
|
15
|
+
export declare function groupByPathKey<T extends {
|
|
16
|
+
path: readonly number[];
|
|
17
|
+
}, E>(items: readonly T[], wrap: (item: T, index: number) => E): Map<string, E[]>;
|
|
18
|
+
/** Group decorations by owning leaf path, preserving each one's flat index. */
|
|
19
|
+
export declare function groupDecorationsByPath(decs: readonly Decoration[]): Map<string, IndexedDecoration[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Group decorations under every strict ancestor prefix of their owning path. Grid
|
|
22
|
+
* surfaces paint descendant cell decorations themselves, cells having no BlockHost
|
|
23
|
+
* overlay, so this lets them read one bucket instead of the full list.
|
|
24
|
+
*/
|
|
25
|
+
export declare function groupDecorationsByAncestor(decs: readonly Decoration[]): Map<string, IndexedDecoration[]>;
|
|
26
|
+
/** One whole-cell rect: the union of every mark's class tokens, plus a representative
|
|
27
|
+
* decoration for the rect's attrs/interactive. */
|
|
28
|
+
export interface CollapsedCellMark {
|
|
29
|
+
rowIdx: number;
|
|
30
|
+
colIdx: number;
|
|
31
|
+
class: string;
|
|
32
|
+
dec: MarkDecoration;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Collapse a grid's descendant cell marks to one entry per `(row, col)`, unioning their
|
|
36
|
+
* class tokens so two sources in one cell cascade-compose instead of stacking translucent
|
|
37
|
+
* rects. `containerDepth` is the grid container's path length; the cell coordinates sit at
|
|
38
|
+
* `path[depth]` and `path[depth + 1]`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function collapseCellMarks(descMarks: readonly IndexedDecoration<MarkDecoration>[], containerDepth: number): CollapsedCellMark[];
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-run indexes of a merged decoration set, built once when the set changes so each
|
|
3
|
+
* overlay reads only its own bucket instead of scanning every decoration per render.
|
|
4
|
+
*/
|
|
5
|
+
/** Stable key for a block path; distinct paths never collide, elements being numbers. */
|
|
6
|
+
export function pathKey(path) {
|
|
7
|
+
return path.join(',');
|
|
8
|
+
}
|
|
9
|
+
/** Bucket `{ path }`-bearing items by block path, preserving flat order. Shared by
|
|
10
|
+
* decorations and search. */
|
|
11
|
+
export function groupByPathKey(items, wrap) {
|
|
12
|
+
const buckets = new Map();
|
|
13
|
+
items.forEach((item, index) => {
|
|
14
|
+
const key = pathKey(item.path);
|
|
15
|
+
const bucket = buckets.get(key);
|
|
16
|
+
if (bucket)
|
|
17
|
+
bucket.push(wrap(item, index));
|
|
18
|
+
else
|
|
19
|
+
buckets.set(key, [wrap(item, index)]);
|
|
20
|
+
});
|
|
21
|
+
return buckets;
|
|
22
|
+
}
|
|
23
|
+
/** Group decorations by owning leaf path, preserving each one's flat index. */
|
|
24
|
+
export function groupDecorationsByPath(decs) {
|
|
25
|
+
return groupByPathKey(decs, (dec, index) => ({ dec, index }));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Group decorations under every strict ancestor prefix of their owning path. Grid
|
|
29
|
+
* surfaces paint descendant cell decorations themselves, cells having no BlockHost
|
|
30
|
+
* overlay, so this lets them read one bucket instead of the full list.
|
|
31
|
+
*/
|
|
32
|
+
export function groupDecorationsByAncestor(decs) {
|
|
33
|
+
const byAncestor = new Map();
|
|
34
|
+
decs.forEach((dec, index) => {
|
|
35
|
+
for (let len = 1; len < dec.path.length; len++) {
|
|
36
|
+
push(byAncestor, pathKey(dec.path.slice(0, len)), dec, index);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return byAncestor;
|
|
40
|
+
}
|
|
41
|
+
function push(map, key, dec, index) {
|
|
42
|
+
const bucket = map.get(key);
|
|
43
|
+
if (bucket)
|
|
44
|
+
bucket.push({ dec, index });
|
|
45
|
+
else
|
|
46
|
+
map.set(key, [{ dec, index }]);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Collapse a grid's descendant cell marks to one entry per `(row, col)`, unioning their
|
|
50
|
+
* class tokens so two sources in one cell cascade-compose instead of stacking translucent
|
|
51
|
+
* rects. `containerDepth` is the grid container's path length; the cell coordinates sit at
|
|
52
|
+
* `path[depth]` and `path[depth + 1]`.
|
|
53
|
+
*/
|
|
54
|
+
export function collapseCellMarks(descMarks, containerDepth) {
|
|
55
|
+
const byCell = new Map();
|
|
56
|
+
for (const { dec } of descMarks) {
|
|
57
|
+
const rowIdx = dec.path[containerDepth];
|
|
58
|
+
const colIdx = dec.path[containerDepth + 1];
|
|
59
|
+
if (rowIdx == null || colIdx == null)
|
|
60
|
+
continue;
|
|
61
|
+
const cell = byCell.get(`${rowIdx},${colIdx}`);
|
|
62
|
+
if (cell) {
|
|
63
|
+
addClassTokens(cell.classes, dec.class);
|
|
64
|
+
cell.dec = dec;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
byCell.set(`${rowIdx},${colIdx}`, {
|
|
68
|
+
rowIdx,
|
|
69
|
+
colIdx,
|
|
70
|
+
classes: addClassTokens(new Set(), dec.class),
|
|
71
|
+
dec
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return [...byCell.values()].map(({ rowIdx, colIdx, classes, dec }) => ({
|
|
76
|
+
rowIdx,
|
|
77
|
+
colIdx,
|
|
78
|
+
class: [...classes].join(' '),
|
|
79
|
+
dec
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
82
|
+
function addClassTokens(set, cls) {
|
|
83
|
+
for (const token of cls.split(/\s+/))
|
|
84
|
+
if (token)
|
|
85
|
+
set.add(token);
|
|
86
|
+
return set;
|
|
87
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { DocumentView } from '../core/node-views';
|
|
2
|
+
import { type IndexedDecoration } from './buckets';
|
|
3
|
+
import type { BlockDecoration, DecorationSource, DecorationSourceHandle, MarkDecoration, ReplaceDecoration, WidgetDecoration } from './types';
|
|
4
|
+
export interface DecorationEngineDeps {
|
|
5
|
+
getDoc: () => DocumentView;
|
|
6
|
+
onSourceError?: (sourceName: string, error: unknown) => void;
|
|
7
|
+
}
|
|
8
|
+
export type DecorationEngine = {
|
|
9
|
+
addSource(source: DecorationSource): DecorationSourceHandle;
|
|
10
|
+
readonly sourceCount: number;
|
|
11
|
+
/** Bump the edit epoch, then re-run every provide. `handle.invalidate()` re-runs one
|
|
12
|
+
* source WITHOUT the bump, which is what lets a memoized source tell "document
|
|
13
|
+
* changed" from "my own state changed". */
|
|
14
|
+
notifyEdit(): void;
|
|
15
|
+
marksForPath(path: number[]): IndexedDecoration<MarkDecoration>[];
|
|
16
|
+
marksForDescendants(path: number[]): IndexedDecoration<MarkDecoration>[];
|
|
17
|
+
islandsForPath(path: number[]): IndexedDecoration<WidgetDecoration | ReplaceDecoration>[];
|
|
18
|
+
blockDecorationsForPath(path: number[]): BlockDecoration[];
|
|
19
|
+
};
|
|
20
|
+
export declare function createDecorationEngine(deps: DecorationEngineDeps): DecorationEngine;
|