@voithos-labs/aragonite 0.10.1

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 (900) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +365 -0
  3. package/THIRD-PARTY-NOTICES.md +102 -0
  4. package/dist/a11y-strings.d.ts +46 -0
  5. package/dist/a11y-strings.js +62 -0
  6. package/dist/action-contracts.d.ts +301 -0
  7. package/dist/action-contracts.js +5 -0
  8. package/dist/active-editor.d.ts +16 -0
  9. package/dist/active-editor.js +67 -0
  10. package/dist/ambient/ambient-cursor.d.ts +41 -0
  11. package/dist/ambient/ambient-cursor.js +120 -0
  12. package/dist/ambient/ambient-dom.d.ts +9 -0
  13. package/dist/ambient/ambient-dom.js +102 -0
  14. package/dist/assert.d.ts +6 -0
  15. package/dist/assert.js +17 -0
  16. package/dist/block-component.d.ts +274 -0
  17. package/dist/block-component.js +43 -0
  18. package/dist/block-id.d.ts +14 -0
  19. package/dist/block-id.js +34 -0
  20. package/dist/bounded-memo.d.ts +14 -0
  21. package/dist/bounded-memo.js +32 -0
  22. package/dist/components/BlockDragHandle.svelte +66 -0
  23. package/dist/components/BlockDragHandle.svelte.d.ts +18 -0
  24. package/dist/components/BlockHost.svelte +328 -0
  25. package/dist/components/BlockHost.svelte.d.ts +15 -0
  26. package/dist/components/BlockList.svelte +114 -0
  27. package/dist/components/BlockList.svelte.d.ts +16 -0
  28. package/dist/components/DecorationOverlay.svelte +156 -0
  29. package/dist/components/DecorationOverlay.svelte.d.ts +14 -0
  30. package/dist/components/Editor.svelte +1849 -0
  31. package/dist/components/Editor.svelte.d.ts +49 -0
  32. package/dist/components/GapCaret.svelte +226 -0
  33. package/dist/components/GapCaret.svelte.d.ts +9 -0
  34. package/dist/components/SearchBar.svelte +243 -0
  35. package/dist/components/SearchBar.svelte.d.ts +7 -0
  36. package/dist/components/SelectionOverlay.svelte +171 -0
  37. package/dist/components/SelectionOverlay.svelte.d.ts +14 -0
  38. package/dist/components/block-content-selector.d.ts +12 -0
  39. package/dist/components/block-content-selector.js +12 -0
  40. package/dist/components/blocks/BlockquoteBlock.svelte +32 -0
  41. package/dist/components/blocks/BlockquoteBlock.svelte.d.ts +11 -0
  42. package/dist/components/blocks/ThematicBreakBlock.svelte +156 -0
  43. package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +17 -0
  44. package/dist/components/blocks/code/CodeBlock.svelte +726 -0
  45. package/dist/components/blocks/code/CodeBlock.svelte.d.ts +23 -0
  46. package/dist/components/blocks/code/CodeLanguageChip.svelte +127 -0
  47. package/dist/components/blocks/code/CodeLanguageChip.svelte.d.ts +14 -0
  48. package/dist/components/blocks/code/code-beforeinput.d.ts +30 -0
  49. package/dist/components/blocks/code/code-beforeinput.js +40 -0
  50. package/dist/components/blocks/code/code-bootstrap.d.ts +8 -0
  51. package/dist/components/blocks/code/code-bootstrap.js +54 -0
  52. package/dist/components/blocks/code/code-editing.d.ts +28 -0
  53. package/dist/components/blocks/code/code-editing.js +79 -0
  54. package/dist/components/blocks/code/code-enter.d.ts +22 -0
  55. package/dist/components/blocks/code/code-enter.js +19 -0
  56. package/dist/components/blocks/code/code-fence-boundary.d.ts +77 -0
  57. package/dist/components/blocks/code/code-fence-boundary.js +169 -0
  58. package/dist/components/blocks/code/code-fence-exit.d.ts +24 -0
  59. package/dist/components/blocks/code/code-fence-exit.js +36 -0
  60. package/dist/components/blocks/code/code-indent.d.ts +14 -0
  61. package/dist/components/blocks/code/code-indent.js +87 -0
  62. package/dist/components/blocks/code/code-languages.d.ts +15 -0
  63. package/dist/components/blocks/code/code-languages.js +30 -0
  64. package/dist/components/blocks/code/code-paste-surface.d.ts +6 -0
  65. package/dist/components/blocks/code/code-paste-surface.js +29 -0
  66. package/dist/components/blocks/code/code-paste.d.ts +24 -0
  67. package/dist/components/blocks/code/code-paste.js +21 -0
  68. package/dist/components/blocks/code/code-renderer.d.ts +18 -0
  69. package/dist/components/blocks/code/code-renderer.js +249 -0
  70. package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +51 -0
  71. package/dist/components/blocks/directive/DirectiveContainerBlock.svelte.d.ts +11 -0
  72. package/dist/components/blocks/directive/activate-directives.d.ts +7 -0
  73. package/dist/components/blocks/directive/activate-directives.js +23 -0
  74. package/dist/components/blocks/editable-leaf.d.ts +126 -0
  75. package/dist/components/blocks/editable-leaf.js +410 -0
  76. package/dist/components/blocks/editable-surface.d.ts +209 -0
  77. package/dist/components/blocks/editable-surface.js +331 -0
  78. package/dist/components/blocks/list/ListBlock.svelte +162 -0
  79. package/dist/components/blocks/list/ListBlock.svelte.d.ts +11 -0
  80. package/dist/components/blocks/list/ListItemBlock.svelte +324 -0
  81. package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +14 -0
  82. package/dist/components/blocks/list/task-checkbox.d.ts +3 -0
  83. package/dist/components/blocks/list/task-checkbox.js +33 -0
  84. package/dist/components/blocks/plain-text-backend.d.ts +21 -0
  85. package/dist/components/blocks/plain-text-backend.js +47 -0
  86. package/dist/components/blocks/surface-wiring.svelte.d.ts +18 -0
  87. package/dist/components/blocks/surface-wiring.svelte.js +68 -0
  88. package/dist/components/blocks/table/TableActionMenu.svelte +267 -0
  89. package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +15 -0
  90. package/dist/components/blocks/table/TableBlock.svelte +765 -0
  91. package/dist/components/blocks/table/TableBlock.svelte.d.ts +30 -0
  92. package/dist/components/blocks/table/TableCellBlock.svelte +1075 -0
  93. package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +30 -0
  94. package/dist/components/blocks/table/TableGrip.svelte +91 -0
  95. package/dist/components/blocks/table/TableGrip.svelte.d.ts +8 -0
  96. package/dist/components/blocks/table/TableRowBlock.svelte +233 -0
  97. package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +34 -0
  98. package/dist/components/blocks/table/cell-clipboard.d.ts +23 -0
  99. package/dist/components/blocks/table/cell-clipboard.js +34 -0
  100. package/dist/components/blocks/table/cell-keydown-plan.d.ts +37 -0
  101. package/dist/components/blocks/table/cell-keydown-plan.js +66 -0
  102. package/dist/components/blocks/table/cell-pointer.d.ts +58 -0
  103. package/dist/components/blocks/table/cell-pointer.js +153 -0
  104. package/dist/components/blocks/table/cell-render.d.ts +51 -0
  105. package/dist/components/blocks/table/cell-render.js +98 -0
  106. package/dist/components/blocks/table/cell-table-commands.d.ts +12 -0
  107. package/dist/components/blocks/table/cell-table-commands.js +21 -0
  108. package/dist/components/blocks/table/cell-x-mapping.d.ts +6 -0
  109. package/dist/components/blocks/table/cell-x-mapping.js +16 -0
  110. package/dist/components/blocks/table/selected-cells.d.ts +19 -0
  111. package/dist/components/blocks/table/selected-cells.js +35 -0
  112. package/dist/components/blocks/table/table-caret-at-point.d.ts +8 -0
  113. package/dist/components/blocks/table/table-caret-at-point.js +35 -0
  114. package/dist/components/blocks/table/table-cell-paste.d.ts +16 -0
  115. package/dist/components/blocks/table/table-cell-paste.js +75 -0
  116. package/dist/components/blocks/table/table-drag-hit-test.d.ts +5 -0
  117. package/dist/components/blocks/table/table-drag-hit-test.js +20 -0
  118. package/dist/components/blocks/table/table-drop-target.d.ts +1 -0
  119. package/dist/components/blocks/table/table-drop-target.js +16 -0
  120. package/dist/components/blocks/table/table-menu-model.d.ts +52 -0
  121. package/dist/components/blocks/table/table-menu-model.js +78 -0
  122. package/dist/components/blocks/table/table-navigation.d.ts +8 -0
  123. package/dist/components/blocks/table/table-navigation.js +22 -0
  124. package/dist/components/blocks/table/table-reorder-drag.d.ts +78 -0
  125. package/dist/components/blocks/table/table-reorder-drag.js +97 -0
  126. package/dist/components/blocks/text/TextEditableBlock.svelte +1012 -0
  127. package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +33 -0
  128. package/dist/components/blocks/text/click-snap-guard.d.ts +8 -0
  129. package/dist/components/blocks/text/click-snap-guard.js +19 -0
  130. package/dist/components/blocks/text/composition-seat.d.ts +50 -0
  131. package/dist/components/blocks/text/composition-seat.js +65 -0
  132. package/dist/components/blocks/text/construct-edge-delete.d.ts +47 -0
  133. package/dist/components/blocks/text/construct-edge-delete.js +164 -0
  134. package/dist/components/blocks/text/construct-reveal.d.ts +39 -0
  135. package/dist/components/blocks/text/construct-reveal.js +164 -0
  136. package/dist/components/blocks/text/edge-policy-dispatch.d.ts +91 -0
  137. package/dist/components/blocks/text/edge-policy-dispatch.js +457 -0
  138. package/dist/components/blocks/text/edge-seat.d.ts +42 -0
  139. package/dist/components/blocks/text/edge-seat.js +197 -0
  140. package/dist/components/blocks/text/hidden-suffix.d.ts +10 -0
  141. package/dist/components/blocks/text/hidden-suffix.js +15 -0
  142. package/dist/components/blocks/text/link-at-point.d.ts +33 -0
  143. package/dist/components/blocks/text/link-at-point.js +47 -0
  144. package/dist/components/blocks/text/link-source-bytes.d.ts +37 -0
  145. package/dist/components/blocks/text/link-source-bytes.js +161 -0
  146. package/dist/components/blocks/text/live-join-seam.d.ts +15 -0
  147. package/dist/components/blocks/text/live-join-seam.js +327 -0
  148. package/dist/components/blocks/text/live-selection-edit.d.ts +68 -0
  149. package/dist/components/blocks/text/live-selection-edit.js +120 -0
  150. package/dist/components/blocks/text/live-split-rebalance.d.ts +56 -0
  151. package/dist/components/blocks/text/live-split-rebalance.js +239 -0
  152. package/dist/components/blocks/text/marker-completion.d.ts +18 -0
  153. package/dist/components/blocks/text/marker-completion.js +29 -0
  154. package/dist/components/blocks/text/pending-mark-insert.d.ts +37 -0
  155. package/dist/components/blocks/text/pending-mark-insert.js +188 -0
  156. package/dist/components/blocks/text/screen-diff.d.ts +20 -0
  157. package/dist/components/blocks/text/screen-diff.js +39 -0
  158. package/dist/components/blocks/text/text-clipboard.d.ts +70 -0
  159. package/dist/components/blocks/text/text-clipboard.js +131 -0
  160. package/dist/components/blocks/text/text-keydown.d.ts +39 -0
  161. package/dist/components/blocks/text/text-keydown.js +80 -0
  162. package/dist/components/blocks/text/text-render.d.ts +67 -0
  163. package/dist/components/blocks/text/text-render.js +215 -0
  164. package/dist/components/blocks/text/widget-adjacency.d.ts +30 -0
  165. package/dist/components/blocks/text/widget-adjacency.js +68 -0
  166. package/dist/components/blocks/text/widget-interaction.d.ts +90 -0
  167. package/dist/components/blocks/text/widget-interaction.js +591 -0
  168. package/dist/components/blocks/widget-portal.d.ts +54 -0
  169. package/dist/components/blocks/widget-portal.js +136 -0
  170. package/dist/components/built-in-blocks.d.ts +7 -0
  171. package/dist/components/built-in-blocks.js +77 -0
  172. package/dist/components/editor-root-clipboard.d.ts +29 -0
  173. package/dist/components/editor-root-clipboard.js +105 -0
  174. package/dist/components/editor-root-keydown.d.ts +47 -0
  175. package/dist/components/editor-root-keydown.js +88 -0
  176. package/dist/components/editor-root-listeners.d.ts +44 -0
  177. package/dist/components/editor-root-listeners.js +112 -0
  178. package/dist/components/image/ImageOverlayHost.svelte +115 -0
  179. package/dist/components/image/ImageOverlayHost.svelte.d.ts +20 -0
  180. package/dist/components/image/ImageProperties.svelte +153 -0
  181. package/dist/components/image/ImageProperties.svelte.d.ts +14 -0
  182. package/dist/components/image/ImageResizeHandles.svelte +188 -0
  183. package/dist/components/image/ImageResizeHandles.svelte.d.ts +10 -0
  184. package/dist/components/image/image-edit-commit.d.ts +38 -0
  185. package/dist/components/image/image-edit-commit.js +159 -0
  186. package/dist/components/image/image-resize.d.ts +11 -0
  187. package/dist/components/image/image-resize.js +38 -0
  188. package/dist/components/image/image-source-bytes.d.ts +15 -0
  189. package/dist/components/image/image-source-bytes.js +73 -0
  190. package/dist/components/image/image-widget-editing.d.ts +7 -0
  191. package/dist/components/image/image-widget-editing.js +41 -0
  192. package/dist/components/image/widget-dom.d.ts +11 -0
  193. package/dist/components/image/widget-dom.js +110 -0
  194. package/dist/components/image/widget-selection-state.svelte.d.ts +18 -0
  195. package/dist/components/image/widget-selection-state.svelte.js +26 -0
  196. package/dist/components/link-card/LinkCard.svelte +190 -0
  197. package/dist/components/link-card/LinkCard.svelte.d.ts +18 -0
  198. package/dist/components/link-card/LinkCardHost.svelte +181 -0
  199. package/dist/components/link-card/LinkCardHost.svelte.d.ts +25 -0
  200. package/dist/components/link-card/link-card-commit.d.ts +50 -0
  201. package/dist/components/link-card/link-card-commit.js +134 -0
  202. package/dist/components/link-card/link-card-entry.d.ts +39 -0
  203. package/dist/components/link-card/link-card-entry.js +51 -0
  204. package/dist/components/link-card/link-card-state.svelte.d.ts +44 -0
  205. package/dist/components/link-card/link-card-state.svelte.js +46 -0
  206. package/dist/components/lrd-map-gate.d.ts +18 -0
  207. package/dist/components/lrd-map-gate.js +22 -0
  208. package/dist/components/paste-image-arm.d.ts +29 -0
  209. package/dist/components/paste-image-arm.js +61 -0
  210. package/dist/components/portal.d.ts +11 -0
  211. package/dist/components/portal.js +29 -0
  212. package/dist/core/directive/activate.d.ts +8 -0
  213. package/dist/core/directive/activate.js +25 -0
  214. package/dist/core/directive/container-opener.d.ts +7 -0
  215. package/dist/core/directive/container-opener.js +162 -0
  216. package/dist/core/directive/grammar.d.ts +50 -0
  217. package/dist/core/directive/grammar.js +88 -0
  218. package/dist/core/directive/kinds.d.ts +31 -0
  219. package/dist/core/directive/kinds.js +137 -0
  220. package/dist/core/directive/registry.d.ts +39 -0
  221. package/dist/core/directive/registry.js +49 -0
  222. package/dist/core/directive/text-recognizer.d.ts +8 -0
  223. package/dist/core/directive/text-recognizer.js +87 -0
  224. package/dist/core/escapable.d.ts +6 -0
  225. package/dist/core/escapable.js +6 -0
  226. package/dist/core/inline/backticks.d.ts +16 -0
  227. package/dist/core/inline/backticks.js +62 -0
  228. package/dist/core/inline/character-refs.d.ts +7 -0
  229. package/dist/core/inline/character-refs.js +70 -0
  230. package/dist/core/inline/destination-bytes.d.ts +7 -0
  231. package/dist/core/inline/destination-bytes.js +14 -0
  232. package/dist/core/inline/entity-widget.d.ts +11 -0
  233. package/dist/core/inline/entity-widget.js +21 -0
  234. package/dist/core/inline/format-toggle.d.ts +50 -0
  235. package/dist/core/inline/format-toggle.js +533 -0
  236. package/dist/core/inline/html-entities.d.ts +8 -0
  237. package/dist/core/inline/html-entities.js +2134 -0
  238. package/dist/core/inline/html-tag-grammar.d.ts +16 -0
  239. package/dist/core/inline/html-tag-grammar.js +58 -0
  240. package/dist/core/inline/image-dimensions.d.ts +6 -0
  241. package/dist/core/inline/image-dimensions.js +42 -0
  242. package/dist/core/inline/index.d.ts +42 -0
  243. package/dist/core/inline/index.js +77 -0
  244. package/dist/core/inline/inline-cache.d.ts +20 -0
  245. package/dist/core/inline/inline-cache.js +28 -0
  246. package/dist/core/inline/inline-widgets.d.ts +124 -0
  247. package/dist/core/inline/inline-widgets.js +131 -0
  248. package/dist/core/inline/link-reference-resolver.d.ts +21 -0
  249. package/dist/core/inline/link-reference-resolver.js +46 -0
  250. package/dist/core/inline/raw-html-widget.d.ts +10 -0
  251. package/dist/core/inline/raw-html-widget.js +22 -0
  252. package/dist/core/inline/scan/autolinks.d.ts +23 -0
  253. package/dist/core/inline/scan/autolinks.js +354 -0
  254. package/dist/core/inline/scan/brackets.d.ts +11 -0
  255. package/dist/core/inline/scan/brackets.js +284 -0
  256. package/dist/core/inline/scan/code-spans.d.ts +7 -0
  257. package/dist/core/inline/scan/code-spans.js +27 -0
  258. package/dist/core/inline/scan/emphasis.d.ts +10 -0
  259. package/dist/core/inline/scan/emphasis.js +276 -0
  260. package/dist/core/inline/scan/index.d.ts +7 -0
  261. package/dist/core/inline/scan/index.js +176 -0
  262. package/dist/core/inline/scan/plugin-syntax.d.ts +62 -0
  263. package/dist/core/inline/scan/plugin-syntax.js +150 -0
  264. package/dist/core/inline/scan/scan-state.d.ts +47 -0
  265. package/dist/core/inline/scan/scan-state.js +48 -0
  266. package/dist/core/inline/scan/simple-nodes.d.ts +14 -0
  267. package/dist/core/inline/scan/simple-nodes.js +53 -0
  268. package/dist/core/inline/scan/url.d.ts +12 -0
  269. package/dist/core/inline/scan/url.js +82 -0
  270. package/dist/core/inline/transparency.d.ts +8 -0
  271. package/dist/core/inline/transparency.js +39 -0
  272. package/dist/core/inline/visibility.d.ts +81 -0
  273. package/dist/core/inline/visibility.js +144 -0
  274. package/dist/core/inline/walk.d.ts +14 -0
  275. package/dist/core/inline/walk.js +29 -0
  276. package/dist/core/inline-render.d.ts +48 -0
  277. package/dist/core/inline-render.js +322 -0
  278. package/dist/core/lines.d.ts +44 -0
  279. package/dist/core/lines.js +91 -0
  280. package/dist/core/node-views.d.ts +22 -0
  281. package/dist/core/node-views.js +8 -0
  282. package/dist/core/nodes.d.ts +297 -0
  283. package/dist/core/nodes.js +83 -0
  284. package/dist/core/parser.d.ts +68 -0
  285. package/dist/core/parser.js +189 -0
  286. package/dist/core/parsers/blockquote.d.ts +17 -0
  287. package/dist/core/parsers/blockquote.js +69 -0
  288. package/dist/core/parsers/built-in-openers.d.ts +8 -0
  289. package/dist/core/parsers/built-in-openers.js +124 -0
  290. package/dist/core/parsers/fence-syntax.d.ts +24 -0
  291. package/dist/core/parsers/fence-syntax.js +44 -0
  292. package/dist/core/parsers/fenced-code.d.ts +7 -0
  293. package/dist/core/parsers/fenced-code.js +29 -0
  294. package/dist/core/parsers/heading.d.ts +3 -0
  295. package/dist/core/parsers/heading.js +6 -0
  296. package/dist/core/parsers/html-block.d.ts +17 -0
  297. package/dist/core/parsers/html-block.js +94 -0
  298. package/dist/core/parsers/indented-code.d.ts +4 -0
  299. package/dist/core/parsers/indented-code.js +41 -0
  300. package/dist/core/parsers/link-reference.d.ts +7 -0
  301. package/dist/core/parsers/link-reference.js +152 -0
  302. package/dist/core/parsers/list.d.ts +19 -0
  303. package/dist/core/parsers/list.js +133 -0
  304. package/dist/core/parsers/paragraph.d.ts +10 -0
  305. package/dist/core/parsers/paragraph.js +42 -0
  306. package/dist/core/parsers/table-completion.d.ts +13 -0
  307. package/dist/core/parsers/table-completion.js +48 -0
  308. package/dist/core/parsers/table.d.ts +18 -0
  309. package/dist/core/parsers/table.js +110 -0
  310. package/dist/core/parsers/thematic-break.d.ts +1 -0
  311. package/dist/core/parsers/thematic-break.js +19 -0
  312. package/dist/core/serializer.d.ts +15 -0
  313. package/dist/core/serializer.js +11 -0
  314. package/dist/core/terminator-escalation.d.ts +8 -0
  315. package/dist/core/terminator-escalation.js +18 -0
  316. package/dist/core/url-policy.d.ts +14 -0
  317. package/dist/core/url-policy.js +44 -0
  318. package/dist/cursor/content-offsets.d.ts +29 -0
  319. package/dist/cursor/content-offsets.js +151 -0
  320. package/dist/cursor/coordinate-spaces.d.ts +65 -0
  321. package/dist/cursor/coordinate-spaces.js +66 -0
  322. package/dist/cursor/dom-walk.d.ts +18 -0
  323. package/dist/cursor/dom-walk.js +31 -0
  324. package/dist/cursor/edge-affinity.d.ts +44 -0
  325. package/dist/cursor/edge-affinity.js +60 -0
  326. package/dist/cursor/focused-caret.d.ts +10 -0
  327. package/dist/cursor/focused-caret.js +24 -0
  328. package/dist/cursor/height-model.d.ts +24 -0
  329. package/dist/cursor/height-model.js +72 -0
  330. package/dist/cursor/height-oracle.d.ts +24 -0
  331. package/dist/cursor/height-oracle.js +94 -0
  332. package/dist/cursor/overlay-rects.d.ts +8 -0
  333. package/dist/cursor/overlay-rects.js +19 -0
  334. package/dist/cursor/overlay-remeasure.d.ts +17 -0
  335. package/dist/cursor/overlay-remeasure.js +31 -0
  336. package/dist/cursor/pending-marks.d.ts +24 -0
  337. package/dist/cursor/pending-marks.js +36 -0
  338. package/dist/cursor/point-offset.d.ts +21 -0
  339. package/dist/cursor/point-offset.js +48 -0
  340. package/dist/cursor/reveal-anchor.d.ts +30 -0
  341. package/dist/cursor/reveal-anchor.js +31 -0
  342. package/dist/cursor/reveal-source.d.ts +35 -0
  343. package/dist/cursor/reveal-source.js +51 -0
  344. package/dist/cursor/scroll-ancestors.d.ts +28 -0
  345. package/dist/cursor/scroll-ancestors.js +89 -0
  346. package/dist/cursor/scrollport.d.ts +20 -0
  347. package/dist/cursor/scrollport.js +41 -0
  348. package/dist/cursor/sticky-column.d.ts +35 -0
  349. package/dist/cursor/sticky-column.js +64 -0
  350. package/dist/cursor/sticky-measure.d.ts +16 -0
  351. package/dist/cursor/sticky-measure.js +97 -0
  352. package/dist/cursor/typography-estimates.d.ts +21 -0
  353. package/dist/cursor/typography-estimates.js +21 -0
  354. package/dist/cursor/visual-lines.d.ts +25 -0
  355. package/dist/cursor/visual-lines.js +125 -0
  356. package/dist/cursor/widget-offset.d.ts +132 -0
  357. package/dist/cursor/widget-offset.js +543 -0
  358. package/dist/debug/diagnostics-report.d.ts +17 -0
  359. package/dist/debug/diagnostics-report.js +25 -0
  360. package/dist/debug/dump-tree.d.ts +6 -0
  361. package/dist/debug/dump-tree.js +114 -0
  362. package/dist/debug/inspect.d.ts +19 -0
  363. package/dist/debug/inspect.js +116 -0
  364. package/dist/debug/interaction-trace.d.ts +39 -0
  365. package/dist/debug/interaction-trace.js +105 -0
  366. package/dist/debug/operations-log.d.ts +14 -0
  367. package/dist/debug/operations-log.js +30 -0
  368. package/dist/decorations/buckets.d.ts +40 -0
  369. package/dist/decorations/buckets.js +87 -0
  370. package/dist/decorations/decoration-state.svelte.d.ts +20 -0
  371. package/dist/decorations/decoration-state.svelte.js +195 -0
  372. package/dist/decorations/island-dom.d.ts +35 -0
  373. package/dist/decorations/island-dom.js +148 -0
  374. package/dist/decorations/reserved-attrs.d.ts +12 -0
  375. package/dist/decorations/reserved-attrs.js +47 -0
  376. package/dist/decorations/types.d.ts +68 -0
  377. package/dist/decorations/types.js +5 -0
  378. package/dist/decorations/widget-dom.d.ts +15 -0
  379. package/dist/decorations/widget-dom.js +35 -0
  380. package/dist/dev-warn.d.ts +13 -0
  381. package/dist/dev-warn.js +28 -0
  382. package/dist/editor-actions/ancestry-folds.d.ts +32 -0
  383. package/dist/editor-actions/ancestry-folds.js +106 -0
  384. package/dist/editor-actions/block-edit-core.d.ts +29 -0
  385. package/dist/editor-actions/block-edit-core.js +277 -0
  386. package/dist/editor-actions/block-edit-scope.d.ts +79 -0
  387. package/dist/editor-actions/block-edit-scope.js +76 -0
  388. package/dist/editor-actions/block-edit.d.ts +8 -0
  389. package/dist/editor-actions/block-edit.js +111 -0
  390. package/dist/editor-actions/commit/history.d.ts +9 -0
  391. package/dist/editor-actions/commit/history.js +77 -0
  392. package/dist/editor-actions/commit/text-batch.d.ts +34 -0
  393. package/dist/editor-actions/commit/text-batch.js +61 -0
  394. package/dist/editor-actions/commit/undo-controller.d.ts +7 -0
  395. package/dist/editor-actions/commit/undo-controller.js +570 -0
  396. package/dist/editor-actions/container-block-component.d.ts +85 -0
  397. package/dist/editor-actions/container-block-component.js +228 -0
  398. package/dist/editor-actions/container-edit.d.ts +7 -0
  399. package/dist/editor-actions/container-edit.js +49 -0
  400. package/dist/editor-actions/container-exit-overrides.d.ts +16 -0
  401. package/dist/editor-actions/container-exit-overrides.js +38 -0
  402. package/dist/editor-actions/deps.d.ts +60 -0
  403. package/dist/editor-actions/deps.js +1 -0
  404. package/dist/editor-actions/enter-completion.d.ts +25 -0
  405. package/dist/editor-actions/enter-completion.js +76 -0
  406. package/dist/editor-actions/focus/focus-dispatch.d.ts +36 -0
  407. package/dist/editor-actions/focus/focus-dispatch.js +106 -0
  408. package/dist/editor-actions/focus/focus-landing.d.ts +7 -0
  409. package/dist/editor-actions/focus/focus-landing.js +39 -0
  410. package/dist/editor-actions/focus/focus.d.ts +7 -0
  411. package/dist/editor-actions/focus/focus.js +74 -0
  412. package/dist/editor-actions/index.d.ts +15 -0
  413. package/dist/editor-actions/index.js +19 -0
  414. package/dist/editor-actions/inline-range-commit.d.ts +20 -0
  415. package/dist/editor-actions/inline-range-commit.js +63 -0
  416. package/dist/editor-actions/list-context.d.ts +25 -0
  417. package/dist/editor-actions/list-context.js +285 -0
  418. package/dist/editor-actions/list-overrides.d.ts +13 -0
  419. package/dist/editor-actions/list-overrides.js +26 -0
  420. package/dist/editor-actions/merge-fallback.d.ts +19 -0
  421. package/dist/editor-actions/merge-fallback.js +27 -0
  422. package/dist/editor-actions/nested/nested-actions.d.ts +65 -0
  423. package/dist/editor-actions/nested/nested-actions.js +59 -0
  424. package/dist/editor-actions/nested/nested-block-edit.d.ts +10 -0
  425. package/dist/editor-actions/nested/nested-block-edit.js +181 -0
  426. package/dist/editor-actions/nested/nested-focus.d.ts +9 -0
  427. package/dist/editor-actions/nested/nested-focus.js +30 -0
  428. package/dist/editor-actions/paste-coordinator.d.ts +4 -0
  429. package/dist/editor-actions/paste-coordinator.js +20 -0
  430. package/dist/editor-actions/plugin/chrome-leaf.d.ts +25 -0
  431. package/dist/editor-actions/plugin/chrome-leaf.js +80 -0
  432. package/dist/editor-actions/plugin/container.d.ts +137 -0
  433. package/dist/editor-actions/plugin/container.js +351 -0
  434. package/dist/editor-actions/plugin/directive-container.d.ts +13 -0
  435. package/dist/editor-actions/plugin/directive-container.js +31 -0
  436. package/dist/editor-actions/reorder-action.d.ts +17 -0
  437. package/dist/editor-actions/reorder-action.js +104 -0
  438. package/dist/editor-actions/reorder-drag.d.ts +34 -0
  439. package/dist/editor-actions/reorder-drag.js +152 -0
  440. package/dist/editor-actions/replacement-focus.d.ts +27 -0
  441. package/dist/editor-actions/replacement-focus.js +60 -0
  442. package/dist/editor-actions/search-replace.d.ts +6 -0
  443. package/dist/editor-actions/search-replace.js +145 -0
  444. package/dist/editor-actions/table-context.d.ts +34 -0
  445. package/dist/editor-actions/table-context.js +292 -0
  446. package/dist/editor-actions/unwrap-strategies.d.ts +14 -0
  447. package/dist/editor-actions/unwrap-strategies.js +131 -0
  448. package/dist/editor-actions/whole-block-focus-surface.d.ts +51 -0
  449. package/dist/editor-actions/whole-block-focus-surface.js +171 -0
  450. package/dist/editor-events.d.ts +89 -0
  451. package/dist/editor-events.js +96 -0
  452. package/dist/editor-keys.d.ts +197 -0
  453. package/dist/editor-keys.js +40 -0
  454. package/dist/editor-props.d.ts +164 -0
  455. package/dist/editor-props.js +1 -0
  456. package/dist/editor-rects.d.ts +58 -0
  457. package/dist/editor-rects.js +114 -0
  458. package/dist/env.d.ts +12 -0
  459. package/dist/env.js +20 -0
  460. package/dist/index.d.ts +27 -0
  461. package/dist/index.js +19 -0
  462. package/dist/invariants/commit-paths.d.ts +10 -0
  463. package/dist/invariants/commit-paths.js +25 -0
  464. package/dist/invariants/commit-scope.d.ts +9 -0
  465. package/dist/invariants/commit-scope.js +16 -0
  466. package/dist/invariants/context-keys.d.ts +7 -0
  467. package/dist/invariants/context-keys.js +14 -0
  468. package/dist/invariants/descriptor.d.ts +10 -0
  469. package/dist/invariants/descriptor.js +24 -0
  470. package/dist/invariants/inline-transitions.d.ts +23 -0
  471. package/dist/invariants/inline-transitions.js +52 -0
  472. package/dist/invariants/install.d.ts +36 -0
  473. package/dist/invariants/install.js +66 -0
  474. package/dist/invariants/landable-caret.d.ts +12 -0
  475. package/dist/invariants/landable-caret.js +31 -0
  476. package/dist/invariants/marker-css-parity.d.ts +10 -0
  477. package/dist/invariants/marker-css-parity.js +87 -0
  478. package/dist/invariants/node-shape.d.ts +44 -0
  479. package/dist/invariants/node-shape.js +258 -0
  480. package/dist/invariants/registry.d.ts +126 -0
  481. package/dist/invariants/registry.js +349 -0
  482. package/dist/invariants/render-fidelity.d.ts +8 -0
  483. package/dist/invariants/render-fidelity.js +33 -0
  484. package/dist/invariants/selection-endpoints.d.ts +19 -0
  485. package/dist/invariants/selection-endpoints.js +78 -0
  486. package/dist/invariants/single-node-sink.d.ts +9 -0
  487. package/dist/invariants/single-node-sink.js +16 -0
  488. package/dist/invariants/snapshot-integrity.d.ts +17 -0
  489. package/dist/invariants/snapshot-integrity.js +24 -0
  490. package/dist/invariants/split-landing.d.ts +8 -0
  491. package/dist/invariants/split-landing.js +15 -0
  492. package/dist/invariants/structural-descriptor.d.ts +21 -0
  493. package/dist/invariants/structural-descriptor.js +50 -0
  494. package/dist/perf/instruments.d.ts +49 -0
  495. package/dist/perf/instruments.js +154 -0
  496. package/dist/perf/use-mount-gauge.svelte.d.ts +1 -0
  497. package/dist/perf/use-mount-gauge.svelte.js +15 -0
  498. package/dist/plugin.d.ts +102 -0
  499. package/dist/plugin.js +156 -0
  500. package/dist/plugins/admonitions/AdmonitionBlock.svelte +144 -0
  501. package/dist/plugins/admonitions/AdmonitionBlock.svelte.d.ts +11 -0
  502. package/dist/plugins/admonitions/admonition-kind.d.ts +8 -0
  503. package/dist/plugins/admonitions/admonition-kind.js +97 -0
  504. package/dist/plugins/admonitions/convert-document.d.ts +11 -0
  505. package/dist/plugins/admonitions/convert-document.js +39 -0
  506. package/dist/plugins/admonitions/gh-alert.d.ts +13 -0
  507. package/dist/plugins/admonitions/gh-alert.js +83 -0
  508. package/dist/plugins/admonitions/github-alert-kind.d.ts +12 -0
  509. package/dist/plugins/admonitions/github-alert-kind.js +125 -0
  510. package/dist/plugins/admonitions/index.d.ts +6 -0
  511. package/dist/plugins/admonitions/index.js +8 -0
  512. package/dist/plugins/admonitions/kinds.d.ts +26 -0
  513. package/dist/plugins/admonitions/kinds.js +18 -0
  514. package/dist/plugins/admonitions/register.d.ts +7 -0
  515. package/dist/plugins/admonitions/register.js +12 -0
  516. package/dist/plugins/details/DetailsBlock.svelte +129 -0
  517. package/dist/plugins/details/DetailsBlock.svelte.d.ts +11 -0
  518. package/dist/plugins/details/details-disclosure.svelte.d.ts +17 -0
  519. package/dist/plugins/details/details-disclosure.svelte.js +24 -0
  520. package/dist/plugins/details/details-kind.d.ts +25 -0
  521. package/dist/plugins/details/details-kind.js +237 -0
  522. package/dist/plugins/details/index.d.ts +2 -0
  523. package/dist/plugins/details/index.js +2 -0
  524. package/dist/plugins/details/register.d.ts +6 -0
  525. package/dist/plugins/details/register.js +15 -0
  526. package/dist/plugins/emoji/emoji-plugin.d.ts +2 -0
  527. package/dist/plugins/emoji/emoji-plugin.js +10 -0
  528. package/dist/plugins/emoji/emoji-recognizer.d.ts +18 -0
  529. package/dist/plugins/emoji/emoji-recognizer.js +63 -0
  530. package/dist/plugins/emoji/emoji-table.d.ts +1 -0
  531. package/dist/plugins/emoji/emoji-table.js +1919 -0
  532. package/dist/plugins/emoji/index.d.ts +3 -0
  533. package/dist/plugins/emoji/index.js +4 -0
  534. package/dist/plugins/footnotes/FootnoteDefinition.svelte +103 -0
  535. package/dist/plugins/footnotes/FootnoteDefinition.svelte.d.ts +13 -0
  536. package/dist/plugins/footnotes/FootnoteReference.svelte +50 -0
  537. package/dist/plugins/footnotes/FootnoteReference.svelte.d.ts +4 -0
  538. package/dist/plugins/footnotes/constants.d.ts +2 -0
  539. package/dist/plugins/footnotes/constants.js +4 -0
  540. package/dist/plugins/footnotes/footnote-definition.d.ts +14 -0
  541. package/dist/plugins/footnotes/footnote-definition.js +147 -0
  542. package/dist/plugins/footnotes/footnote-lookup.d.ts +9 -0
  543. package/dist/plugins/footnotes/footnote-lookup.js +33 -0
  544. package/dist/plugins/footnotes/footnote-numbering.d.ts +23 -0
  545. package/dist/plugins/footnotes/footnote-numbering.js +78 -0
  546. package/dist/plugins/footnotes/footnote-reference.d.ts +7 -0
  547. package/dist/plugins/footnotes/footnote-reference.js +54 -0
  548. package/dist/plugins/footnotes/footnotes-plugin.d.ts +7 -0
  549. package/dist/plugins/footnotes/footnotes-plugin.js +17 -0
  550. package/dist/plugins/footnotes/index.d.ts +5 -0
  551. package/dist/plugins/footnotes/index.js +6 -0
  552. package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +17 -0
  553. package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +31 -0
  554. package/dist/plugins/highlight-occurrences/index.d.ts +1 -0
  555. package/dist/plugins/highlight-occurrences/index.js +1 -0
  556. package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +26 -0
  557. package/dist/plugins/highlight-occurrences/occurrence-source.js +54 -0
  558. package/dist/plugins/highlight-occurrences/occurrences.d.ts +33 -0
  559. package/dist/plugins/highlight-occurrences/occurrences.js +108 -0
  560. package/dist/plugins/latex/BlockMath.svelte +119 -0
  561. package/dist/plugins/latex/BlockMath.svelte.d.ts +21 -0
  562. package/dist/plugins/latex/MathInline.svelte +28 -0
  563. package/dist/plugins/latex/MathInline.svelte.d.ts +4 -0
  564. package/dist/plugins/latex/index.d.ts +3 -0
  565. package/dist/plugins/latex/index.js +4 -0
  566. package/dist/plugins/latex/latex-kind.d.ts +17 -0
  567. package/dist/plugins/latex/latex-kind.js +224 -0
  568. package/dist/plugins/latex/math-completion.d.ts +10 -0
  569. package/dist/plugins/latex/math-completion.js +19 -0
  570. package/dist/plugins/latex/math-renderer.d.ts +26 -0
  571. package/dist/plugins/latex/math-renderer.js +42 -0
  572. package/dist/plugins/latex/register.d.ts +10 -0
  573. package/dist/plugins/latex/register.js +23 -0
  574. package/dist/plugins/latex/renderer.d.ts +13 -0
  575. package/dist/plugins/latex/renderer.js +34 -0
  576. package/dist/plugins/mermaid/MermaidBlock.svelte +572 -0
  577. package/dist/plugins/mermaid/MermaidBlock.svelte.d.ts +11 -0
  578. package/dist/plugins/mermaid/index.d.ts +3 -0
  579. package/dist/plugins/mermaid/index.js +3 -0
  580. package/dist/plugins/mermaid/mermaid-kind.d.ts +38 -0
  581. package/dist/plugins/mermaid/mermaid-kind.js +176 -0
  582. package/dist/plugins/mermaid/mermaid-renderer.d.ts +28 -0
  583. package/dist/plugins/mermaid/mermaid-renderer.js +35 -0
  584. package/dist/plugins/mermaid/register.d.ts +10 -0
  585. package/dist/plugins/mermaid/register.js +20 -0
  586. package/dist/plugins/mermaid/renderer.d.ts +11 -0
  587. package/dist/plugins/mermaid/renderer.js +53 -0
  588. package/dist/plugins/parrot/ParrotBlock.svelte +342 -0
  589. package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +21 -0
  590. package/dist/plugins/parrot/index.d.ts +1 -0
  591. package/dist/plugins/parrot/index.js +2 -0
  592. package/dist/plugins/parrot/parrot-plugin.d.ts +3 -0
  593. package/dist/plugins/parrot/parrot-plugin.js +49 -0
  594. package/dist/plugins/toc/TocBlock.svelte +218 -0
  595. package/dist/plugins/toc/TocBlock.svelte.d.ts +24 -0
  596. package/dist/plugins/toc/heading-outline.d.ts +28 -0
  597. package/dist/plugins/toc/heading-outline.js +65 -0
  598. package/dist/plugins/toc/index.d.ts +2 -0
  599. package/dist/plugins/toc/index.js +2 -0
  600. package/dist/plugins/toc/navigation-queue.d.ts +12 -0
  601. package/dist/plugins/toc/navigation-queue.js +21 -0
  602. package/dist/plugins/toc/toc-plugin.d.ts +16 -0
  603. package/dist/plugins/toc/toc-plugin.js +71 -0
  604. package/dist/presentation-mode.d.ts +32 -0
  605. package/dist/presentation-mode.js +50 -0
  606. package/dist/reactivity/block-list-state.svelte.d.ts +22 -0
  607. package/dist/reactivity/block-list-state.svelte.js +46 -0
  608. package/dist/reactivity/block-window.svelte.d.ts +41 -0
  609. package/dist/reactivity/block-window.svelte.js +93 -0
  610. package/dist/reactivity/content-version.svelte.d.ts +14 -0
  611. package/dist/reactivity/content-version.svelte.js +16 -0
  612. package/dist/reactivity/list-windowing.svelte.d.ts +100 -0
  613. package/dist/reactivity/list-windowing.svelte.js +402 -0
  614. package/dist/reactivity/measure-batch.d.ts +15 -0
  615. package/dist/reactivity/measure-batch.js +18 -0
  616. package/dist/reactivity/publish-ref.svelte.d.ts +54 -0
  617. package/dist/reactivity/publish-ref.svelte.js +128 -0
  618. package/dist/reactivity/scope-geometry.d.ts +18 -0
  619. package/dist/reactivity/scope-geometry.js +29 -0
  620. package/dist/reactivity/state-registry.d.ts +10 -0
  621. package/dist/reactivity/state-registry.js +44 -0
  622. package/dist/reactivity/use-container-windowing.svelte.d.ts +35 -0
  623. package/dist/reactivity/use-container-windowing.svelte.js +95 -0
  624. package/dist/reactivity/window-slice.d.ts +11 -0
  625. package/dist/reactivity/window-slice.js +9 -0
  626. package/dist/scan-index.d.ts +11 -0
  627. package/dist/scan-index.js +27 -0
  628. package/dist/schema/block-commands.d.ts +105 -0
  629. package/dist/schema/block-commands.js +179 -0
  630. package/dist/schema/block-completions.d.ts +33 -0
  631. package/dist/schema/block-completions.js +49 -0
  632. package/dist/schema/block-component-registry.d.ts +33 -0
  633. package/dist/schema/block-component-registry.js +33 -0
  634. package/dist/schema/block-kind-descriptor.d.ts +281 -0
  635. package/dist/schema/block-kind-descriptor.js +187 -0
  636. package/dist/schema/block-openers.d.ts +94 -0
  637. package/dist/schema/block-openers.js +150 -0
  638. package/dist/schema/built-in-descriptors.d.ts +8 -0
  639. package/dist/schema/built-in-descriptors.js +560 -0
  640. package/dist/schema/child-spans.d.ts +25 -0
  641. package/dist/schema/child-spans.js +161 -0
  642. package/dist/schema/closure.d.ts +39 -0
  643. package/dist/schema/closure.js +55 -0
  644. package/dist/schema/command-id.d.ts +20 -0
  645. package/dist/schema/command-id.js +42 -0
  646. package/dist/schema/commands.d.ts +147 -0
  647. package/dist/schema/commands.js +294 -0
  648. package/dist/schema/container-raw.d.ts +21 -0
  649. package/dist/schema/container-raw.js +43 -0
  650. package/dist/schema/container-rebuilders.d.ts +32 -0
  651. package/dist/schema/container-rebuilders.js +95 -0
  652. package/dist/schema/define-plugin-block.d.ts +15 -0
  653. package/dist/schema/define-plugin-block.js +18 -0
  654. package/dist/schema/fenced-code-raw.d.ts +43 -0
  655. package/dist/schema/fenced-code-raw.js +220 -0
  656. package/dist/schema/global-commands.d.ts +11 -0
  657. package/dist/schema/global-commands.js +40 -0
  658. package/dist/schema/inline-construct-policy.d.ts +131 -0
  659. package/dist/schema/inline-construct-policy.js +96 -0
  660. package/dist/schema/keybinding-overrides.d.ts +39 -0
  661. package/dist/schema/keybinding-overrides.js +43 -0
  662. package/dist/schema/keybindings.d.ts +36 -0
  663. package/dist/schema/keybindings.js +75 -0
  664. package/dist/schema/merge-rules.d.ts +28 -0
  665. package/dist/schema/merge-rules.js +57 -0
  666. package/dist/schema/opener-priorities.d.ts +16 -0
  667. package/dist/schema/opener-priorities.js +16 -0
  668. package/dist/schema/operations.d.ts +110 -0
  669. package/dist/schema/operations.js +6 -0
  670. package/dist/schema/plugin-activation.d.ts +13 -0
  671. package/dist/schema/plugin-activation.js +18 -0
  672. package/dist/schema/plugin-editor-context.d.ts +33 -0
  673. package/dist/schema/plugin-editor-context.js +65 -0
  674. package/dist/schema/plugin-install.d.ts +58 -0
  675. package/dist/schema/plugin-install.js +132 -0
  676. package/dist/schema/plugin-kind.d.ts +21 -0
  677. package/dist/schema/plugin-kind.js +86 -0
  678. package/dist/schema/plugin-name.d.ts +1 -0
  679. package/dist/schema/plugin-name.js +7 -0
  680. package/dist/schema/register-once.d.ts +9 -0
  681. package/dist/schema/register-once.js +35 -0
  682. package/dist/schema/registration-checks.d.ts +32 -0
  683. package/dist/schema/registration-checks.js +122 -0
  684. package/dist/schema/registration-pending.d.ts +28 -0
  685. package/dist/schema/registration-pending.js +48 -0
  686. package/dist/schema/registry-reset.d.ts +7 -0
  687. package/dist/schema/registry-reset.js +30 -0
  688. package/dist/schema/registry-view.d.ts +30 -0
  689. package/dist/schema/registry-view.js +39 -0
  690. package/dist/schema/reserved-chords.d.ts +35 -0
  691. package/dist/schema/reserved-chords.js +313 -0
  692. package/dist/schema/reserved-chrome.d.ts +23 -0
  693. package/dist/schema/reserved-chrome.js +33 -0
  694. package/dist/schema/table-cell-raw.d.ts +14 -0
  695. package/dist/schema/table-cell-raw.js +30 -0
  696. package/dist/schema/whole-block-unit.d.ts +8 -0
  697. package/dist/schema/whole-block-unit.js +12 -0
  698. package/dist/search/document-scan.d.ts +22 -0
  699. package/dist/search/document-scan.js +39 -0
  700. package/dist/search/matcher.d.ts +31 -0
  701. package/dist/search/matcher.js +70 -0
  702. package/dist/search/regex-executor.d.ts +41 -0
  703. package/dist/search/regex-executor.js +165 -0
  704. package/dist/search/replace.d.ts +15 -0
  705. package/dist/search/replace.js +29 -0
  706. package/dist/search/search-state.svelte.d.ts +59 -0
  707. package/dist/search/search-state.svelte.js +231 -0
  708. package/dist/selection/autoscroll.d.ts +26 -0
  709. package/dist/selection/autoscroll.js +91 -0
  710. package/dist/selection/block-hit-test.d.ts +37 -0
  711. package/dist/selection/block-hit-test.js +59 -0
  712. package/dist/selection/caret-doors.d.ts +20 -0
  713. package/dist/selection/caret-doors.js +44 -0
  714. package/dist/selection/caret-restore.d.ts +15 -0
  715. package/dist/selection/caret-restore.js +32 -0
  716. package/dist/selection/char-endpoint-snap.d.ts +15 -0
  717. package/dist/selection/char-endpoint-snap.js +39 -0
  718. package/dist/selection/clipboard-text.d.ts +13 -0
  719. package/dist/selection/clipboard-text.js +314 -0
  720. package/dist/selection/cross-block/clipboard.d.ts +14 -0
  721. package/dist/selection/cross-block/clipboard.js +20 -0
  722. package/dist/selection/cross-block/dispatch.d.ts +78 -0
  723. package/dist/selection/cross-block/dispatch.js +57 -0
  724. package/dist/selection/cross-block/format-range.d.ts +38 -0
  725. package/dist/selection/cross-block/format-range.js +193 -0
  726. package/dist/selection/cross-block/format-toggle.d.ts +27 -0
  727. package/dist/selection/cross-block/format-toggle.js +109 -0
  728. package/dist/selection/cross-block/keydown.d.ts +11 -0
  729. package/dist/selection/cross-block/keydown.js +339 -0
  730. package/dist/selection/cross-block/ops.d.ts +56 -0
  731. package/dist/selection/cross-block/ops.js +210 -0
  732. package/dist/selection/cross-block/paste.d.ts +8 -0
  733. package/dist/selection/cross-block/paste.js +156 -0
  734. package/dist/selection/cross-block/pointer.d.ts +19 -0
  735. package/dist/selection/cross-block/pointer.js +80 -0
  736. package/dist/selection/cross-block/type-replace.d.ts +10 -0
  737. package/dist/selection/cross-block/type-replace.js +129 -0
  738. package/dist/selection/dead-space-caret.d.ts +39 -0
  739. package/dist/selection/dead-space-caret.js +173 -0
  740. package/dist/selection/drag-pointer.d.ts +22 -0
  741. package/dist/selection/drag-pointer.js +89 -0
  742. package/dist/selection/gap-caret.d.ts +47 -0
  743. package/dist/selection/gap-caret.js +72 -0
  744. package/dist/selection/keyboard-extend.d.ts +43 -0
  745. package/dist/selection/keyboard-extend.js +257 -0
  746. package/dist/selection/native-bridge.d.ts +47 -0
  747. package/dist/selection/native-bridge.js +204 -0
  748. package/dist/selection/nearest-block.d.ts +43 -0
  749. package/dist/selection/nearest-block.js +73 -0
  750. package/dist/selection/path-lookup.d.ts +32 -0
  751. package/dist/selection/path-lookup.js +132 -0
  752. package/dist/selection/path-math.d.ts +35 -0
  753. package/dist/selection/path-math.js +90 -0
  754. package/dist/selection/pointer-session.d.ts +43 -0
  755. package/dist/selection/pointer-session.js +111 -0
  756. package/dist/selection/primitives.d.ts +75 -0
  757. package/dist/selection/primitives.js +91 -0
  758. package/dist/selection/range-delete-ceremony.d.ts +85 -0
  759. package/dist/selection/range-delete-ceremony.js +197 -0
  760. package/dist/selection/range-delete-chrome.d.ts +39 -0
  761. package/dist/selection/range-delete-chrome.js +105 -0
  762. package/dist/selection/range-delete-table-coverage.d.ts +28 -0
  763. package/dist/selection/range-delete-table-coverage.js +168 -0
  764. package/dist/selection/range-delete-table.d.ts +16 -0
  765. package/dist/selection/range-delete-table.js +347 -0
  766. package/dist/selection/range-delete.d.ts +33 -0
  767. package/dist/selection/range-delete.js +121 -0
  768. package/dist/selection/selection-description.d.ts +7 -0
  769. package/dist/selection/selection-description.js +18 -0
  770. package/dist/selection/selection-restore.d.ts +46 -0
  771. package/dist/selection/selection-restore.js +66 -0
  772. package/dist/selection/selection-state.svelte.d.ts +72 -0
  773. package/dist/selection/selection-state.svelte.js +247 -0
  774. package/dist/selection/shared-keydown.d.ts +61 -0
  775. package/dist/selection/shared-keydown.js +150 -0
  776. package/dist/selection/table-endpoint-snap.d.ts +55 -0
  777. package/dist/selection/table-endpoint-snap.js +143 -0
  778. package/dist/selection/table-rect-extend.d.ts +23 -0
  779. package/dist/selection/table-rect-extend.js +46 -0
  780. package/dist/selection/widget-range-paint.d.ts +12 -0
  781. package/dist/selection/widget-range-paint.js +44 -0
  782. package/dist/styles/editor-theme.css +151 -0
  783. package/dist/styles/editor.css +585 -0
  784. package/dist/testing/conformance-core.d.ts +45 -0
  785. package/dist/testing/conformance-core.js +105 -0
  786. package/dist/testing/container-conformance.d.ts +137 -0
  787. package/dist/testing/container-conformance.js +533 -0
  788. package/dist/testing/headless-actions.d.ts +37 -0
  789. package/dist/testing/headless-actions.js +118 -0
  790. package/dist/testing/inline-conformance.d.ts +50 -0
  791. package/dist/testing/inline-conformance.js +442 -0
  792. package/dist/testing/kind-conformance.d.ts +54 -0
  793. package/dist/testing/kind-conformance.js +325 -0
  794. package/dist/testing/mount-dom-stubs.d.ts +8 -0
  795. package/dist/testing/mount-dom-stubs.js +19 -0
  796. package/dist/testing/parse-convergence.d.ts +14 -0
  797. package/dist/testing/parse-convergence.js +81 -0
  798. package/dist/testing.d.ts +20 -0
  799. package/dist/testing.js +61 -0
  800. package/dist/tree-operations/blockquote.d.ts +18 -0
  801. package/dist/tree-operations/blockquote.js +59 -0
  802. package/dist/tree-operations/children.d.ts +17 -0
  803. package/dist/tree-operations/children.js +56 -0
  804. package/dist/tree-operations/cleanup.d.ts +10 -0
  805. package/dist/tree-operations/cleanup.js +25 -0
  806. package/dist/tree-operations/clone.d.ts +5 -0
  807. package/dist/tree-operations/clone.js +43 -0
  808. package/dist/tree-operations/container-lift.d.ts +9 -0
  809. package/dist/tree-operations/container-lift.js +29 -0
  810. package/dist/tree-operations/index.d.ts +16 -0
  811. package/dist/tree-operations/index.js +14 -0
  812. package/dist/tree-operations/list/empty-check.d.ts +7 -0
  813. package/dist/tree-operations/list/empty-check.js +19 -0
  814. package/dist/tree-operations/list/exit-replacement.d.ts +13 -0
  815. package/dist/tree-operations/list/exit-replacement.js +49 -0
  816. package/dist/tree-operations/list/item-partition.d.ts +13 -0
  817. package/dist/tree-operations/list/item-partition.js +33 -0
  818. package/dist/tree-operations/list/list-builders.d.ts +44 -0
  819. package/dist/tree-operations/list/list-builders.js +129 -0
  820. package/dist/tree-operations/list/ordered-markers.d.ts +36 -0
  821. package/dist/tree-operations/list/ordered-markers.js +114 -0
  822. package/dist/tree-operations/list/reconcile-task.d.ts +12 -0
  823. package/dist/tree-operations/list/reconcile-task.js +47 -0
  824. package/dist/tree-operations/list/sublist-separator.d.ts +13 -0
  825. package/dist/tree-operations/list/sublist-separator.js +34 -0
  826. package/dist/tree-operations/list/terminator.d.ts +17 -0
  827. package/dist/tree-operations/list/terminator.js +60 -0
  828. package/dist/tree-operations/list/unwrap-merge.d.ts +29 -0
  829. package/dist/tree-operations/list/unwrap-merge.js +202 -0
  830. package/dist/tree-operations/node-ops.d.ts +296 -0
  831. package/dist/tree-operations/node-ops.js +1428 -0
  832. package/dist/tree-operations/parse-block.d.ts +3 -0
  833. package/dist/tree-operations/parse-block.js +8 -0
  834. package/dist/tree-operations/paste/apply.d.ts +12 -0
  835. package/dist/tree-operations/paste/apply.js +75 -0
  836. package/dist/tree-operations/paste/body-write.d.ts +19 -0
  837. package/dist/tree-operations/paste/body-write.js +53 -0
  838. package/dist/tree-operations/paste/container-match.d.ts +32 -0
  839. package/dist/tree-operations/paste/container-match.js +238 -0
  840. package/dist/tree-operations/paste/container-paste.d.ts +10 -0
  841. package/dist/tree-operations/paste/container-paste.js +27 -0
  842. package/dist/tree-operations/paste/dispatch.d.ts +61 -0
  843. package/dist/tree-operations/paste/dispatch.js +138 -0
  844. package/dist/tree-operations/paste/find-enclosing-list.d.ts +8 -0
  845. package/dist/tree-operations/paste/find-enclosing-list.js +30 -0
  846. package/dist/tree-operations/paste/focus-target.d.ts +27 -0
  847. package/dist/tree-operations/paste/focus-target.js +40 -0
  848. package/dist/tree-operations/paste/hooks.d.ts +17 -0
  849. package/dist/tree-operations/paste/hooks.js +80 -0
  850. package/dist/tree-operations/paste/list-absorb.d.ts +29 -0
  851. package/dist/tree-operations/paste/list-absorb.js +106 -0
  852. package/dist/tree-operations/paste/list-break-out.d.ts +42 -0
  853. package/dist/tree-operations/paste/list-break-out.js +136 -0
  854. package/dist/tree-operations/paste/parent-scope.d.ts +17 -0
  855. package/dist/tree-operations/paste/parent-scope.js +35 -0
  856. package/dist/tree-operations/paste/paste-deps.d.ts +20 -0
  857. package/dist/tree-operations/paste/paste-deps.js +6 -0
  858. package/dist/tree-operations/paste/paste-replacement.d.ts +8 -0
  859. package/dist/tree-operations/paste/paste-replacement.js +60 -0
  860. package/dist/tree-operations/paste/paste-transforms.d.ts +25 -0
  861. package/dist/tree-operations/paste/paste-transforms.js +72 -0
  862. package/dist/tree-operations/paste/replace-block-at-parent.d.ts +29 -0
  863. package/dist/tree-operations/paste/replace-block-at-parent.js +75 -0
  864. package/dist/tree-operations/paste/strategy.d.ts +9 -0
  865. package/dist/tree-operations/paste/strategy.js +20 -0
  866. package/dist/tree-operations/paste/table-slice.d.ts +10 -0
  867. package/dist/tree-operations/paste/table-slice.js +39 -0
  868. package/dist/tree-operations/paste-surfaces.d.ts +61 -0
  869. package/dist/tree-operations/paste-surfaces.js +15 -0
  870. package/dist/tree-operations/path-mutate.d.ts +12 -0
  871. package/dist/tree-operations/path-mutate.js +20 -0
  872. package/dist/tree-operations/reorder-unit.d.ts +17 -0
  873. package/dist/tree-operations/reorder-unit.js +37 -0
  874. package/dist/tree-operations/reorder.d.ts +13 -0
  875. package/dist/tree-operations/reorder.js +57 -0
  876. package/dist/tree-operations/sharing.d.ts +18 -0
  877. package/dist/tree-operations/sharing.js +14 -0
  878. package/dist/tree-operations/splice-many.d.ts +9 -0
  879. package/dist/tree-operations/splice-many.js +22 -0
  880. package/dist/tree-operations/structural-change.d.ts +65 -0
  881. package/dist/tree-operations/structural-change.js +117 -0
  882. package/dist/tree-operations/sub-table-copy.d.ts +6 -0
  883. package/dist/tree-operations/sub-table-copy.js +43 -0
  884. package/dist/tree-operations/table-mutations.d.ts +17 -0
  885. package/dist/tree-operations/table-mutations.js +101 -0
  886. package/dist/tree-operations/unshare.d.ts +101 -0
  887. package/dist/tree-operations/unshare.js +248 -0
  888. package/dist/undo/manager.d.ts +2 -0
  889. package/dist/undo/manager.js +50 -0
  890. package/dist/undo/types.d.ts +44 -0
  891. package/dist/undo/types.js +7 -0
  892. package/docs/guide/consumer-guide.md +1098 -0
  893. package/docs/guide/directives.md +223 -0
  894. package/docs/guide/plugin-api.md +329 -0
  895. package/docs/guide/plugin-guide/conspiracy.gif +0 -0
  896. package/docs/guide/plugin-guide/parrot-frames.md +209 -0
  897. package/docs/guide/plugin-guide/parrot.gif +0 -0
  898. package/docs/guide/plugin-guide.md +1693 -0
  899. package/docs/guide/plugin-testing.md +463 -0
  900. package/package.json +238 -0
@@ -0,0 +1,313 @@
1
+ /**
2
+ * Which modifier chords a mounted editor consumes. The keymap tiers enumerate from the
3
+ * registries; chords claimed by hand-written keydown branches do not, so they ride the
4
+ * manifest below — G4.29's source scan fails until a new claiming site joins it. Bare keys
5
+ * stay out of contract: a focused document owns them whatever the manifest says. A manifested
6
+ * file must keep its literal key comparisons and modifier reads, which are the scan's evidence.
7
+ */
8
+ import { getAllRegisteredKinds, tryGetBlockKindDescriptor } from './block-kind-descriptor';
9
+ import { GLOBAL_KEYMAP, pluginGlobalChords, reservedUiChords } from './commands';
10
+ import { eventToChord, normalizeChord } from './keybindings';
11
+ export const HARDCODED_CHORD_SITES = [
12
+ {
13
+ file: 'components/Editor.svelte',
14
+ chords: [],
15
+ keys: [],
16
+ note: 'Mod-click link activation — no keystroke is consumed.'
17
+ },
18
+ {
19
+ file: 'components/editor-root-listeners.ts',
20
+ chords: [],
21
+ keys: [],
22
+ note: 'The Mod-held `data-mod-active` affordance tracks flag state only — no keystroke is consumed.'
23
+ },
24
+ {
25
+ file: 'components/GapCaret.svelte',
26
+ chords: [],
27
+ keys: [
28
+ 'ArrowDown',
29
+ 'ArrowLeft',
30
+ 'ArrowRight',
31
+ 'ArrowUp',
32
+ 'Backspace',
33
+ 'Delete',
34
+ 'Enter',
35
+ 'Escape'
36
+ ],
37
+ note: 'The gap caret proxy claims the exits plus the Enter that mints; Ctrl/Meta/Alt yields to the global table, and Shift takes the plain arrow arm.'
38
+ },
39
+ {
40
+ file: 'components/SearchBar.svelte',
41
+ chords: ['Shift+Enter'],
42
+ keys: ['Enter', 'Escape'],
43
+ note: 'Previous match from the find input. Reachable only with the bar open, and the prose keymap binds the same chord anyway.'
44
+ },
45
+ {
46
+ file: 'components/blocks/editable-leaf.ts',
47
+ chords: [],
48
+ keys: ['Enter'],
49
+ note: 'Shift-click gate on the rendered surface — a pointer read.'
50
+ },
51
+ {
52
+ file: 'components/link-card/LinkCard.svelte',
53
+ chords: ['Shift+Tab', 'Mod+K'],
54
+ keys: ['Enter', 'K', 'Tab', 'k'],
55
+ note: "Backwards step of the open card's focus trap, plus the entry chord swallowed as a no-op where the focus already is — the kind keymaps claim it everywhere else. Escape lives on the host, which must also close a card the document still holds the caret for."
56
+ },
57
+ {
58
+ file: 'components/blocks/table/TableActionMenu.svelte',
59
+ chords: ['Shift+Tab'],
60
+ keys: ['ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'End', 'Escape', 'Home', 'Tab'],
61
+ note: "Backwards step of the open menu's focus trap."
62
+ },
63
+ {
64
+ file: 'components/blocks/table/TableBlock.svelte',
65
+ chords: ['Shift+F10'],
66
+ keys: ['ContextMenu', 'F10'],
67
+ note: 'The keyboard route to the cell action menu.'
68
+ },
69
+ {
70
+ file: 'components/blocks/table/TableCellBlock.svelte',
71
+ chords: ['Shift+ArrowUp', 'Shift+ArrowDown'],
72
+ keys: ['ArrowDown', 'ArrowUp', 'Enter'],
73
+ note: 'Starts the intra-table rectangle before the prose extend can walk the next leaf; the second modifier read is the widget activation click, which consumes no keystroke.'
74
+ },
75
+ {
76
+ file: 'components/blocks/table/cell-keydown-plan.ts',
77
+ chords: ['Mod+A', 'Shift+Tab'],
78
+ keys: [
79
+ 'A',
80
+ 'ArrowDown',
81
+ 'ArrowLeft',
82
+ 'ArrowRight',
83
+ 'ArrowUp',
84
+ 'Backspace',
85
+ 'Delete',
86
+ 'Enter',
87
+ 'Tab',
88
+ 'a'
89
+ ]
90
+ },
91
+ {
92
+ file: 'components/blocks/text/TextEditableBlock.svelte',
93
+ chords: [],
94
+ keys: ['Home'],
95
+ note: 'Bare Home only; the modifier reads are the guard that keeps Shift+Home native and the widget activation click, which consumes no keystroke.'
96
+ },
97
+ {
98
+ file: 'components/blocks/text/click-snap-guard.ts',
99
+ chords: [],
100
+ keys: [],
101
+ note: 'The `hasModifier` predicate itself.'
102
+ },
103
+ {
104
+ file: 'components/blocks/text/construct-reveal.ts',
105
+ chords: [],
106
+ keys: ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'],
107
+ note: 'Declines every modified key rather than claiming one.'
108
+ },
109
+ {
110
+ file: 'components/blocks/text/edge-policy-dispatch.ts',
111
+ chords: [],
112
+ keys: [' ', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'],
113
+ note: 'The caret-edge policy runs on plain keys; the modifier read is its gate. The bare space is container marker completion, consumed rather than claimed as a chord.'
114
+ },
115
+ {
116
+ file: 'components/blocks/text/widget-interaction.ts',
117
+ chords: ['Shift+ArrowLeft', 'Shift+ArrowRight'],
118
+ keys: ['Arrow*', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Escape'],
119
+ note: 'Extends a selection into a widget. A modified arrow is also swallowed while a widget is selected, but that is a caret-coherence guard in a transient state, not a binding.'
120
+ },
121
+ {
122
+ file: 'components/image/ImageResizeHandles.svelte',
123
+ chords: [],
124
+ keys: [],
125
+ note: 'Shift locks the aspect ratio during a pointer drag.'
126
+ },
127
+ {
128
+ file: 'components/image/image-widget-editing.ts',
129
+ chords: ['Shift+ArrowLeft', 'Shift+ArrowRight'],
130
+ keys: ['ArrowLeft', 'ArrowRight'],
131
+ note: 'Keyboard resize of the selected image.'
132
+ },
133
+ {
134
+ file: 'components/image/widget-dom.ts',
135
+ chords: [],
136
+ keys: [],
137
+ note: 'Shift-click declines, so the block keeps cross-block extension.'
138
+ },
139
+ {
140
+ file: 'cursor/edge-affinity.ts',
141
+ chords: [],
142
+ keys: ['ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'End', 'Home', 'PageDown', 'PageUp'],
143
+ note: 'Classifies an arrival for the caret-side memory; consumes nothing.'
144
+ },
145
+ {
146
+ file: 'cursor/sticky-column.ts',
147
+ chords: [],
148
+ keys: ['ArrowDown', 'ArrowUp'],
149
+ note: 'Classifies a keystroke for the column memory; consumes nothing.'
150
+ },
151
+ {
152
+ file: 'editor-actions/container-block-component.ts',
153
+ chords: ['Mod+C', 'Mod+X'],
154
+ keys: [
155
+ 'ArrowDown',
156
+ 'ArrowLeft',
157
+ 'ArrowRight',
158
+ 'ArrowUp',
159
+ 'Backspace',
160
+ 'Delete',
161
+ 'Enter',
162
+ 'c',
163
+ 'x'
164
+ ],
165
+ note: 'Whole-block copy/cut: a keydown carries no ClipboardEvent, so the chord is read here. The unchorded printable mints a paragraph below, so the same modifier reads gate that branch too.'
166
+ },
167
+ {
168
+ file: 'editor-actions/plugin/container.ts',
169
+ chords: ['Alt+ArrowUp', 'Alt+ArrowDown'],
170
+ keys: ['ArrowDown', 'ArrowUp'],
171
+ note: 'Reorder for plugin containers, whose command dispatch is inert.'
172
+ },
173
+ {
174
+ file: 'plugins/footnotes/FootnoteDefinition.svelte',
175
+ chords: [],
176
+ keys: [],
177
+ note: 'Mod-click on the `[^label]` marker jumps back to the reference — no keystroke is consumed.'
178
+ },
179
+ {
180
+ file: 'plugins/footnotes/FootnoteReference.svelte',
181
+ chords: [],
182
+ keys: [],
183
+ note: 'Mod-click jump to the definition, the link click’s gesture — no keystroke is consumed.'
184
+ },
185
+ {
186
+ file: 'plugins/mermaid/MermaidBlock.svelte',
187
+ chords: ['Mod+Enter'],
188
+ keys: ['ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'Enter', 'Escape', 'Tab'],
189
+ note: 'Commits the diagram edit; the arrows are the edit box’s boundary exits, and a modified one is declined rather than claimed. Bundled-plugin chord, listed unconditionally — it coincides with the table keymap, so gating it on the install would change no answer.'
190
+ },
191
+ {
192
+ file: 'schema/keybindings.ts',
193
+ chords: [],
194
+ keys: [],
195
+ note: 'The normalizer every other site reads.'
196
+ },
197
+ {
198
+ file: 'selection/cross-block/keydown.ts',
199
+ chords: [
200
+ 'Mod+A',
201
+ 'Mod+Shift+Home',
202
+ 'Mod+Shift+End',
203
+ 'Shift+ArrowUp',
204
+ 'Shift+ArrowDown',
205
+ 'Shift+ArrowLeft',
206
+ 'Shift+ArrowRight'
207
+ ],
208
+ keys: [
209
+ 'ArrowDown',
210
+ 'ArrowLeft',
211
+ 'ArrowRight',
212
+ 'ArrowUp',
213
+ 'B',
214
+ 'Backspace',
215
+ 'Delete',
216
+ 'E',
217
+ 'End',
218
+ 'Enter',
219
+ 'Escape',
220
+ 'Home',
221
+ 'I',
222
+ 'K',
223
+ 'Tab',
224
+ 'X',
225
+ 'a',
226
+ 'b',
227
+ 'e',
228
+ 'i',
229
+ 'k',
230
+ 'x'
231
+ ],
232
+ note: 'Mod+0-6 routes to the merged command registry, where that binding lives. The rewrite chords are CLAIMED over a cross-block range and handed to the dispatch seam — the four format toggles route to the cross-block arm, the link card declines, since no single block can host its mint — because falling through read the chord as text (or ran Ctrl+K as kill-line). Mod+Shift+X takes an arm of its own: unshifted Mod+X is the whole-block cut.'
233
+ },
234
+ {
235
+ file: 'selection/cross-block/pointer.ts',
236
+ chords: [],
237
+ keys: [],
238
+ note: 'Shift-click anchoring.'
239
+ },
240
+ {
241
+ file: 'selection/dead-space-caret.ts',
242
+ chords: [],
243
+ keys: [],
244
+ note: 'A modified click is a platform command, so the dead-space caret declines it.'
245
+ },
246
+ {
247
+ file: 'selection/shared-keydown.ts',
248
+ chords: ['Shift+ArrowUp', 'Shift+ArrowDown', 'Shift+ArrowLeft', 'Shift+ArrowRight'],
249
+ keys: [
250
+ 'Alt',
251
+ 'AltGraph',
252
+ 'ArrowDown',
253
+ 'ArrowLeft',
254
+ 'ArrowRight',
255
+ 'ArrowUp',
256
+ 'CapsLock',
257
+ 'Control',
258
+ 'Meta',
259
+ 'Shift',
260
+ 'a'
261
+ ],
262
+ note: 'Extends across a block boundary once the native extend runs out of room.'
263
+ }
264
+ ];
265
+ const HARDCODED_CHORDS = new Set(HARDCODED_CHORD_SITES.flatMap((site) => site.chords).map(normalizeChord));
266
+ /**
267
+ * Every modifier chord this editor consumes, normalized. Composed on each call: kind keymaps,
268
+ * the plugin tiers and the override map all change under a live editor.
269
+ */
270
+ export function collectReservedChords(options) {
271
+ const claimed = new Set([
272
+ ...registeredKeymapChords(),
273
+ ...GLOBAL_KEYMAP.map((binding) => binding.chord),
274
+ ...pluginGlobalChords(options.activation),
275
+ ...HARDCODED_CHORDS,
276
+ ...(options.searchBar ? reservedUiChords() : []),
277
+ ...overrideBoundChords(options.keybindings)
278
+ ]
279
+ .map(normalizeChord)
280
+ .filter(carriesModifier));
281
+ // A global disable unbinds the chord at every command tier. A hardcoded branch never
282
+ // consults the override map, so it keeps its claim.
283
+ for (const chord of globallyDisabledChords(options.keybindings)) {
284
+ if (!HARDCODED_CHORDS.has(chord))
285
+ claimed.delete(chord);
286
+ }
287
+ return claimed;
288
+ }
289
+ /**
290
+ * True when `chords` claims this keystroke, under the editor's own normalization — Ctrl and
291
+ * Cmd both fold to `Mod`, so a consumer never re-derives the platform rule.
292
+ */
293
+ export function chordIsClaimed(event, chords) {
294
+ const chord = eventToChord(event);
295
+ return chord !== null && chords.has(chord);
296
+ }
297
+ /** Modifier-carrying, so the fixed-order normal form puts something before the key. */
298
+ function carriesModifier(chord) {
299
+ return chord.includes('+');
300
+ }
301
+ function registeredKeymapChords() {
302
+ return getAllRegisteredKinds().flatMap((kind) => tryGetBlockKindDescriptor(kind)?.keymap?.map((binding) => binding.chord) ?? []);
303
+ }
304
+ function overrideBoundChords(overrides) {
305
+ if (!overrides)
306
+ return [];
307
+ return [overrides.global, ...overrides.byKind.values()].flatMap((scope) => [...scope].filter(([, value]) => value !== 'disabled').map(([chord]) => chord));
308
+ }
309
+ function globallyDisabledChords(overrides) {
310
+ if (!overrides)
311
+ return [];
312
+ return [...overrides.global].filter(([, value]) => value === 'disabled').map(([chord]) => chord);
313
+ }
@@ -0,0 +1,23 @@
1
+ import type { AnyBlockKind } from '../core/nodes';
2
+ import type { NodeView } from '../core/node-views';
3
+ import { type BlockKindDescriptor } from './block-kind-descriptor';
4
+ /**
5
+ * Reserved-chrome predicates: the declaration-driven surface the model layer dispatches on
6
+ * instead of a plugin kind name. These read a container's `reservedChrome` declaration, never
7
+ * a hard-coded kind.
8
+ */
9
+ /** The reserved chrome kind a container declares, or undefined if it declares none. */
10
+ export declare function reservedChromeKindOf(containerKind: AnyBlockKind): AnyBlockKind | undefined;
11
+ /** True when `childIndex` is the reserved chrome slot (index 0) of a chrome-declaring container. */
12
+ export declare function isReservedChromeChild(container: NodeView, childIndex: number): boolean;
13
+ /** True only when the kind declares an `isCollapsed` probe and it reports this node collapsed. */
14
+ export declare function isCollapsedContainer(node: NodeView): boolean;
15
+ /** The same reading for a caller already holding the descriptor — the height oracle's per-node
16
+ * path, where a second registry lookup is one per block of the document. */
17
+ export declare function isCollapsedByDescriptor(descriptor: BlockKindDescriptor | undefined, node: NodeView): boolean;
18
+ /**
19
+ * The metadata patch that expands `node`, or null when its kind declares no door. Sibling of
20
+ * `isCollapsedContainer` over the same declaration, so the clamp that hides a body and the
21
+ * reveal that opens it cannot disagree about which containers collapse.
22
+ */
23
+ export declare function expandContainerPatch(node: NodeView): Record<string, unknown> | null;
@@ -0,0 +1,33 @@
1
+ import { tryGetBlockKindDescriptor } from './block-kind-descriptor';
2
+ /**
3
+ * Reserved-chrome predicates: the declaration-driven surface the model layer dispatches on
4
+ * instead of a plugin kind name. These read a container's `reservedChrome` declaration, never
5
+ * a hard-coded kind.
6
+ */
7
+ /** The reserved chrome kind a container declares, or undefined if it declares none. */
8
+ export function reservedChromeKindOf(containerKind) {
9
+ return tryGetBlockKindDescriptor(containerKind)?.reservedChrome?.kind;
10
+ }
11
+ /** True when `childIndex` is the reserved chrome slot (index 0) of a chrome-declaring container. */
12
+ export function isReservedChromeChild(container, childIndex) {
13
+ return childIndex === 0 && reservedChromeKindOf(container.kind) !== undefined;
14
+ }
15
+ /** True only when the kind declares an `isCollapsed` probe and it reports this node collapsed. */
16
+ export function isCollapsedContainer(node) {
17
+ return isCollapsedByDescriptor(tryGetBlockKindDescriptor(node.kind), node);
18
+ }
19
+ /** The same reading for a caller already holding the descriptor — the height oracle's per-node
20
+ * path, where a second registry lookup is one per block of the document. */
21
+ export function isCollapsedByDescriptor(descriptor, node) {
22
+ const probe = descriptor?.reservedChrome?.isCollapsed;
23
+ return probe !== undefined && probe(node);
24
+ }
25
+ /**
26
+ * The metadata patch that expands `node`, or null when its kind declares no door. Sibling of
27
+ * `isCollapsedContainer` over the same declaration, so the clamp that hides a body and the
28
+ * reveal that opens it cannot disagree about which containers collapse.
29
+ */
30
+ export function expandContainerPatch(node) {
31
+ const door = tryGetBlockKindDescriptor(node.kind)?.reservedChrome?.expandPatch;
32
+ return door?.(node) ?? null;
33
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The tableCell raw-write rule, declared on the kind as `normalizeRawWrite` and applied at the
3
+ * write sink (`tree-operations/node-ops.updateNodeContent`). A cell's bytes are joined verbatim
4
+ * into its row, and the parser truncates a row reparsing wider than the delimiter's column
5
+ * count, so a bare `|` or line break reaching a cell raw deletes the last column's content.
6
+ * Both passes are prefix-composable, which is what makes `escapedCellOffset` an exact caret image.
7
+ */
8
+ /**
9
+ * Escape every `|` not already freed by an odd run of backslashes. Idempotent: the freeing
10
+ * backslash usually comes from text the writer never touched, so a re-run must be a no-op.
11
+ */
12
+ export declare function escapeUnescapedPipes(s: string): string;
13
+ /** Text made legal as a cell's `raw`: no line break, no unescaped delimiter. */
14
+ export declare function normalizeCellRaw(raw: string): string;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The tableCell raw-write rule, declared on the kind as `normalizeRawWrite` and applied at the
3
+ * write sink (`tree-operations/node-ops.updateNodeContent`). A cell's bytes are joined verbatim
4
+ * into its row, and the parser truncates a row reparsing wider than the delimiter's column
5
+ * count, so a bare `|` or line break reaching a cell raw deletes the last column's content.
6
+ * Both passes are prefix-composable, which is what makes `escapedCellOffset` an exact caret image.
7
+ */
8
+ /**
9
+ * Escape every `|` not already freed by an odd run of backslashes. Idempotent: the freeing
10
+ * backslash usually comes from text the writer never touched, so a re-run must be a no-op.
11
+ */
12
+ export function escapeUnescapedPipes(s) {
13
+ let out = '';
14
+ for (let i = 0; i < s.length; i++) {
15
+ const ch = s[i];
16
+ if (ch !== '|') {
17
+ out += ch;
18
+ continue;
19
+ }
20
+ let backslashes = 0;
21
+ for (let j = i - 1; j >= 0 && s[j] === '\\'; j--)
22
+ backslashes++;
23
+ out += backslashes % 2 === 0 ? '\\|' : '|';
24
+ }
25
+ return out;
26
+ }
27
+ /** Text made legal as a cell's `raw`: no line break, no unescaped delimiter. */
28
+ export function normalizeCellRaw(raw) {
29
+ return escapeUnescapedPipes(raw.replace(/\r?\n/g, ' '));
30
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The kind class with no character positions: `blockFocus: 'whole-block'` declares the opaque
3
+ * focus-then-delete model, and no children means no inner surface either, so the rendered body
4
+ * (an SVG, a toolbar) is chrome rather than the block's bytes. Its only addressable offsets are
5
+ * 0 and `displayLength(raw)`; `selection/char-endpoint-snap.ts` is what holds selection to them.
6
+ */
7
+ import type { NodeView } from '../core/node-views';
8
+ export declare function isWholeBlockUnit(node: NodeView): boolean;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The kind class with no character positions: `blockFocus: 'whole-block'` declares the opaque
3
+ * focus-then-delete model, and no children means no inner surface either, so the rendered body
4
+ * (an SVG, a toolbar) is chrome rather than the block's bytes. Its only addressable offsets are
5
+ * 0 and `displayLength(raw)`; `selection/char-endpoint-snap.ts` is what holds selection to them.
6
+ */
7
+ import { tryGetBlockKindDescriptor } from './block-kind-descriptor';
8
+ export function isWholeBlockUnit(node) {
9
+ if ((node.children?.length ?? 0) !== 0)
10
+ return false;
11
+ return tryGetBlockKindDescriptor(node.kind)?.blockFocus === 'whole-block';
12
+ }
@@ -0,0 +1,22 @@
1
+ import type { DocumentView } from '../core/node-views';
2
+ import type { CompiledMatcher, RawRange } from './matcher';
3
+ /** `start`/`end` are raw offsets into the matched block's own raw (public
4
+ * surface, so they stay `number`; DOM entry points mint). */
5
+ export interface Match {
6
+ path: number[];
7
+ start: number;
8
+ end: number;
9
+ groups?: string[];
10
+ }
11
+ /** One searchable leaf: the text a scan reads and the path its matches carry. */
12
+ export interface ScanTarget {
13
+ path: number[];
14
+ raw: string;
15
+ }
16
+ /** The searchable leaves in document order. Split out from matching so one target list can
17
+ * be matched here or shipped to the off-thread executor and re-joined against its ranges. */
18
+ export declare function collectScanTargets(doc: DocumentView): ScanTarget[];
19
+ /** Joins per-target ranges back onto their paths, positionally — the ranges must
20
+ * come from the same target list, in the same order. */
21
+ export declare function matchesFromRanges(targets: readonly ScanTarget[], perTarget: readonly RawRange[][]): Match[];
22
+ export declare function scanDocument(doc: DocumentView, matcher: CompiledMatcher): Match[];
@@ -0,0 +1,39 @@
1
+ import { getBlockKindDescriptor } from '../schema/block-kind-descriptor';
2
+ // A childless opaque container has no leaves to carry its text, so its own raw matches like
3
+ // a leaf. Strip/grid containers stay walk-only even when empty: their raw is marker syntax.
4
+ const scansOwnRaw = (node, desc) => desc.containerContract === 'opaque' && (node.children?.length ?? 0) === 0;
5
+ /** The searchable leaves in document order. Split out from matching so one target list can
6
+ * be matched here or shipped to the off-thread executor and re-joined against its ranges. */
7
+ export function collectScanTargets(doc) {
8
+ const out = [];
9
+ const walk = (nodes, prefix) => {
10
+ nodes.forEach((node, i) => {
11
+ const path = [...prefix, i];
12
+ const desc = getBlockKindDescriptor(node.kind);
13
+ if (desc.isContainer && !scansOwnRaw(node, desc)) {
14
+ walk(node.children ?? [], path);
15
+ return; // container raw duplicates child content; only leaves carry text
16
+ }
17
+ if (!desc.editable)
18
+ return; // thematicBreak and other non-editable kinds have no searchable text
19
+ out.push({ path, raw: node.raw });
20
+ });
21
+ };
22
+ walk(doc.children, []);
23
+ return out;
24
+ }
25
+ /** Joins per-target ranges back onto their paths, positionally — the ranges must
26
+ * come from the same target list, in the same order. */
27
+ export function matchesFromRanges(targets, perTarget) {
28
+ const out = [];
29
+ targets.forEach((target, i) => {
30
+ for (const r of perTarget[i] ?? []) {
31
+ out.push({ path: target.path, start: r.start, end: r.end, groups: r.groups });
32
+ }
33
+ });
34
+ return out;
35
+ }
36
+ export function scanDocument(doc, matcher) {
37
+ const targets = collectScanTargets(doc);
38
+ return matchesFromRanges(targets, targets.map((t) => matcher.findAll(t.raw)));
39
+ }
@@ -0,0 +1,31 @@
1
+ export interface MatcherOptions {
2
+ caseSensitive: boolean;
3
+ wholeWord: boolean;
4
+ regex: boolean;
5
+ }
6
+ export interface RawRange {
7
+ start: number;
8
+ end: number;
9
+ groups?: string[];
10
+ }
11
+ export interface CompiledMatcher {
12
+ findAll(text: string): RawRange[];
13
+ }
14
+ export type CompileResult = {
15
+ ok: true;
16
+ matcher: CompiledMatcher;
17
+ } | {
18
+ ok: false;
19
+ error: string;
20
+ };
21
+ /** What a regex-mode query compiles to. The off-thread executor searches the same
22
+ * language as the synchronous matcher because both mint the spec here. */
23
+ export interface RegexSpec {
24
+ pattern: string;
25
+ flags: string;
26
+ }
27
+ export declare function buildRegexSpec(query: string, opts: MatcherOptions): RegexSpec;
28
+ /** Every match of an already-compiled global regex. The scan worker ships as source text
29
+ * and cannot import, so it carries its own copy, pinned to this one by a parity test. */
30
+ export declare function execAll(re: RegExp, text: string): RawRange[];
31
+ export declare function compileMatcher(query: string, opts: MatcherOptions): CompileResult;
@@ -0,0 +1,70 @@
1
+ export function buildRegexSpec(query, opts) {
2
+ return {
3
+ pattern: opts.wholeWord ? `\\b(?:${query})\\b` : query,
4
+ // no 's'/'m': . excludes newline, ^/$ stay per-block
5
+ flags: opts.caseSensitive ? 'g' : 'gi'
6
+ };
7
+ }
8
+ /** Every match of an already-compiled global regex. The scan worker ships as source text
9
+ * and cannot import, so it carries its own copy, pinned to this one by a parity test. */
10
+ export function execAll(re, text) {
11
+ const out = [];
12
+ re.lastIndex = 0;
13
+ let m;
14
+ while ((m = re.exec(text)) !== null) {
15
+ out.push({ start: m.index, end: m.index + m[0].length, groups: [...m] });
16
+ if (m.index === re.lastIndex)
17
+ re.lastIndex++; // zero-width guard
18
+ }
19
+ return out;
20
+ }
21
+ const isWordChar = (ch) => !!ch && /\w/.test(ch);
22
+ export function compileMatcher(query, opts) {
23
+ if (query === '')
24
+ return { ok: true, matcher: { findAll: () => [] } };
25
+ if (opts.regex) {
26
+ const { pattern, flags } = buildRegexSpec(query, opts);
27
+ let re;
28
+ try {
29
+ re = new RegExp(pattern, flags);
30
+ }
31
+ catch (e) {
32
+ return { ok: false, error: e instanceof Error ? e.message : 'invalid pattern' };
33
+ }
34
+ return { ok: true, matcher: { findAll: (text) => execAll(re, text) } };
35
+ }
36
+ const needle = opts.caseSensitive ? query : query.toLowerCase();
37
+ return {
38
+ ok: true,
39
+ matcher: {
40
+ findAll(text) {
41
+ const hay = opts.caseSensitive ? text : text.toLowerCase();
42
+ // Case folding is not length-preserving ('İ' → 2 code units), so a folded
43
+ // haystack's indices can drift off the original string.
44
+ if (hay.length !== text.length)
45
+ return foldSafeFindAll(text, query, opts.wholeWord);
46
+ const out = [];
47
+ let from = 0;
48
+ let at;
49
+ while ((at = hay.indexOf(needle, from)) !== -1) {
50
+ const end = at + needle.length;
51
+ if (!opts.wholeWord || (!isWordChar(text[at - 1]) && !isWordChar(text[end]))) {
52
+ out.push({ start: at, end });
53
+ }
54
+ from = end;
55
+ }
56
+ return out;
57
+ }
58
+ }
59
+ };
60
+ }
61
+ function foldSafeFindAll(text, query, wholeWord) {
62
+ const escaped = query.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
63
+ const re = new RegExp(wholeWord ? `\\b(?:${escaped})\\b` : escaped, 'gi');
64
+ const out = [];
65
+ let m;
66
+ while ((m = re.exec(text)) !== null) {
67
+ out.push({ start: m.index, end: m.index + m[0].length });
68
+ }
69
+ return out;
70
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Bounds regex find. A pathological pattern spends minutes inside ONE `RegExp.exec`, which
3
+ * no main-thread budget can interrupt, so the only bound is a killable thread. The worker
4
+ * ships as source text through a Blob URL, not a bundler worker import, leaving dist
5
+ * packaging and consumer bundlers untouched. Where that is unavailable (SSR, a CSP-restricted
6
+ * embedder, the test runner) it degrades to a sync scan bounded only BETWEEN texts.
7
+ */
8
+ import { type RawRange } from './matcher';
9
+ /** Wall-clock ceiling for one scan: long enough for an honest regex over a large document,
10
+ * short enough that overrun reads as a stall rather than a freeze. */
11
+ export declare const REGEX_SCAN_DEADLINE_MS = 2000;
12
+ export interface RegexScanRequest {
13
+ readonly texts: readonly string[];
14
+ readonly pattern: string;
15
+ readonly flags: string;
16
+ /** Correlation token, echoed back untouched, so the caller can drop a stale outcome. */
17
+ readonly epoch: number;
18
+ }
19
+ /** `cancelled` covers supersession and release alike — nothing to report either way. */
20
+ export type RegexScanFailure = 'timeout' | 'error' | 'cancelled';
21
+ export type RegexScanOutcome = {
22
+ ok: true;
23
+ epoch: number;
24
+ ranges: RawRange[][];
25
+ } | {
26
+ ok: false;
27
+ epoch: number;
28
+ reason: RegexScanFailure;
29
+ };
30
+ export interface RegexExecutor {
31
+ /** Never rejects; every failure arrives as an `ok: false` outcome. Single-flight: a new
32
+ * scan supersedes the one in flight rather than queueing behind a never-returning exec. */
33
+ scan(request: RegexScanRequest): Promise<RegexScanOutcome>;
34
+ /** Terminates the live worker; the next scan respawns one. */
35
+ release(): void;
36
+ }
37
+ export interface RegexExecutorOptions {
38
+ deadlineMs?: number;
39
+ }
40
+ export declare const regexScanWorkerSource = "\nself.onmessage = (event) => {\n\tconst { texts, pattern, flags, epoch } = event.data;\n\tlet re;\n\ttry {\n\t\tre = new RegExp(pattern, flags);\n\t} catch {\n\t\tself.postMessage({ epoch, ok: false });\n\t\treturn;\n\t}\n\tconst ranges = [];\n\tfor (const text of texts) {\n\t\tconst found = [];\n\t\tre.lastIndex = 0;\n\t\tlet m;\n\t\twhile ((m = re.exec(text)) !== null) {\n\t\t\tfound.push({ start: m.index, end: m.index + m[0].length, groups: [...m] });\n\t\t\tif (m.index === re.lastIndex) re.lastIndex++;\n\t\t}\n\t\tranges.push(found);\n\t}\n\tself.postMessage({ epoch, ok: true, ranges });\n};\n";
41
+ export declare function createRegexExecutor(options?: RegexExecutorOptions): RegexExecutor;