@voithos-labs/aragonite 0.10.4 → 0.10.7
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/README.md +2 -2
- package/dist/a11y-strings.d.ts +11 -5
- package/dist/a11y-strings.js +60 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +12 -21
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +603 -1126
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +26 -51
- package/dist/components/SelectionOverlay.svelte.d.ts +5 -3
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +72 -87
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +29 -34
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +57 -39
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +141 -203
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +45 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +93 -147
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +8 -6
- package/dist/components/blocks/text/click-snap-guard.js +10 -7
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +150 -181
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -108
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +212 -199
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +12 -35
- package/dist/components/drag-handle.js +22 -68
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -24
- package/dist/components/editor-root-listeners.js +49 -24
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +14 -26
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +30 -35
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +3 -5
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +54 -75
- package/dist/core/inline/inline-widgets.js +54 -62
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +31 -15
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -6
- package/dist/cursor/height-oracle.js +26 -74
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +14 -15
- package/dist/cursor/scrollport.js +7 -13
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -14
- package/dist/cursor/visual-lines.js +45 -46
- package/dist/cursor/widget-edge-snap.d.ts +10 -15
- package/dist/cursor/widget-edge-snap.js +13 -12
- package/dist/cursor/widget-offset.d.ts +110 -104
- package/dist/cursor/widget-offset.js +344 -179
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +30 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +28 -50
- package/dist/editor-actions/focus/focus-landing.d.ts +8 -11
- package/dist/editor-actions/focus/focus-landing.js +15 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +54 -82
- package/dist/editor-actions/plugin/container.js +105 -188
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +88 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +37 -8
- package/dist/plugin.js +100 -77
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +78 -67
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -81
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +51 -45
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +15 -6
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +141 -310
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +78 -84
- package/dist/schema/commands.js +152 -117
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +8 -10
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +63 -80
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +92 -125
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +59 -96
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +51 -134
- package/dist/selection/dead-space-caret.d.ts +19 -30
- package/dist/selection/dead-space-caret.js +70 -88
- package/dist/selection/drag-pointer.d.ts +7 -9
- package/dist/selection/drag-pointer.js +23 -33
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -40
- package/dist/selection/keyboard-extend.js +94 -117
- package/dist/selection/multi-click.d.ts +13 -18
- package/dist/selection/multi-click.js +32 -38
- package/dist/selection/native-bridge.d.ts +29 -39
- package/dist/selection/native-bridge.js +78 -127
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +25 -16
- package/dist/selection/path-lookup.js +101 -18
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +5 -5
- package/dist/selection/pointer-gesture.js +5 -5
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -40
- package/dist/selection/primitives.js +57 -67
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -23
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +34 -16
- package/dist/selection/selection-drop.js +159 -95
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +60 -53
- package/dist/styles/editor.css +201 -143
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +9 -7
- package/dist/tree-operations/paste/replacement-parse.js +12 -10
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +327 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +253 -185
- package/docs/guide/plugin-guide.md +332 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +12 -16
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/cursor/scroll-hold.d.ts +0 -10
- package/dist/cursor/scroll-hold.js +0 -22
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -31
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -78
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Native GitHub alerts as a strip container
|
|
3
|
-
* never rewritten to `:::note`. The marker lives only in the container's raw
|
|
4
|
-
* metadata, so `strip(raw)` equals the serialized children.
|
|
5
|
-
*
|
|
6
|
-
* unambiguous per kind (the ATX/setext heading precedent).
|
|
2
|
+
* Native GitHub alerts as a strip container shaped like a blockquote: the source bytes are
|
|
3
|
+
* kept, never rewritten to `:::note`. The marker lives only in the container's raw and
|
|
4
|
+
* metadata, so `strip(raw)` equals the serialized children. Its own kind rather than a
|
|
5
|
+
* variant of the directive admonition, so kind stability and rebuildRaw stay unambiguous.
|
|
7
6
|
*/
|
|
8
|
-
import { OPENER_PRIORITIES, blockquoteExtent, containerClosure, declarePluginKind, declaredPluginKind, defineBlockComponent, getPluginMetadata, parseContainerBody, registerBlockComponent, registerBlockKind, registerBlockOpener, serializeChildren, setPluginMetadata } from '../../plugin';
|
|
7
|
+
import { OPENER_PRIORITIES, blockquoteExtent, containerClosure, declarePluginKind, declaredPluginKind, defineBlockComponent, displayLines, firstLineEnding, getPluginMetadata, joinDisplayLines, ownTrailingLineEnding, parseContainerBody, registerBlockComponent, registerBlockKind, registerBlockOpener, serializeChildren, setPluginMetadata } from '../../plugin';
|
|
9
8
|
import { matchAlertMarker, stripQuoteMarker } from './gh-alert';
|
|
10
9
|
import { GITHUB_ALERT } from './kinds';
|
|
11
10
|
import AdmonitionBlock from './AdmonitionBlock.svelte';
|
|
12
|
-
/** The `> [!TYPE]`
|
|
13
|
-
* rather than
|
|
11
|
+
/** The `> [!TYPE]` line is the alert's own marker, so a blank line against it separates
|
|
12
|
+
* rather than becoming a block of its own; nothing closes the alert below. */
|
|
14
13
|
const BODY_WRAP = { afterOpenerLine: true };
|
|
15
14
|
function tryOpen(ctx) {
|
|
16
15
|
const alertType = matchAlertMarker(ctx.line.text);
|
|
17
16
|
if (!alertType)
|
|
18
17
|
return null;
|
|
19
|
-
// The built-in extent scan, not the marker regex,
|
|
20
|
-
//
|
|
21
|
-
|
|
22
|
-
const { raw, nextIndex } = blockquoteExtent(ctx.lines, ctx.index, ctx.end);
|
|
18
|
+
// The built-in extent scan, not the marker regex, decides whether this line opens a
|
|
19
|
+
// blockquote; backing out on zero lines keeps a no-progress return out of the parse loop.
|
|
20
|
+
const { raw, nextIndex } = blockquoteExtent(ctx.lines, ctx.index, ctx.end, ctx.grammar);
|
|
23
21
|
const consumed = nextIndex - ctx.index;
|
|
24
22
|
if (consumed <= 0)
|
|
25
23
|
return null;
|
|
26
24
|
// A fresh parse entry, so the body's own line 0 must not read as the document top.
|
|
27
25
|
const body = parseContainerBody(stripBody(ctx.lines, ctx.index + 1, nextIndex), BODY_WRAP, {
|
|
28
|
-
scope: 'fragment'
|
|
26
|
+
scope: 'fragment',
|
|
27
|
+
grammar: ctx.grammar
|
|
29
28
|
});
|
|
30
29
|
const node = {
|
|
31
30
|
kind: declaredPluginKind(GITHUB_ALERT),
|
|
@@ -44,48 +43,40 @@ function stripBody(lines, start, end) {
|
|
|
44
43
|
out += stripQuoteMarker(lines[i].text) + lines[i].lineEnding;
|
|
45
44
|
return out;
|
|
46
45
|
}
|
|
47
|
-
/**
|
|
48
|
-
* the marker's own ending is read off the current raw. */
|
|
46
|
+
/** Every body line keeps its own ending; the marker line keeps the one the current raw gives it. */
|
|
49
47
|
export function rebuildGithubAlertRaw(node) {
|
|
50
48
|
const alertType = getPluginMetadata(node)?.alertType ?? 'NOTE';
|
|
51
49
|
const marker = `> [!${alertType}]`;
|
|
52
50
|
const body = (node.innerPrefix ?? '') + serializeChildren(node.children ?? []) + (node.innerSuffix ?? '');
|
|
53
51
|
if (body === '') {
|
|
54
|
-
node.raw =
|
|
52
|
+
node.raw = marker + ownTrailingLineEnding(node.raw);
|
|
55
53
|
return;
|
|
56
54
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
/** Not `core/lines.ts`'s `trailingLineEnding`: on a mixed-ending block that reader would
|
|
60
|
-
* rewrite the marker's CRLF to LF. Rebuilding threads each line's own ending. */
|
|
61
|
-
function firstLineEnding(raw) {
|
|
62
|
-
const nl = raw.indexOf('\n');
|
|
63
|
-
if (nl < 0)
|
|
64
|
-
return '\n';
|
|
65
|
-
return raw[nl - 1] === '\r' ? '\r\n' : '\n';
|
|
55
|
+
const markerEnding = firstLineEnding(node.raw) ?? firstLineEnding(body) ?? '\n';
|
|
56
|
+
node.raw = marker + markerEnding + prefixQuoteLines(body);
|
|
66
57
|
}
|
|
67
58
|
function prefixQuoteLines(body) {
|
|
68
|
-
const lines = body
|
|
69
|
-
return lines
|
|
70
|
-
|
|
71
|
-
if (i === lines.length - 1 && line === '')
|
|
72
|
-
return
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return `> ${line}`;
|
|
76
|
-
})
|
|
77
|
-
.join('\n');
|
|
59
|
+
const lines = displayLines(body);
|
|
60
|
+
return joinDisplayLines(lines.map((line, i) => {
|
|
61
|
+
// The empty line after a final break is no line of its own.
|
|
62
|
+
if (i === lines.length - 1 && line.text === '')
|
|
63
|
+
return line;
|
|
64
|
+
return { ...line, text: line.text === '' ? '>' : `> ${line.text}` };
|
|
65
|
+
}));
|
|
78
66
|
}
|
|
79
67
|
export function registerGithubAlert() {
|
|
80
68
|
const kind = declarePluginKind(GITHUB_ALERT);
|
|
81
69
|
registerBlockOpener(kind, {
|
|
82
|
-
// Below blockquote so the alert form
|
|
83
|
-
//
|
|
70
|
+
// Below blockquote so the alert form matches first, at a priority no other opener
|
|
71
|
+
// uses, so a bundle installing them all keeps every priority unique (G1.10).
|
|
84
72
|
priority: OPENER_PRIORITIES.blockquote - 5,
|
|
85
73
|
tryOpen,
|
|
86
74
|
interruptsParagraph: (t) => matchAlertMarker(t) !== null
|
|
87
75
|
});
|
|
88
76
|
registerBlockKind(kind, {
|
|
77
|
+
label: 'Alert',
|
|
78
|
+
// A note reads as part of the text around it, so it shows no drag handle.
|
|
79
|
+
pageRole: 'prose',
|
|
89
80
|
gapEdges: 'none',
|
|
90
81
|
mergeRole: 'container',
|
|
91
82
|
editable: true,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Two kinds sharing one component: the `:::name` directives, which all resolve to
|
|
2
2
|
// one admonition kind, and native GitHub alerts (`> [!NOTE]`, kind `githubAlert`).
|
|
3
3
|
export { admonitionsPlugin } from './register';
|
|
4
|
-
// convertGithubAlerts
|
|
5
|
-
// document prefer convertGithubAlertsInDocument, which
|
|
4
|
+
// convertGithubAlerts scans plain text and rewrites inside code fences too; for a whole
|
|
5
|
+
// document prefer convertGithubAlertsInDocument, which goes through the parser.
|
|
6
6
|
export { convertGithubAlerts, hasGithubAlert } from './gh-alert';
|
|
7
7
|
export { convertGithubAlertsInDocument } from './convert-document';
|
|
8
8
|
export { ADMONITION_KINDS, GITHUB_ALERT } from './kinds';
|
|
@@ -20,7 +20,7 @@ export interface AdmonitionMetadata {
|
|
|
20
20
|
lineEnding: string;
|
|
21
21
|
}
|
|
22
22
|
/** The marker's type as typed (`NOTE`, `Note`), stored verbatim so `rebuildRaw` re-emits
|
|
23
|
-
* the source casing;
|
|
23
|
+
* the source casing; display code lowercases it through `coerceAdmonitionName`. */
|
|
24
24
|
export interface GithubAlertMetadata {
|
|
25
25
|
alertType: string;
|
|
26
26
|
}
|
|
@@ -2,11 +2,20 @@
|
|
|
2
2
|
* Two block kinds from one setup, so this wires `definePlugin` directly rather than
|
|
3
3
|
* the single-kind `definePluginBlock` sugar.
|
|
4
4
|
*/
|
|
5
|
-
import { definePlugin } from '../../plugin';
|
|
5
|
+
import { definePlugin, registerInsertEntry } from '../../plugin';
|
|
6
6
|
import { registerAdmonitions } from './admonition-kind';
|
|
7
7
|
export function admonitionsPlugin(options) {
|
|
8
8
|
return definePlugin({
|
|
9
9
|
name: 'admonitions',
|
|
10
|
-
setup
|
|
10
|
+
setup() {
|
|
11
|
+
registerAdmonitions(options);
|
|
12
|
+
registerInsertEntry({
|
|
13
|
+
id: 'note',
|
|
14
|
+
label: 'Note',
|
|
15
|
+
icon: 'info',
|
|
16
|
+
keywords: ['note', 'admonition', 'callout'],
|
|
17
|
+
markdown: ':::note\n\n:::\n'
|
|
18
|
+
});
|
|
19
|
+
}
|
|
11
20
|
});
|
|
12
21
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// state, so the window clamp, focus clamp and caret never disagree.
|
|
2
|
+
// The document's collapsed state comes from `reservedChrome.isCollapsed`; reading mode's
|
|
3
|
+
// temporary open state is passed to the factory on top of it, so windowing and focus agree.
|
|
5
4
|
import {
|
|
6
5
|
BlockList,
|
|
7
6
|
createContainerBlock,
|
|
@@ -22,15 +21,15 @@
|
|
|
22
21
|
getIndex: () => index,
|
|
23
22
|
getPath: () => myPath,
|
|
24
23
|
getBoxEl: () => boxEl,
|
|
25
|
-
// The
|
|
26
|
-
// measures its body.
|
|
24
|
+
// The state on screen, so a section opened only in reading mode still mounts
|
|
25
|
+
// and measures its body.
|
|
27
26
|
isCollapsed: () => !open
|
|
28
27
|
});
|
|
29
28
|
|
|
30
29
|
const reading = $derived(getPresentationMode() === 'reading');
|
|
31
30
|
const reader = createReaderDisclosure({ isDocumentOpen: () => documentOpen });
|
|
32
|
-
// Leaving reading mode discards the
|
|
33
|
-
//
|
|
31
|
+
// Leaving reading mode discards the temporary state: with the bytes editable again, a
|
|
32
|
+
// view that disagrees with them would be showing something the document does not say.
|
|
34
33
|
$effect(() => {
|
|
35
34
|
if (!reading) reader.reset();
|
|
36
35
|
});
|
|
@@ -38,16 +37,17 @@
|
|
|
38
37
|
|
|
39
38
|
function commitDisclosure() {
|
|
40
39
|
const isOpen = open;
|
|
41
|
-
// Collapsing unmounts the body
|
|
42
|
-
//
|
|
43
|
-
// so a mouse toggle leaves the caret in the body.
|
|
40
|
+
// Collapsing unmounts the body and orphans a caret inside it, so the commit puts it on the
|
|
41
|
+
// summary; the toggle suppresses mousedown, so a click leaves the caret where it was.
|
|
44
42
|
const pos = isOpen ? (containerApi.getCursorPosition?.() ?? null) : null;
|
|
45
43
|
const caretInBody = pos != null && pos.path[0] >= 1;
|
|
46
|
-
updateOwnMetadata(
|
|
44
|
+
updateOwnMetadata(
|
|
45
|
+
{ open: !isOpen },
|
|
46
|
+
caretInBody ? { caret: { path: [0], offset: 0 } } : undefined
|
|
47
|
+
);
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
// Reading mode gets
|
|
50
|
-
// is the only mode read, and the toggle keeps working for a reader either way.
|
|
50
|
+
// Reading mode gets a handler that cannot write at all, so no toggle there becomes an edit.
|
|
51
51
|
const onToggle = $derived(reading ? reader.toggle : commitDisclosure);
|
|
52
52
|
|
|
53
53
|
export { containerApi };
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
</div>
|
|
68
68
|
|
|
69
69
|
<style>
|
|
70
|
-
/*
|
|
70
|
+
/* Matches the admonition's left border and text column so the two look like a family. */
|
|
71
71
|
.details-block {
|
|
72
72
|
position: relative;
|
|
73
73
|
margin: 0.8em 0;
|
|
@@ -80,11 +80,11 @@
|
|
|
80
80
|
.details-toggle {
|
|
81
81
|
position: absolute;
|
|
82
82
|
left: 0.45em;
|
|
83
|
-
/*
|
|
84
|
-
shrinks the line
|
|
83
|
+
/* Ties the button's em sizes to the editor font; without it the browser's default
|
|
84
|
+
font-size shrinks the line box below and floats the arrow above the summary title. */
|
|
85
85
|
font: inherit;
|
|
86
|
-
/*
|
|
87
|
-
one line-height tall), so
|
|
86
|
+
/* Sits exactly over the summary's first line (the block's padding plus the child's
|
|
87
|
+
2px, one line-height tall), so centring lands the arrow on the title line. */
|
|
88
88
|
top: calc(0.15em + 2px);
|
|
89
89
|
width: 1.1em;
|
|
90
90
|
height: 1.6em;
|
|
@@ -116,8 +116,8 @@
|
|
|
116
116
|
border-radius: var(--radius-ui, 3px);
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
/* The summary
|
|
120
|
-
|
|
119
|
+
/* The summary is styled as a title row by CSS alone; it stays a real block inside
|
|
120
|
+
`.block-list`, so selection and windowing treat it as an ordinary child. */
|
|
121
121
|
.details-block :global(.details-summary) {
|
|
122
122
|
font-weight: 600;
|
|
123
123
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The half of the `<details>` toggle that writes nothing: reading mode
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* block windowed out at the moment of the flip. Scoped to the instance, so it is ephemeral.
|
|
2
|
+
* The half of the `<details>` toggle that writes nothing: in reading mode a user may open a
|
|
3
|
+
* collapsed section without touching bytes, and nothing handed in here can reach a commit.
|
|
4
|
+
* Starts unset rather than copying the document's `open`, so a block that was not mounted
|
|
5
|
+
* when the toggle happened still shows the document's own state. One per component instance.
|
|
7
6
|
*/
|
|
8
7
|
export interface ReaderDisclosure {
|
|
9
|
-
/**
|
|
8
|
+
/** What the user toggled it to, if they toggled it; otherwise the document's own state. */
|
|
10
9
|
readonly open: boolean;
|
|
11
10
|
toggle(): void;
|
|
12
11
|
reset(): void;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The half of the `<details>` toggle that writes nothing: reading mode
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* block windowed out at the moment of the flip. Scoped to the instance, so it is ephemeral.
|
|
2
|
+
* The half of the `<details>` toggle that writes nothing: in reading mode a user may open a
|
|
3
|
+
* collapsed section without touching bytes, and nothing handed in here can reach a commit.
|
|
4
|
+
* Starts unset rather than copying the document's `open`, so a block that was not mounted
|
|
5
|
+
* when the toggle happened still shows the document's own state. One per component instance.
|
|
7
6
|
*/
|
|
8
7
|
export function createReaderDisclosure(deps) {
|
|
9
8
|
let flipped = $state(null);
|
|
@@ -15,8 +14,8 @@ export function createReaderDisclosure(deps) {
|
|
|
15
14
|
flipped = !(flipped ?? deps.isDocumentOpen());
|
|
16
15
|
},
|
|
17
16
|
reset() {
|
|
18
|
-
//
|
|
19
|
-
// on
|
|
17
|
+
// Guarded: writing unconditionally would invalidate everything that reads
|
|
18
|
+
// `open` on every pass of the effect that calls this.
|
|
20
19
|
if (flipped !== null)
|
|
21
20
|
flipped = null;
|
|
22
21
|
}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<details>` collapsible
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* to the built-in htmlBlock.
|
|
2
|
+
* The `<details>` collapsible. Its `<summary>` is a real CST child at index 0, but the tags
|
|
3
|
+
* around it live in the container's own raw, so `strip(raw)` differs from
|
|
4
|
+
* `serialize(children)`: hence `'opaque'`, where raw is authoritative and `checkStaleRaw` is
|
|
5
|
+
* skipped. A `<details …>` written any other way is left to the built-in htmlBlock.
|
|
7
6
|
*/
|
|
8
7
|
import { type CstNode } from '../../plugin';
|
|
9
8
|
export declare const DETAILS = "details";
|
|
10
9
|
export declare const DETAILS_SUMMARY = "details-summary";
|
|
11
10
|
export interface DetailsMetadata {
|
|
12
11
|
open: boolean;
|
|
13
|
-
/** One captured ending
|
|
14
|
-
* uniform endings, so the rebuild reproduces them byte
|
|
12
|
+
/** One captured ending is used for all three tag lines: a well-formed document has
|
|
13
|
+
* uniform endings, so the rebuild reproduces them byte for byte. */
|
|
15
14
|
lineEnding: string;
|
|
16
15
|
/** False for a document-final details with no trailing newline, so the rebuild
|
|
17
16
|
* does not add one. */
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<details>` collapsible
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* to the built-in htmlBlock.
|
|
2
|
+
* The `<details>` collapsible. Its `<summary>` is a real CST child at index 0, but the tags
|
|
3
|
+
* around it live in the container's own raw, so `strip(raw)` differs from
|
|
4
|
+
* `serialize(children)`: hence `'opaque'`, where raw is authoritative and `checkStaleRaw` is
|
|
5
|
+
* skipped. A `<details …>` written any other way is left to the built-in htmlBlock.
|
|
7
6
|
*/
|
|
8
|
-
import { chromeChild, containerClosure, declarePluginKind, declaredPluginKind, registerBlockKind, registerBlockOpener, registerChromeLeaf, setPluginMetadata, getPluginMetadata, parseContainerBody, serializeChildren, trimTrailingLineEnding, matchFenceOpen,
|
|
7
|
+
import { chromeChild, containerClosure, declarePluginKind, declaredPluginKind, registerBlockKind, registerBlockOpener, registerChromeLeaf, setPluginMetadata, getPluginMetadata, parseContainerBody, serializeChildren, trimTrailingLineEnding, matchFenceOpen, findFenceCloser, htmlBlockTagLineMatcher, OPENER_PRIORITIES } from '../../plugin';
|
|
9
8
|
export const DETAILS = 'details';
|
|
10
9
|
export const DETAILS_SUMMARY = 'details-summary';
|
|
11
10
|
const OPEN_LINE = /^<details( open)?>$/;
|
|
@@ -18,46 +17,36 @@ const canonicalTagLine = (text) => OPEN_LINE.test(text) ? 'open' : CLOSE_LINE.te
|
|
|
18
17
|
/** What CommonMark hands to raw-HTML passthrough: a superset of the canonical form,
|
|
19
18
|
* and therefore of what closes the element in a browser. */
|
|
20
19
|
const passthroughTagLine = htmlBlockTagLineMatcher('details');
|
|
21
|
-
/**
|
|
22
|
-
*
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
let fence = null;
|
|
27
|
-
return (text) => {
|
|
20
|
+
/** Each tag line in `[from, end)` with its verdict, in order, until `visit` returns true; a fenced
|
|
21
|
+
* code block's lines are skipped whole, since a `</details>` inside one is content. */
|
|
22
|
+
function visitTagLines(lines, from, end, tagLine, visit) {
|
|
23
|
+
for (let i = from; i < end; i++) {
|
|
24
|
+
const fence = matchFenceOpen(lines[i].text);
|
|
28
25
|
if (fence) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
const opened = matchFenceOpen(text);
|
|
34
|
-
if (opened) {
|
|
35
|
-
fence = { marker: opened.marker, length: opened.length };
|
|
36
|
-
return null;
|
|
26
|
+
const closer = findFenceCloser(lines, i + 1, end, fence);
|
|
27
|
+
i = closer === -1 ? end : closer;
|
|
28
|
+
continue;
|
|
37
29
|
}
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
if (visit(i, tagLine(lines[i].text)))
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
40
33
|
}
|
|
41
34
|
function unpairedTagLines(lines, tagLine, settled) {
|
|
42
|
-
const classify = createTagScanner(tagLine);
|
|
43
35
|
const openIndices = [];
|
|
44
36
|
const unpaired = [];
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
const texts = lines.map((text) => ({ text }));
|
|
38
|
+
visitTagLines(texts, 0, texts.length, tagLine, (i, verdict) => {
|
|
47
39
|
if (settled.has(i))
|
|
48
|
-
|
|
40
|
+
return;
|
|
49
41
|
if (verdict === 'open')
|
|
50
42
|
openIndices.push(i);
|
|
51
43
|
else if (verdict === 'close' && openIndices.pop() === undefined)
|
|
52
44
|
unpaired.push(i);
|
|
53
|
-
}
|
|
45
|
+
});
|
|
54
46
|
return [...unpaired, ...openIndices];
|
|
55
47
|
}
|
|
56
|
-
/**
|
|
57
|
-
*
|
|
58
|
-
* and only the fixpoint leaves neither renderer holding a stray. Terminates because every
|
|
59
|
-
* round escapes a line and escaping never mints a tag.
|
|
60
|
-
*/
|
|
48
|
+
/** Repeats until nothing changes, since this recognizer and a browser disagree on what a tag line
|
|
49
|
+
* is; every round escapes a line and escaping never creates a tag, so it ends. */
|
|
61
50
|
function strayTagLines(lines) {
|
|
62
51
|
const escaped = new Set();
|
|
63
52
|
for (;;) {
|
|
@@ -86,8 +75,8 @@ function strayEscapePoints(raw) {
|
|
|
86
75
|
.sort((a, b) => a - b)
|
|
87
76
|
.map((i) => starts[i] + texts[i].indexOf('<'));
|
|
88
77
|
}
|
|
89
|
-
/** Renders as
|
|
90
|
-
*
|
|
78
|
+
/** Renders as a literal `<` in a paragraph, in an html block's passthrough, and on GitHub
|
|
79
|
+
* alike, while matching no tag line. */
|
|
91
80
|
const ESCAPED_LT = '<';
|
|
92
81
|
function escapeStrayDetailsTags(raw) {
|
|
93
82
|
const points = strayEscapePoints(raw);
|
|
@@ -101,8 +90,8 @@ function escapeStrayDetailsTags(raw) {
|
|
|
101
90
|
}
|
|
102
91
|
return out + raw.slice(cursor);
|
|
103
92
|
}
|
|
104
|
-
/** {@link escapeStrayDetailsTags}
|
|
105
|
-
*
|
|
93
|
+
/** Where {@link escapeStrayDetailsTags} leaves the caret: each escape before it pushes the
|
|
94
|
+
* caret along by the characters the entity adds. */
|
|
106
95
|
function mapStrayEscapeOffset(raw, offset) {
|
|
107
96
|
const grown = ESCAPED_LT.length - 1;
|
|
108
97
|
return strayEscapePoints(raw).reduce((at, point) => (point < offset ? at + grown : at), offset);
|
|
@@ -127,10 +116,13 @@ export function registerDetailsKind() {
|
|
|
127
116
|
const details = declarePluginKind(DETAILS);
|
|
128
117
|
const detailsSummary = declarePluginKind(DETAILS_SUMMARY);
|
|
129
118
|
registerBlockKind(details, {
|
|
119
|
+
label: 'Details',
|
|
120
|
+
dragLabel: 'Details',
|
|
130
121
|
mergeRole: 'container',
|
|
131
122
|
editable: true,
|
|
132
123
|
supportsInline: false,
|
|
133
|
-
//
|
|
124
|
+
// An opaque container has no text at either edge for the caret to step into, so both
|
|
125
|
+
// edges take the gap caret.
|
|
134
126
|
gapEdges: 'both',
|
|
135
127
|
container: {
|
|
136
128
|
contract: 'opaque',
|
|
@@ -141,10 +133,7 @@ export function registerDetailsKind() {
|
|
|
141
133
|
isCollapsed: (node) => !getPluginMetadata(node)?.open,
|
|
142
134
|
expandPatch: () => ({ open: true })
|
|
143
135
|
},
|
|
144
|
-
unwrapRole: {
|
|
145
|
-
firstChildBackspace: 'keep-reserved-chrome',
|
|
146
|
-
middleChildBackspace: 'default-merge'
|
|
147
|
-
},
|
|
136
|
+
unwrapRole: { middleChildBackspace: 'default-merge' },
|
|
148
137
|
bodyWrite: { normalize: escapeStrayDetailsTags, mapOffset: mapStrayEscapeOffset }
|
|
149
138
|
},
|
|
150
139
|
conformanceFixture: '<details>\n<summary>Title</summary>\n\nbody\n\n</details>\n',
|
|
@@ -169,12 +158,12 @@ export function registerDetailsKind() {
|
|
|
169
158
|
}
|
|
170
159
|
})
|
|
171
160
|
});
|
|
172
|
-
registerChromeLeaf(detailsSummary, { blockClass: 'details-summary' });
|
|
161
|
+
registerChromeLeaf(detailsSummary, { label: 'Summary', blockClass: 'details-summary' });
|
|
173
162
|
registerBlockOpener(details, {
|
|
174
|
-
//
|
|
163
|
+
// Just below htmlBlock, which would otherwise take `<details>` as a type-6 block.
|
|
175
164
|
priority: OPENER_PRIORITIES.htmlBlock - 5,
|
|
176
165
|
// Redundant with htmlBlock's type-6 interrupt, which details wins on re-dispatch; kept
|
|
177
|
-
// so
|
|
166
|
+
// so this opener's paragraph behavior does not depend on that priority order.
|
|
178
167
|
interruptsParagraph: (line) => OPEN_LINE.test(line),
|
|
179
168
|
tryOpen(ctx) {
|
|
180
169
|
const openMatch = ctx.line.text.match(OPEN_LINE);
|
|
@@ -189,20 +178,13 @@ export function registerDetailsKind() {
|
|
|
189
178
|
// Depth-counted so nested details recurse via parse rather than closing early.
|
|
190
179
|
let depth = 1;
|
|
191
180
|
let closeIdx = -1;
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
const tag = classify(ctx.lines[i].text);
|
|
195
|
-
if (tag === 'open') {
|
|
181
|
+
visitTagLines(ctx.lines, summaryIdx + 1, ctx.end, canonicalTagLine, (i, tag) => {
|
|
182
|
+
if (tag === 'open')
|
|
196
183
|
depth++;
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
closeIdx = i;
|
|
202
|
-
break;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
184
|
+
else if (tag === 'close' && --depth === 0)
|
|
185
|
+
closeIdx = i;
|
|
186
|
+
return closeIdx !== -1;
|
|
187
|
+
});
|
|
206
188
|
if (closeIdx === -1)
|
|
207
189
|
return null; // unterminated declines to htmlBlock
|
|
208
190
|
const bodyText = ctx.lines
|
|
@@ -210,7 +192,10 @@ export function registerDetailsKind() {
|
|
|
210
192
|
.map((l) => l.raw)
|
|
211
193
|
.join('');
|
|
212
194
|
// A fresh parse entry, so the body's own line 0 must not read as the document top.
|
|
213
|
-
const body = parseContainerBody(bodyText, BODY_WRAP, {
|
|
195
|
+
const body = parseContainerBody(bodyText, BODY_WRAP, {
|
|
196
|
+
scope: 'fragment',
|
|
197
|
+
grammar: ctx.grammar
|
|
198
|
+
});
|
|
214
199
|
const raw = ctx.lines
|
|
215
200
|
.slice(ctx.index, closeIdx + 1)
|
|
216
201
|
.map((l) => l.raw)
|
|
@@ -6,13 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { type InlineNode, type PluginInlineKind } from '../../plugin';
|
|
8
8
|
export declare const EMOJI_KIND = "emoji";
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* The name is sliced only once a closing colon has bounded a non-empty run, so the common
|
|
12
|
-
* decline paths allocate nothing.
|
|
13
|
-
*/
|
|
9
|
+
/** Matches only a shortcode in the table, carrying the glyph on `decoded` as an entity does; the
|
|
10
|
+
* name is sliced only once a closing colon bounds it, so a miss allocates nothing. */
|
|
14
11
|
export declare function recognizeEmoji(raw: string, pos: number, end: number, kind: PluginInlineKind): InlineNode | null;
|
|
15
|
-
/** `user-select: none` keeps the
|
|
16
|
-
* `buildWidget`
|
|
12
|
+
/** `user-select: none` keeps the caret from entering the glyph; set inline because a widget
|
|
13
|
+
* built by `buildWidget` has no scoped stylesheet. */
|
|
17
14
|
export declare function buildEmojiWidget(node: InlineNode): HTMLSpanElement;
|
|
18
15
|
export declare function registerEmoji(): void;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* untouched; the glyph is only what the widget paints. Recognition is gated on
|
|
5
5
|
* registration, so with the plugin absent `:smile:` is ordinary prose.
|
|
6
6
|
*/
|
|
7
|
-
import { INLINE_PRIORITIES, declarePluginInlineKind,
|
|
7
|
+
import { INLINE_PRIORITIES, declarePluginInlineKind, mintWidgetShell, registerInlineSyntax, registerInlineWidgetKind } from '../../plugin';
|
|
8
8
|
import { EMOJI_TABLE } from './emoji-table';
|
|
9
9
|
export const EMOJI_KIND = 'emoji';
|
|
10
10
|
// The gemoji alphabet: uppercase is excluded to match GitHub, and excluding the
|
|
@@ -17,11 +17,8 @@ function isShortcodeChar(code) {
|
|
|
17
17
|
code === 0x2d // -
|
|
18
18
|
);
|
|
19
19
|
}
|
|
20
|
-
/**
|
|
21
|
-
*
|
|
22
|
-
* The name is sliced only once a closing colon has bounded a non-empty run, so the common
|
|
23
|
-
* decline paths allocate nothing.
|
|
24
|
-
*/
|
|
20
|
+
/** Matches only a shortcode in the table, carrying the glyph on `decoded` as an entity does; the
|
|
21
|
+
* name is sliced only once a closing colon bounds it, so a miss allocates nothing. */
|
|
25
22
|
export function recognizeEmoji(raw, pos, end, kind) {
|
|
26
23
|
let i = pos + 1;
|
|
27
24
|
while (i < end && raw.charCodeAt(i) !== 0x3a) {
|
|
@@ -36,8 +33,8 @@ export function recognizeEmoji(raw, pos, end, kind) {
|
|
|
36
33
|
return null;
|
|
37
34
|
return { kind, start: pos, end: i + 1, decoded: glyph };
|
|
38
35
|
}
|
|
39
|
-
/** `user-select: none` keeps the
|
|
40
|
-
* `buildWidget`
|
|
36
|
+
/** `user-select: none` keeps the caret from entering the glyph; set inline because a widget
|
|
37
|
+
* built by `buildWidget` has no scoped stylesheet. */
|
|
41
38
|
export function buildEmojiWidget(node) {
|
|
42
39
|
const shell = mintWidgetShell('md-emoji-widget', node);
|
|
43
40
|
shell.textContent = node.decoded ?? '';
|
|
@@ -45,14 +42,10 @@ export function buildEmojiWidget(node) {
|
|
|
45
42
|
return shell;
|
|
46
43
|
}
|
|
47
44
|
export function registerEmoji() {
|
|
48
|
-
// Keyed on the kind registry, not a module latch, so the platform reset that clears
|
|
49
|
-
// the inline registries also clears this guard.
|
|
50
|
-
if (isInlineKindDeclared(EMOJI_KIND))
|
|
51
|
-
return;
|
|
52
45
|
const kind = declarePluginInlineKind(EMOJI_KIND);
|
|
53
46
|
registerInlineSyntax(':', (raw, pos, end) => recognizeEmoji(raw, pos, end, kind), {
|
|
54
|
-
//
|
|
55
|
-
//
|
|
47
|
+
// Registering `:` twice at the same priority is refused, so the +10 is what lets emoji
|
|
48
|
+
// share the trigger with the directive text handler.
|
|
56
49
|
priority: INLINE_PRIORITIES.plugin + 10
|
|
57
50
|
});
|
|
58
51
|
registerInlineWidgetKind(kind, {
|