@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,86 @@
|
|
|
1
|
+
import { BLOCK_KIND_TABLE, isBuiltinInlineKind } from '../core/nodes';
|
|
2
|
+
import { currentInstallingPlugin, pluginKindOwner, recordPluginKindOwner } from './plugin-install';
|
|
3
|
+
import { isValidPluginName } from './plugin-name';
|
|
4
|
+
import { devReplacesRegistration } from './register-once';
|
|
5
|
+
const declaredPluginKinds = new Set();
|
|
6
|
+
// Structural sentinels a plugin kind must not shadow: `document` is `Document.kind` and
|
|
7
|
+
// `global` is the keybinding-override scope, so neither is in BLOCK_KIND_TABLE below.
|
|
8
|
+
const RESERVED_KIND_NAMES = new Set(['document', 'global']);
|
|
9
|
+
export function declarePluginKind(name) {
|
|
10
|
+
if (!isValidPluginName(name)) {
|
|
11
|
+
throw new Error(`declarePluginKind: invalid kind name "${name}" — lowercase first letter, then letters/digits/hyphens`);
|
|
12
|
+
}
|
|
13
|
+
if (name in BLOCK_KIND_TABLE) {
|
|
14
|
+
throw new Error(`declarePluginKind: "${name}" is a built-in BlockKind`);
|
|
15
|
+
}
|
|
16
|
+
if (RESERVED_KIND_NAMES.has(name)) {
|
|
17
|
+
throw new Error(`declarePluginKind: "${name}" is a reserved structural sentinel`);
|
|
18
|
+
}
|
|
19
|
+
if (declaredPluginKinds.has(name)) {
|
|
20
|
+
// Dev re-eval (HMR/SSR) re-declares a plugin's own kind; return the existing
|
|
21
|
+
// brand rather than 500 the route. Production/test keep the collision throw.
|
|
22
|
+
if (devReplacesRegistration())
|
|
23
|
+
return name;
|
|
24
|
+
const owner = pluginKindOwner(name);
|
|
25
|
+
throw new Error(`declarePluginKind: "${name}" was already declared by another plugin` +
|
|
26
|
+
(owner ? ` — first declared by plugin '${owner}'` : ''));
|
|
27
|
+
}
|
|
28
|
+
declaredPluginKinds.add(name);
|
|
29
|
+
const installer = currentInstallingPlugin();
|
|
30
|
+
if (installer)
|
|
31
|
+
recordPluginKindOwner(name, installer);
|
|
32
|
+
return name;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Recover the branded kind for an already-declared name, so a module that didn't mint it reaches
|
|
36
|
+
* the brand without an unchecked cast. Throws for an undeclared name, so a typo can't silently
|
|
37
|
+
* register against a kind that doesn't exist.
|
|
38
|
+
*/
|
|
39
|
+
export function declaredPluginKind(name) {
|
|
40
|
+
if (!declaredPluginKinds.has(name)) {
|
|
41
|
+
throw new Error(`declaredPluginKind: "${name}" has not been declared — call declarePluginKind first`);
|
|
42
|
+
}
|
|
43
|
+
return name;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Non-throwing declaration probe, so an idempotent module (HMR, a re-imported registrar) asks
|
|
47
|
+
* before declaring instead of catching {@link declarePluginKind}'s or {@link declaredPluginKind}'s
|
|
48
|
+
* throw.
|
|
49
|
+
*/
|
|
50
|
+
export function isBlockKindDeclared(name) {
|
|
51
|
+
return declaredPluginKinds.has(name);
|
|
52
|
+
}
|
|
53
|
+
export function __clearDeclaredPluginKindsForTests() {
|
|
54
|
+
declaredPluginKinds.clear();
|
|
55
|
+
}
|
|
56
|
+
const declaredPluginInlineKinds = new Set();
|
|
57
|
+
export function declarePluginInlineKind(name) {
|
|
58
|
+
if (!isValidPluginName(name)) {
|
|
59
|
+
throw new Error(`declarePluginInlineKind: invalid kind name "${name}" — lowercase first letter, then letters/digits/hyphens`);
|
|
60
|
+
}
|
|
61
|
+
if (isBuiltinInlineKind(name)) {
|
|
62
|
+
throw new Error(`declarePluginInlineKind: "${name}" is a built-in InlineNodeKind`);
|
|
63
|
+
}
|
|
64
|
+
if (declaredPluginInlineKinds.has(name)) {
|
|
65
|
+
// Dev re-eval survival — see declarePluginKind. Production/test keep the throw.
|
|
66
|
+
if (devReplacesRegistration())
|
|
67
|
+
return name;
|
|
68
|
+
throw new Error(`declarePluginInlineKind: "${name}" was already declared by another plugin`);
|
|
69
|
+
}
|
|
70
|
+
declaredPluginInlineKinds.add(name);
|
|
71
|
+
return name;
|
|
72
|
+
}
|
|
73
|
+
/** The inline mirror of {@link declaredPluginKind}; throws for an undeclared name. */
|
|
74
|
+
export function declaredPluginInlineKind(name) {
|
|
75
|
+
if (!declaredPluginInlineKinds.has(name)) {
|
|
76
|
+
throw new Error(`declaredPluginInlineKind: "${name}" has not been declared — call declarePluginInlineKind first`);
|
|
77
|
+
}
|
|
78
|
+
return name;
|
|
79
|
+
}
|
|
80
|
+
/** The inline mirror of {@link isBlockKindDeclared}. */
|
|
81
|
+
export function isInlineKindDeclared(name) {
|
|
82
|
+
return declaredPluginInlineKinds.has(name);
|
|
83
|
+
}
|
|
84
|
+
export function __clearDeclaredPluginInlineKindsForTests() {
|
|
85
|
+
declaredPluginInlineKinds.clear();
|
|
86
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isValidPluginName(name: string): boolean;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// The frozen plugin naming family, shared by plugin-kind.ts and plugin-install.ts. A
|
|
2
|
+
// dependency-free leaf: plugin-kind already imports plugin-install, so hosting the pattern
|
|
3
|
+
// there would close a cycle.
|
|
4
|
+
const PLUGIN_NAME_PATTERN = /^[a-z][a-zA-Z0-9-]*$/;
|
|
5
|
+
export function isValidPluginName(name) {
|
|
6
|
+
return PLUGIN_NAME_PATTERN.test(name);
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** True only on a dev server (not production, not a test run) — the one window the valve opens. */
|
|
2
|
+
export declare function devReplacesRegistration(): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* `apply` carries the registration and its side effects, and runs on a fresh register AND on a
|
|
5
|
+
* dev replace, so a re-run registrar with changed content re-primes those seams.
|
|
6
|
+
*/
|
|
7
|
+
export declare function registerOnce(isDuplicate: boolean, apply: () => void, conflict: string): void;
|
|
8
|
+
/** The test-reset primitive the schema registries share: drop every non-built-in key. */
|
|
9
|
+
export declare function deletePluginEntries<K>(map: Map<K, unknown>, isBuiltin: (key: K) => boolean): void;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register-once with a DEV-only survival valve for HMR/SSR registrar re-eval. The frozen
|
|
3
|
+
* contract (docs/design/plugin-contract.md § The registries: global, register-once) is
|
|
4
|
+
* conflict-on-duplicate, and production and test keep the throw. On a dev server a re-run
|
|
5
|
+
* registrar would otherwise 500 every route until restart, so there a duplicate replaces with a
|
|
6
|
+
* note instead.
|
|
7
|
+
*/
|
|
8
|
+
import { editorEnv } from '../env';
|
|
9
|
+
import { devWarn } from '../dev-warn';
|
|
10
|
+
/** True only on a dev server (not production, not a test run) — the one window the valve opens. */
|
|
11
|
+
export function devReplacesRegistration() {
|
|
12
|
+
return editorEnv.isDev && !editorEnv.isTest;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* `apply` carries the registration and its side effects, and runs on a fresh register AND on a
|
|
16
|
+
* dev replace, so a re-run registrar with changed content re-primes those seams.
|
|
17
|
+
*/
|
|
18
|
+
export function registerOnce(isDuplicate, apply, conflict) {
|
|
19
|
+
if (isDuplicate) {
|
|
20
|
+
if (devReplacesRegistration()) {
|
|
21
|
+
devWarn('registry', `${conflict} — dev re-registration replaces (HMR/SSR survival)`);
|
|
22
|
+
apply();
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
throw new Error(conflict);
|
|
26
|
+
}
|
|
27
|
+
apply();
|
|
28
|
+
}
|
|
29
|
+
/** The test-reset primitive the schema registries share: drop every non-built-in key. */
|
|
30
|
+
export function deletePluginEntries(map, isBuiltin) {
|
|
31
|
+
for (const key of map.keys()) {
|
|
32
|
+
if (!isBuiltin(key))
|
|
33
|
+
map.delete(key);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registration-seam coherence: the registries enqueue every post-bootstrap registration and this
|
|
3
|
+
* seam validates them at the next flush — Editor mount, or the parser's next grammar read
|
|
4
|
+
* (`getOrderedOpeners`) — never mid-batch, so intra-batch forward references stay warn-free.
|
|
5
|
+
* This module and block-openers reference each other, but only inside function bodies, and
|
|
6
|
+
* neither calls the other during evaluation, so no cycle observes uninitialized state.
|
|
7
|
+
*/
|
|
8
|
+
import { type AnyBlockKind } from '../core/nodes';
|
|
9
|
+
import { type InvariantViolation } from '../assert';
|
|
10
|
+
import { type ClosureCoherenceEntry } from '../invariants/registry';
|
|
11
|
+
import { type BlockKindDescriptor } from './block-kind-descriptor';
|
|
12
|
+
export { hasPendingRegistrationChecks, __resetRegistrationChecksForTests } from './registration-pending';
|
|
13
|
+
/** Matches `assertInvariant` — the default sink; tests inject a collector. */
|
|
14
|
+
export type RegistrationCheckReport = (tag: string, check: () => InvariantViolation | null) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Descriptor → G1.24 entry. Exported so the suites project the same fields: a test-local copy
|
|
17
|
+
* that missed a column would pass while the rule it claims to exercise went unread.
|
|
18
|
+
*/
|
|
19
|
+
export declare const closureCoherenceEntry: (kind: AnyBlockKind, d: BlockKindDescriptor) => ClosureCoherenceEntry;
|
|
20
|
+
/**
|
|
21
|
+
* Run the registry coherence checks (G1.2/10/11/17/18/24/30/32/37). The first call sweeps the whole
|
|
22
|
+
* world; later calls validate only the kinds registered since, plus opener coherence over the
|
|
23
|
+
* full registry (a new opener's priority collision is inherently cross-entry).
|
|
24
|
+
*/
|
|
25
|
+
export declare function flushPendingRegistrationChecks(report?: RegistrationCheckReport): void;
|
|
26
|
+
/**
|
|
27
|
+
* G1.31, at the EDITOR-MOUNT flush alone. The rows register with the descriptors, but the
|
|
28
|
+
* policy's function hooks patch in from the component layer, which a parse-only unit test
|
|
29
|
+
* never loads — running this at the parser's flush would fire on an absence legal there.
|
|
30
|
+
* Table-wide rather than per-registration, so it does not ride the pending-kinds queue.
|
|
31
|
+
*/
|
|
32
|
+
export declare function checkInlineConstructPoliciesAtMount(report?: RegistrationCheckReport): void;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registration-seam coherence: the registries enqueue every post-bootstrap registration and this
|
|
3
|
+
* seam validates them at the next flush — Editor mount, or the parser's next grammar read
|
|
4
|
+
* (`getOrderedOpeners`) — never mid-batch, so intra-batch forward references stay warn-free.
|
|
5
|
+
* This module and block-openers reference each other, but only inside function bodies, and
|
|
6
|
+
* neither calls the other during evaluation, so no cycle observes uninitialized state.
|
|
7
|
+
*/
|
|
8
|
+
import { ALL_BLOCK_KINDS, isBuiltinInlineKind } from '../core/nodes';
|
|
9
|
+
import { assertInvariant } from '../assert';
|
|
10
|
+
import { checkRegistryCompleteness, checkOpenerRegistry, checkKeymapCoherence, checkReservedChromeCoherence, checkClosureCoherence, checkLateOpenerRegistration, checkMergeRoleVocabulary, checkContentStartBackspace, checkDescriptorFieldCoherence, checkInlineConstructPolicy } from '../invariants/registry';
|
|
11
|
+
import { listInlineConstructPolicies } from './inline-construct-policy';
|
|
12
|
+
import { isInlineKindDeclared } from './plugin-kind';
|
|
13
|
+
import { tryGetBlockKindDescriptor, getAllRegisteredKinds, isKnownMergeRole, liftsFirstChild } from './block-kind-descriptor';
|
|
14
|
+
import { getBlockComponent } from './block-component-registry';
|
|
15
|
+
import { listRegisteredOpeners } from './block-openers';
|
|
16
|
+
import { isBuiltinCommandId } from './commands';
|
|
17
|
+
import { isPluginCommandId } from './command-id';
|
|
18
|
+
import { normalizeChord, isChordWellFormed } from './keybindings';
|
|
19
|
+
import { takeRegistrationFlushWork } from './registration-pending';
|
|
20
|
+
export { hasPendingRegistrationChecks, __resetRegistrationChecksForTests } from './registration-pending';
|
|
21
|
+
const hasDescriptor = (kind) => tryGetBlockKindDescriptor(kind) !== undefined;
|
|
22
|
+
const hasComponent = (kind) => getBlockComponent(kind) !== undefined;
|
|
23
|
+
const keymapEntries = (kinds) => kinds.map((kind) => ({ kind, keymap: tryGetBlockKindDescriptor(kind)?.keymap }));
|
|
24
|
+
const reservedChromeEntries = (kinds) => kinds.map((kind) => {
|
|
25
|
+
const d = tryGetBlockKindDescriptor(kind);
|
|
26
|
+
return {
|
|
27
|
+
kind,
|
|
28
|
+
isContainer: d?.isContainer ?? false,
|
|
29
|
+
reservedChromeKind: d?.reservedChrome?.kind
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
const viaOf = (cell) => cell.mode === 'implemented' ? cell.via : undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Descriptor → G1.24 entry. Exported so the suites project the same fields: a test-local copy
|
|
35
|
+
* that missed a column would pass while the rule it claims to exercise went unread.
|
|
36
|
+
*/
|
|
37
|
+
export const closureCoherenceEntry = (kind, d) => ({
|
|
38
|
+
kind,
|
|
39
|
+
notMergeable: d.mergeRole === 'not-mergeable',
|
|
40
|
+
hasContainerContract: d.containerContract !== undefined,
|
|
41
|
+
roundTripMode: d.closure.roundTrip.mode,
|
|
42
|
+
mergeBackspaceMode: d.closure.mergeBackspace.mode,
|
|
43
|
+
declaresWholeBlockFocus: d.blockFocus === 'whole-block',
|
|
44
|
+
focusVia: viaOf(d.closure.focus),
|
|
45
|
+
mergeBackspaceVia: viaOf(d.closure.mergeBackspace),
|
|
46
|
+
declaresReservedChrome: d.reservedChrome !== undefined,
|
|
47
|
+
clipboardMode: d.closure.clipboard.mode
|
|
48
|
+
});
|
|
49
|
+
const closureEntries = (kinds) => kinds
|
|
50
|
+
.map((kind) => ({ kind, d: tryGetBlockKindDescriptor(kind) }))
|
|
51
|
+
.filter((e) => e.d !== undefined)
|
|
52
|
+
.map(({ kind, d }) => closureCoherenceEntry(kind, d));
|
|
53
|
+
// Widened to `string` on the way out: the vocabulary check exists for the callers the
|
|
54
|
+
// `MergeRole` union cannot bind (a plugin registering through a cast).
|
|
55
|
+
const mergeRoleEntries = (kinds) => kinds.flatMap((kind) => {
|
|
56
|
+
const mergeRole = tryGetBlockKindDescriptor(kind)?.mergeRole;
|
|
57
|
+
return mergeRole === undefined ? [] : [{ kind, mergeRole }];
|
|
58
|
+
});
|
|
59
|
+
const contentStartBackspaceEntries = (kinds) => kinds.map((kind) => {
|
|
60
|
+
const d = tryGetBlockKindDescriptor(kind);
|
|
61
|
+
return {
|
|
62
|
+
kind,
|
|
63
|
+
demotesFirst: d?.contentStartBackspace === 'demote-first',
|
|
64
|
+
declaresContentRange: d?.getContentRange !== undefined
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
const descriptorFieldEntries = (kinds, openerKinds) => kinds.flatMap((kind) => {
|
|
68
|
+
const d = tryGetBlockKindDescriptor(kind);
|
|
69
|
+
if (!d)
|
|
70
|
+
return [];
|
|
71
|
+
const firstChildBackspace = d.unwrapRole?.firstChildBackspace;
|
|
72
|
+
return [
|
|
73
|
+
{
|
|
74
|
+
kind,
|
|
75
|
+
declaresWholeBlockFocus: d.blockFocus === 'whole-block',
|
|
76
|
+
supportsInline: d.supportsInline,
|
|
77
|
+
declaresReservedChrome: d.reservedChrome !== undefined,
|
|
78
|
+
contextDependentKind: d.contextDependentKind === true,
|
|
79
|
+
hasOpener: openerKinds.has(kind),
|
|
80
|
+
unwrapLiftsFirstChild: firstChildBackspace !== undefined && liftsFirstChild(firstChildBackspace),
|
|
81
|
+
unwrapKeepsReservedChrome: firstChildBackspace === 'keep-reserved-chrome'
|
|
82
|
+
}
|
|
83
|
+
];
|
|
84
|
+
});
|
|
85
|
+
const isKnownCommandId = (id) => isBuiltinCommandId(id) || isPluginCommandId(id);
|
|
86
|
+
/**
|
|
87
|
+
* Run the registry coherence checks (G1.2/10/11/17/18/24/30/32/37). The first call sweeps the whole
|
|
88
|
+
* world; later calls validate only the kinds registered since, plus opener coherence over the
|
|
89
|
+
* full registry (a new opener's priority collision is inherently cross-entry).
|
|
90
|
+
*/
|
|
91
|
+
export function flushPendingRegistrationChecks(report = assertInvariant) {
|
|
92
|
+
const work = takeRegistrationFlushWork();
|
|
93
|
+
if (!work)
|
|
94
|
+
return;
|
|
95
|
+
if (work.firstFlush) {
|
|
96
|
+
report('registry-completeness', () => checkRegistryCompleteness(ALL_BLOCK_KINDS, hasDescriptor, hasComponent));
|
|
97
|
+
}
|
|
98
|
+
// The first flush sweeps the live registry, not just ALL_BLOCK_KINDS. Completeness stays
|
|
99
|
+
// built-in-scoped: a plugin kind's component may register on its own schedule, so
|
|
100
|
+
// reservedChrome coherence is the plugin-kind bootstrap check instead.
|
|
101
|
+
const kinds = work.firstFlush ? getAllRegisteredKinds() : work.kinds;
|
|
102
|
+
report('opener-registry', () => checkOpenerRegistry(listRegisteredOpeners(), hasDescriptor));
|
|
103
|
+
report('keymap-coherence', () => checkKeymapCoherence(keymapEntries(kinds), isKnownCommandId, normalizeChord, isChordWellFormed));
|
|
104
|
+
report('reserved-chrome-coherence', () => checkReservedChromeCoherence(reservedChromeEntries(kinds), hasDescriptor, hasComponent));
|
|
105
|
+
report('closure-coherence', () => checkClosureCoherence(closureEntries(kinds)));
|
|
106
|
+
report('descriptor-field-coherence', () => checkDescriptorFieldCoherence(descriptorFieldEntries(kinds, new Set(listRegisteredOpeners().map((entry) => entry.kind)))));
|
|
107
|
+
report('merge-role-vocabulary', () => checkMergeRoleVocabulary(mergeRoleEntries(kinds), isKnownMergeRole));
|
|
108
|
+
report('content-start-backspace', () => checkContentStartBackspace(contentStartBackspaceEntries(kinds)));
|
|
109
|
+
for (const kind of work.lateOpeners) {
|
|
110
|
+
report('late-opener-registration', () => checkLateOpenerRegistration(kind, true));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const isKnownInlineKind = (kind) => isBuiltinInlineKind(kind) || isInlineKindDeclared(kind);
|
|
114
|
+
/**
|
|
115
|
+
* G1.31, at the EDITOR-MOUNT flush alone. The rows register with the descriptors, but the
|
|
116
|
+
* policy's function hooks patch in from the component layer, which a parse-only unit test
|
|
117
|
+
* never loads — running this at the parser's flush would fire on an absence legal there.
|
|
118
|
+
* Table-wide rather than per-registration, so it does not ride the pending-kinds queue.
|
|
119
|
+
*/
|
|
120
|
+
export function checkInlineConstructPoliciesAtMount(report = assertInvariant) {
|
|
121
|
+
report('inline-construct-policy', () => checkInlineConstructPolicy(listInlineConstructPolicies(), isKnownInlineKind, isBuiltinInlineKind, isBuiltinCommandId));
|
|
122
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pending-registration ledger behind the registration-check seam (`./registration-checks`).
|
|
3
|
+
* Import-leaf on purpose: the registries that enqueue here register built-ins during their own
|
|
4
|
+
* module evaluation, so a back-import would call into this module before its state initializes.
|
|
5
|
+
*/
|
|
6
|
+
import type { AnyBlockKind } from '../core/nodes';
|
|
7
|
+
/**
|
|
8
|
+
* Record a registration for the next coherence flush. The pending-kinds gate no-ops before the
|
|
9
|
+
* first flush, which validates the bootstrap batch whole. Lateness is recorded UNCONDITIONALLY,
|
|
10
|
+
* ahead of that gate: an editorless `parse()` trips grammar-consumption without flushing, so an
|
|
11
|
+
* opener registered after that is genuinely late and must survive to the first flush (G1.17).
|
|
12
|
+
*/
|
|
13
|
+
export declare function enqueueRegistrationCheck(kind: AnyBlockKind, origin?: 'descriptor' | 'opener'): void;
|
|
14
|
+
/** Grammar-consumption latch: the parser's opener-dispatch read trips it. */
|
|
15
|
+
export declare function markGrammarConsumed(): void;
|
|
16
|
+
export declare function hasPendingRegistrationChecks(): boolean;
|
|
17
|
+
export interface RegistrationFlushWork {
|
|
18
|
+
firstFlush: boolean;
|
|
19
|
+
kinds: AnyBlockKind[];
|
|
20
|
+
lateOpeners: AnyBlockKind[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Claim the outstanding work, clearing it BEFORE any check runs — draining first is the
|
|
24
|
+
* re-entrancy guard, so a check that re-reads the grammar finds an empty pending set instead of
|
|
25
|
+
* recursing into another flush.
|
|
26
|
+
*/
|
|
27
|
+
export declare function takeRegistrationFlushWork(): RegistrationFlushWork | null;
|
|
28
|
+
export declare function __resetRegistrationChecksForTests(): void;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const pendingKinds = new Set();
|
|
2
|
+
const pendingLateOpeners = new Set();
|
|
3
|
+
let didFirstFlush = false;
|
|
4
|
+
let grammarConsumed = false;
|
|
5
|
+
/**
|
|
6
|
+
* Record a registration for the next coherence flush. The pending-kinds gate no-ops before the
|
|
7
|
+
* first flush, which validates the bootstrap batch whole. Lateness is recorded UNCONDITIONALLY,
|
|
8
|
+
* ahead of that gate: an editorless `parse()` trips grammar-consumption without flushing, so an
|
|
9
|
+
* opener registered after that is genuinely late and must survive to the first flush (G1.17).
|
|
10
|
+
*/
|
|
11
|
+
export function enqueueRegistrationCheck(kind, origin = 'descriptor') {
|
|
12
|
+
if (origin === 'opener' && grammarConsumed)
|
|
13
|
+
pendingLateOpeners.add(kind);
|
|
14
|
+
if (!didFirstFlush)
|
|
15
|
+
return;
|
|
16
|
+
pendingKinds.add(kind);
|
|
17
|
+
}
|
|
18
|
+
/** Grammar-consumption latch: the parser's opener-dispatch read trips it. */
|
|
19
|
+
export function markGrammarConsumed() {
|
|
20
|
+
grammarConsumed = true;
|
|
21
|
+
}
|
|
22
|
+
export function hasPendingRegistrationChecks() {
|
|
23
|
+
return pendingKinds.size > 0;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Claim the outstanding work, clearing it BEFORE any check runs — draining first is the
|
|
27
|
+
* re-entrancy guard, so a check that re-reads the grammar finds an empty pending set instead of
|
|
28
|
+
* recursing into another flush.
|
|
29
|
+
*/
|
|
30
|
+
export function takeRegistrationFlushWork() {
|
|
31
|
+
if (didFirstFlush && pendingKinds.size === 0 && pendingLateOpeners.size === 0)
|
|
32
|
+
return null;
|
|
33
|
+
const work = {
|
|
34
|
+
firstFlush: !didFirstFlush,
|
|
35
|
+
kinds: [...pendingKinds],
|
|
36
|
+
lateOpeners: [...pendingLateOpeners]
|
|
37
|
+
};
|
|
38
|
+
didFirstFlush = true;
|
|
39
|
+
pendingKinds.clear();
|
|
40
|
+
pendingLateOpeners.clear();
|
|
41
|
+
return work;
|
|
42
|
+
}
|
|
43
|
+
export function __resetRegistrationChecksForTests() {
|
|
44
|
+
pendingKinds.clear();
|
|
45
|
+
pendingLateOpeners.clear();
|
|
46
|
+
didFirstFlush = false;
|
|
47
|
+
grammarConsumed = false;
|
|
48
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test-only. Clears every non-built-in registration; built-ins survive. Also clears the warn
|
|
3
|
+
* dedup, the registration-check latches, and the installed-plugin set — state that shadows a
|
|
4
|
+
* registry must never outlive its reset. The single-slot registrations (live split rebalancer,
|
|
5
|
+
* join-seam cleaner) keep their own doors: only a suite testing a slot wants it emptied.
|
|
6
|
+
*/
|
|
7
|
+
export declare function __resetSchemaRegistriesForTests(): void;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { __removePluginBlockKindsForTests } from './block-kind-descriptor';
|
|
2
|
+
import { __removePluginComponentsForTests } from './block-component-registry';
|
|
3
|
+
import { __removePluginCompletersForTests } from './block-completions';
|
|
4
|
+
import { __removePluginOpenersForTests } from './block-openers';
|
|
5
|
+
import { __removePluginCommandsForTests, __resetCommandWarningsForTests, __resetPluginGlobalKeymapForTests } from './commands';
|
|
6
|
+
import { __resetBlockCommandsForTests } from './block-commands';
|
|
7
|
+
import { __clearDeclaredPluginKindsForTests } from './plugin-kind';
|
|
8
|
+
import { __resetRegistrationChecksForTests } from './registration-checks';
|
|
9
|
+
import { __resetInstalledPluginsForTests } from './plugin-install';
|
|
10
|
+
import { __resetInlineConstructPoliciesForTests } from './inline-construct-policy';
|
|
11
|
+
/**
|
|
12
|
+
* Test-only. Clears every non-built-in registration; built-ins survive. Also clears the warn
|
|
13
|
+
* dedup, the registration-check latches, and the installed-plugin set — state that shadows a
|
|
14
|
+
* registry must never outlive its reset. The single-slot registrations (live split rebalancer,
|
|
15
|
+
* join-seam cleaner) keep their own doors: only a suite testing a slot wants it emptied.
|
|
16
|
+
*/
|
|
17
|
+
export function __resetSchemaRegistriesForTests() {
|
|
18
|
+
__removePluginBlockKindsForTests();
|
|
19
|
+
__removePluginComponentsForTests();
|
|
20
|
+
__removePluginCompletersForTests();
|
|
21
|
+
__removePluginOpenersForTests();
|
|
22
|
+
__removePluginCommandsForTests();
|
|
23
|
+
__resetBlockCommandsForTests();
|
|
24
|
+
__resetInlineConstructPoliciesForTests();
|
|
25
|
+
__resetPluginGlobalKeymapForTests();
|
|
26
|
+
__resetCommandWarningsForTests();
|
|
27
|
+
__clearDeclaredPluginKindsForTests();
|
|
28
|
+
__resetRegistrationChecksForTests();
|
|
29
|
+
__resetInstalledPluginsForTests();
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-instance resolution over the process-global block definitions (docs/design/plugin-contract.md
|
|
3
|
+
* § Schema registries). The default view resolves every kind VERBATIM, so an editorless `parse()`
|
|
4
|
+
* and every bare component mount stay byte-identical. An `isEnabled` view resolves no component
|
|
5
|
+
* for a disabled plugin kind and drops its opener; the DESCRIPTOR is never filtered, since a
|
|
6
|
+
* disabled kind still needs it to degrade rather than throw. The `plugins` prop sources the
|
|
7
|
+
* predicate: `plugin-activation.ts` turns an instance's listed set into one.
|
|
8
|
+
*/
|
|
9
|
+
import { type AnyBlockKind } from '../core/nodes';
|
|
10
|
+
import { type BlockComponentEntry } from './block-component-registry';
|
|
11
|
+
import { type BlockKindDescriptor } from './block-kind-descriptor';
|
|
12
|
+
import { type GrammarView } from './block-openers';
|
|
13
|
+
/** `false` disables a PLUGIN kind for one instance; built-ins are never disableable. */
|
|
14
|
+
export type KindEnablement = (kind: AnyBlockKind) => boolean;
|
|
15
|
+
export interface RegistryView {
|
|
16
|
+
/** The kind's component, or `undefined` when unregistered OR disabled for this instance. */
|
|
17
|
+
component(kind: AnyBlockKind): BlockComponentEntry | undefined;
|
|
18
|
+
/** The kind's descriptor — never filtered (required infrastructure); throws when absent. */
|
|
19
|
+
descriptor(kind: AnyBlockKind): BlockKindDescriptor;
|
|
20
|
+
tryDescriptor(kind: AnyBlockKind): BlockKindDescriptor | undefined;
|
|
21
|
+
/** The block grammar this instance parses through (`parse(source, { grammar })`). */
|
|
22
|
+
grammar: GrammarView;
|
|
23
|
+
}
|
|
24
|
+
/** Both predicates must admit the kind, so a second filter can only narrow the first.
|
|
25
|
+
* An absent side admits everything. */
|
|
26
|
+
export declare function bothEnable(a: KindEnablement | undefined, b: KindEnablement | undefined): KindEnablement | undefined;
|
|
27
|
+
export declare function createRegistryView(opts?: {
|
|
28
|
+
isEnabled?: KindEnablement;
|
|
29
|
+
}): RegistryView;
|
|
30
|
+
export declare const defaultRegistryView: RegistryView;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-instance resolution over the process-global block definitions (docs/design/plugin-contract.md
|
|
3
|
+
* § Schema registries). The default view resolves every kind VERBATIM, so an editorless `parse()`
|
|
4
|
+
* and every bare component mount stay byte-identical. An `isEnabled` view resolves no component
|
|
5
|
+
* for a disabled plugin kind and drops its opener; the DESCRIPTOR is never filtered, since a
|
|
6
|
+
* disabled kind still needs it to degrade rather than throw. The `plugins` prop sources the
|
|
7
|
+
* predicate: `plugin-activation.ts` turns an instance's listed set into one.
|
|
8
|
+
*/
|
|
9
|
+
import { isBuiltinBlockKind } from '../core/nodes';
|
|
10
|
+
import { getBlockComponent } from './block-component-registry';
|
|
11
|
+
import { getBlockKindDescriptor, tryGetBlockKindDescriptor } from './block-kind-descriptor';
|
|
12
|
+
import { defaultGrammarView, createGrammarView } from './block-openers';
|
|
13
|
+
/** Both predicates must admit the kind, so a second filter can only narrow the first.
|
|
14
|
+
* An absent side admits everything. */
|
|
15
|
+
export function bothEnable(a, b) {
|
|
16
|
+
if (!a)
|
|
17
|
+
return b;
|
|
18
|
+
if (!b)
|
|
19
|
+
return a;
|
|
20
|
+
return (kind) => a(kind) && b(kind);
|
|
21
|
+
}
|
|
22
|
+
export function createRegistryView(opts) {
|
|
23
|
+
const filter = opts?.isEnabled;
|
|
24
|
+
if (!filter)
|
|
25
|
+
return defaultRegistryView;
|
|
26
|
+
const enabled = (kind) => isBuiltinBlockKind(kind) || filter(kind);
|
|
27
|
+
return {
|
|
28
|
+
component: (kind) => (enabled(kind) ? getBlockComponent(kind) : undefined),
|
|
29
|
+
descriptor: (kind) => getBlockKindDescriptor(kind),
|
|
30
|
+
tryDescriptor: (kind) => tryGetBlockKindDescriptor(kind),
|
|
31
|
+
grammar: createGrammarView(enabled)
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export const defaultRegistryView = {
|
|
35
|
+
component: (kind) => getBlockComponent(kind),
|
|
36
|
+
descriptor: (kind) => getBlockKindDescriptor(kind),
|
|
37
|
+
tryDescriptor: (kind) => tryGetBlockKindDescriptor(kind),
|
|
38
|
+
grammar: defaultGrammarView
|
|
39
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { KeybindingOverrideMap } from './keybinding-overrides';
|
|
2
|
+
import type { PluginActivation } from './plugin-activation';
|
|
3
|
+
/** One library file that reads a KeyboardEvent modifier flag, and what it claims. */
|
|
4
|
+
export interface HardcodedChordSite {
|
|
5
|
+
/** Path under `src/lib`, as G4.29's scan reports it. */
|
|
6
|
+
file: string;
|
|
7
|
+
/** Modifier chords the file consumes outside every keymap. */
|
|
8
|
+
chords: readonly string[];
|
|
9
|
+
/** Key literals the file compares — the scan's evidence that `chords` is still current. */
|
|
10
|
+
keys: readonly string[];
|
|
11
|
+
/** Why the chord list is what it is, where the branches alone don't say. */
|
|
12
|
+
note?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const HARDCODED_CHORD_SITES: readonly HardcodedChordSite[];
|
|
15
|
+
export interface ReservedChordOptions {
|
|
16
|
+
/** The instance's live `searchBar` value: with the bar off the editor claims neither
|
|
17
|
+
* Find nor Replace. */
|
|
18
|
+
searchBar: boolean;
|
|
19
|
+
/** The instance's compiled `keybindings` prop, so an override's binds and disables show. */
|
|
20
|
+
keybindings?: KeybindingOverrideMap;
|
|
21
|
+
/** The plugins this instance activated: a chord another editor's plugin claimed is not
|
|
22
|
+
* this editor's. Required-nullable, so a new caller must answer; `undefined` is every
|
|
23
|
+
* installed plugin. */
|
|
24
|
+
activation: PluginActivation | undefined;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Every modifier chord this editor consumes, normalized. Composed on each call: kind keymaps,
|
|
28
|
+
* the plugin tiers and the override map all change under a live editor.
|
|
29
|
+
*/
|
|
30
|
+
export declare function collectReservedChords(options: ReservedChordOptions): ReadonlySet<string>;
|
|
31
|
+
/**
|
|
32
|
+
* True when `chords` claims this keystroke, under the editor's own normalization — Ctrl and
|
|
33
|
+
* Cmd both fold to `Mod`, so a consumer never re-derives the platform rule.
|
|
34
|
+
*/
|
|
35
|
+
export declare function chordIsClaimed(event: KeyboardEvent, chords: ReadonlySet<string>): boolean;
|