@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,56 @@
1
+ /**
2
+ * Container children mutations that keep `childIds` in lockstep, for out-of-commit-scope
3
+ * writes (discovered descendants/ancestors — see the `node-ops.ts` header). Inside a
4
+ * commit scope the StructuralChange descriptor owns id/ref sync; here a hand-rolled
5
+ * splice would let the parallel id array drift and break Svelte's keyed-each rendering.
6
+ * The same shape change invalidates `childSpans`, so both parallel arrays settle here.
7
+ */
8
+ import { assignIds, generateBlockId } from '../block-id';
9
+ import { dropChildSpans } from '../schema/child-spans';
10
+ import { spliceMany } from './splice-many';
11
+ export function pushChild(container, child) {
12
+ if (!container.children)
13
+ container.children = [];
14
+ // Lazy-init (unlike spliceChildren): pushes land in containers assembled mid-merge that
15
+ // may not have mounted yet, so the parallel array must exist or the new id is dropped.
16
+ if (!container.childIds)
17
+ container.childIds = assignIds(container.children);
18
+ container.children.push(child);
19
+ container.childIds.push(generateBlockId());
20
+ dropChildSpans(container);
21
+ }
22
+ /**
23
+ * Bring `childIds` back to `children`'s length after an in-place children swap. The
24
+ * surviving prefix keeps its ids — a blanket re-mint would remount every child under
25
+ * Svelte's keyed each, the identity the swapping branches exist to preserve. No-op when
26
+ * the array is absent; the mounting BlockList backfills it.
27
+ */
28
+ export function resyncChildIds(container) {
29
+ dropChildSpans(container);
30
+ const ids = container.childIds;
31
+ if (!ids)
32
+ return;
33
+ if (!container.children) {
34
+ container.childIds = undefined;
35
+ return;
36
+ }
37
+ const count = container.children.length;
38
+ if (ids.length > count)
39
+ ids.length = count;
40
+ for (let i = ids.length; i < count; i++)
41
+ ids.push(generateBlockId());
42
+ }
43
+ export function spliceChildren(container, at, removeCount, items) {
44
+ if (!container.children)
45
+ container.children = [];
46
+ // No lazy-init here: containers without childIds get them from the mounting BlockList anyway.
47
+ if (container.childIds) {
48
+ // A replacement's head continues the slot it lands in, so it keeps that slot's id —
49
+ // `replacePreservingFirst`'s rule, which the in-commit-scope splice already carries.
50
+ const continues = removeCount > 0 && items.length > 0;
51
+ const ids = items.map((_, i) => i === 0 && continues ? container.childIds[at] : generateBlockId());
52
+ spliceMany(container.childIds, at, removeCount, ids);
53
+ }
54
+ spliceMany(container.children, at, removeCount, items);
55
+ dropChildSpans(container);
56
+ }
@@ -0,0 +1,10 @@
1
+ import type { Document } from '../core/nodes';
2
+ import type { SharingState } from './sharing';
3
+ /**
4
+ * Walk up from `deletedPath`'s parent, removing containers emptied by the cleanup. Stops
5
+ * at `lcaPath` (the range operation's lowest common ancestor, `[]` for the document root)
6
+ * because containers at or above it still hold the start block and cannot legitimately be
7
+ * empty. Owns its spine — each level is unshared before its child is removed, or the
8
+ * splice lands on a node an undo entry still references (`unshare.ts` header).
9
+ */
10
+ export declare function cascadeCleanupEmptyAncestors(doc: Document, deletedPath: number[], lcaPath: number[], sharing: SharingState): void;
@@ -0,0 +1,25 @@
1
+ import { spliceChildrenSettled } from './node-ops';
2
+ import { ensureUnsharedPath } from './unshare';
3
+ /**
4
+ * Walk up from `deletedPath`'s parent, removing containers emptied by the cleanup. Stops
5
+ * at `lcaPath` (the range operation's lowest common ancestor, `[]` for the document root)
6
+ * because containers at or above it still hold the start block and cannot legitimately be
7
+ * empty. Owns its spine — each level is unshared before its child is removed, or the
8
+ * splice lands on a node an undo entry still references (`unshare.ts` header).
9
+ */
10
+ export function cascadeCleanupEmptyAncestors(doc, deletedPath, lcaPath, sharing) {
11
+ let currentPath = deletedPath.slice(0, -1);
12
+ while (currentPath.length > lcaPath.length) {
13
+ const parentPath = currentPath.slice(0, -1);
14
+ const chain = ensureUnsharedPath(doc, parentPath, sharing);
15
+ const parent = chain[chain.length - 1] ?? doc;
16
+ if (!parent.children)
17
+ break;
18
+ const idx = currentPath[currentPath.length - 1];
19
+ const node = parent.children[idx];
20
+ if (!node || !node.children || node.children.length > 0)
21
+ break;
22
+ spliceChildrenSettled(parent, idx, 1, [], sharing);
23
+ currentPath = parentPath;
24
+ }
25
+ }
@@ -0,0 +1,5 @@
1
+ import type { CstNode, Document } from '../core/nodes';
2
+ import type { DocumentView, NodeView } from '../core/node-views';
3
+ export declare function cloneDocument(doc: DocumentView): Document;
4
+ export declare function cloneNode(node: NodeView): CstNode;
5
+ export declare function cloneMetadata(meta: NonNullable<NodeView['metadata']>): NonNullable<CstNode['metadata']>;
@@ -0,0 +1,43 @@
1
+ import { assertInvariant } from '../assert';
2
+ import { checkCloneSafeMetadata } from '../invariants/node-shape';
3
+ // ── Document ────────────────────────────────────────────────────────────────
4
+ // A deep clone of a view is a fully owned mutable tree — the clone door (core/node-views.ts).
5
+ export function cloneDocument(doc) {
6
+ return {
7
+ kind: 'document',
8
+ prefix: doc.prefix,
9
+ children: doc.children.map(cloneNode),
10
+ suffix: doc.suffix
11
+ };
12
+ }
13
+ // ── Node ────────────────────────────────────────────────────────────────────
14
+ export function cloneNode(node) {
15
+ // `kind` is a runtime value spanning every arm, so no literal arm matches —
16
+ // the cast is the generic-clone door, mirroring copyNode's spread (unshare.ts).
17
+ const cloned = {
18
+ kind: node.kind,
19
+ leadingTrivia: node.leadingTrivia,
20
+ raw: node.raw
21
+ };
22
+ if (node.metadata) {
23
+ assertInvariant('clone-safe-metadata', () => checkCloneSafeMetadata(node));
24
+ cloned.metadata = cloneMetadata(node.metadata);
25
+ }
26
+ if (node.children) {
27
+ cloned.innerPrefix = node.innerPrefix;
28
+ cloned.children = node.children.map(cloneNode);
29
+ cloned.innerSuffix = node.innerSuffix;
30
+ if (node.childIds)
31
+ cloned.childIds = [...node.childIds];
32
+ }
33
+ return cloned;
34
+ }
35
+ // Snapshots must share no mutable reference with the live tree, or an in-place splice on
36
+ // live metadata reaches the snapshot. One level deep suffices — G1.6 forbids deeper.
37
+ export function cloneMetadata(meta) {
38
+ const out = {};
39
+ for (const [k, v] of Object.entries(meta)) {
40
+ out[k] = Array.isArray(v) ? [...v] : v;
41
+ }
42
+ return out;
43
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Lift a container's first child out while the container itself survives (Rule U2's other
3
+ * shape): the remainder keeps its kind and its `rebuildRaw` re-emits the syntax, so a marker
4
+ * held in metadata rides through. `blockquote.ts`'s `unwrapFirstChildFromQuote` is the shape
5
+ * where the opener lives on the first line and the lift drops it.
6
+ */
7
+ import type { CstNode } from '../core/nodes';
8
+ import type { NodeView } from '../core/node-views';
9
+ export declare function liftFirstChildKeepingContainer(container: NodeView): CstNode[];
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Lift a container's first child out while the container itself survives (Rule U2's other
3
+ * shape): the remainder keeps its kind and its `rebuildRaw` re-emits the syntax, so a marker
4
+ * held in metadata rides through. `blockquote.ts`'s `unwrapFirstChildFromQuote` is the shape
5
+ * where the opener lives on the first line and the lift drops it.
6
+ */
7
+ import { cloneNode } from './clone';
8
+ import { rebuildContainerRaw } from '../schema/container-raw';
9
+ import { assignIds } from '../block-id';
10
+ export function liftFirstChildKeepingContainer(container) {
11
+ const children = container.children;
12
+ if (!children || children.length === 0)
13
+ return [];
14
+ const lifted = cloneNode(children[0]);
15
+ // The container's leading trivia is applied at the caller's splice point.
16
+ lifted.leadingTrivia = '';
17
+ if (children.length === 1)
18
+ return [lifted];
19
+ const remaining = cloneNode(container);
20
+ const remainingChildren = remaining.children.slice(1);
21
+ // The blank line that stood between the two children inside the container is the one that
22
+ // now stands between the lifted block and the container: conserved, never minted.
23
+ remaining.leadingTrivia = remainingChildren[0].leadingTrivia;
24
+ remainingChildren[0].leadingTrivia = '';
25
+ remaining.children = remainingChildren;
26
+ remaining.childIds = assignIds(remainingChildren);
27
+ rebuildContainerRaw(remaining);
28
+ return [lifted, remaining];
29
+ }
@@ -0,0 +1,16 @@
1
+ export type { NodeParent, MergeIntoPrevResult, MergeResult, SplitResult } from './node-ops';
2
+ export { splitNode, assertSplitLanding, assertSingleNodeSink, mergeWithNext, mergeIntoPrevDeepLeaf, deleteNode, updateNodeContent, reclassifyContainer, focusTargetInReplacement, ensureEditableContainers, normalizeReplacementTrivia, emptyParagraph, paragraphNode, restoreSeparatorOnFill, dropDoubledSeparator, nodeAt } from './node-ops';
3
+ export { unwrapFirstItemFromList, mergeListItemIntoPrevious } from './list/unwrap-merge';
4
+ export { renumberOrderedList, normalizeItemMarkerToList } from './list/ordered-markers';
5
+ export { isItemUserEmpty } from './list/empty-check';
6
+ export { buildExitReplacement } from './list/exit-replacement';
7
+ export { reconcileTaskMetadata } from './list/reconcile-task';
8
+ export { unwrapFirstChildFromQuote } from './blockquote';
9
+ export { liftFirstChildKeepingContainer } from './container-lift';
10
+ export { insertEmptyRow, insertEmptyColumn, deleteRow, deleteColumn, cycleAlignment } from './table-mutations';
11
+ export { copyRectangleAsSubTable } from './sub-table-copy';
12
+ export type { CellPos } from './sub-table-copy';
13
+ export { cascadeCleanupEmptyAncestors } from './cleanup';
14
+ export { ensureUnsharedPath, ensureUnsharedChild, ensureUnsharedNode, ensureUnsharedChildren, ensureUnsharedSubtree, rebuildOwnedContainer, rebuildUnsharedChain, rebuildUnsharedAncestry } from './unshare';
15
+ export { buildPastedReplacement } from './paste/paste-replacement';
16
+ export { cloneDocument, cloneNode } from './clone';
@@ -0,0 +1,14 @@
1
+ export { splitNode, assertSplitLanding, assertSingleNodeSink, mergeWithNext, mergeIntoPrevDeepLeaf, deleteNode, updateNodeContent, reclassifyContainer, focusTargetInReplacement, ensureEditableContainers, normalizeReplacementTrivia, emptyParagraph, paragraphNode, restoreSeparatorOnFill, dropDoubledSeparator, nodeAt } from './node-ops';
2
+ export { unwrapFirstItemFromList, mergeListItemIntoPrevious } from './list/unwrap-merge';
3
+ export { renumberOrderedList, normalizeItemMarkerToList } from './list/ordered-markers';
4
+ export { isItemUserEmpty } from './list/empty-check';
5
+ export { buildExitReplacement } from './list/exit-replacement';
6
+ export { reconcileTaskMetadata } from './list/reconcile-task';
7
+ export { unwrapFirstChildFromQuote } from './blockquote';
8
+ export { liftFirstChildKeepingContainer } from './container-lift';
9
+ export { insertEmptyRow, insertEmptyColumn, deleteRow, deleteColumn, cycleAlignment } from './table-mutations';
10
+ export { copyRectangleAsSubTable } from './sub-table-copy';
11
+ export { cascadeCleanupEmptyAncestors } from './cleanup';
12
+ export { ensureUnsharedPath, ensureUnsharedChild, ensureUnsharedNode, ensureUnsharedChildren, ensureUnsharedSubtree, rebuildOwnedContainer, rebuildUnsharedChain, rebuildUnsharedAncestry } from './unshare';
13
+ export { buildPastedReplacement } from './paste/paste-replacement';
14
+ export { cloneDocument, cloneNode } from './clone';
@@ -0,0 +1,7 @@
1
+ import type { NodeView } from '../../core/node-views';
2
+ /**
3
+ * A list item is "user-empty" when every leaf descendant's raw is blank. Deliberately
4
+ * stronger than testing the first child: a shallow check drops trailing content whenever
5
+ * the first paragraph happens to be empty.
6
+ */
7
+ export declare function isItemUserEmpty(item: NodeView): boolean;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * A list item is "user-empty" when every leaf descendant's raw is blank. Deliberately
3
+ * stronger than testing the first child: a shallow check drops trailing content whenever
4
+ * the first paragraph happens to be empty.
5
+ */
6
+ export function isItemUserEmpty(item) {
7
+ if (!item.children || item.children.length === 0)
8
+ return true;
9
+ for (const child of item.children) {
10
+ if (child.children && child.children.length > 0) {
11
+ if (!isItemUserEmpty(child))
12
+ return false;
13
+ }
14
+ else if ((child.raw ?? '').trim() !== '') {
15
+ return false;
16
+ }
17
+ }
18
+ return true;
19
+ }
@@ -0,0 +1,13 @@
1
+ import type { CstNode } from '../../core/nodes';
2
+ import type { NodeView } from '../../core/node-views';
3
+ /**
4
+ * The parent-level replacement when a list item exits its list, laid out as
5
+ * `[firstHalfList?, exitParagraph, ...liftedBlocks, secondHalfList?]`. Matching-type
6
+ * nested items rejoin the surviving halves; everything else lifts as a top-level block.
7
+ * `paragraphIndex` is the exit paragraph's slot, the caller's focus target. Input is not
8
+ * mutated.
9
+ */
10
+ export declare function buildExitReplacement(list: NodeView, itemIndex: number): {
11
+ blocks: CstNode[];
12
+ paragraphIndex: number;
13
+ };
@@ -0,0 +1,49 @@
1
+ import { metadataOf } from '../../core/nodes';
2
+ import { trailingLineEnding } from '../../core/lines';
3
+ import { cloneNode } from '../clone';
4
+ import { emptyParagraph } from '../node-ops';
5
+ import { assembleListHalf } from './list-builders';
6
+ import { partitionItemChildren } from './item-partition';
7
+ import { orderedBaseOf } from './ordered-markers';
8
+ /**
9
+ * The parent-level replacement when a list item exits its list, laid out as
10
+ * `[firstHalfList?, exitParagraph, ...liftedBlocks, secondHalfList?]`. Matching-type
11
+ * nested items rejoin the surviving halves; everything else lifts as a top-level block.
12
+ * `paragraphIndex` is the exit paragraph's slot, the caller's focus target. Input is not
13
+ * mutated.
14
+ */
15
+ export function buildExitReplacement(list, itemIndex) {
16
+ const items = list.children ?? [];
17
+ const exitedItem = items[itemIndex];
18
+ const parentOrdered = metadataOf(list, 'list')?.ordered ?? false;
19
+ // Child 0 is the exiting paragraph, which the fresh one below replaces.
20
+ const { promotedItems, liftedBlocks } = partitionItemChildren((exitedItem?.children ?? []).slice(1), parentOrdered);
21
+ const before = items.slice(0, itemIndex).map(cloneNode);
22
+ const after = items.slice(itemIndex + 1).map(cloneNode);
23
+ // wasFirstItem has no `before` half, so promotions slide into `after`.
24
+ const wasFirstItem = itemIndex === 0;
25
+ const firstHalfItems = wasFirstItem ? [] : [...before, ...promotedItems];
26
+ const secondHalfItems = wasFirstItem ? [...promotedItems, ...after] : after;
27
+ // Every byte this op mints is a line ending, so it takes the list's (G4.20).
28
+ const lineEnding = trailingLineEnding(list.raw);
29
+ const exitParagraph = emptyParagraph('', lineEnding);
30
+ // Preserve the original list's starting number across the split.
31
+ const base = orderedBaseOf(items[0]);
32
+ const blocks = [];
33
+ if (firstHalfItems.length > 0) {
34
+ blocks.push(assembleListHalf(list, firstHalfItems, base));
35
+ // The exit paragraph follows the surviving list; without a blank line the
36
+ // parser lazy-continues a typed line into the list's last item on reload.
37
+ exitParagraph.leadingTrivia = lineEnding;
38
+ }
39
+ const paragraphIndex = blocks.length;
40
+ blocks.push(exitParagraph);
41
+ for (const lifted of liftedBlocks)
42
+ blocks.push(lifted);
43
+ if (secondHalfItems.length > 0) {
44
+ // Continue the sequence across the gap: the exited slot doesn't burn a number.
45
+ const secondHalfStart = base + firstHalfItems.length;
46
+ blocks.push(assembleListHalf(list, secondHalfItems, secondHalfStart));
47
+ }
48
+ return { blocks, paragraphIndex };
49
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The promote/lift partition U1 and the empty-item exit share: a nested list whose `ordered`
3
+ * matches the parent gives its items to the parent level, everything else lifts out as a
4
+ * sibling block. Output is fully owned; the input is not mutated.
5
+ */
6
+ import type { CstNode } from '../../core/nodes';
7
+ import type { NodeView } from '../../core/node-views';
8
+ export interface ItemPartition {
9
+ promotedItems: CstNode[];
10
+ liftedBlocks: CstNode[];
11
+ }
12
+ /** Split a dissolving item's `children` into what rejoins the parent list and what lifts. */
13
+ export declare function partitionItemChildren(children: readonly NodeView[], parentOrdered: boolean): ItemPartition;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The promote/lift partition U1 and the empty-item exit share: a nested list whose `ordered`
3
+ * matches the parent gives its items to the parent level, everything else lifts out as a
4
+ * sibling block. Output is fully owned; the input is not mutated.
5
+ */
6
+ import { metadataOf } from '../../core/nodes';
7
+ import { cloneNode } from '../clone';
8
+ /** Split a dissolving item's `children` into what rejoins the parent list and what lifts. */
9
+ export function partitionItemChildren(children, parentOrdered) {
10
+ const promotedItems = [];
11
+ const liftedBlocks = [];
12
+ for (const child of children) {
13
+ if (promotesToParentLevel(child, parentOrdered)) {
14
+ for (const item of child.children)
15
+ promotedItems.push(adopt(item));
16
+ continue;
17
+ }
18
+ liftedBlocks.push(adopt(child));
19
+ }
20
+ return { promotedItems, liftedBlocks };
21
+ }
22
+ // A sublist with no items has nothing to give, and its bytes would vanish with it, so it lifts.
23
+ function promotesToParentLevel(child, parentOrdered) {
24
+ if (child.kind !== 'list' || !child.children?.length)
25
+ return false;
26
+ return (metadataOf(child, 'list')?.ordered ?? false) === parentOrdered;
27
+ }
28
+ /** Both dispositions start a fresh line at their new level. */
29
+ function adopt(node) {
30
+ const owned = cloneNode(node);
31
+ owned.leadingTrivia = '';
32
+ return owned;
33
+ }
@@ -0,0 +1,44 @@
1
+ /** Constructors for list and listItem CST nodes. */
2
+ import type { CstNode, ListItemMetadata } from '../../core/nodes';
3
+ import type { NodeView } from '../../core/node-views';
4
+ /**
5
+ * A list node carrying `items`, mirroring `template`'s metadata and affixes and
6
+ * renumbering ordered markers from `startNumber`. Items are mutated in place.
7
+ */
8
+ export declare function assembleListHalf(template: NodeView, items: CstNode[], startNumber: number): CstNode;
9
+ /**
10
+ * A listItem mirroring `template`'s metadata/affixes. `children` are placed verbatim —
11
+ * clone before passing if they are still referenced from the source tree.
12
+ */
13
+ export declare function buildListItemWithContent(template: NodeView, children: CstNode[]): CstNode;
14
+ /**
15
+ * A listItem from explicit metadata with empty affixes, for sites deriving a fresh marker
16
+ * rather than mirroring a source item. `children` are placed verbatim.
17
+ */
18
+ export declare function buildListItem(metadata: ListItemMetadata, children: CstNode[]): CstNode;
19
+ /**
20
+ * A bare list shell with empty raw. Unlike `assembleListHalf` it neither renumbers nor
21
+ * rebuilds raw; a live-tree caller owns that and must route it through `sharing` so the
22
+ * moved items are unshared before being written (`unshare.ts`).
23
+ */
24
+ export declare function buildListShell(ordered: boolean, children: CstNode[]): CstNode;
25
+ /**
26
+ * Slice a leaf's raw at `offset` for a paste-style split, re-parsing each half. One
27
+ * leading whitespace is trimmed from the trailing slice, which would otherwise produce
28
+ * double-space markers after a word-boundary split. Null on an empty side. `raw` overrides
29
+ * the leaf's own bytes, which a paste that ran a delete half first supplies.
30
+ */
31
+ export declare function splitLeafForPaste(leaf: CstNode, offset: number, raw?: string): {
32
+ leadingNode: CstNode | null;
33
+ trailingNode: CstNode | null;
34
+ lineEnding: '\n' | '\r\n';
35
+ };
36
+ /**
37
+ * The leading and trailing items replacing `item` when a paste splits it at
38
+ * `(innerIndex, offset)`. Either side is null when the caret sits flush against a
39
+ * boundary. `targetRaw` overrides the target leaf's bytes, as in `splitLeafForPaste`.
40
+ */
41
+ export declare function buildSplitItems(item: CstNode, innerIndex: number, offset: number, targetRaw?: string): {
42
+ leadingItem: CstNode | null;
43
+ trailingItem: CstNode | null;
44
+ };
@@ -0,0 +1,129 @@
1
+ /** Constructors for list and listItem CST nodes. */
2
+ import { snapToScalarBoundary, trailingLineEnding, trimTrailingLineEnding } from '../../core/lines';
3
+ import { rebuildListItemRaw, rebuildListRaw } from '../../schema/container-rebuilders';
4
+ import { cloneMetadata, cloneNode } from '../clone';
5
+ import { parseFirstBlock } from '../parse-block';
6
+ import { renumberOrderedListFrom } from './ordered-markers';
7
+ import { assignIds } from '../../block-id';
8
+ // ── List / item construction ─────────────────────────────────────────────────
9
+ /**
10
+ * A list node carrying `items`, mirroring `template`'s metadata and affixes and
11
+ * renumbering ordered markers from `startNumber`. Items are mutated in place.
12
+ */
13
+ export function assembleListHalf(template, items, startNumber) {
14
+ const half = {
15
+ kind: 'list',
16
+ leadingTrivia: '',
17
+ raw: '',
18
+ metadata: template.metadata
19
+ ? cloneMetadata(template.metadata)
20
+ : { ordered: false },
21
+ children: items,
22
+ childIds: assignIds(items),
23
+ innerPrefix: template.innerPrefix ?? '',
24
+ innerSuffix: template.innerSuffix ?? ''
25
+ };
26
+ if (items[0])
27
+ items[0].leadingTrivia = '';
28
+ for (const item of items)
29
+ rebuildListItemRaw(item);
30
+ renumberOrderedListFrom(half, startNumber);
31
+ rebuildListRaw(half);
32
+ return half;
33
+ }
34
+ /**
35
+ * A listItem mirroring `template`'s metadata/affixes. `children` are placed verbatim —
36
+ * clone before passing if they are still referenced from the source tree.
37
+ */
38
+ export function buildListItemWithContent(template, children) {
39
+ const metadata = template.metadata
40
+ ? cloneMetadata(template.metadata)
41
+ : { marker: '- ', taskItem: false, taskChecked: false, taskMarker: null };
42
+ return mintListItem(metadata, template.innerPrefix ?? '', template.innerSuffix ?? '', children);
43
+ }
44
+ /**
45
+ * A listItem from explicit metadata with empty affixes, for sites deriving a fresh marker
46
+ * rather than mirroring a source item. `children` are placed verbatim.
47
+ */
48
+ export function buildListItem(metadata, children) {
49
+ return mintListItem(metadata, '', '', children);
50
+ }
51
+ // Affixes are set before the rebuild, which derives the item's raw from them.
52
+ function mintListItem(metadata, innerPrefix, innerSuffix, children) {
53
+ const item = {
54
+ kind: 'listItem',
55
+ leadingTrivia: '',
56
+ raw: '',
57
+ metadata,
58
+ innerPrefix,
59
+ children,
60
+ childIds: assignIds(children),
61
+ innerSuffix
62
+ };
63
+ if (children[0])
64
+ children[0].leadingTrivia = '';
65
+ rebuildListItemRaw(item);
66
+ return item;
67
+ }
68
+ /**
69
+ * A bare list shell with empty raw. Unlike `assembleListHalf` it neither renumbers nor
70
+ * rebuilds raw; a live-tree caller owns that and must route it through `sharing` so the
71
+ * moved items are unshared before being written (`unshare.ts`).
72
+ */
73
+ export function buildListShell(ordered, children) {
74
+ const metadata = { ordered };
75
+ return {
76
+ kind: 'list',
77
+ leadingTrivia: '',
78
+ raw: '',
79
+ metadata,
80
+ children,
81
+ childIds: assignIds(children)
82
+ };
83
+ }
84
+ // ── Paste split ──────────────────────────────────────────────────────────────
85
+ /**
86
+ * Slice a leaf's raw at `offset` for a paste-style split, re-parsing each half. One
87
+ * leading whitespace is trimmed from the trailing slice, which would otherwise produce
88
+ * double-space markers after a word-boundary split. Null on an empty side. `raw` overrides
89
+ * the leaf's own bytes, which a paste that ran a delete half first supplies.
90
+ */
91
+ export function splitLeafForPaste(leaf, offset, raw = leaf.raw) {
92
+ const lineEnding = trailingLineEnding(raw);
93
+ const display = trimTrailingLineEnding(raw);
94
+ // Off any scalar interior first: the halves become separate items, so a pair cut here is
95
+ // unrecoverable bytes rather than a recoverable edit.
96
+ const cut = snapToScalarBoundary(display, offset);
97
+ const leadingText = display.slice(0, cut);
98
+ const trailingText = display.slice(cut).replace(/^[ \t]/, '');
99
+ const leadingNode = leadingText.length > 0 ? parseFirstBlock(leadingText + lineEnding) : null;
100
+ const trailingNode = trailingText.length > 0 ? parseFirstBlock(trailingText + lineEnding) : null;
101
+ return { leadingNode, trailingNode, lineEnding };
102
+ }
103
+ /**
104
+ * The leading and trailing items replacing `item` when a paste splits it at
105
+ * `(innerIndex, offset)`. Either side is null when the caret sits flush against a
106
+ * boundary. `targetRaw` overrides the target leaf's bytes, as in `splitLeafForPaste`.
107
+ */
108
+ export function buildSplitItems(item, innerIndex, offset, targetRaw) {
109
+ if (!item.children)
110
+ return { leadingItem: null, trailingItem: null };
111
+ const targetLeaf = item.children[innerIndex];
112
+ if (!targetLeaf)
113
+ return { leadingItem: null, trailingItem: null };
114
+ const { leadingNode, trailingNode } = splitLeafForPaste(targetLeaf, offset, targetRaw ?? targetLeaf.raw);
115
+ const leadingChildren = item.children.slice(0, innerIndex).map(cloneNode);
116
+ if (leadingNode)
117
+ leadingChildren.push(leadingNode);
118
+ const trailingChildren = [];
119
+ if (trailingNode)
120
+ trailingChildren.push(trailingNode);
121
+ for (const c of item.children.slice(innerIndex + 1))
122
+ trailingChildren.push(cloneNode(c));
123
+ if (trailingChildren[0])
124
+ trailingChildren[0].leadingTrivia = '';
125
+ return {
126
+ leadingItem: leadingChildren.length > 0 ? buildListItemWithContent(item, leadingChildren) : null,
127
+ trailingItem: trailingChildren.length > 0 ? buildListItemWithContent(item, trailingChildren) : null
128
+ };
129
+ }
@@ -0,0 +1,36 @@
1
+ /** Ordered-list marker bookkeeping: reads, renumbering, and matching item style to a list. */
2
+ import type { CstNode } from '../../core/nodes';
3
+ import type { NodeView } from '../../core/node-views';
4
+ import type { SharingState } from '../sharing';
5
+ /** Read an item's marker as an integer base, defaulting to 1 for non-numeric markers. */
6
+ export declare function orderedBaseOf(item: NodeView | undefined): number;
7
+ /** The punctuation suffix (`. ` or `) `) from a list's first item; defaults to `. `. */
8
+ export declare function readOrderedSuffix(list: NodeView): string;
9
+ /** Increment an ordered marker's numeric prefix, preserving its suffix. */
10
+ export declare function bumpOrderedMarker(marker: string): string;
11
+ /**
12
+ * Renumber an ordered list's items in place from `fromIndex`, preserving marker suffixes.
13
+ * `fromIndex = 0` resets the sequence to 1; `renumberOrderedListFrom` owns non-1 bases.
14
+ * Every renumbered item's metadata and raw is WRITTEN, so a live-tree caller must pass
15
+ * `sharing`; construction-time callers on fresh nodes may omit it.
16
+ */
17
+ export declare function renumberOrderedList(list: CstNode, fromIndex?: number, sharing?: SharingState): void;
18
+ /**
19
+ * Renumber an ordered list from an arbitrary `base`: seed item 0's marker with `base`
20
+ * (suffix-preserving), then continue the sequence from item 1. No-op on unordered or
21
+ * childless lists.
22
+ */
23
+ export declare function renumberOrderedListFrom(list: CstNode, base: number, sharing?: SharingState): void;
24
+ /**
25
+ * Rewrite `item`'s marker style to match `parentList`, templating the suffix from a
26
+ * sibling so the destination list's choices are preserved. Numbers stay the caller's
27
+ * renumber pass's job: only the glyph and punctuation suffix reconcile here.
28
+ */
29
+ export declare function normalizeItemMarkerToList(item: CstNode, parentList: CstNode): void;
30
+ /**
31
+ * Rewrite pasted items' markers to the enclosing list's style: an unordered list templates
32
+ * the bullet glyph, an ordered list continues the sequence from `firstIndex`. Runs BEFORE
33
+ * any splice: `$state` wraps entries lazily, so a marker written to a newly-spliced item
34
+ * bypasses reactivity.
35
+ */
36
+ export declare function templatePastedItemMarkers(items: CstNode[], outer: CstNode, firstIndex: number): void;