@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,53 +1,29 @@
1
1
  /**
2
- * The cell-index space a selection endpoint inside a grid lives in. Offsets are INCLUSIVE cell
3
- * indices, the space SelectionPoint already uses. The whole-row snap and the two metadata reads
4
- * answer for a table alone; the coverage tenants answer for any `containerContract: 'grid'` kind.
5
- * An intra-table pair is deliberately left unsnapped, so rectangular sub-cell selection survives.
2
+ * The cell-index space a selection endpoint inside a grid lives in. Offsets are inclusive cell
3
+ * indices, and every endpoint on a table path carries `cellCoordinate`. The whole-row snap and
4
+ * the metadata reads are for tables only; the cell lists serve any `containerContract: 'grid'`
5
+ * kind. A pair inside one table is left unsnapped, so a rectangle of cells can be selected.
6
6
  */
7
7
  import type { DocumentView, NodeView } from '../core/node-views';
8
- import type { SelectionPoint } from './primitives';
9
- /**
10
- * The char→cell conversion funnel: a cross-block endpoint inside a table must address the table
11
- * block by row-major cell index, or a deep `[tableIdx, row, col]` path with a char offset routes
12
- * the delete down the generic branch and corrupts the grid. SelectionState applies this to every
13
- * incoming point, so entry paths never call it themselves. Non-table paths pass through.
14
- */
8
+ import type { CellSelectionPoint, SelectionPoint } from './primitives';
9
+ import { type CellRect } from '../cursor/coordinate-spaces';
10
+ /** The one conversion into cell space, which `SelectionState` applies to every incoming point: an
11
+ * endpoint on or inside a table becomes the table path plus a flagged row-major cell index. */
15
12
  export declare function normalizeTableEndpoint(doc: DocumentView, path: number[], offset: number): SelectionPoint;
16
- /**
17
- * How many cells a table's index space holds, the exclusive upper bound on any row-major cell
18
- * index. `node` must be a table block; the metadata read is unchecked, so other kinds give NaN.
19
- * Lives beside the bounds check below so a caller's clamp and the check cannot drift apart.
20
- */
21
- export declare function tableCellCount(node: NodeView): number;
13
+ /** A table taken whole, as the cell on one side of it; null when `path` names no table. */
14
+ export declare function wholeTableEndpoint(doc: DocumentView, path: number[], side: 'start' | 'end'): CellSelectionPoint | null;
22
15
  /** One cell of a grid, with the doc-absolute path that addresses it. */
23
16
  export interface GridCell {
24
17
  node: NodeView;
25
18
  path: number[];
26
19
  }
27
- /**
28
- * `point`'s index in `grid`'s cell space, null where it addresses no cell of it — the side the
29
- * range runs past, which reads as the grid's own edge. A table's endpoint arrives on the grid path
30
- * already carrying the index; a plugin grid's keeps the deep `[grid, row, col]` path G1.29 permits,
31
- * and resolves through the same width {@link coveredGridCells} decodes with.
32
- */
33
- export declare function gridEndpointCellIndex(grid: NodeView, gridPath: number[], point: SelectionPoint): number | null;
34
- /**
35
- * The cells a range covers inside one grid, in document order. `from`/`to` are the range's own cell
36
- * indices IN DOCUMENT ORDER (`from <= to`; unordered inputs answer with fewer cells or none), null
37
- * on a side the range runs past. Both inside is the RECTANGLE they span — what the overlay paints
38
- * and `range-delete-table` clears; one inside is a run to that cell inclusive. Rows of cells is the
39
- * whole shape asked: children that are not rows of cells answer with no cells, rows of unequal
40
- * width with the wrong cells or none, every index being row 0's width.
41
- */
42
- export declare function coveredGridCells(grid: NodeView, gridPath: number[], from: number | null, to: number | null): GridCell[];
43
- /**
44
- * Inverse of {@link normalizeTableEndpoint}: expand an endpoint addressing a table block to its
45
- * deep `[tableIdx, row, col]` leaf path so reveal/caret placement reaches an off-window cell.
46
- * Null when the path is already a leaf or the index lands outside the grid. Resolution is on the
47
- * NODE KIND, not the `cellCoordinate` flag: an intra-table focus is unflagged (see
48
- * {@link SelectionPoint}) yet still a cell index. Callers reach it through
49
- * `SelectionState.cellLandingFor`, which is where the landing rule lives.
50
- */
20
+ /** The cells of `rect` inside one grid, row by row. */
21
+ export declare function gridCellsInRect(grid: NodeView, gridPath: number[], rect: CellRect): GridCell[];
22
+ /** The cells a run covers inside one grid, in row-major order, a null side running to the grid's
23
+ * edge. Rows must share row 0's width. */
24
+ export declare function gridCellsInRun(grid: NodeView, gridPath: number[], from: number | null, to: number | null): GridCell[];
25
+ /** The inverse of {@link normalizeTableEndpoint}: a cell endpoint's `[tableIdx, row, col]` leaf
26
+ * path, or null. Reach it through `SelectionState.cellLandingFor`. */
51
27
  export declare function cellEndpointDeepPath(doc: DocumentView, point: SelectionPoint): number[] | null;
52
28
  export declare function snapCrossBlockTableEndpoints(doc: DocumentView, start: SelectionPoint, end: SelectionPoint): {
53
29
  start: SelectionPoint;
@@ -1,77 +1,60 @@
1
1
  /**
2
- * The cell-index space a selection endpoint inside a grid lives in. Offsets are INCLUSIVE cell
3
- * indices, the space SelectionPoint already uses. The whole-row snap and the two metadata reads
4
- * answer for a table alone; the coverage tenants answer for any `containerContract: 'grid'` kind.
5
- * An intra-table pair is deliberately left unsnapped, so rectangular sub-cell selection survives.
2
+ * The cell-index space a selection endpoint inside a grid lives in. Offsets are inclusive cell
3
+ * indices, and every endpoint on a table path carries `cellCoordinate`. The whole-row snap and
4
+ * the metadata reads are for tables only; the cell lists serve any `containerContract: 'grid'`
5
+ * kind. A pair inside one table is left unsnapped, so a rectangle of cells can be selected.
6
6
  */
7
7
  import { metadataOf } from '../core/nodes';
8
- import { isBlockNode, nodeAt } from '../tree-operations/node-primitives';
9
- import { cellIndexOf } from './primitives';
10
- import { asCellIndex, cellRowCol } from '../cursor/coordinate-spaces';
11
- import { comparePaths, pathHasPrefix } from './path-math';
8
+ import { nodeAt } from '../tree-operations/node-primitives';
9
+ import { clampCellIndex, countsCells, tableCellCount } from '../schema/block-kind-descriptor';
10
+ import { cellIndexOf, cellPoint } from './primitives';
11
+ import { asCellIndex, rowMajorCellIndex, cellRowCol } from '../cursor/coordinate-spaces';
12
+ import { comparePaths } from './path-math';
12
13
  import { devWarn } from '../dev-warn';
13
- /**
14
- * The char→cell conversion funnel: a cross-block endpoint inside a table must address the table
15
- * block by row-major cell index, or a deep `[tableIdx, row, col]` path with a char offset routes
16
- * the delete down the generic branch and corrupts the grid. SelectionState applies this to every
17
- * incoming point, so entry paths never call it themselves. Non-table paths pass through.
18
- */
14
+ /** The one conversion into cell space, which `SelectionState` applies to every incoming point: an
15
+ * endpoint on or inside a table becomes the table path plus a flagged row-major cell index. */
19
16
  export function normalizeTableEndpoint(doc, path, offset) {
20
- for (let d = 0; d < path.length - 1; d++) {
21
- const node = nodeAt(doc, path.slice(0, d + 1));
22
- if (node && isBlockNode(node) && node.kind === 'table') {
23
- const colCount = metadataOf(node, 'table').columnCount;
24
- const rowIdx = path[d + 1];
25
- const colIdx = path[d + 2] ?? 0;
26
- return {
27
- path: path.slice(0, d + 1),
28
- offset: asCellIndex(rowIdx * colCount + colIdx),
29
- cellCoordinate: true
30
- };
31
- }
17
+ for (let d = 0; d < path.length; d++) {
18
+ const tablePath = path.slice(0, d + 1);
19
+ const node = nodeAt(doc, tablePath);
20
+ if (!node || !countsCells(node))
21
+ continue;
22
+ // On the table's own path the offset is already the cell index.
23
+ if (d === path.length - 1)
24
+ return cellPoint(tablePath, clampCellIndex(node, offset));
25
+ const colCount = metadataOf(node, 'table').columnCount;
26
+ return cellPoint(tablePath, rowMajorCellIndex(path[d + 1], path[d + 2] ?? 0, colCount));
32
27
  }
33
28
  return { path: path.slice(), offset };
34
29
  }
35
- /**
36
- * How many cells a table's index space holds, the exclusive upper bound on any row-major cell
37
- * index. `node` must be a table block; the metadata read is unchecked, so other kinds give NaN.
38
- * Lives beside the bounds check below so a caller's clamp and the check cannot drift apart.
39
- */
40
- export function tableCellCount(node) {
41
- return (node.children?.length ?? 0) * metadataOf(node, 'table').columnCount;
30
+ /** A table taken whole, as the cell on one side of it; null when `path` names no table. */
31
+ export function wholeTableEndpoint(doc, path, side) {
32
+ const node = nodeAt(doc, path);
33
+ if (!node || !countsCells(node))
34
+ return null;
35
+ const offset = side === 'end' ? clampCellIndex(node, Infinity) : 0;
36
+ return cellPoint(path, offset);
42
37
  }
43
- /** A grid's own width, row 0's cell count — not `metadata.columnCount`: `containerContract: 'grid'`
44
- * is a plugin contract, and a kind with no table metadata reaches here. A column mutation splices
45
- * each row and the count together, so the two agree on a table. */
38
+ /** A grid's width as row 0's cell count, not `metadata.columnCount`: a plugin grid kind has no
39
+ * table metadata. On a table the two agree, since a column edit changes both together. */
46
40
  function gridColumnCount(grid) {
47
41
  return grid.children?.[0]?.children?.length ?? 0;
48
42
  }
49
- /**
50
- * `point`'s index in `grid`'s cell space, null where it addresses no cell of it — the side the
51
- * range runs past, which reads as the grid's own edge. A table's endpoint arrives on the grid path
52
- * already carrying the index; a plugin grid's keeps the deep `[grid, row, col]` path G1.29 permits,
53
- * and resolves through the same width {@link coveredGridCells} decodes with.
54
- */
55
- export function gridEndpointCellIndex(grid, gridPath, point) {
56
- if (!pathHasPrefix(point.path, gridPath))
57
- return null;
58
- // On the grid's own path, resolution is the NODE KIND's, not the flag's ({@link
59
- // cellEndpointDeepPath}): a table path IS cell space, so an intra-table rectangle's unflagged
60
- // corner counts cells, while any other grid holds a char offset addressing no cell.
61
- if (point.path.length === gridPath.length)
62
- return point.cellCoordinate || grid.kind === 'table' ? point.offset : null;
63
- const [row, col = 0] = point.path.slice(gridPath.length);
64
- return row * gridColumnCount(grid) + col;
43
+ /** The cells of `rect` inside one grid, row by row. */
44
+ export function gridCellsInRect(grid, gridPath, rect) {
45
+ const cells = [];
46
+ for (let row = rect.top; row < rect.top + rect.rows; row++) {
47
+ for (let col = rect.left; col < rect.left + rect.cols; col++) {
48
+ const node = grid.children?.[row]?.children?.[col];
49
+ if (node)
50
+ cells.push({ node, path: [...gridPath, row, col] });
51
+ }
52
+ }
53
+ return cells;
65
54
  }
66
- /**
67
- * The cells a range covers inside one grid, in document order. `from`/`to` are the range's own cell
68
- * indices IN DOCUMENT ORDER (`from <= to`; unordered inputs answer with fewer cells or none), null
69
- * on a side the range runs past. Both inside is the RECTANGLE they span — what the overlay paints
70
- * and `range-delete-table` clears; one inside is a run to that cell inclusive. Rows of cells is the
71
- * whole shape asked: children that are not rows of cells answer with no cells, rows of unequal
72
- * width with the wrong cells or none, every index being row 0's width.
73
- */
74
- export function coveredGridCells(grid, gridPath, from, to) {
55
+ /** The cells a run covers inside one grid, in row-major order, a null side running to the grid's
56
+ * edge. Rows must share row 0's width. */
57
+ export function gridCellsInRun(grid, gridPath, from, to) {
75
58
  const rows = grid.children ?? [];
76
59
  const colCount = gridColumnCount(grid);
77
60
  if (rows.length === 0 || colCount < 1)
@@ -80,15 +63,10 @@ export function coveredGridCells(grid, gridPath, from, to) {
80
63
  const clamp = (index) => Math.min(Math.max(index, 0), lastIndex);
81
64
  const first = cellRowCol(asCellIndex(clamp(from ?? 0)), colCount);
82
65
  const last = cellRowCol(asCellIndex(clamp(to ?? lastIndex)), colCount);
83
- const rectangle = from !== null && to !== null;
84
66
  const cells = [];
85
67
  for (let row = first.row; row <= last.row; row++) {
86
- const startCol = rectangle ? Math.min(first.col, last.col) : row === first.row ? first.col : 0;
87
- const endCol = rectangle
88
- ? Math.max(first.col, last.col)
89
- : row === last.row
90
- ? last.col
91
- : colCount - 1;
68
+ const startCol = row === first.row ? first.col : 0;
69
+ const endCol = row === last.row ? last.col : colCount - 1;
92
70
  for (let col = startCol; col <= endCol; col++) {
93
71
  const node = rows[row]?.children?.[col];
94
72
  if (node)
@@ -97,17 +75,13 @@ export function coveredGridCells(grid, gridPath, from, to) {
97
75
  }
98
76
  return cells;
99
77
  }
100
- /**
101
- * Inverse of {@link normalizeTableEndpoint}: expand an endpoint addressing a table block to its
102
- * deep `[tableIdx, row, col]` leaf path so reveal/caret placement reaches an off-window cell.
103
- * Null when the path is already a leaf or the index lands outside the grid. Resolution is on the
104
- * NODE KIND, not the `cellCoordinate` flag: an intra-table focus is unflagged (see
105
- * {@link SelectionPoint}) yet still a cell index. Callers reach it through
106
- * `SelectionState.cellLandingFor`, which is where the landing rule lives.
107
- */
78
+ /** The inverse of {@link normalizeTableEndpoint}: a cell endpoint's `[tableIdx, row, col]` leaf
79
+ * path, or null. Reach it through `SelectionState.cellLandingFor`. */
108
80
  export function cellEndpointDeepPath(doc, point) {
81
+ if (!point.cellCoordinate)
82
+ return null;
109
83
  const node = nodeAt(doc, point.path);
110
- if (!node || !isBlockNode(node) || node.kind !== 'table')
84
+ if (!node || !countsCells(node))
111
85
  return null;
112
86
  const colCount = metadataOf(node, 'table').columnCount;
113
87
  const cellIdx = asCellIndex(point.offset);
@@ -131,13 +105,13 @@ function snapEndpoint(doc, point, side) {
131
105
  if (!point.cellCoordinate)
132
106
  return point;
133
107
  const node = nodeAt(doc, point.path);
134
- if (!node || !isBlockNode(node) || node.kind !== 'table')
108
+ if (!node || !countsCells(node))
135
109
  return point;
136
110
  const colCount = metadataOf(node, 'table').columnCount;
137
111
  const cellIdx = cellIndexOf(point, 'snapCrossBlockTableEndpoints');
138
112
  const { row } = cellRowCol(cellIdx, colCount);
139
- const snappedOffset = side === 'start' ? row * colCount : row * colCount + colCount - 1;
113
+ const snappedOffset = rowMajorCellIndex(row, side === 'start' ? 0 : colCount - 1, colCount);
140
114
  if (snappedOffset === cellIdx)
141
115
  return point;
142
- return { ...point, offset: snappedOffset };
116
+ return cellPoint(point.path, snappedOffset);
143
117
  }
@@ -5,7 +5,7 @@
5
5
  * horizontal extension clamps at the column edges, since a rectangle has no sideways exit.
6
6
  */
7
7
  import type { DocumentView } from '../core/node-views';
8
- import type { SelectionPoint } from './primitives';
8
+ import { type SelectionPoint } from './primitives';
9
9
  export type ArrowKey = 'ArrowUp' | 'ArrowDown' | 'ArrowLeft' | 'ArrowRight';
10
10
  export type TableRectExtension = {
11
11
  kind: 'cell';
@@ -15,9 +15,6 @@ export type TableRectExtension = {
15
15
  direction: 'forward' | 'backward';
16
16
  fromCellPath: number[];
17
17
  };
18
- /**
19
- * The extension a Shift+Arrow produces for an intra-table rectangle, or null when the selection
20
- * is not a same-table rectangle. `anchor === focus` is a valid one-cell rectangle, so the first
21
- * Shift+Arrow starts here too. Offsets are cell indices, context-established by the shared path.
22
- */
18
+ /** The extension a Shift+Arrow produces for an intra-table rectangle, or null unless the selection
19
+ * is a same-table pair of cell endpoints (`anchor === focus` is a one-cell rectangle). */
23
20
  export declare function intraTableRectExtension(doc: DocumentView, anchor: SelectionPoint | null, focus: SelectionPoint | null, key: ArrowKey): TableRectExtension | null;
@@ -5,30 +5,35 @@
5
5
  * horizontal extension clamps at the column edges, since a rectangle has no sideways exit.
6
6
  */
7
7
  import { metadataOf } from '../core/nodes';
8
- import { isBlockNode, nodeAt } from '../tree-operations/node-primitives';
9
- import { cellRowCol } from '../cursor/coordinate-spaces';
8
+ import { nodeAt } from '../tree-operations/node-primitives';
9
+ import { countsCells } from '../schema/block-kind-descriptor';
10
+ import { rowMajorCellIndex, cellRowCol } from '../cursor/coordinate-spaces';
11
+ import { cellIndexOf } from './primitives';
10
12
  import { pathsEqual } from './path-math';
11
- /**
12
- * The extension a Shift+Arrow produces for an intra-table rectangle, or null when the selection
13
- * is not a same-table rectangle. `anchor === focus` is a valid one-cell rectangle, so the first
14
- * Shift+Arrow starts here too. Offsets are cell indices, context-established by the shared path.
15
- */
13
+ /** The extension a Shift+Arrow produces for an intra-table rectangle, or null unless the selection
14
+ * is a same-table pair of cell endpoints (`anchor === focus` is a one-cell rectangle). */
16
15
  export function intraTableRectExtension(doc, anchor, focus, key) {
17
- if (!anchor || !focus || !pathsEqual(anchor.path, focus.path))
16
+ if (!anchor?.cellCoordinate || !focus?.cellCoordinate)
17
+ return null;
18
+ if (!pathsEqual(anchor.path, focus.path))
18
19
  return null;
19
20
  const node = nodeAt(doc, focus.path);
20
- if (!node || !isBlockNode(node) || node.kind !== 'table')
21
+ if (!node || !countsCells(node))
21
22
  return null;
22
23
  const colCount = metadataOf(node, 'table').columnCount;
23
24
  const rowCount = node.children?.length ?? 0;
24
25
  if (colCount === 0 || rowCount === 0)
25
26
  return null;
26
27
  const path = focus.path;
27
- const { row, col } = cellRowCol(focus.offset, colCount);
28
+ const { row, col } = cellRowCol(cellIndexOf(focus, 'intraTableRectExtension'), colCount);
29
+ const at = (r, c) => ({
30
+ kind: 'cell',
31
+ offset: rowMajorCellIndex(r, c, colCount)
32
+ });
28
33
  switch (key) {
29
34
  case 'ArrowDown':
30
35
  return row < rowCount - 1
31
- ? { kind: 'cell', offset: (row + 1) * colCount + col }
36
+ ? at(row + 1, col)
32
37
  : {
33
38
  kind: 'exit',
34
39
  direction: 'forward',
@@ -36,11 +41,11 @@ export function intraTableRectExtension(doc, anchor, focus, key) {
36
41
  };
37
42
  case 'ArrowUp':
38
43
  return row > 0
39
- ? { kind: 'cell', offset: (row - 1) * colCount + col }
44
+ ? at(row - 1, col)
40
45
  : { kind: 'exit', direction: 'backward', fromCellPath: [...path, 0, 0] };
41
46
  case 'ArrowRight':
42
- return { kind: 'cell', offset: row * colCount + Math.min(col + 1, colCount - 1) };
47
+ return at(row, Math.min(col + 1, colCount - 1));
43
48
  case 'ArrowLeft':
44
- return { kind: 'cell', offset: row * colCount + Math.max(col - 1, 0) };
49
+ return at(row, Math.max(col - 1, 0));
45
50
  }
46
51
  }
@@ -1,44 +1,40 @@
1
1
  /**
2
- * Editor default theme, in two tiers (consumer-guide.md § Theming). Host-chrome tokens
3
- * default behind the opt-in `.aragonite-editor-theme` class ALONE, so a themed host's own
4
- * cascade reaches the editor unbridged (G4.6d); editor-owned tokens — and the host-family
5
- * names a host vocabulary does not carry — default on `.editor` too. `:where()` keeps
6
- * specificity at 0 so `.editor { --x: … }` wins. Light keys on `data-editor-theme='light'`.
2
+ * The editor's default theme, in two tiers (consumer-guide.md § Theming). Host-chrome tokens
3
+ * default only behind the opt-in `.aragonite-editor-theme` class, so a themed host's own cascade
4
+ * reaches the editor with nothing in between (G4.6d); editor-owned tokens, and the host-family
5
+ * ones a host theme rarely names, default on `.editor` too. `:where()` holds specificity at 0 so
6
+ * `.editor { --x: … }` wins, and the light theme keys on `data-editor-theme='light'`.
7
7
  */
8
8
 
9
- /* ── Host-chrome tier: the consumer's vocabulary, defaults behind the class ── */
9
+ /* ── Host-chrome tokens: the consumer's names, defaults behind the class ── */
10
10
 
11
11
  :where(.aragonite-editor-theme) {
12
- /* Two faces, because they answer different questions. `--font-editor` is the SURFACE
13
- face — prose, headings, markers — and a host may legitimately set it proportional.
14
- `--font-code` is what must stay monospace whatever that choice is: code blocks, code
15
- spans, raw HTML, revealed source. Defaulted to the same stack, so a consumer that
16
- never names the second one sees exactly what it saw before. */
12
+ /* `--font-editor` is the text's own face and a host may set it proportional; `--font-code` is
13
+ what stays monospace whatever that choice (code, raw HTML, revealed source). */
17
14
  --font-editor: 'Cascadia Code', 'Cascadia Mono', 'Consolas', ui-monospace, monospace;
18
15
  --font-code: 'Cascadia Code', 'Cascadia Mono', 'Consolas', ui-monospace, monospace;
19
16
  /* The menus' and popovers' face: the host's own UI font where it names one. */
20
17
  --font-ui: 'Inter', system-ui, sans-serif;
21
18
  /* Type-scale root: headings, code and markers are all `em`-relative, so one override
22
- scales the surface. A themed host sets it on any ancestor instead. */
19
+ scales the whole editor. A themed host sets it on any ancestor instead. */
23
20
  --editor-font-size: 1rem;
24
21
 
25
- /* Corner radii by role: small controls (buttons, inputs, chips) and elevated surfaces
26
- (overlays, popovers). Chrome whose corner is neither keeps its own literal. */
22
+ /* Corner radii by role: small controls (buttons, inputs, chips) and raised surfaces
23
+ (overlays, popovers). A part whose corner is neither keeps its own value. */
27
24
  --radius-ui: 4px;
28
25
  --radius-surface: 8px;
29
26
 
30
- /* The page ground, which the menus and the image toolbar paint on. */
27
+ /* The page background the menus and the image toolbar paint on. */
31
28
  --color-bg: #2c2c2a;
32
29
  --color-surface: #1a1a19;
33
30
  --color-text-secondary: #cfcfca;
34
31
  --color-text-primary: #e8e8e5;
35
32
  --color-border: #3e3e3b;
36
- --color-ui-muted: #8f8f89;
33
+ --color-ui-muted: #93938d;
37
34
  --color-ui-dulled: #a3a39d;
38
35
  --color-accent: #567b67;
39
- /* Base the selection, search-match and reorder washes derive from, so one declaration
40
- moves all of them; the washes themselves stay editor-owned. Tracking the accent means
41
- a host that recolors one recolors all four. */
36
+ /* The base the selection, search-match and reorder tints derive from, following the accent,
37
+ so one declaration recolors them all; the tints themselves stay editor-owned. */
42
38
  --color-selection: var(--color-accent, #567b67);
43
39
  --color-error: #ff5f57;
44
40
  }
@@ -49,29 +45,32 @@
49
45
  --color-text-secondary: #4a4a45;
50
46
  --color-text-primary: #2a2a27;
51
47
  --color-border: #c9c7c0;
52
- --color-ui-muted: #83837b;
53
- --color-ui-dulled: #71716a;
48
+ --color-ui-muted: #62625c;
49
+ --color-ui-dulled: #5c5c56;
54
50
  --color-accent: #567b67;
55
51
  --color-selection: var(--color-accent, #567b67);
56
52
  --color-error: #d03025;
57
53
  }
58
54
 
59
- /* ── Editor-owned tier: defaults on `.editor`, so they hold with or without the class ── */
55
+ /* ── Editor-owned tokens: defaults on `.editor`, so they hold with or without the class ── */
60
56
 
61
57
  :where(.editor, .aragonite-editor-theme) {
62
- /* Host-family surfaces a host theme rarely names, so the editor supplies both modes
63
- rather than falling back to a fixed veil over the host's palette. */
58
+ /* Host-family backgrounds a host theme rarely names, so the editor supplies both modes
59
+ rather than falling back to one fixed tint over the host's palette. */
64
60
  --color-bg-secondary: rgba(128, 128, 128, 0.12);
65
61
  --color-bg-elevated: #2a2c33;
66
62
  --color-bg-muted: #2a2a2a;
67
63
  --color-text-muted: #aaaaaa;
68
- /* Hover veil over an ALREADY-elevated surface, so it cannot reuse
69
- --color-bg-secondary, which is measured against the base bg. */
64
+ /* Hover tint over a surface that is already raised, so it cannot reuse
65
+ --color-bg-secondary, which is measured against the page background. */
70
66
  --color-ui-faint: rgba(255, 255, 255, 0.07);
71
67
 
72
- /* Markdown syntax override points, deliberately neutral so the default rendering carries no
73
- extra palette. Mode-independent: the chrome tokens they chain to carry the light/dark
74
- split. */
68
+ /* One radius for a picture, the crop frame that clips it and the selection ring on the
69
+ overlay above it: half the surface radius, enough to soften a photo without a card look. */
70
+ --md-image-radius: 4px;
71
+
72
+ /* Markdown syntax override points, neutral so the default rendering adds no palette of its own;
73
+ most chain to a host-chrome token that holds the light and dark split. */
75
74
  --syntax-heading: currentColor;
76
75
  --syntax-emphasis: currentColor;
77
76
  --syntax-link: var(--color-accent, #567b67);
@@ -80,14 +79,15 @@
80
79
  --syntax-code: currentColor;
81
80
  --syntax-comment: currentColor;
82
81
  --syntax-list: currentColor;
83
- /* The rendered rule's colour, and its ONLY consumer. A divider separates rather than
84
- announces, so it defaults to the border token; mid-grey at this weight competed with
85
- the text either side. A host that wants a louder rule still names this token. */
82
+ /* The rendered horizontal rule's colour: a rule separates rather than announces, so it
83
+ defaults to the border token. */
86
84
  --syntax-separator: var(--color-border, #3e3e3b);
87
85
  --syntax-task: currentColor;
88
- --syntax-task-done: rgba(128, 128, 128, 0.7);
86
+ --syntax-task-done: #8f8f89;
87
+ --syntax-task-checked: var(--color-text-primary, currentColor);
88
+ --syntax-task-checked-tick: var(--color-bg, #2c2c2a);
89
89
 
90
- /* Code block syntax highlighting — monokai-inspired palette */
90
+ /* Code block syntax highlighting: a monokai-inspired palette. */
91
91
  --code-tok-keyword: #ff79a8;
92
92
  --code-tok-string: #e6db74;
93
93
  --code-tok-number: #ae81ff;
@@ -109,28 +109,34 @@
109
109
  --code-tok-link: #66d9ef;
110
110
  --code-tok-unknown: inherit;
111
111
 
112
- /* Presentational tokens (mode-independent). */
113
- /* Washes over the host-declarable selection base, alpha apart, so a host that names one
114
- base moves the selection, the search matches and the reorder chrome together. */
115
- --selection-overlay-bg: color-mix(in srgb, var(--color-selection, #6496ff) 30%, transparent);
116
- --search-match-bg: color-mix(in srgb, var(--color-selection, #6496ff) 22%, transparent);
112
+ /* Tints over the selection base a host can declare, differing only in alpha, so naming that
113
+ one base moves the selection, the search matches and the reorder highlight together. */
114
+ --selection-overlay-bg: rgba(100, 150, 255, 0.3);
115
+ --search-match-bg: rgba(100, 150, 255, 0.22);
117
116
  /* Painted on top of the match text, so it must keep an alpha channel or it hides it. */
118
117
  --search-match-active-bg: rgba(216, 166, 87, 0.55);
119
- --md-ref-label-color: rgba(128, 128, 128, 0.45);
120
- --md-link-blocked-color: rgba(128, 128, 128, 0.7);
118
+ /* Greys for text set apart as metadata or inert: the faintest that clear AA, set per mode. */
119
+ --md-ref-label-color: #8f8f89;
120
+ --md-link-blocked-color: #8f8f89;
121
121
  --md-unresolved-color: #c0392b;
122
122
  --md-unresolved-image-bg: rgba(192, 57, 43, 0.08);
123
- --md-raw-html-color: rgba(120, 120, 120, 0.85);
123
+ --md-raw-html-color: #8f8f89;
124
124
  --md-marker-hover-bg: rgba(128, 128, 128, 0.15);
125
+ /* The hanging indent a task item reserves for its marker: the width the visible `- [ ] `
126
+ draws, which editor.css overrides where the box is drawn instead. */
127
+ --md-task-indent: 2.1em;
125
128
  --md-reorder-indicator: var(--color-selection, #6496ff);
126
- /* Wash on the container being reordered within during a nested drag. Tinted with the reorder
127
- accent, not neutral grey, so the shift stays perceptible for low-contrast vision. */
128
- --reorder-scope-bg: color-mix(in srgb, var(--color-selection, #6496ff) 14%, transparent);
129
+ /* The name a typed kind change leaves on its block, and how long it stays before it fades. */
130
+ --md-kind-cue-color: var(--color-ui-muted, #8f8f89);
131
+ --md-kind-cue-duration: 1.2s;
132
+ /* Tint on the container a nested drag is reordering inside. It uses the reorder accent rather
133
+ than neutral grey, so the change stays visible to low-contrast vision. */
134
+ --reorder-scope-bg: rgba(100, 150, 255, 0.14);
135
+ /* The light theme sets its own dim. */
129
136
  --syntax-marker-dim: 0.65;
130
137
 
131
- /* Menu/popout elevation, per mode: a shadow tuned for a near-black surface is invisible
132
- over a white one. Editor-owned rather than host-family, since a host palette names
133
- colors, not elevation. */
138
+ /* Menu elevation, per mode, since a shadow tuned for a near-black surface vanishes over a white
139
+ one; editor-owned because a host palette names colors, not elevation. */
134
140
  --menu-shadow: 0 12px 32px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.35);
135
141
  /* The rest of the host app's menu family, so a menu here is the host's menu to the pixel. */
136
142
  --menu-item-hover: rgba(255, 255, 255, 0.07);
@@ -138,11 +144,21 @@
138
144
  --menu-scrollbar-thumb: rgba(255, 255, 255, 0.18);
139
145
  --menu-scrollbar-thumb-hover: rgba(255, 255, 255, 0.3);
140
146
 
141
- /* Placeholder tint behind off-window content (VR-8), so a spacer that outruns the
142
- window recompute reads as "loading" rather than a white tear. */
147
+ /* Tint behind the blocks windowing has not mounted, so a spacer that outruns the recompute
148
+ reads as "loading" rather than a white tear (VR-8). */
143
149
  --vr-spacer-bg: rgba(255, 255, 255, 0.025);
144
150
  }
145
151
 
152
+ /* The tints follow a host's `--color-selection` where the browser has `color-mix`; the fixed
153
+ values above are the default base's tints for a browser without it. */
154
+ @supports (color: color-mix(in srgb, red, blue)) {
155
+ :where(.editor, .aragonite-editor-theme) {
156
+ --selection-overlay-bg: color-mix(in srgb, var(--color-selection, #6496ff) 30%, transparent);
157
+ --search-match-bg: color-mix(in srgb, var(--color-selection, #6496ff) 22%, transparent);
158
+ --reorder-scope-bg: color-mix(in srgb, var(--color-selection, #6496ff) 14%, transparent);
159
+ }
160
+ }
161
+
146
162
  :where(.editor, .aragonite-editor-theme)[data-editor-theme='light'] {
147
163
  --color-bg-secondary: rgba(0, 0, 0, 0.035);
148
164
  --color-bg-elevated: #f5f6f8;
@@ -155,9 +171,15 @@
155
171
  --menu-scrollbar-thumb: rgba(0, 0, 0, 0.2);
156
172
  --menu-scrollbar-thumb-hover: rgba(0, 0, 0, 0.32);
157
173
 
158
- /* --syntax-* tokens are mode-independent — no light overrides. */
174
+ /* At the dark theme's 0.65 marker dim, light prose falls under AA on the light surface. */
175
+ --syntax-marker-dim: 0.68;
176
+ /* Done and inert text greys: the faintest that clear AA on the light surface and fence. */
177
+ --syntax-task-done: #666660;
178
+ --md-ref-label-color: #666660;
179
+ --md-link-blocked-color: #666660;
180
+ --md-raw-html-color: #666660;
159
181
 
160
- /* Code block syntax highlighting — GitHub Light-inspired palette */
182
+ /* Code block syntax highlighting: a GitHub Light-inspired palette. */
161
183
  --code-tok-keyword: #c1202b;
162
184
  --code-tok-string: #0a3069;
163
185
  --code-tok-number: #0550ae;
@@ -175,6 +197,6 @@
175
197
  --code-tok-heading: #0550ae;
176
198
  --code-tok-link: #0550ae;
177
199
 
178
- /* Dark tint for a light bg (VR-8). */
200
+ /* Dark tint for a light background (VR-8). */
179
201
  --vr-spacer-bg: rgba(0, 0, 0, 0.03);
180
202
  }