@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,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A keyed container's `childIds` hold one id per child, at every depth: a container whose
|
|
3
|
+
* `children` outgrow its ids hands the keyed each block undefined keys, and the redraw after undo
|
|
4
|
+
* reconciles to something other than the tree. A container that never mounted has no `childIds`
|
|
5
|
+
* yet and passes, unless the caller seeded every container first and asks for `everyKeyed`.
|
|
6
|
+
*/
|
|
7
|
+
export function checkChildIdParity(node, options = {}) {
|
|
8
|
+
const [first] = childIdDrifts(node, options, 1);
|
|
9
|
+
if (!first)
|
|
10
|
+
return null;
|
|
11
|
+
return {
|
|
12
|
+
code: 'child-id-parity',
|
|
13
|
+
message: `${first.trail}: ${first.ids ?? 'no'} child ids for ${first.children} children`,
|
|
14
|
+
detail: { kind: first.kind, children: first.children, ids: first.ids }
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/** Every container under `node` (itself included) whose ids are out of step, in document order. */
|
|
18
|
+
export function childIdDrifts(node, options = {}, limit = Infinity) {
|
|
19
|
+
const drifts = [];
|
|
20
|
+
const everyKeyed = options.everyKeyed ?? false;
|
|
21
|
+
const stack = [
|
|
22
|
+
{ node, path: [], trail: node.kind }
|
|
23
|
+
];
|
|
24
|
+
while (stack.length > 0 && drifts.length < limit) {
|
|
25
|
+
const { node: at, path, trail } = stack.pop();
|
|
26
|
+
if (!at.children)
|
|
27
|
+
continue;
|
|
28
|
+
const ids = at.childIds;
|
|
29
|
+
if (ids === undefined ? everyKeyed : ids.length !== at.children.length) {
|
|
30
|
+
drifts.push({ path, kind: at.kind, children: at.children.length, ids: ids?.length, trail });
|
|
31
|
+
}
|
|
32
|
+
// Reversed push, so the pops come out in document order.
|
|
33
|
+
for (let i = at.children.length - 1; i >= 0; i--) {
|
|
34
|
+
const child = at.children[i];
|
|
35
|
+
stack.push({ node: child, path: [...path, i], trail: `${trail}[${i}] ${child.kind}` });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return drifts;
|
|
39
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* G1.16
|
|
3
|
-
* existing child from the document root. The
|
|
4
|
-
* insert
|
|
5
|
-
*
|
|
2
|
+
* G1.16: every path a commit declares is document-absolute, so each prefix resolves to an
|
|
3
|
+
* existing child from the document root. The last index may be one past the end, because an
|
|
4
|
+
* insert names the position it is about to create. The `DocPath` type checks this at compile
|
|
5
|
+
* time; this is the runtime check for the JavaScript callers types do not bind.
|
|
6
6
|
*/
|
|
7
7
|
import type { Document } from '../core/nodes';
|
|
8
8
|
import type { DocPath } from '../selection/path-math';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* G1.16
|
|
3
|
-
* existing child from the document root. The
|
|
4
|
-
* insert
|
|
5
|
-
*
|
|
2
|
+
* G1.16: every path a commit declares is document-absolute, so each prefix resolves to an
|
|
3
|
+
* existing child from the document root. The last index may be one past the end, because an
|
|
4
|
+
* insert names the position it is about to create. The `DocPath` type checks this at compile
|
|
5
|
+
* time; this is the runtime check for the JavaScript callers types do not bind.
|
|
6
6
|
*/
|
|
7
7
|
export function checkCommitPathAddressable(doc, path, role) {
|
|
8
8
|
let parent = doc;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Says whether a commit is running. The commit steps in `editor-actions` bracket their synchronous
|
|
3
|
+
* body with it, and `reactivity` reads it so decorations never read a half-applied tree. It lives
|
|
4
|
+
* here because both sides import downward, and it ships in production because the deferral it
|
|
5
|
+
* drives is production behavior (G4.61).
|
|
6
6
|
*/
|
|
7
7
|
export declare function beginCommit(): void;
|
|
8
8
|
export declare function endCommit(): void;
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Says whether a commit is running. The commit steps in `editor-actions` bracket their synchronous
|
|
3
|
+
* body with it, and `reactivity` reads it so decorations never read a half-applied tree. It lives
|
|
4
|
+
* here because both sides import downward, and it ships in production because the deferral it
|
|
5
|
+
* drives is production behavior (G4.61).
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
// A depth, not a boolean: a commit started from an `edit` handler must not end the outer one.
|
|
8
|
+
let depth = 0;
|
|
8
9
|
export function beginCommit() {
|
|
9
|
-
|
|
10
|
+
depth++;
|
|
10
11
|
}
|
|
11
12
|
export function endCommit() {
|
|
12
|
-
|
|
13
|
+
depth--;
|
|
13
14
|
}
|
|
14
15
|
export function isCommitInProgress() {
|
|
15
|
-
return
|
|
16
|
+
return depth > 0;
|
|
16
17
|
}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import type { InvariantViolation } from '../assert';
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* HISTORY_KEY. Containers re-provide nested action contexts to descendants but
|
|
5
|
-
* must let history flow from the root; shadowing it would split the undo stack.
|
|
6
|
-
*/
|
|
2
|
+
/** G1.4: a container may not provide `HISTORY_KEY` to its descendants: history reaches nested
|
|
3
|
+
* action contexts from the root, and shadowing the key would split the undo stack. */
|
|
7
4
|
export declare function checkNoContainerHistoryKey(setKeys: symbol[], historyKey: symbol): InvariantViolation | null;
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* HISTORY_KEY. Containers re-provide nested action contexts to descendants but
|
|
4
|
-
* must let history flow from the root; shadowing it would split the undo stack.
|
|
5
|
-
*/
|
|
1
|
+
/** G1.4: a container may not provide `HISTORY_KEY` to its descendants: history reaches nested
|
|
2
|
+
* action contexts from the root, and shadowing the key would split the undo stack. */
|
|
6
3
|
export function checkNoContainerHistoryKey(setKeys, historyKey) {
|
|
7
4
|
if (setKeys.includes(historyKey)) {
|
|
8
5
|
return {
|
|
9
6
|
code: 'container-sets-history-key',
|
|
10
|
-
message: 'container provides HISTORY_KEY to descendants
|
|
7
|
+
message: 'container provides HISTORY_KEY to descendants: undo stack would split'
|
|
11
8
|
};
|
|
12
9
|
}
|
|
13
10
|
return null;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import type { CstNode } from '../core/nodes';
|
|
2
2
|
import { type ContentRange } from '../core/inline';
|
|
3
3
|
import type { InvariantViolation } from '../assert';
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
6
|
-
* Every kind that HAS a range is covered, not just the prose ones: a non-prose kind may declare
|
|
7
|
-
* `getContentRange` (the directive leaf does) and the range is consumed unconditionally.
|
|
8
|
-
* `getRange` is a parameter so a negative test can inject a bad range without touching the registry.
|
|
9
|
-
*/
|
|
4
|
+
/** G1.8: a content range stays inside its raw bytes, for every kind that declares one, since
|
|
5
|
+
* callers use the range unchecked. `getRange` is a parameter so a test can inject a bad range. */
|
|
10
6
|
export declare function checkContentRange(node: CstNode, getRange?: (node: CstNode) => ContentRange): InvariantViolation | null;
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { displayLength } from '../core/lines';
|
|
2
2
|
import { getBlockKindDescriptor } from '../schema/block-kind-descriptor';
|
|
3
3
|
import { getContentRange } from '../core/inline';
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
6
|
-
* Every kind that HAS a range is covered, not just the prose ones: a non-prose kind may declare
|
|
7
|
-
* `getContentRange` (the directive leaf does) and the range is consumed unconditionally.
|
|
8
|
-
* `getRange` is a parameter so a negative test can inject a bad range without touching the registry.
|
|
9
|
-
*/
|
|
4
|
+
/** G1.8: a content range stays inside its raw bytes, for every kind that declares one, since
|
|
5
|
+
* callers use the range unchecked. `getRange` is a parameter so a test can inject a bad range. */
|
|
10
6
|
export function checkContentRange(node, getRange = getContentRange) {
|
|
11
7
|
const descriptor = getBlockKindDescriptor(node.kind);
|
|
12
8
|
if (!descriptor.supportsInline && descriptor.getContentRange === undefined)
|
|
@@ -1,23 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* bracket, the
|
|
2
|
+
* The checks behind the inline transition guards (G1.25 to G1.27): the widget pool's
|
|
3
|
+
* begin/sweep bracket, the source-length rule for a revealed construct, and the window during
|
|
4
|
+
* which an IME composition is open.
|
|
4
5
|
*/
|
|
5
6
|
import type { InvariantViolation } from '../assert';
|
|
6
7
|
export type PoolBracketAction = 'acquire' | 'beginPass' | 'sweep';
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* flags and pass tallies are meaningless and key-only lookup cannot tell byte-identical
|
|
10
|
-
* duplicate widgets apart.
|
|
11
|
-
*/
|
|
8
|
+
/** G1.25: every pool change happens between `beginPass` and `sweep`; outside that bracket a
|
|
9
|
+
* lookup by key alone cannot tell two byte-identical widgets apart. */
|
|
12
10
|
export declare function checkPoolBracket(passOpen: boolean, action: PoolBracketAction): InvariantViolation | null;
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* range; a mismatch shifts every raw offset outside the source, desyncing the offset walk.
|
|
16
|
-
*/
|
|
11
|
+
/** G1.26, the shared editable core's half: a revealed construct's source bytes span exactly
|
|
12
|
+
* `[sourceStart, sourceEnd)`, or every raw offset after the source shifts. */
|
|
17
13
|
export declare function checkRevealSourceLength(sourceLength: number, sourceStart: number, sourceEnd: number): InvariantViolation | null;
|
|
18
|
-
/**
|
|
19
|
-
*
|
|
20
|
-
* pair the events per element, so an unpaired end means a consumer wired `compositionend`
|
|
21
|
-
* without `compositionstart` and every composition keystroke reached the CST mid-IME.
|
|
22
|
-
*/
|
|
14
|
+
/** G1.27: a `compositionend` arrives only inside a composition the element saw start, so an
|
|
15
|
+
* unpaired end means `compositionstart` was never wired and IME keystrokes reached the tree. */
|
|
23
16
|
export declare function checkCompositionEndPaired(composing: boolean): InvariantViolation | null;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* flags and pass tallies are meaningless and key-only lookup cannot tell byte-identical
|
|
4
|
-
* duplicate widgets apart.
|
|
5
|
-
*/
|
|
1
|
+
/** G1.25: every pool change happens between `beginPass` and `sweep`; outside that bracket a
|
|
2
|
+
* lookup by key alone cannot tell two byte-identical widgets apart. */
|
|
6
3
|
export function checkPoolBracket(passOpen, action) {
|
|
7
4
|
if (action === 'beginPass') {
|
|
8
5
|
return passOpen
|
|
9
6
|
? {
|
|
10
7
|
code: 'begin-unswept',
|
|
11
|
-
message: 'beginPass while a bracket is already open
|
|
8
|
+
message: 'beginPass while a bracket is already open: the previous pass was never swept'
|
|
12
9
|
}
|
|
13
10
|
: null;
|
|
14
11
|
}
|
|
@@ -17,17 +14,15 @@ export function checkPoolBracket(passOpen, action) {
|
|
|
17
14
|
return action === 'acquire'
|
|
18
15
|
? {
|
|
19
16
|
code: 'acquire-outside-bracket',
|
|
20
|
-
message: 'acquire outside a beginPass/sweep bracket
|
|
17
|
+
message: 'acquire outside a beginPass/sweep bracket: adoption is only meaningful inside a rebuild pass'
|
|
21
18
|
}
|
|
22
19
|
: {
|
|
23
20
|
code: 'sweep-outside-bracket',
|
|
24
|
-
message: 'sweep without an open bracket
|
|
21
|
+
message: 'sweep without an open bracket, nothing was adopted, so it would destroy every live widget'
|
|
25
22
|
};
|
|
26
23
|
}
|
|
27
|
-
/**
|
|
28
|
-
*
|
|
29
|
-
* range; a mismatch shifts every raw offset outside the source, desyncing the offset walk.
|
|
30
|
-
*/
|
|
24
|
+
/** G1.26, the shared editable core's half: a revealed construct's source bytes span exactly
|
|
25
|
+
* `[sourceStart, sourceEnd)`, or every raw offset after the source shifts. */
|
|
31
26
|
export function checkRevealSourceLength(sourceLength, sourceStart, sourceEnd) {
|
|
32
27
|
if (sourceLength === sourceEnd - sourceStart)
|
|
33
28
|
return null;
|
|
@@ -37,16 +32,13 @@ export function checkRevealSourceLength(sourceLength, sourceStart, sourceEnd) {
|
|
|
37
32
|
detail: { sourceLength, sourceStart, sourceEnd }
|
|
38
33
|
};
|
|
39
34
|
}
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
* pair the events per element, so an unpaired end means a consumer wired `compositionend`
|
|
43
|
-
* without `compositionstart` and every composition keystroke reached the CST mid-IME.
|
|
44
|
-
*/
|
|
35
|
+
/** G1.27: a `compositionend` arrives only inside a composition the element saw start, so an
|
|
36
|
+
* unpaired end means `compositionstart` was never wired and IME keystrokes reached the tree. */
|
|
45
37
|
export function checkCompositionEndPaired(composing) {
|
|
46
38
|
if (composing)
|
|
47
39
|
return null;
|
|
48
40
|
return {
|
|
49
41
|
code: 'end-without-start',
|
|
50
|
-
message: 'compositionend with no open composition
|
|
42
|
+
message: 'compositionend with no open composition: the surface never saw compositionstart'
|
|
51
43
|
};
|
|
52
44
|
}
|
|
@@ -1,36 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Wires the pure predicates to `assertInvariant`, so the predicates stay pure and know nothing
|
|
3
|
+
* about how a violation is reported.
|
|
4
4
|
*/
|
|
5
5
|
import type { CstNode, Document } from '../core/nodes';
|
|
6
|
+
import type { GrammarView } from '../schema/block-openers';
|
|
6
7
|
import type { DocPath } from '../selection/path-math';
|
|
7
8
|
import { type SnapshotEntry } from './snapshot-integrity';
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*/
|
|
13
|
-
export declare function assertCommittedNodes(nodes: CstNode[]): void;
|
|
14
|
-
/**
|
|
15
|
-
* Pre-mutate commit-seam check that both declared coordinates are doc-absolute (G1.16,
|
|
16
|
-
* `commit-paths.ts`). Null skips a coordinate the commit doesn't carry.
|
|
17
|
-
*/
|
|
9
|
+
/** Checks only the nodes a commit touched. Call it after the commit's `rebuildRaw`, so a strip
|
|
10
|
+
* container's raw is that rebuild's output. */
|
|
11
|
+
export declare function assertCommittedNodes(nodes: CstNode[], grammar: GrammarView): void;
|
|
12
|
+
/** Checks, before the commit mutates anything, that both declared paths are document-absolute
|
|
13
|
+
* (G1.16); null skips a path the commit does not carry. */
|
|
18
14
|
export declare function assertCommitPaths(doc: Document, snapshotPath: DocPath | null, eventPath: DocPath | null): void;
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
* have corrupted, so only its digest is re-verified. Deeper entries stay covered by the
|
|
22
|
-
* restore-time check in `editor-actions/commit/history.ts`.
|
|
23
|
-
*/
|
|
15
|
+
/** G1.9, once per commit: only the newest undo entry can have been corrupted by this commit, so
|
|
16
|
+
* only its digest is re-checked; older entries are checked when they are restored. */
|
|
24
17
|
export declare function assertUndoTopIntegrity(entry: SnapshotEntry | undefined): void;
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
18
|
+
/** G1.41, after every structural commit publishes: `wasOpen` is `endsOpen` read before it mutated. */
|
|
19
|
+
export declare function assertLastLineKept(doc: Document, wasOpen: boolean): void;
|
|
20
|
+
/** G1.44, after every structural commit publishes: `touched` is what the commit wrote. */
|
|
21
|
+
export declare function assertKeepsABlock(doc: Document, touched: CstNode[]): void;
|
|
22
|
+
/** G1.36, the reading half, run wherever ids are written to state: an id array that is too short
|
|
23
|
+
* reaches Svelte's keyed each as missing keys. */
|
|
30
24
|
export declare function assertIdsInLockstep(seam: string, idCount: number, childCount: number): void;
|
|
31
|
-
/**
|
|
32
|
-
*
|
|
33
|
-
* the whole world, later mounts validate only registrations since the previous flush. The
|
|
34
|
-
* inline-policy check sits outside it — mount-only, and table-wide on every mount (G1.31).
|
|
35
|
-
*/
|
|
25
|
+
/** The registry-wide checks, run on mount: the full sweep the first time, then only the
|
|
26
|
+
* registrations added since. The inline-policy check runs on every mount (G1.31). */
|
|
36
27
|
export declare function runStartupInvariantChecks(): void;
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Wires the pure predicates to `assertInvariant`, so the predicates stay pure and know nothing
|
|
3
|
+
* about how a violation is reported.
|
|
4
4
|
*/
|
|
5
5
|
import { assertInvariant } from '../assert';
|
|
6
6
|
import { checkCommitPathAddressable } from './commit-paths';
|
|
7
7
|
import { flushPendingRegistrationChecks, checkInlineConstructPoliciesAtMount } from '../schema/registration-checks';
|
|
8
|
-
import { checkStaleRaw, checkOpaqueStaleRaw, checkOpaqueRebuildDeterminism, checkReservedChromeSlot, checkCategoryFields } from './node-shape';
|
|
8
|
+
import { checkStaleRaw, checkOpaqueStaleRaw, checkOpaqueRebuildDeterminism, checkReservedChromeSlot, checkCategoryFields, checkTaskMarkerSlot } from './node-shape';
|
|
9
9
|
import { checkContentRange } from './descriptor';
|
|
10
|
+
import { checkChildIdParity } from './child-id-parity';
|
|
10
11
|
import { checkChildSpansLockstep, checkIdsChildrenLockstep } from './structural-descriptor';
|
|
11
12
|
import { checkSnapshotIntegrity } from './snapshot-integrity';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
export function assertCommittedNodes(nodes) {
|
|
13
|
+
import { checkLastLineKept } from './open-tail';
|
|
14
|
+
import { checkKeepsABlock } from './keeps-a-block';
|
|
15
|
+
/** Checks only the nodes a commit touched. Call it after the commit's `rebuildRaw`, so a strip
|
|
16
|
+
* container's raw is that rebuild's output. */
|
|
17
|
+
export function assertCommittedNodes(nodes, grammar) {
|
|
18
18
|
for (const node of nodes) {
|
|
19
|
-
assertInvariant('stale-raw', () => checkStaleRaw(node));
|
|
20
|
-
assertInvariant('opaque-stale-raw', () => checkOpaqueStaleRaw(node));
|
|
19
|
+
assertInvariant('stale-raw', () => checkStaleRaw(node, grammar));
|
|
20
|
+
assertInvariant('opaque-stale-raw', () => checkOpaqueStaleRaw(node, grammar));
|
|
21
21
|
assertInvariant('opaque-rebuild-determinism', () => checkOpaqueRebuildDeterminism(node));
|
|
22
22
|
assertInvariant('reserved-chrome-slot', () => checkReservedChromeSlot(node));
|
|
23
23
|
assertInvariant('category-fields', () => checkCategoryFields(node));
|
|
24
24
|
assertInvariant('content-range', () => checkContentRange(node));
|
|
25
25
|
assertInvariant('child-spans-lockstep', () => checkChildSpansLockstep(node));
|
|
26
|
+
assertInvariant('child-id-parity', () => checkChildIdParity(node));
|
|
27
|
+
assertInvariant('task-marker-slot', () => checkTaskMarkerSlot(node, grammar));
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
* `commit-paths.ts`). Null skips a coordinate the commit doesn't carry.
|
|
31
|
-
*/
|
|
30
|
+
/** Checks, before the commit mutates anything, that both declared paths are document-absolute
|
|
31
|
+
* (G1.16); null skips a path the commit does not carry. */
|
|
32
32
|
export function assertCommitPaths(doc, snapshotPath, eventPath) {
|
|
33
33
|
if (snapshotPath) {
|
|
34
34
|
assertInvariant('commit-path-dialect', () => checkCommitPathAddressable(doc, snapshotPath, 'snapshot.path'));
|
|
@@ -37,29 +37,28 @@ export function assertCommitPaths(doc, snapshotPath, eventPath) {
|
|
|
37
37
|
assertInvariant('commit-path-dialect', () => checkCommitPathAddressable(doc, eventPath, 'eventPath'));
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
* have corrupted, so only its digest is re-verified. Deeper entries stay covered by the
|
|
43
|
-
* restore-time check in `editor-actions/commit/history.ts`.
|
|
44
|
-
*/
|
|
40
|
+
/** G1.9, once per commit: only the newest undo entry can have been corrupted by this commit, so
|
|
41
|
+
* only its digest is re-checked; older entries are checked when they are restored. */
|
|
45
42
|
export function assertUndoTopIntegrity(entry) {
|
|
46
43
|
if (!entry)
|
|
47
44
|
return;
|
|
48
45
|
assertInvariant('snapshot-integrity', () => checkSnapshotIntegrity(entry));
|
|
49
46
|
}
|
|
50
|
-
/**
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
*/
|
|
47
|
+
/** G1.41, after every structural commit publishes: `wasOpen` is `endsOpen` read before it mutated. */
|
|
48
|
+
export function assertLastLineKept(doc, wasOpen) {
|
|
49
|
+
assertInvariant('last-line-kept', () => checkLastLineKept(doc, wasOpen));
|
|
50
|
+
}
|
|
51
|
+
/** G1.44, after every structural commit publishes: `touched` is what the commit wrote. */
|
|
52
|
+
export function assertKeepsABlock(doc, touched) {
|
|
53
|
+
assertInvariant('keeps-a-block', () => checkKeepsABlock(doc, touched));
|
|
54
|
+
}
|
|
55
|
+
/** G1.36, the reading half, run wherever ids are written to state: an id array that is too short
|
|
56
|
+
* reaches Svelte's keyed each as missing keys. */
|
|
55
57
|
export function assertIdsInLockstep(seam, idCount, childCount) {
|
|
56
58
|
assertInvariant('ids-children-lockstep', () => checkIdsChildrenLockstep(seam, idCount, childCount));
|
|
57
59
|
}
|
|
58
|
-
/**
|
|
59
|
-
*
|
|
60
|
-
* the whole world, later mounts validate only registrations since the previous flush. The
|
|
61
|
-
* inline-policy check sits outside it — mount-only, and table-wide on every mount (G1.31).
|
|
62
|
-
*/
|
|
60
|
+
/** The registry-wide checks, run on mount: the full sweep the first time, then only the
|
|
61
|
+
* registrations added since. The inline-policy check runs on every mount (G1.31). */
|
|
63
62
|
export function runStartupInvariantChecks() {
|
|
64
63
|
flushPendingRegistrationChecks();
|
|
65
64
|
checkInlineConstructPoliciesAtMount();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* G1.44: after a structural commit the document holds a block, and no container the commit
|
|
3
|
+
* touched that must hold a child is left with none.
|
|
4
|
+
*/
|
|
5
|
+
import type { DocumentView, NodeView } from '../core/node-views';
|
|
6
|
+
import type { InvariantViolation } from '../assert';
|
|
7
|
+
export declare function checkKeepsABlock(doc: DocumentView, touched: readonly NodeView[]): InvariantViolation | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* G1.44: after a structural commit the document holds a block, and no container the commit
|
|
3
|
+
* touched that must hold a child is left with none.
|
|
4
|
+
*/
|
|
5
|
+
import { mustHoldChild } from '../schema/block-kind-descriptor';
|
|
6
|
+
export function checkKeepsABlock(doc, touched) {
|
|
7
|
+
if (doc.children.length === 0)
|
|
8
|
+
return violation('the document holds no block');
|
|
9
|
+
const emptied = touched.find((n) => mustHoldChild(n.kind) && (n.children?.length ?? 0) === 0);
|
|
10
|
+
return emptied ? violation(`a ${emptied.kind} holds no block`) : null;
|
|
11
|
+
}
|
|
12
|
+
function violation(message) {
|
|
13
|
+
return { code: 'keeps-a-block', message };
|
|
14
|
+
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* G1.33
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Reported at block-host granularity: a table cell has no host of its own, so a cell violation
|
|
8
|
-
* names its table's path while the predicate still resolves the cell's own surface.
|
|
2
|
+
* G1.33: in a mode that hides markers, a block the caret is about to enter paints at least one
|
|
3
|
+
* position the caret can sit at; if every content byte is a hidden marker, the browser puts the
|
|
4
|
+
* keystroke on whichever side of the hidden spans it likes. Built-in blocks paint markers that
|
|
5
|
+
* stand over no content (`docs/design/live-mode.md` § 4.1 What live never writes); the check is
|
|
6
|
+
* for plugin blocks. A table cell has no block host, so it reports its table's path.
|
|
9
7
|
*/
|
|
10
8
|
import { type PresentationMode } from '../presentation-mode';
|
|
11
9
|
import type { InvariantViolation } from '../assert';
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* G1.33
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Reported at block-host granularity: a table cell has no host of its own, so a cell violation
|
|
8
|
-
* names its table's path while the predicate still resolves the cell's own surface.
|
|
2
|
+
* G1.33: in a mode that hides markers, a block the caret is about to enter paints at least one
|
|
3
|
+
* position the caret can sit at; if every content byte is a hidden marker, the browser puts the
|
|
4
|
+
* keystroke on whichever side of the hidden spans it likes. Built-in blocks paint markers that
|
|
5
|
+
* stand over no content (`docs/design/live-mode.md` § 4.1 What live never writes); the check is
|
|
6
|
+
* for plugin blocks. A table cell has no block host, so it reports its table's path.
|
|
9
7
|
*/
|
|
10
8
|
import { hidesMarkers } from '../presentation-mode';
|
|
11
9
|
import { paintsNoLandableContent } from '../cursor/widget-offset';
|
|
@@ -18,13 +16,12 @@ export function checkLandableCaret(focused, mode, blockPath) {
|
|
|
18
16
|
return null;
|
|
19
17
|
return {
|
|
20
18
|
code: 'landable-caret',
|
|
21
|
-
message: `the block at [${blockPath}] is every byte a hidden marker run, so "${mode}" paints it nowhere and the caret being
|
|
19
|
+
message: `the block at [${blockPath}] is every byte a hidden marker run, so "${mode}" paints it nowhere and the caret being placed there has no position of its own: paint the chrome while it stands over no content`,
|
|
22
20
|
detail: { path: [...blockPath], mode }
|
|
23
21
|
};
|
|
24
22
|
}
|
|
25
|
-
/** The
|
|
26
|
-
*
|
|
27
|
-
* attribute, not `isContentEditable`, which jsdom leaves false on an editable div. */
|
|
23
|
+
/** The editable element behind the focus, which may sit on a marker or an inner span. Read from
|
|
24
|
+
* the attribute, since jsdom leaves `isContentEditable` false on an editable div. */
|
|
28
25
|
function editableSurfaceOf(focused) {
|
|
29
26
|
const el = focused.closest('[contenteditable]');
|
|
30
27
|
return el && el.getAttribute('contenteditable') !== 'false' ? el : null;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* G1.45: a caret landing's focus call and DOM placement scroll nothing. The landing's reveal policy
|
|
3
|
+
* is the one scroll it makes, through the scroll owner; a focus without `preventScroll` is a
|
|
4
|
+
* second writer nobody owns.
|
|
5
|
+
*/
|
|
6
|
+
import type { InvariantViolation } from '../assert';
|
|
7
|
+
export declare function checkLandingFocusScrollsNothing(before: number | null, after: number | null): InvariantViolation | null;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* G1.45: a caret landing's focus call and DOM placement scroll nothing. The landing's reveal policy
|
|
3
|
+
* is the one scroll it makes, through the scroll owner; a focus without `preventScroll` is a
|
|
4
|
+
* second writer nobody owns.
|
|
5
|
+
*/
|
|
6
|
+
export function checkLandingFocusScrollsNothing(before, after) {
|
|
7
|
+
if (before === null || after === null || before === after)
|
|
8
|
+
return null;
|
|
9
|
+
return {
|
|
10
|
+
code: 'landing-focus-scrolls-nothing',
|
|
11
|
+
message: `a caret landing's focus moved the scroll position (${before} to ${after}): pass \`preventScroll\` and let the reveal policy scroll`
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* G1.43: reading a commit's landing moves no caret. The landing is a value the commit puts down
|
|
3
|
+
* itself, so a landing function that focuses or selects is placing a second caret behind its back.
|
|
4
|
+
*/
|
|
5
|
+
import type { InvariantViolation } from '../assert';
|
|
6
|
+
/** Where focus and the selection's anchor are, compared by identity. */
|
|
7
|
+
export interface CaretWhereabouts {
|
|
8
|
+
readonly active: Element | null;
|
|
9
|
+
readonly anchorNode: Node | null;
|
|
10
|
+
readonly anchorOffset: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function readCaretWhereabouts(): CaretWhereabouts | null;
|
|
13
|
+
export declare function checkLandingIsAValue(before: CaretWhereabouts | null, after: CaretWhereabouts | null): InvariantViolation | null;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* G1.43: reading a commit's landing moves no caret. The landing is a value the commit puts down
|
|
3
|
+
* itself, so a landing function that focuses or selects is placing a second caret behind its back.
|
|
4
|
+
*/
|
|
5
|
+
export function readCaretWhereabouts() {
|
|
6
|
+
if (typeof document === 'undefined')
|
|
7
|
+
return null;
|
|
8
|
+
const selection = document.getSelection();
|
|
9
|
+
return {
|
|
10
|
+
active: document.activeElement,
|
|
11
|
+
anchorNode: selection?.anchorNode ?? null,
|
|
12
|
+
anchorOffset: selection?.anchorOffset ?? 0
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function checkLandingIsAValue(before, after) {
|
|
16
|
+
if (!before || !after)
|
|
17
|
+
return null;
|
|
18
|
+
const moved = before.active !== after.active ||
|
|
19
|
+
before.anchorNode !== after.anchorNode ||
|
|
20
|
+
before.anchorOffset !== after.anchorOffset;
|
|
21
|
+
if (!moved)
|
|
22
|
+
return null;
|
|
23
|
+
return {
|
|
24
|
+
code: 'landing-is-a-value',
|
|
25
|
+
message: "a commit's landing function moved focus or the selection: return the position and let the commit put the caret there"
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* stylesheet
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* anything (jsdom, source mode); the presentation e2e battery is the real assertion there.
|
|
2
|
+
* Checks that the stylesheet and `cursor/widget-offset.ts` agree on which marker runs are hidden:
|
|
3
|
+
* the TypeScript side mirrors the stylesheet by hand, since `getComputedStyle` per keystroke is
|
|
4
|
+
* too slow. Once per mode change it compares, per marker family, the stylesheet, the DOM-to-offset
|
|
5
|
+
* traversal and the node-space rule both are stated over. Where no stylesheet hides anything
|
|
6
|
+
* (jsdom, source mode) it does nothing, and the presentation e2e battery asserts instead.
|
|
8
7
|
*/
|
|
9
8
|
import type { InvariantViolation } from '../assert';
|
|
10
9
|
export declare function checkMarkerCssParity(editorRoot: HTMLElement): InvariantViolation | null;
|