@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,21 @@
1
+ import { type NodeView } from '../../plugin';
2
+ type $$ComponentProps = {
3
+ node: NodeView;
4
+ index: number;
5
+ myPath?: number[];
6
+ };
7
+ declare const ParrotBlock: import("svelte").Component<$$ComponentProps, {
8
+ editable: true;
9
+ focusable: true;
10
+ focus: (offset: number) => void;
11
+ getCursorOffset: () => number | null;
12
+ parkCaret: (offset: number) => void;
13
+ focusAtColumn: (x: number, from: import("../../plugin").StickyColumnDirection) => void;
14
+ getSelectedText: () => string;
15
+ setSelection: (start: number, end: number) => void;
16
+ measurePartialRects: (startOffset: number, endOffset: number) => DOMRect[];
17
+ runCommand: (id: import("../../plugin").CommandId) => boolean;
18
+ insertMarkdown: (md: string) => boolean;
19
+ }, "">;
20
+ type ParrotBlock = ReturnType<typeof ParrotBlock>;
21
+ export default ParrotBlock;
@@ -0,0 +1 @@
1
+ export { parrotPlugin, PARROT } from './parrot-plugin';
@@ -0,0 +1,2 @@
1
+ // A `%%parrot` line dances as an ASCII party parrot; frames via terminal-parrot (MIT).
2
+ export { parrotPlugin, PARROT } from './parrot-plugin';
@@ -0,0 +1,3 @@
1
+ import { type EditorPlugin } from '../../plugin';
2
+ export declare const PARROT = "parrot";
3
+ export declare function parrotPlugin(): EditorPlugin;
@@ -0,0 +1,49 @@
1
+ // parrot-plugin.ts
2
+ import { caretOffsetAtPoint, declarePluginKind, definePluginBlock, registerBlockKind, registerBlockOpener, simpleLeafClosure } from '../../plugin';
3
+ import ParrotBlock from './ParrotBlock.svelte';
4
+ export const PARROT = 'parrot';
5
+ /** Where a press in the block puts the caret. The caption renders the bytes after `%%parrot `,
6
+ * so an offset in it sits that far along the source; the revealed source IS the source. */
7
+ function parrotCaretAtPoint(blockEl, clientX, clientY) {
8
+ const source = blockEl.querySelector('.parrot-source');
9
+ const view = source ?? blockEl.querySelector('.parrot-caption');
10
+ if (!view)
11
+ return null;
12
+ const offset = caretOffsetAtPoint(view, clientX, clientY) ?? 0;
13
+ return { path: [], offset: source ? offset : offset + '%%parrot '.length };
14
+ }
15
+ function registerParrotBlock() {
16
+ const parrot = declarePluginKind(PARROT);
17
+ registerBlockKind(parrot, {
18
+ gapEdges: 'none',
19
+ mergeRole: 'not-mergeable',
20
+ editable: true,
21
+ supportsInline: false,
22
+ conformanceFixture: '%%parrot party responsibly\n',
23
+ caretTargetAtPoint: parrotCaretAtPoint,
24
+ closure: simpleLeafClosure({
25
+ focus: { mode: 'implemented', via: 'createEditableLeaf render-primary reveal' },
26
+ searchPaint: { mode: 'implemented', via: 'source raw scanned, matches painted as marks' },
27
+ undo: { mode: 'implemented', via: 'render-primary: one commit when the caret leaves' },
28
+ simOracle: { mode: 'inherit-default' }
29
+ })
30
+ });
31
+ registerBlockOpener(parrot, {
32
+ priority: 25,
33
+ interruptsParagraph: (text) => text.startsWith('%%parrot'),
34
+ tryOpen(ctx) {
35
+ if (!ctx.line.text.startsWith('%%parrot'))
36
+ return null;
37
+ const node = { kind: parrot, leadingTrivia: ctx.leadingTrivia, raw: ctx.line.raw };
38
+ return { node, consumed: 1 };
39
+ }
40
+ });
41
+ }
42
+ export function parrotPlugin() {
43
+ return definePluginBlock({
44
+ name: 'parrot',
45
+ kind: PARROT,
46
+ component: ParrotBlock,
47
+ register: registerParrotBlock
48
+ });
49
+ }
@@ -0,0 +1,218 @@
1
+ <script lang="ts">
2
+ // Render-primary editable leaf: all editing behavior lives in `createEditableLeaf`,
3
+ // so this component owns only the list↔source swap and navigation.
4
+ import {
5
+ createEditableLeaf,
6
+ type BlockComponent,
7
+ type DocumentView,
8
+ type EditorRects,
9
+ type NodeView
10
+ } from '../../plugin';
11
+ import { collectHeadings, resolveMaxDepth } from './heading-outline';
12
+ import { createNavigationQueue } from './navigation-queue';
13
+
14
+ let {
15
+ node,
16
+ index,
17
+ myPath = [],
18
+ document,
19
+ rects,
20
+ maxDepth = 6
21
+ }: {
22
+ node: NodeView;
23
+ index: number;
24
+ myPath?: number[];
25
+ document?: DocumentView;
26
+ rects?: EditorRects;
27
+ maxDepth?: number;
28
+ } = $props();
29
+
30
+ let sourceEl: HTMLDivElement | undefined = $state();
31
+ let revealed = $state(false);
32
+
33
+ const leaf = createEditableLeaf({
34
+ getNode: () => node,
35
+ getIndex: () => index,
36
+ getPath: () => myPath,
37
+ getEl: () => sourceEl ?? null,
38
+ mode: 'render-primary',
39
+ isRevealed: () => revealed,
40
+ setRevealed: (value) => {
41
+ revealed = value;
42
+ }
43
+ });
44
+
45
+ // Instance options win; the `maxDepth` prop is the factory argument, which a bare install
46
+ // (and only a bare install) is configured by.
47
+ const depth = $derived(resolveMaxDepth(leaf.getOptions(), maxDepth));
48
+
49
+ // The walk reads heading bytes through the prop, subscribing to the CST's $state proxy, so
50
+ // an edit above re-runs it; it stays uncached to keep the derived reactive-safe.
51
+ const headings = $derived(collectHeadings(document, depth));
52
+
53
+ // Serialized per block (see `navigation-queue.ts` for why). `navigateTo` lands the caret as
54
+ // well as scrolling, so focus never stays where the editor's chords cannot reach it.
55
+ const navigation = createNavigationQueue({
56
+ navigateTo: (path) => rects?.navigateTo(path) ?? Promise.resolve()
57
+ });
58
+
59
+ // Suppresses the leaf's reveal-on-pointerdown so an entry activation navigates
60
+ // instead of folding the block open. View-only, so it works in reading mode too.
61
+ function onEntryPointerDown(e: PointerEvent): void {
62
+ e.stopPropagation();
63
+ }
64
+
65
+ // ── BlockComponent interface ────────────────────────────────────────────────
66
+
67
+ export const editable = true;
68
+ export const focusable = true;
69
+
70
+ export const focus = leaf.focus;
71
+ export const parkCaret = leaf.parkCaret;
72
+ export const focusAtColumn = leaf.focusAtColumn;
73
+ export const getCursorOffset = leaf.getCursorOffset;
74
+ export const getSelectedText = leaf.getSelectedText;
75
+ export const setSelection = leaf.setSelection;
76
+ export const measurePartialRects = leaf.measurePartialRects;
77
+ export const runCommand = leaf.runCommand;
78
+ export const insertMarkdown = leaf.insertMarkdown;
79
+
80
+ void ({
81
+ editable,
82
+ focusable,
83
+ focus,
84
+ parkCaret,
85
+ focusAtColumn,
86
+ getCursorOffset,
87
+ getSelectedText,
88
+ setSelection,
89
+ measurePartialRects,
90
+ runCommand,
91
+ insertMarkdown
92
+ } satisfies BlockComponent);
93
+ </script>
94
+
95
+ {#if revealed}
96
+ <div
97
+ bind:this={sourceEl}
98
+ {...leaf.surfaceProps}
99
+ class="toc-block-source md-source-surface"
100
+ aria-label="TOC source"
101
+ ></div>
102
+ {:else}
103
+ <div
104
+ class="toc-block-render"
105
+ aria-label="Table of contents (click to edit)"
106
+ {...leaf.renderProps}
107
+ >
108
+ <nav class="toc-block-nav" aria-label="Document headings">
109
+ {#if headings.length === 0}
110
+ <span class="toc-block-empty">No headings yet</span>
111
+ {:else}
112
+ <ol>
113
+ {#each headings as heading (heading.id)}
114
+ <!-- A real `<button>`, not a role-tagged `<li>`: native focus, tab order
115
+ and Enter/Space activation for free. -->
116
+ <li>
117
+ <button
118
+ type="button"
119
+ class="toc-block-item toc-block-level-{heading.level}"
120
+ onpointerdown={onEntryPointerDown}
121
+ onclick={() => navigation.navigateTo(heading.path)}
122
+ >
123
+ {heading.label}
124
+ </button>
125
+ </li>
126
+ {/each}
127
+ </ol>
128
+ {/if}
129
+ </nav>
130
+ </div>
131
+ {/if}
132
+
133
+ <style>
134
+ /* Deltas over the shared .md-source-surface (editor.css). */
135
+ .toc-block-source {
136
+ outline: none;
137
+ padding: 8px 12px;
138
+ white-space: pre;
139
+ }
140
+
141
+ .toc-block-render {
142
+ display: block;
143
+ padding: 4px 12px;
144
+ cursor: text;
145
+ border: 1px solid transparent;
146
+ border-left: 3px solid var(--color-accent, #567b67);
147
+ border-radius: 4px;
148
+ }
149
+
150
+ .toc-block-render:hover {
151
+ background: var(--color-bg-secondary, rgba(128, 128, 128, 0.12));
152
+ }
153
+
154
+ .toc-block-nav ol {
155
+ margin: 0;
156
+ padding-left: 1.4em;
157
+ list-style: none;
158
+ }
159
+
160
+ /* Native button chrome reset to a plain full-row entry: the accent hover and focus
161
+ ring are the only affordances. */
162
+ .toc-block-item {
163
+ display: block;
164
+ width: 100%;
165
+ text-align: left;
166
+ padding: 0;
167
+ border: none;
168
+ background: none;
169
+ font-family: inherit;
170
+ font-size: 0.9em;
171
+ line-height: 1.6;
172
+ color: inherit;
173
+ cursor: pointer;
174
+ border-radius: var(--radius-ui, 3px);
175
+ }
176
+
177
+ .toc-block-item:hover {
178
+ color: var(--color-accent, #567b67);
179
+ text-decoration: underline;
180
+ }
181
+
182
+ .toc-block-item:focus-visible {
183
+ outline: 2px solid var(--color-accent, #567b67);
184
+ outline-offset: 1px;
185
+ }
186
+
187
+ /* A flat `<ol>` keeps list semantics; the padding is what shows the hierarchy. */
188
+ .toc-block-level-1 {
189
+ padding-left: 0;
190
+ }
191
+ .toc-block-level-2 {
192
+ padding-left: 1.1em;
193
+ }
194
+ .toc-block-level-3 {
195
+ padding-left: 2.2em;
196
+ }
197
+ .toc-block-level-4 {
198
+ padding-left: 3.3em;
199
+ }
200
+ .toc-block-level-5 {
201
+ padding-left: 4.4em;
202
+ }
203
+ .toc-block-level-6 {
204
+ padding-left: 5.5em;
205
+ }
206
+
207
+ .toc-block-empty {
208
+ font-size: 0.9em;
209
+ color: var(--color-text-muted, #aaaaaa);
210
+ }
211
+
212
+ /* The entry's own line box lands a pixel under the WCAG 2.5.8 minimum a thumb needs. */
213
+ @media (pointer: coarse) {
214
+ .toc-block-item {
215
+ min-height: 24px;
216
+ }
217
+ }
218
+ </style>
@@ -0,0 +1,24 @@
1
+ import { type DocumentView, type EditorRects, type NodeView } from '../../plugin';
2
+ type $$ComponentProps = {
3
+ node: NodeView;
4
+ index: number;
5
+ myPath?: number[];
6
+ document?: DocumentView;
7
+ rects?: EditorRects;
8
+ maxDepth?: number;
9
+ };
10
+ declare const TocBlock: import("svelte").Component<$$ComponentProps, {
11
+ editable: true;
12
+ focusable: true;
13
+ focus: (offset: number) => void;
14
+ parkCaret: (offset: number) => void;
15
+ focusAtColumn: (x: number, from: import("../../plugin").StickyColumnDirection) => void;
16
+ getCursorOffset: () => number | null;
17
+ getSelectedText: () => string;
18
+ setSelection: (start: number, end: number) => void;
19
+ measurePartialRects: (startOffset: number, endOffset: number) => DOMRect[];
20
+ runCommand: (id: import("../../plugin").CommandId) => boolean;
21
+ insertMarkdown: (md: string) => boolean;
22
+ }, "">;
23
+ type TocBlock = ReturnType<typeof TocBlock>;
24
+ export default TocBlock;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The heading outline as a pure function over the read-only document. The walk
3
+ * recurses through containers, so a heading nested in a blockquote or list is still
4
+ * collected at its own path and remains navigable.
5
+ */
6
+ import { type DocumentView, type InlineNode } from '../../plugin';
7
+ /** Deepest heading level a document can list; `[[toc]]` has no meaning past GFM's six. */
8
+ export declare const MAX_HEADING_DEPTH = 6;
9
+ /**
10
+ * The instance's `{ plugin, options }` depth, else `fallback` (the factory argument's
11
+ * bare-install default). Options arrive as `unknown` from the platform, so anything but a
12
+ * whole number in 1..6 is not a depth and falls back rather than listing nothing.
13
+ */
14
+ export declare function resolveMaxDepth(options: unknown, fallback: number): number;
15
+ export interface TocEntry {
16
+ /** Stable and unique per position: the keyed-loop identity. */
17
+ id: string;
18
+ /** Doc-absolute block path of the heading, for `rects.scrollTo`. */
19
+ path: number[];
20
+ level: number;
21
+ label: string;
22
+ }
23
+ /**
24
+ * Plain-text projection: markers drop with their wrapper, value nodes show what they
25
+ * render to, and anything unrecognized falls back to its source bytes.
26
+ */
27
+ export declare function projectInlineText(nodes: readonly InlineNode[], raw: string): string;
28
+ export declare function collectHeadings(document: DocumentView | undefined, maxDepth: number): TocEntry[];
@@ -0,0 +1,65 @@
1
+ /**
2
+ * The heading outline as a pure function over the read-only document. The walk
3
+ * recurses through containers, so a heading nested in a blockquote or list is still
4
+ * collected at its own path and remains navigable.
5
+ */
6
+ import { computeInlineContent, headingLevel } from '../../plugin';
7
+ /** Deepest heading level a document can list; `[[toc]]` has no meaning past GFM's six. */
8
+ export const MAX_HEADING_DEPTH = 6;
9
+ /**
10
+ * The instance's `{ plugin, options }` depth, else `fallback` (the factory argument's
11
+ * bare-install default). Options arrive as `unknown` from the platform, so anything but a
12
+ * whole number in 1..6 is not a depth and falls back rather than listing nothing.
13
+ */
14
+ export function resolveMaxDepth(options, fallback) {
15
+ const declared = options?.maxDepth;
16
+ if (typeof declared !== 'number' || !Number.isInteger(declared))
17
+ return fallback;
18
+ return declared >= 1 && declared <= MAX_HEADING_DEPTH ? declared : fallback;
19
+ }
20
+ /**
21
+ * Plain-text projection: markers drop with their wrapper, value nodes show what they
22
+ * render to, and anything unrecognized falls back to its source bytes.
23
+ */
24
+ export function projectInlineText(nodes, raw) {
25
+ let text = '';
26
+ for (const node of nodes) {
27
+ if (node.children)
28
+ text += projectInlineText(node.children, raw);
29
+ else if (typeof node.text === 'string')
30
+ text += node.text;
31
+ else if (typeof node.decoded === 'string')
32
+ text += node.decoded;
33
+ else if (typeof node.url === 'string')
34
+ text += node.url;
35
+ else if (node.kind === 'rawHtml')
36
+ continue;
37
+ else
38
+ text += raw.slice(node.start, node.end);
39
+ }
40
+ return text;
41
+ }
42
+ export function collectHeadings(document, maxDepth) {
43
+ const entries = [];
44
+ const walk = (children, basePath) => {
45
+ children.forEach((node, index) => {
46
+ const path = [...basePath, index];
47
+ const level = headingLevel(node);
48
+ if (level !== null) {
49
+ if (level <= maxDepth) {
50
+ entries.push({
51
+ id: path.join('.'),
52
+ path,
53
+ level,
54
+ label: projectInlineText(computeInlineContent(node), node.raw).trim()
55
+ });
56
+ }
57
+ }
58
+ else if (node.children && node.children.length > 0) {
59
+ walk(node.children, path);
60
+ }
61
+ });
62
+ };
63
+ walk(document?.children ?? [], []);
64
+ return entries;
65
+ }
@@ -0,0 +1,2 @@
1
+ export { tocPlugin, TOC_BLOCK } from './toc-plugin';
2
+ export type { TocOptions, MaxHeadingLevel } from './toc-plugin';
@@ -0,0 +1,2 @@
1
+ // A `[[toc]]` leaf rendering the document's heading outline, click-to-navigate.
2
+ export { tocPlugin, TOC_BLOCK } from './toc-plugin';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Per-block serialization for `rects.navigateTo`. The reveal anchor
3
+ * (`cursor/reveal-anchor.ts`) decides which pin survives a race but cannot un-land a
4
+ * caret, and two overlapping navigations from one block land two. A mid-flight call
5
+ * overwrites the pending target, so the newest wins with no extra scroll.
6
+ */
7
+ export interface NavigationQueue {
8
+ navigateTo(path: number[]): Promise<void>;
9
+ }
10
+ export declare function createNavigationQueue(deps: {
11
+ navigateTo: (path: number[]) => Promise<unknown>;
12
+ }): NavigationQueue;
@@ -0,0 +1,21 @@
1
+ export function createNavigationQueue(deps) {
2
+ let navigating = false;
3
+ let pendingPath = null;
4
+ async function navigateTo(path) {
5
+ pendingPath = path;
6
+ if (navigating)
7
+ return;
8
+ navigating = true;
9
+ try {
10
+ while (pendingPath) {
11
+ const target = pendingPath;
12
+ pendingPath = null;
13
+ await deps.navigateTo(target);
14
+ }
15
+ }
16
+ finally {
17
+ navigating = false;
18
+ }
19
+ }
20
+ return { navigateTo };
21
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * A `[[toc]]` leaf whose folded view lists the document's headings, read straight off
3
+ * `BlockComponentProps.document` — the reference consumer of that prop. Recognition is
4
+ * gated on registration, so with no plugin loaded `[[toc]]` is a plain paragraph.
5
+ */
6
+ import { type EditorPlugin } from '../../plugin';
7
+ export declare const TOC_BLOCK = "toc";
8
+ export declare function registerTocBlock(): void;
9
+ export type MaxHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
10
+ /** The per-instance `{ plugin, options }` shape, and the factory argument's, which are one
11
+ * vocabulary on purpose: the instance entry overrides the factory default. */
12
+ export interface TocOptions {
13
+ /** Deepest heading level listed (default 6 = every level). */
14
+ maxDepth?: MaxHeadingLevel;
15
+ }
16
+ export declare function tocPlugin(options?: TocOptions): EditorPlugin;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * A `[[toc]]` leaf whose folded view lists the document's headings, read straight off
3
+ * `BlockComponentProps.document` — the reference consumer of that prop. Recognition is
4
+ * gated on registration, so with no plugin loaded `[[toc]]` is a plain paragraph.
5
+ */
6
+ import { definePlugin, declarePluginKind, declaredPluginKind, registerBlockKind, registerBlockOpener, registerBlockComponent, defineBlockComponent, simpleLeafClosure, OPENER_PRIORITIES } from '../../plugin';
7
+ import TocBlock from './TocBlock.svelte';
8
+ import { MAX_HEADING_DEPTH } from './heading-outline';
9
+ export const TOC_BLOCK = 'toc';
10
+ const TOC_LINE = '[[toc]]';
11
+ export function registerTocBlock() {
12
+ const toc = declarePluginKind(TOC_BLOCK);
13
+ // A source-holding leaf like `fencedCode`: `serialize` re-emits `leadingTrivia + raw`,
14
+ // so a raw taken verbatim from the line round-trips.
15
+ registerBlockKind(toc, {
16
+ mergeRole: 'not-mergeable',
17
+ editable: true,
18
+ supportsInline: false,
19
+ // Render-primary like the math forms: the folded view leaves a caret no textual landing
20
+ // at either edge, so both boundaries open against another trapped kind.
21
+ gapEdges: 'both',
22
+ conformanceFixture: '[[toc]]\n',
23
+ closure: simpleLeafClosure({
24
+ focus: {
25
+ mode: 'implemented',
26
+ via: 'createEditableLeaf render-primary reveal (source ⇄ folded heading list)'
27
+ },
28
+ selectionPaint: {
29
+ mode: 'implemented',
30
+ via: 'measurePartialRects (raw offsets) while the source is revealed'
31
+ },
32
+ searchPaint: {
33
+ mode: 'implemented',
34
+ via: 'source raw scanned and navigable; while folded, createEditableLeaf covers the rendered block box (opaque single-unit fallback)'
35
+ },
36
+ undo: {
37
+ mode: 'implemented',
38
+ via: 'render-primary — the reveal→edit→blur cycle commits as one undo entry'
39
+ },
40
+ simOracle: { mode: 'implemented', via: 'toc document-prop e2e' }
41
+ })
42
+ });
43
+ registerBlockOpener(toc, {
44
+ // Gap placement below the only bracket-consuming built-in, so `[[toc]]` resolves here
45
+ // whatever that matcher claims.
46
+ priority: OPENER_PRIORITIES.linkReferenceDefinition - 5,
47
+ interruptsParagraph: (text) => text === TOC_LINE,
48
+ tryOpen(ctx) {
49
+ // Exact line only, so this process-wide opener never misfires on indented or
50
+ // trailing content in a sibling plugin's document.
51
+ if (ctx.line.text !== TOC_LINE)
52
+ return null;
53
+ return {
54
+ node: { kind: toc, leadingTrivia: ctx.leadingTrivia, raw: ctx.line.raw },
55
+ consumed: 1
56
+ };
57
+ }
58
+ });
59
+ }
60
+ export function tocPlugin(options) {
61
+ // Definition-time, so it is the BARE-install default only: the block prefers this editor's
62
+ // `{ plugin, options }` depth, which is what lets two instances differ.
63
+ const maxDepth = options?.maxDepth ?? MAX_HEADING_DEPTH;
64
+ return definePlugin({
65
+ name: 'toc',
66
+ setup() {
67
+ registerTocBlock();
68
+ registerBlockComponent(declaredPluginKind(TOC_BLOCK), defineBlockComponent(TocBlock, () => ({ maxDepth })));
69
+ }
70
+ });
71
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The presentation-mode contract. `source` is the editing default (always-visible styled
3
+ * source); `reading` hides markers and makes the surface inert; `preview-block` reveals the
4
+ * caret's block and `preview-inline` narrows that reveal to the caret-touched construct
5
+ * (`components/blocks/text/construct-reveal.ts`); `live` hides markers with no reveal at all,
6
+ * while staying editable. Every door reports the EFFECTIVE mode.
7
+ */
8
+ export type PresentationMode = 'source' | 'reading' | 'preview-block' | 'preview-inline' | 'live';
9
+ /**
10
+ * A mode read off the DOM or handed in untyped, narrowed to the contract. The marker-hiding CSS
11
+ * families match known values only, so an unrecognized one must read as the editing default here or
12
+ * the stylesheet and the caret walk disagree about the same block.
13
+ */
14
+ export declare function asPresentationMode(value: string | null | undefined): PresentationMode;
15
+ /** Membership for the marker-hiding CSS families and the `data-list-marker` hook that
16
+ * feeds them: styled source is the one mode that paints Markdown syntax. */
17
+ export declare function hidesMarkers(mode: PresentationMode): boolean;
18
+ /** The reveal-on-focus rungs, which alone need the `data-focused` attribute — live hides
19
+ * markers (see `hidesMarkers`) but never reveals them, so it is deliberately not one. */
20
+ export declare function isPreviewMode(mode: PresentationMode): boolean;
21
+ /**
22
+ * Whether the mode paints a marker in the block the caret is in: styled source always, and the
23
+ * preview rungs by revealing that block. The question every seam writing at the caret asks, since
24
+ * a rewrite may only drop bytes the reader never saw (live-mode.md § 2).
25
+ */
26
+ export declare function paintsFocusedMarkers(mode: PresentationMode): boolean;
27
+ /**
28
+ * The read-only gate the dispatch seams key off. Structural parameter type so the
29
+ * schema/selection layers need no editor-keys import; an `undefined` getter (test
30
+ * doubles, unwired surfaces) means not reading.
31
+ */
32
+ export declare function isReadingMode(getMode: (() => PresentationMode) | undefined): boolean;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * The presentation-mode contract. `source` is the editing default (always-visible styled
3
+ * source); `reading` hides markers and makes the surface inert; `preview-block` reveals the
4
+ * caret's block and `preview-inline` narrows that reveal to the caret-touched construct
5
+ * (`components/blocks/text/construct-reveal.ts`); `live` hides markers with no reveal at all,
6
+ * while staying editable. Every door reports the EFFECTIVE mode.
7
+ */
8
+ /** Keyed by the union, so a rung added to it fails `npm run check` here rather than falling
9
+ * silently through {@link asPresentationMode}'s door. */
10
+ const MODES = {
11
+ source: true,
12
+ reading: true,
13
+ 'preview-block': true,
14
+ 'preview-inline': true,
15
+ live: true
16
+ };
17
+ /**
18
+ * A mode read off the DOM or handed in untyped, narrowed to the contract. The marker-hiding CSS
19
+ * families match known values only, so an unrecognized one must read as the editing default here or
20
+ * the stylesheet and the caret walk disagree about the same block.
21
+ */
22
+ export function asPresentationMode(value) {
23
+ return value != null && Object.hasOwn(MODES, value) ? value : 'source';
24
+ }
25
+ /** Membership for the marker-hiding CSS families and the `data-list-marker` hook that
26
+ * feeds them: styled source is the one mode that paints Markdown syntax. */
27
+ export function hidesMarkers(mode) {
28
+ return mode !== 'source';
29
+ }
30
+ /** The reveal-on-focus rungs, which alone need the `data-focused` attribute — live hides
31
+ * markers (see `hidesMarkers`) but never reveals them, so it is deliberately not one. */
32
+ export function isPreviewMode(mode) {
33
+ return mode === 'preview-block' || mode === 'preview-inline';
34
+ }
35
+ /**
36
+ * Whether the mode paints a marker in the block the caret is in: styled source always, and the
37
+ * preview rungs by revealing that block. The question every seam writing at the caret asks, since
38
+ * a rewrite may only drop bytes the reader never saw (live-mode.md § 2).
39
+ */
40
+ export function paintsFocusedMarkers(mode) {
41
+ return !hidesMarkers(mode) || isPreviewMode(mode);
42
+ }
43
+ /**
44
+ * The read-only gate the dispatch seams key off. Structural parameter type so the
45
+ * schema/selection layers need no editor-keys import; an `undefined` getter (test
46
+ * doubles, unwired surfaces) means not reading.
47
+ */
48
+ export function isReadingMode(getMode) {
49
+ return getMode?.() === 'reading';
50
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * A container's inner BlockList scope: the keyed-each id source and the component-ref slot
3
+ * array. Structural mutations route through the commit primitives on UndoController, which
4
+ * apply `StructuralChange` descriptors to keep ids/refs aligned with children.
5
+ */
6
+ import type { BlockComponent } from '../block-component';
7
+ import type { NodeView } from '../core/node-views';
8
+ import { type RefSlots } from './publish-ref.svelte';
9
+ export interface BlockListState {
10
+ /** Settable because ids live on the node, where the write reaches the `$state` proxy.
11
+ * Refs do not: the array identity IS the scope, so `replaceRefs` publishes contents
12
+ * and the property itself never moves. */
13
+ innerBlockIds: string[];
14
+ readonly innerBlockRefs: (BlockComponent | undefined)[];
15
+ /** This scope's slot accessors, minted once here so every consumer — the child list,
16
+ * the container surface, the mount registry — addresses the scope by one identity. */
17
+ readonly refSlots: RefSlots<BlockComponent>;
18
+ }
19
+ /** `getNode` must be a live getter — by-value freezes on the initial node and misses
20
+ * undo's deep-clone reassignment. A view suffices: the only writes target `childIds`,
21
+ * the bytes-view carve-out. */
22
+ export declare function createBlockListState(getNode: () => NodeView): BlockListState;