@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,560 @@
1
+ /**
2
+ * Built-in block-kind descriptors and inline-construct policies, applied by an EXPLICIT
3
+ * `registerBuiltInDescriptors()` call from `core/inline/index.ts` and
4
+ * `components/built-in-blocks.ts`: the `sideEffects` allowlist names dist paths, never the src
5
+ * specifiers used inside this library, so only a called binding is safe from tree-shaking. Split
6
+ * from `block-kind-descriptor.ts` so that module carries no registration payload.
7
+ */
8
+ import { metadataOf } from '../core/nodes';
9
+ import { displayLength } from '../core/lines';
10
+ import { containerClosure } from './closure';
11
+ import { registerBlockKind } from './block-kind-descriptor';
12
+ import { rebuildBlockquoteRaw, rebuildListItemRaw, rebuildListRaw, rebuildTableRaw, rebuildTableRowRaw } from './container-rebuilders';
13
+ import { normalizeCellRaw } from './table-cell-raw';
14
+ import { normalizeFencedRaw } from './fenced-code-raw';
15
+ import { registerInlineConstructPolicy } from './inline-construct-policy';
16
+ import { wrapAsCodeSpan } from '../core/inline/backticks';
17
+ // ── Content-range helpers ──────────────────────────────────────────────────
18
+ // Headings carry a `# ` prefix that is not part of the editable text.
19
+ function headingContentRange(node) {
20
+ const raw = node.raw;
21
+ const displayEnd = displayLength(raw);
22
+ let i = 0;
23
+ while (i < raw.length && raw[i] === ' ')
24
+ i++;
25
+ while (i < raw.length && raw[i] === '#')
26
+ i++;
27
+ if (i < raw.length && raw[i] === ' ')
28
+ i++;
29
+ return { start: i, end: displayEnd };
30
+ }
31
+ // Setext headings carry a trailing underline line that is structural, not content.
32
+ function setextHeadingContentRange(node) {
33
+ const raw = node.raw;
34
+ const end = displayLength(raw);
35
+ const underlineStart = raw.lastIndexOf('\n', end - 1);
36
+ if (underlineStart === -1)
37
+ return { start: 0, end };
38
+ let contentEnd = underlineStart;
39
+ if (contentEnd > 0 && raw[contentEnd - 1] === '\r')
40
+ contentEnd--;
41
+ return { start: 0, end: contentEnd };
42
+ }
43
+ // ── Keymaps ───────────────────────────────────────────────────────────────
44
+ // Shared by every kind TextEditableBlock renders — prose and the raw-editable fallback alike —
45
+ // so transformative chords behave identically across them.
46
+ const TEXT_EDITABLE_KEYMAP = [
47
+ { chord: 'Enter', command: 'block.split' },
48
+ { chord: 'Shift+Enter', command: 'block.hardBreak' },
49
+ { chord: 'Tab', command: 'block.insertTab' },
50
+ { chord: 'Backspace', command: 'block.mergePrev' },
51
+ { chord: 'Delete', command: 'block.mergeNext' },
52
+ { chord: 'Alt+ArrowUp', command: 'block.moveUp' },
53
+ { chord: 'Alt+ArrowDown', command: 'block.moveDown' },
54
+ { chord: 'Mod+B', command: 'format.toggleStrong' },
55
+ { chord: 'Mod+I', command: 'format.toggleEmphasis' },
56
+ { chord: 'Mod+Shift+X', command: 'format.toggleStrikethrough' },
57
+ { chord: 'Mod+E', command: 'format.toggleCode' },
58
+ // The live-mode link card. Consumed even when no card opens (a caret outside every link
59
+ // no-ops): `reservedChords()` reports the chord as claimed, and a fall-through would run the
60
+ // browser's own Mod+K.
61
+ { chord: 'Mod+K', command: 'link.openCard' },
62
+ { chord: 'Mod+0', command: 'heading.cycle', arg: 0 },
63
+ { chord: 'Mod+1', command: 'heading.cycle', arg: 1 },
64
+ { chord: 'Mod+2', command: 'heading.cycle', arg: 2 },
65
+ { chord: 'Mod+3', command: 'heading.cycle', arg: 3 },
66
+ { chord: 'Mod+4', command: 'heading.cycle', arg: 4 },
67
+ { chord: 'Mod+5', command: 'heading.cycle', arg: 5 },
68
+ { chord: 'Mod+6', command: 'heading.cycle', arg: 6 }
69
+ ];
70
+ // The cell is the focused surface inside a table, so the table's whole keyboard vocabulary binds
71
+ // on THIS kind — an override scoped to `table` would resolve against a block that never holds
72
+ // the caret. Plain arrows stay unbound: they depend on caret position, which a chord can't
73
+ // express, so they live in `cell-keydown-plan.ts`.
74
+ const TABLE_CELL_KEYMAP = [
75
+ { chord: 'Enter', command: 'cell.enter' },
76
+ { chord: 'Tab', command: 'cell.tab' },
77
+ { chord: 'Shift+Tab', command: 'cell.shiftTab' },
78
+ { chord: 'Mod+B', command: 'format.toggleStrong' },
79
+ { chord: 'Mod+I', command: 'format.toggleEmphasis' },
80
+ { chord: 'Mod+Shift+X', command: 'format.toggleStrikethrough' },
81
+ { chord: 'Mod+E', command: 'format.toggleCode' },
82
+ { chord: 'Mod+K', command: 'link.openCard' },
83
+ { chord: 'Mod+Enter', command: 'table.insertRowBelow' },
84
+ { chord: 'Mod+Shift+Enter', command: 'table.insertRowAbove' },
85
+ { chord: 'Alt+Shift+ArrowRight', command: 'table.insertColumnRight' },
86
+ { chord: 'Alt+Shift+ArrowLeft', command: 'table.insertColumnLeft' },
87
+ { chord: 'Mod+Shift+Backspace', command: 'table.deleteRow' },
88
+ { chord: 'Alt+Shift+Backspace', command: 'table.deleteColumn' },
89
+ { chord: 'Alt+ArrowUp', command: 'table.moveRowUp' },
90
+ { chord: 'Alt+ArrowDown', command: 'table.moveRowDown' },
91
+ { chord: 'Alt+ArrowLeft', command: 'table.moveColumnLeft' },
92
+ { chord: 'Alt+ArrowRight', command: 'table.moveColumnRight' },
93
+ { chord: 'Mod+Shift+A', command: 'table.cycleAlignment' },
94
+ // The whole table among its siblings. Alt+Arrow, every other kind's reorder chord, is taken
95
+ // by the row reorder a cell caret means first.
96
+ { chord: 'Mod+Alt+ArrowUp', command: 'block.moveUp' },
97
+ { chord: 'Mod+Alt+ArrowDown', command: 'block.moveDown' }
98
+ ];
99
+ // ── Closure blocks ────────────────────────────────────────────────────────────
100
+ // Shared by the not-mergeable, non-inline raw-text leaves — byte-identical rows, hoisted rather
101
+ // than triplicated. fencedCode diverges too widely to spread, so it stays inline.
102
+ const RAW_TEXT_LEAF_CLOSURE = {
103
+ roundTrip: { mode: 'inherit-default' },
104
+ focus: { mode: 'implemented', via: 'native caret in the raw-editable contenteditable' },
105
+ mergeBackspace: {
106
+ mode: 'implemented',
107
+ via: 'mergeRole=not-mergeable — Backspace moves focus, never concatenates'
108
+ },
109
+ selectionPaint: { mode: 'implemented', via: 'measurePartialRects (raw offsets)' },
110
+ searchPaint: { mode: 'implemented', via: 'raw scanned; matches painted as decoration marks' },
111
+ reorder: { mode: 'implemented', via: 'Alt+Arrow block.move keymap' },
112
+ undo: { mode: 'inherit-default' },
113
+ clipboard: { mode: 'inherit-default' },
114
+ simOracle: { mode: 'implemented', via: 'note-taking simulation under the loaded-ops oracles' }
115
+ };
116
+ // The prose trio share a closure differing only in three via strings. Bake the
117
+ // structurally-fixed rows; demand the varying vias so the honesty rule stays author-supplied.
118
+ function proseLeafClosure(vias) {
119
+ return {
120
+ roundTrip: { mode: 'inherit-default' },
121
+ focus: { mode: 'implemented', via: 'native caret in the prose contenteditable' },
122
+ mergeBackspace: { mode: 'implemented', via: vias.mergeBackspaceVia },
123
+ selectionPaint: { mode: 'implemented', via: vias.selectionPaintVia },
124
+ searchPaint: { mode: 'implemented', via: vias.searchPaintVia },
125
+ reorder: { mode: 'implemented', via: vias.reorderVia ?? 'Alt+Arrow block.move keymap' },
126
+ undo: { mode: 'inherit-default' },
127
+ clipboard: { mode: 'inherit-default' },
128
+ simOracle: { mode: 'implemented', via: 'note-taking simulation under the loaded-ops oracles' }
129
+ };
130
+ }
131
+ // ── Inline-construct policies ───────────────────────────────────────────────
132
+ // Registered beside the block descriptors rather than from the component layer so a headless
133
+ // consumer — and the unit bootstrap, which loads only this module — reads the same rows.
134
+ function registerBuiltInInlinePolicies() {
135
+ // Outermost first, and code is innermost because its content is literal: no other mark can
136
+ // take effect inside it.
137
+ const marks = [
138
+ { kind: 'strong', markerBytes: '**', command: 'format.toggleStrong' },
139
+ { kind: 'emphasis', markerBytes: '*', command: 'format.toggleEmphasis' },
140
+ { kind: 'strikethrough', markerBytes: '~~', command: 'format.toggleStrikethrough' },
141
+ {
142
+ kind: 'inlineCode',
143
+ markerBytes: '`',
144
+ command: 'format.toggleCode',
145
+ wrapBytes: wrapAsCodeSpan
146
+ }
147
+ ];
148
+ marks.forEach(({ kind, ...mark }, nestingRank) => {
149
+ registerInlineConstructPolicy(kind, {
150
+ edgeAffinity: 'symmetric-pair',
151
+ autoUnwrapOnEmpty: true,
152
+ splitBehavior: 'close-and-reopen',
153
+ revealable: true,
154
+ mark: { nestingRank, ...mark }
155
+ });
156
+ });
157
+ // A link's closer is its URL, not a mirror of its opener, so neither edge extends; the
158
+ // split rebalancer is what duplicates the URL across the halves.
159
+ registerInlineConstructPolicy('link', {
160
+ edgeAffinity: 'never-extend',
161
+ autoUnwrapOnEmpty: true,
162
+ splitBehavior: 'close-and-reopen',
163
+ revealable: true,
164
+ cardEditable: true
165
+ });
166
+ // An image with an empty alt is still an image, and a split inside one moves bytes only.
167
+ registerInlineConstructPolicy('image', {
168
+ edgeAffinity: 'never-extend',
169
+ autoUnwrapOnEmpty: false,
170
+ splitBehavior: 'plain',
171
+ revealable: true
172
+ });
173
+ // An autolink's `<`/`>` are a link's delimiters by another spelling: the destination IS the
174
+ // text, so a byte landing between the brackets rewrites where the link goes. Never-extend, for
175
+ // the same reason the bracket form is (live-mode.md § 4.2), and plain: two halves of a URL
176
+ // are not two URLs.
177
+ registerInlineConstructPolicy('autolink', {
178
+ edgeAffinity: 'never-extend',
179
+ autoUnwrapOnEmpty: false,
180
+ splitBehavior: 'plain',
181
+ revealable: false
182
+ });
183
+ // Unstamped marker runs, permanently hidden in live mode: the `\X` pair and the trailing-space
184
+ // run delete as a unit, so nothing may rewrite their markers around an edit.
185
+ for (const kind of ['escape', 'hardLineBreak']) {
186
+ registerInlineConstructPolicy(kind, {
187
+ edgeAffinity: 'never-extend',
188
+ autoUnwrapOnEmpty: false,
189
+ splitBehavior: 'plain',
190
+ revealable: false
191
+ });
192
+ }
193
+ }
194
+ // ── Built-in registrations ──────────────────────────────────────────────────
195
+ // Idempotence guard, not a registry bypass: both entry points call this, and a
196
+ // dev-server re-eval resets it so the register-once dev valve still replaces.
197
+ let registered = false;
198
+ export function registerBuiltInDescriptors() {
199
+ if (registered)
200
+ return;
201
+ registered = true;
202
+ registerBuiltInInlinePolicies();
203
+ registerBlockKind('paragraph', {
204
+ gapEdges: 'none',
205
+ mergeRole: 'prose',
206
+ editable: true,
207
+ supportsInline: true,
208
+ keymap: TEXT_EDITABLE_KEYMAP,
209
+ conformanceFixture: 'hello world\n',
210
+ closure: proseLeafClosure({
211
+ mergeBackspaceVia: 'mergeRole=prose — Backspace merges into the previous prose block',
212
+ selectionPaintVia: 'measurePartialRects (raw offsets, per visual line)',
213
+ searchPaintVia: 'prose raw scanned; matches painted as marks',
214
+ reorderVia: 'Alt+Arrow block.move keymap; resolveReorderUnit'
215
+ })
216
+ });
217
+ registerBlockKind('heading', {
218
+ gapEdges: 'none',
219
+ mergeRole: 'prose-absorber',
220
+ editable: true,
221
+ supportsInline: true,
222
+ getContentRange: headingContentRange,
223
+ // Live paints no `## `, so the first Backspace a user can aim at it takes the structure
224
+ // they CAN see; the second one merges, through the untouched cascade.
225
+ contentStartBackspace: 'demote-first',
226
+ keymap: TEXT_EDITABLE_KEYMAP,
227
+ conformanceFixture: '# Heading\n',
228
+ closure: proseLeafClosure({
229
+ mergeBackspaceVia: 'mergeRole=prose-absorber — absorbs the following prose block',
230
+ selectionPaintVia: 'measurePartialRects (content range, marker skipped)',
231
+ searchPaintVia: 'content-range raw scanned; marks (marker prefix skipped)'
232
+ })
233
+ });
234
+ registerBlockKind('setextHeading', {
235
+ gapEdges: 'none',
236
+ mergeRole: 'prose-absorber',
237
+ editable: true,
238
+ supportsInline: true,
239
+ getContentRange: setextHeadingContentRange,
240
+ contentStartBackspace: 'demote-first',
241
+ keymap: TEXT_EDITABLE_KEYMAP,
242
+ conformanceFixture: 'Title\n===\n',
243
+ closure: proseLeafClosure({
244
+ mergeBackspaceVia: 'mergeRole=prose-absorber — absorbs the following prose block',
245
+ selectionPaintVia: 'measurePartialRects (content range, underline skipped)',
246
+ searchPaintVia: 'content-range raw scanned; marks (underline line skipped)'
247
+ })
248
+ });
249
+ registerBlockKind('fencedCode', {
250
+ mergeRole: 'not-mergeable',
251
+ editable: true,
252
+ supportsInline: false,
253
+ // Enter inside the fence writes a code newline, so neither edge can grow a sibling.
254
+ gapEdges: 'both',
255
+ normalizeRawWrite: normalizeFencedRaw,
256
+ keymap: [
257
+ { chord: 'Enter', command: 'code.newline' },
258
+ { chord: 'Tab', command: 'code.indent' },
259
+ { chord: 'Shift+Tab', command: 'code.dedent' },
260
+ { chord: 'Backspace', command: 'code.backspace' },
261
+ { chord: 'Delete', command: 'code.delete' },
262
+ { chord: 'Alt+ArrowUp', command: 'block.moveUp' },
263
+ { chord: 'Alt+ArrowDown', command: 'block.moveDown' },
264
+ { chord: 'Mod+B', command: 'format.toggleStrong' },
265
+ { chord: 'Mod+I', command: 'format.toggleEmphasis' },
266
+ { chord: 'Mod+Shift+X', command: 'format.toggleStrikethrough' },
267
+ { chord: 'Mod+E', command: 'format.toggleCode' },
268
+ { chord: 'Mod+K', command: 'link.openCard' }
269
+ ],
270
+ conformanceFixture: '```\ncode\n```\n',
271
+ closure: {
272
+ roundTrip: { mode: 'inherit-default' },
273
+ focus: { mode: 'implemented', via: 'native caret in the code contenteditable' },
274
+ mergeBackspace: {
275
+ mode: 'implemented',
276
+ via: 'not-mergeable — code.backspace edits within; no cross-block concat'
277
+ },
278
+ selectionPaint: {
279
+ mode: 'implemented',
280
+ via: 'measurePartialRects (raw offsets, per visual line)'
281
+ },
282
+ searchPaint: { mode: 'implemented', via: 'code raw scanned; matches painted as marks' },
283
+ reorder: { mode: 'implemented', via: 'Alt+Arrow block.move keymap' },
284
+ undo: { mode: 'inherit-default' },
285
+ clipboard: { mode: 'inherit-default' },
286
+ simOracle: { mode: 'implemented', via: 'note-taking simulation under the loaded-ops oracles' }
287
+ }
288
+ });
289
+ registerBlockKind('thematicBreak', {
290
+ mergeRole: 'not-mergeable',
291
+ editable: false,
292
+ supportsInline: false,
293
+ blockFocus: 'whole-block',
294
+ // Leading edge only: its focused Enter already inserts a paragraph below.
295
+ gapEdges: 'before',
296
+ keymap: [
297
+ { chord: 'Alt+ArrowUp', command: 'block.moveUp' },
298
+ { chord: 'Alt+ArrowDown', command: 'block.moveDown' }
299
+ ],
300
+ conformanceFixture: '---\n',
301
+ closure: {
302
+ roundTrip: { mode: 'inherit-default' },
303
+ focus: {
304
+ mode: 'implemented',
305
+ via: 'blockFocus=whole-block — focus-then-delete; ThematicBreakBlock supplies the focus surface'
306
+ },
307
+ mergeBackspace: {
308
+ mode: 'implemented',
309
+ via: 'blockFocus=whole-block — caret-adjacent Backspace focuses, a second press deletes'
310
+ },
311
+ selectionPaint: { mode: 'implemented', via: 'whole-block cover rect (no partial offsets)' },
312
+ searchPaint: {
313
+ mode: 'not-supported',
314
+ reason: 'no editable text content — nothing to search'
315
+ },
316
+ reorder: { mode: 'implemented', via: 'Alt+Arrow block.move keymap' },
317
+ undo: { mode: 'inherit-default' },
318
+ clipboard: {
319
+ mode: 'implemented',
320
+ via: 'focused-block Mod+C/Mod+X (handleWholeBlockKeys); cross-block slice inherits the default'
321
+ },
322
+ simOracle: { mode: 'implemented', via: 'note-taking simulation under the loaded-ops oracles' }
323
+ }
324
+ });
325
+ registerBlockKind('indentedCode', {
326
+ gapEdges: 'none',
327
+ mergeRole: 'not-mergeable',
328
+ editable: true,
329
+ supportsInline: false,
330
+ keymap: TEXT_EDITABLE_KEYMAP,
331
+ conformanceFixture: ' indented code\n',
332
+ closure: RAW_TEXT_LEAF_CLOSURE
333
+ });
334
+ registerBlockKind('htmlBlock', {
335
+ gapEdges: 'none',
336
+ mergeRole: 'not-mergeable',
337
+ editable: true,
338
+ supportsInline: false,
339
+ keymap: TEXT_EDITABLE_KEYMAP,
340
+ conformanceFixture: '<div>\nhtml\n</div>\n',
341
+ closure: RAW_TEXT_LEAF_CLOSURE
342
+ });
343
+ registerBlockKind('linkReferenceDefinition', {
344
+ gapEdges: 'none',
345
+ mergeRole: 'not-mergeable',
346
+ editable: true,
347
+ supportsInline: false,
348
+ keymap: TEXT_EDITABLE_KEYMAP,
349
+ conformanceFixture: '[id]: /url "title"\n',
350
+ closure: RAW_TEXT_LEAF_CLOSURE
351
+ });
352
+ registerBlockKind('table', {
353
+ mergeRole: 'not-mergeable',
354
+ editable: true,
355
+ supportsInline: false,
356
+ // Enter inside a cell stays in the grid, so neither edge can grow a sibling.
357
+ gapEdges: 'both',
358
+ container: { contract: 'grid', rebuildRaw: rebuildTableRaw },
359
+ conformanceFixture: '| a | b |\n| - | - |\n| 1 | 2 |\n',
360
+ closure: {
361
+ roundTrip: { mode: 'implemented', via: 'container contract=grid — rebuildTableRaw' },
362
+ focus: { mode: 'implemented', via: 'focus walks into the first cell' },
363
+ mergeBackspace: {
364
+ mode: 'implemented',
365
+ via: 'not-mergeable — no block merge; edits stay within cells'
366
+ },
367
+ selectionPaint: {
368
+ mode: 'implemented',
369
+ via: 'rectangular cell selection; per-cell cover rects'
370
+ },
371
+ searchPaint: {
372
+ mode: 'implemented',
373
+ via: 'descends to cells; per-cell mark overlay (measurePartialRects cell index)'
374
+ },
375
+ reorder: { mode: 'implemented', via: 'whole-block reorder through the parent BlockList' },
376
+ undo: { mode: 'inherit-default' },
377
+ clipboard: {
378
+ mode: 'implemented',
379
+ via: 'rectangular multi-cell copy → synthesized GFM sub-table, not a byte slice (copyRectangleAsSubTable, cell index)'
380
+ },
381
+ simOracle: { mode: 'implemented', via: 'note-taking simulation drives table cell edits' }
382
+ }
383
+ });
384
+ registerBlockKind('tableRow', {
385
+ gapEdges: 'none',
386
+ mergeRole: 'not-mergeable',
387
+ editable: true,
388
+ supportsInline: false,
389
+ container: { contract: 'grid', rebuildRaw: rebuildTableRowRaw },
390
+ conformanceFixture: '| a | b |\n| - | - |\n| 1 | 2 |\n',
391
+ closure: {
392
+ roundTrip: { mode: 'implemented', via: 'container contract=grid — rebuildTableRowRaw' },
393
+ focus: { mode: 'implemented', via: 'focus walks into a cell' },
394
+ mergeBackspace: {
395
+ mode: 'implemented',
396
+ via: 'not-mergeable — no row-level merge; cell edits only'
397
+ },
398
+ selectionPaint: { mode: 'implemented', via: 'per-cell cover rects' },
399
+ searchPaint: { mode: 'implemented', via: 'descends to cells; per-cell mark overlay' },
400
+ reorder: {
401
+ mode: 'not-supported',
402
+ reason: 'grid child — not a block-level reorder unit; whole rows move via a row-drag gesture inside the table grid, not the BlockList'
403
+ },
404
+ undo: { mode: 'inherit-default' },
405
+ // inherit-default, unlike table/tableCell: no clipboard path anchors on a row node,
406
+ // so the row's per-cell painting does not extend to being a copy source.
407
+ clipboard: { mode: 'inherit-default' },
408
+ simOracle: { mode: 'implemented', via: 'note-taking simulation (table edits)' }
409
+ }
410
+ });
411
+ registerBlockKind('tableCell', {
412
+ gapEdges: 'none',
413
+ mergeRole: 'not-mergeable',
414
+ editable: true,
415
+ supportsInline: true,
416
+ contextDependentKind: true,
417
+ normalizeRawWrite: normalizeCellRaw,
418
+ renderImagesAsWidgets: false,
419
+ keymap: TABLE_CELL_KEYMAP,
420
+ // No conformanceFixture: the table opener mints cells, so one never stands alone as the
421
+ // top-level result of a document scan.
422
+ closure: {
423
+ roundTrip: {
424
+ mode: 'implemented',
425
+ via: 'contextDependentKind — the parent grid rebuildTableRaw owns the cell bytes'
426
+ },
427
+ focus: { mode: 'implemented', via: 'per-cell native caret' },
428
+ mergeBackspace: {
429
+ mode: 'implemented',
430
+ via: 'not-mergeable — edits stay within the cell; no cross-cell concat'
431
+ },
432
+ selectionPaint: { mode: 'implemented', via: 'measurePartialRects (cell index)' },
433
+ searchPaint: {
434
+ mode: 'implemented',
435
+ via: 'cell raw scanned; per-cell mark overlay (measurePartialRects cell index)'
436
+ },
437
+ reorder: {
438
+ mode: 'not-supported',
439
+ reason: 'grid cell — not a block-level reorder unit; row/column drag gestures inside the table grid move whole rows or columns, not individual cells'
440
+ },
441
+ undo: { mode: 'inherit-default' },
442
+ clipboard: {
443
+ mode: 'implemented',
444
+ via: 'copy/cut synthesize a GFM sub-table for the selected rectangle (intraTableRectPayload → copyRectangleAsSubTable, cell index)'
445
+ },
446
+ simOracle: { mode: 'implemented', via: 'note-taking simulation (table cell edits)' }
447
+ }
448
+ });
449
+ registerBlockKind('unrecognized', {
450
+ gapEdges: 'none',
451
+ mergeRole: 'self-merge',
452
+ editable: true,
453
+ supportsInline: false,
454
+ keymap: TEXT_EDITABLE_KEYMAP,
455
+ // No conformanceFixture: it is the reserved fallback for content no opener claimed, so a
456
+ // document scan never yields it in isolation.
457
+ closure: {
458
+ ...RAW_TEXT_LEAF_CLOSURE,
459
+ mergeBackspace: {
460
+ mode: 'implemented',
461
+ via: 'mergeRole=self-merge — concatenates with an adjacent unrecognized block'
462
+ },
463
+ searchPaint: { mode: 'implemented', via: 'raw scanned; matches painted as marks' },
464
+ simOracle: { mode: 'inherit-default' }
465
+ }
466
+ });
467
+ registerBlockKind('blockquote', {
468
+ gapEdges: 'none',
469
+ mergeRole: 'container',
470
+ editable: true,
471
+ supportsInline: false,
472
+ container: {
473
+ contract: 'strip',
474
+ rebuildRaw: rebuildBlockquoteRaw,
475
+ containerPaste: { matchesAncestor: () => true, siblingAbsorb: false },
476
+ unwrapRole: {
477
+ firstChildBackspace: 'lift-first-child-drop-opener',
478
+ middleChildBackspace: 'default-merge'
479
+ },
480
+ contentStartSpace: 'complete-marker',
481
+ reorderChildren: {}
482
+ },
483
+ conformanceFixture: '> quoted\n',
484
+ closure: containerClosure({
485
+ roundTripVia: 'container contract=strip — rebuildBlockquoteRaw',
486
+ focus: { mode: 'implemented', via: 'focus walks into the first child' },
487
+ mergeBackspace: {
488
+ mode: 'implemented',
489
+ via: 'mergeRole=container + unwrapRole (lift-first-child-drop-opener; default-merge)'
490
+ },
491
+ undo: { mode: 'inherit-default' },
492
+ clipboard: {
493
+ mode: 'implemented',
494
+ via: 'containerPaste.matchesAncestor — clipboard top merges into a same-kind ancestor'
495
+ },
496
+ simOracle: { mode: 'implemented', via: 'note-taking simulation (nested blockquote edits)' }
497
+ })
498
+ });
499
+ registerBlockKind('list', {
500
+ gapEdges: 'none',
501
+ mergeRole: 'container',
502
+ editable: true,
503
+ supportsInline: false,
504
+ container: {
505
+ contract: 'strip',
506
+ rebuildRaw: rebuildListRaw,
507
+ containerPaste: {
508
+ matchesAncestor: (top, ancestor) => (metadataOf(top, 'list')?.ordered ?? false) ===
509
+ (metadataOf(ancestor, 'list')?.ordered ?? false),
510
+ siblingAbsorb: true
511
+ },
512
+ unwrapRole: {
513
+ firstChildBackspace: 'list-item-cascade',
514
+ middleChildBackspace: 'list-item-cascade'
515
+ },
516
+ reorderChildren: { renumberMarkers: true }
517
+ },
518
+ conformanceFixture: '- item\n',
519
+ closure: containerClosure({
520
+ roundTripVia: 'container contract=strip — rebuildListRaw',
521
+ focus: { mode: 'implemented', via: 'focus walks into the first item' },
522
+ mergeBackspace: {
523
+ mode: 'implemented',
524
+ via: 'mergeRole=container + unwrapRole (list-item-cascade)'
525
+ },
526
+ undo: { mode: 'inherit-default' },
527
+ clipboard: {
528
+ mode: 'implemented',
529
+ via: 'containerPaste.siblingAbsorb — clipboard items splice as siblings, ordered-flag matched'
530
+ },
531
+ simOracle: { mode: 'implemented', via: 'note-taking simulation (list edits)' }
532
+ })
533
+ });
534
+ registerBlockKind('listItem', {
535
+ gapEdges: 'none',
536
+ mergeRole: 'container',
537
+ editable: true,
538
+ supportsInline: false,
539
+ container: { contract: 'strip', rebuildRaw: rebuildListItemRaw },
540
+ keymap: [
541
+ { chord: 'Tab', command: 'list.indent' },
542
+ { chord: 'Shift+Tab', command: 'list.unindent' }
543
+ ],
544
+ conformanceFixture: '- item\n',
545
+ closure: containerClosure({
546
+ roundTripVia: 'container contract=strip — rebuildListItemRaw',
547
+ focus: { mode: 'implemented', via: 'focus walks into the first child' },
548
+ mergeBackspace: {
549
+ mode: 'implemented',
550
+ via: 'mergeRole=container — Backspace cascades via the parent list unwrapRole'
551
+ },
552
+ reorder: {
553
+ mode: 'implemented',
554
+ via: 'list.indent/unindent keymap; whole-item reorder through the parent list'
555
+ },
556
+ undo: { mode: 'inherit-default' },
557
+ simOracle: { mode: 'implemented', via: 'note-taking simulation (list item edits)' }
558
+ })
559
+ });
560
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Byte offsets of each child's rendered region inside its container's own `raw`, so a typing
3
+ * rewrite splices one region instead of re-joining every child (O(1) reads through the `$state`
4
+ * proxy rather than O(children)). Bookkeeping, never bytes: nothing serializes or renders it, and
5
+ * a span the invalidation seams missed fails the region check below and falls back to the full
6
+ * rebuild. A `Uint32Array` on purpose — Svelte proxies plain arrays, and the shift would mint a
7
+ * source per element.
8
+ */
9
+ import { type CstNode } from '../core/nodes';
10
+ /** The child a rebuild is re-rendering, and the bytes its region currently holds. */
11
+ export interface ChildRawChange {
12
+ index: number;
13
+ previousRaw: string;
14
+ }
15
+ /** A strip container's per-line transform; `first` marks the container's own opening line. */
16
+ export type LinePrefix = (text: string, first: boolean) => string;
17
+ /** Drop the spans a children-shape change invalidated; the next full rebuild reseeds them. */
18
+ export declare function dropChildSpans(node: CstNode): void;
19
+ /** A container whose raw is its children's bytes joined (list). */
20
+ export declare function rebuildConcatRaw(node: CstNode, changed?: ChildRawChange): void;
21
+ /**
22
+ * A container whose raw re-prefixes every line of its body (blockquote, list item). `innerPrefix`
23
+ * is unread: these kinds open their body on their own first line, so no parse fills it (G1.5).
24
+ */
25
+ export declare function rebuildStripRaw(node: CstNode, prefix: LinePrefix, changed?: ChildRawChange): void;