@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
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The characters the inline scanner handles itself, one row each: the handler it runs and when
|
|
3
|
+
* the fast bail (`needsScan`, ./index.ts) looks for the character. The fast bail and the plugin
|
|
4
|
+
* registry's reserved triggers (./plugin-syntax.ts) derive from this table, and a test holds the
|
|
5
|
+
* scanner's switch to its rows.
|
|
6
|
+
*/
|
|
7
|
+
import { handleAngle } from './autolinks';
|
|
8
|
+
import { handleBang, handleCloseBracket, handleOpenBracket } from './brackets';
|
|
9
|
+
import { handleBacktick } from './code-spans';
|
|
10
|
+
import { handleDelimiter } from './emphasis';
|
|
11
|
+
import { handleAmpersand, handleBackslash, handleNewline } from './simple-nodes';
|
|
12
|
+
export const BUILTIN_TRIGGERS = new Map([
|
|
13
|
+
['\\', { handler: handleBackslash, scanned: 'always' }],
|
|
14
|
+
['`', { handler: handleBacktick, scanned: 'always' }],
|
|
15
|
+
['&', { handler: handleAmpersand, scanned: 'always' }],
|
|
16
|
+
['\n', { handler: handleNewline, scanned: 'always' }],
|
|
17
|
+
['*', { handler: handleDelimiter, scanned: 'always' }],
|
|
18
|
+
['_', { handler: handleDelimiter, scanned: 'always' }],
|
|
19
|
+
['~', { handler: handleDelimiter, scanned: 'always' }],
|
|
20
|
+
['[', { handler: handleOpenBracket, scanned: 'always' }],
|
|
21
|
+
// `!` and `]` matter to the built-in scan only in a range holding a `[`, so prose such as
|
|
22
|
+
// "Hello!" skips the scan loop.
|
|
23
|
+
['!', { handler: handleBang, scanned: 'when-registered' }],
|
|
24
|
+
[']', { handler: handleCloseBracket, scanned: 'never' }],
|
|
25
|
+
['<', { handler: handleAngle, scanned: 'always' }]
|
|
26
|
+
]);
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { matchCharacterReference } from '../character-refs';
|
|
6
6
|
import { ESCAPABLE_PUNCTUATION } from '../../escapable';
|
|
7
|
+
import { isHighSurrogate, isLowSurrogate } from '../../lines';
|
|
7
8
|
export function processDestination(rawDest) {
|
|
8
9
|
return percentEncodeUri(unescapeSpecString(rawDest));
|
|
9
10
|
}
|
|
@@ -31,8 +32,8 @@ export function unescapeSpecString(s) {
|
|
|
31
32
|
}
|
|
32
33
|
return out;
|
|
33
34
|
}
|
|
34
|
-
//
|
|
35
|
-
//
|
|
35
|
+
// mdurl encode()'s kept set, which commonmark.js normalizes destinations through, so a url
|
|
36
|
+
// here matches the reference byte for byte.
|
|
36
37
|
const URI_SAFE = buildUriSafeTable(";/?:@&=+$,-_.!~*'()#");
|
|
37
38
|
function buildUriSafeTable(kept) {
|
|
38
39
|
const safe = new Array(128).fill(false);
|
|
@@ -64,14 +65,11 @@ export function percentEncodeUri(s) {
|
|
|
64
65
|
out += URI_SAFE[code] ? s[i] : '%' + code.toString(16).toUpperCase().padStart(2, '0');
|
|
65
66
|
continue;
|
|
66
67
|
}
|
|
67
|
-
if (code
|
|
68
|
-
if (code
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
i++;
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
68
|
+
if (isHighSurrogate(code) || isLowSurrogate(code)) {
|
|
69
|
+
if (isHighSurrogate(code) && isLowSurrogate(s.charCodeAt(i + 1))) {
|
|
70
|
+
out += encodeURIComponent(s[i] + s[i + 1]);
|
|
71
|
+
i++;
|
|
72
|
+
continue;
|
|
75
73
|
}
|
|
76
74
|
out += '%EF%BF%BD';
|
|
77
75
|
continue;
|
|
@@ -5,4 +5,5 @@
|
|
|
5
5
|
* an unparsed block degrades to "land on it".
|
|
6
6
|
*/
|
|
7
7
|
import type { NodeView } from '../node-views';
|
|
8
|
-
|
|
8
|
+
import type { GrammarView } from '../../schema/block-openers';
|
|
9
|
+
export declare function isVerticallyTransparentNode(node: NodeView | null | undefined, grammar: GrammarView): boolean;
|
|
@@ -4,34 +4,50 @@
|
|
|
4
4
|
* answers for an off-window leaf with no component. An empty result reads as not-transparent, so
|
|
5
5
|
* an unparsed block degrades to "land on it".
|
|
6
6
|
*/
|
|
7
|
+
import { isBlankText } from '../lines';
|
|
7
8
|
import { getInlineContent } from './inline-cache';
|
|
8
9
|
import { isInlineWidget, isCharacterLikeWidget } from './inline-widgets';
|
|
9
|
-
|
|
10
|
+
import { isGridKind, tryGetBlockKindDescriptor } from '../../schema/block-kind-descriptor';
|
|
11
|
+
export function isVerticallyTransparentNode(node, grammar) {
|
|
10
12
|
if (!node)
|
|
11
13
|
return false;
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
//
|
|
18
|
-
if (
|
|
14
|
+
// An explicit stack: container depth is input-controlled, so recursion could overflow.
|
|
15
|
+
const pending = [node];
|
|
16
|
+
while (pending.length > 0) {
|
|
17
|
+
const current = pending.pop();
|
|
18
|
+
// Every grid cell is a caret stop and draws its images as alt text, so vertical caret
|
|
19
|
+
// movement must stop in an image-only cell rather than pass over it.
|
|
20
|
+
if (isGridKind(current.kind))
|
|
21
|
+
return false;
|
|
22
|
+
if (tryGetBlockKindDescriptor(current.kind)?.renderImagesAsWidgets === false)
|
|
23
|
+
return false;
|
|
24
|
+
if (current.children) {
|
|
25
|
+
// An empty container carries a caret position.
|
|
26
|
+
if (current.children.length === 0)
|
|
27
|
+
return false;
|
|
28
|
+
for (const child of current.children)
|
|
29
|
+
pending.push(child);
|
|
30
|
+
}
|
|
31
|
+
else if (!isTransparentLeaf(current, grammar)) {
|
|
19
32
|
return false;
|
|
20
|
-
|
|
33
|
+
}
|
|
21
34
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
function isTransparentLeaf(node, grammar) {
|
|
38
|
+
// No resolver, since the path-walking callers hold none: a paragraph of only reference-style
|
|
39
|
+
// images reads as opaque, while a direct `` is unaffected.
|
|
40
|
+
const inlines = getInlineContent(node, undefined, '', grammar);
|
|
25
41
|
if (inlines.length === 0)
|
|
26
42
|
return false;
|
|
27
43
|
for (const inline of inlines) {
|
|
28
|
-
if (isInlineWidget(inline, node.raw)) {
|
|
44
|
+
if (isInlineWidget(inline, node.raw, grammar)) {
|
|
29
45
|
// A character-like widget carries a column, so it reads as text.
|
|
30
|
-
if (isCharacterLikeWidget(inline.kind))
|
|
46
|
+
if (isCharacterLikeWidget(inline.kind, grammar))
|
|
31
47
|
return false;
|
|
32
48
|
continue;
|
|
33
49
|
}
|
|
34
|
-
if (inline.kind === 'text' && (inline.text ?? '')
|
|
50
|
+
if (inline.kind === 'text' && isBlankText(inline.text ?? ''))
|
|
35
51
|
continue;
|
|
36
52
|
return false;
|
|
37
53
|
}
|
|
@@ -1,59 +1,50 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* What a marker-hiding mode leaves on screen. `inline-render.ts` decides which bytes become which
|
|
3
|
-
* span; this decides which of those spans the
|
|
4
|
-
* the DOM
|
|
5
|
-
*
|
|
6
|
-
* convention. Context vocabulary: `docs/design/live-mode.md` § 2.
|
|
3
|
+
* span; this file decides which of those spans the user sees, and it is the one place that rule
|
|
4
|
+
* lives: the DOM traversal (`cursor/widget-offset.ts`) reads it too, and a property test
|
|
5
|
+
* (`screen-truth.property.test.ts`) holds the two answers together. Terms: `live-mode.md` § 2.
|
|
7
6
|
*/
|
|
8
7
|
import type { InlineNode } from '../nodes';
|
|
9
8
|
import { type RenderInlineOptions } from '../inline-render';
|
|
10
9
|
import { type PresentationMode } from '../../presentation-mode';
|
|
11
|
-
/** The span families a marker-hiding mode drops. `fence-line`
|
|
12
|
-
* outside this file, and
|
|
10
|
+
/** The span families a marker-hiding mode drops. `fence-line` spans are a block's own fence lines,
|
|
11
|
+
* created outside this file, and are named here because the hiding rule is one rule. */
|
|
13
12
|
export type MarkerFamily = 'marker' | 'fence-line' | 'ref-label';
|
|
14
13
|
/** Every family at once, for a caller reading spans back out of a rendered fragment. */
|
|
15
14
|
export declare const MARKER_FAMILY_SELECTOR: string;
|
|
16
15
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* it belongs to no family.
|
|
16
|
+
* Whether `el` is a container's leading marker prefix (`> `, `- `): the read-only marker span a
|
|
17
|
+
* container draws before its first child's text, which keeps its box in every mode.
|
|
20
18
|
*/
|
|
19
|
+
export declare function isMarkerPrefixSpan(el: Element): boolean;
|
|
20
|
+
/** The family `el` belongs to, or null for anything else. A marker prefix span belongs to none,
|
|
21
|
+
* since no mode hides it. */
|
|
21
22
|
export declare function markerFamilyOf(el: Element): MarkerFamily | null;
|
|
22
|
-
/** Whether the content-empty override
|
|
23
|
-
*
|
|
24
|
-
* hidden, and a container holding only labels has no paint to promise. */
|
|
23
|
+
/** Whether the content-empty override in `styles/editor.css` shows `family`. A reference label
|
|
24
|
+
* is lookup metadata, not a marker the caret types against, so it stays hidden. */
|
|
25
25
|
export declare function familyPaintsAlone(family: MarkerFamily): boolean;
|
|
26
|
-
/** What a container does to the marker spans rendered into it.
|
|
26
|
+
/** What a container does to the marker spans rendered into it. Built only by the two readings
|
|
27
27
|
* below, so a call site states which question it is asking rather than two loose booleans. */
|
|
28
28
|
export interface VisibilityContext {
|
|
29
|
-
/** Whether marker spans drop at all
|
|
29
|
+
/** Whether marker spans drop at all: false in source mode, where every byte is on screen. */
|
|
30
30
|
readonly hidesMarkers: boolean;
|
|
31
|
-
/** Whether the container's
|
|
31
|
+
/** Whether the container's markers stand over no content and therefore stay visible. */
|
|
32
32
|
readonly chromePaints: boolean;
|
|
33
33
|
}
|
|
34
|
-
/**
|
|
35
|
-
*
|
|
36
|
-
* own stamp condition (live-mode.md § 4.1), which reading declines: it takes no keystrokes, so a
|
|
37
|
-
* construct with nothing behind its chrome may paint nothing there. The preview rungs' per-span
|
|
38
|
-
* reveal is DOM state and stays with the walk; this answers for an unrevealed container.
|
|
39
|
-
*/
|
|
34
|
+
/** Reading mode ignores the content-empty condition (live-mode.md § 4.1), since it takes no
|
|
35
|
+
* keystrokes. Answers for an unrevealed container: a preview's per-span reveal is DOM state. */
|
|
40
36
|
export declare function screenVisibility(mode: PresentationMode, container: {
|
|
41
37
|
chromePaints: boolean;
|
|
42
38
|
}): VisibilityContext;
|
|
43
|
-
/**
|
|
44
|
-
*
|
|
45
|
-
* before/after conservation diff needs, since chrome folds the moment content arrives and a diff
|
|
46
|
-
* against the screen would read that fold as bytes lost. Sound only past a
|
|
47
|
-
* {@link paintsOnlyChrome} gate — over chrome the reader IS looking at, this reading calls those
|
|
48
|
-
* bytes unseen and licenses dropping them.
|
|
49
|
-
*/
|
|
39
|
+
/** The content behind every marker family, for a rewrite's before/after comparison. Sound only
|
|
40
|
+
* behind a {@link paintsOnlyChrome} check, or it lets visible markers drop (live-mode.md § 2). */
|
|
50
41
|
export declare const CONTENT_VISIBILITY: VisibilityContext;
|
|
51
|
-
/** Whether a `family` span
|
|
42
|
+
/** Whether a `family` span shows nothing under `ctx`: the one hiding rule, before any preview
|
|
52
43
|
* reveal. */
|
|
53
44
|
export declare function familyHidesText(family: MarkerFamily, ctx: VisibilityContext): boolean;
|
|
54
45
|
/**
|
|
55
|
-
* One stretch of `raw` as the
|
|
56
|
-
* `raw.slice(start, end)`:
|
|
46
|
+
* One stretch of `raw` as the user sees it. `text` is what it shows, which is not always
|
|
47
|
+
* `raw.slice(start, end)`: a widget substitutes its own.
|
|
57
48
|
*/
|
|
58
49
|
export interface VisibleRun {
|
|
59
50
|
start: number;
|
|
@@ -61,21 +52,11 @@ export interface VisibleRun {
|
|
|
61
52
|
text: string;
|
|
62
53
|
visible: boolean;
|
|
63
54
|
}
|
|
64
|
-
/**
|
|
65
|
-
*
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
*/
|
|
71
|
-
export declare function
|
|
72
|
-
/** The text a reader SEES for `nodes` — every run `ctx` leaves on screen, in source order. */
|
|
73
|
-
export declare function renderedText(nodes: readonly InlineNode[], raw: string, ctx: VisibilityContext, opts?: RenderInlineOptions): string;
|
|
74
|
-
/**
|
|
75
|
-
* Whether `nodes` are chrome standing over nothing, and therefore ALL on screen (live-mode.md
|
|
76
|
-
* § 4.1). The inline half of the content-empty stamp, for a seam with no DOM to read the stamp
|
|
77
|
-
* off: a license over bytes the reader never saw has nothing to claim here. A block's OWN chrome
|
|
78
|
-
* (a `## ` prefix, a fence line) sits outside the inline content range, so an empty one answers
|
|
79
|
-
* false and the surfaces that own it are unaffected.
|
|
80
|
-
*/
|
|
81
|
-
export declare function paintsOnlyChrome(nodes: readonly InlineNode[], raw: string, opts?: RenderInlineOptions): boolean;
|
|
55
|
+
/** Read off the rendered DOM, since only the renderer knows which bytes a construct shows
|
|
56
|
+
* (G4.33). Each top-level node renders alone, so a clipped list keeps its offsets. */
|
|
57
|
+
export declare function visibleRuns(nodes: readonly InlineNode[], raw: string, ctx: VisibilityContext, opts: RenderInlineOptions): VisibleRun[];
|
|
58
|
+
/** The text the user sees for `nodes`: every run `ctx` leaves on screen, in source order. */
|
|
59
|
+
export declare function renderedText(nodes: readonly InlineNode[], raw: string, ctx: VisibilityContext, opts: RenderInlineOptions): string;
|
|
60
|
+
/** Whether `nodes` are markers over no content, which stay on screen (live-mode.md § 4.1). A
|
|
61
|
+
* block's own markers (`## `, a fence) sit outside the inline range: an empty block is false. */
|
|
62
|
+
export declare function paintsOnlyChrome(nodes: readonly InlineNode[], raw: string, opts: RenderInlineOptions): boolean;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* What a marker-hiding mode leaves on screen. `inline-render.ts` decides which bytes become which
|
|
3
|
-
* span; this decides which of those spans the
|
|
4
|
-
* the DOM
|
|
5
|
-
*
|
|
6
|
-
* convention. Context vocabulary: `docs/design/live-mode.md` § 2.
|
|
3
|
+
* span; this file decides which of those spans the user sees, and it is the one place that rule
|
|
4
|
+
* lives: the DOM traversal (`cursor/widget-offset.ts`) reads it too, and a property test
|
|
5
|
+
* (`screen-truth.property.test.ts`) holds the two answers together. Terms: `live-mode.md` § 2.
|
|
7
6
|
*/
|
|
8
7
|
import { renderInlineNodes } from '../inline-render';
|
|
9
8
|
import { widgetSourceRange } from './inline-widgets';
|
|
@@ -18,33 +17,31 @@ export const MARKER_FAMILY_SELECTOR = Object.values(FAMILY_CLASS)
|
|
|
18
17
|
.map((cls) => `.${cls}`)
|
|
19
18
|
.join(', ');
|
|
20
19
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* it belongs to no family.
|
|
20
|
+
* Whether `el` is a container's leading marker prefix (`> `, `- `): the read-only marker span a
|
|
21
|
+
* container draws before its first child's text, which keeps its box in every mode.
|
|
24
22
|
*/
|
|
23
|
+
export function isMarkerPrefixSpan(el) {
|
|
24
|
+
return (el.classList.contains(FAMILY_CLASS.marker) && el.getAttribute('contenteditable') === 'false');
|
|
25
|
+
}
|
|
26
|
+
/** The family `el` belongs to, or null for anything else. A marker prefix span belongs to none,
|
|
27
|
+
* since no mode hides it. */
|
|
25
28
|
export function markerFamilyOf(el) {
|
|
26
29
|
const classes = el.classList;
|
|
27
|
-
if (classes.contains(FAMILY_CLASS.marker))
|
|
28
|
-
return el
|
|
29
|
-
}
|
|
30
|
+
if (classes.contains(FAMILY_CLASS.marker))
|
|
31
|
+
return isMarkerPrefixSpan(el) ? null : 'marker';
|
|
30
32
|
if (classes.contains(FAMILY_CLASS['fence-line']))
|
|
31
33
|
return 'fence-line';
|
|
32
34
|
if (classes.contains(FAMILY_CLASS['ref-label']))
|
|
33
35
|
return 'ref-label';
|
|
34
36
|
return null;
|
|
35
37
|
}
|
|
36
|
-
/** Whether the content-empty override
|
|
37
|
-
*
|
|
38
|
-
* hidden, and a container holding only labels has no paint to promise. */
|
|
38
|
+
/** Whether the content-empty override in `styles/editor.css` shows `family`. A reference label
|
|
39
|
+
* is lookup metadata, not a marker the caret types against, so it stays hidden. */
|
|
39
40
|
export function familyPaintsAlone(family) {
|
|
40
41
|
return family !== 'ref-label';
|
|
41
42
|
}
|
|
42
|
-
/**
|
|
43
|
-
*
|
|
44
|
-
* own stamp condition (live-mode.md § 4.1), which reading declines: it takes no keystrokes, so a
|
|
45
|
-
* construct with nothing behind its chrome may paint nothing there. The preview rungs' per-span
|
|
46
|
-
* reveal is DOM state and stays with the walk; this answers for an unrevealed container.
|
|
47
|
-
*/
|
|
43
|
+
/** Reading mode ignores the content-empty condition (live-mode.md § 4.1), since it takes no
|
|
44
|
+
* keystrokes. Answers for an unrevealed container: a preview's per-span reveal is DOM state. */
|
|
48
45
|
export function screenVisibility(mode, container) {
|
|
49
46
|
switch (mode) {
|
|
50
47
|
case 'source':
|
|
@@ -61,58 +58,43 @@ export function screenVisibility(mode, container) {
|
|
|
61
58
|
}
|
|
62
59
|
}
|
|
63
60
|
}
|
|
64
|
-
/**
|
|
65
|
-
*
|
|
66
|
-
* before/after conservation diff needs, since chrome folds the moment content arrives and a diff
|
|
67
|
-
* against the screen would read that fold as bytes lost. Sound only past a
|
|
68
|
-
* {@link paintsOnlyChrome} gate — over chrome the reader IS looking at, this reading calls those
|
|
69
|
-
* bytes unseen and licenses dropping them.
|
|
70
|
-
*/
|
|
61
|
+
/** The content behind every marker family, for a rewrite's before/after comparison. Sound only
|
|
62
|
+
* behind a {@link paintsOnlyChrome} check, or it lets visible markers drop (live-mode.md § 2). */
|
|
71
63
|
export const CONTENT_VISIBILITY = { hidesMarkers: true, chromePaints: false };
|
|
72
|
-
/** A container whose
|
|
64
|
+
/** A container whose markers stand over no content: every family the override shows is visible. */
|
|
73
65
|
const CHROME_STANDS_ALONE = { hidesMarkers: true, chromePaints: true };
|
|
74
|
-
/** Whether a `family` span
|
|
66
|
+
/** Whether a `family` span shows nothing under `ctx`: the one hiding rule, before any preview
|
|
75
67
|
* reveal. */
|
|
76
68
|
export function familyHidesText(family, ctx) {
|
|
77
69
|
return ctx.hidesMarkers && !(ctx.chromePaints && familyPaintsAlone(family));
|
|
78
70
|
}
|
|
79
|
-
/**
|
|
80
|
-
*
|
|
81
|
-
|
|
82
|
-
* answers (G4.33): a caller re-deriving that drifts from what paints, which is the only thing the
|
|
83
|
-
* answer is worth anything as. Top-level nodes render one at a time, so a CLIPPED list (a join
|
|
84
|
-
* seam's surviving side) keeps honest offsets instead of a running count that assumes contiguity.
|
|
85
|
-
*/
|
|
86
|
-
export function visibleRuns(nodes, raw, ctx, opts = {}) {
|
|
71
|
+
/** Read off the rendered DOM, since only the renderer knows which bytes a construct shows
|
|
72
|
+
* (G4.33). Each top-level node renders alone, so a clipped list keeps its offsets. */
|
|
73
|
+
export function visibleRuns(nodes, raw, ctx, opts) {
|
|
87
74
|
const runs = [];
|
|
88
75
|
for (const node of nodes) {
|
|
89
76
|
collectRuns(renderInlineNodes([node], raw, opts), node.start, ctx, runs);
|
|
90
77
|
}
|
|
91
78
|
return runs;
|
|
92
79
|
}
|
|
93
|
-
/** The text
|
|
94
|
-
export function renderedText(nodes, raw, ctx, opts
|
|
80
|
+
/** The text the user sees for `nodes`: every run `ctx` leaves on screen, in source order. */
|
|
81
|
+
export function renderedText(nodes, raw, ctx, opts) {
|
|
95
82
|
let out = '';
|
|
96
83
|
for (const run of visibleRuns(nodes, raw, ctx, opts))
|
|
97
84
|
if (run.visible)
|
|
98
85
|
out += run.text;
|
|
99
86
|
return out;
|
|
100
87
|
}
|
|
101
|
-
/**
|
|
102
|
-
*
|
|
103
|
-
|
|
104
|
-
* off: a license over bytes the reader never saw has nothing to claim here. A block's OWN chrome
|
|
105
|
-
* (a `## ` prefix, a fence line) sits outside the inline content range, so an empty one answers
|
|
106
|
-
* false and the surfaces that own it are unaffected.
|
|
107
|
-
*/
|
|
108
|
-
export function paintsOnlyChrome(nodes, raw, opts = {}) {
|
|
88
|
+
/** Whether `nodes` are markers over no content, which stay on screen (live-mode.md § 4.1). A
|
|
89
|
+
* block's own markers (`## `, a fence) sit outside the inline range: an empty block is false. */
|
|
90
|
+
export function paintsOnlyChrome(nodes, raw, opts) {
|
|
109
91
|
return (renderedText(nodes, raw, CONTENT_VISIBILITY, opts) === '' &&
|
|
110
92
|
renderedText(nodes, raw, CHROME_STANDS_ALONE, opts) !== '');
|
|
111
93
|
}
|
|
112
94
|
function collectRuns(fragment, start, ctx, out) {
|
|
113
95
|
let at = start;
|
|
114
96
|
const stack = [];
|
|
115
|
-
// Reversed push, so pop order is source order
|
|
97
|
+
// Reversed push, so pop order is source order, which `at` advances along.
|
|
116
98
|
const pushChildren = (parent, hidden) => {
|
|
117
99
|
const children = parent.childNodes;
|
|
118
100
|
for (let i = children.length - 1; i >= 0; i--)
|
|
@@ -130,8 +112,8 @@ function collectRuns(fragment, start, ctx, out) {
|
|
|
130
112
|
if (dom.nodeType !== Node.ELEMENT_NODE)
|
|
131
113
|
continue;
|
|
132
114
|
const el = dom;
|
|
133
|
-
// Only
|
|
134
|
-
//
|
|
115
|
+
// Only a widget's shell carries a source range here, and it is the one element whose text
|
|
116
|
+
// is not its bytes, so the range is both the test and the re-sync.
|
|
135
117
|
const source = widgetSourceRange(el);
|
|
136
118
|
if (source !== null) {
|
|
137
119
|
out.push({ ...source, text: el.textContent ?? '', visible: !hidden });
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The one iterative pre-order over an inline tree
|
|
3
|
-
*
|
|
4
|
-
* block in the unhealable failed-block fallback. Dependency-free, so the scan reaches it without
|
|
5
|
-
* closing a cycle through the inline entry point.
|
|
2
|
+
* The one iterative pre-order over an inline tree: nesting depth is input-controlled, so a
|
|
3
|
+
* recursive walk could overflow the stack.
|
|
6
4
|
*/
|
|
7
5
|
import type { InlineNode } from '../nodes';
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* itself is still yielded, and is asked only when it has any. Yields nodes only: what a reader
|
|
11
|
-
* SEES stays the render path's question (G4.33). Each child list is snapshotted onto the stack
|
|
12
|
-
* when its parent pops, so a consumer that rewrites `children` must finish the walk first.
|
|
13
|
-
*/
|
|
6
|
+
/** `descend` returning false skips a node's children but still yields the node. Finish the walk
|
|
7
|
+
* before rewriting any `children`: a child list is read only after its parent is yielded. */
|
|
14
8
|
export declare function inlineDescendants(nodes: readonly InlineNode[], descend?: (node: InlineNode) => boolean): Generator<InlineNode>;
|
package/dist/core/inline/walk.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The one iterative pre-order over an inline tree
|
|
3
|
-
*
|
|
4
|
-
* block in the unhealable failed-block fallback. Dependency-free, so the scan reaches it without
|
|
5
|
-
* closing a cycle through the inline entry point.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Each node, then its children, in source order. `descend` declines a node's children — the node
|
|
9
|
-
* itself is still yielded, and is asked only when it has any. Yields nodes only: what a reader
|
|
10
|
-
* SEES stays the render path's question (G4.33). Each child list is snapshotted onto the stack
|
|
11
|
-
* when its parent pops, so a consumer that rewrites `children` must finish the walk first.
|
|
2
|
+
* The one iterative pre-order over an inline tree: nesting depth is input-controlled, so a
|
|
3
|
+
* recursive walk could overflow the stack.
|
|
12
4
|
*/
|
|
5
|
+
/** `descend` returning false skips a node's children but still yields the node. Finish the walk
|
|
6
|
+
* before rewriting any `children`: a child list is read only after its parent is yielded. */
|
|
13
7
|
export function* inlineDescendants(nodes, descend) {
|
|
14
8
|
// Reversed push, so pop order is source order.
|
|
15
9
|
const stack = [];
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* DOM renderer for
|
|
3
|
-
* raw.slice.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Which of the spans minted here a mode leaves on screen is `inline/visibility.ts`.
|
|
2
|
+
* DOM renderer for inline node trees. Over a widget-free range the fragment's textContent equals
|
|
3
|
+
* raw.slice. Widgets break that by design, contributing their own text or none and carrying their
|
|
4
|
+
* source bytes on `data-source-*`, so a raw offset is recovered only through the shared DOM
|
|
5
|
+
* traversal (cursor/widget-offset.ts), never by counting textContent (G2.4). Which of the spans
|
|
6
|
+
* built here a mode leaves on screen is `inline/visibility.ts`.
|
|
8
7
|
*/
|
|
9
8
|
import type { InlineNode } from './nodes';
|
|
9
|
+
import type { GrammarView } from '../schema/block-openers';
|
|
10
10
|
export type ImageLoadPolicy = 'auto' | 'placeholder';
|
|
11
11
|
export interface RenderInlineOptions {
|
|
12
12
|
renderImagesAsWidgets?: boolean;
|
|
@@ -21,34 +21,29 @@ export interface RenderInlineOptions {
|
|
|
21
21
|
imageLoadPolicy: ImageLoadPolicy;
|
|
22
22
|
}) => Node;
|
|
23
23
|
/**
|
|
24
|
-
* Mounts a `component`-kind widget in the
|
|
24
|
+
* Mounts a `component`-kind widget in the widget shell wrapper. Injected for the same reason
|
|
25
25
|
* as `buildImageWidget`; absent or null falls the widget back to its raw source.
|
|
26
26
|
*/
|
|
27
27
|
buildPortalWidget?: (node: InlineNode, raw: string) => HTMLElement | null;
|
|
28
|
-
/**
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
* Only for a mode that hides markers
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
* Stamp marker spans with the construct's raw range, so preview-inline's reveal trigger can
|
|
36
|
-
* address them. Attributes only, leaving textContent and the offset walk untouched. Off by
|
|
37
|
-
* default so the DOM stays byte-identical outside preview-inline.
|
|
38
|
-
*/
|
|
28
|
+
/** The editor's grammar: a widget kind whose plugin it leaves out renders as its source. */
|
|
29
|
+
grammar: GrammarView;
|
|
30
|
+
/** The block's content end, where a lone backslash is a pending hard break, drawn as a hidden
|
|
31
|
+
* marker plus two `br` anchors. Only for a mode that hides markers. */
|
|
32
|
+
pendingBreakAt?: number;
|
|
33
|
+
/** Write each construct's raw range onto its marker spans as data attributes, for the
|
|
34
|
+
* preview-inline reveal. Off by default, so the DOM stays byte-identical elsewhere. */
|
|
39
35
|
tagConstructMarkers?: boolean;
|
|
40
36
|
}
|
|
41
|
-
/** The one href
|
|
42
|
-
*
|
|
43
|
-
export declare function resolveHref(opts: RenderInlineOptions, url: string | undefined): string | undefined;
|
|
44
|
-
export declare function renderInlineNodes(nodes: InlineNode[], raw: string, opts
|
|
37
|
+
/** The one href path every DOM sink goes through: a consumer's rewrite, then the scheme allowlist.
|
|
38
|
+
* Undefined means render inert. */
|
|
39
|
+
export declare function resolveHref(opts: Pick<RenderInlineOptions, 'resolveLinkUrl'>, url: string | undefined): string | undefined;
|
|
40
|
+
export declare function renderInlineNodes(nodes: InlineNode[], raw: string, opts: RenderInlineOptions): DocumentFragment;
|
|
41
|
+
/** The first of a pending hard break's two anchors, where the new line starts. */
|
|
42
|
+
export declare const PENDING_BREAK_ANCHOR = "br[data-caret-anchor=\"break\"]";
|
|
45
43
|
export interface OffsetResult {
|
|
46
44
|
node: InlineNode;
|
|
47
45
|
localOffset: number;
|
|
48
46
|
}
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
* matches the last node. Model-layer, touching no DOM: the DOM counterpart is
|
|
52
|
-
* `findDomTextOffsetTarget` in cursor/widget-offset.ts.
|
|
53
|
-
*/
|
|
47
|
+
/** The leaf containing `offset`, preferring the right node at a boundary; `offset === end` matches
|
|
48
|
+
* only the last node. The DOM side is `findDomTextOffsetTarget` in `cursor/widget-offset.ts`. */
|
|
54
49
|
export declare function findNodeAtOffset(nodes: InlineNode[], offset: number): OffsetResult | null;
|