@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,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The reference whole-block container, on public registration seams only: an opaque
|
|
3
|
+
* container with no children, its diagram code in typed metadata, so an
|
|
4
|
+
* `updateOwnMetadata({ code })` commit is the whole edit path. Uninstall safety is by
|
|
5
|
+
* construction: without this opener the same bytes parse as plain `fencedCode`.
|
|
6
|
+
*/
|
|
7
|
+
import { declarePluginKind, registerBlockKind, registerBlockOpener, registerBlockCommand, setPluginMetadata, getPluginMetadata, matchFenceOpen, matchFenceClose, escalatedFenceLength, OPENER_PRIORITIES } from '../../plugin';
|
|
8
|
+
export const MERMAID = 'mermaid';
|
|
9
|
+
// ── Fence grammar ─────────────────────────────────────────────────────────────
|
|
10
|
+
// The barrel's built-in matcher, gated on the info string's first word, so the
|
|
11
|
+
// CommonMark fence rules stay the editor's and never become a plugin copy.
|
|
12
|
+
function matchMermaidFence(text) {
|
|
13
|
+
const fence = matchFenceOpen(text);
|
|
14
|
+
return fence && fence.info.split(/\s+/)[0] === MERMAID ? fence : null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The edit textarea normalizes to LF, so a CRLF-authored diagram needs its authored
|
|
18
|
+
* ending put back on every body line. An emptied body commits as `''`, no stray line.
|
|
19
|
+
*/
|
|
20
|
+
export function joinMermaidBody(draft, lineEnding) {
|
|
21
|
+
if (draft.length === 0)
|
|
22
|
+
return '';
|
|
23
|
+
return draft.replaceAll('\n', lineEnding) + lineEnding;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The opener's inverse, and the byte path every code edit rides. The body is a metadata string
|
|
27
|
+
* this kind never re-parses, so the fence is sized against it here — a diagram line that reads as
|
|
28
|
+
* this block's closer would otherwise truncate the block on its next load.
|
|
29
|
+
*/
|
|
30
|
+
export function rebuildMermaidRaw(node) {
|
|
31
|
+
const meta = getPluginMetadata(node);
|
|
32
|
+
if (!meta)
|
|
33
|
+
return;
|
|
34
|
+
const marker = meta.fenceChar === '~' ? '~' : '`';
|
|
35
|
+
const fenceLength = escalatedFenceLength(meta.code, marker, meta.fenceLength);
|
|
36
|
+
node.raw =
|
|
37
|
+
meta.openerIndent +
|
|
38
|
+
marker.repeat(fenceLength) +
|
|
39
|
+
meta.infoRaw +
|
|
40
|
+
meta.openerLineEnding +
|
|
41
|
+
meta.code +
|
|
42
|
+
(fenceLength > meta.fenceLength
|
|
43
|
+
? grownCloser(meta.closerRaw, marker, fenceLength)
|
|
44
|
+
: meta.closerRaw);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Grow a verbatim closer line's run to `length`, keeping its indent, trailing spaces and line
|
|
48
|
+
* ending. An unterminated block has no closer line and gains none: the parser reads it to the end
|
|
49
|
+
* of input either way.
|
|
50
|
+
*/
|
|
51
|
+
function grownCloser(closerRaw, marker, length) {
|
|
52
|
+
const match = /^( {0,3})([`~]+)([\s\S]*)$/.exec(closerRaw);
|
|
53
|
+
if (!match)
|
|
54
|
+
return closerRaw;
|
|
55
|
+
return match[1] + marker.repeat(Math.max(match[2].length, length)) + match[3];
|
|
56
|
+
}
|
|
57
|
+
// ── Registration ─────────────────────────────────────────────────────────────
|
|
58
|
+
export function registerMermaidKind() {
|
|
59
|
+
const mermaid = declarePluginKind(MERMAID);
|
|
60
|
+
// No default chord: the edit affordance is the button, and this command exists for
|
|
61
|
+
// consumer keymap bindings.
|
|
62
|
+
registerBlockCommand(mermaid, 'mermaid.edit', (ctx) => {
|
|
63
|
+
const hooks = ctx.hooks;
|
|
64
|
+
if (!hooks)
|
|
65
|
+
return false;
|
|
66
|
+
hooks.openEdit();
|
|
67
|
+
return true;
|
|
68
|
+
});
|
|
69
|
+
const focusCommand = registerBlockCommand(mermaid, 'mermaid.focus', (ctx) => {
|
|
70
|
+
const hooks = ctx.hooks;
|
|
71
|
+
if (!hooks)
|
|
72
|
+
return false;
|
|
73
|
+
hooks.openFocusView();
|
|
74
|
+
return true;
|
|
75
|
+
});
|
|
76
|
+
registerBlockKind(mermaid, {
|
|
77
|
+
// Backspace from the block below must never merge text into a diagram.
|
|
78
|
+
mergeRole: 'not-mergeable',
|
|
79
|
+
editable: true,
|
|
80
|
+
supportsInline: false,
|
|
81
|
+
// ThematicBreak's focus-then-delete model: arrows stop on it, and a caret-adjacent
|
|
82
|
+
// Backspace focuses before a second press deletes.
|
|
83
|
+
blockFocus: 'whole-block',
|
|
84
|
+
// Leading edge only, for the same reason as thematicBreak: its focused Enter already
|
|
85
|
+
// inserts a paragraph below.
|
|
86
|
+
gapEdges: 'before',
|
|
87
|
+
container: {
|
|
88
|
+
// Raw is rebuilt from metadata alone, so it is exempt from the strip byte-check
|
|
89
|
+
// and guarded by the reparse + determinism probes instead.
|
|
90
|
+
contract: 'opaque',
|
|
91
|
+
rebuildRaw: rebuildMermaidRaw
|
|
92
|
+
},
|
|
93
|
+
// The char-based default would seed a rendered diagram at ~one line; the measured
|
|
94
|
+
// height supersedes this on mount.
|
|
95
|
+
estimateHeight: () => 320,
|
|
96
|
+
keymap: [{ chord: 'Mod+M', command: focusCommand }],
|
|
97
|
+
conformanceFixture: '```mermaid\ngraph TD\n```\n',
|
|
98
|
+
closure: {
|
|
99
|
+
roundTrip: {
|
|
100
|
+
mode: 'implemented',
|
|
101
|
+
via: 'container contract=opaque — rebuildMermaidRaw from metadata'
|
|
102
|
+
},
|
|
103
|
+
focus: {
|
|
104
|
+
mode: 'implemented',
|
|
105
|
+
via: 'blockFocus=whole-block — focus-then-delete; the component supplies the focus surface'
|
|
106
|
+
},
|
|
107
|
+
mergeBackspace: {
|
|
108
|
+
mode: 'implemented',
|
|
109
|
+
via: 'blockFocus=whole-block — caret-adjacent Backspace focuses, a second press deletes'
|
|
110
|
+
},
|
|
111
|
+
selectionPaint: { mode: 'implemented', via: 'whole-block cover rect via the container shim' },
|
|
112
|
+
searchPaint: {
|
|
113
|
+
mode: 'implemented',
|
|
114
|
+
via: 'raw scans as a leaf, painted via the container shim measurePartialRects; replace reparses the substituted bytes and applies when the kind survives'
|
|
115
|
+
},
|
|
116
|
+
reorder: {
|
|
117
|
+
mode: 'implemented',
|
|
118
|
+
via: 'Alt+ArrowUp/Down whole-block reorder (nudgeReorderUnit)'
|
|
119
|
+
},
|
|
120
|
+
undo: {
|
|
121
|
+
mode: 'implemented',
|
|
122
|
+
via: 'updateOwnMetadata — a code edit commits as one undoable metadataUpdate'
|
|
123
|
+
},
|
|
124
|
+
clipboard: {
|
|
125
|
+
mode: 'implemented',
|
|
126
|
+
via: 'focused-block Mod+C/Mod+X (handleWholeBlockKeys); a cross-block range carries the unit whole, per the kit byte-slice check'
|
|
127
|
+
},
|
|
128
|
+
simOracle: {
|
|
129
|
+
mode: 'implemented',
|
|
130
|
+
via: 'mermaid decoration/selection overlay e2e under the [invariant:] watcher'
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
registerBlockOpener(mermaid, {
|
|
135
|
+
// `fencedCode` accepts every fence, ```mermaid included, so this must price ahead
|
|
136
|
+
// of that superset matcher rather than slot into a gap between built-ins.
|
|
137
|
+
priority: OPENER_PRIORITIES.fencedCode - 5,
|
|
138
|
+
interruptsParagraph: (line) => matchMermaidFence(line) !== null,
|
|
139
|
+
tryOpen(ctx) {
|
|
140
|
+
const fence = matchMermaidFence(ctx.line.text);
|
|
141
|
+
if (!fence)
|
|
142
|
+
return null;
|
|
143
|
+
let closeIdx = -1;
|
|
144
|
+
for (let i = ctx.index + 1; i < ctx.end; i++) {
|
|
145
|
+
if (matchFenceClose(ctx.lines[i].text, fence.marker, fence.length)) {
|
|
146
|
+
closeIdx = i;
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
// Unterminated consumes to end of input, like the built-in fence.
|
|
151
|
+
const codeEnd = closeIdx === -1 ? ctx.end : closeIdx;
|
|
152
|
+
const code = ctx.lines
|
|
153
|
+
.slice(ctx.index + 1, codeEnd)
|
|
154
|
+
.map((l) => l.raw)
|
|
155
|
+
.join('');
|
|
156
|
+
const node = {
|
|
157
|
+
kind: mermaid,
|
|
158
|
+
leadingTrivia: ctx.leadingTrivia,
|
|
159
|
+
raw: '',
|
|
160
|
+
children: []
|
|
161
|
+
};
|
|
162
|
+
setPluginMetadata(node, {
|
|
163
|
+
code,
|
|
164
|
+
openerIndent: fence.indent,
|
|
165
|
+
fenceChar: fence.marker,
|
|
166
|
+
fenceLength: fence.length,
|
|
167
|
+
infoRaw: fence.infoRaw,
|
|
168
|
+
openerLineEnding: ctx.line.lineEnding,
|
|
169
|
+
closerRaw: closeIdx === -1 ? '' : ctx.lines[closeIdx].raw
|
|
170
|
+
});
|
|
171
|
+
// Raw comes from the rebuild, so opener and rebuild agree by construction.
|
|
172
|
+
rebuildMermaidRaw(node);
|
|
173
|
+
return { node, consumed: (closeIdx === -1 ? ctx.end : closeIdx + 1) - ctx.index };
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The renderer-adapter seam: this module holds the injected renderer slot and the
|
|
3
|
+
* memo, never the engine, which is confined to the `/renderer` subpath so it never
|
|
4
|
+
* rides the core bundle. The engine travels by module because `MermaidBlock` mounts
|
|
5
|
+
* with standard block props. No default: absent a renderer the code renders statically.
|
|
6
|
+
*/
|
|
7
|
+
/** What the editor knows at render time that the diagram text does not carry. */
|
|
8
|
+
export interface MermaidRenderContext {
|
|
9
|
+
/** The engine paints colors into the SVG, so a stylesheet cannot retheme a drawn
|
|
10
|
+
* diagram: the renderer has to draw for the theme. */
|
|
11
|
+
theme: string;
|
|
12
|
+
}
|
|
13
|
+
/** Third parameter, so an existing `(code, id) => …` renderer stays assignable. */
|
|
14
|
+
export type MermaidRenderer = (code: string, id: string, context: MermaidRenderContext) => Promise<string>;
|
|
15
|
+
export interface MermaidRenderResult {
|
|
16
|
+
svg?: string;
|
|
17
|
+
error?: string;
|
|
18
|
+
}
|
|
19
|
+
/** Exported so the eviction test derives its churn count from the real bound. */
|
|
20
|
+
export declare const MERMAID_MEMO_CAP = 256;
|
|
21
|
+
export declare function setMermaidRenderer(renderer: MermaidRenderer | null): void;
|
|
22
|
+
export declare function hasMermaidRenderer(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Theme belongs in the memo key rather than in a cache reset, so flipping back is a hit; an
|
|
25
|
+
* SVG string needs no per-caller clone. A parse failure resolves to an `error` and caches
|
|
26
|
+
* like a success. `theme` is required, so a caller cannot forget it and still compile.
|
|
27
|
+
*/
|
|
28
|
+
export declare function renderMermaid(code: string, theme: string): Promise<MermaidRenderResult>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The renderer-adapter seam: this module holds the injected renderer slot and the
|
|
3
|
+
* memo, never the engine, which is confined to the `/renderer` subpath so it never
|
|
4
|
+
* rides the core bundle. The engine travels by module because `MermaidBlock` mounts
|
|
5
|
+
* with standard block props. No default: absent a renderer the code renders statically.
|
|
6
|
+
*/
|
|
7
|
+
import { createBoundedMemo } from '../../plugin';
|
|
8
|
+
/** Exported so the eviction test derives its churn count from the real bound. */
|
|
9
|
+
export const MERMAID_MEMO_CAP = 256;
|
|
10
|
+
const newMemo = () => createBoundedMemo({ cap: MERMAID_MEMO_CAP });
|
|
11
|
+
let activeRenderer = null;
|
|
12
|
+
// The primitive owns no reset, so re-instantiation is how a renderer swap clears it.
|
|
13
|
+
let memo = newMemo();
|
|
14
|
+
let renderSeq = 0;
|
|
15
|
+
export function setMermaidRenderer(renderer) {
|
|
16
|
+
activeRenderer = renderer;
|
|
17
|
+
memo = newMemo();
|
|
18
|
+
}
|
|
19
|
+
export function hasMermaidRenderer() {
|
|
20
|
+
return activeRenderer !== null;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Theme belongs in the memo key rather than in a cache reset, so flipping back is a hit; an
|
|
24
|
+
* SVG string needs no per-caller clone. A parse failure resolves to an `error` and caches
|
|
25
|
+
* like a success. `theme` is required, so a caller cannot forget it and still compile.
|
|
26
|
+
*/
|
|
27
|
+
export function renderMermaid(code, theme) {
|
|
28
|
+
// NUL-joined so no (theme, code) pair can concatenate into another's key.
|
|
29
|
+
return memo(`${theme}\0${code}`, () => {
|
|
30
|
+
const renderer = activeRenderer;
|
|
31
|
+
return renderer
|
|
32
|
+
? renderer(code, `aragonite-mermaid-${renderSeq++}`, { theme }).then((svg) => ({ svg }), (reason) => ({ error: reason instanceof Error ? reason.message : String(reason) }))
|
|
33
|
+
: Promise.resolve({ error: 'renderer not configured' });
|
|
34
|
+
});
|
|
35
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The renderer is injected because the engine is the consumer's dependency; absent
|
|
3
|
+
* one the block renders its code statically. The plugin unit installs this setup once
|
|
4
|
+
* per process, so it runs unguarded.
|
|
5
|
+
*/
|
|
6
|
+
import { type EditorPlugin } from '../../plugin';
|
|
7
|
+
import { type MermaidRenderer } from './mermaid-renderer';
|
|
8
|
+
export declare function mermaidPlugin(options?: {
|
|
9
|
+
renderer?: MermaidRenderer;
|
|
10
|
+
}): EditorPlugin;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The renderer is injected because the engine is the consumer's dependency; absent
|
|
3
|
+
* one the block renders its code statically. The plugin unit installs this setup once
|
|
4
|
+
* per process, so it runs unguarded.
|
|
5
|
+
*/
|
|
6
|
+
import { definePluginBlock } from '../../plugin';
|
|
7
|
+
import { registerMermaidKind, MERMAID } from './mermaid-kind';
|
|
8
|
+
import { setMermaidRenderer } from './mermaid-renderer';
|
|
9
|
+
import MermaidBlock from './MermaidBlock.svelte';
|
|
10
|
+
export function mermaidPlugin(options) {
|
|
11
|
+
return definePluginBlock({
|
|
12
|
+
name: 'mermaid',
|
|
13
|
+
kind: MERMAID,
|
|
14
|
+
component: MermaidBlock,
|
|
15
|
+
register() {
|
|
16
|
+
setMermaidRenderer(options?.renderer ?? null);
|
|
17
|
+
registerMermaidKind();
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The engine adapter behind the `@voithos-labs/aragonite/plugins/mermaid/renderer` subpath, the
|
|
3
|
+
* consumer half of the injection seam. The dynamic import keeps the engine off module
|
|
4
|
+
* eval, so nothing touches `document` until a diagram actually renders.
|
|
5
|
+
*/
|
|
6
|
+
import type { MermaidRenderer } from './mermaid-renderer';
|
|
7
|
+
/**
|
|
8
|
+
* Chained, not concurrent: the site config is process-global, so two renders straddling a
|
|
9
|
+
* theme flip would interleave and one diagram would come back half-themed.
|
|
10
|
+
*/
|
|
11
|
+
export declare const mermaidRenderer: MermaidRenderer;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The engine adapter behind the `@voithos-labs/aragonite/plugins/mermaid/renderer` subpath, the
|
|
3
|
+
* consumer half of the injection seam. The dynamic import keeps the engine off module
|
|
4
|
+
* eval, so nothing touches `document` until a diagram actually renders.
|
|
5
|
+
*/
|
|
6
|
+
/** Respread on every re-initialize, because mermaid's `initialize` replaces the site
|
|
7
|
+
* config rather than patching it. */
|
|
8
|
+
const BASE_CONFIG = {
|
|
9
|
+
startOnLoad: false,
|
|
10
|
+
securityLevel: 'strict',
|
|
11
|
+
// A parse failure must reject the promise so the plugin renders the legible error,
|
|
12
|
+
// rather than inject mermaid's own error SVG into the DOM.
|
|
13
|
+
suppressErrorRendering: true
|
|
14
|
+
};
|
|
15
|
+
const MERMAID_THEMES = new Set(['default', 'base', 'dark', 'forest', 'neutral']);
|
|
16
|
+
/**
|
|
17
|
+
* Mermaid's own names pass through, so a consumer can name its editor theme `'forest'` and
|
|
18
|
+
* get it; anything else falls to mermaid's light palette. Wrapping this injected renderer to
|
|
19
|
+
* rewrite `context.theme` is how a custom theme maps.
|
|
20
|
+
*/
|
|
21
|
+
function toMermaidTheme(editorTheme) {
|
|
22
|
+
return (MERMAID_THEMES.has(editorTheme) ? editorTheme : 'default');
|
|
23
|
+
}
|
|
24
|
+
let engine = null;
|
|
25
|
+
let configuredTheme = null;
|
|
26
|
+
let queue = Promise.resolve();
|
|
27
|
+
function loadMermaid() {
|
|
28
|
+
if (!engine)
|
|
29
|
+
engine = import('mermaid').then(({ default: mermaid }) => mermaid);
|
|
30
|
+
return engine;
|
|
31
|
+
}
|
|
32
|
+
async function renderThemed(code, id, theme) {
|
|
33
|
+
const mermaid = await loadMermaid();
|
|
34
|
+
// `render(id, text)` takes no config argument, so re-initializing is the only way a theme
|
|
35
|
+
// reaches a render without prepending `%%{init}%%`, which front matter forbids.
|
|
36
|
+
if (theme !== configuredTheme) {
|
|
37
|
+
mermaid.initialize({ ...BASE_CONFIG, theme });
|
|
38
|
+
configuredTheme = theme;
|
|
39
|
+
}
|
|
40
|
+
const { svg } = await mermaid.render(id, code);
|
|
41
|
+
return svg;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Chained, not concurrent: the site config is process-global, so two renders straddling a
|
|
45
|
+
* theme flip would interleave and one diagram would come back half-themed.
|
|
46
|
+
*/
|
|
47
|
+
export const mermaidRenderer = (code, id, context) => {
|
|
48
|
+
const theme = toMermaidTheme(context?.theme ?? 'dark');
|
|
49
|
+
const svg = queue.then(() => renderThemed(code, id, theme));
|
|
50
|
+
// The chain must survive a rejection, or one bad diagram strands every later render.
|
|
51
|
+
queue = svg.then(() => { }, () => { });
|
|
52
|
+
return svg;
|
|
53
|
+
};
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
<!-- ParrotBlock.svelte -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
import { createEditableLeaf, type NodeView } from '../../plugin';
|
|
4
|
+
|
|
5
|
+
let { node, index, myPath = [] }: { node: NodeView; index: number; myPath?: number[] } = $props();
|
|
6
|
+
let sourceEl: HTMLDivElement | undefined = $state();
|
|
7
|
+
let revealed = $state(false);
|
|
8
|
+
|
|
9
|
+
const leaf = createEditableLeaf({
|
|
10
|
+
getNode: () => node,
|
|
11
|
+
getIndex: () => index,
|
|
12
|
+
getPath: () => myPath,
|
|
13
|
+
getEl: () => sourceEl ?? null,
|
|
14
|
+
mode: 'render-primary',
|
|
15
|
+
singleLine: true,
|
|
16
|
+
isRevealed: () => revealed,
|
|
17
|
+
setRevealed: (next) => (revealed = next)
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
// The canonical ten, via terminal-parrot (MIT).
|
|
21
|
+
const FRAMES = [
|
|
22
|
+
String.raw`
|
|
23
|
+
.cccc;;cc;';c.
|
|
24
|
+
.,:dkdc:;;:c:,:d:.
|
|
25
|
+
.loc'.,cc::c:::,..;:.
|
|
26
|
+
.cl;....;dkdccc::,...c;
|
|
27
|
+
.c:,';:'..ckc',;::;....;c.
|
|
28
|
+
.c:'.,dkkoc:ok:;llllc,,c,';:.
|
|
29
|
+
.;c,';okkkkkkkk:;lllll,:kd;.;:,.
|
|
30
|
+
co..:kkkkkkkkkk:;llllc':kkc..oNc
|
|
31
|
+
.cl;.,oxkkkkkkkkkc,:cll;,okkc'.cO;
|
|
32
|
+
;k:..ckkkkkkkkkkkl..,;,.;xkko:',l'
|
|
33
|
+
.,...';dkkkkkkkkkkd;.....ckkkl'.cO;
|
|
34
|
+
.,,:,.;oo:ckkkkkkkkkkkdoc;;cdkkkc..cd,
|
|
35
|
+
.cclo;,ccdkkl;llccdkkkkkkkkkkkkkkkd,.c;
|
|
36
|
+
.lol:;;okkkkkxooc::coodkkkkkkkkkkkko'.oc
|
|
37
|
+
.c:'..lkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkd,.oc
|
|
38
|
+
.lo;,:cdkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkd,.c;
|
|
39
|
+
,dx:..;lllllllllllllllllllllllllllllllllc'...
|
|
40
|
+
cNO;........................................
|
|
41
|
+
`,
|
|
42
|
+
String.raw`
|
|
43
|
+
.ckx;'........':c.
|
|
44
|
+
.,:c:::::oxxocoo::::,',.
|
|
45
|
+
.odc'..:lkkoolllllo;..;d,
|
|
46
|
+
;c..:o:..;:..',;'.......;.
|
|
47
|
+
,c..:0Xx::o:.,cllc:,'::,.,c.
|
|
48
|
+
;c;lkXKXXXXl.;lllll;lKXOo;':c.
|
|
49
|
+
,dc.oXXXXXXXXl.,lllll;lXXXXx,c0:
|
|
50
|
+
;Oc.oXXXXXXXXo.':ll:;'oXXXXO;,l'
|
|
51
|
+
'l;;kXXXXXXXXd'.'::'..dXXXXO;,l'
|
|
52
|
+
'l;:0XXXXXXXX0x:...,:o0XXXXx,:x,
|
|
53
|
+
'l;;kXXXXXXXXXKkol;oXXXXXXXO;oNc
|
|
54
|
+
,c'..ckk0XXXXXXXXXX00XXXXXXX0:;o:.
|
|
55
|
+
.':;..:do::ooookXXXXXXXXXXXXXXXo..c;
|
|
56
|
+
.',',:co0XX0kkkxxOXXXXXXXXXXXXXXXOc..;l.
|
|
57
|
+
.:;'..oXXXXXXXXXXXXXXXXXXXXXXXXXXXXXko;';:.
|
|
58
|
+
.ldc..:oOXKXXXXXXKXXKXXXXXXXXXXXXXXXXXXXo..oc
|
|
59
|
+
:0o...:dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxo,.:,
|
|
60
|
+
cNo........................................;'
|
|
61
|
+
`,
|
|
62
|
+
String.raw`
|
|
63
|
+
.cc;. ... .;c.
|
|
64
|
+
.,,cc:cc:lxxxl:ccc:;,.
|
|
65
|
+
.lo;...lKKklllookl..cO;
|
|
66
|
+
.cl;.,:'.okl;..''.;,..';:.
|
|
67
|
+
.:o;;dkd,.ll..,cc::,..,'.;:,.
|
|
68
|
+
co..lKKKkokl.':lloo;''ol..;dl.
|
|
69
|
+
.,c;.,xKKKKKKo.':llll;.'oOxl,.cl,.
|
|
70
|
+
cNo..lKKKKKKKo'';llll;;okKKKl..oNc
|
|
71
|
+
cNo..lKKKKKKKko;':c:,'lKKKKKo'.oNc
|
|
72
|
+
cNo..lKKKKKKKKKl.....'dKKKKKxc,l0:
|
|
73
|
+
.c:'.lKKKKKKKKKk;....lKKKKKKo'.oNc
|
|
74
|
+
,:.'oxOKKKKKKKOxxxxOKKKKKKxc,;ol:.
|
|
75
|
+
;c..'':oookKKKKKKKKKKKKKKKKKk:.'clc.
|
|
76
|
+
,xl'.,oxo;'';oxOKKKKKKKKKKKKKKKOxxl:::;,.
|
|
77
|
+
.dOc..lKKKkoooookKKKKKKKKKKKKKKKKKKKxl,;ol.
|
|
78
|
+
cx,';okKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKl..;lc.
|
|
79
|
+
co..:dddddddddddddddddddddddddddddddddl::',::.
|
|
80
|
+
co...........................................
|
|
81
|
+
`,
|
|
82
|
+
String.raw`
|
|
83
|
+
.ccccccc.
|
|
84
|
+
.,,,;cooolccoo;;,,.
|
|
85
|
+
.dOx;..;lllll;..;xOd.
|
|
86
|
+
.cdo;',loOXXXXXkll;';odc.
|
|
87
|
+
,ol:;c,':oko:cccccc,...ckl.
|
|
88
|
+
;c.;kXo..::..;c::'.......oc
|
|
89
|
+
,dc..oXX0kk0o.':lll;..cxxc.,ld,
|
|
90
|
+
kNo.'oXXXXXXo',:lll;..oXXOo;cOd.
|
|
91
|
+
KOc;oOXXXXXXo.':lol;..dXXXXl';xc
|
|
92
|
+
Ol,:k0XXXXXX0c.,clc'.:0XXXXx,.oc
|
|
93
|
+
KOc;dOXXXXXXXl..';'..lXXXXXo..oc
|
|
94
|
+
dNo..oXXXXXXXOx:..'lxOXXXXXk,.:; ..
|
|
95
|
+
cNo..lXXXXXXXXXOolkXXXXXXXXXkl,..;:';.
|
|
96
|
+
.,;'.,dkkkkk0XXXXXXXXXXXXXXXXXOxxl;,;,;l:.
|
|
97
|
+
;c.;:''''':doOXXXXXXXXXXXXXXXXXXOdo;';clc.
|
|
98
|
+
;c.lOdood:'''oXXXXXXXXXXXXXXXXXXXXXk,..;ol.
|
|
99
|
+
';.:xxxxxocccoxxxxxxxxxxxxxxxxxxxxxxl::'.';;.
|
|
100
|
+
';........................................;l'
|
|
101
|
+
`,
|
|
102
|
+
String.raw`
|
|
103
|
+
|
|
104
|
+
.;:;;,.,;;::,.
|
|
105
|
+
.;':;........'co:.
|
|
106
|
+
.clc;'':cllllc::,.':c.
|
|
107
|
+
.lo;;o:coxdllllllc;''::,,.
|
|
108
|
+
.c:'.,cl,.'l:',,;;'......cO;
|
|
109
|
+
do;';oxoc;:l;;llllc'.';;'.,;.
|
|
110
|
+
c..ckkkkkkkd,;llllc'.:kkd;.':c.
|
|
111
|
+
'.,okkkkkkkkc;lllll,.:kkkdl,cO;
|
|
112
|
+
..;xkkkkkkkkc,ccll:,;okkkkk:,co,
|
|
113
|
+
..,dkkkkkkkkc..,;,'ckkkkkkkc;ll.
|
|
114
|
+
..'okkkkkkkko,....'okkkkkkkc,:c.
|
|
115
|
+
c..ckkkkkkkkkdl;,:okkkkkkkkd,.',';.
|
|
116
|
+
d..':lxkkkkkkkkxxkkkkkkkkkkkdoc;,;'..'.,.
|
|
117
|
+
o...'';llllldkkkkkkkkkkkkkkkkkkdll;..'cdo.
|
|
118
|
+
o..,l;'''''';dkkkkkkkkkkkkkkkkkkkkdlc,..;lc.
|
|
119
|
+
o..;lc;;;;;;,,;clllllllllllllllllllllc'..,:c.
|
|
120
|
+
o..........................................;'
|
|
121
|
+
`,
|
|
122
|
+
String.raw`
|
|
123
|
+
|
|
124
|
+
.,,,,,,,,,.
|
|
125
|
+
.ckKxodooxOOdcc.
|
|
126
|
+
.cclooc'....';;cool.
|
|
127
|
+
.loc;;;;clllllc;;;;;:;,.
|
|
128
|
+
.c:'.,okd;;cdo:::::cl,..oc
|
|
129
|
+
.:o;';okkx;';;,';::;'....,:,.
|
|
130
|
+
co..ckkkkkddkc,cclll;.,c:,:o:.
|
|
131
|
+
co..ckkkkkkkk:,cllll;.:kkd,.':c.
|
|
132
|
+
.,:;.,okkkkkkkk:,cclll;.ckkkdl;;o:.
|
|
133
|
+
cNo..ckkkkkkkkko,.;loc,.ckkkkkc..oc
|
|
134
|
+
,dd;.:kkkkkkkkkx;..;:,.'lkkkkko,.:,
|
|
135
|
+
;:.ckkkkkkkkkkc.....;ldkkkkkk:.,'
|
|
136
|
+
,dc..'okkkkkkkkkxoc;;cxkkkkkkkkc..,;,.
|
|
137
|
+
kNo..':lllllldkkkkkkkkkkkkkkkkkdcc,.;l.
|
|
138
|
+
KOc,c;''''''';lldkkkkkkkkkkkkkkkkkc..;lc.
|
|
139
|
+
xx:':;;;;,.,,...,;;cllllllllllllllc;'.;od,
|
|
140
|
+
cNo.....................................oc
|
|
141
|
+
`,
|
|
142
|
+
String.raw`
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
.ccccccc.
|
|
146
|
+
.ccckNKOOOOkdcc.
|
|
147
|
+
.;;cc:ccccccc:,:c::,,.
|
|
148
|
+
.c;:;.,cccllxOOOxlllc,;ol.
|
|
149
|
+
.lkc,coxo:;oOOxooooooo;..:,
|
|
150
|
+
.cdc.,dOOOc..cOd,.',,;'....':l.
|
|
151
|
+
cNx'.lOOOOxlldOc..;lll;.....cO;
|
|
152
|
+
,do;,:dOOOOOOOOOl'':lll;..:d:''c,
|
|
153
|
+
co..lOOOOOOOOOOOl'':lll;.'lOd,.cd.
|
|
154
|
+
co.'dOOOOOOOOOOOo,.;llc,.,dOOc..dc
|
|
155
|
+
co..lOOOOOOOOOOOOc.';:,..cOOOl..oc
|
|
156
|
+
.,:;.'::lxOOOOOOOOOo:'...,:oOOOc.'dc
|
|
157
|
+
;Oc..cl'':lldOOOOOOOOdcclxOOOOx,.cd.
|
|
158
|
+
.:;';lxl''''':lldOOOOOOOOOOOOOOc..oc
|
|
159
|
+
,dl,.'cooc:::,....,::coooooooooooc'.c:
|
|
160
|
+
cNo.................................oc
|
|
161
|
+
`,
|
|
162
|
+
String.raw`
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
.cccccccc.
|
|
167
|
+
.,,,;;cc:cccccc:;;,.
|
|
168
|
+
.cdxo;..,::cccc::,..;l.
|
|
169
|
+
,do:,,:c:coxxdllll:;,';:,.
|
|
170
|
+
.cl;.,oxxc'.,cc,.';;;'...oNc
|
|
171
|
+
;Oc..cxxxc'.,c;..;lll;...cO;
|
|
172
|
+
.;;',:ldxxxdoldxc..;lll:'...'c,
|
|
173
|
+
;c..cxxxxkxxkxxxc'.;lll:'','.cdc.
|
|
174
|
+
.c;.;odxxxxxxxxxxxd;.,cll;.,l:.'dNc
|
|
175
|
+
.:,''ccoxkxxkxxxxxxx:..,:;'.:xc..oNc
|
|
176
|
+
.lc,.'lc':dxxxkxxxxxxxol,...',lx:..dNc
|
|
177
|
+
.:,',coxoc;;ccccoxxxxxxxxo:::oxxo,.cdc.
|
|
178
|
+
.;':;.'oxxxxxc''''';cccoxxxxxxxxxxxc..oc
|
|
179
|
+
,do:'..,:llllll:;;;;;;,..,;:lllllllll;..oc
|
|
180
|
+
cNo.....................................oc
|
|
181
|
+
`,
|
|
182
|
+
String.raw`
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
.ccccc.
|
|
186
|
+
.cc;'coooxkl;.
|
|
187
|
+
.:c:::c:,,,,,;c;;,.'.
|
|
188
|
+
.clc,',:,..:xxocc;'..c;
|
|
189
|
+
.c:,';:ox:..:c,,,,,,...cd,
|
|
190
|
+
.c:'.,oxxxxl::l:.,loll;..;ol.
|
|
191
|
+
;Oc..:xxxxxxxxx:.,llll,....oc
|
|
192
|
+
.,;,',:loxxxxxxxxx:.,llll;.,,.'ld,
|
|
193
|
+
.lo;..:xxxxxxxxxxxx:.'cllc,.:l:'cO;
|
|
194
|
+
.:;...'cxxxxxxxxxxxxoc;,::,..cdl;;l'
|
|
195
|
+
.cl;':,'';oxxxxxxdxxxxxx:....,cooc,cO;
|
|
196
|
+
.,,,::;,lxoc:,,:lxxxxxxxxxxxo:,,;lxxl;'oNc
|
|
197
|
+
.cdxo;':lxxxxxxc'';cccccoxxxxxxxxxxxxo,.;lc.
|
|
198
|
+
.loc'.'lxxxxxxxxocc;''''';ccoxxxxxxxxx:..oc
|
|
199
|
+
olc,..',:cccccccccccc:;;;;;;;;:ccccccccc,.'c,
|
|
200
|
+
Ol;......................................;l'
|
|
201
|
+
`,
|
|
202
|
+
String.raw`
|
|
203
|
+
|
|
204
|
+
,ddoodd,
|
|
205
|
+
.cc' ,ooccoo,'cc.
|
|
206
|
+
.ccldo;...',,...;oxdc.
|
|
207
|
+
.,,:cc;.,'..;lol;;,'..lkl.
|
|
208
|
+
.dOc';:ccl;..;dl,.''.....oc
|
|
209
|
+
.,lc',cdddddlccld;.,;c::'..,cc:.
|
|
210
|
+
cNo..:ddddddddddd;':clll;,c,';xc
|
|
211
|
+
.lo;,clddddddddddd;':clll;:kc..;'
|
|
212
|
+
.,c;..:ddddddddddddd:';clll,;ll,..
|
|
213
|
+
;Oc..';:ldddddddddddl,.,c:;';dd;..
|
|
214
|
+
.''',:c:,'cdddddddddddo:,''..'cdd;..
|
|
215
|
+
.cdc';lddd:';lddddddddddddd;.';lddl,..
|
|
216
|
+
.,;::;,cdddddol;;lllllodddddddlcldddd:.'l;
|
|
217
|
+
.dOc..,lddddddddlcc:;'';cclddddddddddd;;ll.
|
|
218
|
+
.coc,;::ldddddddddddddlcccc:ldddddddddl:,cO;
|
|
219
|
+
,xl::,..,cccccccccccccccccccccccccccccccc:;':xx,
|
|
220
|
+
cNd.........................................;lOc
|
|
221
|
+
`
|
|
222
|
+
];
|
|
223
|
+
// One strip the CSS scrolls a frame at a time. The closing newline is load-bearing: a `pre`
|
|
224
|
+
// drops a trailing blank line, and a strip a row short steps a fraction off every frame.
|
|
225
|
+
const REEL = FRAMES.join('\n') + '\n';
|
|
226
|
+
// The clip window's height, which is why every frame has to be the same number of rows.
|
|
227
|
+
const FRAME_ROWS = FRAMES[0].split('\n').length;
|
|
228
|
+
|
|
229
|
+
const caption = $derived(node.raw.slice('%%parrot'.length).trim());
|
|
230
|
+
|
|
231
|
+
export const editable = true;
|
|
232
|
+
export const focusable = true;
|
|
233
|
+
export const focus = leaf.focus;
|
|
234
|
+
export const getCursorOffset = leaf.getCursorOffset;
|
|
235
|
+
export const parkCaret = leaf.parkCaret;
|
|
236
|
+
export const focusAtColumn = leaf.focusAtColumn;
|
|
237
|
+
export const getSelectedText = leaf.getSelectedText;
|
|
238
|
+
export const setSelection = leaf.setSelection;
|
|
239
|
+
export const measurePartialRects = leaf.measurePartialRects;
|
|
240
|
+
export const runCommand = leaf.runCommand;
|
|
241
|
+
export const insertMarkdown = leaf.insertMarkdown;
|
|
242
|
+
</script>
|
|
243
|
+
|
|
244
|
+
<div
|
|
245
|
+
class="parrot-block"
|
|
246
|
+
{...leaf.renderProps}
|
|
247
|
+
style:--parrot-rows={FRAME_ROWS}
|
|
248
|
+
style:--parrot-frames={FRAMES.length}
|
|
249
|
+
>
|
|
250
|
+
<div class="parrot" aria-hidden="true"><pre class="parrot-reel">{REEL}</pre></div>
|
|
251
|
+
{#if revealed}
|
|
252
|
+
<div
|
|
253
|
+
bind:this={sourceEl}
|
|
254
|
+
{...leaf.surfaceProps}
|
|
255
|
+
class="parrot-source"
|
|
256
|
+
aria-label="Party parrot source"
|
|
257
|
+
></div>
|
|
258
|
+
{:else}
|
|
259
|
+
<div
|
|
260
|
+
class="parrot-caption"
|
|
261
|
+
role="button"
|
|
262
|
+
tabindex="-1"
|
|
263
|
+
aria-label="Party parrot caption (click to edit)"
|
|
264
|
+
>
|
|
265
|
+
{caption}
|
|
266
|
+
</div>
|
|
267
|
+
{/if}
|
|
268
|
+
</div>
|
|
269
|
+
|
|
270
|
+
<style>
|
|
271
|
+
.parrot {
|
|
272
|
+
/* a terminal cell is about twice as tall as it is wide; prose line-height stretches the bird */
|
|
273
|
+
font-size: 1.1em;
|
|
274
|
+
line-height: 1.1;
|
|
275
|
+
letter-spacing: 0.05em;
|
|
276
|
+
/* one frame tall, in the reel's own rows so a step lands on the next frame exactly */
|
|
277
|
+
height: calc(var(--parrot-rows) * 1lh);
|
|
278
|
+
/* wider than a phone column, and the editor root pans if it isn't contained; the bar
|
|
279
|
+
would sit across the bird, which is decoration rather than a pane to scroll */
|
|
280
|
+
overflow-x: auto;
|
|
281
|
+
overflow-y: hidden;
|
|
282
|
+
scrollbar-width: none;
|
|
283
|
+
/* chrome, not content: every frame is in the DOM and none of them belong in a copy */
|
|
284
|
+
user-select: none;
|
|
285
|
+
animation: parrot-hue 0.49s step-end infinite;
|
|
286
|
+
}
|
|
287
|
+
.parrot-reel {
|
|
288
|
+
/* type and rhythm come from the box above, so its `lh` is this reel's row exactly */
|
|
289
|
+
margin: 0;
|
|
290
|
+
animation-name: parrot-reel;
|
|
291
|
+
animation-duration: calc(var(--parrot-frames) * 70ms);
|
|
292
|
+
animation-timing-function: steps(var(--parrot-frames));
|
|
293
|
+
animation-iteration-count: infinite;
|
|
294
|
+
}
|
|
295
|
+
@keyframes parrot-reel {
|
|
296
|
+
to {
|
|
297
|
+
transform: translateY(-100%);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
/* parrot.live's seven, stepped rather than blended so every run of the dance looks the same */
|
|
301
|
+
@keyframes parrot-hue {
|
|
302
|
+
0% {
|
|
303
|
+
color: #ff5f5f;
|
|
304
|
+
}
|
|
305
|
+
14.286% {
|
|
306
|
+
color: #ffc83d;
|
|
307
|
+
}
|
|
308
|
+
28.571% {
|
|
309
|
+
color: #3fd97a;
|
|
310
|
+
}
|
|
311
|
+
42.857% {
|
|
312
|
+
color: #5aa9ff;
|
|
313
|
+
}
|
|
314
|
+
57.143% {
|
|
315
|
+
color: #ff6ad5;
|
|
316
|
+
}
|
|
317
|
+
71.429% {
|
|
318
|
+
color: #3fd3d3;
|
|
319
|
+
}
|
|
320
|
+
85.714% {
|
|
321
|
+
color: var(--color-text-primary, #ffffff);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
@media (prefers-reduced-motion: reduce) {
|
|
325
|
+
.parrot,
|
|
326
|
+
.parrot-reel {
|
|
327
|
+
animation: none;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
.parrot-caption {
|
|
331
|
+
margin: 0.25em 0 0;
|
|
332
|
+
font-weight: 700;
|
|
333
|
+
cursor: text;
|
|
334
|
+
}
|
|
335
|
+
.parrot-source {
|
|
336
|
+
/* the bytes, dimmed the way the editor dims a marker */
|
|
337
|
+
opacity: 0.55;
|
|
338
|
+
font-family: monospace;
|
|
339
|
+
font-size: 0.9em;
|
|
340
|
+
outline: none;
|
|
341
|
+
}
|
|
342
|
+
</style>
|