@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,585 @@
1
+ /**
2
+ * Editor structural styles: painting rules for DOM the renderers build imperatively,
3
+ * which can't live in component <style> blocks. Every rule is wrapped in :where(.editor)
4
+ * for zero added specificity and full namespacing. Token VALUES live in editor-theme.css;
5
+ * host --color-* tokens are read with fallbacks here, never declared.
6
+ */
7
+
8
+ /* Classes applied by code-renderer.ts; unknown ones fall through to --code-tok-unknown
9
+ * (inherit), preserving the textContent invariant without forcing a color choice. */
10
+ :where(.editor) .code-tok-keyword {
11
+ color: var(--code-tok-keyword);
12
+ font-weight: 600;
13
+ }
14
+ :where(.editor) .code-tok-string {
15
+ color: var(--code-tok-string);
16
+ }
17
+ :where(.editor) .code-tok-number {
18
+ color: var(--code-tok-number);
19
+ }
20
+ :where(.editor) .code-tok-literal {
21
+ color: var(--code-tok-literal);
22
+ }
23
+ :where(.editor) .code-tok-comment {
24
+ color: var(--code-tok-comment);
25
+ font-style: italic;
26
+ }
27
+ :where(.editor) .code-tok-type {
28
+ color: var(--code-tok-type);
29
+ }
30
+ :where(.editor) .code-tok-function {
31
+ color: var(--code-tok-function);
32
+ }
33
+ :where(.editor) .code-tok-variable {
34
+ color: var(--code-tok-variable);
35
+ }
36
+ :where(.editor) .code-tok-operator {
37
+ color: var(--code-tok-operator);
38
+ }
39
+ :where(.editor) .code-tok-punctuation {
40
+ color: var(--code-tok-punctuation);
41
+ }
42
+ :where(.editor) .code-tok-meta {
43
+ color: var(--code-tok-meta);
44
+ }
45
+ :where(.editor) .code-tok-attr {
46
+ color: var(--code-tok-attr);
47
+ }
48
+ :where(.editor) .code-tok-regexp {
49
+ color: var(--code-tok-regexp);
50
+ }
51
+ :where(.editor) .code-tok-symbol {
52
+ color: var(--code-tok-symbol);
53
+ }
54
+ :where(.editor) .code-tok-subst {
55
+ color: var(--code-tok-subst);
56
+ }
57
+ :where(.editor) .code-tok-added {
58
+ color: var(--code-tok-added);
59
+ }
60
+ :where(.editor) .code-tok-removed {
61
+ color: var(--code-tok-removed);
62
+ }
63
+ :where(.editor) .code-tok-heading {
64
+ color: var(--code-tok-heading);
65
+ font-weight: 600;
66
+ }
67
+ :where(.editor) .code-tok-link {
68
+ color: var(--code-tok-link);
69
+ text-decoration: underline;
70
+ }
71
+ :where(.editor) .code-tok-unknown {
72
+ color: var(--code-tok-unknown);
73
+ }
74
+
75
+ /* Uniform selection color: single-block (native) matches cross-block (overlay) */
76
+ :where(.editor) ::selection {
77
+ background: var(--selection-overlay-bg, rgba(100, 150, 255, 0.3));
78
+ }
79
+
80
+ /* Suppress native painting so it doesn't double up with SelectionOverlay's highlights. Scoped
81
+ to `.block-list` because the find/replace bar is a sibling that must keep painting its own. */
82
+ :where(.editor)[data-cross-block] .block-list ::selection {
83
+ background: transparent;
84
+ }
85
+
86
+ :where(.editor)[data-cross-block] [contenteditable] {
87
+ caret-color: transparent;
88
+ }
89
+
90
+ /* The whole-block editing host: invisible, but a REAL box — Chromium fires no `beforeinput` on a
91
+ zero-height editing host, which would silently cost it every keystroke. Click-through, so it
92
+ never steals a pointer from the surface it stands over; in-flight IME text paints here. */
93
+ :where(.editor) .whole-block-input {
94
+ position: absolute;
95
+ top: 0;
96
+ left: 0;
97
+ right: 0;
98
+ height: 1.2em;
99
+ overflow: hidden;
100
+ outline: none;
101
+ pointer-events: none;
102
+ caret-color: transparent;
103
+ }
104
+
105
+ /* Global, not component-scoped, so a consumer's own `.decoration-overlay.<their-class>`
106
+ rules resolve. */
107
+ :where(.editor) .decoration-overlay {
108
+ position: absolute;
109
+ pointer-events: none;
110
+ z-index: 1;
111
+ border-radius: 2px;
112
+ }
113
+ :where(.editor) .decoration-overlay-interactive {
114
+ pointer-events: auto;
115
+ cursor: pointer;
116
+ }
117
+
118
+ /* Search's marks ride the base rule above. */
119
+ :where(.editor) .match-overlay {
120
+ background: var(--search-match-bg);
121
+ }
122
+ :where(.editor) .match-overlay-active {
123
+ background: var(--search-match-active-bg);
124
+ }
125
+
126
+ /* Non-editable chrome prepended to the host; the consumer positions it. */
127
+ :where(.editor) .decoration-badge {
128
+ user-select: none;
129
+ }
130
+
131
+ /* Atomic non-editable inline chrome; the source's class layers styling on top. */
132
+ :where(.editor) .decoration-island {
133
+ user-select: none;
134
+ }
135
+
136
+ /* The find bar is editor-level chrome and outranks a block affordance, so a per-block affordance
137
+ claiming the same top-right band yields it while the bar is open. Without this the pointer hits
138
+ the bar and the affordance is unreachable until search closes (#145). */
139
+ .editor:has(> .search-anchor .search-bar) .code-lang-chip {
140
+ top: 52px;
141
+ }
142
+
143
+ :where(.editor) .md-image-widget {
144
+ display: block;
145
+ /* Shrink-wrap so the widget matches the image, not its line-box. */
146
+ width: fit-content;
147
+ margin: 0.5em 0;
148
+ user-select: none;
149
+ }
150
+
151
+ /* Positioning context for the ::after selection tint and ::before snap caret. */
152
+ :where(.editor) [data-inline-widget] {
153
+ position: relative;
154
+ }
155
+
156
+ /* Directive with no plugin renderer: show its source dimmed like a marker. */
157
+ :where(.editor) .directive-text-widget {
158
+ opacity: var(--syntax-marker-dim, 0.65);
159
+ }
160
+
161
+ /* Decoded-entity glyph (`&copy;` → ©): user-select:none keeps it whole, so no caret
162
+ lands inside the glyph. */
163
+ :where(.editor) .md-entity-widget {
164
+ user-select: none;
165
+ }
166
+
167
+ :where(.editor) .md-image-widget img {
168
+ max-width: 100%;
169
+ height: auto;
170
+ display: block;
171
+ }
172
+
173
+ /* Image-bearing list-item / blockquote paragraph: the ambient marker sits at the image's
174
+ bottom-left, pulled out of flow rather than laid out with `display: flex`, which leaves no
175
+ caret anchor past a contenteditable=false widget. The widget side of each `:has()` is a
176
+ descendant match, since a wrapping inline construct puts the widget one level deeper; the
177
+ marker side stays a child combinator, matching only the structurally-injected prefix. */
178
+ :where(.editor)
179
+ .text-editable-block.paragraph-block:has(> .md-marker[contenteditable='false']):has(
180
+ .md-image-widget
181
+ ) {
182
+ position: relative;
183
+ text-indent: 0 !important;
184
+ }
185
+
186
+ :where(.editor)
187
+ .text-editable-block.paragraph-block:has(> .md-marker[contenteditable='false']):has(
188
+ .md-image-widget
189
+ )
190
+ > .md-marker[contenteditable='false'] {
191
+ position: absolute;
192
+ left: 0;
193
+ bottom: 0;
194
+ }
195
+
196
+ /* Drop the trailing empty line-box the contenteditable keeps after a block-level child,
197
+ which otherwise leaves dead vertical space below every image-only item. */
198
+ :where(.editor) .text-editable-block.paragraph-block:has(.md-image-widget:last-child) {
199
+ min-height: 0;
200
+ }
201
+
202
+ /* An image wrapped in a link: left inline, the anchor stretches to full content width and its
203
+ `title` tooltip hovers beside the image. Hug the widget so the tooltip covers only it. */
204
+ :where(.editor) a.md-link-content:has(.md-image-widget) {
205
+ display: inline-block;
206
+ width: fit-content;
207
+ }
208
+
209
+ /* An image with no pixels (broken, scheme-refused, or deferred by `imageLoadPolicy:
210
+ 'placeholder'`) lays out 0×0 without this floor, unless a `|WxH` hint reserves its own box.
211
+ Display:block stays inherited: image widgets always force a visual line break. */
212
+ :where(.editor) .md-image-broken,
213
+ :where(.editor) .md-image-blocked,
214
+ :where(.editor) .md-image-placeholder {
215
+ min-width: 100px;
216
+ min-height: 60px;
217
+ border: 1px dashed var(--color-ui-muted, #a4a4a4);
218
+ background: var(--color-bg-muted, #2a2a2a);
219
+ }
220
+
221
+ :where(.editor) .md-image-broken {
222
+ padding: 8px;
223
+ color: var(--color-text-muted, #aaa);
224
+ font-style: italic;
225
+ }
226
+
227
+ :where(.editor) .md-image-broken img {
228
+ display: none;
229
+ }
230
+
231
+ /* Not on `.md-image-broken`: it has padding, and border-box would change its box. */
232
+ :where(.editor) .md-image-blocked,
233
+ :where(.editor) .md-image-placeholder {
234
+ box-sizing: border-box;
235
+ }
236
+
237
+ :where(.editor) .md-image-broken::before {
238
+ content: '⚠ image failed to load';
239
+ }
240
+
241
+ /* Tint paints over the widget via ::after — `background-color` on the span
242
+ itself is hidden by the opaque <img> child (display:block, max-width:100%). */
243
+ :where(.editor) [data-inline-widget].md-widget-selected::after {
244
+ content: '';
245
+ position: absolute;
246
+ inset: 0;
247
+ background-color: var(--selection-overlay-bg, rgba(100, 150, 255, 0.3));
248
+ border-radius: 2px;
249
+ pointer-events: none;
250
+ }
251
+
252
+ /* Synthetic caret on the snap-target edge — Chromium doesn't reliably render
253
+ the live caret adjacent to a contenteditable=false neighbor. */
254
+ :where(.editor) [data-inline-widget].md-snap-after::before,
255
+ :where(.editor) [data-inline-widget].md-snap-before::before {
256
+ content: '';
257
+ position: absolute;
258
+ top: 4px;
259
+ bottom: 4px;
260
+ width: 1.5px;
261
+ background-color: var(--color-text-primary, currentColor);
262
+ animation: md-snap-caret-blink 1s step-end infinite;
263
+ pointer-events: none;
264
+ }
265
+
266
+ :where(.editor) [data-inline-widget].md-snap-after::before {
267
+ right: -2px;
268
+ }
269
+
270
+ :where(.editor) [data-inline-widget].md-snap-before::before {
271
+ left: -2px;
272
+ }
273
+
274
+ @keyframes md-snap-caret-blink {
275
+ 50% {
276
+ opacity: 0;
277
+ }
278
+ }
279
+
280
+ /* The synthetic caret REPLACES the native one: Chromium does sometimes render a caret beside a
281
+ contenteditable=false island, and two at one position reads as two carets. */
282
+ :where(.editor) .md-snap-caret-active {
283
+ caret-color: transparent;
284
+ }
285
+
286
+ /* Top, left, width, height set inline by syncOverlayToWidget. */
287
+ :where(.editor) .md-image-overlay {
288
+ position: absolute;
289
+ pointer-events: none;
290
+ z-index: 10;
291
+ }
292
+
293
+ :where(.editor) .md-image-overlay > * {
294
+ pointer-events: auto;
295
+ }
296
+
297
+ /* Scoped to the anchor so a blocked-scheme `span.md-link-content` never looks clickable, and
298
+ excluding image widgets so a wrapped one is not underlined as if it were text. */
299
+ :where(.editor) a.md-link-content:not(:has(.md-image-widget)) {
300
+ color: var(--syntax-link, var(--color-accent, #567b67));
301
+ text-decoration: underline;
302
+ }
303
+
304
+ /* A plain click edits; only Ctrl/Cmd+click activates the link (`Editor.svelte` mirrors the
305
+ modifier onto the root). Stated explicitly so the caret-vs-pointer state is the editor's,
306
+ not the UA's `<a href>` default. */
307
+ :where(.editor) a.md-link-content,
308
+ :where(.editor) .md-autolink {
309
+ cursor: text;
310
+ }
311
+
312
+ :where(.editor)[data-mod-active] a.md-link-content,
313
+ :where(.editor)[data-mod-active] .md-autolink:not(.md-link-blocked) {
314
+ cursor: pointer;
315
+ }
316
+
317
+ /* Blocked-scheme link: inert metadata, kept visually distinct from a clickable one. */
318
+ :where(.editor) .md-link-content.md-link-blocked {
319
+ color: var(--md-link-blocked-color, var(--color-text-muted, #888));
320
+ text-decoration: none;
321
+ cursor: text;
322
+ }
323
+
324
+ /* Dimmer than the structural-content `[text]` / `(url)` markers, so it reads as metadata. */
325
+ :where(.editor) .md-ref-label {
326
+ color: var(--md-ref-label-color, rgba(128, 128, 128, 0.45));
327
+ font-style: italic;
328
+ }
329
+
330
+ :where(.editor) .md-unresolved-ref {
331
+ color: var(--md-unresolved-color, #c0392b);
332
+ border-bottom: 1px dashed currentColor;
333
+ text-decoration: none;
334
+ }
335
+
336
+ /* A background sets image-variant unresolved refs apart from link-variant ones. */
337
+ :where(.editor) .md-unresolved-ref-image {
338
+ background: var(--md-unresolved-image-bg, rgba(192, 57, 43, 0.08));
339
+ padding: 0 2px;
340
+ border-radius: 2px;
341
+ }
342
+
343
+ /* linkReferenceDefinition blocks render as metadata rather than content. */
344
+ :where(.editor) .block-host[data-block-kind='linkReferenceDefinition'] {
345
+ opacity: 0.75;
346
+ font-size: 0.9em;
347
+ font-style: italic;
348
+ }
349
+
350
+ /* Dimmed monospace gives inline raw HTML a code-ish feel without becoming a code span. */
351
+ :where(.editor) .md-raw-html {
352
+ color: var(--md-raw-html-color, rgba(120, 120, 120, 0.85));
353
+ font-family: var(--font-editor, ui-monospace, monospace);
354
+ font-size: 0.92em;
355
+ }
356
+
357
+ /* Off-window placeholder tint (VR-8): a fling can outrun the window recompute and paint a
358
+ bare spacer for one frame, which without a background tears white. */
359
+ :where(.editor) .vr-spacer {
360
+ background: var(--vr-spacer-bg, rgba(128, 128, 128, 0.03));
361
+ }
362
+
363
+ /* One revealed-source identity for render-primary blocks (math, toc, mermaid): a plugin
364
+ component adds this class and keeps only its padding/overflow deltas. */
365
+ :where(.editor) .md-source-surface {
366
+ display: block;
367
+ width: 100%;
368
+ box-sizing: border-box;
369
+ min-height: 1.4em;
370
+ font-family: var(--font-editor, ui-monospace, monospace);
371
+ font-size: 0.9em;
372
+ line-height: 1.5;
373
+ color: inherit;
374
+ background: var(--color-bg-secondary, rgba(128, 128, 128, 0.12));
375
+ border: 1px solid var(--color-accent, #567b67);
376
+ border-radius: 4px;
377
+ }
378
+
379
+ /* ── Semantic syntax-token wiring ─────────────────────────────────────────────
380
+ Defaults in editor-theme.css are neutral, so these rules change nothing until a consumer
381
+ overrides a token. Rules whose construct is also colored by a component <style> shorthand
382
+ carry the extra selector weight to beat the Svelte scoping class. */
383
+
384
+ :where(.editor)
385
+ .text-editable-block:is(.heading-1, .heading-2, .heading-3, .heading-4, .heading-5, .heading-6) {
386
+ color: var(--syntax-heading, currentColor);
387
+ }
388
+
389
+ :where(.editor) :is(em, strong) {
390
+ color: var(--syntax-emphasis, currentColor);
391
+ }
392
+
393
+ :where(.editor) .inline-code-content {
394
+ color: var(--syntax-code, currentColor);
395
+ }
396
+
397
+ /* Raw-HTML block source text; inline raw HTML keeps --md-raw-html-color above. */
398
+ :where(.editor) .text-editable-block.raw-block {
399
+ color: var(--syntax-comment, currentColor);
400
+ }
401
+
402
+ :where(.editor) .block-host[data-block-kind='blockquote'] > .blockquote-block {
403
+ border-left-color: var(--syntax-quote, var(--color-ui-muted, #a4a4a4));
404
+ }
405
+
406
+ :where(.editor) .thematic-break-rule[role='separator'] > hr {
407
+ border-top-color: var(--syntax-separator, var(--color-ui-muted, #a4a4a4));
408
+ }
409
+
410
+ /* The [contenteditable='false'] qualifier scopes to the structurally-injected ambient
411
+ prefix, not inline .md-marker spans. */
412
+ :where(.editor) .list-item-block .md-marker[contenteditable='false'] {
413
+ color: var(--syntax-list, currentColor);
414
+ }
415
+
416
+ :where(.editor) .task-checkbox {
417
+ color: var(--syntax-task, currentColor);
418
+ }
419
+
420
+ /* Table grips reveal on table hover, in pure CSS with no per-grip reactive state. The grip's
421
+ own <style> holds the at-rest state, so it never intercepts a caret click until then. */
422
+ :where(.editor) [role='table']:hover [data-table-col-grip],
423
+ :where(.editor) [role='table']:hover [data-table-row-grip] {
424
+ opacity: 1;
425
+ pointer-events: auto;
426
+ }
427
+
428
+ /* ── Rendered chrome, shared by every marker-hiding mode ──────────────────────
429
+ Every mode but source hides markers by CSS ONLY, never by omitting them from the render
430
+ path: the raw-aware offset walk counts every DOM text node regardless of layout, so
431
+ structural omission would desync the DOM↔raw coordinate space. Keyed on an
432
+ equal-specificity :is() so the per-mode rules below win by source order. */
433
+
434
+ /* .md-marker: inline markers and block-own prefixes are pure syntax in normal flow, so
435
+ dropping them from paint and native copy joins the text up rendered-style; ambient
436
+ container markers carry layout and keep their box below. */
437
+ /* .md-fence-line: a fence line's `\n` is a bare text node CSS can't reach; the wrapper
438
+ owns marker + newline, so collapsing it leaves no blank line at the box's edge. */
439
+ /* .md-ref-label: resolution metadata, not content; a rendered document shows only the
440
+ link text. */
441
+ /* .directive-marker: the container chrome (border/gutter) is the rendered form of a
442
+ directive fence; it never reveals, belonging to the container, not the focused leaf. */
443
+ :where(.editor):is(
444
+ [data-presentation='reading'],
445
+ [data-presentation^='preview-'],
446
+ [data-presentation='live']
447
+ )
448
+ :is(.md-marker:not([contenteditable='false']), .md-fence-line, .md-ref-label, .directive-marker) {
449
+ display: none;
450
+ }
451
+
452
+ /* Chrome with nothing behind it has nowhere to hide: a construct whose only bytes are its own
453
+ markers would paint as an empty line with no caret position, so an editable rung shows them
454
+ dimmed exactly as source does. Mirrored in `cursor/widget-offset.ts` (same two modes, same
455
+ two families); reading takes no keystrokes and keeps its silence. The `[contenteditable]`
456
+ qualifier scopes the stamp to the walk containers its JS twin reads, which is what a block
457
+ decoration spelling `data-content-empty` onto the block host cannot reach. */
458
+ :where(.editor):is([data-presentation^='preview-'], [data-presentation='live'])
459
+ [contenteditable][data-content-empty]
460
+ :is(.md-marker:not([contenteditable='false']), .md-fence-line) {
461
+ display: inline;
462
+ }
463
+
464
+ /* Ambient list markers own the hanging indent (padding/text-indent are keyed to the span's
465
+ ch width), so they keep their box: visibility, not display. */
466
+ :where(.editor):is(
467
+ [data-presentation='reading'],
468
+ [data-presentation^='preview-'],
469
+ [data-presentation='live']
470
+ )
471
+ .list-item-block
472
+ .md-marker[contenteditable='false'] {
473
+ visibility: hidden;
474
+ opacity: 1;
475
+ }
476
+
477
+ /* `- ` hides and a rendered bullet paints in its slot, like blockquote's border. */
478
+ :where(.editor):is(
479
+ [data-presentation='reading'],
480
+ [data-presentation^='preview-'],
481
+ [data-presentation='live']
482
+ )
483
+ .list-item-block[data-list-marker='bullet']
484
+ .md-marker[contenteditable='false']::before {
485
+ content: '•';
486
+ visibility: visible;
487
+ color: var(--syntax-list, currentColor);
488
+ }
489
+
490
+ /* The ambient text IS the rendered number (`1. `), so it stays visible and undimmed. */
491
+ :where(.editor):is(
492
+ [data-presentation='reading'],
493
+ [data-presentation^='preview-'],
494
+ [data-presentation='live']
495
+ )
496
+ .list-item-block[data-list-marker='ordered']
497
+ .md-marker[contenteditable='false'] {
498
+ visibility: visible;
499
+ }
500
+
501
+ /* GitHub task lists carry no bullet, so the `- ` prefix hides and the checkbox stays. */
502
+ :where(.editor):is(
503
+ [data-presentation='reading'],
504
+ [data-presentation^='preview-'],
505
+ [data-presentation='live']
506
+ )
507
+ .list-item-block[data-list-marker='task']
508
+ .task-checkbox {
509
+ visibility: visible;
510
+ }
511
+
512
+ /* ── Reading mode ─────────────────────────────────────────────────────────────
513
+ The marker-hiding families reading shares with the preview rungs and `live` are in the
514
+ section above; reading adds only its read-only inertness on top — `live` takes none of it. */
515
+
516
+ /* pointer-events kills the toggle click at the CSS layer; the toggleTask guard is the JS
517
+ belt. Toggling would rewrite the document, and reading mode writes no bytes. */
518
+ :where(.editor)[data-presentation='reading']
519
+ .list-item-block[data-list-marker='task']
520
+ .task-checkbox {
521
+ cursor: default;
522
+ pointer-events: none;
523
+ }
524
+
525
+ :where(.editor)[data-presentation='reading'] .task-checkbox:hover {
526
+ background-color: transparent;
527
+ }
528
+
529
+ /* No caret to place: links read as links and activate on plain click. */
530
+ :where(.editor)[data-presentation='reading'] a.md-link-content,
531
+ :where(.editor)[data-presentation='reading'] .md-autolink:not(.md-link-blocked) {
532
+ cursor: pointer;
533
+ }
534
+
535
+ /* ── Preview rungs (block + inline granularity) ───────────────────────────────
536
+ `preview-block` renders the focused block as full styled source; `preview-inline` reveals
537
+ only the constructs at the caret. Markers hide broadly (above) and un-hide INSIDE the
538
+ focused host: the naive `.block-host:not([data-focused])` would hide a focused leaf's
539
+ markers through its unfocused container ancestor. */
540
+
541
+ /* All inline spans, so the reveal restores source layout exactly. */
542
+ :where(.editor)[data-presentation='preview-block']
543
+ .block-host[data-focused]
544
+ .md-marker:not([contenteditable='false']) {
545
+ display: inline;
546
+ }
547
+
548
+ /* Code fence lines are whole-block markers, so both preview modes reveal them on focus. */
549
+ :where(.editor)[data-presentation^='preview-'] .block-host[data-focused] .md-fence-line {
550
+ display: inline;
551
+ }
552
+
553
+ /* Reference labels reveal on the focused block under preview-block. */
554
+ :where(.editor)[data-presentation='preview-block'] .block-host[data-focused] .md-ref-label {
555
+ display: inline;
556
+ }
557
+
558
+ /* preview-inline is excluded on purpose: the ambient marker is chrome the caret can never
559
+ enter, so at inline granularity it keeps its rendered form. */
560
+ :where(.editor)[data-presentation='preview-block']
561
+ .block-host[data-focused]
562
+ .md-marker[contenteditable='false'] {
563
+ visibility: visible;
564
+ opacity: var(--syntax-marker-dim, 0.65);
565
+ }
566
+ :where(.editor)[data-presentation='preview-block']
567
+ .block-host[data-focused]
568
+ .md-marker[contenteditable='false']::before {
569
+ content: none;
570
+ }
571
+
572
+ /* ── Inline-granular reveal (preview-inline's focused block) ──────────────────
573
+ The render stamps construct markers with data-construct-* and `construct-reveal.ts` flips
574
+ md-construct-reveal on the chain at the caret. Unstamped markers reveal with block focus as
575
+ under preview-block, so a table's stampless cells degrade to that behavior. */
576
+ :where(.editor)[data-presentation='preview-inline']
577
+ .block-host[data-focused]
578
+ .md-marker:not([contenteditable='false']):not([data-construct-start]) {
579
+ display: inline;
580
+ }
581
+ :where(.editor)[data-presentation='preview-inline']
582
+ .block-host[data-focused]
583
+ :is(.md-marker, .md-ref-label).md-construct-reveal {
584
+ display: inline;
585
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Shared plumbing for the conformance kits: the assertion primitives and CST walks
3
+ * `container-conformance.ts` (G4.3) and `kind-conformance.ts` sit on. Runner-agnostic —
4
+ * a failure is a plain thrown `Error`, so no suite reaching for one seam is forced to
5
+ * load a runner.
6
+ */
7
+ import type { AnyBlockKind, CstNode, Document } from '../core/nodes';
8
+ import type { BlockKindDescriptor } from '../schema/block-kind-descriptor';
9
+ /**
10
+ * How a cell is covered: `assert` runs the real check, `exempt` means the invariant has
11
+ * nothing to bite on, `boundary` means it needs something headless code cannot reach.
12
+ * Both non-assert modes carry a substantive reason — never a silent skip.
13
+ */
14
+ export type ConformanceCoverage = {
15
+ mode: 'assert';
16
+ } | {
17
+ mode: 'exempt';
18
+ reason: string;
19
+ } | {
20
+ mode: 'boundary';
21
+ reason: string;
22
+ };
23
+ export declare function fail(message: string): never;
24
+ export declare function assert(condition: unknown, message: string): asserts condition;
25
+ export declare function assertIs(actual: unknown, expected: unknown, message: string): void;
26
+ export declare function assertIndices(actual: readonly number[], expected: readonly number[], message: string): void;
27
+ export declare function show(value: unknown): string;
28
+ /** A documented reason is substantive, never a bare token — the visible-not-silent-skip floor. */
29
+ export declare function assertReasonDocumented(reason: string, label: string): void;
30
+ /** An EXEMPT/BOUNDARY cell must carry a substantive reason — visible, never a silent skip. */
31
+ export declare function assertExemptionDocumented(cell: ConformanceCoverage, label: string): void;
32
+ /**
33
+ * For a byte-faithful (strip/opaque) rebuild, `rebuildRaw` is the parse inverse: it must
34
+ * reproduce the SAME bytes, not merely run twice with the same wrong output. Grid rebuilds
35
+ * canonicalize delimiter/padding widths by contract, so they ride the determinism cell
36
+ * instead. Mutates `node.raw` in place — pass a fresh parse, never a shared cell node.
37
+ */
38
+ export declare function assertRebuildIsParseCanonical(descriptor: BlockKindDescriptor, node: CstNode, label: string): void;
39
+ export declare function firstChildOfKind(source: string, kind: AnyBlockKind): CstNode;
40
+ export declare function nodeAtPath(root: Document | CstNode, path: number[]): CstNode;
41
+ /** First node of `kind` in a pre-order walk (the kind may be nested below the root). */
42
+ export declare function findFirstOfKind(root: Document | CstNode, kind: AnyBlockKind): CstNode | null;
43
+ /** Doc-rooted path of the first node of `kind` in a pre-order walk, or null. */
44
+ export declare function findFirstPathOfKind(root: Document | CstNode, kind: AnyBlockKind): number[] | null;
45
+ export declare function pathPassesThroughKind(doc: Document, leafPath: number[], kind: AnyBlockKind): boolean;