@voithos-labs/aragonite 0.10.4 → 0.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1021) hide show
  1. package/README.md +2 -2
  2. package/dist/a11y-strings.d.ts +11 -5
  3. package/dist/a11y-strings.js +60 -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 +12 -21
  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 +603 -1126
  23. package/dist/components/Editor.svelte.d.ts +9 -20
  24. package/dist/components/GapCaret.svelte +26 -59
  25. package/dist/components/SelectionOverlay.svelte +26 -51
  26. package/dist/components/SelectionOverlay.svelte.d.ts +5 -3
  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 +72 -87
  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 +29 -34
  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 +57 -39
  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 +141 -203
  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 +45 -90
  65. package/dist/components/blocks/list/ListItemBlock.svelte +93 -147
  66. package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +1 -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 +8 -6
  102. package/dist/components/blocks/text/click-snap-guard.js +10 -7
  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 +150 -181
  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 -108
  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 +212 -199
  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 +12 -35
  144. package/dist/components/drag-handle.js +22 -68
  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 -24
  162. package/dist/components/editor-root-listeners.js +49 -24
  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 +14 -26
  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 +30 -35
  209. package/dist/components/menu/SelectionToolbar.svelte.d.ts +3 -5
  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 +54 -75
  256. package/dist/core/inline/inline-widgets.js +54 -62
  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 +31 -15
  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 -6
  347. package/dist/cursor/height-oracle.js +26 -74
  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 +14 -15
  365. package/dist/cursor/scrollport.js +7 -13
  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 -14
  375. package/dist/cursor/visual-lines.js +45 -46
  376. package/dist/cursor/widget-edge-snap.d.ts +10 -15
  377. package/dist/cursor/widget-edge-snap.js +13 -12
  378. package/dist/cursor/widget-offset.d.ts +110 -104
  379. package/dist/cursor/widget-offset.js +344 -179
  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 +30 -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 +28 -50
  434. package/dist/editor-actions/focus/focus-landing.d.ts +8 -11
  435. package/dist/editor-actions/focus/focus-landing.js +15 -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 +54 -82
  465. package/dist/editor-actions/plugin/container.js +105 -188
  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 +88 -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 +37 -8
  550. package/dist/plugin.js +100 -77
  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 +78 -67
  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 -81
  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 +51 -45
  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 +15 -6
  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 +141 -310
  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 +78 -84
  695. package/dist/schema/commands.js +152 -117
  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 +8 -10
  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 +63 -80
  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 +92 -125
  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 +59 -96
  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 +51 -134
  807. package/dist/selection/dead-space-caret.d.ts +19 -30
  808. package/dist/selection/dead-space-caret.js +70 -88
  809. package/dist/selection/drag-pointer.d.ts +7 -9
  810. package/dist/selection/drag-pointer.js +23 -33
  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 -40
  816. package/dist/selection/keyboard-extend.js +94 -117
  817. package/dist/selection/multi-click.d.ts +13 -18
  818. package/dist/selection/multi-click.js +32 -38
  819. package/dist/selection/native-bridge.d.ts +29 -39
  820. package/dist/selection/native-bridge.js +78 -127
  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 +25 -16
  824. package/dist/selection/path-lookup.js +101 -18
  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 +5 -5
  828. package/dist/selection/pointer-gesture.js +5 -5
  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 -40
  832. package/dist/selection/primitives.js +57 -67
  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 -23
  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 +34 -16
  852. package/dist/selection/selection-drop.js +159 -95
  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 +60 -53
  864. package/dist/styles/editor.css +201 -143
  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 +9 -7
  960. package/dist/tree-operations/paste/replacement-parse.js +12 -10
  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 +327 -205
  994. package/docs/guide/directives.md +7 -7
  995. package/docs/guide/plugin-api.md +253 -185
  996. package/docs/guide/plugin-guide.md +332 -235
  997. package/docs/guide/plugin-testing.md +96 -82
  998. package/package.json +12 -16
  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/cursor/scroll-hold.d.ts +0 -10
  1015. package/dist/cursor/scroll-hold.js +0 -22
  1016. package/dist/invariants/split-landing.d.ts +0 -8
  1017. package/dist/invariants/split-landing.js +0 -15
  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 -31
  1021. package/dist/tree-operations/paste/replace-block-at-parent.js +0 -78
@@ -1,148 +1,172 @@
1
1
  /**
2
- * Every action interface a block component invokes upward through Svelte context, plus
3
- * the commit vocabulary those calls are expressed in.
2
+ * Every action interface a block component calls upward through Svelte context, plus
3
+ * the commit types those calls are written in.
4
4
  */
5
5
  import type { CstNode, TableAlignment } from './core/nodes';
6
6
  import type { NodeView } from './core/node-views';
7
+ import type { LineEnding } from './core/lines';
7
8
  import type { StructuralChange } from './tree-operations/structural-change';
8
9
  import type { TrackedPosition } from './tree-operations/settle';
9
10
  import type { SharingState } from './tree-operations/sharing';
11
+ import type { BodyParent } from './tree-operations/node-primitives';
10
12
  import type { BlockComponent, FocusPosition } from './block-component';
11
- import type { ScopedOpDescriptor } from './schema/operations';
13
+ import type { OperationDetailMap, ScopedOpDescriptor } from './schema/operations';
14
+ import type { WriteMode } from './schema/block-kind-descriptor';
12
15
  import type { DocPath } from './selection/path-math';
16
+ import type { CaretPosition, Landing } from './selection/primitives';
17
+ import type { LegalWrite } from './tree-operations/content-write';
18
+ import type { LandingOutcome, RevealPolicy } from './selection/caret-landing';
19
+ import type { RemovalGesture } from './selection/caret-target';
13
20
  /**
14
- * Caret-restore coordinate stored with a commit's undo snapshot: `path` is the `DocPath`
15
- * dialect and must resolve in the pre-mutation tree; `'skip'` joins the caller's
16
- * already-pushed entry. Minted by the scope factories (`block-edit-scope.ts`) or the
17
- * `path-math` helpers, never composed at a call site.
21
+ * Where the caret goes back to on undo when nothing is focused: `path` is a document-absolute
22
+ * `DocPath` and must resolve in the tree before the mutation. Built by the block-list factories
23
+ * (`block-edit-scope.ts`) or the `path-math` helpers, never assembled at a call site.
18
24
  */
19
25
  export type CommitSnapshotArg = {
20
26
  path: DocPath;
21
27
  offset: number;
22
- } | 'skip';
28
+ };
23
29
  /**
24
- * Who owns the undo entry: `'own'` (the default) pushes one, `'join'` means the caller
25
- * already pushed the entry covering this composite operation and this must not add one.
30
+ * Opt-in for structural commits that may legitimately do nothing. The commit then throws
31
+ * away the snapshot it took first: no undo entry, no edit event, nothing written to state
32
+ * (its landing still runs, since a refused merge still crosses the boundary the key pressed at).
33
+ * Not for content or metadata commits, whose `noop` `StructuralChange` means "structure held,
34
+ * bytes changed".
26
35
  */
27
- export type UndoEntryMode = 'own' | 'join';
36
+ export type DiscardIfNoop = boolean;
28
37
  /**
29
- * Opt-in for structural commits that can legitimately no-op. The ceremony then discards
30
- * the pre-captured snapshot: no undo entry, no edit event, no publish (`afterTick` still
31
- * runs — caret placement is a view concern). NOT for content/metadata commits, whose
32
- * `noop` StructuralChange means "structure held, bytes changed" and MUST still publish.
38
+ * Where the caret goes after a commit, read after the tick so it sees the tree the commit left.
39
+ * It returns a value and places nothing; the commit puts the caret there through the editor's
40
+ * caret landing (`selection/caret-landing.ts`), and null leaves the caret where it is.
33
41
  */
34
- export type DiscardIfNoop = boolean;
42
+ export type CommitLanding = () => Landing | null;
35
43
  /**
36
- * Post-tick view callback — where a commit lands its caret. Awaited, so a landing that
37
- * must first reveal an off-window target (VR-12) is expressible here; the reveal is
38
- * bounded (VR-5), so awaiting cannot hang. Returning nothing opts out of the wait.
44
+ * A callback that places the caret itself after the tick, left only for the delete and the typing
45
+ * over a range that spans blocks, not yet on {@link CommitLanding}. Awaited, before the landing.
39
46
  */
40
47
  export type CommitAfterTick = () => void | Promise<void>;
48
+ /**
49
+ * What a screen reader hears about a commit (a move, a table edit) in the editor's edit live
50
+ * region, read after the caret lands and only when bytes landed. That region hears nothing else, so a
51
+ * refused, failed or discarded commit says nothing there.
52
+ */
53
+ export type CommitAnnouncement = () => string;
54
+ /**
55
+ * A content write in flight, resolving to whether bytes landed. `admitted` is known the moment the
56
+ * call returns: false means the write was turned away before it touched anything (reading mode, or
57
+ * a list with no text of its own to write). Only an admitted write has a caret: the landing offset
58
+ * in the bytes as stored, with `storedOffset` mapping any other offset the same way.
59
+ */
60
+ export type ContentWrite = Promise<boolean> & (RefusedContentWrite | AdmittedContentWrite);
61
+ export interface RefusedContentWrite {
62
+ readonly admitted: false;
63
+ }
64
+ export interface AdmittedContentWrite {
65
+ readonly admitted: true;
66
+ readonly caret: number;
67
+ storedOffset(offset: number): number;
68
+ /** False when the write places the caret itself (a new kind, a merge, a changed container),
69
+ * so the block must not put its own caret back. */
70
+ readonly keepsCaret: boolean;
71
+ }
72
+ /** Where the caret goes after an edit to one block, relative to it: `path` walks its children
73
+ * (`[]` is the block itself) and `offset` is a byte there or an edge value (`CURSOR_END`). */
74
+ export interface BlockCaret {
75
+ path: number[];
76
+ offset: number;
77
+ }
78
+ /** Every edit a block asks of its list. Each resolves to whether bytes landed; a focus move
79
+ * that writes nothing resolves false. */
41
80
  export interface BlockEditActions {
42
- splitBlock(blockIndex: number, offset: number): void | Promise<void>;
81
+ splitBlock(blockIndex: number, offset: number): Promise<boolean>;
43
82
  /**
44
- * Focus the block after `blockIndex` in this scope, minting an empty paragraph when
45
- * it is the last child. An off-window next block leaves the caret put, key consumed.
46
- */
47
- descendToBody(blockIndex: number): void | Promise<void>;
48
- /**
49
- * @internal Mint a paragraph carrying `text` at a BOUNDARY of this scope, caret after
50
- * the text. `boundaryIndex === children.length` appends. The between-blocks caret's
51
- * insertion door (`selection/gap-caret.ts`).
52
- */
53
- insertParagraph(boundaryIndex: number, text: string): void | Promise<void>;
54
- mergeWithPrevious(blockIndex: number): void | Promise<void>;
55
- mergeWithNext(blockIndex: number): void | Promise<void>;
56
- deleteBlock(blockIndex: number): void | Promise<void>;
57
- /**
58
- * `preEditOffset` is the undo snapshot's cursor anchor; `postEditFocusOffset` is where
59
- * the caret lands when a kind change remounts the block (typing `# ` on a paragraph),
60
- * defaulting to `preEditOffset`.
61
- */
62
- updateBlockContent(blockIndex: number, text: string, preEditOffset?: number, postEditFocusOffset?: number): void | Promise<void>;
63
- /**
64
- * Where a caret at `offset` lands once this scope has committed `text` — the image of
65
- * a container's `bodyWrite` rewrite, so a surface whose committed bytes differ from
66
- * its DOM seats the caret on the bytes. Identity when the scope rewrites nothing.
67
- */
68
- mapCommittedOffset?(text: string, offset: number): number;
69
- /**
70
- * Mutate block metadata without touching raw — for state expressed as metadata (task
71
- * checkboxes), NOT raw-driven metadata like heading level (use updateBlockContent).
72
- * The patch is shallow-merged; an empty patch is a no-op.
83
+ * Focus the block after `blockIndex` in this list, creating an empty paragraph when it is
84
+ * the last child. If the next block is not mounted the caret stays put, key consumed.
73
85
  */
86
+ descendToBody(blockIndex: number): Promise<boolean>;
87
+ /** @internal Create a paragraph holding `text` at a boundary of this list, caret after the
88
+ * text; `boundaryIndex === children.length` appends. */
89
+ insertParagraph(boundaryIndex: number, text: string): Promise<boolean>;
90
+ mergeWithPrevious(blockIndex: number): Promise<boolean>;
91
+ mergeWithNext(blockIndex: number): Promise<boolean>;
92
+ /** Remove the block; the caret lands once, on the side `gesture` points
93
+ * (`selection/caret-target.ts :: survivorAfterRemoval`), and the caller places none. */
94
+ deleteBlock(blockIndex: number, gesture: RemovalGesture): Promise<boolean>;
95
+ /** Write `text` as the block's bytes through its kind's and this list's write rules. Undo
96
+ * returns to `preEditOffset`, where the edit began; `caret` maps `postEditFocusOffset`. */
97
+ updateBlockContent(blockIndex: number, text: string, mode: WriteMode, preEditOffset: number, postEditFocusOffset?: number): ContentWrite;
98
+ /** Shallow-merges metadata the kind's rebuild writes into its bytes (a checkbox toggle). A key no
99
+ * parse gives back is dropped at the next re-read; a heading's level goes through the text. */
74
100
  updateBlockMetadata(blockIndex: number, metadata: Record<string, unknown>, options?: {
75
- undoEntry?: UndoEntryMode;
76
- afterTick?: CommitAfterTick;
77
- }): void | Promise<void>;
78
- /**
79
- * Replace the block at `blockIndex` with zero or more new blocks.
80
- * `replacement.length === 0` is equivalent to deleteBlock. `focus.path` addresses a caret
81
- * landing inside the replacement's own structure; `snapshotOffset` is where the caret was,
82
- * for the undo entry, and defaults to where it lands.
83
- */
84
- replaceBlock(blockIndex: number, replacement: CstNode[], focus?: {
101
+ caret?: BlockCaret;
102
+ }): Promise<boolean>;
103
+ /** Replace the block with zero or more blocks (none is `deleteBlock`). `focus.path` addresses a
104
+ * caret inside the replacement; `snapshotOffset` is the undo entry's caret. */
105
+ replaceBlock(blockIndex: number, replacement: CstNode[], focus: {
85
106
  replacementIndex: number;
86
107
  offset: number;
87
108
  path?: number[];
88
- }, options?: {
89
- undoEntry?: UndoEntryMode;
90
- snapshotOffset?: number;
91
- }): void | Promise<void>;
109
+ } | undefined, options: {
110
+ snapshotOffset: number;
111
+ }): Promise<boolean>;
92
112
  }
93
113
  export interface MoveFocusOptions {
94
- /**
95
- * When false, a move past the true document end no-ops instead of appending a trailing
96
- * paragraph; only the root append is suppressed, sibling moves and upward delegation
97
- * are unaffected. Defaults to true (Enter/split rely on the append).
98
- */
114
+ /** False stops a move past the document end from appending a trailing paragraph; sibling moves
115
+ * and upward delegation are unaffected. Defaults to true, which Enter's split relies on. */
99
116
  append?: boolean;
100
- /** @internal Set by a move that LEAVES a gap caret, so the boundary it just left
101
- * cannot re-capture it. */
117
+ /** @internal Set by a move that leaves a between-blocks caret, so the boundary it just
118
+ * left cannot capture it again. */
102
119
  skipGapStop?: boolean;
103
120
  }
104
121
  export interface FocusActions {
105
122
  moveFocus(blockIndex: number, position: FocusPosition, options?: MoveFocusOptions): void | Promise<void>;
106
- /** Mount an off-window top-level block before placing a caret in it; see EditorActionsDeps.revealPath. */
107
- revealPath(path: number[]): Promise<BlockComponent | null>;
108
- /**
109
- * @internal Park the caret at an eligible between-blocks boundary, reporting whether it
110
- * did. Required, not optional: a dropped forward makes every gap arrival below it
111
- * silently vanish.
112
- */
123
+ /** @internal Put the caret at a between-blocks boundary that allows one. Required: a container
124
+ * that fails to forward it makes every such caret below it vanish. */
113
125
  tryGapStop(parentPath: number[], boundaryIndex: number): boolean;
126
+ /** @internal An arrow move ended on the block at `path`: one focused whole comes into view.
127
+ * Forwarded to the root like `tryGapStop`. */
128
+ followArrival(path: number[]): void;
114
129
  }
115
130
  export interface HistoryActions {
116
131
  requestUndo(): void | Promise<void>;
117
132
  requestRedo(): void | Promise<void>;
118
133
  }
119
134
  /**
120
- * Owned mutation view handed to a container/multi-scope commit's `mutate`: `node` is the
121
- * unshared copy already spliced into the live tree. Never write through references
122
- * captured before the commit — they may be stale snapshot-shared originals.
135
+ * The copy a container or multi-list commit hands its `mutate`: `node` is the unshared copy
136
+ * already spliced into the live tree. Never write through references captured before the
137
+ * commit; they may be the originals an undo snapshot still shares.
123
138
  */
124
139
  export interface ContainerScope {
125
140
  node: CstNode;
126
141
  children: CstNode[];
127
142
  sharing: SharingState;
143
+ /** The document's line ending, which every line the mutation writes takes. */
144
+ lineEnding: LineEnding;
145
+ /** `children` as the body the tree operations write; at the document root it has no owner. */
146
+ readonly body: BodyParent;
147
+ /** Rebuilds `node`'s raw as the commit does, for a node the commit won't rebuild whose bytes
148
+ * the mutation reads before it returns; never the scope, which the commit rebuilds once. */
149
+ rebuild(node: CstNode): void;
128
150
  }
129
151
  export interface MultiScopeTarget {
130
- /** Scope identity — a view suffices; the ceremony unshares the spine and mints the owned mutation view. */
152
+ /** Which block list this is; a view is enough, since the commit copies the ancestor chain
153
+ * and makes its own mutable copy. */
131
154
  node: NodeView;
132
- /** The `BlockListState` shape the ceremony writes: ids by assignment, refs only in
133
- * place — the array identity is the scope's, so a replacement strands its teardowns. */
155
+ /** The `BlockListState` fields the commit writes: ids by assignment, refs only in place,
156
+ * because the array identity is the list's and replacing it strands its teardowns. */
134
157
  state: {
135
158
  innerBlockIds: string[];
136
159
  readonly innerBlockRefs: (BlockComponent | undefined)[];
137
160
  };
138
- /** Doc-absolute path of `node`; the commit primitive unshares its spine. */
161
+ /** Document-absolute path of `node`; the commit copies its ancestor chain before writing. */
139
162
  path: number[];
140
163
  }
141
164
  export interface CommitMultiScopeArgs<S extends readonly MultiScopeTarget[] = readonly MultiScopeTarget[]> {
142
- /** `scopes[0]` is the outermost — inner raws must be current before outer rebuilds. */
165
+ /** `scopes[0]` is the outermost: an inner block's raw must be current before an outer
166
+ * one rebuilds. */
143
167
  scopes: S;
144
168
  snapshot: CommitSnapshotArg;
145
- /** One view in, one StructuralChange out per scope, same order — tuple-checked for literal scope arrays. */
169
+ /** One view in, one `StructuralChange` out per list, same order; checked as a tuple. */
146
170
  mutate: (scopeViews: {
147
171
  [K in keyof S]: ContainerScope;
148
172
  }) => {
@@ -150,12 +174,14 @@ export interface CommitMultiScopeArgs<S extends readonly MultiScopeTarget[] = re
150
174
  };
151
175
  op?: ScopedOpDescriptor;
152
176
  afterTick?: CommitAfterTick;
177
+ /** Overridden when an ancestor collapsed: the collapse recreated the blocks it names. */
178
+ landing?: CommitLanding;
179
+ /** How far the landing moves the viewport; `'into-view'` when absent. */
180
+ reveal?: RevealPolicy;
181
+ announce?: CommitAnnouncement;
153
182
  discardIfNoop?: DiscardIfNoop;
154
- /**
155
- * Caret positions the scopes' settles carry through their folds, parallel to `scopes` —
156
- * a fold re-tiles the bytes under a landing chosen before the settle ran. Written in
157
- * place, so `afterTick` reads the settled seat back off the object it passed in.
158
- */
183
+ /** Caret positions each list's fix-up updates in place, parallel to `scopes`, since a collapsing
184
+ * container moves the bytes under them; the landing reads them back off the same objects. */
159
185
  trackCaret?: readonly (TrackedPosition | undefined)[];
160
186
  }
161
187
  export interface CommitStructuralArgs {
@@ -163,14 +189,21 @@ export interface CommitStructuralArgs {
163
189
  mutate: (children: CstNode[]) => StructuralChange;
164
190
  op?: ScopedOpDescriptor;
165
191
  afterTick?: CommitAfterTick;
166
- /** Leaf(ves) for the dev invariant check when `mutate` returns `noop` (in-place kind change). */
192
+ landing?: CommitLanding;
193
+ reveal?: RevealPolicy;
194
+ announce?: CommitAnnouncement;
195
+ /** Leaves for the dev invariant check when `mutate` returns `noop` (an in-place kind change). */
167
196
  touchedNodes?: CstNode[];
168
197
  discardIfNoop?: DiscardIfNoop;
198
+ /** A caret position the document's fix-up updates in place; the landing reads it back. */
199
+ trackCaret?: TrackedPosition;
169
200
  }
170
201
  export interface CommitContainerStructuralArgs {
171
- /** Scope identity — a view suffices; the ceremony unshares the spine and mints the owned mutation view. */
202
+ /** Which container this is; a view is enough, since the commit copies the ancestor chain
203
+ * and makes its own mutable copy. */
172
204
  containerNode: NodeView;
173
- /** Doc-absolute path of `containerNode` — the spine the primitive unshares + rebuilds. */
205
+ /** Document-absolute path of `containerNode`: the ancestor chain the commit copies and
206
+ * rebuilds. */
174
207
  path: number[];
175
208
  state: {
176
209
  innerBlockIds: string[];
@@ -180,90 +213,144 @@ export interface CommitContainerStructuralArgs {
180
213
  mutate: (scope: ContainerScope) => StructuralChange;
181
214
  op?: ScopedOpDescriptor;
182
215
  afterTick?: CommitAfterTick;
216
+ landing?: CommitLanding;
217
+ reveal?: RevealPolicy;
218
+ announce?: CommitAnnouncement;
183
219
  discardIfNoop?: DiscardIfNoop;
220
+ /** A caret position the container's fix-up updates in place; the landing reads it back. */
221
+ trackCaret?: TrackedPosition;
184
222
  }
185
223
  /**
186
- * Selection-free commit surface, so the selection layer can depend on it without
187
- * dragging in `EditorSelection`/`UndoEntry`. `UndoController` (editor-actions/deps)
188
- * extends it with the two selection-typed members.
224
+ * The commit calls with no selection types in them, so `selection/` can depend on this
225
+ * without pulling in `EditorSelection` or `UndoEntry`. `UndoController`
226
+ * (editor-actions/deps) adds the two selection-typed members.
189
227
  */
190
228
  export interface CommitController {
191
- /** Editor's sharing epoch state, exposed for out-of-ceremony copy-path-on-write. */
229
+ /** The editor's structural-sharing counters, for copy-before-write outside a commit. */
192
230
  sharing: SharingState;
193
- pushUndoSnapshot(blockIndex: number, offset: number): void;
194
- /** Snapshot whose no-caret fallback seeds a deep leaf path (e.g. a match nested in a list item). */
195
- pushUndoSnapshotPath(path: number[], offset: number): void;
196
- /** Debounced typing snapshot; `leafPath` is the edited leaf's doc-absolute path. */
231
+ /** Debounced typing snapshot; `leafPath` is the edited leaf's document-absolute path. */
197
232
  pushUndoSnapshotDebounced(leafPath: number[], offset: number, batchKey?: string | number): void;
198
- /** Start the batch's pause window, once the keystroke's own edit has settled. Paired with
199
- * every `pushUndoSnapshotDebounced`, or the batch never ends by pause. */
233
+ /** Start the batch's pause timer, once the keystroke's own edit is done. Paired with
234
+ * every `pushUndoSnapshotDebounced`, or the batch never ends on a pause. */
200
235
  armUndoPause(): void;
201
- commitStructural(args: CommitStructuralArgs): Promise<void>;
202
- commitContainerStructural(args: CommitContainerStructuralArgs): Promise<void>;
203
- commitMultiScope<const S extends readonly MultiScopeTarget[]>(args: CommitMultiScopeArgs<S>): Promise<void>;
204
- /**
205
- * Expose the document root as a MultiScopeTarget so commitMultiScope
206
- * callers can include doc-level splices alongside container scopes
207
- * (e.g., a cross-block delete whose LCA is the document root).
208
- */
236
+ /** Each commit resolves to whether bytes landed: false when declined, rolled back or a no-op
237
+ * it discarded. */
238
+ commitStructural(args: CommitStructuralArgs): Promise<boolean>;
239
+ commitContainerStructural(args: CommitContainerStructuralArgs): Promise<boolean>;
240
+ commitMultiScope<const S extends readonly MultiScopeTarget[]>(args: CommitMultiScopeArgs<S>): Promise<boolean>;
241
+ /** The document root as a `MultiScopeTarget`, so a multi-scope commit can include root-level
242
+ * changes (a cross-block delete whose common ancestor is the root). */
209
243
  getDocScope(): MultiScopeTarget;
210
- /** Flush the pending keystroke batch — emit its `input` event and clear the
211
- * debounce timer — before a history swap, so the batch's bytes aren't lost. */
244
+ /** Flush the pending keystroke batch (emit its `input` event and clear the debounce
245
+ * timer) before an undo or redo, so the batch's bytes aren't lost. */
212
246
  flushDebouncedCheckpoint(): void;
213
247
  /** Run a command's byte write as its own undo entry. A command is not typing, so the
214
- * keystroke batch breaks on BOTH sides: one Ctrl+Z takes the command and nothing else. */
248
+ * keystroke batch breaks on both sides: one Ctrl+Z takes back the command alone. */
215
249
  isolateUndoEntry(write: () => void): void;
250
+ /** Make every write made while `run` is pending one undo entry, restoring the selection the step
251
+ * opened with (`seed` when unfocused). Ends when `run` settles or at the author's next input. */
252
+ undoStep(seed: CommitSnapshotArg, run: () => Promise<unknown>): Promise<void>;
253
+ /** Called on the author's own input: every later write opens its own entry, even while a
254
+ * step's run is still pending. */
255
+ endUndoStep(): void;
216
256
  }
257
+ /** What a container reaches the editor root for, forwarded unchanged through nested containers.
258
+ * A keystroke runs `typeInLeaf`, then a commit or `writeLeafInPlace` (`leaf-write.ts`). */
217
259
  export interface ContainerEditActions {
218
- /**
219
- * Push a debounced undo snapshot for routine text input. `leafPath` is the edited
220
- * leaf's doc-absolute path; `batchKey` (its stable block id) breaks the batch on
221
- * focus moves between sibling leaves.
222
- */
223
- pushDebouncedCheckpoint(leafPath: number[], offset: number, batchKey?: string | number): void;
224
- /** The checkpoint's other half: open the pause window once the keystroke's edit has settled. */
225
- armDebouncedPause(): void;
226
- /**
227
- * Publish a raw change made outside the commit primitive, forwarded unchanged through
228
- * nested containers. Raw rebuilds are NOT part of the nudge — out-of-ceremony writers
229
- * rebuild via `withUnsharedSpine`, which operates on owned copies.
230
- */
231
- nudgeReactivity(): void;
232
- /**
233
- * Copy-path-on-write wrapper for out-of-ceremony writes (routine typing): unshares the
234
- * spine doc-root → `absPath`, calls `write` with the owned chain (outermost first) and the
235
- * epoch to own anything OFF that spine, then rebuilds innermost-first. The caller still pushes
236
- * its own checkpoint and nudges. True means the rebuild re-derived a container's kind (typing
237
- * out a `> [!TIP]` marker), remounting the edited leaf — the caller re-places the caret.
238
- * `write` returns the change its own settle made, so the wrapper can publish it.
239
- */
240
- withUnsharedSpine(absPath: number[], write: (chain: CstNode[], sharing: SharingState) => StructuralChange | void): boolean;
241
- /**
242
- * Preferred entry for structural container mutations: spine unshare, snapshot,
243
- * publish, edit event, post-tick. `mutate` receives the OWNED container with its
244
- * working children attached — mutate through it, never through captures.
245
- */
246
- commitContainer(args: CommitContainerStructuralArgs): Promise<void>;
260
+ /** The document's line ending, which every line a write below the root creates takes. */
261
+ lineEnding(): LineEnding;
262
+ /** Change a container's structure as one undo entry. `mutate` receives the copied container
263
+ * with its working children attached; write through it, never through a captured node. */
264
+ commitContainer(args: CommitContainerStructuralArgs): Promise<boolean>;
265
+ /** Push the typing burst's undo entry for the leaf at `leafPath`, then run `work` joined to
266
+ * it; `batchKey` is the leaf's id, so a move to a sibling leaf starts a new burst. */
267
+ typeInLeaf<T>(leafPath: DocPath, preEditOffset: number, batchKey: string, work: () => Promise<T>): Promise<T>;
268
+ /** The keystroke's write outside a commit, for a write that keeps the leaf's kind. */
269
+ writeLeafInPlace(leafPath: DocPath, write: LegalWrite, caret: number): InPlaceResult;
270
+ /** Put the caret at a document position through the editor's caret landing, for an edit that
271
+ * moves the caret without a commit. */
272
+ land(pos: CaretPosition): Promise<LandingOutcome>;
273
+ /** Where the caret goes once the block at `removedPath` is gone, read on the document now. */
274
+ survivorAfterRemoval(removedPath: DocPath, gesture: RemovalGesture): CaretPosition | null;
275
+ }
276
+ export type InPlaceResult = {
277
+ readonly wrote: false;
278
+ } | {
279
+ readonly wrote: true;
280
+ /** Where the caret goes when the write took it out of the leaf's element (a merge, an
281
+ * ancestor that changed kind or collapsed); null when the leaf's element keeps it. */
282
+ readonly relanding: Relanding | null;
283
+ };
284
+ /** A caret to put back after a write, and the blocks the write left where it wrote: focus already
285
+ * outside them means a blur committed the write, and the caret stays where it went. */
286
+ export interface Relanding {
287
+ readonly caret: CaretPosition;
288
+ readonly window: {
289
+ readonly list: DocPath;
290
+ readonly at: number;
291
+ readonly count: number;
292
+ };
293
+ }
294
+ /** What a commit writing new text into one leaf resolves to. */
295
+ export type LeafWriteResult = {
296
+ readonly wrote: false;
297
+ } | LeafWriteLanded;
298
+ /** `caret` is where the caret goes after the write and its list's fix-up, and `window` the
299
+ * written block's replacement run; a collapsed ancestor places the caret itself afterwards. */
300
+ export interface LeafWriteLanded extends Relanding {
301
+ readonly wrote: true;
302
+ /** Whether the write put new blocks in the position rather than rewriting the leaf. */
303
+ readonly replaced: boolean;
304
+ }
305
+ /** A leaf write by document path: `caret` is an offset into the text as written, `snapshotOffset`
306
+ * one into the leaf's current bytes, where undo puts the caret back when nothing is focused. */
307
+ export interface LeafTextOptions {
308
+ caret: number;
309
+ snapshotOffset: number;
310
+ /** Runs after the tick, before a collapsed ancestor places the caret itself. */
311
+ afterTick?: (landed: LeafWriteLanded) => void | Promise<void>;
312
+ }
313
+ /** Which replacement block the caret lands in, at `offset` (`CURSOR_END` for its end) or at
314
+ * `path` below it. */
315
+ export interface ReplaceFocus {
316
+ replacementIndex: number;
317
+ offset: number;
318
+ path?: number[];
319
+ }
320
+ export interface ReplaceOptions {
321
+ /** Where undo puts the caret back when nothing is focused: where the gesture began. */
322
+ snapshotOffset: number;
323
+ /** A clipboard's own trailing blank line, landed as the document's when nothing follows. */
324
+ trailingBlank?: boolean;
325
+ /** The route a paste or a drop names in the edit event, in place of the block count. */
326
+ source?: ReplaceSource;
247
327
  }
328
+ export type ReplaceSource = Extract<OperationDetailMap['replaceBlock'], {
329
+ source: unknown;
330
+ }>['source'];
331
+ /** A list's item edits; each resolves to whether bytes landed. */
248
332
  export interface ListContext {
249
- insertItemAfter(itemIndex: number, newItem?: CstNode): Promise<void>;
250
- exitListAtItem(itemIndex: number): Promise<void>;
251
- indentItem(itemIndex: number): Promise<void>;
252
- unindentItem(itemIndex: number): Promise<void>;
333
+ insertItemAfter(itemIndex: number, newItem?: CstNode): Promise<boolean>;
334
+ exitListAtItem(itemIndex: number): Promise<boolean>;
335
+ indentItem(itemIndex: number): Promise<boolean>;
336
+ unindentItem(itemIndex: number): Promise<boolean>;
253
337
  /**
254
338
  * Split the item mid-content: first half stays, second half moves into a
255
339
  * new sibling item. Emits exactly one undo snapshot and one edit event.
256
340
  */
257
- splitItemAtOffset(itemIndex: number, innerIndex: number, offset: number): Promise<void>;
258
- /** Promote a nested list item to the parent list level. Called on the PARENT list's context.
259
- * `nestedListNode` is scope identity (a live-tree reference) — a view; writes go through the ceremony. */
260
- promoteNestedItem(parentItemIndex: number, nestedListNode: NodeView, nestedItemIndex: number): Promise<void>;
341
+ splitItemAtOffset(itemIndex: number, innerIndex: number, offset: number): Promise<boolean>;
342
+ /** Promote a nested list item to this parent list's level; `nestedListNode` is a live-tree
343
+ * reference, and writes go through the commit. */
344
+ promoteNestedItem(parentItemIndex: number, nestedListNode: NodeView, nestedItemIndex: number): Promise<boolean>;
261
345
  /** Returns this list's index in its enclosing list (for nested-list promotion). */
262
346
  getContainingItemIndex(): number;
263
347
  }
264
348
  export type CellPosition = 'start' | 'end' | number;
265
349
  export interface TableContext {
350
+ /** A key's move to another cell; the cell comes into view as any arrow arrival does. */
266
351
  focusCell(rowIdx: number, colIdx: number, position: CellPosition): void;
352
+ /** Scroll the grid sideways so the cell's column is inside the table's own box. */
353
+ revealColumn(rowIdx: number, colIdx: number): void;
267
354
  getStickyColumn(): number | null;
268
355
  setStickyColumn(colIdx: number): void;
269
356
  resetStickyColumn(): void;
@@ -288,7 +375,7 @@ export interface TableContext {
288
375
  moveColumnLeft(colIdx: number): Promise<void>;
289
376
  moveColumnRight(colIdx: number): Promise<void>;
290
377
  cycleAlignment(colIdx: number): Promise<void>;
291
- /** Set a column's alignment directly — distinct from the cycle step. */
378
+ /** Set a column's alignment directly, as opposed to cycling it. */
292
379
  setColumnAlignment(colIdx: number, alignment: TableAlignment): Promise<void>;
293
380
  /** Write a grid of cell texts from `origin`, appending the rows and columns it needs, as one
294
381
  * commit: a spreadsheet-like paste. Empty grids are a no-op. */
@@ -298,8 +385,8 @@ export interface TableContext {
298
385
  }, grid: string[][]): Promise<void>;
299
386
  }
300
387
  /**
301
- * The TableContext mutations addressed by ONE axis index, the vocabulary the affordance
302
- * menu and the cell's table commands both dispatch through. Derived from the contract
388
+ * The `TableContext` mutations addressed by a single row or column index, the names both the
389
+ * hover menu and the cell's table commands dispatch through. Derived from the interface
303
390
  * rather than listed beside it, so a member with any other signature cannot be named.
304
391
  */
305
392
  export type TableAxisAction = {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Every action interface a block component invokes upward through Svelte context, plus
3
- * the commit vocabulary those calls are expressed in.
2
+ * Every action interface a block component calls upward through Svelte context, plus
3
+ * the commit types those calls are written in.
4
4
  */
5
5
  export {};
@@ -4,11 +4,11 @@ export declare function markEditorInteracted(root: HTMLElement): void;
4
4
  /** True when a body-level chord routes to `root`. */
5
5
  export declare function claimsBodyChord(root: HTMLElement): boolean;
6
6
  /**
7
- * True when `active` is a text-entry surface outside every mounted editor. The reserved
8
- * chords (Ctrl+F / Ctrl+H) yield to it, so an editor never hijacks a consumer's own field.
7
+ * True when `active` is a text-entry element outside every mounted editor. The reserved
8
+ * chords (Ctrl+F, Ctrl+H) yield to it, so an editor never hijacks a consumer's own field.
9
9
  */
10
10
  export declare function isForeignTextEntry(active: Element | null): boolean;
11
- /** True when `el` takes text input — the surfaces a programmatic focus move must yield to. */
11
+ /** True when `el` takes text input: the elements a programmatic focus move must yield to. */
12
12
  export declare function isTextEntrySurface(el: Element | null): boolean;
13
13
  /** Release the claim if this editor holds it, so a torn-down instance never keeps it. */
14
14
  export declare function releaseInteractedEditor(root: HTMLElement): void;
@@ -1,9 +1,8 @@
1
1
  /**
2
- * Which editor a document-level chord routes to when no block holds native focus. The
3
- * keydown listener sees every editor's keystrokes on the page, so the claimant is the
4
- * last-interacted editor while that claim is live, else the sole mounted one. Two mounted
5
- * editors with no live claim resolve to neither — guessing drives the wrong instance.
6
- * Module-level by design: cross-instance coordination is the point.
2
+ * Which editor a document-level chord goes to when no block has focus: the last editor the user
3
+ * touched while it is still mounted, otherwise the only mounted editor. Two mounted editors and
4
+ * no recent one resolve to neither, since guessing drives the wrong instance. Module-level on
5
+ * purpose: coordinating across instances is the point.
7
6
  */
8
7
  const mountedEditors = new Set();
9
8
  let lastInteracted = null;
@@ -24,7 +23,7 @@ export function claimsBodyChord(root) {
24
23
  return !hasLiveClaim && mountedEditors.size === 1 && mountedEditors.has(root);
25
24
  }
26
25
  // Text-like <input> types the reserved chords yield to. Non-text types are deliberately
27
- // absent: they don't consume Ctrl+F, so a sole editor keeps claiming while one has focus.
26
+ // absent: they don't consume Ctrl+F, so a lone editor keeps taking it while one has focus.
28
27
  const TEXT_ENTRY_INPUT_TYPES = new Set([
29
28
  'text',
30
29
  'search',
@@ -35,8 +34,8 @@ const TEXT_ENTRY_INPUT_TYPES = new Set([
35
34
  'number'
36
35
  ]);
37
36
  /**
38
- * True when `active` is a text-entry surface outside every mounted editor. The reserved
39
- * chords (Ctrl+F / Ctrl+H) yield to it, so an editor never hijacks a consumer's own field.
37
+ * True when `active` is a text-entry element outside every mounted editor. The reserved
38
+ * chords (Ctrl+F, Ctrl+H) yield to it, so an editor never hijacks a consumer's own field.
40
39
  */
41
40
  export function isForeignTextEntry(active) {
42
41
  if (!isTextEntrySurface(active))
@@ -47,7 +46,7 @@ export function isForeignTextEntry(active) {
47
46
  }
48
47
  return true;
49
48
  }
50
- /** True when `el` takes text input — the surfaces a programmatic focus move must yield to. */
49
+ /** True when `el` takes text input: the elements a programmatic focus move must yield to. */
51
50
  export function isTextEntrySurface(el) {
52
51
  if (el instanceof HTMLTextAreaElement)
53
52
  return true;
@@ -1,9 +1,6 @@
1
1
  /**
2
- * DOM construction and lookup for the ambient marker span — the read-only
3
- * prefix container blocks contribute to their first prose child's textContent.
2
+ * Builds the marker prefix span (the "ambient" prefix): the read-only prefix a container block
3
+ * draws in front of its first prose child's text. Reading it back is `cursor/widget-offset.ts`.
4
4
  */
5
5
  import type { AmbientPrefix } from '../block-component';
6
6
  export declare function buildAmbientSpan(prefix: AmbientPrefix): HTMLSpanElement;
7
- export declare function ambientSpanOf(blockEl: ParentNode): HTMLElement | null;
8
- export declare function ambientLengthOf(blockEl: HTMLElement): number;
9
- export declare function placeCaretAfterAmbientSpan(blockEl: HTMLElement): boolean;