@voithos-labs/aragonite 0.10.3 → 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 +12 -5
- package/dist/a11y-strings.js +61 -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 +13 -20
- 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 +619 -1089
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +36 -67
- package/dist/components/SelectionOverlay.svelte.d.ts +6 -4
- 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 +103 -100
- 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 +35 -28
- 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 +58 -32
- 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 +144 -202
- 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 +46 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +99 -144
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +3 -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 +9 -4
- package/dist/components/blocks/text/click-snap-guard.js +16 -5
- 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 +164 -180
- 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 -105
- 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 +243 -208
- 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 +13 -30
- package/dist/components/drag-handle.js +25 -63
- 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 -31
- package/dist/components/editor-root-listeners.js +49 -46
- 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 +26 -30
- 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 +380 -0
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +14 -0
- 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 +55 -68
- package/dist/core/inline/inline-widgets.js +55 -58
- 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 +33 -17
- 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 -7
- package/dist/cursor/height-oracle.js +26 -75
- 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 +16 -8
- package/dist/cursor/scrollport.js +28 -5
- 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 -13
- package/dist/cursor/visual-lines.js +72 -28
- package/dist/cursor/widget-edge-snap.d.ts +23 -0
- package/dist/cursor/widget-edge-snap.js +39 -0
- package/dist/cursor/widget-offset.d.ts +111 -102
- package/dist/cursor/widget-offset.js +352 -177
- 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 +31 -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 +33 -52
- package/dist/editor-actions/focus/focus-landing.d.ts +11 -5
- package/dist/editor-actions/focus/focus-landing.js +29 -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 +55 -76
- package/dist/editor-actions/plugin/container.js +105 -186
- 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 +91 -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 +38 -8
- package/dist/plugin.js +102 -74
- 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 +113 -85
- 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 -75
- 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 +63 -47
- 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 +18 -7
- 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 +143 -292
- 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 +79 -81
- package/dist/schema/commands.js +156 -116
- 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 +9 -11
- 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 +73 -78
- 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 +93 -152
- 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 +61 -104
- 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 +53 -146
- package/dist/selection/dead-space-caret.d.ts +20 -28
- package/dist/selection/dead-space-caret.js +79 -87
- package/dist/selection/drag-pointer.d.ts +22 -5
- package/dist/selection/drag-pointer.js +63 -31
- 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 -39
- package/dist/selection/keyboard-extend.js +94 -116
- package/dist/selection/multi-click.d.ts +37 -0
- package/dist/selection/multi-click.js +197 -0
- package/dist/selection/native-bridge.d.ts +30 -37
- package/dist/selection/native-bridge.js +80 -100
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +31 -14
- package/dist/selection/path-lookup.js +110 -20
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +9 -0
- package/dist/selection/pointer-gesture.js +11 -0
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -33
- package/dist/selection/primitives.js +61 -53
- 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 -19
- 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 +52 -0
- package/dist/selection/selection-drop.js +317 -0
- 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 +75 -53
- package/dist/styles/editor.css +248 -139
- 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 +19 -0
- package/dist/tree-operations/paste/replacement-parse.js +24 -0
- 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 +329 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +267 -183
- package/docs/guide/plugin-guide.md +341 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +17 -21
- 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/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/selection/double-click-trim.d.ts +0 -17
- package/dist/selection/double-click-trim.js +0 -57
- 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 -29
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -75
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* kit can falsify, it falsifies. Failures throw a plain `Error`.
|
|
2
|
+
* The conformance kit for an inline syntax handler (`InlineRung`), published at
|
|
3
|
+
* `@voithos-labs/aragonite/testing`. It reads the live registry, so it works across
|
|
4
|
+
* `resetPluginPlatformForTests()` cycles. The four cells a profile declares are required because
|
|
5
|
+
* byte round-trip sees none of them, and the kit disproves an exemption where it can.
|
|
7
6
|
*/
|
|
8
7
|
import { isBuiltinInlineKind } from '../core/nodes';
|
|
9
8
|
import { parse } from '../core/parser';
|
|
@@ -13,55 +12,59 @@ import { renderInlineNodes } from '../core/inline-render';
|
|
|
13
12
|
import { buildCoreInlineWidget, getInlineWidgetComponent, getInlineWidgetEditing, isInlineWidget, DELETE_GRANULARITIES, ON_EDGE_POLICIES } from '../core/inline/inline-widgets';
|
|
14
13
|
import { INLINE_PRIORITIES, getInlineRungs, isReservedInlineTrigger, isScanProbeTrigger } from '../core/inline/scan/plugin-syntax';
|
|
15
14
|
import { containerDomTextLength } from '../cursor/widget-offset';
|
|
16
|
-
import { assert,
|
|
15
|
+
import { assert, assertIs, fail, runCells } from './conformance-core';
|
|
16
|
+
import { defaultGrammarView } from '../schema/block-openers';
|
|
17
|
+
const INLINE_CELLS = [
|
|
18
|
+
{ cell: 'claims', run: ({ profile, rung }) => checkClaimsItsFixtures(profile, rung) },
|
|
19
|
+
{ cell: 'roundTrip', run: ({ profile, rung }) => checkRoundTrip(profile, rung) },
|
|
20
|
+
{
|
|
21
|
+
cell: 'overlapDecline',
|
|
22
|
+
coverage: ({ profile }) => profile.overlapDecline,
|
|
23
|
+
run: ({ profile, rung }) => checkOverlapDecline(profile, rung),
|
|
24
|
+
falsify: ({ profile }) => refuseExcusedOverlap(profile)
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
cell: 'widget',
|
|
28
|
+
coverage: ({ profile }) => profile.widget,
|
|
29
|
+
run: ({ profile, rung }) => checkWidgetAtomicity(profile, rung),
|
|
30
|
+
falsify: ({ profile, rung }) => refuseExcusedWidget(profile, rung)
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
cell: 'editingPolicy',
|
|
34
|
+
coverage: ({ profile }) => profile.editingPolicy,
|
|
35
|
+
run: ({ profile, rung }) => checkEditingPolicy(profile, rung),
|
|
36
|
+
falsify: ({ profile }) => refuseExcusedEditingPolicy(profile)
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
cell: 'imageClaim',
|
|
40
|
+
coverage: ({ profile }) => profile.imageClaim,
|
|
41
|
+
run: ({ profile, rung }) => checkImageClaimStamp(profile, rung),
|
|
42
|
+
falsify: ({ profile, rung }) => refuseExcusedImageClaim(profile, rung)
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
cell: 'registration',
|
|
46
|
+
run: ({ profile, prefix, rung }) => checkRegistrationHygiene(profile, prefix, rung)
|
|
47
|
+
}
|
|
48
|
+
];
|
|
17
49
|
/**
|
|
18
|
-
*
|
|
50
|
+
* Runs every conformance cell for the registered handler the profile names. Resolves with the
|
|
19
51
|
* coverage report, or throws an `Error` naming every failed cell.
|
|
20
52
|
*/
|
|
21
|
-
export function runInlineKindConformance(profile) {
|
|
53
|
+
export async function runInlineKindConformance(profile) {
|
|
22
54
|
const prefix = profile.prefix ?? profile.trigger;
|
|
23
55
|
validateProfile(profile, prefix);
|
|
24
56
|
const rung = locateRung(profile, prefix);
|
|
25
|
-
const cells =
|
|
26
|
-
const failures = [];
|
|
27
|
-
const runCell = (cell, coverage, assertion) => {
|
|
28
|
-
try {
|
|
29
|
-
if (coverage.mode === 'assert') {
|
|
30
|
-
const outcome = assertion();
|
|
31
|
-
cells.push(typeof outcome === 'string'
|
|
32
|
-
? { cell, status: 'asserted', detail: outcome }
|
|
33
|
-
: { cell, ...outcome });
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
assertExemptionDocumented(coverage, `${prefix} ${cell}`);
|
|
37
|
-
falsifyExcuse(cell, profile, rung);
|
|
38
|
-
cells.push({ cell, status: coverage.mode, detail: coverage.reason });
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
failures.push(`${cell}: ${error.message}`);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
runCell('claims', { mode: 'assert' }, () => checkClaimsItsFixtures(profile, rung));
|
|
46
|
-
runCell('roundTrip', { mode: 'assert' }, () => checkRoundTrip(profile, rung));
|
|
47
|
-
runCell('overlapDecline', profile.overlapDecline, () => checkOverlapDecline(profile, rung));
|
|
48
|
-
runCell('widget', profile.widget, () => checkWidgetAtomicity(profile, rung));
|
|
49
|
-
runCell('editingPolicy', profile.editingPolicy, () => checkEditingPolicy(profile, rung));
|
|
50
|
-
runCell('imageClaim', profile.imageClaim, () => checkImageClaimStamp(profile, rung));
|
|
51
|
-
runCell('registration', { mode: 'assert' }, () => checkRegistrationHygiene(profile, prefix, rung));
|
|
52
|
-
if (failures.length > 0) {
|
|
53
|
-
fail(`inline conformance failed for rung "${prefix}":\n - ${failures.join('\n - ')}`);
|
|
54
|
-
}
|
|
57
|
+
const cells = await runCells(INLINE_CELLS, { profile, prefix, rung }, { subject: prefix, heading: `inline conformance failed for rung "${prefix}"` });
|
|
55
58
|
return { trigger: profile.trigger, prefix, cells };
|
|
56
59
|
}
|
|
57
|
-
// ── Profile validation +
|
|
60
|
+
// ── Profile validation + handler lookup ──────────────────────────────────────
|
|
58
61
|
function validateProfile(profile, prefix) {
|
|
59
62
|
assertIs(profile.trigger.length, 1, 'trigger is a single character');
|
|
60
63
|
assert(prefix.startsWith(profile.trigger), `prefix ${JSON.stringify(prefix)} begins with the trigger ${JSON.stringify(profile.trigger)}`);
|
|
61
64
|
assert(profile.fixtures.length > 0, 'the profile supplies at least one fixture the rung claims');
|
|
62
65
|
for (const fixture of profile.fixtures)
|
|
63
66
|
assertSingleLine(fixture, 'fixture');
|
|
64
|
-
// A prefix
|
|
67
|
+
// A prefix handler is consulted before the built-in case it shadows, so the overlap
|
|
65
68
|
// always exists and there is nothing to excuse.
|
|
66
69
|
if (isReservedInlineTrigger(profile.trigger) && profile.overlapDecline.mode !== 'assert') {
|
|
67
70
|
fail(`${JSON.stringify(profile.trigger)} is claimed by the built-in scanner, so this rung is ` +
|
|
@@ -92,11 +95,8 @@ function locateRung(profile, prefix) {
|
|
|
92
95
|
return matches[0];
|
|
93
96
|
}
|
|
94
97
|
// ── Claim resolution ─────────────────────────────────────────────────────────
|
|
95
|
-
/**
|
|
96
|
-
*
|
|
97
|
-
* ways because a rung's own kind carries no stamp by design: the declared kind, or the
|
|
98
|
-
* claim the scan stamps on a BUILT-IN kind minted over the rung's bytes.
|
|
99
|
-
*/
|
|
98
|
+
/** Every node this handler produced from `source`, in document order: its declared kind (which
|
|
99
|
+
* carries no mark), or a built-in node the scan marked with the handler's `syntaxClaim`. */
|
|
100
100
|
function mintedNodes(source, profile, rung) {
|
|
101
101
|
const out = [];
|
|
102
102
|
const visit = (nodes) => {
|
|
@@ -112,7 +112,7 @@ function mintedNodes(source, profile, rung) {
|
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
114
|
* Every claim in a fixture, or a failure naming it. A fixture may carry more than one
|
|
115
|
-
* (`see [^a] and [^b]`), and every cell below
|
|
115
|
+
* (`see [^a] and [^b]`), and every cell below goes through all of them.
|
|
116
116
|
*/
|
|
117
117
|
function claimsIn(fixture, profile, rung) {
|
|
118
118
|
const minted = mintedNodes(fixture, profile, rung);
|
|
@@ -120,6 +120,16 @@ function claimsIn(fixture, profile, rung) {
|
|
|
120
120
|
`the kit would enroll the rung without exercising it`);
|
|
121
121
|
return minted;
|
|
122
122
|
}
|
|
123
|
+
/** The claims of `kind` across every fixture, failing when there is none, so a cell about the kind
|
|
124
|
+
* never reports `asserted` over only the built-in nodes the handler claimed. */
|
|
125
|
+
function claimsOfKind(profile, rung, kind) {
|
|
126
|
+
const claims = profile.fixtures.flatMap((fixture) => claimsIn(fixture, profile, rung)
|
|
127
|
+
.filter((node) => node.kind === kind)
|
|
128
|
+
.map((node) => ({ fixture, node })));
|
|
129
|
+
assert(claims.length > 0, `no fixture mints a "${kind}" node — the "${rung.prefix}" rung's claims are all built-ins ` +
|
|
130
|
+
`it stamps, which the imageClaim cell covers`);
|
|
131
|
+
return claims;
|
|
132
|
+
}
|
|
123
133
|
// ── claims ───────────────────────────────────────────────────────────────────
|
|
124
134
|
function checkClaimsItsFixtures(profile, rung) {
|
|
125
135
|
let claims = 0;
|
|
@@ -135,8 +145,8 @@ function checkClaimsItsFixtures(profile, rung) {
|
|
|
135
145
|
}
|
|
136
146
|
// ── roundTrip ────────────────────────────────────────────────────────────────
|
|
137
147
|
/**
|
|
138
|
-
*
|
|
139
|
-
* claim ended, the
|
|
148
|
+
* The neighbours a handler's `end` arithmetic tends to get wrong: a construct starting where the
|
|
149
|
+
* claim ended, the handler's own trigger on either edge, a wrapper competing for the bytes.
|
|
140
150
|
*/
|
|
141
151
|
function interleavings(fixture, trigger) {
|
|
142
152
|
return [
|
|
@@ -152,11 +162,8 @@ function interleavings(fixture, trigger) {
|
|
|
152
162
|
`${fixture}${trigger}`
|
|
153
163
|
];
|
|
154
164
|
}
|
|
155
|
-
/**
|
|
156
|
-
*
|
|
157
|
-
* consultation on a prefix whose closer is out of range — the shape a heading's
|
|
158
|
-
* excluded `#` run makes of any construct straddling it.
|
|
159
|
-
*/
|
|
165
|
+
/** How far into `fixture` its own opener ends; a scan range cut there strands a prefix whose
|
|
166
|
+
* closer is out of range, as a heading's excluded `#` run does. */
|
|
160
167
|
function openerWidth(fixture, prefix) {
|
|
161
168
|
const at = fixture.indexOf(prefix);
|
|
162
169
|
return at < 0 ? prefix.length : at + prefix.length;
|
|
@@ -168,10 +175,8 @@ function checkRoundTrip(profile, rung) {
|
|
|
168
175
|
const withEnding = `${source}\n`;
|
|
169
176
|
assertIs(serialize(parse(withEnding)), withEnding, `serialize(parse(source)) round-trips ${JSON.stringify(withEnding)}`);
|
|
170
177
|
assertScanTiles(source, source.length);
|
|
171
|
-
//
|
|
172
|
-
//
|
|
173
|
-
// an `end` bound reaches into it. Two cut points because where the boundary falls
|
|
174
|
-
// relative to a construct is the variable.
|
|
178
|
+
// A scan range short of the raw (a heading's excluded `#` run) catches a terminator
|
|
179
|
+
// search with no `end` bound; two cut points vary where the boundary falls.
|
|
175
180
|
assertScanTiles(source + fixture, source.length);
|
|
176
181
|
assertScanTiles(source + fixture, source.length + openerWidth(fixture, rung.prefix));
|
|
177
182
|
count++;
|
|
@@ -179,12 +184,8 @@ function checkRoundTrip(profile, rung) {
|
|
|
179
184
|
}
|
|
180
185
|
return `${count} source(s) round-trip byte-for-byte and tile their scan range`;
|
|
181
186
|
}
|
|
182
|
-
/**
|
|
183
|
-
*
|
|
184
|
-
* see a rung at all, so the property a rung can break is the scanner's contract — nodes
|
|
185
|
-
* tile `[0, end)` with no gap or overlap and their slices reassemble the scanned bytes.
|
|
186
|
-
* An overrun past `end` never reaches here; the dispatch throws on it (scan/index.ts).
|
|
187
|
-
*/
|
|
187
|
+
/** Round-trip never sees a handler, so check the scanner's contract: the nodes tile `[0, end)`
|
|
188
|
+
* with no gap or overlap and their slices reassemble the bytes. */
|
|
188
189
|
function assertScanTiles(raw, end) {
|
|
189
190
|
const nodes = parseInline(raw, 0, end);
|
|
190
191
|
let cursor = 0;
|
|
@@ -196,11 +197,8 @@ function assertScanTiles(raw, end) {
|
|
|
196
197
|
assertIs(nodes.map((n) => raw.slice(n.start, n.end)).join(''), raw.slice(0, end), `the scanned spans of ${JSON.stringify(raw.slice(0, end))} reassemble its bytes`);
|
|
197
198
|
}
|
|
198
199
|
// ── overlapDecline ───────────────────────────────────────────────────────────
|
|
199
|
-
/**
|
|
200
|
-
*
|
|
201
|
-
* A decline leaves the scan context untouched, so declining everywhere IS the guarantee
|
|
202
|
-
* that the built-in reads byte-identical bytes.
|
|
203
|
-
*/
|
|
200
|
+
/** At every position the scan would consult this handler the recognizer returns null, so the
|
|
201
|
+
* built-in construct sees byte-identical input. */
|
|
204
202
|
function checkOverlapDecline(profile, rung) {
|
|
205
203
|
const fixtures = profile.overlapFixtures ?? [];
|
|
206
204
|
let consulted = 0;
|
|
@@ -210,7 +208,7 @@ function checkOverlapDecline(profile, rung) {
|
|
|
210
208
|
if (!source.startsWith(rung.prefix, pos))
|
|
211
209
|
continue;
|
|
212
210
|
positions++;
|
|
213
|
-
const claimed = rung.recognizer(source, pos, source.length);
|
|
211
|
+
const claimed = rung.recognizer(source, pos, source.length, defaultGrammarView);
|
|
214
212
|
if (claimed !== null) {
|
|
215
213
|
fail(`the "${rung.prefix}" rung swallowed the overlap in ${JSON.stringify(source)} at ` +
|
|
216
214
|
`offset ${pos} — it claimed [${claimed.start}, ${claimed.end}) as "${claimed.kind}", ` +
|
|
@@ -235,36 +233,30 @@ function checkWidgetAtomicity(profile, rung) {
|
|
|
235
233
|
const kind = profile.kind;
|
|
236
234
|
assert(kind !== undefined, 'the widget cell asserts but the profile names no kind — a rung minting only built-in ' +
|
|
237
235
|
'kinds renders through the built-in widget and declares this cell exempt');
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
}
|
|
236
|
+
const claims = claimsOfKind(profile, rung, kind);
|
|
237
|
+
for (const { fixture, node } of claims) {
|
|
238
|
+
assert(isInlineWidget(node, fixture, defaultGrammarView), `the "${kind}" node from ${JSON.stringify(fixture)} is a registered live widget`);
|
|
239
|
+
assertSelfDelimiting(fixture, node, kind);
|
|
243
240
|
}
|
|
244
|
-
// Both early exits report
|
|
245
|
-
if (getInlineWidgetComponent(kind) !== undefined) {
|
|
241
|
+
// Both early exits report boundary, not asserted: the inline-widget contract did not run.
|
|
242
|
+
if (getInlineWidgetComponent(kind, defaultGrammarView) !== undefined) {
|
|
246
243
|
return {
|
|
247
244
|
status: 'boundary',
|
|
248
|
-
detail: `${RECOGNITION_HALF} executed; the
|
|
245
|
+
detail: `${RECOGNITION_HALF} executed; the widget wrapper of a \`component\` kind is created by ` +
|
|
249
246
|
`the render layer, not by the plugin, so it is not the plugin’s to get wrong`
|
|
250
247
|
};
|
|
251
248
|
}
|
|
252
249
|
if (typeof document === 'undefined') {
|
|
253
|
-
return { status: 'boundary', detail: `${RECOGNITION_HALF} executed
|
|
250
|
+
return { status: 'boundary', detail: `${RECOGNITION_HALF} executed: ${NO_DOM}` };
|
|
254
251
|
}
|
|
255
|
-
for (const fixture of
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
}
|
|
252
|
+
for (const { fixture, node } of claims)
|
|
253
|
+
assertIslandContract(fixture, node, kind);
|
|
254
|
+
for (const fixture of profile.fixtures)
|
|
259
255
|
assertWalkLengthIsRawLength(fixture);
|
|
260
|
-
}
|
|
261
256
|
return 'recognition, self-delimiting claim, island contract, and offset-walk length';
|
|
262
257
|
}
|
|
263
|
-
/**
|
|
264
|
-
*
|
|
265
|
-
* clipboard and to a source reveal, and a slice that only forms in its original context
|
|
266
|
-
* pastes back as broken prose while the document it came from round-trips perfectly.
|
|
267
|
-
*/
|
|
258
|
+
/** The claimed bytes must re-form on their own: `data-source-*` hands exactly this slice to the
|
|
259
|
+
* clipboard and a source view, where a context-dependent slice pastes back broken. */
|
|
268
260
|
function assertSelfDelimiting(fixture, node, kind) {
|
|
269
261
|
const slice = fixture.slice(node.start, node.end);
|
|
270
262
|
const alone = parseInline(slice, 0, slice.length);
|
|
@@ -273,21 +265,20 @@ function assertSelfDelimiting(fixture, node, kind) {
|
|
|
273
265
|
`the bytes data-source-* hands the clipboard and the reveal`);
|
|
274
266
|
}
|
|
275
267
|
function assertIslandContract(fixture, node, kind) {
|
|
276
|
-
const island = buildCoreInlineWidget(node, fixture);
|
|
268
|
+
const island = buildCoreInlineWidget(node, fixture, undefined, defaultGrammarView);
|
|
277
269
|
assert(island !== null, `the "${kind}" widget builds an island from ${JSON.stringify(fixture)}`);
|
|
278
270
|
assert(island.hasAttribute('data-inline-widget'), `the "${kind}" island carries [data-inline-widget] — the offset walk's only handle`);
|
|
279
271
|
assertIs(island.getAttribute('contenteditable'), 'false', `the "${kind}" island is contenteditable=false`);
|
|
280
272
|
assertIs(Number(island.getAttribute('data-source-start')), node.start, `the "${kind}" island's data-source-start is the node's own offset`);
|
|
281
273
|
assertIs(Number(island.getAttribute('data-source-end')), node.end, `the "${kind}" island's data-source-end is the node's own offset`);
|
|
282
274
|
}
|
|
283
|
-
/**
|
|
284
|
-
*
|
|
285
|
-
* emoji island showing one glyph for seven raw bytes still walks seven. Every caret
|
|
286
|
-
* offset in the block rides on this, and no byte moves when it is wrong.
|
|
287
|
-
*/
|
|
275
|
+
/** The DOM-to-offset traversal counts a widget as its source span, not what it renders (seven
|
|
276
|
+
* bytes for one emoji glyph); every caret offset in the block depends on it. */
|
|
288
277
|
function assertWalkLengthIsRawLength(fixture) {
|
|
289
278
|
const container = document.createElement('div');
|
|
290
|
-
container.appendChild(renderInlineNodes(parseInline(fixture, 0, fixture.length), fixture
|
|
279
|
+
container.appendChild(renderInlineNodes(parseInline(fixture, 0, fixture.length), fixture, {
|
|
280
|
+
grammar: defaultGrammarView
|
|
281
|
+
}));
|
|
291
282
|
assertIs(Number(containerDomTextLength(container)), fixture.length, `the offset walk over the rendered ${JSON.stringify(fixture)} measures its raw length`);
|
|
292
283
|
}
|
|
293
284
|
// ── editingPolicy ────────────────────────────────────────────────────────────
|
|
@@ -298,7 +289,7 @@ function assertWalkLengthIsRawLength(fixture) {
|
|
|
298
289
|
function checkEditingPolicy(profile, rung) {
|
|
299
290
|
const kind = profile.kind;
|
|
300
291
|
assert(kind !== undefined, 'the editingPolicy cell asserts but the profile names no kind');
|
|
301
|
-
const policy = getInlineWidgetEditing(kind);
|
|
292
|
+
const policy = getInlineWidgetEditing(kind, defaultGrammarView);
|
|
302
293
|
assert(policy !== undefined, `"${kind}" declares no editing policy — register one, or declare this cell exempt if the ` +
|
|
303
294
|
`widget takes the default select-then-delete behavior deliberately`);
|
|
304
295
|
// An all-absent object is what the dispatch reads as no policy, so accepting one lets a kind
|
|
@@ -307,13 +298,11 @@ function checkEditingPolicy(profile, rung) {
|
|
|
307
298
|
`dispatch reads exactly as no policy at all — declare a field, or declare this cell exempt`);
|
|
308
299
|
assertPolicyVocabulary(policy, kind);
|
|
309
300
|
if (policy.deleteGranularity === 'atomic') {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
`${JSON.stringify(fixture)} leaves bytes that round-trip`);
|
|
316
|
-
}
|
|
301
|
+
// One keypress deletes one widget, so each claim is removed on its own.
|
|
302
|
+
for (const { fixture, node } of claimsOfKind(profile, rung, kind)) {
|
|
303
|
+
const excised = `${fixture.slice(0, node.start)}${fixture.slice(node.end)}\n`;
|
|
304
|
+
assertIs(serialize(parse(excised)), excised, `the one-press whole-delete of the claim at ${node.start} in ` +
|
|
305
|
+
`${JSON.stringify(fixture)} leaves bytes that round-trip`);
|
|
317
306
|
}
|
|
318
307
|
return 'policy vocabulary + atomic whole-delete leaves round-tripping bytes';
|
|
319
308
|
}
|
|
@@ -337,12 +326,8 @@ function assertPolicyVocabulary(policy, kind) {
|
|
|
337
326
|
}
|
|
338
327
|
}
|
|
339
328
|
// ── imageClaim ───────────────────────────────────────────────────────────────
|
|
340
|
-
/**
|
|
341
|
-
*
|
|
342
|
-
* editor's inverse emits the built-in grammar — so without `rewriteImage` a resize turns
|
|
343
|
-
* `![[cat.png|300]]` into GFM. The document round-trips throughout; it is simply a
|
|
344
|
-
* different document.
|
|
345
|
-
*/
|
|
329
|
+
/** A handler producing a built-in kind borrows the editor's model for its own bytes, so without
|
|
330
|
+
* `rewriteImage` a resize writes `![[cat.png|300]]` back as GFM, which still round-trips. */
|
|
346
331
|
function checkImageClaimStamp(profile, rung) {
|
|
347
332
|
let stamped = 0;
|
|
348
333
|
for (const fixture of profile.fixtures) {
|
|
@@ -363,11 +348,8 @@ function checkImageClaimStamp(profile, rung) {
|
|
|
363
348
|
`rung mints only its own kind`);
|
|
364
349
|
return `${stamped} built-in node(s) stamped, rewriteImage reproduces its own input`;
|
|
365
350
|
}
|
|
366
|
-
/**
|
|
367
|
-
*
|
|
368
|
-
* dropped by the commit's equality guard with no warning, so a hook that cannot
|
|
369
|
-
* reproduce its own input surfaces as an edit that silently does nothing.
|
|
370
|
-
*/
|
|
351
|
+
/** The hook must re-emit the node it was handed unedited; the commit drops a byte-identical
|
|
352
|
+
* result, so a hook that cannot reproduce its input shows up as an edit that does nothing. */
|
|
371
353
|
function assertRewriteReproducesSource(fixture, node, rung) {
|
|
372
354
|
assert(rung.rewriteImage !== undefined, `the "${rung.prefix}" rung mints a built-in image but registers no rewriteImage — every ` +
|
|
373
355
|
`image edit on it is declined, and without the hook the editor would write GFM over ` +
|
|
@@ -387,8 +369,8 @@ function assertRewriteReproducesSource(fixture, node, rung) {
|
|
|
387
369
|
// ── registration ─────────────────────────────────────────────────────────────
|
|
388
370
|
function checkRegistrationHygiene(profile, prefix, rung) {
|
|
389
371
|
const reserved = isReservedInlineTrigger(profile.trigger);
|
|
390
|
-
// Two
|
|
391
|
-
//
|
|
372
|
+
// Two handlers may share a prefix at different priorities (emoji and directive text both
|
|
373
|
+
// live on `:`), but two at the same priority could not be ordered by the dispatch.
|
|
392
374
|
const sameRung = getInlineRungs(profile.trigger).filter((r) => r.prefix === prefix && r.priority === rung.priority);
|
|
393
375
|
assertIs(sameRung.length, 1, `exactly one rung holds prefix ${JSON.stringify(prefix)} at priority ${rung.priority}`);
|
|
394
376
|
if (reserved) {
|
|
@@ -397,8 +379,8 @@ function checkRegistrationHygiene(profile, prefix, rung) {
|
|
|
397
379
|
`(${INLINE_PRIORITIES.builtin}) so its prefix outranks the built-in case; got ${rung.priority}`);
|
|
398
380
|
}
|
|
399
381
|
else {
|
|
400
|
-
// The scan's fast bail skips an unreserved trigger unless a registration turns
|
|
401
|
-
//
|
|
382
|
+
// The scan's fast bail skips an unreserved trigger unless a registration turns its
|
|
383
|
+
// per-character check on; without that the recognizer never runs in prose.
|
|
402
384
|
assert(isScanProbeTrigger(profile.trigger), `the scan's fast bail visits ${JSON.stringify(profile.trigger)} — a trigger it skips ` +
|
|
403
385
|
`makes the recognizer unreachable in plain text`);
|
|
404
386
|
}
|
|
@@ -407,37 +389,38 @@ function checkRegistrationHygiene(profile, prefix, rung) {
|
|
|
407
389
|
: `bare rung at priority ${rung.priority} on a scan-probed trigger`;
|
|
408
390
|
}
|
|
409
391
|
// ── Falsifiable excuses ──────────────────────────────────────────────────────
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
}
|
|
392
|
+
// Where the kit can check an excuse, it does: a reason is a claim about the handler, not a waiver.
|
|
393
|
+
function refuseExcusedOverlap(profile) {
|
|
394
|
+
if ((profile.overlapFixtures?.length ?? 0) === 0)
|
|
395
|
+
return;
|
|
396
|
+
fail('the profile supplies overlapFixtures but declares overlapDecline excused — the fixtures ' +
|
|
397
|
+
'say the overlap exists, so assert the cell');
|
|
398
|
+
}
|
|
399
|
+
function refuseExcusedWidget(profile, rung) {
|
|
400
|
+
if (profile.kind === undefined)
|
|
401
|
+
return;
|
|
402
|
+
const claimed = profile.fixtures
|
|
403
|
+
.flatMap((f) => mintedNodes(f, profile, rung).map((n) => ({ f, n })))
|
|
404
|
+
.find(({ f, n }) => n.kind === profile.kind && isInlineWidget(n, f, defaultGrammarView));
|
|
405
|
+
if (claimed) {
|
|
406
|
+
fail(`"${profile.kind}" is a registered live widget (from ${JSON.stringify(claimed.f)}), so ` +
|
|
407
|
+
`the widget cell has something to bite on and cannot be excused`);
|
|
427
408
|
}
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
409
|
+
}
|
|
410
|
+
function refuseExcusedEditingPolicy(profile) {
|
|
411
|
+
if (profile.kind === undefined)
|
|
412
|
+
return;
|
|
413
|
+
const policy = getInlineWidgetEditing(profile.kind, defaultGrammarView);
|
|
414
|
+
if (policy && Object.keys(policy).length > 0) {
|
|
415
|
+
fail(`"${profile.kind}" declares an editing policy, so the editingPolicy cell cannot be excused`);
|
|
433
416
|
}
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
417
|
+
}
|
|
418
|
+
function refuseExcusedImageClaim(profile, rung) {
|
|
419
|
+
const stamped = profile.fixtures
|
|
420
|
+
.flatMap((f) => mintedNodes(f, profile, rung))
|
|
421
|
+
.find((n) => n.syntaxClaim?.prefix === rung.prefix);
|
|
422
|
+
if (stamped) {
|
|
423
|
+
fail(`a fixture mints a stamped built-in "${stamped.kind}", so the imageClaim cell has ` +
|
|
424
|
+
`something to bite on and cannot be excused`);
|
|
442
425
|
}
|
|
443
426
|
}
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The generic per-kind conformance battery
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `exempt`, never stubbed green. Runner-agnostic — plain `Error`s, no runner import.
|
|
2
|
+
* The generic per-kind conformance battery: registering a block kind enrolls it, one cell per
|
|
3
|
+
* `ClosureColumn` plus the raw-write cell, read from its descriptor and `conformanceFixture`. A
|
|
4
|
+
* cell runs only where headless code can observe what it checks; the rest is reported `boundary`
|
|
5
|
+
* or `exempt`, never stubbed green.
|
|
7
6
|
*/
|
|
8
7
|
import type { AnyBlockKind, CstNode, Document } from '../core/nodes';
|
|
9
|
-
import type
|
|
10
|
-
import { type
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
detail: string;
|
|
8
|
+
import { type ClosureCell, type ClosureColumn } from '../schema/closure';
|
|
9
|
+
import { type WriteRule } from '../schema/block-kind-descriptor';
|
|
10
|
+
import { type CellReport } from './conformance-core';
|
|
11
|
+
/** A closure column, plus `rawWrite`, which reads the descriptor rather than the closure block. */
|
|
12
|
+
export type KindCell = ClosureColumn | 'rawWrite';
|
|
13
|
+
export interface KindCellReport extends CellReport<KindCell> {
|
|
14
|
+
/** The closure mode the kind declared for the cell; absent on `rawWrite`. */
|
|
15
|
+
mode?: ClosureCell['mode'];
|
|
18
16
|
}
|
|
19
17
|
export interface KindConformanceReport {
|
|
20
18
|
kind: AnyBlockKind;
|
|
@@ -23,7 +21,6 @@ export interface KindConformanceReport {
|
|
|
23
21
|
/** The parsed fixture context a cell executor reads; absent without a `conformanceFixture`. */
|
|
24
22
|
export interface KindCellContext {
|
|
25
23
|
kind: AnyBlockKind;
|
|
26
|
-
descriptor: BlockKindDescriptor;
|
|
27
24
|
fixture: string;
|
|
28
25
|
doc: Document;
|
|
29
26
|
node: CstNode;
|
|
@@ -40,15 +37,13 @@ export interface KindConformanceProfile {
|
|
|
40
37
|
cells?: Partial<Record<ClosureColumn, KindCellCheck>>;
|
|
41
38
|
}
|
|
42
39
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
40
|
+
* Runs every headless closure cell for `kind`, or throws an `Error` naming each failed cell. A
|
|
41
|
+
* `conformanceFixture` that parses to no node of the kind fails the run outright.
|
|
45
42
|
*/
|
|
46
43
|
export declare function runKindConformance(kind: AnyBlockKind, profile?: KindConformanceProfile): Promise<KindConformanceReport>;
|
|
47
|
-
/**
|
|
48
|
-
*
|
|
49
|
-
* kind-specific synthesis, at BOTH endpoint roles — the honest meaning of
|
|
50
|
-
* `clipboard: inherit-default`. Endpoints ride the real selection funnel, so the expectation is
|
|
51
|
-
* the contract, never a re-derivation of the slice under test. Fixture contract: `fixture`
|
|
52
|
-
* parses to `kind` at `children[0]`; the kit adds its sentinel block on the sweeping side.
|
|
53
|
-
*/
|
|
44
|
+
/** Asserts the default cross-block copy over `kind`'s fixture is a raw byte slice at both endpoint
|
|
45
|
+
* roles, which is what `clipboard: inherit-default` means; the fixture opens with `kind`. */
|
|
54
46
|
export declare function checkCopyIsRawByteSlice(kind: AnyBlockKind, fixture: string): void;
|
|
47
|
+
/** Drives five writes over `kind`'s fixture through its `rawWrite` rule; each result must be a
|
|
48
|
+
* fixed point of the rule, leave the next block its own, and have an agreeing caret map. */
|
|
49
|
+
export declare function checkLeafRawWrite(kind: AnyBlockKind, fixture: string, rule?: WriteRule | undefined): void;
|