@voithos-labs/aragonite 0.10.3 → 0.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1021) hide show
  1. package/README.md +2 -2
  2. package/dist/a11y-strings.d.ts +12 -5
  3. package/dist/a11y-strings.js +61 -5
  4. package/dist/action-contracts.d.ts +242 -155
  5. package/dist/action-contracts.js +2 -2
  6. package/dist/active-editor.d.ts +3 -3
  7. package/dist/active-editor.js +8 -9
  8. package/dist/ambient/ambient-dom.d.ts +2 -5
  9. package/dist/ambient/ambient-dom.js +16 -62
  10. package/dist/assert.js +6 -5
  11. package/dist/block-component.d.ts +135 -109
  12. package/dist/block-component.js +30 -22
  13. package/dist/block-id.d.ts +6 -10
  14. package/dist/block-id.js +25 -14
  15. package/dist/bounded-memo.d.ts +5 -5
  16. package/dist/bounded-memo.js +6 -6
  17. package/dist/components/BlockDragHandle.svelte +13 -20
  18. package/dist/components/BlockHost.svelte +56 -134
  19. package/dist/components/BlockList.svelte +22 -19
  20. package/dist/components/DecorationOverlay.svelte +9 -10
  21. package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
  22. package/dist/components/Editor.svelte +619 -1089
  23. package/dist/components/Editor.svelte.d.ts +9 -20
  24. package/dist/components/GapCaret.svelte +26 -59
  25. package/dist/components/SelectionOverlay.svelte +36 -67
  26. package/dist/components/SelectionOverlay.svelte.d.ts +6 -4
  27. package/dist/components/TailInsert.svelte +8 -55
  28. package/dist/components/TailInsert.svelte.d.ts +4 -6
  29. package/dist/components/block-content-selector.d.ts +11 -11
  30. package/dist/components/block-content-selector.js +11 -11
  31. package/dist/components/block-el-lookup.d.ts +6 -0
  32. package/dist/components/block-el-lookup.js +27 -0
  33. package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
  34. package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
  35. package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
  36. package/dist/components/blocks/code/CodeBlock.svelte +255 -276
  37. package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
  38. package/dist/components/blocks/code/CodeBlockRail.svelte +103 -100
  39. package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
  40. package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
  41. package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
  42. package/dist/components/blocks/code/code-bootstrap.js +35 -28
  43. package/dist/components/blocks/code/code-context-actions.js +5 -4
  44. package/dist/components/blocks/code/code-enter.js +2 -2
  45. package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
  46. package/dist/components/blocks/code/code-fence-boundary.js +40 -66
  47. package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
  48. package/dist/components/blocks/code/code-fence-exit.js +24 -25
  49. package/dist/components/blocks/code/code-indent.d.ts +2 -2
  50. package/dist/components/blocks/code/code-indent.js +4 -7
  51. package/dist/components/blocks/code/code-languages.d.ts +16 -12
  52. package/dist/components/blocks/code/code-languages.js +58 -32
  53. package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
  54. package/dist/components/blocks/code/code-paste-surface.js +9 -18
  55. package/dist/components/blocks/code/code-renderer.d.ts +21 -5
  56. package/dist/components/blocks/code/code-renderer.js +90 -125
  57. package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
  58. package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
  59. package/dist/components/blocks/directive/activate-directives.js +18 -13
  60. package/dist/components/blocks/editable-leaf.d.ts +50 -74
  61. package/dist/components/blocks/editable-leaf.js +144 -202
  62. package/dist/components/blocks/editable-surface.d.ts +96 -100
  63. package/dist/components/blocks/editable-surface.js +101 -109
  64. package/dist/components/blocks/list/ListBlock.svelte +46 -90
  65. package/dist/components/blocks/list/ListItemBlock.svelte +99 -144
  66. package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +3 -0
  67. package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
  68. package/dist/components/blocks/list/task-checkbox.js +12 -7
  69. package/dist/components/blocks/plain-text-backend.d.ts +4 -20
  70. package/dist/components/blocks/plain-text-backend.js +9 -43
  71. package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
  72. package/dist/components/blocks/surface-wiring.svelte.js +15 -34
  73. package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
  74. package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
  75. package/dist/components/blocks/table/TableBlock.svelte +100 -165
  76. package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
  77. package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
  78. package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
  79. package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
  80. package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
  81. package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
  82. package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
  83. package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
  84. package/dist/components/blocks/table/cell-pointer.js +49 -71
  85. package/dist/components/blocks/table/cell-render.d.ts +24 -29
  86. package/dist/components/blocks/table/cell-render.js +29 -31
  87. package/dist/components/blocks/table/selected-cells.d.ts +7 -7
  88. package/dist/components/blocks/table/selected-cells.js +9 -13
  89. package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
  90. package/dist/components/blocks/table/table-caret-at-point.js +5 -5
  91. package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
  92. package/dist/components/blocks/table/table-cell-paste.js +27 -43
  93. package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
  94. package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
  95. package/dist/components/blocks/table/table-menu-model.js +6 -10
  96. package/dist/components/blocks/table/table-navigation.js +2 -2
  97. package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
  98. package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
  99. package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
  100. package/dist/components/blocks/text/auto-pair-record.js +51 -0
  101. package/dist/components/blocks/text/click-snap-guard.d.ts +9 -4
  102. package/dist/components/blocks/text/click-snap-guard.js +16 -5
  103. package/dist/components/blocks/text/composition-seat.d.ts +17 -14
  104. package/dist/components/blocks/text/composition-seat.js +11 -11
  105. package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
  106. package/dist/components/blocks/text/construct-edge-delete.js +50 -65
  107. package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
  108. package/dist/components/blocks/text/construct-reveal.js +13 -14
  109. package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
  110. package/dist/components/blocks/text/delimiter-autopair.js +87 -103
  111. package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
  112. package/dist/components/blocks/text/edge-policy-dispatch.js +164 -180
  113. package/dist/components/blocks/text/edge-seat.d.ts +17 -26
  114. package/dist/components/blocks/text/edge-seat.js +43 -70
  115. package/dist/components/blocks/text/link-at-point.d.ts +9 -9
  116. package/dist/components/blocks/text/link-at-point.js +12 -15
  117. package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
  118. package/dist/components/blocks/text/live-join-seam.js +75 -112
  119. package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
  120. package/dist/components/blocks/text/live-selection-edit.js +32 -105
  121. package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
  122. package/dist/components/blocks/text/live-split-rebalance.js +50 -67
  123. package/dist/components/blocks/text/marker-completion.d.ts +7 -12
  124. package/dist/components/blocks/text/marker-completion.js +17 -10
  125. package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
  126. package/dist/components/blocks/text/pending-mark-insert.js +30 -49
  127. package/dist/components/blocks/text/screen-diff.d.ts +5 -15
  128. package/dist/components/blocks/text/screen-diff.js +5 -19
  129. package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
  130. package/dist/components/blocks/text/text-clipboard.js +27 -32
  131. package/dist/components/blocks/text/text-keydown.d.ts +20 -30
  132. package/dist/components/blocks/text/text-keydown.js +54 -51
  133. package/dist/components/blocks/text/text-render.d.ts +25 -35
  134. package/dist/components/blocks/text/text-render.js +82 -61
  135. package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
  136. package/dist/components/blocks/text/widget-adjacency.js +17 -17
  137. package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
  138. package/dist/components/blocks/text/widget-interaction.js +243 -208
  139. package/dist/components/blocks/widget-portal.d.ts +20 -29
  140. package/dist/components/blocks/widget-portal.js +16 -14
  141. package/dist/components/built-in-blocks.d.ts +3 -4
  142. package/dist/components/built-in-blocks.js +17 -18
  143. package/dist/components/drag-handle.d.ts +13 -30
  144. package/dist/components/drag-handle.js +25 -63
  145. package/dist/components/editor-built-ins.d.ts +1 -0
  146. package/dist/components/editor-built-ins.js +16 -0
  147. package/dist/components/editor-root-clipboard.d.ts +6 -6
  148. package/dist/components/editor-root-clipboard.js +16 -27
  149. package/dist/components/editor-root-document-swap.d.ts +49 -0
  150. package/dist/components/editor-root-document-swap.js +54 -0
  151. package/dist/components/editor-root-focus.d.ts +5 -4
  152. package/dist/components/editor-root-focus.js +51 -22
  153. package/dist/components/editor-root-focused-surface.d.ts +35 -0
  154. package/dist/components/editor-root-focused-surface.js +65 -0
  155. package/dist/components/editor-root-geometry.d.ts +15 -24
  156. package/dist/components/editor-root-geometry.js +27 -31
  157. package/dist/components/editor-root-gestures.d.ts +39 -0
  158. package/dist/components/editor-root-gestures.js +189 -0
  159. package/dist/components/editor-root-keydown.d.ts +10 -25
  160. package/dist/components/editor-root-keydown.js +19 -43
  161. package/dist/components/editor-root-listeners.d.ts +22 -31
  162. package/dist/components/editor-root-listeners.js +49 -46
  163. package/dist/components/editor-root-menus.d.ts +51 -0
  164. package/dist/components/editor-root-menus.js +147 -0
  165. package/dist/components/editor-root-mode-flip.d.ts +16 -11
  166. package/dist/components/editor-root-mode-flip.js +36 -34
  167. package/dist/components/editor-root-scroll-host.d.ts +22 -0
  168. package/dist/components/editor-root-scroll-host.js +34 -0
  169. package/dist/components/editor-root-test-surface.d.ts +48 -0
  170. package/dist/components/editor-root-test-surface.js +6 -0
  171. package/dist/components/image/ImageOverlayHost.svelte +44 -35
  172. package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
  173. package/dist/components/image/ImageProperties.svelte +37 -41
  174. package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
  175. package/dist/components/image/ImageResizeHandles.svelte +26 -30
  176. package/dist/components/image/image-crop.d.ts +5 -11
  177. package/dist/components/image/image-crop.js +5 -11
  178. package/dist/components/image/image-edit-commit.d.ts +19 -16
  179. package/dist/components/image/image-edit-commit.js +74 -38
  180. package/dist/components/image/image-resize.d.ts +2 -5
  181. package/dist/components/image/image-resize.js +3 -6
  182. package/dist/components/image/image-widget-editing.d.ts +3 -3
  183. package/dist/components/image/image-widget-editing.js +9 -9
  184. package/dist/components/image/widget-dom.d.ts +2 -3
  185. package/dist/components/image/widget-dom.js +19 -24
  186. package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
  187. package/dist/components/image/widget-selection-state.svelte.js +26 -19
  188. package/dist/components/kind-cue.svelte.d.ts +21 -0
  189. package/dist/components/kind-cue.svelte.js +35 -0
  190. package/dist/components/link-card/LinkCard.svelte +115 -64
  191. package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
  192. package/dist/components/link-card/LinkCardHost.svelte +42 -33
  193. package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
  194. package/dist/components/link-card/link-card-commit.d.ts +16 -19
  195. package/dist/components/link-card/link-card-commit.js +21 -30
  196. package/dist/components/link-card/link-card-entry.d.ts +13 -23
  197. package/dist/components/link-card/link-card-entry.js +16 -24
  198. package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
  199. package/dist/components/link-card/link-card-state.svelte.js +2 -2
  200. package/dist/components/lrd-map-gate.d.ts +4 -11
  201. package/dist/components/lrd-map-gate.js +5 -11
  202. package/dist/components/menu/BlockMenu.svelte +20 -81
  203. package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
  204. package/dist/components/menu/InlineMenuHost.svelte +191 -0
  205. package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
  206. package/dist/components/menu/MenuIcon.svelte +3 -103
  207. package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
  208. package/dist/components/menu/SelectionToolbar.svelte +380 -0
  209. package/dist/components/menu/SelectionToolbar.svelte.d.ts +14 -0
  210. package/dist/components/menu/clipboard-actions.d.ts +3 -4
  211. package/dist/components/menu/clipboard-actions.js +3 -4
  212. package/dist/components/menu/default-context-actions.d.ts +4 -13
  213. package/dist/components/menu/default-context-actions.js +49 -67
  214. package/dist/components/menu/flyout-placement.d.ts +2 -2
  215. package/dist/components/menu/flyout-placement.js +2 -2
  216. package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
  217. package/dist/components/menu/menu-presence.svelte.js +19 -0
  218. package/dist/components/paste-image-arm.d.ts +6 -11
  219. package/dist/components/paste-image-arm.js +11 -18
  220. package/dist/components/portal.d.ts +2 -5
  221. package/dist/components/portal.js +4 -7
  222. package/dist/core/directive/activate.d.ts +4 -5
  223. package/dist/core/directive/activate.js +8 -9
  224. package/dist/core/directive/container-opener.js +13 -12
  225. package/dist/core/directive/grammar.d.ts +2 -5
  226. package/dist/core/directive/grammar.js +10 -10
  227. package/dist/core/directive/kinds.d.ts +4 -7
  228. package/dist/core/directive/kinds.js +14 -16
  229. package/dist/core/directive/registry.d.ts +12 -9
  230. package/dist/core/directive/registry.js +19 -20
  231. package/dist/core/directive/text-recognizer.d.ts +3 -2
  232. package/dist/core/directive/text-recognizer.js +5 -9
  233. package/dist/core/escapable.d.ts +1 -5
  234. package/dist/core/escapable.js +1 -5
  235. package/dist/core/inline/backticks.d.ts +3 -4
  236. package/dist/core/inline/backticks.js +3 -4
  237. package/dist/core/inline/character-refs.js +2 -1
  238. package/dist/core/inline/destination-bytes.d.ts +6 -3
  239. package/dist/core/inline/destination-bytes.js +50 -8
  240. package/dist/core/inline/entity-widget.d.ts +4 -3
  241. package/dist/core/inline/entity-widget.js +6 -6
  242. package/dist/core/inline/format-toggle.d.ts +22 -28
  243. package/dist/core/inline/format-toggle.js +97 -129
  244. package/dist/core/inline/html-entities.d.ts +2 -3
  245. package/dist/core/inline/html-entities.js +2 -3
  246. package/dist/core/inline/html-tag-grammar.js +6 -2
  247. package/dist/core/inline/image-dimensions.d.ts +2 -0
  248. package/dist/core/inline/image-dimensions.js +19 -2
  249. package/dist/core/inline/image-source-bytes.d.ts +11 -0
  250. package/dist/core/inline/image-source-bytes.js +71 -0
  251. package/dist/core/inline/index.d.ts +28 -21
  252. package/dist/core/inline/index.js +56 -34
  253. package/dist/core/inline/inline-cache.d.ts +12 -15
  254. package/dist/core/inline/inline-cache.js +11 -14
  255. package/dist/core/inline/inline-widgets.d.ts +55 -68
  256. package/dist/core/inline/inline-widgets.js +55 -58
  257. package/dist/core/inline/link-destination.d.ts +31 -0
  258. package/dist/core/inline/link-destination.js +129 -0
  259. package/dist/core/inline/link-reference-resolver.d.ts +8 -6
  260. package/dist/core/inline/link-reference-resolver.js +10 -6
  261. package/dist/core/inline/link-source-bytes.d.ts +31 -0
  262. package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
  263. package/dist/core/inline/live-edit/read-back.d.ts +29 -0
  264. package/dist/core/inline/live-edit/read-back.js +50 -0
  265. package/dist/core/inline/picture.d.ts +10 -0
  266. package/dist/core/inline/picture.js +40 -0
  267. package/dist/core/inline/scan/autolinks.d.ts +7 -8
  268. package/dist/core/inline/scan/autolinks.js +80 -59
  269. package/dist/core/inline/scan/brackets.d.ts +2 -2
  270. package/dist/core/inline/scan/brackets.js +6 -103
  271. package/dist/core/inline/scan/code-spans.d.ts +4 -0
  272. package/dist/core/inline/scan/code-spans.js +8 -0
  273. package/dist/core/inline/scan/emphasis.js +10 -14
  274. package/dist/core/inline/scan/index.d.ts +3 -1
  275. package/dist/core/inline/scan/index.js +32 -33
  276. package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
  277. package/dist/core/inline/scan/plugin-syntax.js +75 -89
  278. package/dist/core/inline/scan/scan-state.d.ts +2 -0
  279. package/dist/core/inline/scan/scan-state.js +1 -0
  280. package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
  281. package/dist/core/inline/scan/simple-nodes.js +2 -5
  282. package/dist/core/inline/scan/triggers.d.ts +17 -0
  283. package/dist/core/inline/scan/triggers.js +26 -0
  284. package/dist/core/inline/scan/url.js +8 -10
  285. package/dist/core/inline/transparency.d.ts +2 -1
  286. package/dist/core/inline/transparency.js +33 -17
  287. package/dist/core/inline/visibility.d.ts +30 -49
  288. package/dist/core/inline/visibility.js +31 -49
  289. package/dist/core/inline/walk.d.ts +4 -10
  290. package/dist/core/inline/walk.js +4 -10
  291. package/dist/core/inline-render.d.ts +22 -27
  292. package/dist/core/inline-render.js +51 -60
  293. package/dist/core/lines.d.ts +67 -26
  294. package/dist/core/lines.js +164 -33
  295. package/dist/core/metadata-parity.d.ts +9 -0
  296. package/dist/core/metadata-parity.js +25 -0
  297. package/dist/core/node-views.d.ts +7 -6
  298. package/dist/core/node-views.js +5 -5
  299. package/dist/core/nodes.d.ts +34 -44
  300. package/dist/core/nodes.js +4 -12
  301. package/dist/core/parser.d.ts +27 -34
  302. package/dist/core/parser.js +53 -67
  303. package/dist/core/parsers/blockquote.d.ts +5 -8
  304. package/dist/core/parsers/blockquote.js +11 -10
  305. package/dist/core/parsers/built-in-openers.d.ts +2 -5
  306. package/dist/core/parsers/built-in-openers.js +5 -8
  307. package/dist/core/parsers/fence-syntax.d.ts +36 -7
  308. package/dist/core/parsers/fence-syntax.js +61 -11
  309. package/dist/core/parsers/fenced-code.d.ts +16 -0
  310. package/dist/core/parsers/fenced-code.js +16 -15
  311. package/dist/core/parsers/heading.d.ts +19 -2
  312. package/dist/core/parsers/heading.js +50 -2
  313. package/dist/core/parsers/html-block.d.ts +3 -6
  314. package/dist/core/parsers/html-block.js +10 -11
  315. package/dist/core/parsers/indented-code.d.ts +1 -1
  316. package/dist/core/parsers/indented-code.js +2 -8
  317. package/dist/core/parsers/link-reference.d.ts +5 -3
  318. package/dist/core/parsers/link-reference.js +116 -120
  319. package/dist/core/parsers/list.d.ts +12 -5
  320. package/dist/core/parsers/list.js +53 -36
  321. package/dist/core/parsers/paragraph.d.ts +3 -3
  322. package/dist/core/parsers/paragraph.js +14 -5
  323. package/dist/core/parsers/table-completion.d.ts +2 -5
  324. package/dist/core/parsers/table-completion.js +7 -10
  325. package/dist/core/parsers/table.d.ts +8 -8
  326. package/dist/core/parsers/table.js +23 -26
  327. package/dist/core/parsers/thematic-break.js +15 -14
  328. package/dist/core/paths.d.ts +13 -0
  329. package/dist/core/paths.js +31 -0
  330. package/dist/core/terminator-escalation.d.ts +0 -7
  331. package/dist/core/terminator-escalation.js +5 -8
  332. package/dist/core/url-policy.d.ts +2 -5
  333. package/dist/core/url-policy.js +8 -12
  334. package/dist/cursor/caret-memory.d.ts +34 -0
  335. package/dist/cursor/caret-memory.js +82 -0
  336. package/dist/cursor/coordinate-spaces.d.ts +26 -19
  337. package/dist/cursor/coordinate-spaces.js +32 -20
  338. package/dist/cursor/dom-walk.d.ts +7 -13
  339. package/dist/cursor/dom-walk.js +7 -13
  340. package/dist/cursor/edge-affinity.d.ts +7 -35
  341. package/dist/cursor/edge-affinity.js +13 -44
  342. package/dist/cursor/focused-caret.d.ts +6 -8
  343. package/dist/cursor/focused-caret.js +7 -16
  344. package/dist/cursor/height-model.d.ts +3 -3
  345. package/dist/cursor/height-model.js +5 -5
  346. package/dist/cursor/height-oracle.d.ts +10 -7
  347. package/dist/cursor/height-oracle.js +26 -75
  348. package/dist/cursor/observe-resize.d.ts +13 -0
  349. package/dist/cursor/observe-resize.js +43 -0
  350. package/dist/cursor/overlay-rects.d.ts +2 -5
  351. package/dist/cursor/overlay-rects.js +2 -5
  352. package/dist/cursor/overlay-remeasure.d.ts +6 -7
  353. package/dist/cursor/overlay-remeasure.js +10 -14
  354. package/dist/cursor/pending-marks.d.ts +7 -9
  355. package/dist/cursor/pending-marks.js +6 -27
  356. package/dist/cursor/point-offset.d.ts +16 -10
  357. package/dist/cursor/point-offset.js +60 -25
  358. package/dist/cursor/reveal-source.d.ts +7 -11
  359. package/dist/cursor/reveal-source.js +10 -18
  360. package/dist/cursor/scroll-ancestors.d.ts +9 -20
  361. package/dist/cursor/scroll-ancestors.js +14 -26
  362. package/dist/cursor/scroll-owner.d.ts +92 -0
  363. package/dist/cursor/scroll-owner.js +283 -0
  364. package/dist/cursor/scrollport.d.ts +16 -8
  365. package/dist/cursor/scrollport.js +28 -5
  366. package/dist/cursor/sticky-column.d.ts +6 -29
  367. package/dist/cursor/sticky-column.js +6 -49
  368. package/dist/cursor/sticky-measure.d.ts +14 -9
  369. package/dist/cursor/sticky-measure.js +99 -49
  370. package/dist/cursor/surface-backend.d.ts +41 -0
  371. package/dist/cursor/surface-backend.js +78 -0
  372. package/dist/cursor/typography-estimates.d.ts +3 -3
  373. package/dist/cursor/typography-estimates.js +3 -3
  374. package/dist/cursor/visual-lines.d.ts +25 -13
  375. package/dist/cursor/visual-lines.js +72 -28
  376. package/dist/cursor/widget-edge-snap.d.ts +23 -0
  377. package/dist/cursor/widget-edge-snap.js +39 -0
  378. package/dist/cursor/widget-offset.d.ts +111 -102
  379. package/dist/cursor/widget-offset.js +352 -177
  380. package/dist/debug/diagnostics-report.d.ts +6 -6
  381. package/dist/debug/diagnostics-report.js +5 -5
  382. package/dist/debug/dump-tree.js +2 -2
  383. package/dist/debug/editor-diagnostics.d.ts +15 -0
  384. package/dist/debug/editor-diagnostics.js +33 -0
  385. package/dist/debug/inspect.d.ts +2 -2
  386. package/dist/debug/inspect.js +4 -4
  387. package/dist/debug/interaction-trace.d.ts +14 -15
  388. package/dist/debug/interaction-trace.js +19 -20
  389. package/dist/debug/operations-log.d.ts +1 -1
  390. package/dist/debug/operations-log.js +1 -1
  391. package/dist/decorations/buckets.d.ts +6 -12
  392. package/dist/decorations/buckets.js +4 -11
  393. package/dist/decorations/decoration-state.svelte.d.ts +2 -3
  394. package/dist/decorations/decoration-state.svelte.js +24 -26
  395. package/dist/decorations/island-dom.d.ts +10 -18
  396. package/dist/decorations/island-dom.js +25 -50
  397. package/dist/decorations/reserved-attrs.d.ts +6 -8
  398. package/dist/decorations/reserved-attrs.js +31 -17
  399. package/dist/decorations/types.d.ts +6 -7
  400. package/dist/decorations/types.js +2 -1
  401. package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
  402. package/dist/decorations/use-block-decorations.svelte.js +71 -0
  403. package/dist/decorations/widget-dom.d.ts +3 -3
  404. package/dist/decorations/widget-dom.js +5 -5
  405. package/dist/dev-warn.d.ts +5 -2
  406. package/dist/dev-warn.js +16 -4
  407. package/dist/editor-actions/ancestry-folds.d.ts +9 -14
  408. package/dist/editor-actions/ancestry-folds.js +13 -18
  409. package/dist/editor-actions/block-edit-core.d.ts +49 -22
  410. package/dist/editor-actions/block-edit-core.js +279 -151
  411. package/dist/editor-actions/block-edit-scope.d.ts +63 -50
  412. package/dist/editor-actions/block-edit-scope.js +100 -48
  413. package/dist/editor-actions/block-edit.d.ts +2 -3
  414. package/dist/editor-actions/block-edit.js +14 -90
  415. package/dist/editor-actions/commit/history.d.ts +4 -4
  416. package/dist/editor-actions/commit/history.js +33 -34
  417. package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
  418. package/dist/editor-actions/commit/reading-write-gate.js +56 -0
  419. package/dist/editor-actions/commit/text-batch.d.ts +7 -11
  420. package/dist/editor-actions/commit/text-batch.js +6 -7
  421. package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
  422. package/dist/editor-actions/commit/undo-controller.js +346 -216
  423. package/dist/editor-actions/container-block-component.d.ts +32 -51
  424. package/dist/editor-actions/container-block-component.js +66 -92
  425. package/dist/editor-actions/container-edit.d.ts +4 -2
  426. package/dist/editor-actions/container-edit.js +14 -44
  427. package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
  428. package/dist/editor-actions/container-exit-overrides.js +19 -21
  429. package/dist/editor-actions/deps.d.ts +25 -32
  430. package/dist/editor-actions/enter-completion.d.ts +12 -15
  431. package/dist/editor-actions/enter-completion.js +49 -51
  432. package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
  433. package/dist/editor-actions/focus/focus-dispatch.js +33 -52
  434. package/dist/editor-actions/focus/focus-landing.d.ts +11 -5
  435. package/dist/editor-actions/focus/focus-landing.js +29 -14
  436. package/dist/editor-actions/focus/focus.d.ts +3 -2
  437. package/dist/editor-actions/focus/focus.js +42 -59
  438. package/dist/editor-actions/index.d.ts +4 -3
  439. package/dist/editor-actions/index.js +5 -4
  440. package/dist/editor-actions/inline-range-commit.d.ts +18 -16
  441. package/dist/editor-actions/inline-range-commit.js +45 -54
  442. package/dist/editor-actions/leaf-write.d.ts +11 -0
  443. package/dist/editor-actions/leaf-write.js +102 -0
  444. package/dist/editor-actions/list-context.d.ts +9 -10
  445. package/dist/editor-actions/list-context.js +115 -110
  446. package/dist/editor-actions/list-overrides.d.ts +13 -5
  447. package/dist/editor-actions/list-overrides.js +36 -12
  448. package/dist/editor-actions/merge-fallback.d.ts +10 -16
  449. package/dist/editor-actions/merge-fallback.js +11 -22
  450. package/dist/editor-actions/nested/container-actions.d.ts +37 -0
  451. package/dist/editor-actions/nested/container-actions.js +42 -0
  452. package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
  453. package/dist/editor-actions/nested/emptied-container.js +5 -0
  454. package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
  455. package/dist/editor-actions/nested/nested-actions.js +17 -15
  456. package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
  457. package/dist/editor-actions/nested/nested-block-edit.js +40 -134
  458. package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
  459. package/dist/editor-actions/nested/nested-focus.js +33 -21
  460. package/dist/editor-actions/paste-coordinator.d.ts +3 -2
  461. package/dist/editor-actions/paste-coordinator.js +17 -13
  462. package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
  463. package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
  464. package/dist/editor-actions/plugin/container.d.ts +55 -76
  465. package/dist/editor-actions/plugin/container.js +105 -186
  466. package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
  467. package/dist/editor-actions/plugin/directive-container.js +7 -8
  468. package/dist/editor-actions/reorder-action.d.ts +7 -12
  469. package/dist/editor-actions/reorder-action.js +32 -48
  470. package/dist/editor-actions/reorder-drag.d.ts +12 -8
  471. package/dist/editor-actions/reorder-drag.js +45 -41
  472. package/dist/editor-actions/replacement-focus.d.ts +13 -21
  473. package/dist/editor-actions/replacement-focus.js +32 -33
  474. package/dist/editor-actions/search-replace.js +71 -67
  475. package/dist/editor-actions/stored-caret.d.ts +7 -0
  476. package/dist/editor-actions/stored-caret.js +10 -0
  477. package/dist/editor-actions/table-context.d.ts +9 -11
  478. package/dist/editor-actions/table-context.js +70 -93
  479. package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
  480. package/dist/editor-actions/unwrap-strategies.js +52 -63
  481. package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
  482. package/dist/editor-actions/whole-block-focus-surface.js +43 -53
  483. package/dist/editor-events.d.ts +25 -29
  484. package/dist/editor-events.js +17 -28
  485. package/dist/editor-keys.d.ts +96 -104
  486. package/dist/editor-keys.js +11 -24
  487. package/dist/editor-props.d.ts +91 -71
  488. package/dist/editor-rects.d.ts +23 -34
  489. package/dist/editor-rects.js +9 -77
  490. package/dist/env.d.ts +6 -4
  491. package/dist/env.js +8 -4
  492. package/dist/index.d.ts +6 -2
  493. package/dist/index.js +5 -2
  494. package/dist/inline-menu/inline-menu-session.d.ts +37 -0
  495. package/dist/inline-menu/inline-menu-session.js +98 -0
  496. package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
  497. package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
  498. package/dist/inline-menu/types.d.ts +77 -0
  499. package/dist/inline-menu/types.js +7 -0
  500. package/dist/invariants/child-id-parity.d.ts +23 -0
  501. package/dist/invariants/child-id-parity.js +39 -0
  502. package/dist/invariants/commit-paths.d.ts +4 -4
  503. package/dist/invariants/commit-paths.js +4 -4
  504. package/dist/invariants/commit-scope.d.ts +4 -4
  505. package/dist/invariants/commit-scope.js +9 -8
  506. package/dist/invariants/context-keys.d.ts +2 -5
  507. package/dist/invariants/context-keys.js +3 -6
  508. package/dist/invariants/descriptor.d.ts +2 -6
  509. package/dist/invariants/descriptor.js +2 -6
  510. package/dist/invariants/inline-transitions.d.ts +9 -16
  511. package/dist/invariants/inline-transitions.js +10 -18
  512. package/dist/invariants/install.d.ts +18 -27
  513. package/dist/invariants/install.js +29 -30
  514. package/dist/invariants/keeps-a-block.d.ts +7 -0
  515. package/dist/invariants/keeps-a-block.js +14 -0
  516. package/dist/invariants/landable-caret.d.ts +5 -7
  517. package/dist/invariants/landable-caret.js +8 -11
  518. package/dist/invariants/landing-focus-scroll.d.ts +7 -0
  519. package/dist/invariants/landing-focus-scroll.js +13 -0
  520. package/dist/invariants/landing-value.d.ts +13 -0
  521. package/dist/invariants/landing-value.js +27 -0
  522. package/dist/invariants/marker-css-parity.d.ts +5 -6
  523. package/dist/invariants/marker-css-parity.js +11 -12
  524. package/dist/invariants/measures-in-own-list.d.ts +6 -0
  525. package/dist/invariants/measures-in-own-list.js +13 -0
  526. package/dist/invariants/node-shape.d.ts +18 -37
  527. package/dist/invariants/node-shape.js +123 -79
  528. package/dist/invariants/open-tail.d.ts +7 -0
  529. package/dist/invariants/open-tail.js +45 -0
  530. package/dist/invariants/placement-ends-widget.d.ts +8 -0
  531. package/dist/invariants/placement-ends-widget.js +13 -0
  532. package/dist/invariants/registry.d.ts +27 -66
  533. package/dist/invariants/registry.js +61 -137
  534. package/dist/invariants/render-fidelity.d.ts +4 -4
  535. package/dist/invariants/render-fidelity.js +5 -5
  536. package/dist/invariants/selection-endpoints.d.ts +6 -7
  537. package/dist/invariants/selection-endpoints.js +18 -16
  538. package/dist/invariants/single-node-sink.d.ts +4 -5
  539. package/dist/invariants/single-node-sink.js +4 -5
  540. package/dist/invariants/snapshot-integrity.d.ts +5 -6
  541. package/dist/invariants/snapshot-integrity.js +1 -1
  542. package/dist/invariants/structural-descriptor.d.ts +6 -15
  543. package/dist/invariants/structural-descriptor.js +6 -15
  544. package/dist/menu-icons.d.ts +47 -0
  545. package/dist/menu-icons.js +113 -0
  546. package/dist/perf/instruments.d.ts +20 -5
  547. package/dist/perf/instruments.js +35 -15
  548. package/dist/perf/use-mount-gauge.svelte.js +4 -4
  549. package/dist/plugin.d.ts +38 -8
  550. package/dist/plugin.js +102 -74
  551. package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
  552. package/dist/plugins/admonitions/admonition-kind.js +12 -10
  553. package/dist/plugins/admonitions/convert-document.d.ts +5 -5
  554. package/dist/plugins/admonitions/convert-document.js +8 -7
  555. package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
  556. package/dist/plugins/admonitions/gh-alert.js +21 -22
  557. package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
  558. package/dist/plugins/admonitions/github-alert-kind.js +28 -37
  559. package/dist/plugins/admonitions/index.js +2 -2
  560. package/dist/plugins/admonitions/kinds.d.ts +1 -1
  561. package/dist/plugins/admonitions/register.js +11 -2
  562. package/dist/plugins/details/DetailsBlock.svelte +20 -20
  563. package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
  564. package/dist/plugins/details/details-disclosure.svelte.js +6 -7
  565. package/dist/plugins/details/details-kind.d.ts +6 -7
  566. package/dist/plugins/details/details-kind.js +44 -59
  567. package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
  568. package/dist/plugins/emoji/emoji-recognizer.js +7 -14
  569. package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
  570. package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
  571. package/dist/plugins/footnotes/constants.d.ts +2 -0
  572. package/dist/plugins/footnotes/constants.js +3 -0
  573. package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
  574. package/dist/plugins/footnotes/footnote-definition.js +69 -45
  575. package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
  576. package/dist/plugins/footnotes/footnote-lookup.js +14 -26
  577. package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
  578. package/dist/plugins/footnotes/footnote-numbering.js +22 -31
  579. package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
  580. package/dist/plugins/footnotes/footnote-reference.js +8 -13
  581. package/dist/plugins/footnotes/index.js +2 -3
  582. package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
  583. package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
  584. package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
  585. package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
  586. package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
  587. package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
  588. package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
  589. package/dist/plugins/highlight-occurrences/word-char.js +4 -0
  590. package/dist/plugins/latex/BlockMath.svelte +58 -75
  591. package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
  592. package/dist/plugins/latex/MathInline.svelte +10 -9
  593. package/dist/plugins/latex/flanking.d.ts +1 -0
  594. package/dist/plugins/latex/flanking.js +3 -0
  595. package/dist/plugins/latex/index.d.ts +1 -1
  596. package/dist/plugins/latex/latex-kind.d.ts +4 -4
  597. package/dist/plugins/latex/latex-kind.js +113 -85
  598. package/dist/plugins/latex/math-completion.d.ts +1 -1
  599. package/dist/plugins/latex/math-completion.js +5 -8
  600. package/dist/plugins/latex/math-layout.d.ts +2 -8
  601. package/dist/plugins/latex/math-layout.js +0 -9
  602. package/dist/plugins/latex/math-renderer.d.ts +17 -20
  603. package/dist/plugins/latex/math-renderer.js +21 -38
  604. package/dist/plugins/latex/math-source.d.ts +4 -8
  605. package/dist/plugins/latex/math-source.js +36 -75
  606. package/dist/plugins/latex/register.d.ts +10 -11
  607. package/dist/plugins/latex/register.js +24 -10
  608. package/dist/plugins/latex/renderer.d.ts +9 -10
  609. package/dist/plugins/latex/renderer.js +9 -24
  610. package/dist/plugins/mermaid/MermaidBlock.svelte +63 -47
  611. package/dist/plugins/mermaid/index.js +1 -1
  612. package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
  613. package/dist/plugins/mermaid/mermaid-kind.js +30 -47
  614. package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
  615. package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
  616. package/dist/plugins/mermaid/register.d.ts +3 -3
  617. package/dist/plugins/mermaid/register.js +5 -5
  618. package/dist/plugins/mermaid/renderer.d.ts +5 -5
  619. package/dist/plugins/mermaid/renderer.js +8 -11
  620. package/dist/plugins/parrot/ParrotBlock.svelte +18 -7
  621. package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
  622. package/dist/plugins/parrot/parrot-plugin.js +3 -3
  623. package/dist/plugins/slash-commands/filter.d.ts +23 -0
  624. package/dist/plugins/slash-commands/filter.js +31 -0
  625. package/dist/plugins/slash-commands/index.d.ts +2 -0
  626. package/dist/plugins/slash-commands/index.js +2 -0
  627. package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
  628. package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
  629. package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
  630. package/dist/plugins/slash-commands/slash-source.js +108 -0
  631. package/dist/plugins/toc/TocBlock.svelte +23 -22
  632. package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
  633. package/dist/plugins/toc/heading-outline.d.ts +7 -12
  634. package/dist/plugins/toc/heading-outline.js +22 -36
  635. package/dist/plugins/toc/navigation-queue.d.ts +2 -4
  636. package/dist/plugins/toc/toc-plugin.d.ts +5 -5
  637. package/dist/plugins/toc/toc-plugin.js +20 -13
  638. package/dist/presentation-mode.d.ts +15 -23
  639. package/dist/presentation-mode.js +19 -25
  640. package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
  641. package/dist/reactivity/block-list-state.svelte.js +8 -9
  642. package/dist/reactivity/block-window.svelte.d.ts +12 -6
  643. package/dist/reactivity/block-window.svelte.js +44 -17
  644. package/dist/reactivity/child-list.d.ts +34 -0
  645. package/dist/reactivity/child-list.js +48 -0
  646. package/dist/reactivity/content-version.svelte.d.ts +4 -7
  647. package/dist/reactivity/content-version.svelte.js +3 -5
  648. package/dist/reactivity/hold-across.d.ts +39 -0
  649. package/dist/reactivity/hold-across.js +57 -0
  650. package/dist/reactivity/layout-state.svelte.d.ts +27 -0
  651. package/dist/reactivity/layout-state.svelte.js +51 -0
  652. package/dist/reactivity/list-tree.d.ts +39 -0
  653. package/dist/reactivity/list-tree.js +132 -0
  654. package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
  655. package/dist/reactivity/list-windowing.svelte.js +143 -292
  656. package/dist/reactivity/measure-batch.d.ts +6 -8
  657. package/dist/reactivity/measure-batch.js +5 -6
  658. package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
  659. package/dist/reactivity/publish-ref.svelte.js +21 -85
  660. package/dist/reactivity/scope-geometry.d.ts +6 -13
  661. package/dist/reactivity/scope-geometry.js +7 -14
  662. package/dist/reactivity/state-registry.d.ts +5 -5
  663. package/dist/reactivity/state-registry.js +11 -15
  664. package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
  665. package/dist/reactivity/use-container-windowing.svelte.js +64 -74
  666. package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
  667. package/dist/reactivity/use-measured-child.svelte.js +41 -0
  668. package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
  669. package/dist/reactivity/use-window-floor.svelte.js +27 -0
  670. package/dist/reactivity/window-slice.d.ts +4 -4
  671. package/dist/reactivity/window-slice.js +0 -2
  672. package/dist/renderer-slot.d.ts +48 -0
  673. package/dist/renderer-slot.js +85 -0
  674. package/dist/scan-index.d.ts +4 -4
  675. package/dist/scan-index.js +4 -4
  676. package/dist/schema/block-commands.d.ts +69 -54
  677. package/dist/schema/block-commands.js +91 -104
  678. package/dist/schema/block-completions.d.ts +16 -19
  679. package/dist/schema/block-completions.js +25 -32
  680. package/dist/schema/block-component-registry.d.ts +13 -14
  681. package/dist/schema/block-component-registry.js +19 -17
  682. package/dist/schema/block-kind-descriptor.d.ts +234 -168
  683. package/dist/schema/block-kind-descriptor.js +151 -66
  684. package/dist/schema/block-openers.d.ts +48 -39
  685. package/dist/schema/block-openers.js +73 -83
  686. package/dist/schema/built-in-descriptors.d.ts +3 -5
  687. package/dist/schema/built-in-descriptors.js +96 -80
  688. package/dist/schema/child-spans.d.ts +12 -10
  689. package/dist/schema/child-spans.js +68 -34
  690. package/dist/schema/closure.d.ts +18 -16
  691. package/dist/schema/closure.js +24 -14
  692. package/dist/schema/command-id.d.ts +6 -8
  693. package/dist/schema/command-id.js +20 -25
  694. package/dist/schema/commands.d.ts +79 -81
  695. package/dist/schema/commands.js +156 -116
  696. package/dist/schema/container-raw.d.ts +51 -11
  697. package/dist/schema/container-raw.js +143 -14
  698. package/dist/schema/container-rebuilders.d.ts +17 -15
  699. package/dist/schema/container-rebuilders.js +30 -22
  700. package/dist/schema/context-actions.d.ts +25 -13
  701. package/dist/schema/context-actions.js +32 -17
  702. package/dist/schema/define-plugin-block.d.ts +8 -6
  703. package/dist/schema/define-plugin-block.js +6 -4
  704. package/dist/schema/fenced-code-raw.d.ts +30 -17
  705. package/dist/schema/fenced-code-raw.js +155 -107
  706. package/dist/schema/global-commands.d.ts +6 -6
  707. package/dist/schema/global-commands.js +14 -22
  708. package/dist/schema/height-estimates.d.ts +31 -0
  709. package/dist/schema/height-estimates.js +64 -0
  710. package/dist/schema/inline-construct-policy.d.ts +42 -55
  711. package/dist/schema/inline-construct-policy.js +36 -35
  712. package/dist/schema/insert-catalogue.d.ts +30 -0
  713. package/dist/schema/insert-catalogue.js +95 -0
  714. package/dist/schema/keybinding-overrides.d.ts +9 -11
  715. package/dist/schema/keybinding-overrides.js +1 -1
  716. package/dist/schema/keybindings.d.ts +15 -7
  717. package/dist/schema/keybindings.js +21 -9
  718. package/dist/schema/merge-rules.d.ts +5 -7
  719. package/dist/schema/merge-rules.js +7 -9
  720. package/dist/schema/opener-priorities.d.ts +4 -4
  721. package/dist/schema/opener-priorities.js +4 -4
  722. package/dist/schema/operations.d.ts +9 -11
  723. package/dist/schema/operations.js +3 -3
  724. package/dist/schema/page-role.d.ts +14 -0
  725. package/dist/schema/page-role.js +19 -0
  726. package/dist/schema/plugin-activation.d.ts +4 -6
  727. package/dist/schema/plugin-activation.js +12 -10
  728. package/dist/schema/plugin-editor-context.d.ts +25 -10
  729. package/dist/schema/plugin-editor-context.js +40 -9
  730. package/dist/schema/plugin-install.d.ts +49 -17
  731. package/dist/schema/plugin-install.js +51 -25
  732. package/dist/schema/plugin-kind.d.ts +12 -8
  733. package/dist/schema/plugin-kind.js +35 -42
  734. package/dist/schema/plugin-name.js +3 -3
  735. package/dist/schema/plugin-registry.d.ts +54 -0
  736. package/dist/schema/plugin-registry.js +70 -0
  737. package/dist/schema/reading.d.ts +23 -0
  738. package/dist/schema/reading.js +7 -0
  739. package/dist/schema/register-once.d.ts +3 -5
  740. package/dist/schema/register-once.js +7 -16
  741. package/dist/schema/registration-checks.d.ts +12 -16
  742. package/dist/schema/registration-checks.js +35 -51
  743. package/dist/schema/registration-pairs.d.ts +54 -0
  744. package/dist/schema/registration-pairs.js +48 -0
  745. package/dist/schema/registration-pending.d.ts +8 -12
  746. package/dist/schema/registration-pending.js +9 -9
  747. package/dist/schema/registry-reset.d.ts +8 -4
  748. package/dist/schema/registry-reset.js +13 -26
  749. package/dist/schema/registry-view.d.ts +25 -13
  750. package/dist/schema/registry-view.js +26 -20
  751. package/dist/schema/reserved-chords.d.ts +9 -10
  752. package/dist/schema/reserved-chords.js +73 -78
  753. package/dist/schema/reserved-chrome.d.ts +12 -11
  754. package/dist/schema/reserved-chrome.js +15 -11
  755. package/dist/schema/setext-raw.d.ts +13 -0
  756. package/dist/schema/setext-raw.js +33 -0
  757. package/dist/schema/stored-as.d.ts +20 -0
  758. package/dist/schema/stored-as.js +6 -0
  759. package/dist/schema/table-cell-raw.d.ts +18 -7
  760. package/dist/schema/table-cell-raw.js +28 -7
  761. package/dist/schema/whole-block-unit.d.ts +5 -4
  762. package/dist/schema/whole-block-unit.js +5 -4
  763. package/dist/search/document-scan.d.ts +3 -3
  764. package/dist/search/document-scan.js +2 -2
  765. package/dist/search/matcher.d.ts +1 -1
  766. package/dist/search/regex-executor.d.ts +5 -6
  767. package/dist/search/regex-executor.js +6 -8
  768. package/dist/search/replace.d.ts +2 -5
  769. package/dist/search/replace.js +2 -5
  770. package/dist/search/search-state.svelte.d.ts +5 -5
  771. package/dist/search/search-state.svelte.js +12 -16
  772. package/dist/selection/autoscroll.d.ts +6 -9
  773. package/dist/selection/block-hit-test.d.ts +16 -24
  774. package/dist/selection/block-hit-test.js +29 -22
  775. package/dist/selection/caret-doors.d.ts +15 -14
  776. package/dist/selection/caret-doors.js +37 -26
  777. package/dist/selection/caret-landing.d.ts +62 -0
  778. package/dist/selection/caret-landing.js +157 -0
  779. package/dist/selection/caret-restore.d.ts +17 -10
  780. package/dist/selection/caret-restore.js +10 -22
  781. package/dist/selection/caret-target.d.ts +30 -0
  782. package/dist/selection/caret-target.js +84 -0
  783. package/dist/selection/char-endpoint-snap.d.ts +6 -10
  784. package/dist/selection/char-endpoint-snap.js +8 -14
  785. package/dist/selection/clipboard-text.d.ts +5 -12
  786. package/dist/selection/clipboard-text.js +69 -172
  787. package/dist/selection/covered-block.d.ts +6 -8
  788. package/dist/selection/covered-block.js +8 -19
  789. package/dist/selection/cross-block/clipboard.d.ts +3 -2
  790. package/dist/selection/cross-block/clipboard.js +13 -4
  791. package/dist/selection/cross-block/dispatch.d.ts +47 -43
  792. package/dist/selection/cross-block/dispatch.js +12 -23
  793. package/dist/selection/cross-block/format-range.d.ts +18 -21
  794. package/dist/selection/cross-block/format-range.js +104 -103
  795. package/dist/selection/cross-block/format-toggle.d.ts +10 -15
  796. package/dist/selection/cross-block/format-toggle.js +28 -33
  797. package/dist/selection/cross-block/keydown.d.ts +4 -4
  798. package/dist/selection/cross-block/keydown.js +93 -152
  799. package/dist/selection/cross-block/ops.d.ts +19 -34
  800. package/dist/selection/cross-block/ops.js +110 -95
  801. package/dist/selection/cross-block/paste.d.ts +2 -3
  802. package/dist/selection/cross-block/paste.js +61 -104
  803. package/dist/selection/cross-block/pointer.d.ts +17 -15
  804. package/dist/selection/cross-block/pointer.js +74 -25
  805. package/dist/selection/cross-block/type-replace.d.ts +4 -6
  806. package/dist/selection/cross-block/type-replace.js +53 -146
  807. package/dist/selection/dead-space-caret.d.ts +20 -28
  808. package/dist/selection/dead-space-caret.js +79 -87
  809. package/dist/selection/drag-pointer.d.ts +22 -5
  810. package/dist/selection/drag-pointer.js +63 -31
  811. package/dist/selection/gap-caret.d.ts +17 -28
  812. package/dist/selection/gap-caret.js +14 -26
  813. package/dist/selection/grid-selection.d.ts +12 -0
  814. package/dist/selection/grid-selection.js +22 -0
  815. package/dist/selection/keyboard-extend.d.ts +27 -39
  816. package/dist/selection/keyboard-extend.js +94 -116
  817. package/dist/selection/multi-click.d.ts +37 -0
  818. package/dist/selection/multi-click.js +197 -0
  819. package/dist/selection/native-bridge.d.ts +30 -37
  820. package/dist/selection/native-bridge.js +80 -100
  821. package/dist/selection/nearest-block.d.ts +17 -12
  822. package/dist/selection/nearest-block.js +37 -18
  823. package/dist/selection/path-lookup.d.ts +31 -14
  824. package/dist/selection/path-lookup.js +110 -20
  825. package/dist/selection/path-math.d.ts +9 -11
  826. package/dist/selection/path-math.js +5 -7
  827. package/dist/selection/pointer-gesture.d.ts +9 -0
  828. package/dist/selection/pointer-gesture.js +11 -0
  829. package/dist/selection/pointer-session.d.ts +10 -16
  830. package/dist/selection/pointer-session.js +6 -7
  831. package/dist/selection/primitives.d.ts +64 -33
  832. package/dist/selection/primitives.js +61 -53
  833. package/dist/selection/range-coverage.d.ts +94 -0
  834. package/dist/selection/range-coverage.js +365 -0
  835. package/dist/selection/range-delete-ceremony.d.ts +28 -74
  836. package/dist/selection/range-delete-ceremony.js +100 -141
  837. package/dist/selection/range-delete-chrome.d.ts +20 -33
  838. package/dist/selection/range-delete-chrome.js +53 -78
  839. package/dist/selection/range-delete-table-coverage.d.ts +11 -25
  840. package/dist/selection/range-delete-table-coverage.js +42 -112
  841. package/dist/selection/range-delete-table.d.ts +14 -12
  842. package/dist/selection/range-delete-table.js +106 -310
  843. package/dist/selection/range-delete.d.ts +18 -19
  844. package/dist/selection/range-delete.js +83 -123
  845. package/dist/selection/round-trip-restore.d.ts +18 -0
  846. package/dist/selection/round-trip-restore.js +19 -0
  847. package/dist/selection/selection-announcer.d.ts +17 -0
  848. package/dist/selection/selection-announcer.js +25 -0
  849. package/dist/selection/selection-description.d.ts +4 -3
  850. package/dist/selection/selection-description.js +5 -4
  851. package/dist/selection/selection-drop.d.ts +52 -0
  852. package/dist/selection/selection-drop.js +317 -0
  853. package/dist/selection/selection-restore.d.ts +20 -33
  854. package/dist/selection/selection-restore.js +21 -44
  855. package/dist/selection/selection-state.svelte.d.ts +50 -42
  856. package/dist/selection/selection-state.svelte.js +144 -98
  857. package/dist/selection/shared-keydown.d.ts +22 -27
  858. package/dist/selection/shared-keydown.js +25 -45
  859. package/dist/selection/table-endpoint-snap.d.ts +17 -41
  860. package/dist/selection/table-endpoint-snap.js +54 -80
  861. package/dist/selection/table-rect-extend.d.ts +3 -6
  862. package/dist/selection/table-rect-extend.js +19 -14
  863. package/dist/styles/editor-theme.css +75 -53
  864. package/dist/styles/editor.css +248 -139
  865. package/dist/testing/conformance-core.d.ts +50 -18
  866. package/dist/testing/conformance-core.js +88 -50
  867. package/dist/testing/container-conformance.d.ts +48 -84
  868. package/dist/testing/container-conformance.js +159 -285
  869. package/dist/testing/headless-actions.d.ts +34 -19
  870. package/dist/testing/headless-actions.js +116 -65
  871. package/dist/testing/headless-block-list.svelte.d.ts +16 -0
  872. package/dist/testing/headless-block-list.svelte.js +22 -0
  873. package/dist/testing/inline-conformance.d.ts +15 -22
  874. package/dist/testing/inline-conformance.js +131 -148
  875. package/dist/testing/kind-conformance.d.ts +19 -24
  876. package/dist/testing/kind-conformance.js +204 -117
  877. package/dist/testing/kit-reading.d.ts +7 -0
  878. package/dist/testing/kit-reading.js +16 -0
  879. package/dist/testing/mount-dom-stubs.d.ts +4 -5
  880. package/dist/testing/mount-dom-stubs.js +8 -5
  881. package/dist/testing/parse-convergence.d.ts +10 -10
  882. package/dist/testing/parse-convergence.js +14 -49
  883. package/dist/testing.d.ts +13 -9
  884. package/dist/testing.js +28 -38
  885. package/dist/tree-operations/blockquote.d.ts +8 -14
  886. package/dist/tree-operations/blockquote.js +25 -45
  887. package/dist/tree-operations/chain-rebuild.d.ts +34 -25
  888. package/dist/tree-operations/chain-rebuild.js +115 -52
  889. package/dist/tree-operations/children.d.ts +5 -9
  890. package/dist/tree-operations/children.js +7 -11
  891. package/dist/tree-operations/cleanup.d.ts +6 -7
  892. package/dist/tree-operations/cleanup.js +14 -11
  893. package/dist/tree-operations/clone.js +5 -4
  894. package/dist/tree-operations/container-lift.d.ts +10 -5
  895. package/dist/tree-operations/container-lift.js +20 -14
  896. package/dist/tree-operations/container-offsets.d.ts +22 -0
  897. package/dist/tree-operations/container-offsets.js +89 -0
  898. package/dist/tree-operations/content-write.d.ts +52 -29
  899. package/dist/tree-operations/content-write.js +155 -110
  900. package/dist/tree-operations/index.d.ts +4 -4
  901. package/dist/tree-operations/index.js +4 -4
  902. package/dist/tree-operations/keep-one-block.d.ts +10 -0
  903. package/dist/tree-operations/keep-one-block.js +19 -0
  904. package/dist/tree-operations/leaf-range.d.ts +33 -0
  905. package/dist/tree-operations/leaf-range.js +67 -0
  906. package/dist/tree-operations/list/empty-check.d.ts +2 -3
  907. package/dist/tree-operations/list/empty-check.js +4 -4
  908. package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
  909. package/dist/tree-operations/list/exit-replacement.js +4 -9
  910. package/dist/tree-operations/list/item-partition.d.ts +2 -2
  911. package/dist/tree-operations/list/item-partition.js +2 -2
  912. package/dist/tree-operations/list/list-builders.d.ts +18 -16
  913. package/dist/tree-operations/list/list-builders.js +59 -30
  914. package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
  915. package/dist/tree-operations/list/ordered-markers.js +7 -16
  916. package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
  917. package/dist/tree-operations/list/reconcile-task.js +80 -23
  918. package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
  919. package/dist/tree-operations/list/sublist-separator.js +20 -27
  920. package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
  921. package/dist/tree-operations/list/task-paragraph.js +54 -0
  922. package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
  923. package/dist/tree-operations/list/unwrap-merge.js +44 -79
  924. package/dist/tree-operations/node-ops.d.ts +30 -52
  925. package/dist/tree-operations/node-ops.js +152 -218
  926. package/dist/tree-operations/node-primitives.d.ts +44 -31
  927. package/dist/tree-operations/node-primitives.js +84 -60
  928. package/dist/tree-operations/open-tail.d.ts +25 -0
  929. package/dist/tree-operations/open-tail.js +100 -0
  930. package/dist/tree-operations/parse-block.d.ts +15 -2
  931. package/dist/tree-operations/parse-block.js +19 -4
  932. package/dist/tree-operations/paste/apply.d.ts +7 -8
  933. package/dist/tree-operations/paste/apply.js +33 -63
  934. package/dist/tree-operations/paste/body-write.d.ts +8 -6
  935. package/dist/tree-operations/paste/body-write.js +13 -14
  936. package/dist/tree-operations/paste/container-match.d.ts +7 -10
  937. package/dist/tree-operations/paste/container-match.js +76 -58
  938. package/dist/tree-operations/paste/container-paste.d.ts +3 -3
  939. package/dist/tree-operations/paste/container-paste.js +3 -3
  940. package/dist/tree-operations/paste/dispatch.d.ts +26 -29
  941. package/dist/tree-operations/paste/dispatch.js +68 -53
  942. package/dist/tree-operations/paste/focus-target.d.ts +11 -14
  943. package/dist/tree-operations/paste/focus-target.js +13 -18
  944. package/dist/tree-operations/paste/hooks.d.ts +7 -12
  945. package/dist/tree-operations/paste/hooks.js +49 -46
  946. package/dist/tree-operations/paste/line-ending.d.ts +11 -0
  947. package/dist/tree-operations/paste/line-ending.js +32 -0
  948. package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
  949. package/dist/tree-operations/paste/list-absorb.js +17 -19
  950. package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
  951. package/dist/tree-operations/paste/list-break-out.js +24 -32
  952. package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
  953. package/dist/tree-operations/paste/parent-scope.js +9 -16
  954. package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
  955. package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
  956. package/dist/tree-operations/paste/paste-replacement.js +73 -42
  957. package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
  958. package/dist/tree-operations/paste/paste-transforms.js +18 -27
  959. package/dist/tree-operations/paste/replacement-parse.d.ts +19 -0
  960. package/dist/tree-operations/paste/replacement-parse.js +24 -0
  961. package/dist/tree-operations/paste/strategy.d.ts +1 -1
  962. package/dist/tree-operations/paste/strategy.js +1 -1
  963. package/dist/tree-operations/paste/table-slice.js +15 -10
  964. package/dist/tree-operations/paste-surfaces.d.ts +18 -29
  965. package/dist/tree-operations/paste-surfaces.js +14 -10
  966. package/dist/tree-operations/path-mutate.d.ts +7 -8
  967. package/dist/tree-operations/path-mutate.js +4 -4
  968. package/dist/tree-operations/reorder-unit.d.ts +4 -5
  969. package/dist/tree-operations/reorder-unit.js +5 -6
  970. package/dist/tree-operations/reorder.d.ts +7 -9
  971. package/dist/tree-operations/reorder.js +39 -40
  972. package/dist/tree-operations/settle.d.ts +42 -53
  973. package/dist/tree-operations/settle.js +241 -162
  974. package/dist/tree-operations/sharing.d.ts +5 -5
  975. package/dist/tree-operations/splice-many.d.ts +5 -5
  976. package/dist/tree-operations/splice-many.js +5 -5
  977. package/dist/tree-operations/stored-as.d.ts +13 -0
  978. package/dist/tree-operations/stored-as.js +48 -0
  979. package/dist/tree-operations/structural-change.d.ts +11 -15
  980. package/dist/tree-operations/structural-change.js +10 -14
  981. package/dist/tree-operations/structural-suffix.d.ts +22 -0
  982. package/dist/tree-operations/structural-suffix.js +61 -0
  983. package/dist/tree-operations/sub-table-copy.d.ts +7 -0
  984. package/dist/tree-operations/sub-table-copy.js +40 -36
  985. package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
  986. package/dist/tree-operations/table-grid-clipboard.js +11 -36
  987. package/dist/tree-operations/table-mutations.d.ts +7 -3
  988. package/dist/tree-operations/table-mutations.js +45 -9
  989. package/dist/tree-operations/unshare.d.ts +11 -15
  990. package/dist/tree-operations/unshare.js +15 -17
  991. package/dist/undo/manager.js +1 -1
  992. package/dist/undo/types.d.ts +2 -2
  993. package/docs/guide/consumer-guide.md +329 -205
  994. package/docs/guide/directives.md +7 -7
  995. package/docs/guide/plugin-api.md +267 -183
  996. package/docs/guide/plugin-guide.md +341 -235
  997. package/docs/guide/plugin-testing.md +96 -82
  998. package/package.json +17 -21
  999. package/dist/ambient/ambient-cursor.d.ts +0 -41
  1000. package/dist/ambient/ambient-cursor.js +0 -120
  1001. package/dist/components/blocks/code/code-paste.d.ts +0 -24
  1002. package/dist/components/blocks/code/code-paste.js +0 -21
  1003. package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
  1004. package/dist/components/blocks/table/cell-clipboard.js +0 -67
  1005. package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
  1006. package/dist/components/blocks/text/hidden-suffix.js +0 -15
  1007. package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
  1008. package/dist/components/image/image-source-bytes.d.ts +0 -15
  1009. package/dist/components/image/image-source-bytes.js +0 -80
  1010. package/dist/cursor/content-offsets.d.ts +0 -29
  1011. package/dist/cursor/content-offsets.js +0 -151
  1012. package/dist/cursor/reveal-anchor.d.ts +0 -30
  1013. package/dist/cursor/reveal-anchor.js +0 -31
  1014. package/dist/invariants/split-landing.d.ts +0 -8
  1015. package/dist/invariants/split-landing.js +0 -15
  1016. package/dist/selection/double-click-trim.d.ts +0 -17
  1017. package/dist/selection/double-click-trim.js +0 -57
  1018. package/dist/tree-operations/list/terminator.d.ts +0 -17
  1019. package/dist/tree-operations/list/terminator.js +0 -60
  1020. package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -29
  1021. package/dist/tree-operations/paste/replace-block-at-parent.js +0 -75
@@ -1,9 +1,8 @@
1
1
  /**
2
- * G1.35 — a sink holding exactly one slot installs exactly one node. Bytes that reparse to
3
- * several blocks are refused before the write, never truncated to the first (a line vanishes from
4
- * the document) and never written whole into the surviving slot (the tree stops agreeing with its
5
- * own reload). Arriving plural is legal; installing plural is not, and this is asked at the
6
- * install so a sink that forgets the refusal answers for what it actually wrote.
2
+ * G1.35: a write target that holds one block installs exactly one node. Bytes that reparse to
3
+ * several blocks are refused before the write, never cut to the first (a line would vanish) nor
4
+ * written whole into one position (the tree would disagree with its own reload). The check runs
5
+ * at the write, so the caller that skipped the refusal is the one named.
7
6
  */
8
7
  import type { InvariantViolation } from '../assert';
9
8
  export declare function checkSingleNodeSink(sink: string, installed: number): InvariantViolation | null;
@@ -1,9 +1,8 @@
1
1
  /**
2
- * G1.35 — a sink holding exactly one slot installs exactly one node. Bytes that reparse to
3
- * several blocks are refused before the write, never truncated to the first (a line vanishes from
4
- * the document) and never written whole into the surviving slot (the tree stops agreeing with its
5
- * own reload). Arriving plural is legal; installing plural is not, and this is asked at the
6
- * install so a sink that forgets the refusal answers for what it actually wrote.
2
+ * G1.35: a write target that holds one block installs exactly one node. Bytes that reparse to
3
+ * several blocks are refused before the write, never cut to the first (a line would vanish) nor
4
+ * written whole into one position (the tree would disagree with its own reload). The check runs
5
+ * at the write, so the caller that skipped the refusal is the one named.
7
6
  */
8
7
  export function checkSingleNodeSink(sink, installed) {
9
8
  if (installed <= 1)
@@ -1,13 +1,12 @@
1
1
  /**
2
- * G1.9 — no mutation may change the serialized bytes reachable through a node an undo
3
- * entry still shares. BYTES-scoped, so a shared node may still be MOVED: each snapshot
4
- * owns its children array. The digest is the formalization, over top-level children only —
5
- * a container's raw covers its whole subtree, so a write through any shared descendant
6
- * that matters to serialization surfaces without recursion.
2
+ * G1.9: no mutation may change the serialized bytes reachable through a node an undo entry still
3
+ * shares. It is about bytes, not identity, so a shared node may move: each snapshot owns its
4
+ * children array. The digest covers top-level children only, since a container's raw covers its
5
+ * whole subtree.
7
6
  */
8
7
  import type { Document } from '../core/nodes';
9
8
  import type { InvariantViolation } from '../assert';
10
- /** Structural slice of UndoEntry — keeps this leaf module free of undo/ imports. */
9
+ /** The part of an undo entry this check needs, so the file imports nothing from `undo/`. */
11
10
  export interface SnapshotEntry {
12
11
  snapshot: Document;
13
12
  /** Digest of `snapshot` at push; absent outside DEV. */
@@ -3,7 +3,7 @@ export function checkSnapshotIntegrity(entry) {
3
3
  return null;
4
4
  return {
5
5
  code: 'snapshot-integrity',
6
- message: 'snapshot digest mismatch — a mutation wrote through a shared node'
6
+ message: 'snapshot digest mismatch: a mutation wrote through a shared node'
7
7
  };
8
8
  }
9
9
  export function digestDoc(doc) {
@@ -1,21 +1,12 @@
1
1
  import type { CstNode } from '../core/nodes';
2
2
  import type { StructuralChange } from '../tree-operations/structural-change';
3
3
  import type { InvariantViolation } from '../assert';
4
- /**
5
- * G1.36, producer half — a descriptor's window fits the array it syncs and mints no negative
6
- * slot count. `Array.from({length: -1})` is `[]`, so a descriptor derived from a length diff
7
- * over the wrong window desyncs ids from children in silence.
8
- */
4
+ /** G1.36, the writing half: a descriptor's range fits the array it keeps in step and never asks
5
+ * for a negative count, which `Array.from({length: -1})` would silently turn into `[]`. */
9
6
  export declare function checkStructuralDescriptor(change: StructuralChange, length: number): InvariantViolation | null;
10
- /**
11
- * G1.36, consumer half — one id per child once a commit publishes. The producer check cannot
12
- * see a descriptor that fits its own array while describing the wrong window, which is what
13
- * a length-diff derivation over a settle-folded splice produces.
14
- */
7
+ /** G1.36, the reading half: one id per child once a commit has written its state, which catches
8
+ * a descriptor that fits its own array but describes the wrong range. */
15
9
  export declare function checkIdsChildrenLockstep(seam: string, idCount: number, childCount: number): InvariantViolation | null;
16
- /**
17
- * G1.36 over the other parallel array — one span PAIR per child once a rebuild has run
18
- * (`schema/child-spans.ts`). A rebuilder seeding the wrong length, or a shape change that
19
- * outlived its drop, is a stale-region splice waiting for the next keystroke.
20
- */
10
+ /** G1.36 over the child spans: one pair of span bounds per child once a rebuild has run, or the
11
+ * next keystroke splices a stale region. */
21
12
  export declare function checkChildSpansLockstep(node: CstNode): InvariantViolation | null;
@@ -1,8 +1,5 @@
1
- /**
2
- * G1.36, producer half — a descriptor's window fits the array it syncs and mints no negative
3
- * slot count. `Array.from({length: -1})` is `[]`, so a descriptor derived from a length diff
4
- * over the wrong window desyncs ids from children in silence.
5
- */
1
+ /** G1.36, the writing half: a descriptor's range fits the array it keeps in step and never asks
2
+ * for a negative count, which `Array.from({length: -1})` would silently turn into `[]`. */
6
3
  export function checkStructuralDescriptor(change, length) {
7
4
  if (change.op === 'noop')
8
5
  return null;
@@ -16,11 +13,8 @@ export function checkStructuralDescriptor(change, length) {
16
13
  detail: { change, length }
17
14
  };
18
15
  }
19
- /**
20
- * G1.36, consumer half — one id per child once a commit publishes. The producer check cannot
21
- * see a descriptor that fits its own array while describing the wrong window, which is what
22
- * a length-diff derivation over a settle-folded splice produces.
23
- */
16
+ /** G1.36, the reading half: one id per child once a commit has written its state, which catches
17
+ * a descriptor that fits its own array but describes the wrong range. */
24
18
  export function checkIdsChildrenLockstep(seam, idCount, childCount) {
25
19
  if (idCount === childCount)
26
20
  return null;
@@ -30,11 +24,8 @@ export function checkIdsChildrenLockstep(seam, idCount, childCount) {
30
24
  detail: { seam, idCount, childCount }
31
25
  };
32
26
  }
33
- /**
34
- * G1.36 over the other parallel array — one span PAIR per child once a rebuild has run
35
- * (`schema/child-spans.ts`). A rebuilder seeding the wrong length, or a shape change that
36
- * outlived its drop, is a stale-region splice waiting for the next keystroke.
37
- */
27
+ /** G1.36 over the child spans: one pair of span bounds per child once a rebuild has run, or the
28
+ * next keystroke splices a stale region. */
38
29
  export function checkChildSpansLockstep(node) {
39
30
  const spans = node.childSpans;
40
31
  if (!spans)
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Lucide glyphs the editor's own controls draw (menus, the selection bar, table buttons),
3
+ * inlined as path data so the library needs no icon dependency. A leaf module, so the insert
4
+ * catalogue in `schema/` can check an icon name without importing a component.
5
+ */
6
+ export declare const MENU_GLYPHS: {
7
+ readonly plus: readonly ["M5 12h14", "M12 5v14"];
8
+ readonly type: readonly ["M4 7V4h16v3", "M9 20h6", "M12 4v16"];
9
+ readonly trash: readonly ["M3 6h18", "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6", "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2", "M10 11v6", "M14 11v6"];
10
+ readonly 'arrow-up': readonly ["m5 12 7-7 7 7", "M12 19V5"];
11
+ readonly 'arrow-down': readonly ["M12 5v14", "m19 12-7 7-7-7"];
12
+ readonly 'arrow-left': readonly ["m12 19-7-7 7-7", "M19 12H5"];
13
+ readonly 'arrow-right': readonly ["M5 12h14", "m12 5 7 7-7 7"];
14
+ readonly scissors: readonly ["M9 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0", "M8.12 8.12 12 12", "M20 4 8.12 15.88", "M9 18a3 3 0 1 1-6 0 3 3 0 0 1 6 0", "M14.8 14.8 20 20"];
15
+ readonly copy: readonly ["M10 8h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2z", "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"];
16
+ readonly clipboard: readonly ["M9 2h6a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1z", "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"];
17
+ readonly 'align-left': readonly ["M15 12H3", "M17 18H3", "M21 6H3"];
18
+ readonly 'align-center': readonly ["M17 12H7", "M19 18H5", "M21 6H3"];
19
+ readonly 'align-right': readonly ["M21 12H9", "M21 18H7", "M21 6H3"];
20
+ readonly bold: readonly ["M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8"];
21
+ readonly italic: readonly ["M19 4h-9", "M14 20H5", "M15 4 9 20"];
22
+ readonly strikethrough: readonly ["M16 4H9a3 3 0 0 0-2.83 4", "M14 12a4 4 0 0 1 0 8H6", "M4 12h16"];
23
+ readonly code: readonly ["m16 18 6-6-6-6", "m8 6-6 6 6 6"];
24
+ readonly link: readonly ["M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71", "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"];
25
+ readonly 'external-link': readonly ["M15 3h6v6", "M10 14 21 3", "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"];
26
+ readonly unlink: readonly ["m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71", "m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71", "M8 2v3", "M2 8h3", "M16 19v3", "M19 16h3"];
27
+ readonly heading: readonly ["M6 12h12", "M6 20V4", "M18 20V4"];
28
+ readonly list: readonly ["M3 12h.01", "M3 18h.01", "M3 6h.01", "M8 12h13", "M8 18h13", "M8 6h13"];
29
+ readonly 'list-ordered': readonly ["M10 12h11", "M10 18h11", "M10 6h11", "M4 10h2", "M4 6h1v4", "M6 18H4c0-1 2-2 2-3s-1-1.5-2-1"];
30
+ readonly 'square-check': readonly ["M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z", "m9 12 2 2 4-4"];
31
+ readonly 'text-quote': readonly ["M17 6H3", "M21 12H8", "M21 18H8", "M3 12v6"];
32
+ readonly minus: readonly ["M5 12h14"];
33
+ readonly table: readonly ["M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z", "M12 3v18", "M3 9h18", "M3 15h18"];
34
+ readonly sigma: readonly ["M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2"];
35
+ readonly info: readonly ["M22 12a10 10 0 1 1-20 0 10 10 0 0 1 20 0", "M12 16v-4", "M12 8h.01"];
36
+ readonly 'chevron-right': readonly ["m9 18 6-6-6-6"];
37
+ readonly 'chevron-down': readonly ["m6 9 6 6 6-6"];
38
+ readonly 'rows-2': readonly ["M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z", "M3 12h18"];
39
+ readonly 'columns-2': readonly ["M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z", "M12 3v18"];
40
+ readonly check: readonly ["M20 6 9 17l-5-5"];
41
+ readonly crop: readonly ["M6 2v14a2 2 0 0 0 2 2h14", "M18 22V8a2 2 0 0 0-2-2H2"];
42
+ readonly captions: readonly ["M5 5h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z", "M7 15h4", "M15 15h2", "M7 11h2", "M13 11h4"];
43
+ readonly x: readonly ["M18 6 6 18", "m6 6 12 12"];
44
+ readonly 'grip-vertical': readonly ["M10 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0", "M10 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0", "M10 19a1 1 0 1 1-2 0 1 1 0 0 1 2 0", "M16 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0", "M16 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0", "M16 19a1 1 0 1 1-2 0 1 1 0 0 1 2 0"];
45
+ };
46
+ export type MenuIconName = keyof typeof MENU_GLYPHS;
47
+ export declare function isMenuIconName(name: string): name is MenuIconName;
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Lucide glyphs the editor's own controls draw (menus, the selection bar, table buttons),
3
+ * inlined as path data so the library needs no icon dependency. A leaf module, so the insert
4
+ * catalogue in `schema/` can check an icon name without importing a component.
5
+ */
6
+ export const MENU_GLYPHS = {
7
+ plus: ['M5 12h14', 'M12 5v14'],
8
+ type: ['M4 7V4h16v3', 'M9 20h6', 'M12 4v16'],
9
+ trash: [
10
+ 'M3 6h18',
11
+ 'M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6',
12
+ 'M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2',
13
+ 'M10 11v6',
14
+ 'M14 11v6'
15
+ ],
16
+ 'arrow-up': ['m5 12 7-7 7 7', 'M12 19V5'],
17
+ 'arrow-down': ['M12 5v14', 'm19 12-7 7-7-7'],
18
+ 'arrow-left': ['m12 19-7-7 7-7', 'M19 12H5'],
19
+ 'arrow-right': ['M5 12h14', 'm12 5 7 7-7 7'],
20
+ scissors: [
21
+ 'M9 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0',
22
+ 'M8.12 8.12 12 12',
23
+ 'M20 4 8.12 15.88',
24
+ 'M9 18a3 3 0 1 1-6 0 3 3 0 0 1 6 0',
25
+ 'M14.8 14.8 20 20'
26
+ ],
27
+ copy: [
28
+ 'M10 8h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2z',
29
+ 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'
30
+ ],
31
+ clipboard: [
32
+ 'M9 2h6a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1z',
33
+ 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'
34
+ ],
35
+ 'align-left': ['M15 12H3', 'M17 18H3', 'M21 6H3'],
36
+ 'align-center': ['M17 12H7', 'M19 18H5', 'M21 6H3'],
37
+ 'align-right': ['M21 12H9', 'M21 18H7', 'M21 6H3'],
38
+ bold: ['M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8'],
39
+ italic: ['M19 4h-9', 'M14 20H5', 'M15 4 9 20'],
40
+ strikethrough: ['M16 4H9a3 3 0 0 0-2.83 4', 'M14 12a4 4 0 0 1 0 8H6', 'M4 12h16'],
41
+ code: ['m16 18 6-6-6-6', 'm8 6-6 6 6 6'],
42
+ link: [
43
+ 'M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71',
44
+ 'M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'
45
+ ],
46
+ 'external-link': [
47
+ 'M15 3h6v6',
48
+ 'M10 14 21 3',
49
+ 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'
50
+ ],
51
+ unlink: [
52
+ 'm18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71',
53
+ 'm5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71',
54
+ 'M8 2v3',
55
+ 'M2 8h3',
56
+ 'M16 19v3',
57
+ 'M19 16h3'
58
+ ],
59
+ heading: ['M6 12h12', 'M6 20V4', 'M18 20V4'],
60
+ list: ['M3 12h.01', 'M3 18h.01', 'M3 6h.01', 'M8 12h13', 'M8 18h13', 'M8 6h13'],
61
+ 'list-ordered': [
62
+ 'M10 12h11',
63
+ 'M10 18h11',
64
+ 'M10 6h11',
65
+ 'M4 10h2',
66
+ 'M4 6h1v4',
67
+ 'M6 18H4c0-1 2-2 2-3s-1-1.5-2-1'
68
+ ],
69
+ 'square-check': [
70
+ 'M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z',
71
+ 'm9 12 2 2 4-4'
72
+ ],
73
+ 'text-quote': ['M17 6H3', 'M21 12H8', 'M21 18H8', 'M3 12v6'],
74
+ minus: ['M5 12h14'],
75
+ table: [
76
+ 'M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z',
77
+ 'M12 3v18',
78
+ 'M3 9h18',
79
+ 'M3 15h18'
80
+ ],
81
+ sigma: [
82
+ 'M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2'
83
+ ],
84
+ info: ['M22 12a10 10 0 1 1-20 0 10 10 0 0 1 20 0', 'M12 16v-4', 'M12 8h.01'],
85
+ 'chevron-right': ['m9 18 6-6-6-6'],
86
+ 'chevron-down': ['m6 9 6 6 6-6'],
87
+ 'rows-2': ['M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z', 'M3 12h18'],
88
+ 'columns-2': [
89
+ 'M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z',
90
+ 'M12 3v18'
91
+ ],
92
+ check: ['M20 6 9 17l-5-5'],
93
+ crop: ['M6 2v14a2 2 0 0 0 2 2h14', 'M18 22V8a2 2 0 0 0-2-2H2'],
94
+ captions: [
95
+ 'M5 5h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z',
96
+ 'M7 15h4',
97
+ 'M15 15h2',
98
+ 'M7 11h2',
99
+ 'M13 11h4'
100
+ ],
101
+ x: ['M18 6 6 18', 'm6 6 12 12'],
102
+ 'grip-vertical': [
103
+ 'M10 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0',
104
+ 'M10 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0',
105
+ 'M10 19a1 1 0 1 1-2 0 1 1 0 0 1 2 0',
106
+ 'M16 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0',
107
+ 'M16 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0',
108
+ 'M16 19a1 1 0 1 1-2 0 1 1 0 0 1 2 0'
109
+ ]
110
+ };
111
+ export function isMenuIconName(name) {
112
+ return Object.hasOwn(MENU_GLYPHS, name);
113
+ }
@@ -3,13 +3,17 @@ export interface PerfSnapshot {
3
3
  snapshotCount: number;
4
4
  snapshotCloneBytes: number;
5
5
  rebuildDepths: Record<number, number>;
6
- /** Container reparses the kind re-derivation gate let through (see rebuildUnsharedChain). */
6
+ /** Parses of a rebuilt container's own bytes, to re-derive its kind or metadata
7
+ * (`schema/container-raw.ts :: parseContainerRaw`), and the bytes they read. */
7
8
  containerKindReparses: number;
9
+ containerReparseBytes: number;
10
+ /** Reads of a rebuilt container's first line alone, to re-derive its kind or metadata. */
11
+ openerLineReads: number;
8
12
  parseCount: number;
9
13
  parseMsTotal: number;
10
14
  parseBlockCount: number;
11
15
  inlineComputeCount: number;
12
- /** Inline-format coverage reads that actually parsed — the pressed-state read's cost. */
16
+ /** Inline-format coverage reads that actually parsed: what a toolbar's pressed state costs. */
13
17
  formatCoverageReads: number;
14
18
  undoLiveBytes: number;
15
19
  undoEntryCount: number;
@@ -21,6 +25,14 @@ export interface PerfSnapshot {
21
25
  decorationRuns: number;
22
26
  islandRebuilds: number;
23
27
  islandKeyScans: number;
28
+ /** One entry per windowing height table built: the list's path and the width it estimated at. */
29
+ heightTableBuilds: {
30
+ path: string;
31
+ width: number;
32
+ }[];
33
+ /** Checks of whether a change moved the focused block past a neighbour, which only a rebuilt
34
+ * height table pays for. */
35
+ neighbourPasses: number;
24
36
  }
25
37
  export declare function enablePerfInstruments(): void;
26
38
  export declare function disablePerfInstruments(): void;
@@ -29,7 +41,8 @@ export declare function perfEnabled(): boolean;
29
41
  export declare function perfSnapshot(): PerfSnapshot;
30
42
  export declare function recordSnapshotClone(bytes: number): void;
31
43
  export declare function recordRebuildDepth(depth: number): void;
32
- export declare function recordContainerKindReparse(): void;
44
+ export declare function recordContainerKindReparse(bytes: number): void;
45
+ export declare function recordOpenerLineRead(): void;
33
46
  export declare function recordParse(ms: number, blockCount: number): void;
34
47
  export declare function recordInlineCompute(): void;
35
48
  export declare function recordFormatCoverageRead(): void;
@@ -38,12 +51,14 @@ export declare function recordBlockRender(ms: number, path?: number[]): void;
38
51
  export declare function recordDecorationRun(): void;
39
52
  export declare function recordIslandRebuild(): void;
40
53
  export declare function recordIslandKeyScan(): void;
54
+ export declare function recordHeightTableBuild(path: readonly number[], width: number): void;
55
+ export declare function recordNeighbourPass(): void;
41
56
  export declare function incMountedBlocks(): void;
42
57
  export declare function decMountedBlocks(): void;
43
58
  export declare function markKeystrokeStart(): void;
44
59
  export declare function markKeystrokeSettle(): void;
45
60
  /**
46
- * Serialized-byte proxy without building the string. Counts UTF-16 code units: exact
47
- * against `serialize().length`, approximate against on-disk bytes for non-ASCII.
61
+ * A stand-in for the serialized byte count that never builds the string. Counts UTF-16 code
62
+ * units: exact against `serialize().length`, approximate against on-disk bytes for non-ASCII.
48
63
  */
49
64
  export declare function docByteLength(doc: DocumentView): number;
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Dev-mode performance counters for the profiling harness. A leaf module, so the seams that
3
- * record into it can depend on it from anywhere. Recording stays off until a runtime switch
4
- * that only arms in dev/Vitest, leaving production one boolean check per record call.
5
- * Internal — never exported from the editor barrel.
2
+ * Dev-mode performance counters for the profiling harness. It depends only on the build flags,
3
+ * so anything that records into it can import it. Recording stays off until a runtime switch that
4
+ * turns on only in a dev build or a test run, leaving production one boolean check per record
5
+ * call. Internal: never exported from the editor barrel.
6
6
  */
7
- import { DEV } from 'esm-env';
7
+ import { editorEnv, isDevChecks } from '../env';
8
8
  let enabled = false;
9
9
  let counters = emptySnapshot();
10
10
  let keystrokeStart = null;
@@ -14,6 +14,8 @@ function emptySnapshot() {
14
14
  snapshotCloneBytes: 0,
15
15
  rebuildDepths: {},
16
16
  containerKindReparses: 0,
17
+ containerReparseBytes: 0,
18
+ openerLineReads: 0,
17
19
  parseCount: 0,
18
20
  parseMsTotal: 0,
19
21
  parseBlockCount: 0,
@@ -28,14 +30,15 @@ function emptySnapshot() {
28
30
  mountedBlockCount: 0,
29
31
  decorationRuns: 0,
30
32
  islandRebuilds: 0,
31
- islandKeyScans: 0
33
+ islandKeyScans: 0,
34
+ heightTableBuilds: [],
35
+ neighbourPasses: 0
32
36
  };
33
37
  }
34
38
  // ── Switch and readout ──────────────────────────────────────────────────────
35
39
  export function enablePerfInstruments() {
36
- if (DEV || (typeof process !== 'undefined' && process?.env?.VITEST)) {
40
+ if (isDevChecks() || editorEnv.isTest)
37
41
  enabled = true;
38
- }
39
42
  }
40
43
  export function disablePerfInstruments() {
41
44
  enabled = false;
@@ -52,7 +55,8 @@ export function perfSnapshot() {
52
55
  ...counters,
53
56
  rebuildDepths: { ...counters.rebuildDepths },
54
57
  keystrokeInPageMs: [...counters.keystrokeInPageMs],
55
- blockRenderPaths: [...counters.blockRenderPaths]
58
+ blockRenderPaths: [...counters.blockRenderPaths],
59
+ heightTableBuilds: [...counters.heightTableBuilds]
56
60
  };
57
61
  }
58
62
  // ── Recorders ───────────────────────────────────────────────────────────────
@@ -67,10 +71,16 @@ export function recordRebuildDepth(depth) {
67
71
  return;
68
72
  counters.rebuildDepths[depth] = (counters.rebuildDepths[depth] ?? 0) + 1;
69
73
  }
70
- export function recordContainerKindReparse() {
74
+ export function recordContainerKindReparse(bytes) {
71
75
  if (!enabled)
72
76
  return;
73
77
  counters.containerKindReparses++;
78
+ counters.containerReparseBytes += bytes;
79
+ }
80
+ export function recordOpenerLineRead() {
81
+ if (!enabled)
82
+ return;
83
+ counters.openerLineReads++;
74
84
  }
75
85
  export function recordParse(ms, blockCount) {
76
86
  if (!enabled)
@@ -103,8 +113,8 @@ export function recordBlockRender(ms, path) {
103
113
  if (path)
104
114
  counters.blockRenderPaths.push(path.join(','));
105
115
  }
106
- // notifyEdit runs every source, so a typing pass records keystrokes × sources — the
107
- // ceiling that catches a per-block cascade.
116
+ // `notifyEdit` runs every source, so a typing pass records keystrokes × sources, the ceiling
117
+ // that catches one block's change cascading into the rest.
108
118
  export function recordDecorationRun() {
109
119
  if (!enabled)
110
120
  return;
@@ -115,12 +125,22 @@ export function recordIslandRebuild() {
115
125
  return;
116
126
  counters.islandRebuilds++;
117
127
  }
118
- // One querySelectorAll per destructive/printable keystroke, even when the block holds none.
128
+ // One `querySelectorAll` per delete or printable keystroke, even when the block has none.
119
129
  export function recordIslandKeyScan() {
120
130
  if (!enabled)
121
131
  return;
122
132
  counters.islandKeyScans++;
123
133
  }
134
+ export function recordHeightTableBuild(path, width) {
135
+ if (!enabled)
136
+ return;
137
+ counters.heightTableBuilds.push({ path: path.join(','), width });
138
+ }
139
+ export function recordNeighbourPass() {
140
+ if (!enabled)
141
+ return;
142
+ counters.neighbourPasses++;
143
+ }
124
144
  export function incMountedBlocks() {
125
145
  if (!enabled)
126
146
  return;
@@ -143,8 +163,8 @@ export function markKeystrokeSettle() {
143
163
  keystrokeStart = null;
144
164
  }
145
165
  /**
146
- * Serialized-byte proxy without building the string. Counts UTF-16 code units: exact
147
- * against `serialize().length`, approximate against on-disk bytes for non-ASCII.
166
+ * A stand-in for the serialized byte count that never builds the string. Counts UTF-16 code
167
+ * units: exact against `serialize().length`, approximate against on-disk bytes for non-ASCII.
148
168
  */
149
169
  export function docByteLength(doc) {
150
170
  let length = doc.prefix.length + doc.suffix.length;
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Count the calling component in the dev mount gauge. Rows and list items aren't
3
- * BlockHosts, so without this a windowed giant container would read as ~0 mounted blocks.
2
+ * Count the calling component in the dev-mode mount gauge. Rows and list items are not
3
+ * BlockHosts, so without this a huge windowed container would read as almost nothing mounted.
4
4
  */
5
5
  import { perfEnabled, incMountedBlocks, decMountedBlocks } from './instruments';
6
6
  export function useMountGauge() {
7
7
  $effect(() => {
8
- // One decision per mount: the gauge is a net balance, so re-reading the flag at
9
- // teardown would let an arm/disarm flip unbalance it.
8
+ // Decided once per mount: the gauge counts up and down, so re-reading the flag at
9
+ // teardown would let turning it on or off in between leave the count unbalanced.
10
10
  if (!perfEnabled())
11
11
  return;
12
12
  incMountedBlocks();
package/dist/plugin.d.ts CHANGED
@@ -4,6 +4,7 @@ import type { ChromeLeafOptions } from './editor-actions/plugin/chrome-leaf';
4
4
  export { definePlugin, isPluginInstalled } from './schema/plugin-install';
5
5
  export type { EditorPlugin, EditorPluginEntry } from './schema/plugin-install';
6
6
  export type { PluginSetupContext, OnEditorCallback, EditorContext } from './schema/plugin-install';
7
+ export type { InsertMarkdownOptions } from './editor-props';
7
8
  export type { PresentationMode } from './presentation-mode';
8
9
  export { definePluginBlock } from './schema/define-plugin-block';
9
10
  export { declarePluginKind, declaredPluginKind } from './schema/plugin-kind';
@@ -15,7 +16,8 @@ export type { InlineSyntaxRecognizer, InlineSyntaxOptions } from './core/inline/
15
16
  export { registerInlineWidgetKind, mintWidgetShell, isWidgetActivationClick } from './core/inline/inline-widgets';
16
17
  export type { InlineWidgetDescriptor, InlineWidgetComponentProps, InlineWidgetEditingPolicy, InlineWidgetEditingContext } from './core/inline/inline-widgets';
17
18
  export { registerBlockKind, augmentBlockKind } from './schema/block-kind-descriptor';
18
- export type { BlockKindDescriptor, BlockKindRegistration, BlockKindAugmentation, ContainerDescriptorGroup, MergeRole, UnwrapRole } from './schema/block-kind-descriptor';
19
+ export type { BlockKindRegistration, BlockKindAugmentation, ContainerDescriptorGroup, MergeRole, ContainerUnwrapRole, WriteContext, WriteRule } from './schema/block-kind-descriptor';
20
+ export type { HeightEstimateEnv } from './schema/height-estimates';
19
21
  export type { ChildRawChange } from './schema/child-spans';
20
22
  export type { ClosureBlock, ClosureColumn, ClosureCell, SimpleLeafClosureCells, ContainerClosureCells } from './schema/closure';
21
23
  export { simpleLeafClosure, containerClosure } from './schema/closure';
@@ -29,10 +31,18 @@ export type { OuterBlockScan } from './schema/block-openers';
29
31
  export { OPENER_PRIORITIES } from './schema/opener-priorities';
30
32
  export { registerBlockCompleter } from './schema/block-completions';
31
33
  export type { BlockCompleter, CompletionResult } from './schema/block-completions';
32
- export { registerLanguage, listLanguages } from './components/blocks/code/code-languages';
34
+ export { registerLanguage } from './components/blocks/code/code-languages';
33
35
  export type { LanguageGrammar } from './components/blocks/code/code-languages';
34
- export { tokenizeBody as highlightCode } from './components/blocks/code/code-renderer';
36
+ /** Every language once, under its canonical name, sorted. */
37
+ export declare function listLanguages(): string[];
38
+ /** The other spellings a language answers to, asked by any of them. */
39
+ export declare function getLanguageAliases(name: string): readonly string[];
40
+ /** The code block's own tokenizer, for a plugin's own source view (block math paints its LaTeX
41
+ * with it). Text-preserving: the fragment's `textContent` is `body`. */
42
+ export declare function highlightCode(body: string, language: string): DocumentFragment;
35
43
  export type { LanguageFn } from 'highlight.js';
44
+ export { sliceFencedSource, renderFencedSource, fenceBodyAsDrawn } from './components/blocks/code/code-renderer';
45
+ export type { FencedSource } from './components/blocks/code/code-renderer';
36
46
  export type { CommandId } from './schema/commands';
37
47
  export type { KeyBinding } from './schema/keybindings';
38
48
  export { registerBlockCommand } from './schema/block-commands';
@@ -47,11 +57,18 @@ export { serialize, concatChildren as serializeChildren } from './core/serialize
47
57
  export { trimTrailingLineEnding, normalizeLineEndings } from './core/lines';
48
58
  export { splitLines } from './core/lines';
49
59
  export type { ParsedLine } from './core/lines';
60
+ export { documentLineEnding, firstLineEnding, ownTrailingLineEnding, trailingLineEnding, displayLines, joinDisplayLines } from './core/lines';
61
+ export type { LineEnding } from './core/lines';
50
62
  export { isBlankLine } from './core/parser';
63
+ export { isBlankText, isWhitespaceChar, trimWhitespace } from './core/lines';
51
64
  export { parseContainerBody } from './core/parser';
52
65
  export type { ContainerBodyWrap } from './core/parser';
53
- export { matchFenceOpen, matchFenceClose, escalatedFenceLength } from './core/parsers/fence-syntax';
54
- export type { FenceOpen } from './core/parsers/fence-syntax';
66
+ export { matchFenceOpen, matchFenceClose, escalatedFenceLength, findFenceCloser, fenceAnatomy, matchFenceInfo } from './core/parsers/fence-syntax';
67
+ export type { FenceOpen, FenceRun, FenceAnatomy } from './core/parsers/fence-syntax';
68
+ export { scanFence } from './core/parsers/fenced-code';
69
+ export type { FenceScan } from './core/parsers/fenced-code';
70
+ export { fenceRawWrite, fenceShapeOfRaw } from './schema/fenced-code-raw';
71
+ export type { FenceShape } from './schema/fenced-code-raw';
55
72
  export { htmlBlockTagLineMatcher } from './core/parsers/html-block';
56
73
  export { blockquoteExtent } from './core/parsers/blockquote';
57
74
  export type { CstNode } from './core/nodes';
@@ -61,9 +78,13 @@ export { getContentRange } from './core/inline';
61
78
  export type { ContentRange } from './core/inline';
62
79
  export { headingLevel } from './core/nodes';
63
80
  export { isProseKind } from './core/inline';
81
+ export { walkBlocks } from './core/paths';
82
+ export { blockNodeAt } from './tree-operations/node-primitives';
64
83
  /**
65
- * Inline-parse a prose leaf. No link-reference resolver is available to a plugin, so
66
- * reference links parse as `unresolvedReference`; every other construct fully resolves.
84
+ * Inline-parse a prose leaf with every installed plugin's syntax, for a pipeline with no editor
85
+ * mounted. Inside an editor use `EditorContext.computeInlineContent`, which reads only the plugins
86
+ * that editor lists and resolves the document's reference links. With no document here, a
87
+ * reference link reads as its bracketed text.
67
88
  */
68
89
  export declare function computeInlineContent(node: NodeView): InlineNode[];
69
90
  export { isBlockKindDeclared } from './schema/plugin-kind';
@@ -72,10 +93,12 @@ export { isBlockComponentRegistered } from './schema/block-component-registry';
72
93
  export { isBlockOpenerRegistered } from './schema/block-openers';
73
94
  export { isBlockCompleterRegistered } from './schema/block-completions';
74
95
  export { isPasteTransformRegistered } from './tree-operations/paste/paste-transforms';
96
+ export { isLanguageRegistered } from './components/blocks/code/code-languages';
75
97
  export { default as BlockList } from './components/BlockList.svelte';
76
98
  export { createContainerBlock } from './editor-actions/plugin/container';
77
99
  export type { ContainerBlock, ContainerBlockComponent, ContainerBlockDeps, ContainerBlockListProps } from './editor-actions/plugin/container';
78
100
  export type { RefSlots } from './reactivity/publish-ref.svelte';
101
+ export type { ChildList } from './reactivity/child-list';
79
102
  export declare function registerChromeLeaf(kind: AnyBlockKind, opts?: ChromeLeafOptions): void;
80
103
  export type { ChromeLeafOptions };
81
104
  export { chromeChild } from './editor-actions/plugin/chrome-leaf';
@@ -92,17 +115,24 @@ export { createDirectiveRebuild } from './editor-actions/plugin/directive-contai
92
115
  export { DIRECTIVE_BODY_WRAP } from './core/directive/kinds';
93
116
  export { createBoundedMemo } from './bounded-memo';
94
117
  export type { BoundedMemoOptions } from './bounded-memo';
118
+ export { createRendererSlot, createAsyncRendererSlot, renderSourceFallback } from './renderer-slot';
119
+ export type { RenderContext, RendererSlot, AsyncRendererSlot, RendererSlotSpec, SyncRendererSlotSpec } from './renderer-slot';
95
120
  export { createScanIndex } from './scan-index';
96
121
  export { registerPasteTransform } from './tree-operations/paste/paste-transforms';
97
122
  export type { PasteTransform } from './tree-operations/paste/paste-transforms';
98
123
  export type { Decoration, MarkDecoration, WidgetDecoration, ReplaceDecoration, BlockDecoration, DecorationWidgetSpec, ProvideContext, DecorationSource, DecorationSourceHandle, DecorationRegistry } from './decorations/types';
99
- export type { EditEvent, EditorEventMap, SelectionChangeEvent, EditorError } from './editor-events';
124
+ export type { EditEvent, EditorEventMap, SelectionChangeEvent, EditorError, SourceSwapEvent } from './editor-events';
100
125
  export type { OperationKind } from './schema/operations';
126
+ export type { InlineMenuRegistry, InlineMenuOpenOptions, InlineMenuSource, InlineMenuSourceHandle, InlineMenuItem, InlineMenuQuery, InlineMenuRowProps } from './inline-menu/types';
127
+ export { registerInsertEntry } from './schema/insert-catalogue';
128
+ export type { InsertEntry } from './schema/insert-catalogue';
129
+ export type { MenuIconName } from './menu-icons';
101
130
  export type { EditorRects } from './editor-rects';
102
131
  export { caretOffsetAtPoint } from './cursor/point-offset';
103
132
  export type { CaretTarget } from './schema/block-kind-descriptor';
104
133
  export { CURSOR_END } from './block-component';
105
134
  export type { CursorEnd } from './block-component';
135
+ export { POINTER_GESTURE_ATTR } from './selection/pointer-gesture';
106
136
  export type { EditorSelection, SelectionPoint } from './selection/primitives';
107
137
  export { SELECTION_END } from './block-component';
108
138
  export type { SelectionEnd } from './block-component';