@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,294 @@
1
+ import { devWarn } from '../dev-warn';
2
+ import { deletePluginEntries, registerOnce, devReplacesRegistration } from './register-once';
3
+ import { tryGetBlockKindDescriptor } from './block-kind-descriptor';
4
+ import { normalizeChord, isChordWellFormed } from './keybindings';
5
+ import { lookupOverride, overrideDecision } from './keybinding-overrides';
6
+ export const GLOBAL_COMMAND_IDS = ['history.undo', 'history.redo'];
7
+ export const BLOCK_COMMAND_IDS = [
8
+ 'block.split',
9
+ 'block.hardBreak',
10
+ 'block.insertTab',
11
+ 'block.mergePrev',
12
+ 'block.mergeNext',
13
+ 'block.moveUp',
14
+ 'block.moveDown',
15
+ 'format.toggleStrong',
16
+ 'format.toggleEmphasis',
17
+ 'format.toggleStrikethrough',
18
+ 'format.toggleCode',
19
+ 'link.openCard',
20
+ 'heading.cycle',
21
+ 'code.newline',
22
+ 'code.indent',
23
+ 'code.dedent',
24
+ 'code.backspace',
25
+ 'code.delete',
26
+ 'list.indent',
27
+ 'list.unindent',
28
+ 'cell.enter',
29
+ 'cell.tab',
30
+ 'cell.shiftTab',
31
+ // Bound on `tableCell` (the focused surface) but named for their subject: each takes the
32
+ // focused cell's row or column as its index, supplied from the cell's own props.
33
+ 'table.insertRowBelow',
34
+ 'table.insertRowAbove',
35
+ 'table.insertColumnRight',
36
+ 'table.insertColumnLeft',
37
+ 'table.deleteRow',
38
+ 'table.deleteColumn',
39
+ 'table.moveRowUp',
40
+ 'table.moveRowDown',
41
+ 'table.moveColumnLeft',
42
+ 'table.moveColumnRight',
43
+ 'table.cycleAlignment',
44
+ 'chrome.descendToBody'
45
+ ];
46
+ /**
47
+ * Commands whose arms rewrite one block's bytes around that block's own selection and have no
48
+ * cross-block reading: the dispatch seam declines them outright while a range is painted.
49
+ * Membership is the arm's shape, not the id's prefix — the link card mints its link over one
50
+ * block's offsets, and a range gives it no one block to mint into.
51
+ */
52
+ export const RANGE_DECLINED_COMMAND_IDS = new Set([
53
+ 'link.openCard'
54
+ ]);
55
+ /**
56
+ * The same one-block arms, but with a cross-block one behind them
57
+ * (`selection/cross-block/format-toggle.ts`), which the seam routes to through an injected
58
+ * router. Declined wherever no router is threaded, so a dispatch site that skips it cannot
59
+ * fall through to the focused block's own offsets.
60
+ */
61
+ export const CROSS_BLOCK_RANGE_COMMAND_IDS = new Set([
62
+ 'format.toggleStrong',
63
+ 'format.toggleEmphasis',
64
+ 'format.toggleStrikethrough',
65
+ 'format.toggleCode'
66
+ ]);
67
+ /**
68
+ * The command ids a host's selection toolbar invokes through `EditorInstance.runCommand`. The
69
+ * rest of the vocabulary stays internal until the command registry unifies it.
70
+ */
71
+ export const TOOLBAR_COMMANDS = {
72
+ toggleStrong: 'format.toggleStrong',
73
+ toggleEmphasis: 'format.toggleEmphasis',
74
+ toggleStrikethrough: 'format.toggleStrikethrough',
75
+ toggleCode: 'format.toggleCode',
76
+ /** The link editor Mod+K opens: over a selection it creates, inside a link it edits. */
77
+ editLink: 'link.openCard'
78
+ };
79
+ const globalCommands = new Map();
80
+ export function registerCommand(id, run) {
81
+ registerOnce(globalCommands.has(id), () => globalCommands.set(id, run), `registerCommand: "${id}" is already registered. Commands are register-once.`);
82
+ }
83
+ export function getCommand(id) {
84
+ return globalCommands.get(id);
85
+ }
86
+ const BUILTIN_COMMAND_IDS = new Set([...GLOBAL_COMMAND_IDS, ...BLOCK_COMMAND_IDS]);
87
+ /** True when the id is in the closed built-in vocabulary. Takes a plain, unbranded name. */
88
+ export function isBuiltinCommandId(id) {
89
+ return BUILTIN_COMMAND_IDS.has(id);
90
+ }
91
+ /**
92
+ * Test-only. Removes every command outside the closed built-in vocabulary; the plugin-global
93
+ * chord keymap resets separately (`__resetPluginGlobalKeymapForTests`).
94
+ */
95
+ export function __removePluginCommandsForTests() {
96
+ deletePluginEntries(globalCommands, (id) => BUILTIN_COMMAND_IDS.has(id));
97
+ }
98
+ const warnedDeadKeys = new Set();
99
+ /**
100
+ * Dev-warn once per (id, path) that a command reached no runnable handler at `path` — a dead
101
+ * key. Unreachable, not unregistered: a minted command resolves only where the dispatch target
102
+ * supplies a command context.
103
+ */
104
+ export function warnDeadKeyCommand(id, path) {
105
+ const key = `${path} ${id}`;
106
+ if (warnedDeadKeys.has(key))
107
+ return;
108
+ warnedDeadKeys.add(key);
109
+ devWarn('commands', `command "${id}" reached no handler on the ${path} path; key is dead`);
110
+ }
111
+ /** Test-only. Clears the dead-key warn memo so each test sees a first-time warn. */
112
+ export function __resetCommandWarningsForTests() {
113
+ warnedDeadKeys.clear();
114
+ }
115
+ registerCommand('history.undo', (ctx) => {
116
+ void ctx.history.requestUndo();
117
+ return true;
118
+ });
119
+ registerCommand('history.redo', (ctx) => {
120
+ void ctx.history.requestRedo();
121
+ return true;
122
+ });
123
+ export const GLOBAL_KEYMAP = [
124
+ { chord: 'Mod+Z', command: 'history.undo' },
125
+ { chord: 'Mod+Y', command: 'history.redo' },
126
+ { chord: 'Mod+Shift+Z', command: 'history.redo' }
127
+ ];
128
+ const pluginGlobalKeymap = [];
129
+ // Chords the editor UI intercepts outside the command resolvers (the search bar's
130
+ // document-level listener) — a plugin binding one would double-fire on a single keypress.
131
+ const RESERVED_UI_CHORDS = new Set(['Mod+F', 'Mod+H']);
132
+ /**
133
+ * True when the editor UI intercepts a chord outside the command resolvers. The single source
134
+ * both the plugin-global registration guard and the editor-root keydown handler read.
135
+ */
136
+ export function isReservedUiChord(chord) {
137
+ return RESERVED_UI_CHORDS.has(normalizeChord(chord));
138
+ }
139
+ /** The same pair, for the callers that must enumerate it rather than test one chord. */
140
+ export function reservedUiChords() {
141
+ return [...RESERVED_UI_CHORDS];
142
+ }
143
+ /**
144
+ * `candidateCommand` is the id the incoming registration will bind (the mint is deterministic:
145
+ * name IS the id). A dev-server re-eval re-binding its OWN command to its OWN chord is an
146
+ * idempotent replace, not a collision; reserved chords and cross-command collisions still throw.
147
+ */
148
+ export function assertPluginGlobalChordAvailable(rawChord, candidateCommand) {
149
+ // Fails loudly, not warn-and-drop: a malformed chord (the `'Ctrl+B'` → bare `'B'` trap) would
150
+ // bind a handler that fires on every plain keypress. Thrown before the mint (see
151
+ // global-commands.ts), so a rejected registration leaves no orphaned command.
152
+ if (!isChordWellFormed(rawChord)) {
153
+ throw new Error(`plugin global chord "${rawChord}" is malformed — modifiers must be Mod/Alt/Shift and the key non-empty`);
154
+ }
155
+ const chord = normalizeChord(rawChord);
156
+ if (RESERVED_UI_CHORDS.has(chord)) {
157
+ throw new Error(`plugin global chord "${rawChord}" is reserved by the editor UI (search) — pick another chord`);
158
+ }
159
+ // Activation-blind: registration is process-global register-once, so a chord no editor
160
+ // has activated yet still collides.
161
+ const collision = builtinGlobalBinding(chord, undefined);
162
+ if (collision) {
163
+ if (devReplacesRegistration() && collision.command === candidateCommand)
164
+ return;
165
+ throw new Error(`plugin global chord "${rawChord}" is already bound to "${collision.command}" — global chords are register-once`);
166
+ }
167
+ }
168
+ export function registerPluginGlobalBinding(binding, plugin) {
169
+ assertPluginGlobalChordAvailable(binding.chord, binding.command);
170
+ // A dev re-eval passed the same-command exemption above: replace in place instead of stacking
171
+ // a duplicate. A fresh registration never finds an existing entry.
172
+ const chord = normalizeChord(binding.chord);
173
+ const entry = { ...binding, plugin };
174
+ const existing = pluginGlobalKeymap.findIndex((b) => normalizeChord(b.chord) === chord);
175
+ if (existing >= 0)
176
+ pluginGlobalKeymap[existing] = entry;
177
+ else
178
+ pluginGlobalKeymap.push(entry);
179
+ }
180
+ /** The tier's one activation gate: every read of a plugin-global chord passes through it,
181
+ * and an absent activation means every installed plugin. */
182
+ function claimedHere(entry, activation) {
183
+ return entry.plugin === null || activation === undefined || activation.isActive(entry.plugin);
184
+ }
185
+ export function pluginGlobalBinding(chord, activation) {
186
+ const entry = findByChord(pluginGlobalKeymap, chord);
187
+ return entry && claimedHere(entry, activation) ? entry : null;
188
+ }
189
+ /** Every chord the plugin-global tier binds for `activation`. Registration is process-global,
190
+ * so an absent activation reflects plugins any mounted editor installed. */
191
+ export function pluginGlobalChords(activation) {
192
+ return pluginGlobalKeymap
193
+ .filter((entry) => claimedHere(entry, activation))
194
+ .map((b) => normalizeChord(b.chord));
195
+ }
196
+ export function __resetPluginGlobalKeymapForTests() {
197
+ pluginGlobalKeymap.length = 0;
198
+ }
199
+ /** First binding in `bindings` whose chord normalizes to the already-normalized `chord`. */
200
+ function findByChord(bindings, chord) {
201
+ return bindings?.find((b) => normalizeChord(b.chord) === chord) ?? null;
202
+ }
203
+ function builtinKindBinding(chord, kind) {
204
+ return findByChord(tryGetBlockKindDescriptor(kind)?.keymap, chord);
205
+ }
206
+ /**
207
+ * The consumer-override tier shared by leaf and bubble resolution: kind override, then global.
208
+ * `null` is a disable decision; `undefined` means neither tier decided.
209
+ */
210
+ function overrideTier(overrides, kind, chord) {
211
+ const kindDecision = overrideDecision(lookupOverride(overrides, kind, chord));
212
+ if (kindDecision !== undefined)
213
+ return kindDecision;
214
+ return overrideDecision(lookupOverride(overrides, 'global', chord));
215
+ }
216
+ /** The built-in global keymap tier, then the plugin-global tier — the shared tail of
217
+ * leaf resolution and both global-only resolvers. */
218
+ function builtinGlobalBinding(chord, activation) {
219
+ return findByChord(GLOBAL_KEYMAP, chord) ?? pluginGlobalBinding(chord, activation);
220
+ }
221
+ /**
222
+ * Container-bubble resolution: override(kind) → override(global) → built-in kind keymap. No
223
+ * built-in GLOBAL fallthrough — undo/redo belong to the focused leaf, and a bubble re-firing
224
+ * them would double-fire. Consumer overrides ARE honored at both scopes, so a global disable
225
+ * unbinds a chord a kind defines, and a global bind shadows the built-in kind binding.
226
+ */
227
+ export function resolveKindBinding(chord, kind, overrides) {
228
+ const override = overrideTier(overrides, kind, chord);
229
+ if (override !== undefined)
230
+ return override;
231
+ return builtinKindBinding(chord, kind);
232
+ }
233
+ /**
234
+ * Leaf precedence: override(kind) → override(global) → built-in kind → built-in global. Override
235
+ * source dominates specificity, so a global disable suppresses a chord a kind defines.
236
+ */
237
+ export function resolveBinding(chord, kind, overrides, activation) {
238
+ const override = overrideTier(overrides, kind, chord);
239
+ if (override !== undefined)
240
+ return override;
241
+ return builtinKindBinding(chord, kind) ?? builtinGlobalBinding(chord, activation);
242
+ }
243
+ /**
244
+ * True when the built-in keymap, or a plugin-global chord `activation` claims, binds this exact
245
+ * chord BEFORE any consumer override — never a modified variant like `Mod+Alt+Y`. Override-BLIND
246
+ * by design: it answers which chords carry a native browser default to suppress, not which
247
+ * command runs. A dispatch question reads `runGlobalChord`/`runGlobalChordOnKind`, which consult
248
+ * the override tier.
249
+ */
250
+ export function isDefaultGlobalChord(chord, activation) {
251
+ return builtinGlobalBinding(chord, activation) !== null;
252
+ }
253
+ /**
254
+ * Resolve a chord at GLOBAL scope only, for input-layer sites with no focused block for a kind
255
+ * tier to apply to: a consumer global override, else the editor-global keymap.
256
+ */
257
+ export function resolveGlobalBinding(chord, overrides, activation) {
258
+ const decision = overrideDecision(lookupOverride(overrides, 'global', chord));
259
+ if (decision !== undefined)
260
+ return decision;
261
+ return builtinGlobalBinding(chord, activation);
262
+ }
263
+ /**
264
+ * Run whatever `chord` claims at global scope, for the surfaces with no focused block for a kind
265
+ * tier to apply to — the editor root's windowed-out caret, the gap caret's proxy. True means the
266
+ * press was CONSUMED, which a disabled chord is without running anything.
267
+ */
268
+ export function runGlobalChord(chord, overrides, context) {
269
+ return runClaimedGlobalChord(resolveGlobalBinding(chord, overrides, context.activation), chord, context, false);
270
+ }
271
+ /**
272
+ * The same, for a block that IS its own focus target: no inner leaf carries the global tier for
273
+ * it, so resolution takes the leaf precedence and a consumer's KIND-scoped rebind reaches here.
274
+ */
275
+ export function runGlobalChordOnKind(chord, kind, overrides, context) {
276
+ return runClaimedGlobalChord(resolveBinding(chord, kind, overrides, context.activation), chord, context, true);
277
+ }
278
+ /** A chord the built-in tables bind is consumed whatever an override left it resolving to: the
279
+ * fall-through is the browser's own history, which bypasses the CST undo stack. */
280
+ function runClaimedGlobalChord(binding, chord, context, kindDispatchBelow) {
281
+ const run = binding ? getCommand(binding.command) : undefined;
282
+ const consumed = !!run || isDefaultGlobalChord(chord, context.activation);
283
+ // A resolved binding no global command backs is dead only where nothing else can answer it:
284
+ // consumed here and inert, or declined at a surface with no kind dispatch under it. A kind
285
+ // keymap chord declining INTO that dispatch is the normal handoff.
286
+ if (binding && !run && (consumed || !kindDispatchBelow)) {
287
+ warnDeadKeyCommand(binding.command, 'global-chord');
288
+ }
289
+ if (!consumed)
290
+ return false;
291
+ if (!context.isReading)
292
+ run?.(context);
293
+ return true;
294
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Ancestry dispatch for container raw rebuilds — looks up
3
+ * `descriptor.rebuildRaw`, so plugin containers participate by declaring one.
4
+ */
5
+ import type { CstNode } from '../core/nodes';
6
+ import type { ChildRawChange } from './child-spans';
7
+ /**
8
+ * Rebuild `raw` for every container along `path`, innermost first. The leaf at the tail of
9
+ * `path` is NOT rebuilt — callers mutate its raw before calling. Empty path rebuilds `root`.
10
+ */
11
+ export declare function rebuildAncestryRaw(root: CstNode, path: number[]): void;
12
+ /**
13
+ * Dispatch via the kind's descriptor `rebuildRaw`; throws on a leaf. Callers walking ancestry
14
+ * chains use {@link rebuildContainerRawIfContainer} instead.
15
+ */
16
+ export declare function rebuildContainerRaw(node: CstNode): void;
17
+ /**
18
+ * Rebuild `raw` when `node` has a rebuildRaw on its descriptor; no-op otherwise. `changed` is
19
+ * the one-child hint (`child-spans.ts`); a rebuilder ignoring it re-derives the whole raw.
20
+ */
21
+ export declare function rebuildContainerRawIfContainer(node: CstNode, changed?: ChildRawChange): void;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Ancestry dispatch for container raw rebuilds — looks up
3
+ * `descriptor.rebuildRaw`, so plugin containers participate by declaring one.
4
+ */
5
+ import { tryGetBlockKindDescriptor } from './block-kind-descriptor';
6
+ /**
7
+ * Rebuild `raw` for every container along `path`, innermost first. The leaf at the tail of
8
+ * `path` is NOT rebuilt — callers mutate its raw before calling. Empty path rebuilds `root`.
9
+ */
10
+ export function rebuildAncestryRaw(root, path) {
11
+ if (path.length === 0) {
12
+ rebuildContainerRaw(root);
13
+ return;
14
+ }
15
+ const containers = [];
16
+ let current = root;
17
+ for (let i = 0; i < path.length - 1; i++) {
18
+ current = current.children[path[i]];
19
+ containers.push(current);
20
+ }
21
+ for (let i = containers.length - 1; i >= 0; i--) {
22
+ rebuildContainerRaw(containers[i]);
23
+ }
24
+ rebuildContainerRaw(root);
25
+ }
26
+ /**
27
+ * Dispatch via the kind's descriptor `rebuildRaw`; throws on a leaf. Callers walking ancestry
28
+ * chains use {@link rebuildContainerRawIfContainer} instead.
29
+ */
30
+ export function rebuildContainerRaw(node) {
31
+ const rebuild = tryGetBlockKindDescriptor(node.kind)?.rebuildRaw;
32
+ if (!rebuild) {
33
+ throw new Error(`rebuildContainerRaw: kind "${node.kind}" has no rebuildRaw — only container kinds are valid`);
34
+ }
35
+ rebuild(node);
36
+ }
37
+ /**
38
+ * Rebuild `raw` when `node` has a rebuildRaw on its descriptor; no-op otherwise. `changed` is
39
+ * the one-child hint (`child-spans.ts`); a rebuilder ignoring it re-derives the whole raw.
40
+ */
41
+ export function rebuildContainerRawIfContainer(node, changed) {
42
+ tryGetBlockKindDescriptor(node.kind)?.rebuildRaw?.(node, changed);
43
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Per-container-kind raw rebuilders. Separate from container-raw.ts (the ancestry dispatch) so
3
+ * the built-in registrations can declare rebuildRaw directly: this file reaches no registry,
4
+ * while the dispatch must import one, and same-file would cycle. The strip and concat shapes
5
+ * live in child-spans.ts; each kind here contributes only its own per-line syntax.
6
+ */
7
+ import type { CstNode } from '../core/nodes';
8
+ import { type ChildRawChange } from './child-spans';
9
+ /** Rebuild a blockquote's `raw`: `> ` on content lines, `>` on blank lines. */
10
+ export declare function rebuildBlockquoteRaw(node: CstNode, changed?: ChildRawChange): void;
11
+ /**
12
+ * Rebuild a list item's `raw`: marker on the first line, indentation on continuations. Blank
13
+ * lines stay unindented — GFM loose-list form.
14
+ */
15
+ export declare function rebuildListItemRaw(node: CstNode, changed?: ChildRawChange): void;
16
+ export declare function rebuildListRaw(node: CstNode, changed?: ChildRawChange): void;
17
+ /** `| c0 | c1 | ... |` plus the row's own ending (single-space padding). */
18
+ export declare function rebuildTableRowRaw(node: CstNode): void;
19
+ /**
20
+ * The same bytes under an ending the row does not own: a row minted by a structural op has no
21
+ * authored one, so the TABLE dictates it. Split from the descriptor-shaped rebuilder above
22
+ * because `rebuildRaw`'s second parameter is the changed-child hint.
23
+ */
24
+ export declare function writeTableRow(node: CstNode, lineEnding: string): void;
25
+ /**
26
+ * Header + synthesized canonical delimiter + body rows. Every row is rebuilt before assembly, so
27
+ * the whole table normalizes to canonical padding on first structural mutation rather than
28
+ * landing half-padded. The table's own ending drives every emitted line (G4.20): a row minted by
29
+ * a structural op has no authored ending, so per-row detection would strand it on LF in a CRLF
30
+ * table.
31
+ */
32
+ export declare function rebuildTableRaw(node: CstNode): void;
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Per-container-kind raw rebuilders. Separate from container-raw.ts (the ancestry dispatch) so
3
+ * the built-in registrations can declare rebuildRaw directly: this file reaches no registry,
4
+ * while the dispatch must import one, and same-file would cycle. The strip and concat shapes
5
+ * live in child-spans.ts; each kind here contributes only its own per-line syntax.
6
+ */
7
+ import { metadataOf } from '../core/nodes';
8
+ import { trailingLineEnding } from '../core/lines';
9
+ import { rebuildConcatRaw, rebuildStripRaw } from './child-spans';
10
+ // ── Blockquote ───────────────────────────────────────────────────────────────
11
+ /** Rebuild a blockquote's `raw`: `> ` on content lines, `>` on blank lines. */
12
+ export function rebuildBlockquoteRaw(node, changed) {
13
+ if (!node.children)
14
+ return;
15
+ rebuildStripRaw(node, quoteLine, changed);
16
+ }
17
+ const quoteLine = (text) => (text === '' ? '>' : '> ' + text);
18
+ // ── List ─────────────────────────────────────────────────────────────────────
19
+ /**
20
+ * Rebuild a list item's `raw`: marker on the first line, indentation on continuations. Blank
21
+ * lines stay unindented — GFM loose-list form.
22
+ */
23
+ export function rebuildListItemRaw(node, changed) {
24
+ if (!node.children || !node.metadata)
25
+ return;
26
+ const meta = metadataOf(node, 'listItem');
27
+ const marker = meta.marker ?? '- ';
28
+ const taskMarker = meta.taskMarker ?? '';
29
+ const indent = ' '.repeat(marker.length);
30
+ rebuildStripRaw(node, (text, first) => {
31
+ if (first)
32
+ return marker + taskMarker + text;
33
+ return text === '' ? '' : indent + text;
34
+ }, changed);
35
+ }
36
+ export function rebuildListRaw(node, changed) {
37
+ if (!node.children)
38
+ return;
39
+ rebuildConcatRaw(node, changed);
40
+ }
41
+ // ── Table ────────────────────────────────────────────────────────────────────
42
+ /** `| c0 | c1 | ... |` plus the row's own ending (single-space padding). */
43
+ export function rebuildTableRowRaw(node) {
44
+ writeTableRow(node, trailingLineEnding(node.raw));
45
+ }
46
+ /**
47
+ * The same bytes under an ending the row does not own: a row minted by a structural op has no
48
+ * authored one, so the TABLE dictates it. Split from the descriptor-shaped rebuilder above
49
+ * because `rebuildRaw`'s second parameter is the changed-child hint.
50
+ */
51
+ export function writeTableRow(node, lineEnding) {
52
+ if (!node.children)
53
+ return;
54
+ const cells = node.children.map((c) => c.raw);
55
+ node.raw = '| ' + cells.join(' | ') + ' |' + lineEnding;
56
+ }
57
+ /**
58
+ * Header + synthesized canonical delimiter + body rows. Every row is rebuilt before assembly, so
59
+ * the whole table normalizes to canonical padding on first structural mutation rather than
60
+ * landing half-padded. The table's own ending drives every emitted line (G4.20): a row minted by
61
+ * a structural op has no authored ending, so per-row detection would strand it on LF in a CRLF
62
+ * table.
63
+ */
64
+ export function rebuildTableRaw(node) {
65
+ if (!node.children)
66
+ return;
67
+ const meta = metadataOf(node, 'table');
68
+ const lineEnding = trailingLineEnding(node.raw);
69
+ for (const row of node.children)
70
+ writeTableRow(row, lineEnding);
71
+ const headerRow = node.children[0];
72
+ const bodyRows = node.children.slice(1);
73
+ const delimiterCells = meta.alignments.map(formatAlignmentCell).join(' | ');
74
+ const delimiterLine = '| ' + delimiterCells + ' |' + lineEnding;
75
+ let raw = (headerRow?.raw ?? '') + delimiterLine;
76
+ for (const r of bodyRows)
77
+ raw += r.raw;
78
+ node.raw = raw;
79
+ }
80
+ function formatAlignmentCell(a) {
81
+ switch (a) {
82
+ case 'left':
83
+ return ':---';
84
+ case 'center':
85
+ return ':---:';
86
+ case 'right':
87
+ return '---:';
88
+ case 'none':
89
+ return '---';
90
+ default: {
91
+ const _exhaustive = a;
92
+ throw new Error(`Unknown alignment: ${_exhaustive}`);
93
+ }
94
+ }
95
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The single-block plugin unit: declare-and-describe a kind, then bind its component, sparing a
3
+ * one-kind plugin the register/define double-wrap and its setup ordering. A multi-kind plugin
4
+ * stays on `definePlugin` directly. `kind` is the plain declared-kind NAME, branded lazily after
5
+ * `register` runs — `declaredPluginKind` throws for a not-yet-declared name.
6
+ */
7
+ import type { Component } from 'svelte';
8
+ import { type EditorPlugin } from './plugin-install';
9
+ import type { BlockComponentExports, BlockComponentProps } from '../block-component';
10
+ export declare function definePluginBlock<P extends Partial<BlockComponentProps> & Record<string, unknown>>(config: {
11
+ name: string;
12
+ kind: string;
13
+ component: Component<P, BlockComponentExports>;
14
+ register: () => void;
15
+ }): EditorPlugin;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The single-block plugin unit: declare-and-describe a kind, then bind its component, sparing a
3
+ * one-kind plugin the register/define double-wrap and its setup ordering. A multi-kind plugin
4
+ * stays on `definePlugin` directly. `kind` is the plain declared-kind NAME, branded lazily after
5
+ * `register` runs — `declaredPluginKind` throws for a not-yet-declared name.
6
+ */
7
+ import { definePlugin } from './plugin-install';
8
+ import { declaredPluginKind } from './plugin-kind';
9
+ import { registerBlockComponent, defineBlockComponent } from './block-component-registry';
10
+ export function definePluginBlock(config) {
11
+ return definePlugin({
12
+ name: config.name,
13
+ setup() {
14
+ config.register();
15
+ registerBlockComponent(declaredPluginKind(config.kind), defineBlockComponent(config.component));
16
+ }
17
+ });
18
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * The fencedCode raw-write rule, declared on the kind as `normalizeRawWrite` and applied at every
3
+ * write sink. RESTORE re-appends a closer a truncating write dropped and DROP removes one it
4
+ * stranded, ESCALATE grows both runs past a body line that would read as the closer, SANITIZE
5
+ * drops backticks from a backtick fence's info string (CommonMark §4.5) — all off the block's OWN
6
+ * fence shape, which is why the pass takes a node. An authored open fence is exempt.
7
+ */
8
+ import type { NodeView } from '../core/node-views';
9
+ export interface FenceShape {
10
+ marker: '`' | '~';
11
+ /** The block's own run length, from its metadata — not re-scanned from the write. */
12
+ length: number;
13
+ closed: boolean;
14
+ }
15
+ /** Whether the written bytes are the user authoring the block's syntax, or content. */
16
+ export type FenceWriteMode = 'authored' | 'literal';
17
+ export interface FenceWriteInput {
18
+ /** Display text about to be committed — raw without its trailing line ending. */
19
+ display: string;
20
+ /** Caret offset in `display`, mapped onto the reconciled bytes on the way out. */
21
+ caret: number;
22
+ fence: FenceShape;
23
+ mode: FenceWriteMode;
24
+ }
25
+ export interface FenceWriteResult {
26
+ display: string;
27
+ caret: number;
28
+ }
29
+ export declare function fenceShapeOf(node: NodeView): FenceShape;
30
+ export declare function reconcileFenceWrite(input: FenceWriteInput): FenceWriteResult;
31
+ /**
32
+ * A whole fencedCode `raw` made legal — the kind's `normalizeRawWrite`. Literal by
33
+ * construction: a sink reaching a node's bytes without its surface is never the author
34
+ * typing the block's own syntax. The fence lines reconcile first, so ESCALATE measures a
35
+ * body that ends where the closer does.
36
+ */
37
+ export declare function normalizeFencedRaw(raw: string, node: NodeView): string;
38
+ /**
39
+ * The bytes with `info` written onto the opening fence line. Only that span moves, so the
40
+ * indent, both marker runs, the body and the closer come through byte-identical. Null when
41
+ * line 0 does not read as this block's opener at all.
42
+ */
43
+ export declare function writeFenceInfo(display: string, info: string, fence: FenceShape): string | null;