@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.
Files changed (1021) hide show
  1. package/README.md +2 -2
  2. package/dist/a11y-strings.d.ts +12 -5
  3. package/dist/a11y-strings.js +61 -5
  4. package/dist/action-contracts.d.ts +242 -155
  5. package/dist/action-contracts.js +2 -2
  6. package/dist/active-editor.d.ts +3 -3
  7. package/dist/active-editor.js +8 -9
  8. package/dist/ambient/ambient-dom.d.ts +2 -5
  9. package/dist/ambient/ambient-dom.js +16 -62
  10. package/dist/assert.js +6 -5
  11. package/dist/block-component.d.ts +135 -109
  12. package/dist/block-component.js +30 -22
  13. package/dist/block-id.d.ts +6 -10
  14. package/dist/block-id.js +25 -14
  15. package/dist/bounded-memo.d.ts +5 -5
  16. package/dist/bounded-memo.js +6 -6
  17. package/dist/components/BlockDragHandle.svelte +13 -20
  18. package/dist/components/BlockHost.svelte +56 -134
  19. package/dist/components/BlockList.svelte +22 -19
  20. package/dist/components/DecorationOverlay.svelte +9 -10
  21. package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
  22. package/dist/components/Editor.svelte +619 -1089
  23. package/dist/components/Editor.svelte.d.ts +9 -20
  24. package/dist/components/GapCaret.svelte +26 -59
  25. package/dist/components/SelectionOverlay.svelte +36 -67
  26. package/dist/components/SelectionOverlay.svelte.d.ts +6 -4
  27. package/dist/components/TailInsert.svelte +8 -55
  28. package/dist/components/TailInsert.svelte.d.ts +4 -6
  29. package/dist/components/block-content-selector.d.ts +11 -11
  30. package/dist/components/block-content-selector.js +11 -11
  31. package/dist/components/block-el-lookup.d.ts +6 -0
  32. package/dist/components/block-el-lookup.js +27 -0
  33. package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
  34. package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
  35. package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
  36. package/dist/components/blocks/code/CodeBlock.svelte +255 -276
  37. package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
  38. package/dist/components/blocks/code/CodeBlockRail.svelte +103 -100
  39. package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
  40. package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
  41. package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
  42. package/dist/components/blocks/code/code-bootstrap.js +35 -28
  43. package/dist/components/blocks/code/code-context-actions.js +5 -4
  44. package/dist/components/blocks/code/code-enter.js +2 -2
  45. package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
  46. package/dist/components/blocks/code/code-fence-boundary.js +40 -66
  47. package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
  48. package/dist/components/blocks/code/code-fence-exit.js +24 -25
  49. package/dist/components/blocks/code/code-indent.d.ts +2 -2
  50. package/dist/components/blocks/code/code-indent.js +4 -7
  51. package/dist/components/blocks/code/code-languages.d.ts +16 -12
  52. package/dist/components/blocks/code/code-languages.js +58 -32
  53. package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
  54. package/dist/components/blocks/code/code-paste-surface.js +9 -18
  55. package/dist/components/blocks/code/code-renderer.d.ts +21 -5
  56. package/dist/components/blocks/code/code-renderer.js +90 -125
  57. package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
  58. package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
  59. package/dist/components/blocks/directive/activate-directives.js +18 -13
  60. package/dist/components/blocks/editable-leaf.d.ts +50 -74
  61. package/dist/components/blocks/editable-leaf.js +144 -202
  62. package/dist/components/blocks/editable-surface.d.ts +96 -100
  63. package/dist/components/blocks/editable-surface.js +101 -109
  64. package/dist/components/blocks/list/ListBlock.svelte +46 -90
  65. package/dist/components/blocks/list/ListItemBlock.svelte +99 -144
  66. package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +3 -0
  67. package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
  68. package/dist/components/blocks/list/task-checkbox.js +12 -7
  69. package/dist/components/blocks/plain-text-backend.d.ts +4 -20
  70. package/dist/components/blocks/plain-text-backend.js +9 -43
  71. package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
  72. package/dist/components/blocks/surface-wiring.svelte.js +15 -34
  73. package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
  74. package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
  75. package/dist/components/blocks/table/TableBlock.svelte +100 -165
  76. package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
  77. package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
  78. package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
  79. package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
  80. package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
  81. package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
  82. package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
  83. package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
  84. package/dist/components/blocks/table/cell-pointer.js +49 -71
  85. package/dist/components/blocks/table/cell-render.d.ts +24 -29
  86. package/dist/components/blocks/table/cell-render.js +29 -31
  87. package/dist/components/blocks/table/selected-cells.d.ts +7 -7
  88. package/dist/components/blocks/table/selected-cells.js +9 -13
  89. package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
  90. package/dist/components/blocks/table/table-caret-at-point.js +5 -5
  91. package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
  92. package/dist/components/blocks/table/table-cell-paste.js +27 -43
  93. package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
  94. package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
  95. package/dist/components/blocks/table/table-menu-model.js +6 -10
  96. package/dist/components/blocks/table/table-navigation.js +2 -2
  97. package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
  98. package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
  99. package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
  100. package/dist/components/blocks/text/auto-pair-record.js +51 -0
  101. package/dist/components/blocks/text/click-snap-guard.d.ts +9 -4
  102. package/dist/components/blocks/text/click-snap-guard.js +16 -5
  103. package/dist/components/blocks/text/composition-seat.d.ts +17 -14
  104. package/dist/components/blocks/text/composition-seat.js +11 -11
  105. package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
  106. package/dist/components/blocks/text/construct-edge-delete.js +50 -65
  107. package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
  108. package/dist/components/blocks/text/construct-reveal.js +13 -14
  109. package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
  110. package/dist/components/blocks/text/delimiter-autopair.js +87 -103
  111. package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
  112. package/dist/components/blocks/text/edge-policy-dispatch.js +164 -180
  113. package/dist/components/blocks/text/edge-seat.d.ts +17 -26
  114. package/dist/components/blocks/text/edge-seat.js +43 -70
  115. package/dist/components/blocks/text/link-at-point.d.ts +9 -9
  116. package/dist/components/blocks/text/link-at-point.js +12 -15
  117. package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
  118. package/dist/components/blocks/text/live-join-seam.js +75 -112
  119. package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
  120. package/dist/components/blocks/text/live-selection-edit.js +32 -105
  121. package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
  122. package/dist/components/blocks/text/live-split-rebalance.js +50 -67
  123. package/dist/components/blocks/text/marker-completion.d.ts +7 -12
  124. package/dist/components/blocks/text/marker-completion.js +17 -10
  125. package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
  126. package/dist/components/blocks/text/pending-mark-insert.js +30 -49
  127. package/dist/components/blocks/text/screen-diff.d.ts +5 -15
  128. package/dist/components/blocks/text/screen-diff.js +5 -19
  129. package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
  130. package/dist/components/blocks/text/text-clipboard.js +27 -32
  131. package/dist/components/blocks/text/text-keydown.d.ts +20 -30
  132. package/dist/components/blocks/text/text-keydown.js +54 -51
  133. package/dist/components/blocks/text/text-render.d.ts +25 -35
  134. package/dist/components/blocks/text/text-render.js +82 -61
  135. package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
  136. package/dist/components/blocks/text/widget-adjacency.js +17 -17
  137. package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
  138. package/dist/components/blocks/text/widget-interaction.js +243 -208
  139. package/dist/components/blocks/widget-portal.d.ts +20 -29
  140. package/dist/components/blocks/widget-portal.js +16 -14
  141. package/dist/components/built-in-blocks.d.ts +3 -4
  142. package/dist/components/built-in-blocks.js +17 -18
  143. package/dist/components/drag-handle.d.ts +13 -30
  144. package/dist/components/drag-handle.js +25 -63
  145. package/dist/components/editor-built-ins.d.ts +1 -0
  146. package/dist/components/editor-built-ins.js +16 -0
  147. package/dist/components/editor-root-clipboard.d.ts +6 -6
  148. package/dist/components/editor-root-clipboard.js +16 -27
  149. package/dist/components/editor-root-document-swap.d.ts +49 -0
  150. package/dist/components/editor-root-document-swap.js +54 -0
  151. package/dist/components/editor-root-focus.d.ts +5 -4
  152. package/dist/components/editor-root-focus.js +51 -22
  153. package/dist/components/editor-root-focused-surface.d.ts +35 -0
  154. package/dist/components/editor-root-focused-surface.js +65 -0
  155. package/dist/components/editor-root-geometry.d.ts +15 -24
  156. package/dist/components/editor-root-geometry.js +27 -31
  157. package/dist/components/editor-root-gestures.d.ts +39 -0
  158. package/dist/components/editor-root-gestures.js +189 -0
  159. package/dist/components/editor-root-keydown.d.ts +10 -25
  160. package/dist/components/editor-root-keydown.js +19 -43
  161. package/dist/components/editor-root-listeners.d.ts +22 -31
  162. package/dist/components/editor-root-listeners.js +49 -46
  163. package/dist/components/editor-root-menus.d.ts +51 -0
  164. package/dist/components/editor-root-menus.js +147 -0
  165. package/dist/components/editor-root-mode-flip.d.ts +16 -11
  166. package/dist/components/editor-root-mode-flip.js +36 -34
  167. package/dist/components/editor-root-scroll-host.d.ts +22 -0
  168. package/dist/components/editor-root-scroll-host.js +34 -0
  169. package/dist/components/editor-root-test-surface.d.ts +48 -0
  170. package/dist/components/editor-root-test-surface.js +6 -0
  171. package/dist/components/image/ImageOverlayHost.svelte +44 -35
  172. package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
  173. package/dist/components/image/ImageProperties.svelte +37 -41
  174. package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
  175. package/dist/components/image/ImageResizeHandles.svelte +26 -30
  176. package/dist/components/image/image-crop.d.ts +5 -11
  177. package/dist/components/image/image-crop.js +5 -11
  178. package/dist/components/image/image-edit-commit.d.ts +19 -16
  179. package/dist/components/image/image-edit-commit.js +74 -38
  180. package/dist/components/image/image-resize.d.ts +2 -5
  181. package/dist/components/image/image-resize.js +3 -6
  182. package/dist/components/image/image-widget-editing.d.ts +3 -3
  183. package/dist/components/image/image-widget-editing.js +9 -9
  184. package/dist/components/image/widget-dom.d.ts +2 -3
  185. package/dist/components/image/widget-dom.js +19 -24
  186. package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
  187. package/dist/components/image/widget-selection-state.svelte.js +26 -19
  188. package/dist/components/kind-cue.svelte.d.ts +21 -0
  189. package/dist/components/kind-cue.svelte.js +35 -0
  190. package/dist/components/link-card/LinkCard.svelte +115 -64
  191. package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
  192. package/dist/components/link-card/LinkCardHost.svelte +42 -33
  193. package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
  194. package/dist/components/link-card/link-card-commit.d.ts +16 -19
  195. package/dist/components/link-card/link-card-commit.js +21 -30
  196. package/dist/components/link-card/link-card-entry.d.ts +13 -23
  197. package/dist/components/link-card/link-card-entry.js +16 -24
  198. package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
  199. package/dist/components/link-card/link-card-state.svelte.js +2 -2
  200. package/dist/components/lrd-map-gate.d.ts +4 -11
  201. package/dist/components/lrd-map-gate.js +5 -11
  202. package/dist/components/menu/BlockMenu.svelte +20 -81
  203. package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
  204. package/dist/components/menu/InlineMenuHost.svelte +191 -0
  205. package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
  206. package/dist/components/menu/MenuIcon.svelte +3 -103
  207. package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
  208. package/dist/components/menu/SelectionToolbar.svelte +380 -0
  209. package/dist/components/menu/SelectionToolbar.svelte.d.ts +14 -0
  210. package/dist/components/menu/clipboard-actions.d.ts +3 -4
  211. package/dist/components/menu/clipboard-actions.js +3 -4
  212. package/dist/components/menu/default-context-actions.d.ts +4 -13
  213. package/dist/components/menu/default-context-actions.js +49 -67
  214. package/dist/components/menu/flyout-placement.d.ts +2 -2
  215. package/dist/components/menu/flyout-placement.js +2 -2
  216. package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
  217. package/dist/components/menu/menu-presence.svelte.js +19 -0
  218. package/dist/components/paste-image-arm.d.ts +6 -11
  219. package/dist/components/paste-image-arm.js +11 -18
  220. package/dist/components/portal.d.ts +2 -5
  221. package/dist/components/portal.js +4 -7
  222. package/dist/core/directive/activate.d.ts +4 -5
  223. package/dist/core/directive/activate.js +8 -9
  224. package/dist/core/directive/container-opener.js +13 -12
  225. package/dist/core/directive/grammar.d.ts +2 -5
  226. package/dist/core/directive/grammar.js +10 -10
  227. package/dist/core/directive/kinds.d.ts +4 -7
  228. package/dist/core/directive/kinds.js +14 -16
  229. package/dist/core/directive/registry.d.ts +12 -9
  230. package/dist/core/directive/registry.js +19 -20
  231. package/dist/core/directive/text-recognizer.d.ts +3 -2
  232. package/dist/core/directive/text-recognizer.js +5 -9
  233. package/dist/core/escapable.d.ts +1 -5
  234. package/dist/core/escapable.js +1 -5
  235. package/dist/core/inline/backticks.d.ts +3 -4
  236. package/dist/core/inline/backticks.js +3 -4
  237. package/dist/core/inline/character-refs.js +2 -1
  238. package/dist/core/inline/destination-bytes.d.ts +6 -3
  239. package/dist/core/inline/destination-bytes.js +50 -8
  240. package/dist/core/inline/entity-widget.d.ts +4 -3
  241. package/dist/core/inline/entity-widget.js +6 -6
  242. package/dist/core/inline/format-toggle.d.ts +22 -28
  243. package/dist/core/inline/format-toggle.js +97 -129
  244. package/dist/core/inline/html-entities.d.ts +2 -3
  245. package/dist/core/inline/html-entities.js +2 -3
  246. package/dist/core/inline/html-tag-grammar.js +6 -2
  247. package/dist/core/inline/image-dimensions.d.ts +2 -0
  248. package/dist/core/inline/image-dimensions.js +19 -2
  249. package/dist/core/inline/image-source-bytes.d.ts +11 -0
  250. package/dist/core/inline/image-source-bytes.js +71 -0
  251. package/dist/core/inline/index.d.ts +28 -21
  252. package/dist/core/inline/index.js +56 -34
  253. package/dist/core/inline/inline-cache.d.ts +12 -15
  254. package/dist/core/inline/inline-cache.js +11 -14
  255. package/dist/core/inline/inline-widgets.d.ts +55 -68
  256. package/dist/core/inline/inline-widgets.js +55 -58
  257. package/dist/core/inline/link-destination.d.ts +31 -0
  258. package/dist/core/inline/link-destination.js +129 -0
  259. package/dist/core/inline/link-reference-resolver.d.ts +8 -6
  260. package/dist/core/inline/link-reference-resolver.js +10 -6
  261. package/dist/core/inline/link-source-bytes.d.ts +31 -0
  262. package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
  263. package/dist/core/inline/live-edit/read-back.d.ts +29 -0
  264. package/dist/core/inline/live-edit/read-back.js +50 -0
  265. package/dist/core/inline/picture.d.ts +10 -0
  266. package/dist/core/inline/picture.js +40 -0
  267. package/dist/core/inline/scan/autolinks.d.ts +7 -8
  268. package/dist/core/inline/scan/autolinks.js +80 -59
  269. package/dist/core/inline/scan/brackets.d.ts +2 -2
  270. package/dist/core/inline/scan/brackets.js +6 -103
  271. package/dist/core/inline/scan/code-spans.d.ts +4 -0
  272. package/dist/core/inline/scan/code-spans.js +8 -0
  273. package/dist/core/inline/scan/emphasis.js +10 -14
  274. package/dist/core/inline/scan/index.d.ts +3 -1
  275. package/dist/core/inline/scan/index.js +32 -33
  276. package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
  277. package/dist/core/inline/scan/plugin-syntax.js +75 -89
  278. package/dist/core/inline/scan/scan-state.d.ts +2 -0
  279. package/dist/core/inline/scan/scan-state.js +1 -0
  280. package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
  281. package/dist/core/inline/scan/simple-nodes.js +2 -5
  282. package/dist/core/inline/scan/triggers.d.ts +17 -0
  283. package/dist/core/inline/scan/triggers.js +26 -0
  284. package/dist/core/inline/scan/url.js +8 -10
  285. package/dist/core/inline/transparency.d.ts +2 -1
  286. package/dist/core/inline/transparency.js +33 -17
  287. package/dist/core/inline/visibility.d.ts +30 -49
  288. package/dist/core/inline/visibility.js +31 -49
  289. package/dist/core/inline/walk.d.ts +4 -10
  290. package/dist/core/inline/walk.js +4 -10
  291. package/dist/core/inline-render.d.ts +22 -27
  292. package/dist/core/inline-render.js +51 -60
  293. package/dist/core/lines.d.ts +67 -26
  294. package/dist/core/lines.js +164 -33
  295. package/dist/core/metadata-parity.d.ts +9 -0
  296. package/dist/core/metadata-parity.js +25 -0
  297. package/dist/core/node-views.d.ts +7 -6
  298. package/dist/core/node-views.js +5 -5
  299. package/dist/core/nodes.d.ts +34 -44
  300. package/dist/core/nodes.js +4 -12
  301. package/dist/core/parser.d.ts +27 -34
  302. package/dist/core/parser.js +53 -67
  303. package/dist/core/parsers/blockquote.d.ts +5 -8
  304. package/dist/core/parsers/blockquote.js +11 -10
  305. package/dist/core/parsers/built-in-openers.d.ts +2 -5
  306. package/dist/core/parsers/built-in-openers.js +5 -8
  307. package/dist/core/parsers/fence-syntax.d.ts +36 -7
  308. package/dist/core/parsers/fence-syntax.js +61 -11
  309. package/dist/core/parsers/fenced-code.d.ts +16 -0
  310. package/dist/core/parsers/fenced-code.js +16 -15
  311. package/dist/core/parsers/heading.d.ts +19 -2
  312. package/dist/core/parsers/heading.js +50 -2
  313. package/dist/core/parsers/html-block.d.ts +3 -6
  314. package/dist/core/parsers/html-block.js +10 -11
  315. package/dist/core/parsers/indented-code.d.ts +1 -1
  316. package/dist/core/parsers/indented-code.js +2 -8
  317. package/dist/core/parsers/link-reference.d.ts +5 -3
  318. package/dist/core/parsers/link-reference.js +116 -120
  319. package/dist/core/parsers/list.d.ts +12 -5
  320. package/dist/core/parsers/list.js +53 -36
  321. package/dist/core/parsers/paragraph.d.ts +3 -3
  322. package/dist/core/parsers/paragraph.js +14 -5
  323. package/dist/core/parsers/table-completion.d.ts +2 -5
  324. package/dist/core/parsers/table-completion.js +7 -10
  325. package/dist/core/parsers/table.d.ts +8 -8
  326. package/dist/core/parsers/table.js +23 -26
  327. package/dist/core/parsers/thematic-break.js +15 -14
  328. package/dist/core/paths.d.ts +13 -0
  329. package/dist/core/paths.js +31 -0
  330. package/dist/core/terminator-escalation.d.ts +0 -7
  331. package/dist/core/terminator-escalation.js +5 -8
  332. package/dist/core/url-policy.d.ts +2 -5
  333. package/dist/core/url-policy.js +8 -12
  334. package/dist/cursor/caret-memory.d.ts +34 -0
  335. package/dist/cursor/caret-memory.js +82 -0
  336. package/dist/cursor/coordinate-spaces.d.ts +26 -19
  337. package/dist/cursor/coordinate-spaces.js +32 -20
  338. package/dist/cursor/dom-walk.d.ts +7 -13
  339. package/dist/cursor/dom-walk.js +7 -13
  340. package/dist/cursor/edge-affinity.d.ts +7 -35
  341. package/dist/cursor/edge-affinity.js +13 -44
  342. package/dist/cursor/focused-caret.d.ts +6 -8
  343. package/dist/cursor/focused-caret.js +7 -16
  344. package/dist/cursor/height-model.d.ts +3 -3
  345. package/dist/cursor/height-model.js +5 -5
  346. package/dist/cursor/height-oracle.d.ts +10 -7
  347. package/dist/cursor/height-oracle.js +26 -75
  348. package/dist/cursor/observe-resize.d.ts +13 -0
  349. package/dist/cursor/observe-resize.js +43 -0
  350. package/dist/cursor/overlay-rects.d.ts +2 -5
  351. package/dist/cursor/overlay-rects.js +2 -5
  352. package/dist/cursor/overlay-remeasure.d.ts +6 -7
  353. package/dist/cursor/overlay-remeasure.js +10 -14
  354. package/dist/cursor/pending-marks.d.ts +7 -9
  355. package/dist/cursor/pending-marks.js +6 -27
  356. package/dist/cursor/point-offset.d.ts +16 -10
  357. package/dist/cursor/point-offset.js +60 -25
  358. package/dist/cursor/reveal-source.d.ts +7 -11
  359. package/dist/cursor/reveal-source.js +10 -18
  360. package/dist/cursor/scroll-ancestors.d.ts +9 -20
  361. package/dist/cursor/scroll-ancestors.js +14 -26
  362. package/dist/cursor/scroll-owner.d.ts +92 -0
  363. package/dist/cursor/scroll-owner.js +283 -0
  364. package/dist/cursor/scrollport.d.ts +16 -8
  365. package/dist/cursor/scrollport.js +28 -5
  366. package/dist/cursor/sticky-column.d.ts +6 -29
  367. package/dist/cursor/sticky-column.js +6 -49
  368. package/dist/cursor/sticky-measure.d.ts +14 -9
  369. package/dist/cursor/sticky-measure.js +99 -49
  370. package/dist/cursor/surface-backend.d.ts +41 -0
  371. package/dist/cursor/surface-backend.js +78 -0
  372. package/dist/cursor/typography-estimates.d.ts +3 -3
  373. package/dist/cursor/typography-estimates.js +3 -3
  374. package/dist/cursor/visual-lines.d.ts +25 -13
  375. package/dist/cursor/visual-lines.js +72 -28
  376. package/dist/cursor/widget-edge-snap.d.ts +23 -0
  377. package/dist/cursor/widget-edge-snap.js +39 -0
  378. package/dist/cursor/widget-offset.d.ts +111 -102
  379. package/dist/cursor/widget-offset.js +352 -177
  380. package/dist/debug/diagnostics-report.d.ts +6 -6
  381. package/dist/debug/diagnostics-report.js +5 -5
  382. package/dist/debug/dump-tree.js +2 -2
  383. package/dist/debug/editor-diagnostics.d.ts +15 -0
  384. package/dist/debug/editor-diagnostics.js +33 -0
  385. package/dist/debug/inspect.d.ts +2 -2
  386. package/dist/debug/inspect.js +4 -4
  387. package/dist/debug/interaction-trace.d.ts +14 -15
  388. package/dist/debug/interaction-trace.js +19 -20
  389. package/dist/debug/operations-log.d.ts +1 -1
  390. package/dist/debug/operations-log.js +1 -1
  391. package/dist/decorations/buckets.d.ts +6 -12
  392. package/dist/decorations/buckets.js +4 -11
  393. package/dist/decorations/decoration-state.svelte.d.ts +2 -3
  394. package/dist/decorations/decoration-state.svelte.js +24 -26
  395. package/dist/decorations/island-dom.d.ts +10 -18
  396. package/dist/decorations/island-dom.js +25 -50
  397. package/dist/decorations/reserved-attrs.d.ts +6 -8
  398. package/dist/decorations/reserved-attrs.js +31 -17
  399. package/dist/decorations/types.d.ts +6 -7
  400. package/dist/decorations/types.js +2 -1
  401. package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
  402. package/dist/decorations/use-block-decorations.svelte.js +71 -0
  403. package/dist/decorations/widget-dom.d.ts +3 -3
  404. package/dist/decorations/widget-dom.js +5 -5
  405. package/dist/dev-warn.d.ts +5 -2
  406. package/dist/dev-warn.js +16 -4
  407. package/dist/editor-actions/ancestry-folds.d.ts +9 -14
  408. package/dist/editor-actions/ancestry-folds.js +13 -18
  409. package/dist/editor-actions/block-edit-core.d.ts +49 -22
  410. package/dist/editor-actions/block-edit-core.js +279 -151
  411. package/dist/editor-actions/block-edit-scope.d.ts +63 -50
  412. package/dist/editor-actions/block-edit-scope.js +100 -48
  413. package/dist/editor-actions/block-edit.d.ts +2 -3
  414. package/dist/editor-actions/block-edit.js +14 -90
  415. package/dist/editor-actions/commit/history.d.ts +4 -4
  416. package/dist/editor-actions/commit/history.js +33 -34
  417. package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
  418. package/dist/editor-actions/commit/reading-write-gate.js +56 -0
  419. package/dist/editor-actions/commit/text-batch.d.ts +7 -11
  420. package/dist/editor-actions/commit/text-batch.js +6 -7
  421. package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
  422. package/dist/editor-actions/commit/undo-controller.js +346 -216
  423. package/dist/editor-actions/container-block-component.d.ts +32 -51
  424. package/dist/editor-actions/container-block-component.js +66 -92
  425. package/dist/editor-actions/container-edit.d.ts +4 -2
  426. package/dist/editor-actions/container-edit.js +14 -44
  427. package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
  428. package/dist/editor-actions/container-exit-overrides.js +19 -21
  429. package/dist/editor-actions/deps.d.ts +25 -32
  430. package/dist/editor-actions/enter-completion.d.ts +12 -15
  431. package/dist/editor-actions/enter-completion.js +49 -51
  432. package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
  433. package/dist/editor-actions/focus/focus-dispatch.js +33 -52
  434. package/dist/editor-actions/focus/focus-landing.d.ts +11 -5
  435. package/dist/editor-actions/focus/focus-landing.js +29 -14
  436. package/dist/editor-actions/focus/focus.d.ts +3 -2
  437. package/dist/editor-actions/focus/focus.js +42 -59
  438. package/dist/editor-actions/index.d.ts +4 -3
  439. package/dist/editor-actions/index.js +5 -4
  440. package/dist/editor-actions/inline-range-commit.d.ts +18 -16
  441. package/dist/editor-actions/inline-range-commit.js +45 -54
  442. package/dist/editor-actions/leaf-write.d.ts +11 -0
  443. package/dist/editor-actions/leaf-write.js +102 -0
  444. package/dist/editor-actions/list-context.d.ts +9 -10
  445. package/dist/editor-actions/list-context.js +115 -110
  446. package/dist/editor-actions/list-overrides.d.ts +13 -5
  447. package/dist/editor-actions/list-overrides.js +36 -12
  448. package/dist/editor-actions/merge-fallback.d.ts +10 -16
  449. package/dist/editor-actions/merge-fallback.js +11 -22
  450. package/dist/editor-actions/nested/container-actions.d.ts +37 -0
  451. package/dist/editor-actions/nested/container-actions.js +42 -0
  452. package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
  453. package/dist/editor-actions/nested/emptied-container.js +5 -0
  454. package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
  455. package/dist/editor-actions/nested/nested-actions.js +17 -15
  456. package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
  457. package/dist/editor-actions/nested/nested-block-edit.js +40 -134
  458. package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
  459. package/dist/editor-actions/nested/nested-focus.js +33 -21
  460. package/dist/editor-actions/paste-coordinator.d.ts +3 -2
  461. package/dist/editor-actions/paste-coordinator.js +17 -13
  462. package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
  463. package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
  464. package/dist/editor-actions/plugin/container.d.ts +55 -76
  465. package/dist/editor-actions/plugin/container.js +105 -186
  466. package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
  467. package/dist/editor-actions/plugin/directive-container.js +7 -8
  468. package/dist/editor-actions/reorder-action.d.ts +7 -12
  469. package/dist/editor-actions/reorder-action.js +32 -48
  470. package/dist/editor-actions/reorder-drag.d.ts +12 -8
  471. package/dist/editor-actions/reorder-drag.js +45 -41
  472. package/dist/editor-actions/replacement-focus.d.ts +13 -21
  473. package/dist/editor-actions/replacement-focus.js +32 -33
  474. package/dist/editor-actions/search-replace.js +71 -67
  475. package/dist/editor-actions/stored-caret.d.ts +7 -0
  476. package/dist/editor-actions/stored-caret.js +10 -0
  477. package/dist/editor-actions/table-context.d.ts +9 -11
  478. package/dist/editor-actions/table-context.js +70 -93
  479. package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
  480. package/dist/editor-actions/unwrap-strategies.js +52 -63
  481. package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
  482. package/dist/editor-actions/whole-block-focus-surface.js +43 -53
  483. package/dist/editor-events.d.ts +25 -29
  484. package/dist/editor-events.js +17 -28
  485. package/dist/editor-keys.d.ts +96 -104
  486. package/dist/editor-keys.js +11 -24
  487. package/dist/editor-props.d.ts +91 -71
  488. package/dist/editor-rects.d.ts +23 -34
  489. package/dist/editor-rects.js +9 -77
  490. package/dist/env.d.ts +6 -4
  491. package/dist/env.js +8 -4
  492. package/dist/index.d.ts +6 -2
  493. package/dist/index.js +5 -2
  494. package/dist/inline-menu/inline-menu-session.d.ts +37 -0
  495. package/dist/inline-menu/inline-menu-session.js +98 -0
  496. package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
  497. package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
  498. package/dist/inline-menu/types.d.ts +77 -0
  499. package/dist/inline-menu/types.js +7 -0
  500. package/dist/invariants/child-id-parity.d.ts +23 -0
  501. package/dist/invariants/child-id-parity.js +39 -0
  502. package/dist/invariants/commit-paths.d.ts +4 -4
  503. package/dist/invariants/commit-paths.js +4 -4
  504. package/dist/invariants/commit-scope.d.ts +4 -4
  505. package/dist/invariants/commit-scope.js +9 -8
  506. package/dist/invariants/context-keys.d.ts +2 -5
  507. package/dist/invariants/context-keys.js +3 -6
  508. package/dist/invariants/descriptor.d.ts +2 -6
  509. package/dist/invariants/descriptor.js +2 -6
  510. package/dist/invariants/inline-transitions.d.ts +9 -16
  511. package/dist/invariants/inline-transitions.js +10 -18
  512. package/dist/invariants/install.d.ts +18 -27
  513. package/dist/invariants/install.js +29 -30
  514. package/dist/invariants/keeps-a-block.d.ts +7 -0
  515. package/dist/invariants/keeps-a-block.js +14 -0
  516. package/dist/invariants/landable-caret.d.ts +5 -7
  517. package/dist/invariants/landable-caret.js +8 -11
  518. package/dist/invariants/landing-focus-scroll.d.ts +7 -0
  519. package/dist/invariants/landing-focus-scroll.js +13 -0
  520. package/dist/invariants/landing-value.d.ts +13 -0
  521. package/dist/invariants/landing-value.js +27 -0
  522. package/dist/invariants/marker-css-parity.d.ts +5 -6
  523. package/dist/invariants/marker-css-parity.js +11 -12
  524. package/dist/invariants/measures-in-own-list.d.ts +6 -0
  525. package/dist/invariants/measures-in-own-list.js +13 -0
  526. package/dist/invariants/node-shape.d.ts +18 -37
  527. package/dist/invariants/node-shape.js +123 -79
  528. package/dist/invariants/open-tail.d.ts +7 -0
  529. package/dist/invariants/open-tail.js +45 -0
  530. package/dist/invariants/placement-ends-widget.d.ts +8 -0
  531. package/dist/invariants/placement-ends-widget.js +13 -0
  532. package/dist/invariants/registry.d.ts +27 -66
  533. package/dist/invariants/registry.js +61 -137
  534. package/dist/invariants/render-fidelity.d.ts +4 -4
  535. package/dist/invariants/render-fidelity.js +5 -5
  536. package/dist/invariants/selection-endpoints.d.ts +6 -7
  537. package/dist/invariants/selection-endpoints.js +18 -16
  538. package/dist/invariants/single-node-sink.d.ts +4 -5
  539. package/dist/invariants/single-node-sink.js +4 -5
  540. package/dist/invariants/snapshot-integrity.d.ts +5 -6
  541. package/dist/invariants/snapshot-integrity.js +1 -1
  542. package/dist/invariants/structural-descriptor.d.ts +6 -15
  543. package/dist/invariants/structural-descriptor.js +6 -15
  544. package/dist/menu-icons.d.ts +47 -0
  545. package/dist/menu-icons.js +113 -0
  546. package/dist/perf/instruments.d.ts +20 -5
  547. package/dist/perf/instruments.js +35 -15
  548. package/dist/perf/use-mount-gauge.svelte.js +4 -4
  549. package/dist/plugin.d.ts +38 -8
  550. package/dist/plugin.js +102 -74
  551. package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
  552. package/dist/plugins/admonitions/admonition-kind.js +12 -10
  553. package/dist/plugins/admonitions/convert-document.d.ts +5 -5
  554. package/dist/plugins/admonitions/convert-document.js +8 -7
  555. package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
  556. package/dist/plugins/admonitions/gh-alert.js +21 -22
  557. package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
  558. package/dist/plugins/admonitions/github-alert-kind.js +28 -37
  559. package/dist/plugins/admonitions/index.js +2 -2
  560. package/dist/plugins/admonitions/kinds.d.ts +1 -1
  561. package/dist/plugins/admonitions/register.js +11 -2
  562. package/dist/plugins/details/DetailsBlock.svelte +20 -20
  563. package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
  564. package/dist/plugins/details/details-disclosure.svelte.js +6 -7
  565. package/dist/plugins/details/details-kind.d.ts +6 -7
  566. package/dist/plugins/details/details-kind.js +44 -59
  567. package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
  568. package/dist/plugins/emoji/emoji-recognizer.js +7 -14
  569. package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
  570. package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
  571. package/dist/plugins/footnotes/constants.d.ts +2 -0
  572. package/dist/plugins/footnotes/constants.js +3 -0
  573. package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
  574. package/dist/plugins/footnotes/footnote-definition.js +69 -45
  575. package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
  576. package/dist/plugins/footnotes/footnote-lookup.js +14 -26
  577. package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
  578. package/dist/plugins/footnotes/footnote-numbering.js +22 -31
  579. package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
  580. package/dist/plugins/footnotes/footnote-reference.js +8 -13
  581. package/dist/plugins/footnotes/index.js +2 -3
  582. package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
  583. package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
  584. package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
  585. package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
  586. package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
  587. package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
  588. package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
  589. package/dist/plugins/highlight-occurrences/word-char.js +4 -0
  590. package/dist/plugins/latex/BlockMath.svelte +58 -75
  591. package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
  592. package/dist/plugins/latex/MathInline.svelte +10 -9
  593. package/dist/plugins/latex/flanking.d.ts +1 -0
  594. package/dist/plugins/latex/flanking.js +3 -0
  595. package/dist/plugins/latex/index.d.ts +1 -1
  596. package/dist/plugins/latex/latex-kind.d.ts +4 -4
  597. package/dist/plugins/latex/latex-kind.js +113 -85
  598. package/dist/plugins/latex/math-completion.d.ts +1 -1
  599. package/dist/plugins/latex/math-completion.js +5 -8
  600. package/dist/plugins/latex/math-layout.d.ts +2 -8
  601. package/dist/plugins/latex/math-layout.js +0 -9
  602. package/dist/plugins/latex/math-renderer.d.ts +17 -20
  603. package/dist/plugins/latex/math-renderer.js +21 -38
  604. package/dist/plugins/latex/math-source.d.ts +4 -8
  605. package/dist/plugins/latex/math-source.js +36 -75
  606. package/dist/plugins/latex/register.d.ts +10 -11
  607. package/dist/plugins/latex/register.js +24 -10
  608. package/dist/plugins/latex/renderer.d.ts +9 -10
  609. package/dist/plugins/latex/renderer.js +9 -24
  610. package/dist/plugins/mermaid/MermaidBlock.svelte +63 -47
  611. package/dist/plugins/mermaid/index.js +1 -1
  612. package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
  613. package/dist/plugins/mermaid/mermaid-kind.js +30 -47
  614. package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
  615. package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
  616. package/dist/plugins/mermaid/register.d.ts +3 -3
  617. package/dist/plugins/mermaid/register.js +5 -5
  618. package/dist/plugins/mermaid/renderer.d.ts +5 -5
  619. package/dist/plugins/mermaid/renderer.js +8 -11
  620. package/dist/plugins/parrot/ParrotBlock.svelte +18 -7
  621. package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
  622. package/dist/plugins/parrot/parrot-plugin.js +3 -3
  623. package/dist/plugins/slash-commands/filter.d.ts +23 -0
  624. package/dist/plugins/slash-commands/filter.js +31 -0
  625. package/dist/plugins/slash-commands/index.d.ts +2 -0
  626. package/dist/plugins/slash-commands/index.js +2 -0
  627. package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
  628. package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
  629. package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
  630. package/dist/plugins/slash-commands/slash-source.js +108 -0
  631. package/dist/plugins/toc/TocBlock.svelte +23 -22
  632. package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
  633. package/dist/plugins/toc/heading-outline.d.ts +7 -12
  634. package/dist/plugins/toc/heading-outline.js +22 -36
  635. package/dist/plugins/toc/navigation-queue.d.ts +2 -4
  636. package/dist/plugins/toc/toc-plugin.d.ts +5 -5
  637. package/dist/plugins/toc/toc-plugin.js +20 -13
  638. package/dist/presentation-mode.d.ts +15 -23
  639. package/dist/presentation-mode.js +19 -25
  640. package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
  641. package/dist/reactivity/block-list-state.svelte.js +8 -9
  642. package/dist/reactivity/block-window.svelte.d.ts +12 -6
  643. package/dist/reactivity/block-window.svelte.js +44 -17
  644. package/dist/reactivity/child-list.d.ts +34 -0
  645. package/dist/reactivity/child-list.js +48 -0
  646. package/dist/reactivity/content-version.svelte.d.ts +4 -7
  647. package/dist/reactivity/content-version.svelte.js +3 -5
  648. package/dist/reactivity/hold-across.d.ts +39 -0
  649. package/dist/reactivity/hold-across.js +57 -0
  650. package/dist/reactivity/layout-state.svelte.d.ts +27 -0
  651. package/dist/reactivity/layout-state.svelte.js +51 -0
  652. package/dist/reactivity/list-tree.d.ts +39 -0
  653. package/dist/reactivity/list-tree.js +132 -0
  654. package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
  655. package/dist/reactivity/list-windowing.svelte.js +143 -292
  656. package/dist/reactivity/measure-batch.d.ts +6 -8
  657. package/dist/reactivity/measure-batch.js +5 -6
  658. package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
  659. package/dist/reactivity/publish-ref.svelte.js +21 -85
  660. package/dist/reactivity/scope-geometry.d.ts +6 -13
  661. package/dist/reactivity/scope-geometry.js +7 -14
  662. package/dist/reactivity/state-registry.d.ts +5 -5
  663. package/dist/reactivity/state-registry.js +11 -15
  664. package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
  665. package/dist/reactivity/use-container-windowing.svelte.js +64 -74
  666. package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
  667. package/dist/reactivity/use-measured-child.svelte.js +41 -0
  668. package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
  669. package/dist/reactivity/use-window-floor.svelte.js +27 -0
  670. package/dist/reactivity/window-slice.d.ts +4 -4
  671. package/dist/reactivity/window-slice.js +0 -2
  672. package/dist/renderer-slot.d.ts +48 -0
  673. package/dist/renderer-slot.js +85 -0
  674. package/dist/scan-index.d.ts +4 -4
  675. package/dist/scan-index.js +4 -4
  676. package/dist/schema/block-commands.d.ts +69 -54
  677. package/dist/schema/block-commands.js +91 -104
  678. package/dist/schema/block-completions.d.ts +16 -19
  679. package/dist/schema/block-completions.js +25 -32
  680. package/dist/schema/block-component-registry.d.ts +13 -14
  681. package/dist/schema/block-component-registry.js +19 -17
  682. package/dist/schema/block-kind-descriptor.d.ts +234 -168
  683. package/dist/schema/block-kind-descriptor.js +151 -66
  684. package/dist/schema/block-openers.d.ts +48 -39
  685. package/dist/schema/block-openers.js +73 -83
  686. package/dist/schema/built-in-descriptors.d.ts +3 -5
  687. package/dist/schema/built-in-descriptors.js +96 -80
  688. package/dist/schema/child-spans.d.ts +12 -10
  689. package/dist/schema/child-spans.js +68 -34
  690. package/dist/schema/closure.d.ts +18 -16
  691. package/dist/schema/closure.js +24 -14
  692. package/dist/schema/command-id.d.ts +6 -8
  693. package/dist/schema/command-id.js +20 -25
  694. package/dist/schema/commands.d.ts +79 -81
  695. package/dist/schema/commands.js +156 -116
  696. package/dist/schema/container-raw.d.ts +51 -11
  697. package/dist/schema/container-raw.js +143 -14
  698. package/dist/schema/container-rebuilders.d.ts +17 -15
  699. package/dist/schema/container-rebuilders.js +30 -22
  700. package/dist/schema/context-actions.d.ts +25 -13
  701. package/dist/schema/context-actions.js +32 -17
  702. package/dist/schema/define-plugin-block.d.ts +8 -6
  703. package/dist/schema/define-plugin-block.js +6 -4
  704. package/dist/schema/fenced-code-raw.d.ts +30 -17
  705. package/dist/schema/fenced-code-raw.js +155 -107
  706. package/dist/schema/global-commands.d.ts +6 -6
  707. package/dist/schema/global-commands.js +14 -22
  708. package/dist/schema/height-estimates.d.ts +31 -0
  709. package/dist/schema/height-estimates.js +64 -0
  710. package/dist/schema/inline-construct-policy.d.ts +42 -55
  711. package/dist/schema/inline-construct-policy.js +36 -35
  712. package/dist/schema/insert-catalogue.d.ts +30 -0
  713. package/dist/schema/insert-catalogue.js +95 -0
  714. package/dist/schema/keybinding-overrides.d.ts +9 -11
  715. package/dist/schema/keybinding-overrides.js +1 -1
  716. package/dist/schema/keybindings.d.ts +15 -7
  717. package/dist/schema/keybindings.js +21 -9
  718. package/dist/schema/merge-rules.d.ts +5 -7
  719. package/dist/schema/merge-rules.js +7 -9
  720. package/dist/schema/opener-priorities.d.ts +4 -4
  721. package/dist/schema/opener-priorities.js +4 -4
  722. package/dist/schema/operations.d.ts +9 -11
  723. package/dist/schema/operations.js +3 -3
  724. package/dist/schema/page-role.d.ts +14 -0
  725. package/dist/schema/page-role.js +19 -0
  726. package/dist/schema/plugin-activation.d.ts +4 -6
  727. package/dist/schema/plugin-activation.js +12 -10
  728. package/dist/schema/plugin-editor-context.d.ts +25 -10
  729. package/dist/schema/plugin-editor-context.js +40 -9
  730. package/dist/schema/plugin-install.d.ts +49 -17
  731. package/dist/schema/plugin-install.js +51 -25
  732. package/dist/schema/plugin-kind.d.ts +12 -8
  733. package/dist/schema/plugin-kind.js +35 -42
  734. package/dist/schema/plugin-name.js +3 -3
  735. package/dist/schema/plugin-registry.d.ts +54 -0
  736. package/dist/schema/plugin-registry.js +70 -0
  737. package/dist/schema/reading.d.ts +23 -0
  738. package/dist/schema/reading.js +7 -0
  739. package/dist/schema/register-once.d.ts +3 -5
  740. package/dist/schema/register-once.js +7 -16
  741. package/dist/schema/registration-checks.d.ts +12 -16
  742. package/dist/schema/registration-checks.js +35 -51
  743. package/dist/schema/registration-pairs.d.ts +54 -0
  744. package/dist/schema/registration-pairs.js +48 -0
  745. package/dist/schema/registration-pending.d.ts +8 -12
  746. package/dist/schema/registration-pending.js +9 -9
  747. package/dist/schema/registry-reset.d.ts +8 -4
  748. package/dist/schema/registry-reset.js +13 -26
  749. package/dist/schema/registry-view.d.ts +25 -13
  750. package/dist/schema/registry-view.js +26 -20
  751. package/dist/schema/reserved-chords.d.ts +9 -10
  752. package/dist/schema/reserved-chords.js +73 -78
  753. package/dist/schema/reserved-chrome.d.ts +12 -11
  754. package/dist/schema/reserved-chrome.js +15 -11
  755. package/dist/schema/setext-raw.d.ts +13 -0
  756. package/dist/schema/setext-raw.js +33 -0
  757. package/dist/schema/stored-as.d.ts +20 -0
  758. package/dist/schema/stored-as.js +6 -0
  759. package/dist/schema/table-cell-raw.d.ts +18 -7
  760. package/dist/schema/table-cell-raw.js +28 -7
  761. package/dist/schema/whole-block-unit.d.ts +5 -4
  762. package/dist/schema/whole-block-unit.js +5 -4
  763. package/dist/search/document-scan.d.ts +3 -3
  764. package/dist/search/document-scan.js +2 -2
  765. package/dist/search/matcher.d.ts +1 -1
  766. package/dist/search/regex-executor.d.ts +5 -6
  767. package/dist/search/regex-executor.js +6 -8
  768. package/dist/search/replace.d.ts +2 -5
  769. package/dist/search/replace.js +2 -5
  770. package/dist/search/search-state.svelte.d.ts +5 -5
  771. package/dist/search/search-state.svelte.js +12 -16
  772. package/dist/selection/autoscroll.d.ts +6 -9
  773. package/dist/selection/block-hit-test.d.ts +16 -24
  774. package/dist/selection/block-hit-test.js +29 -22
  775. package/dist/selection/caret-doors.d.ts +15 -14
  776. package/dist/selection/caret-doors.js +37 -26
  777. package/dist/selection/caret-landing.d.ts +62 -0
  778. package/dist/selection/caret-landing.js +157 -0
  779. package/dist/selection/caret-restore.d.ts +17 -10
  780. package/dist/selection/caret-restore.js +10 -22
  781. package/dist/selection/caret-target.d.ts +30 -0
  782. package/dist/selection/caret-target.js +84 -0
  783. package/dist/selection/char-endpoint-snap.d.ts +6 -10
  784. package/dist/selection/char-endpoint-snap.js +8 -14
  785. package/dist/selection/clipboard-text.d.ts +5 -12
  786. package/dist/selection/clipboard-text.js +69 -172
  787. package/dist/selection/covered-block.d.ts +6 -8
  788. package/dist/selection/covered-block.js +8 -19
  789. package/dist/selection/cross-block/clipboard.d.ts +3 -2
  790. package/dist/selection/cross-block/clipboard.js +13 -4
  791. package/dist/selection/cross-block/dispatch.d.ts +47 -43
  792. package/dist/selection/cross-block/dispatch.js +12 -23
  793. package/dist/selection/cross-block/format-range.d.ts +18 -21
  794. package/dist/selection/cross-block/format-range.js +104 -103
  795. package/dist/selection/cross-block/format-toggle.d.ts +10 -15
  796. package/dist/selection/cross-block/format-toggle.js +28 -33
  797. package/dist/selection/cross-block/keydown.d.ts +4 -4
  798. package/dist/selection/cross-block/keydown.js +93 -152
  799. package/dist/selection/cross-block/ops.d.ts +19 -34
  800. package/dist/selection/cross-block/ops.js +110 -95
  801. package/dist/selection/cross-block/paste.d.ts +2 -3
  802. package/dist/selection/cross-block/paste.js +61 -104
  803. package/dist/selection/cross-block/pointer.d.ts +17 -15
  804. package/dist/selection/cross-block/pointer.js +74 -25
  805. package/dist/selection/cross-block/type-replace.d.ts +4 -6
  806. package/dist/selection/cross-block/type-replace.js +53 -146
  807. package/dist/selection/dead-space-caret.d.ts +20 -28
  808. package/dist/selection/dead-space-caret.js +79 -87
  809. package/dist/selection/drag-pointer.d.ts +22 -5
  810. package/dist/selection/drag-pointer.js +63 -31
  811. package/dist/selection/gap-caret.d.ts +17 -28
  812. package/dist/selection/gap-caret.js +14 -26
  813. package/dist/selection/grid-selection.d.ts +12 -0
  814. package/dist/selection/grid-selection.js +22 -0
  815. package/dist/selection/keyboard-extend.d.ts +27 -39
  816. package/dist/selection/keyboard-extend.js +94 -116
  817. package/dist/selection/multi-click.d.ts +37 -0
  818. package/dist/selection/multi-click.js +197 -0
  819. package/dist/selection/native-bridge.d.ts +30 -37
  820. package/dist/selection/native-bridge.js +80 -100
  821. package/dist/selection/nearest-block.d.ts +17 -12
  822. package/dist/selection/nearest-block.js +37 -18
  823. package/dist/selection/path-lookup.d.ts +31 -14
  824. package/dist/selection/path-lookup.js +110 -20
  825. package/dist/selection/path-math.d.ts +9 -11
  826. package/dist/selection/path-math.js +5 -7
  827. package/dist/selection/pointer-gesture.d.ts +9 -0
  828. package/dist/selection/pointer-gesture.js +11 -0
  829. package/dist/selection/pointer-session.d.ts +10 -16
  830. package/dist/selection/pointer-session.js +6 -7
  831. package/dist/selection/primitives.d.ts +64 -33
  832. package/dist/selection/primitives.js +61 -53
  833. package/dist/selection/range-coverage.d.ts +94 -0
  834. package/dist/selection/range-coverage.js +365 -0
  835. package/dist/selection/range-delete-ceremony.d.ts +28 -74
  836. package/dist/selection/range-delete-ceremony.js +100 -141
  837. package/dist/selection/range-delete-chrome.d.ts +20 -33
  838. package/dist/selection/range-delete-chrome.js +53 -78
  839. package/dist/selection/range-delete-table-coverage.d.ts +11 -25
  840. package/dist/selection/range-delete-table-coverage.js +42 -112
  841. package/dist/selection/range-delete-table.d.ts +14 -12
  842. package/dist/selection/range-delete-table.js +106 -310
  843. package/dist/selection/range-delete.d.ts +18 -19
  844. package/dist/selection/range-delete.js +83 -123
  845. package/dist/selection/round-trip-restore.d.ts +18 -0
  846. package/dist/selection/round-trip-restore.js +19 -0
  847. package/dist/selection/selection-announcer.d.ts +17 -0
  848. package/dist/selection/selection-announcer.js +25 -0
  849. package/dist/selection/selection-description.d.ts +4 -3
  850. package/dist/selection/selection-description.js +5 -4
  851. package/dist/selection/selection-drop.d.ts +52 -0
  852. package/dist/selection/selection-drop.js +317 -0
  853. package/dist/selection/selection-restore.d.ts +20 -33
  854. package/dist/selection/selection-restore.js +21 -44
  855. package/dist/selection/selection-state.svelte.d.ts +50 -42
  856. package/dist/selection/selection-state.svelte.js +144 -98
  857. package/dist/selection/shared-keydown.d.ts +22 -27
  858. package/dist/selection/shared-keydown.js +25 -45
  859. package/dist/selection/table-endpoint-snap.d.ts +17 -41
  860. package/dist/selection/table-endpoint-snap.js +54 -80
  861. package/dist/selection/table-rect-extend.d.ts +3 -6
  862. package/dist/selection/table-rect-extend.js +19 -14
  863. package/dist/styles/editor-theme.css +75 -53
  864. package/dist/styles/editor.css +248 -139
  865. package/dist/testing/conformance-core.d.ts +50 -18
  866. package/dist/testing/conformance-core.js +88 -50
  867. package/dist/testing/container-conformance.d.ts +48 -84
  868. package/dist/testing/container-conformance.js +159 -285
  869. package/dist/testing/headless-actions.d.ts +34 -19
  870. package/dist/testing/headless-actions.js +116 -65
  871. package/dist/testing/headless-block-list.svelte.d.ts +16 -0
  872. package/dist/testing/headless-block-list.svelte.js +22 -0
  873. package/dist/testing/inline-conformance.d.ts +15 -22
  874. package/dist/testing/inline-conformance.js +131 -148
  875. package/dist/testing/kind-conformance.d.ts +19 -24
  876. package/dist/testing/kind-conformance.js +204 -117
  877. package/dist/testing/kit-reading.d.ts +7 -0
  878. package/dist/testing/kit-reading.js +16 -0
  879. package/dist/testing/mount-dom-stubs.d.ts +4 -5
  880. package/dist/testing/mount-dom-stubs.js +8 -5
  881. package/dist/testing/parse-convergence.d.ts +10 -10
  882. package/dist/testing/parse-convergence.js +14 -49
  883. package/dist/testing.d.ts +13 -9
  884. package/dist/testing.js +28 -38
  885. package/dist/tree-operations/blockquote.d.ts +8 -14
  886. package/dist/tree-operations/blockquote.js +25 -45
  887. package/dist/tree-operations/chain-rebuild.d.ts +34 -25
  888. package/dist/tree-operations/chain-rebuild.js +115 -52
  889. package/dist/tree-operations/children.d.ts +5 -9
  890. package/dist/tree-operations/children.js +7 -11
  891. package/dist/tree-operations/cleanup.d.ts +6 -7
  892. package/dist/tree-operations/cleanup.js +14 -11
  893. package/dist/tree-operations/clone.js +5 -4
  894. package/dist/tree-operations/container-lift.d.ts +10 -5
  895. package/dist/tree-operations/container-lift.js +20 -14
  896. package/dist/tree-operations/container-offsets.d.ts +22 -0
  897. package/dist/tree-operations/container-offsets.js +89 -0
  898. package/dist/tree-operations/content-write.d.ts +52 -29
  899. package/dist/tree-operations/content-write.js +155 -110
  900. package/dist/tree-operations/index.d.ts +4 -4
  901. package/dist/tree-operations/index.js +4 -4
  902. package/dist/tree-operations/keep-one-block.d.ts +10 -0
  903. package/dist/tree-operations/keep-one-block.js +19 -0
  904. package/dist/tree-operations/leaf-range.d.ts +33 -0
  905. package/dist/tree-operations/leaf-range.js +67 -0
  906. package/dist/tree-operations/list/empty-check.d.ts +2 -3
  907. package/dist/tree-operations/list/empty-check.js +4 -4
  908. package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
  909. package/dist/tree-operations/list/exit-replacement.js +4 -9
  910. package/dist/tree-operations/list/item-partition.d.ts +2 -2
  911. package/dist/tree-operations/list/item-partition.js +2 -2
  912. package/dist/tree-operations/list/list-builders.d.ts +18 -16
  913. package/dist/tree-operations/list/list-builders.js +59 -30
  914. package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
  915. package/dist/tree-operations/list/ordered-markers.js +7 -16
  916. package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
  917. package/dist/tree-operations/list/reconcile-task.js +80 -23
  918. package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
  919. package/dist/tree-operations/list/sublist-separator.js +20 -27
  920. package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
  921. package/dist/tree-operations/list/task-paragraph.js +54 -0
  922. package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
  923. package/dist/tree-operations/list/unwrap-merge.js +44 -79
  924. package/dist/tree-operations/node-ops.d.ts +30 -52
  925. package/dist/tree-operations/node-ops.js +152 -218
  926. package/dist/tree-operations/node-primitives.d.ts +44 -31
  927. package/dist/tree-operations/node-primitives.js +84 -60
  928. package/dist/tree-operations/open-tail.d.ts +25 -0
  929. package/dist/tree-operations/open-tail.js +100 -0
  930. package/dist/tree-operations/parse-block.d.ts +15 -2
  931. package/dist/tree-operations/parse-block.js +19 -4
  932. package/dist/tree-operations/paste/apply.d.ts +7 -8
  933. package/dist/tree-operations/paste/apply.js +33 -63
  934. package/dist/tree-operations/paste/body-write.d.ts +8 -6
  935. package/dist/tree-operations/paste/body-write.js +13 -14
  936. package/dist/tree-operations/paste/container-match.d.ts +7 -10
  937. package/dist/tree-operations/paste/container-match.js +76 -58
  938. package/dist/tree-operations/paste/container-paste.d.ts +3 -3
  939. package/dist/tree-operations/paste/container-paste.js +3 -3
  940. package/dist/tree-operations/paste/dispatch.d.ts +26 -29
  941. package/dist/tree-operations/paste/dispatch.js +68 -53
  942. package/dist/tree-operations/paste/focus-target.d.ts +11 -14
  943. package/dist/tree-operations/paste/focus-target.js +13 -18
  944. package/dist/tree-operations/paste/hooks.d.ts +7 -12
  945. package/dist/tree-operations/paste/hooks.js +49 -46
  946. package/dist/tree-operations/paste/line-ending.d.ts +11 -0
  947. package/dist/tree-operations/paste/line-ending.js +32 -0
  948. package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
  949. package/dist/tree-operations/paste/list-absorb.js +17 -19
  950. package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
  951. package/dist/tree-operations/paste/list-break-out.js +24 -32
  952. package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
  953. package/dist/tree-operations/paste/parent-scope.js +9 -16
  954. package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
  955. package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
  956. package/dist/tree-operations/paste/paste-replacement.js +73 -42
  957. package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
  958. package/dist/tree-operations/paste/paste-transforms.js +18 -27
  959. package/dist/tree-operations/paste/replacement-parse.d.ts +19 -0
  960. package/dist/tree-operations/paste/replacement-parse.js +24 -0
  961. package/dist/tree-operations/paste/strategy.d.ts +1 -1
  962. package/dist/tree-operations/paste/strategy.js +1 -1
  963. package/dist/tree-operations/paste/table-slice.js +15 -10
  964. package/dist/tree-operations/paste-surfaces.d.ts +18 -29
  965. package/dist/tree-operations/paste-surfaces.js +14 -10
  966. package/dist/tree-operations/path-mutate.d.ts +7 -8
  967. package/dist/tree-operations/path-mutate.js +4 -4
  968. package/dist/tree-operations/reorder-unit.d.ts +4 -5
  969. package/dist/tree-operations/reorder-unit.js +5 -6
  970. package/dist/tree-operations/reorder.d.ts +7 -9
  971. package/dist/tree-operations/reorder.js +39 -40
  972. package/dist/tree-operations/settle.d.ts +42 -53
  973. package/dist/tree-operations/settle.js +241 -162
  974. package/dist/tree-operations/sharing.d.ts +5 -5
  975. package/dist/tree-operations/splice-many.d.ts +5 -5
  976. package/dist/tree-operations/splice-many.js +5 -5
  977. package/dist/tree-operations/stored-as.d.ts +13 -0
  978. package/dist/tree-operations/stored-as.js +48 -0
  979. package/dist/tree-operations/structural-change.d.ts +11 -15
  980. package/dist/tree-operations/structural-change.js +10 -14
  981. package/dist/tree-operations/structural-suffix.d.ts +22 -0
  982. package/dist/tree-operations/structural-suffix.js +61 -0
  983. package/dist/tree-operations/sub-table-copy.d.ts +7 -0
  984. package/dist/tree-operations/sub-table-copy.js +40 -36
  985. package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
  986. package/dist/tree-operations/table-grid-clipboard.js +11 -36
  987. package/dist/tree-operations/table-mutations.d.ts +7 -3
  988. package/dist/tree-operations/table-mutations.js +45 -9
  989. package/dist/tree-operations/unshare.d.ts +11 -15
  990. package/dist/tree-operations/unshare.js +15 -17
  991. package/dist/undo/manager.js +1 -1
  992. package/dist/undo/types.d.ts +2 -2
  993. package/docs/guide/consumer-guide.md +329 -205
  994. package/docs/guide/directives.md +7 -7
  995. package/docs/guide/plugin-api.md +267 -183
  996. package/docs/guide/plugin-guide.md +341 -235
  997. package/docs/guide/plugin-testing.md +96 -82
  998. package/package.json +17 -21
  999. package/dist/ambient/ambient-cursor.d.ts +0 -41
  1000. package/dist/ambient/ambient-cursor.js +0 -120
  1001. package/dist/components/blocks/code/code-paste.d.ts +0 -24
  1002. package/dist/components/blocks/code/code-paste.js +0 -21
  1003. package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
  1004. package/dist/components/blocks/table/cell-clipboard.js +0 -67
  1005. package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
  1006. package/dist/components/blocks/text/hidden-suffix.js +0 -15
  1007. package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
  1008. package/dist/components/image/image-source-bytes.d.ts +0 -15
  1009. package/dist/components/image/image-source-bytes.js +0 -80
  1010. package/dist/cursor/content-offsets.d.ts +0 -29
  1011. package/dist/cursor/content-offsets.js +0 -151
  1012. package/dist/cursor/reveal-anchor.d.ts +0 -30
  1013. package/dist/cursor/reveal-anchor.js +0 -31
  1014. package/dist/invariants/split-landing.d.ts +0 -8
  1015. package/dist/invariants/split-landing.js +0 -15
  1016. package/dist/selection/double-click-trim.d.ts +0 -17
  1017. package/dist/selection/double-click-trim.js +0 -57
  1018. package/dist/tree-operations/list/terminator.d.ts +0 -17
  1019. package/dist/tree-operations/list/terminator.js +0 -60
  1020. package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -29
  1021. package/dist/tree-operations/paste/replace-block-at-parent.js +0 -75
@@ -3,37 +3,42 @@
3
3
  * preserves caret continuity for the break-and-splice paste path.
4
4
  */
5
5
  import { metadataOf } from '../../core/nodes';
6
- import { rebuildContainerRaw } from '../../schema/container-raw';
6
+ import { rebuildTableRaw, tableLineEnding } from '../../schema/container-rebuilders';
7
+ import { promoteFirstRowToHeader } from '../table-mutations';
7
8
  export function sliceTableAtRow(table, sliceRow, rowGoes) {
8
9
  const rows = table.children;
9
10
  const meta = metadataOf(table, 'table');
10
11
  const splitAt = rowGoes === 'first' ? sliceRow + 1 : sliceRow;
11
12
  const firstRows = rows.slice(0, splitAt);
12
13
  const secondRows = rows.slice(splitAt);
13
- const firstHalf = buildHalf(firstRows, meta);
14
- const secondHalf = buildHalf(secondRows, meta);
14
+ const ending = tableLineEnding(table);
15
+ const firstHalf = buildHalf(firstRows, meta, ending);
16
+ const secondHalf = buildHalf(secondRows, meta, ending);
15
17
  if (firstHalf)
16
- rebuildContainerRaw(firstHalf);
18
+ rebuildTableRaw(firstHalf);
17
19
  if (secondHalf)
18
- rebuildContainerRaw(secondHalf);
20
+ rebuildTableRaw(secondHalf);
19
21
  return { firstHalf, secondHalf };
20
22
  }
21
- function buildHalf(rows, sourceMeta) {
23
+ function buildHalf(rows, sourceMeta, ending) {
22
24
  if (rows.length === 0)
23
25
  return null;
24
- const cloned = rows.map((row, idx) => ({
26
+ const cloned = rows.map((row) => ({
25
27
  ...row,
26
- metadata: { isHeader: idx === 0 },
28
+ metadata: { ...metadataOf(row, 'tableRow'), isHeader: false },
27
29
  children: row.children.map((cell) => ({ ...cell }))
28
30
  }));
29
- return {
31
+ const half = {
30
32
  kind: 'table',
31
33
  leadingTrivia: '',
32
- raw: '',
34
+ // The rebuild reads the line ending off the raw it replaces.
35
+ raw: ending,
33
36
  metadata: {
34
37
  columnCount: sourceMeta.columnCount,
35
38
  alignments: sourceMeta.alignments.slice()
36
39
  },
37
40
  children: cloned
38
41
  };
42
+ promoteFirstRowToHeader(half);
43
+ return half;
39
44
  }
@@ -1,22 +1,13 @@
1
- import type { UndoEntryMode } from '../action-contracts';
2
- import type { AnyBlockKind, CstNode, Document } from '../core/nodes';
3
- import type { PresentationMode } from '../presentation-mode';
4
- import type { InlineResolverRef } from '../schema/inline-construct-policy';
5
- import type { GrammarView } from '../schema/block-openers';
1
+ import { type AnyBlockKind, type CstNode, type Document } from '../core/nodes';
2
+ import type { LineEnding } from '../core/lines';
3
+ import type { StoredAs } from '../schema/stored-as';
4
+ import type { ChildSlot } from './list/task-paragraph';
6
5
  import type { PasteCommitCoordinator } from './paste/paste-deps';
6
+ import type { PluginActivation } from '../schema/plugin-activation';
7
7
  export interface PasteRange {
8
8
  start: number;
9
9
  end: number;
10
10
  }
11
- /**
12
- * What the join-seam cleanup needs from the caller: the paste's delete half is a join, and in
13
- * live the runs it strands are bytes the reader never saw. Absent leaves the cut byte-literal,
14
- * which is every non-live mode's answer anyway.
15
- */
16
- export interface PasteSeam {
17
- presentationMode: PresentationMode | undefined;
18
- linkRef: InlineResolverRef | undefined;
19
- }
20
11
  export interface InlinePasteResult {
21
12
  /** New raw for the target node (including trailing line ending). */
22
13
  newRaw: string;
@@ -33,22 +24,18 @@ export interface ScopedStructuralPasteInput {
33
24
  /** Pasted blocks, blank-line-materialized. */
34
25
  blocks: CstNode[];
35
26
  controller: PasteCommitCoordinator;
36
- undoEntry: UndoEntryMode;
37
- /** The instance grammar the splice owes its bodyWrite escape reparse. Required-nullable, so
38
- * a new scoped surface cannot silently drop it; `undefined` = global. */
39
- grammar: GrammarView | undefined;
40
27
  }
41
28
  export interface PasteSurface {
42
29
  kind: AnyBlockKind;
43
- /**
44
- * This surface holds text, never blocks (a table cell), so a blank block at the clipboard's
45
- * edge is the copy's packaging: it neither picks the route nor lands in a structural splice.
46
- */
30
+ /** The kind's editable element holds text, never blocks (a table cell), so a blank block at the
31
+ * clipboard's edge is packaging: it neither picks the route nor lands in a splice. */
47
32
  blankEdgesArePackaging?: boolean;
48
- /** Splice `text` into `node` at `offset` (optionally pre-deleting a range). Pure. */
49
- onInlinePaste?(node: CstNode, offset: number, text: string, preDelete?: PasteRange, seam?: PasteSeam): InlinePasteResult;
50
- /** Splice CST blocks at the target. Pure data transform. */
51
- onStructuralPaste?(node: CstNode, offset: number, blocks: CstNode[], preDelete?: PasteRange, seam?: PasteSeam): StructuralPasteResult;
33
+ /** Pure. The pasted text replaces the pre-delete through `replaceRangeInLeaf`, as typing it
34
+ * would; every line the hook writes takes `lineEnding`, the document's. */
35
+ onInlinePaste?(node: CstNode, offset: number, text: string, preDelete: PasteRange | undefined, store: StoredAs, lineEnding: LineEnding): InlinePasteResult;
36
+ /** Splice CST blocks at the target. Pure data transform. `slot` is where the target sits, so
37
+ * the text the hook leaves there is read as a reload reads it. */
38
+ onStructuralPaste?(node: CstNode, offset: number, blocks: CstNode[], preDelete: PasteRange | undefined, store: StoredAs, lineEnding: LineEnding, slot: ChildSlot): StructuralPasteResult;
52
39
  /**
53
40
  * Structural paste whose splice scope is an ancestor (a tableCell splices at the
54
41
  * table's parent). The hook owns the whole mutation; dispatch does nothing afterward.
@@ -56,6 +43,8 @@ export interface PasteSurface {
56
43
  onScopedStructuralPaste?(input: ScopedStructuralPasteInput): Promise<void>;
57
44
  }
58
45
  export declare function registerPasteSurface(surface: PasteSurface): void;
59
- export declare function getPasteSurface(kind: AnyBlockKind): PasteSurface | undefined;
60
- export declare function __resetPasteSurfacesForTests(): void;
61
- export declare function __removePasteSurfaceForTests(kind: AnyBlockKind): void;
46
+ /** The kind's surface in an editor with this activation; a plugin kind's surface is absent where
47
+ * the editor left out the kind's plugin, so the paste takes the default hooks. */
48
+ export declare function getPasteSurface(kind: AnyBlockKind, activation: PluginActivation): PasteSurface | undefined;
49
+ /** Whether any plugin or built-in registered a surface for the kind, whatever the activation. */
50
+ export declare function isPasteSurfaceRegistered(kind: AnyBlockKind): boolean;
@@ -1,15 +1,19 @@
1
- import { registerOnce } from '../schema/register-once';
1
+ import { isBuiltinBlockKind } from '../core/nodes';
2
+ import { createBlockKindRegistry } from '../schema/plugin-registry';
2
3
  // ── Registry ───────────────────────────────────────────────────────────────
3
- const surfaces = new Map();
4
+ const surfaces = createBlockKindRegistry({
5
+ label: 'registerPasteSurface',
6
+ isBuiltin: isBuiltinBlockKind
7
+ });
4
8
  export function registerPasteSurface(surface) {
5
- registerOnce(surfaces.has(surface.kind), () => surfaces.set(surface.kind, surface), `registerPasteSurface: "${surface.kind}" is already registered. Paste surfaces are register-once.`);
9
+ surfaces.register(surface.kind, surface, `registerPasteSurface: "${surface.kind}" is already registered. Paste surfaces are register-once.`);
6
10
  }
7
- export function getPasteSurface(kind) {
8
- return surfaces.get(kind);
11
+ /** The kind's surface in an editor with this activation; a plugin kind's surface is absent where
12
+ * the editor left out the kind's plugin, so the paste takes the default hooks. */
13
+ export function getPasteSurface(kind, activation) {
14
+ return surfaces.get(kind, activation);
9
15
  }
10
- export function __resetPasteSurfacesForTests() {
11
- surfaces.clear();
12
- }
13
- export function __removePasteSurfaceForTests(kind) {
14
- surfaces.delete(kind);
16
+ /** Whether any plugin or built-in registered a surface for the kind, whatever the activation. */
17
+ export function isPasteSurfaceRegistered(kind) {
18
+ return surfaces.has(kind);
15
19
  }
@@ -1,12 +1,11 @@
1
1
  /**
2
- * Path-addressed child splices for the range-delete ceremony. Both route through
3
- * `spliceChildrenSettled` (`settle.ts`): they address containers at arbitrary depth, which is
4
- * exactly where a desynced `childIds` or an unsettled separator becomes permanent. `sharing` is
5
- * REQUIRED, not optional: the settle writes the surviving neighbours' own bytes, so a door
6
- * reached without it writes through a snapshot-shared node (G1.9). Callers unshare the PARENT
7
- * spine themselves; `sharing` is what unshares the children the settle touches.
2
+ * Path-addressed child splices for the range delete, through `spliceChildrenSettled` so a
3
+ * container at any depth keeps its `childIds` and separators right. `sharing` is required, since
4
+ * the fix-up writes neighbours' bytes that an undo snapshot may share (G1.9). Callers copy the
5
+ * parent chain themselves; `sharing` copies the children the fix-up touches.
8
6
  */
9
7
  import type { CstNode, Document } from '../core/nodes';
8
+ import type { GrammarView } from '../schema/block-openers';
10
9
  import type { SharingState } from './sharing';
11
- export declare function deleteAtPath(doc: Document, path: number[], sharing: SharingState): void;
12
- export declare function replaceAtPath(doc: Document, path: number[], replacement: CstNode[], sharing: SharingState): void;
10
+ export declare function deleteAtPath(doc: Document, path: number[], sharing: SharingState, grammar: GrammarView): void;
11
+ export declare function replaceAtPath(doc: Document, path: number[], replacement: CstNode[], sharing: SharingState, grammar: GrammarView): void;
@@ -1,6 +1,6 @@
1
1
  import { nodeAt } from './node-primitives';
2
2
  import { spliceChildrenSettled } from './settle';
3
- export function deleteAtPath(doc, path, sharing) {
3
+ export function deleteAtPath(doc, path, sharing, grammar) {
4
4
  if (path.length === 0)
5
5
  return;
6
6
  const parent = nodeAt(doc, path.slice(0, -1));
@@ -8,14 +8,14 @@ export function deleteAtPath(doc, path, sharing) {
8
8
  return;
9
9
  const idx = path[path.length - 1];
10
10
  if (idx < parent.children.length) {
11
- spliceChildrenSettled(parent, idx, 1, [], sharing);
11
+ spliceChildrenSettled(parent, idx, 1, [], grammar, sharing);
12
12
  }
13
13
  }
14
- export function replaceAtPath(doc, path, replacement, sharing) {
14
+ export function replaceAtPath(doc, path, replacement, sharing, grammar) {
15
15
  if (path.length === 0)
16
16
  return;
17
17
  const parent = nodeAt(doc, path.slice(0, -1));
18
18
  if (!parent || !parent.children)
19
19
  return;
20
- spliceChildrenSettled(parent, path[path.length - 1], 1, replacement, sharing);
20
+ spliceChildrenSettled(parent, path[path.length - 1], 1, replacement, grammar, sharing);
21
21
  }
@@ -1,9 +1,8 @@
1
1
  /**
2
- * Resolve the reorderable unit a path points into: the nearest ancestor slot whose parent
3
- * reorders its children among themselves. Membership is the parent's declared
4
- * `reorderChildren` capability, never a kind name, so a plugin container opts in as the
5
- * built-ins do. An opaque container is a hard boundary — reorder DECLINES there rather
6
- * than walking past to the document and teleporting the container to a top-level index.
2
+ * Resolve the reorderable unit a path points into: the nearest position whose parent declares
3
+ * `reorderChildren`, a capability rather than a kind name, so a plugin container opts in as the
4
+ * built-ins do. An opaque container is a hard boundary: reorder declines there rather than move
5
+ * the whole container to a top-level index.
7
6
  */
8
7
  import type { Document } from '../core/nodes';
9
8
  export interface ReorderUnit {
@@ -1,16 +1,15 @@
1
1
  /**
2
- * Resolve the reorderable unit a path points into: the nearest ancestor slot whose parent
3
- * reorders its children among themselves. Membership is the parent's declared
4
- * `reorderChildren` capability, never a kind name, so a plugin container opts in as the
5
- * built-ins do. An opaque container is a hard boundary — reorder DECLINES there rather
6
- * than walking past to the document and teleporting the container to a top-level index.
2
+ * Resolve the reorderable unit a path points into: the nearest position whose parent declares
3
+ * `reorderChildren`, a capability rather than a kind name, so a plugin container opts in as the
4
+ * built-ins do. An opaque container is a hard boundary: reorder declines there rather than move
5
+ * the whole container to a top-level index.
7
6
  */
8
7
  import { tryGetBlockKindDescriptor } from '../schema/block-kind-descriptor';
9
8
  import { nodeAt } from './node-primitives';
10
9
  export function resolveReorderUnit(doc, path) {
11
10
  for (let depth = path.length; depth >= 1; depth--) {
12
11
  const parentPath = path.slice(0, depth - 1);
13
- // The root is identified structurally, never by kind: a plugin may mint 'document'
12
+ // The root is identified structurally, never by kind: a plugin may register 'document'
14
13
  // as a block kind, and such a node is just another container.
15
14
  if (parentPath.length === 0) {
16
15
  return { parentPath, index: path[depth - 1], scope: 'document', renumberMarkers: false };
@@ -1,16 +1,14 @@
1
1
  import type { CstNode } from '../core/nodes';
2
2
  import type { SharingState } from './sharing';
3
+ import type { BodyParent } from './node-primitives';
3
4
  import { type SettledSplice } from './settle';
4
5
  import type { StructuralChange } from './structural-change';
6
+ import type { GrammarView } from '../schema/block-openers';
5
7
  export declare function reorderChildren(children: CstNode[], from: number, to: number): StructuralChange;
6
8
  /**
7
- * Reorder children while keeping block separators positional. A separator is stored as the next
8
- * child's `leadingTrivia` but read per slot, so it belongs to the position, not the node. Writing
9
- * it is a byte write, so spanned children are unshared first (`unshare.ts`) and `children` must
10
- * already be an owned array. The landing rides the result: a fold settling a seam the move
11
- * invalidated can sit above the moved block.
9
+ * Reorder a body's children, each separator staying with its position rather than its node. The
10
+ * children must be an owned array; the result's `landing` counts any merge the move set off.
12
11
  */
13
- export declare function reorderChildrenWithTrivia(children: CstNode[], from: number, to: number, sharing: SharingState,
14
- /** Top-level blocks only: a blank line is a document separator, not a list's or a quote's,
15
- * whose own children carry their marker and would read a bare blank line as an end. */
16
- separators?: boolean): SettledSplice;
12
+ export declare function reorderChildrenWithTrivia(body: BodyParent, from: number, to: number, sharing: SharingState,
13
+ /** The editor's grammar, in which the checks below reread each pair of moved blocks. */
14
+ grammar: GrammarView): SettledSplice;
@@ -1,10 +1,11 @@
1
- import { isBlankParagraph, parse } from '../core/parser';
2
- import { trailingLineEnding } from '../core/lines';
1
+ import { isBlankParagraph, readBlocks } from '../core/parser';
2
+ import { lineEndingAt, ownTrailingLineEnding } from '../core/lines';
3
3
  import { ensureUnsharedChild } from './unshare';
4
+ import { endWindowLines } from './open-tail';
4
5
  import { absorbWindowSeams, settleSeparatorOnBlank } from './settle';
5
6
  import { devWarn } from '../dev-warn';
6
7
  // A stale index (a mid-drag delete shrank the array) would splice `undefined` into the
7
- // $state tree, so both entry points bail through this BEFORE any unshare or write.
8
+ // $state tree, so both entry points check the bounds before any copy or write.
8
9
  function isReorderOutOfBounds(from, to, len) {
9
10
  if (from < 0 || from >= len || to < 0 || to >= len) {
10
11
  devWarn('reorder', `reorder out of bounds: from=${from} to=${to} len=${len}`);
@@ -13,7 +14,7 @@ function isReorderOutOfBounds(from, to, len) {
13
14
  return false;
14
15
  }
15
16
  // A reorder rewrites no bytes and creates no node: it is one contiguous `replace`
16
- // whose idMap permutes the spanned window so each moved block keeps its id + ref.
17
+ // whose idMap permutes the spanned window so each moved block keeps its id and ref.
17
18
  export function reorderChildren(children, from, to) {
18
19
  if (from === to)
19
20
  return { op: 'noop' };
@@ -33,16 +34,13 @@ export function reorderChildren(children, from, to) {
33
34
  return { op: 'replace', at: lo, count, newCount: count, idMap };
34
35
  }
35
36
  /**
36
- * Reorder children while keeping block separators positional. A separator is stored as the next
37
- * child's `leadingTrivia` but read per slot, so it belongs to the position, not the node. Writing
38
- * it is a byte write, so spanned children are unshared first (`unshare.ts`) and `children` must
39
- * already be an owned array. The landing rides the result: a fold settling a seam the move
40
- * invalidated can sit above the moved block.
37
+ * Reorder a body's children, each separator staying with its position rather than its node. The
38
+ * children must be an owned array; the result's `landing` counts any merge the move set off.
41
39
  */
42
- export function reorderChildrenWithTrivia(children, from, to, sharing,
43
- /** Top-level blocks only: a blank line is a document separator, not a list's or a quote's,
44
- * whose own children carry their marker and would read a bare blank line as an end. */
45
- separators = false) {
40
+ export function reorderChildrenWithTrivia(body, from, to, sharing,
41
+ /** The editor's grammar, in which the checks below reread each pair of moved blocks. */
42
+ grammar) {
43
+ const children = body.children;
46
44
  if (from === to)
47
45
  return { change: { op: 'noop' }, landing: to };
48
46
  if (isReorderOutOfBounds(from, to, children.length)) {
@@ -50,6 +48,8 @@ separators = false) {
50
48
  }
51
49
  const lo = Math.min(from, to);
52
50
  const hi = Math.max(from, to);
51
+ // Whether the moved block sat flush against both its neighbours, read before the rotation.
52
+ const flushAround = !children[from].leadingTrivia && !children[from + 1]?.leadingTrivia;
53
53
  const windowTrivia = [];
54
54
  for (let i = lo; i <= hi; i++) {
55
55
  windowTrivia.push(ensureUnsharedChild({ children }, i, sharing).leadingTrivia);
@@ -58,50 +58,49 @@ separators = false) {
58
58
  for (let k = 0; k < windowTrivia.length; k++) {
59
59
  children[lo + k].leadingTrivia = windowTrivia[k];
60
60
  }
61
- if (separators) {
62
- // The rotation reseats every slot in the window, and a block can land flush under a
63
- // paragraph that then reads its lines as its own (a table dissolving into the prose above
64
- // it). The seam it VACATED is the exception: a pair rejoining once the block between them
65
- // leaves is the reload's own reading, which the absorber below settles.
66
- const vacated = from < to ? from : from + 1;
67
- for (let at = lo; at <= hi + 1; at++) {
68
- if (at !== vacated)
69
- separateSeam(children, at, sharing);
70
- }
71
- // A blank line reseated by position can hold a line its follower holds too; the run owes
72
- // exactly one, and none at the document head, where the reload reads each as a block.
73
- for (let at = lo; at <= hi; at++) {
74
- if (isBlankParagraph(children[at]))
75
- settleSeparatorOnBlank({ children }, at, sharing);
76
- }
61
+ // The joins below read the moved blocks side by side, so a moved open last line ends first; this
62
+ // call goes once the commit settles the move's joins, and the commit gives the ending back.
63
+ endWindowLines(body, change, sharing, grammar);
64
+ // Each join the move touches gets a blank line where the two blocks would read as one; the
65
+ // pair the moved block left rejoins only if it sat flush against both of them.
66
+ const vacated = from < to ? from : from + 1;
67
+ for (let at = lo; at <= hi + 1; at++) {
68
+ if (at !== vacated || !flushAround)
69
+ separateSeam(children, at, sharing, grammar);
77
70
  }
78
- return absorbWindowSeams({ children }, lo, hi - lo + 1, to, change, sharing);
71
+ // A blank block moved by position can hold a line its follower holds too; the run needs
72
+ // exactly one, and none at the document head, where the reload reads each as a block.
73
+ for (let at = lo; at <= hi; at++) {
74
+ if (isBlankParagraph(children[at]))
75
+ settleSeparatorOnBlank({ children }, at, sharing);
76
+ }
77
+ return absorbWindowSeams({ children }, lo, hi - lo + 1, to, change, grammar, sharing);
79
78
  }
80
79
  /**
81
- * Give the follower at `at` a separator where the reload would otherwise not read the two
82
- * blocks back as themselves, and only then: a block that swallows across a blank line (an
83
- * unterminated fence taking the prose below it) is the reload's true reading, left to the
84
- * absorber, which the fold tests pin.
80
+ * Give the follower at `at` a separator only where the reload would not read the two blocks back
81
+ * as themselves; a block that swallows across a blank line is left to the neighbour merge.
85
82
  */
86
- function separateSeam(children, at, sharing) {
83
+ function separateSeam(children, at, sharing, grammar) {
87
84
  if (at <= 0 || at >= children.length)
88
85
  return;
89
86
  const prev = children[at - 1];
90
87
  const next = children[at];
91
- const apart = withLeadingLine(next.leadingTrivia, trailingLineEnding(next.raw));
88
+ // The block above is not the last, so its line ending is the document's.
89
+ const apart = withLeadingLine(next.leadingTrivia, ownTrailingLineEnding(prev.raw));
92
90
  if (apart === next.leadingTrivia)
93
91
  return;
94
- if (readsAsBoth(prev, next.leadingTrivia, next) || !readsAsBoth(prev, apart, next))
92
+ const readsAsBoth = (trivia) => readsAsPair(prev, trivia, next, grammar);
93
+ if (readsAsBoth(next.leadingTrivia) || !readsAsBoth(apart))
95
94
  return;
96
95
  ensureUnsharedChild({ children }, at, sharing).leadingTrivia = apart;
97
96
  }
98
97
  function withLeadingLine(trivia, eol) {
99
- return trivia.startsWith('\n') || trivia.startsWith('\r\n') ? trivia : eol + trivia;
98
+ return lineEndingAt(trivia, 0) !== '' ? trivia : eol + trivia;
100
99
  }
101
100
  // Two blocks of the same shape, not merely two: a quote lazily taking the first line of the
102
101
  // prose below it still reads as two, with the remainder a different kind.
103
- function readsAsBoth(prev, trivia, next) {
104
- const blocks = parse(prev.raw + trivia + next.raw, { scope: 'fragment' }).children;
102
+ function readsAsPair(prev, trivia, next, grammar) {
103
+ const blocks = readBlocks(prev.raw + trivia + next.raw, { grammar, scope: 'fragment' }).children;
105
104
  return (blocks.length === 2 &&
106
105
  blocks[0].kind === prev.kind &&
107
106
  blocks[0].raw === prev.raw &&
@@ -1,105 +1,94 @@
1
1
  /**
2
- * The separator settle every splice owes its neighbourhood (syntax-tree.md § Blank lines), the
3
- * seam absorb behind it (editor.md § 8), and the delete primitive built on both. `sharing` owns
4
- * every in-place write (G1.9); the retire census in `lint/separator-write-doors.test.ts` names
5
- * every door here.
2
+ * Recomputes the blank-line separators an edit left stale, merges neighbours that would re-read
3
+ * as one block on reload, and deletes a block on top of both (`docs/design/syntax-tree.md` § Blank
4
+ * lines). Every in-place write goes through `sharing`, so no undo snapshot sees it (G1.9), and
5
+ * `lint/separator-write-doors.test.ts` must list every function here that writes a separator.
6
6
  */
7
7
  import type { CstNode, Document } from '../core/nodes';
8
8
  import type { NodeView } from '../core/node-views';
9
+ import type { GrammarView } from '../schema/block-openers';
9
10
  import type { SharingState } from './sharing';
10
11
  import { type StructuralChange } from './structural-change';
11
12
  import { type BodyParentArg, type NodeParent, type SeparatorParent } from './node-primitives';
12
13
  /**
13
- * Settle the separator at `index`: nothing needs one at the body head or below a blank block,
14
- * where the parser would read the extra line as one more empty paragraph.
14
+ * Drop the separator at `index` where nothing needs one: at the body head, or below a blank
15
+ * block, where the parser would read the extra line as one more empty paragraph.
15
16
  */
16
17
  export declare function clearRedundantSeparator(parent: SeparatorParent, index: number, sharing?: SharingState): void;
17
18
  /**
18
- * A blank block IS a blank line, so it and its follower share ONE separator (G2.13). The
19
- * follower's stands, so a later fill of this slot still finds the follower separated.
19
+ * A blank block is itself a blank line, so it and its follower share one separator (G2.13). The
20
+ * follower's is kept, so filling the blank block later still finds the follower separated.
20
21
  */
21
22
  export declare function dropDoubledSeparator(parent: SeparatorParent, index: number, sharing?: SharingState): void;
22
23
  /**
23
24
  * The separator a block takes back when it stops being blank: its own blank line was what stood
24
- * between it and a non-blank predecessor. Call at the fill.
25
+ * between it and a non-blank predecessor. Call when the block is filled.
25
26
  */
26
27
  export declare function restoreSeparatorOnFill(parent: SeparatorParent, index: number, sharing?: SharingState): void;
27
28
  /**
28
- * The separator the block BELOW a consumed blank line takes back: the same mint minus the
29
- * blank-self guard, declined where its own follower already holds one (G2.13).
29
+ * The separator the block below a consumed blank line takes back, skipped for a blank block whose
30
+ * follower already holds one, since the two share it (G2.13).
30
31
  */
31
32
  export declare function restoreSeparatorAfterBlank(parent: SeparatorParent, index: number, sharing?: SharingState): void;
32
33
  /**
33
- * The settle a block turning INTO a blank line owes: the run it joins carries exactly ONE
34
- * separating line across every block in it AND its follower. The line already standing is
35
- * kept; a mint lands at the run's head, the only slot one may take.
34
+ * A block turned blank joins a run that, with its follower, must carry exactly one separating line;
35
+ * a standing line is kept, and a new one goes at the run's head, the only place one may sit.
36
36
  */
37
37
  export declare function settleSeparatorOnBlank(parent: SeparatorParent, index: number, sharing?: SharingState): void;
38
38
  /**
39
- * The give-back twin of {@link settleSeparatorOnBlank}'s closer peel: a tail that stops being
40
- * blank owes the borrowed `innerSuffix` line back, or the wrap emits a line nobody typed.
39
+ * A tail block that stops being blank gives back the `innerSuffix` line {@link
40
+ * settleSeparatorOnBlank} lent it, or the container emits a line nobody typed.
41
41
  */
42
42
  export declare function releaseWrapPeel(parent: SeparatorParent, index: number): void;
43
43
  /**
44
- * The commit ceremony's settle door: derive the spliced window from the change and settle it
45
- * against `before`, the pre-mutate children. Nodes surviving inside the window are not removals,
46
- * so a coarse descriptor over an in-place write settles as one.
44
+ * The commit's entry point: recompute the separators around `change`'s window against `before`,
45
+ * the children before the mutation. A node that survives inside the window counts as kept.
47
46
  */
48
- export declare function settleSeparator(parent: SeparatorParent, before: readonly CstNode[], change: StructuralChange, sharing?: SharingState, tracked?: TrackedPosition): StructuralChange;
47
+ export declare function settleSeparator(parent: SeparatorParent, before: readonly CstNode[], change: StructuralChange, grammar: GrammarView, sharing?: SharingState, tracked?: TrackedPosition): StructuralChange;
49
48
  /**
50
- * The out-of-commit-scope twin of {@link settleSeparator}, for a container discovered by walking
51
- * the live tree: it splices through the `childIds` door and reads the pre-splice span itself.
52
- */
53
- export declare function spliceChildrenSettled(parent: CstNode | Document, at: number, removeCount: number, replacement: CstNode[], sharing?: SharingState): void;
54
- /**
55
- * What a seam settle absorbed: post-splice window position and size, and the net blocks eaten.
56
- * `span + eaten` is the pre-absorb slot count, which is what a change descriptor reports.
49
+ * {@link settleSeparator} for a splice outside a commit scope, into a container found by walking
50
+ * the live tree; `spliceChildren` keeps its `childIds` in step.
57
51
  */
52
+ export declare function spliceChildrenSettled(parent: CstNode | Document, at: number, removeCount: number, replacement: CstNode[], grammar: GrammarView, sharing?: SharingState): void;
53
+ /** What a merge of neighbours absorbed; `span + eaten` is the block count before the merge, the
54
+ * figure a change descriptor reports. */
58
55
  interface SeamAbsorption {
59
56
  at: number;
60
57
  span: number;
61
58
  eaten: number;
62
59
  spliced: boolean;
63
60
  }
64
- /** A byte position the folds carry with them, written in place since each fold re-tiles the bytes. */
61
+ /** A byte position the merges keep updated, written in place since each merge re-divides the
62
+ * bytes into blocks. */
65
63
  export interface TrackedPosition {
66
64
  index: number;
67
65
  offset: number;
68
66
  }
69
67
  /**
70
- * A splice can leave neighbours whose adjacent bytes re-read as fewer blocks on reload. Absorb
71
- * while the window's own bytes parse to fewer blocks, which is the reload's reading; a blank run
72
- * is transparent to a container's continuation, so the window anchors at the nearest non-blank
73
- * block above the seam, never below `floor`, and cascades.
74
- */
75
- export declare function absorbSeamReading(parent: NodeParent, seamLeft: number, floor: number, sharing?: SharingState, tracked?: TrackedPosition, headProbe?: number, onBeforeSplice?: () => void): SeamAbsorption;
76
- /**
77
- * Map a post-edit caret offset (in the committed text) to the parsed block it falls in, as a
78
- * local display offset. An offset inside inter-block trivia lands at the next block's start;
79
- * past-the-end clamps to the last.
68
+ * Merge neighbours while their joined bytes reload as fewer blocks or move content into the head;
69
+ * blank lines don't end a container, so the window starts at the nearest non-blank block above.
80
70
  */
71
+ export declare function absorbSeamReading(parent: NodeParent, seamLeft: number, floor: number, grammar: GrammarView, sharing?: SharingState, tracked?: TrackedPosition, headProbe?: number, onBeforeSplice?: () => void): SeamAbsorption;
72
+ /** The block a caret offset into the committed bytes falls in, and its offset there. An offset in
73
+ * the blank lines between blocks lands at the next block's start. */
81
74
  export declare function focusTargetInReplacement(nodes: readonly NodeView[], offset: number): {
82
75
  index: number;
83
76
  offset: number;
84
77
  };
85
- /** What a splice settled: its change widened by every fold, and where a tracked index landed. */
78
+ /** What settling a splice produced: its change widened by every merge, and where a tracked
79
+ * index ended up. */
86
80
  export interface SettledSplice {
87
81
  change: StructuralChange;
88
82
  landing: number;
89
83
  }
90
- /**
91
- * The seam question at every join the splice at `at` disturbed, its window's two edges and the
92
- * joins inside it, since a move can invalidate a join that was already correct. Each fold
93
- * cascades downward. `headProbe` names the one block whose bytes changed, letting each ask
94
- * decline on its first line alone; dropped once anything folds, since its index has moved.
95
- */
96
- export declare function absorbWindowSeams(parent: NodeParent, at: number, added: number, landing: number, change: StructuralChange, sharing?: SharingState, tracked?: TrackedPosition, headProbe?: number, onBeforeSplice?: () => void): SettledSplice;
97
- /** The materialized tail reported inside the sink's one contiguous window. */
84
+ /** Merge across every join the splice at `at` disturbed, the joins inside the window included,
85
+ * since a move can break a join that was correct. `headProbe` names the one changed block. */
86
+ export declare function absorbWindowSeams(parent: NodeParent, at: number, added: number, landing: number, change: StructuralChange, grammar: GrammarView, sharing?: SharingState, tracked?: TrackedPosition, headProbe?: number, onBeforeSplice?: () => void): SettledSplice;
87
+ /** The tail line that became a block, reported inside the caller's one contiguous window. */
98
88
  export declare function widenForTailMint(change: StructuralChange, before: number, after: number): StructuralChange;
99
- /**
100
- * Remove the node at `blockIndex`, leaving the next sibling separated from its new predecessor
101
- * and no more. Takes {@link BodyParentArg} because the settle can hand a freed line to the
102
- * owner's wrap slots; the successor's trivia is the op's only in-place write.
103
- */
104
- export declare function deleteNode(parent: BodyParentArg, blockIndex: number, sharing?: SharingState): StructuralChange;
89
+ /** The kind whose body these children are: the named owner's, or the parent node's own. */
90
+ export declare function ownerKindNameOf(parent: SeparatorParent): string | undefined;
91
+ /** Remove the node at `blockIndex`, leaving its successor separated once and no more. Takes
92
+ * {@link BodyParentArg} since the fix-up can move a freed line into the owner's `innerPrefix`. */
93
+ export declare function deleteNode(parent: BodyParentArg, blockIndex: number, grammar: GrammarView, sharing?: SharingState, tracked?: TrackedPosition): StructuralChange;
105
94
  export {};