@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,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code-block renderer. Produces a DocumentFragment with dimmed marker spans
|
|
3
|
+
* for fences and tokenized spans for the body. Invariant (G1.28):
|
|
4
|
+
* fragment.textContent === trimTrailingLineEnding(node.raw)
|
|
5
|
+
*/
|
|
6
|
+
import { metadataOf } from '../../../core/nodes';
|
|
7
|
+
import { trimTrailingLineEnding } from '../../../core/lines';
|
|
8
|
+
import { devWarn } from '../../../dev-warn';
|
|
9
|
+
import { assertInvariant } from '../../../assert';
|
|
10
|
+
import { checkRenderedTextFidelity } from '../../../invariants/render-fidelity';
|
|
11
|
+
import hljs from 'highlight.js/lib/core';
|
|
12
|
+
import { getLanguageGrammar } from './code-languages';
|
|
13
|
+
export function sliceFencedCode(node) {
|
|
14
|
+
const meta = metadataOf(node, 'fencedCode');
|
|
15
|
+
const raw = node.raw;
|
|
16
|
+
const firstNewline = raw.indexOf('\n');
|
|
17
|
+
if (firstNewline === -1) {
|
|
18
|
+
return { openerLine: raw, body: '', closerLine: '', infoString: meta.info ?? '' };
|
|
19
|
+
}
|
|
20
|
+
const openerLine = raw.slice(0, firstNewline + 1);
|
|
21
|
+
if (!meta.closed) {
|
|
22
|
+
return {
|
|
23
|
+
openerLine,
|
|
24
|
+
body: raw.slice(openerLine.length),
|
|
25
|
+
closerLine: '',
|
|
26
|
+
infoString: meta.info ?? ''
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const closerStart = findClosingFenceStart(raw, openerLine.length, meta.fenceMarker, meta.fenceLength);
|
|
30
|
+
return {
|
|
31
|
+
openerLine,
|
|
32
|
+
body: raw.slice(openerLine.length, closerStart),
|
|
33
|
+
closerLine: raw.slice(closerStart),
|
|
34
|
+
infoString: meta.info ?? ''
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
// ── hljs class → code-tok class mapping ───────────────────────────────────
|
|
38
|
+
const HLJS_CLASS_MAP = {
|
|
39
|
+
'hljs-keyword': 'code-tok-keyword',
|
|
40
|
+
'hljs-string': 'code-tok-string',
|
|
41
|
+
'hljs-number': 'code-tok-number',
|
|
42
|
+
'hljs-comment': 'code-tok-comment',
|
|
43
|
+
'hljs-doctag': 'code-tok-comment',
|
|
44
|
+
'hljs-quote': 'code-tok-comment',
|
|
45
|
+
'hljs-type': 'code-tok-type',
|
|
46
|
+
'hljs-class': 'code-tok-type',
|
|
47
|
+
'hljs-name': 'code-tok-type',
|
|
48
|
+
'hljs-selector-tag': 'code-tok-type',
|
|
49
|
+
'hljs-built_in': 'code-tok-function',
|
|
50
|
+
'hljs-function': 'code-tok-function',
|
|
51
|
+
'hljs-title': 'code-tok-function',
|
|
52
|
+
'hljs-variable': 'code-tok-variable',
|
|
53
|
+
'hljs-params': 'code-tok-variable',
|
|
54
|
+
'hljs-template-variable': 'code-tok-variable',
|
|
55
|
+
'hljs-operator': 'code-tok-operator',
|
|
56
|
+
'hljs-punctuation': 'code-tok-punctuation',
|
|
57
|
+
'hljs-tag': 'code-tok-punctuation',
|
|
58
|
+
'hljs-bullet': 'code-tok-punctuation',
|
|
59
|
+
'hljs-meta': 'code-tok-meta',
|
|
60
|
+
'hljs-template-tag': 'code-tok-meta',
|
|
61
|
+
'hljs-literal': 'code-tok-literal',
|
|
62
|
+
'hljs-attr': 'code-tok-attr',
|
|
63
|
+
'hljs-attribute': 'code-tok-attr',
|
|
64
|
+
'hljs-selector-id': 'code-tok-attr',
|
|
65
|
+
'hljs-selector-class': 'code-tok-attr',
|
|
66
|
+
'hljs-selector-pseudo': 'code-tok-attr',
|
|
67
|
+
'hljs-addition': 'code-tok-added',
|
|
68
|
+
'hljs-deletion': 'code-tok-removed',
|
|
69
|
+
'hljs-section': 'code-tok-heading',
|
|
70
|
+
'hljs-link': 'code-tok-link',
|
|
71
|
+
'hljs-regexp': 'code-tok-regexp',
|
|
72
|
+
'hljs-symbol': 'code-tok-symbol',
|
|
73
|
+
'hljs-subst': 'code-tok-subst'
|
|
74
|
+
};
|
|
75
|
+
export function mapHljsClass(hljsClass) {
|
|
76
|
+
const first = hljsClass.split(/\s+/)[0];
|
|
77
|
+
return HLJS_CLASS_MAP[first] ?? 'code-tok-unknown';
|
|
78
|
+
}
|
|
79
|
+
// ── hljs output walker ────────────────────────────────────────────────────
|
|
80
|
+
export function walkHljsNodes(source, target) {
|
|
81
|
+
for (const child of source.childNodes) {
|
|
82
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
83
|
+
target.appendChild(document.createTextNode(child.textContent ?? ''));
|
|
84
|
+
}
|
|
85
|
+
else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
86
|
+
const el = child;
|
|
87
|
+
const span = document.createElement('span');
|
|
88
|
+
span.className = mapHljsClass(el.className);
|
|
89
|
+
walkHljsNodes(el, span);
|
|
90
|
+
target.appendChild(span);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// ── Body tokenization ─────────────────────────────────────────────────────
|
|
95
|
+
const registeredWithHljs = new Set();
|
|
96
|
+
/** `ignoreIllegals` is set so mid-typing invalid syntax doesn't throw. */
|
|
97
|
+
export function tokenizeBody(body, infoString) {
|
|
98
|
+
const frag = document.createDocumentFragment();
|
|
99
|
+
if (body.length === 0)
|
|
100
|
+
return frag;
|
|
101
|
+
const grammar = getLanguageGrammar(infoString);
|
|
102
|
+
if (!grammar) {
|
|
103
|
+
frag.appendChild(document.createTextNode(body));
|
|
104
|
+
return frag;
|
|
105
|
+
}
|
|
106
|
+
if (!registeredWithHljs.has(grammar.name)) {
|
|
107
|
+
hljs.registerLanguage(grammar.name, grammar.definition);
|
|
108
|
+
registeredWithHljs.add(grammar.name);
|
|
109
|
+
}
|
|
110
|
+
// `template.innerHTML` normalizes every `\r\n`/`\r` to `\n`, so a CRLF body is
|
|
111
|
+
// highlighted as pure LF and its endings restored positionally afterward.
|
|
112
|
+
const hasCarriageReturn = body.includes('\r');
|
|
113
|
+
const highlightSource = hasCarriageReturn ? body.replace(/\r\n|\r/g, '\n') : body;
|
|
114
|
+
const result = hljs.highlight(highlightSource, {
|
|
115
|
+
language: grammar.name,
|
|
116
|
+
ignoreIllegals: true
|
|
117
|
+
});
|
|
118
|
+
const template = document.createElement('template');
|
|
119
|
+
template.innerHTML = result.value;
|
|
120
|
+
walkHljsNodes(template.content, frag);
|
|
121
|
+
if (hasCarriageReturn)
|
|
122
|
+
restoreLineEndings(frag, body);
|
|
123
|
+
return frag;
|
|
124
|
+
}
|
|
125
|
+
// An in-order text-node walk rewrites the k-th `\n` back to the k-th original ending.
|
|
126
|
+
// Counts match by construction: every `\r` was stripped before highlighting, so neither
|
|
127
|
+
// hljs nor the HTML parser adds or drops a newline.
|
|
128
|
+
function restoreLineEndings(root, originalBody) {
|
|
129
|
+
const endings = originalBody.match(/\r\n|\r|\n/g);
|
|
130
|
+
if (!endings)
|
|
131
|
+
return;
|
|
132
|
+
let next = 0;
|
|
133
|
+
const restore = (node) => {
|
|
134
|
+
for (const child of node.childNodes) {
|
|
135
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
136
|
+
const text = child.textContent ?? '';
|
|
137
|
+
if (text.includes('\n')) {
|
|
138
|
+
child.textContent = text.replace(/\n/g, () => endings[next++]);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
restore(child);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
restore(root);
|
|
147
|
+
// A count mismatch would silently write `undefined` into committed bytes downstream,
|
|
148
|
+
// so make an hljs-faithfulness regression loud at this seam instead.
|
|
149
|
+
if (next !== endings.length) {
|
|
150
|
+
devWarn('code-renderer', `restoreLineEndings count mismatch: ${next} fragment newlines vs ${endings.length} source endings`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// ── Fence marker rendering ────────────────────────────────────────────────
|
|
154
|
+
function makeMarkerSpan(text, extraClass) {
|
|
155
|
+
const span = document.createElement('span');
|
|
156
|
+
span.className = extraClass ? `md-marker ${extraClass}` : 'md-marker';
|
|
157
|
+
span.textContent = text;
|
|
158
|
+
return span;
|
|
159
|
+
}
|
|
160
|
+
// A fence line's newline is a bare text node CSS cannot reach; wrapping the whole line
|
|
161
|
+
// lets reading/preview modes collapse it with `display: none`. Layout-neutral in source
|
|
162
|
+
// mode — an inline span under `white-space: pre` still breaks on its inner `\n`.
|
|
163
|
+
function makeFenceLine(parts) {
|
|
164
|
+
const line = document.createElement('span');
|
|
165
|
+
line.className = 'md-fence-line';
|
|
166
|
+
for (const part of parts)
|
|
167
|
+
line.appendChild(part);
|
|
168
|
+
return line;
|
|
169
|
+
}
|
|
170
|
+
function renderOpenerLine(slice, fenceMarker, fenceLength) {
|
|
171
|
+
const frag = document.createDocumentFragment();
|
|
172
|
+
if (slice.openerLine.length === 0)
|
|
173
|
+
return frag;
|
|
174
|
+
const fenceChars = fenceMarker.repeat(fenceLength);
|
|
175
|
+
const openerWithoutNewline = slice.openerLine.replace(/\n$/, '');
|
|
176
|
+
const hasTrailingNewline = slice.openerLine.endsWith('\n');
|
|
177
|
+
// The fence may sit behind 0–3 spaces of indent; carry it inside the fence-marker
|
|
178
|
+
// span so textContent keeps every opener byte.
|
|
179
|
+
const indent = openerWithoutNewline.match(/^ {0,3}/)[0];
|
|
180
|
+
const parts = [makeMarkerSpan(indent + fenceChars, 'md-fence')];
|
|
181
|
+
const afterFence = openerWithoutNewline.slice(indent.length + fenceChars.length);
|
|
182
|
+
if (afterFence.length > 0) {
|
|
183
|
+
parts.push(makeMarkerSpan(afterFence, 'md-lang'));
|
|
184
|
+
}
|
|
185
|
+
if (hasTrailingNewline) {
|
|
186
|
+
parts.push(document.createTextNode('\n'));
|
|
187
|
+
}
|
|
188
|
+
frag.appendChild(makeFenceLine(parts));
|
|
189
|
+
return frag;
|
|
190
|
+
}
|
|
191
|
+
function renderCloserLine(slice, leadingNewline) {
|
|
192
|
+
const frag = document.createDocumentFragment();
|
|
193
|
+
if (slice.closerLine.length === 0)
|
|
194
|
+
return frag;
|
|
195
|
+
const parts = [];
|
|
196
|
+
// The line break before the closer belongs to the closer's fence line, not the
|
|
197
|
+
// body's last code line; owning it here lets the wrapper hide both together.
|
|
198
|
+
if (leadingNewline)
|
|
199
|
+
parts.push(document.createTextNode('\n'));
|
|
200
|
+
parts.push(makeMarkerSpan(slice.closerLine, 'md-fence'));
|
|
201
|
+
frag.appendChild(makeFenceLine(parts));
|
|
202
|
+
return frag;
|
|
203
|
+
}
|
|
204
|
+
// ── Top-level render ─────────────────────────────────────────────────────
|
|
205
|
+
export function renderCodeBlock(node) {
|
|
206
|
+
const slice = trimSliceTail(sliceFencedCode(node));
|
|
207
|
+
const meta = metadataOf(node, 'fencedCode');
|
|
208
|
+
const frag = document.createDocumentFragment();
|
|
209
|
+
// The newline before the closer is re-homed onto the closer's fence line, so
|
|
210
|
+
// reading/preview collapse the bottom blank line with it. An all-blank body is the
|
|
211
|
+
// exception: stealing its terminating `\n` would drop a visible line.
|
|
212
|
+
const hasCloser = slice.closerLine.length > 0;
|
|
213
|
+
// `/\S/` deliberately conflates a whitespace-only body (spaces/tabs, no content
|
|
214
|
+
// line) with a truly-blank one: both keep their separator and render like blanks.
|
|
215
|
+
const bodyHasContentLine = /\S/.test(slice.body);
|
|
216
|
+
const separatorNewline = hasCloser && slice.body.endsWith('\n') && bodyHasContentLine;
|
|
217
|
+
const bodyText = separatorNewline ? slice.body.slice(0, -1) : slice.body;
|
|
218
|
+
frag.appendChild(renderOpenerLine(slice, meta.fenceMarker, meta.fenceLength));
|
|
219
|
+
frag.appendChild(tokenizeBody(bodyText, slice.infoString));
|
|
220
|
+
frag.appendChild(renderCloserLine(slice, separatorNewline));
|
|
221
|
+
assertInvariant('rendered-text-fidelity', () => checkRenderedTextFidelity(frag.textContent ?? '', trimTrailingLineEnding(node.raw)));
|
|
222
|
+
return frag;
|
|
223
|
+
}
|
|
224
|
+
// ── Internal ─────────────────────────────────────────────────────────────────
|
|
225
|
+
// The block's trailing line ending never enters the fragments: strip it from whichever
|
|
226
|
+
// slice piece carries the tail, so G1.28 holds by construction — CRLF included.
|
|
227
|
+
function trimSliceTail(slice) {
|
|
228
|
+
if (slice.closerLine.length > 0)
|
|
229
|
+
return { ...slice, closerLine: trimTrailingLineEnding(slice.closerLine) };
|
|
230
|
+
if (slice.body.length > 0)
|
|
231
|
+
return { ...slice, body: trimTrailingLineEnding(slice.body) };
|
|
232
|
+
return { ...slice, openerLine: trimTrailingLineEnding(slice.openerLine) };
|
|
233
|
+
}
|
|
234
|
+
function findClosingFenceStart(raw, searchStart, fenceMarker, fenceLength) {
|
|
235
|
+
const fencePattern = new RegExp(`^ {0,3}${fenceMarker}{${fenceLength},}\\s*$`);
|
|
236
|
+
let lineEnd = raw.length;
|
|
237
|
+
while (lineEnd > searchStart) {
|
|
238
|
+
const lineStart = raw.lastIndexOf('\n', lineEnd - 2) + 1;
|
|
239
|
+
if (lineStart < searchStart)
|
|
240
|
+
break;
|
|
241
|
+
const line = raw.slice(lineStart, lineEnd).replace(/\n$/, '');
|
|
242
|
+
if (fencePattern.test(line)) {
|
|
243
|
+
return lineStart;
|
|
244
|
+
}
|
|
245
|
+
lineEnd = lineStart;
|
|
246
|
+
}
|
|
247
|
+
// Unreachable when the parser's `closed` flag is consistent with raw.
|
|
248
|
+
return raw.length;
|
|
249
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
// The generic render surface for an unregistered `:::name` directive, built on the
|
|
3
|
+
// same `createContainerBlock` seam a plugin reaches through the barrel. Chrome stays a
|
|
4
|
+
// dimmed marker over a gutter rail, not a card box — a document should feel like a document.
|
|
5
|
+
import { createContainerBlock } from '../../../editor-actions/plugin/container';
|
|
6
|
+
import BlockList from '../../BlockList.svelte';
|
|
7
|
+
import type { NodeView } from '../../../core/node-views';
|
|
8
|
+
|
|
9
|
+
let { node, index, myPath = [] }: { node: NodeView; index: number; myPath?: number[] } = $props();
|
|
10
|
+
|
|
11
|
+
let boxEl: HTMLElement | undefined = $state();
|
|
12
|
+
|
|
13
|
+
// The opener line sliced verbatim, not rebuilt from metadata: the line can also
|
|
14
|
+
// carry an indent, attributes, or trailing spaces the metadata does not hold.
|
|
15
|
+
const marker = $derived.by(() => {
|
|
16
|
+
const end = node.raw.indexOf('\n');
|
|
17
|
+
const line = end === -1 ? node.raw : node.raw.slice(0, end);
|
|
18
|
+
return line.endsWith('\r') ? line.slice(0, -1) : line;
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const { blockListProps, containerApi, handleKeydown } = createContainerBlock({
|
|
22
|
+
getNode: () => node,
|
|
23
|
+
getIndex: () => index,
|
|
24
|
+
getPath: () => myPath,
|
|
25
|
+
getBoxEl: () => boxEl
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
export { containerApi };
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
32
|
+
<div class="directive-block" bind:this={boxEl} onkeydown={handleKeydown}>
|
|
33
|
+
<span class="directive-marker" contenteditable="false">{marker}</span>
|
|
34
|
+
<BlockList {...blockListProps} />
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<style>
|
|
38
|
+
.directive-block {
|
|
39
|
+
border-left: 2px solid var(--color-ui-muted, #a4a4a4);
|
|
40
|
+
padding-left: 0.75em;
|
|
41
|
+
margin: 6px 0;
|
|
42
|
+
}
|
|
43
|
+
.directive-marker {
|
|
44
|
+
display: block;
|
|
45
|
+
font-family: var(--font-editor, ui-monospace, monospace);
|
|
46
|
+
opacity: var(--syntax-marker-dim, 0.65);
|
|
47
|
+
user-select: none;
|
|
48
|
+
-webkit-user-select: none;
|
|
49
|
+
cursor: default;
|
|
50
|
+
}
|
|
51
|
+
</style>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { NodeView } from '../../../core/node-views';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
node: NodeView;
|
|
4
|
+
index: number;
|
|
5
|
+
myPath?: number[];
|
|
6
|
+
};
|
|
7
|
+
declare const DirectiveContainerBlock: import("svelte").Component<$$ComponentProps, {
|
|
8
|
+
containerApi: import("../../../editor-actions/plugin/container").ContainerBlockComponent;
|
|
9
|
+
}, "">;
|
|
10
|
+
type DirectiveContainerBlock = ReturnType<typeof DirectiveContainerBlock>;
|
|
11
|
+
export default DirectiveContainerBlock;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The public activation entry for the `:::name` directive primitive, on the `@voithos-labs/aragonite/plugin`
|
|
3
|
+
* barrel: grammar plus the generic container and leaf render. A pure-GFM consumer that never calls
|
|
4
|
+
* it leaves `:::` unclaimed. Lives in `components/` because it binds Svelte components, which core
|
|
5
|
+
* must not reach. Every registration guards its public probe, so repeat calls are safe.
|
|
6
|
+
*/
|
|
7
|
+
export declare function activateDirectives(): void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The public activation entry for the `:::name` directive primitive, on the `@voithos-labs/aragonite/plugin`
|
|
3
|
+
* barrel: grammar plus the generic container and leaf render. A pure-GFM consumer that never calls
|
|
4
|
+
* it leaves `:::` unclaimed. Lives in `components/` because it binds Svelte components, which core
|
|
5
|
+
* must not reach. Every registration guards its public probe, so repeat calls are safe.
|
|
6
|
+
*/
|
|
7
|
+
import { activateDirectiveGrammar } from '../../../core/directive/activate';
|
|
8
|
+
import { registerBlockComponent, defineBlockComponent, isBlockComponentRegistered } from '../../../schema/block-component-registry';
|
|
9
|
+
import { declaredPluginKind } from '../../../schema/plugin-kind';
|
|
10
|
+
import { DIRECTIVE_CONTAINER, DIRECTIVE_LEAF } from '../../../core/directive/kinds';
|
|
11
|
+
import DirectiveContainerBlock from './DirectiveContainerBlock.svelte';
|
|
12
|
+
import TextEditableBlock from '../text/TextEditableBlock.svelte';
|
|
13
|
+
export function activateDirectives() {
|
|
14
|
+
activateDirectiveGrammar();
|
|
15
|
+
if (!isBlockComponentRegistered(DIRECTIVE_CONTAINER)) {
|
|
16
|
+
registerBlockComponent(declaredPluginKind(DIRECTIVE_CONTAINER), defineBlockComponent(DirectiveContainerBlock));
|
|
17
|
+
}
|
|
18
|
+
// The leaf's descriptor already drives its dimmed marker and split behavior, so it
|
|
19
|
+
// reuses the built-in text surface directly.
|
|
20
|
+
if (!isBlockComponentRegistered(DIRECTIVE_LEAF)) {
|
|
21
|
+
registerBlockComponent(declaredPluginKind(DIRECTIVE_LEAF), defineBlockComponent(TextEditableBlock, () => ({ blockClass: 'directive-leaf' })));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The editable-leaf seam a plugin block component builds on: a text-editing block surface with
|
|
3
|
+
* native caret/IME/undo/cross-block-selection parity, in one factory so a plugin never touches an
|
|
4
|
+
* editor context key. Two modes: `plain` commits per keystroke, `render-primary` reveals its
|
|
5
|
+
* source and commits on blur. Call synchronously during init. Contract: plugin-guide § The
|
|
6
|
+
* editable leaf.
|
|
7
|
+
*/
|
|
8
|
+
import type { BlockEditActions } from '../../action-contracts';
|
|
9
|
+
import type { StickyColumnDirection } from '../../block-component';
|
|
10
|
+
import type { NodeView } from '../../core/node-views';
|
|
11
|
+
import { type PluginEditorLookup } from '../../editor-keys';
|
|
12
|
+
import type { PresentationMode } from '../../presentation-mode';
|
|
13
|
+
import { type CommandId } from '../../schema/commands';
|
|
14
|
+
import { type BlockCommandContext } from '../../schema/block-commands';
|
|
15
|
+
export type EditableLeafMode = 'plain' | 'render-primary';
|
|
16
|
+
/**
|
|
17
|
+
* The frozen inputs the host component feeds in. A function-valued field is a **live
|
|
18
|
+
* read**, re-evaluated on every use, so a structural op or undo replacement is observed
|
|
19
|
+
* rather than snapshotted; `mode` and `singleLine` are static configuration captured at the
|
|
20
|
+
* factory call.
|
|
21
|
+
*/
|
|
22
|
+
export interface EditableLeafDeps {
|
|
23
|
+
getNode(): NodeView;
|
|
24
|
+
getIndex(): number;
|
|
25
|
+
getPath(): number[];
|
|
26
|
+
/** The source contenteditable; null while unmounted (render-primary's rendered view). */
|
|
27
|
+
getEl(): HTMLElement | null;
|
|
28
|
+
mode?: EditableLeafMode;
|
|
29
|
+
/** A kind whose bytes are one line: Enter splits the block rather than typing a newline. */
|
|
30
|
+
singleLine?: boolean;
|
|
31
|
+
/** render-primary only: the component owns the swap flag and both views. */
|
|
32
|
+
isRevealed?(): boolean;
|
|
33
|
+
setRevealed?(revealed: boolean): void;
|
|
34
|
+
/**
|
|
35
|
+
* The mounted component's view-state hooks, handed to a minted block command as
|
|
36
|
+
* `ctx.hooks`. Read live at dispatch: return a getter, never a captured value. The
|
|
37
|
+
* platform treats it as `unknown`; the plugin casts it.
|
|
38
|
+
*/
|
|
39
|
+
commandHooks?: () => unknown;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The one-spread source surface: `<div {...leaf.surfaceProps}>` wires every handler and attribute
|
|
43
|
+
* a source contenteditable needs, so a consumer cannot drop one (a forgotten `oncompositionend`
|
|
44
|
+
* breaks IME silently). Symbol-keyed attachments carry the view-lifecycle contracts: a SINGLE text
|
|
45
|
+
* node, so the ambient offset walk stays exact, and the focus-park on unmount.
|
|
46
|
+
*/
|
|
47
|
+
export interface EditableLeafSurfaceProps {
|
|
48
|
+
tabindex: number;
|
|
49
|
+
/** Reading mode makes a plain leaf's always-mounted source inert. */
|
|
50
|
+
contenteditable: 'true' | 'false';
|
|
51
|
+
role: 'textbox';
|
|
52
|
+
spellcheck: 'false';
|
|
53
|
+
oninput: () => void;
|
|
54
|
+
onkeydown: (e: KeyboardEvent) => void | Promise<void>;
|
|
55
|
+
oncopy: (e: ClipboardEvent) => void;
|
|
56
|
+
oncut: (e: ClipboardEvent) => Promise<void>;
|
|
57
|
+
onpaste: (e: ClipboardEvent) => Promise<void>;
|
|
58
|
+
onpointerdown: (e: PointerEvent) => void;
|
|
59
|
+
onfocusout: () => void;
|
|
60
|
+
oncompositionstart: () => void;
|
|
61
|
+
oncompositionend: () => void;
|
|
62
|
+
/** View-sync + focus-park ride Svelte attachments under symbol keys. */
|
|
63
|
+
[attachment: symbol]: unknown;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The one-spread rendered surface: `<div {...leaf.renderProps}>` on a render-primary block's
|
|
67
|
+
* FOLDED view. One bundle rather than a handler apiece, because a rendered view wired for the
|
|
68
|
+
* reveal click alone swallows every chord while it holds focus — undo included. Both entries
|
|
69
|
+
* stand down while the source is up, so the spread may sit on a wrapper the fold keeps.
|
|
70
|
+
*/
|
|
71
|
+
export interface EditableLeafRenderProps {
|
|
72
|
+
/** Reveal-on-click (shift-click extends a selection instead). */
|
|
73
|
+
onpointerdown: (e: PointerEvent) => void;
|
|
74
|
+
/** Chord dispatch at this block's kind: the global tier, then its own commands. */
|
|
75
|
+
onkeydown: (e: KeyboardEvent) => void;
|
|
76
|
+
}
|
|
77
|
+
export interface EditableLeaf {
|
|
78
|
+
/** The block's source minus its trailing line ending — the editable text. */
|
|
79
|
+
readonly sourceText: string;
|
|
80
|
+
/** The one-spread source surface (attributes + handlers + view/park attachments). */
|
|
81
|
+
surfaceProps: EditableLeafSurfaceProps;
|
|
82
|
+
/** render-primary: the one-spread folded surface. */
|
|
83
|
+
renderProps: EditableLeafRenderProps;
|
|
84
|
+
/**
|
|
85
|
+
* The live EFFECTIVE presentation mode. The factory already gates itself in
|
|
86
|
+
* 'reading' (no reveal, no commits); a plain-mode component additionally binds
|
|
87
|
+
* `contenteditable` off this so its always-mounted source goes structurally inert.
|
|
88
|
+
*/
|
|
89
|
+
getPresentationMode(): PresentationMode;
|
|
90
|
+
/**
|
|
91
|
+
* The live editor theme name (`data-editor-theme`), for a leaf whose rendered half
|
|
92
|
+
* comes from an engine emitting its own colors rather than from CSS.
|
|
93
|
+
*/
|
|
94
|
+
getTheme(): string;
|
|
95
|
+
/**
|
|
96
|
+
* This editor instance's options for the plugin owning this block's kind — the
|
|
97
|
+
* `{ plugin, options }` entry's channel, so two editors in one process configure the
|
|
98
|
+
* same kind differently. `unknown`, like `commandHooks`: the plugin narrows it.
|
|
99
|
+
*/
|
|
100
|
+
getOptions(): unknown;
|
|
101
|
+
focus(offset: number): void;
|
|
102
|
+
parkCaret(offset: number): void;
|
|
103
|
+
focusAtColumn(x: number, from: StickyColumnDirection): void;
|
|
104
|
+
getCursorOffset(): number | null;
|
|
105
|
+
getSelectedText(): string;
|
|
106
|
+
setSelection(start: number, end: number): void;
|
|
107
|
+
measurePartialRects(startOffset: number, endOffset: number): DOMRect[];
|
|
108
|
+
runCommand(id: CommandId): boolean;
|
|
109
|
+
/** Insert markdown at the caret exactly as pasting it here would, minus the clipboard —
|
|
110
|
+
* publish it as the component's `insertMarkdown` so `editor.insertMarkdown()` reaches
|
|
111
|
+
* this leaf. True means the paste pipeline took the text, not that its commit flushed. */
|
|
112
|
+
insertMarkdown(md: string): boolean;
|
|
113
|
+
/** Mount/focus the source with the caret at `offset` (plain mode: focus only). */
|
|
114
|
+
reveal(offset?: number): Promise<void>;
|
|
115
|
+
/** Commit edited source as one undo entry, fire and forget; the parse decides update / kind
|
|
116
|
+
* change / structural split. */
|
|
117
|
+
commitSource(edited: string): void;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* The node → metadata bridge (plus `commandHooks`) a minted block command resolves
|
|
121
|
+
* against on the leaf tier — the container factory's `buildContainerKindTarget` sibling.
|
|
122
|
+
* Every field reads through `deps`' thunks at dispatch, so a node swap or hook rebind is
|
|
123
|
+
* observed live; `pluginEditor` resolves by the kind's recorded owner.
|
|
124
|
+
*/
|
|
125
|
+
export declare function buildLeafCommandContext(deps: Pick<EditableLeafDeps, 'getNode' | 'getIndex' | 'commandHooks'>, blockEdit: Pick<BlockEditActions, 'updateBlockMetadata'>, pluginEditor?: PluginEditorLookup): Omit<BlockCommandContext, 'arg'>;
|
|
126
|
+
export declare function createEditableLeaf(deps: EditableLeafDeps): EditableLeaf;
|