@dxos/react-ui-editor 0.8.4-main.ead640a → 0.8.4-main.effb148878

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 (432) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/browser/index.mjs +1105 -8387
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/translations.mjs +39 -0
  7. package/dist/lib/browser/translations.mjs.map +7 -0
  8. package/dist/lib/node-esm/index.mjs +1105 -8386
  9. package/dist/lib/node-esm/index.mjs.map +4 -4
  10. package/dist/lib/node-esm/meta.json +1 -1
  11. package/dist/lib/node-esm/translations.mjs +41 -0
  12. package/dist/lib/node-esm/translations.mjs.map +7 -0
  13. package/dist/types/src/components/Editor/Editor.d.ts +53 -29
  14. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  15. package/dist/types/src/components/Editor/Editor.stories.d.ts +16 -20
  16. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -1
  17. package/dist/types/src/components/Editor/EditorView.d.ts +31 -0
  18. package/dist/types/src/components/Editor/EditorView.d.ts.map +1 -0
  19. package/dist/types/src/components/Editor/controller.d.ts +10 -0
  20. package/dist/types/src/components/Editor/controller.d.ts.map +1 -0
  21. package/dist/types/src/{extensions/popover/PopoverMenuProvider.d.ts → components/EditorMenuProvider/EditorMenuProvider.d.ts} +7 -9
  22. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -0
  23. package/dist/types/src/components/EditorMenuProvider/index.d.ts +6 -0
  24. package/dist/types/src/components/EditorMenuProvider/index.d.ts.map +1 -0
  25. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts +4 -0
  26. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -0
  27. package/dist/types/src/components/EditorMenuProvider/menu.d.ts +28 -0
  28. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -0
  29. package/dist/types/src/{extensions/popover → components/EditorMenuProvider}/popover.d.ts +2 -2
  30. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -0
  31. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts +34 -0
  32. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -0
  33. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +16 -0
  34. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -0
  35. package/dist/types/src/components/EditorPreviewProvider/index.d.ts +2 -0
  36. package/dist/types/src/components/EditorPreviewProvider/index.d.ts.map +1 -0
  37. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +28 -2
  38. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  39. package/dist/types/src/components/EditorToolbar/blocks.d.ts +4 -17
  40. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  41. package/dist/types/src/components/EditorToolbar/formatting.d.ts +4 -17
  42. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  43. package/dist/types/src/components/EditorToolbar/headings.d.ts +4 -17
  44. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  45. package/dist/types/src/components/EditorToolbar/image.d.ts +3 -15
  46. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  47. package/dist/types/src/components/EditorToolbar/index.d.ts +1 -1
  48. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  49. package/dist/types/src/components/EditorToolbar/lists.d.ts +4 -17
  50. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -1
  51. package/dist/types/src/components/EditorToolbar/search.d.ts +3 -15
  52. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  53. package/dist/types/src/components/EditorToolbar/types.d.ts +6 -0
  54. package/dist/types/src/components/EditorToolbar/types.d.ts.map +1 -0
  55. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +5 -18
  56. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  57. package/dist/types/src/components/index.d.ts +2 -1
  58. package/dist/types/src/components/index.d.ts.map +1 -1
  59. package/dist/types/src/extensions/Assistant.stories.d.ts +10 -0
  60. package/dist/types/src/extensions/Assistant.stories.d.ts.map +1 -0
  61. package/dist/types/src/extensions/assistant-extension.d.ts +24 -0
  62. package/dist/types/src/extensions/assistant-extension.d.ts.map +1 -0
  63. package/dist/types/src/extensions/index.d.ts +1 -25
  64. package/dist/types/src/extensions/index.d.ts.map +1 -1
  65. package/dist/types/src/hooks/index.d.ts +1 -0
  66. package/dist/types/src/hooks/index.d.ts.map +1 -1
  67. package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts +25 -0
  68. package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts.map +1 -0
  69. package/dist/types/src/hooks/useTextEditor.d.ts +2 -2
  70. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  71. package/dist/types/src/index.d.ts +0 -9
  72. package/dist/types/src/index.d.ts.map +1 -1
  73. package/dist/types/src/stories/Automerge.stories.d.ts +44 -0
  74. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -0
  75. package/dist/types/src/stories/Comments.stories.d.ts +4 -3
  76. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  77. package/dist/types/src/stories/EditorToolbar.stories.d.ts +29 -27
  78. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  79. package/dist/types/src/stories/Experimental.stories.d.ts +5 -4
  80. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  81. package/dist/types/src/stories/Markdown.stories.d.ts +4 -3
  82. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  83. package/dist/types/src/stories/Outliner.stories.d.ts +2 -2
  84. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  85. package/dist/types/src/stories/Popover.stories.d.ts +3 -3
  86. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -1
  87. package/dist/types/src/stories/Preview.stories.d.ts +5 -3
  88. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  89. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
  90. package/dist/types/src/stories/TextEditor.stories.d.ts +4 -3
  91. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  92. package/dist/types/src/stories/Theme.stories.d.ts +8 -0
  93. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -0
  94. package/dist/types/src/stories/components/EditorStory.d.ts +11 -20
  95. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  96. package/dist/types/src/stories/components/util.d.ts +4 -3
  97. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  98. package/dist/types/src/translations.d.ts +26 -26
  99. package/dist/types/src/translations.d.ts.map +1 -1
  100. package/dist/types/src/util/index.d.ts +0 -5
  101. package/dist/types/src/util/index.d.ts.map +1 -1
  102. package/dist/types/src/util/react.d.ts +6 -5
  103. package/dist/types/src/util/react.d.ts.map +1 -1
  104. package/dist/types/tsconfig.tsbuildinfo +1 -1
  105. package/package.json +94 -90
  106. package/src/components/Editor/Editor.stories.tsx +69 -49
  107. package/src/components/Editor/Editor.tsx +165 -61
  108. package/src/components/Editor/EditorView.tsx +102 -0
  109. package/src/components/Editor/controller.ts +50 -0
  110. package/src/{extensions/popover/PopoverMenuProvider.tsx → components/EditorMenuProvider/EditorMenuProvider.tsx} +49 -44
  111. package/src/components/EditorMenuProvider/index.ts +10 -0
  112. package/src/{extensions/popover → components/EditorMenuProvider}/menu-presets.ts +20 -19
  113. package/src/{extensions/popover → components/EditorMenuProvider}/menu.ts +21 -18
  114. package/src/{extensions/popover → components/EditorMenuProvider}/popover.ts +5 -9
  115. package/src/{extensions/popover/usePopoverMenu.ts → components/EditorMenuProvider/useEditorMenu.ts} +29 -22
  116. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +79 -0
  117. package/src/components/EditorPreviewProvider/index.ts +5 -0
  118. package/src/components/EditorToolbar/EditorToolbar.tsx +90 -112
  119. package/src/components/EditorToolbar/blocks.ts +55 -47
  120. package/src/components/EditorToolbar/formatting.ts +44 -45
  121. package/src/components/EditorToolbar/headings.ts +47 -50
  122. package/src/components/EditorToolbar/image.ts +16 -14
  123. package/src/components/EditorToolbar/index.ts +2 -7
  124. package/src/components/EditorToolbar/lists.ts +42 -40
  125. package/src/components/EditorToolbar/search.ts +16 -14
  126. package/src/components/EditorToolbar/types.ts +8 -0
  127. package/src/components/EditorToolbar/view-mode.ts +37 -42
  128. package/src/components/index.ts +3 -1
  129. package/src/extensions/Assistant.stories.tsx +112 -0
  130. package/src/extensions/assistant-extension.tsx +223 -0
  131. package/src/extensions/index.ts +2 -26
  132. package/src/hooks/index.ts +1 -0
  133. package/src/hooks/useBasicMarkdownExtensions.ts +55 -0
  134. package/src/hooks/useTextEditor.ts +13 -7
  135. package/src/index.ts +0 -13
  136. package/src/stories/Automerge.stories.tsx +177 -0
  137. package/src/stories/Comments.stories.tsx +49 -45
  138. package/src/stories/EditorToolbar.stories.tsx +42 -55
  139. package/src/stories/Experimental.stories.tsx +14 -16
  140. package/src/stories/Markdown.stories.tsx +16 -16
  141. package/src/stories/Outliner.stories.tsx +20 -29
  142. package/src/stories/Popover.stories.tsx +48 -54
  143. package/src/stories/Preview.stories.tsx +103 -85
  144. package/src/stories/Tags.stories.tsx +36 -13
  145. package/src/stories/TextEditor.stories.tsx +15 -21
  146. package/src/stories/Theme.stories.tsx +61 -0
  147. package/src/stories/components/EditorStory.tsx +46 -32
  148. package/src/stories/components/util.tsx +90 -59
  149. package/src/translations.ts +30 -25
  150. package/src/util/index.ts +1 -6
  151. package/src/util/react.tsx +8 -13
  152. package/dist/lib/browser/chunk-HL3YF6WC.mjs +0 -22
  153. package/dist/lib/browser/chunk-HL3YF6WC.mjs.map +0 -7
  154. package/dist/lib/browser/testing/index.mjs +0 -76
  155. package/dist/lib/browser/testing/index.mjs.map +0 -7
  156. package/dist/lib/browser/types/index.mjs +0 -13
  157. package/dist/lib/browser/types/index.mjs.map +0 -7
  158. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs +0 -24
  159. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs.map +0 -7
  160. package/dist/lib/node-esm/testing/index.mjs +0 -78
  161. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  162. package/dist/lib/node-esm/types/index.mjs +0 -14
  163. package/dist/lib/node-esm/types/index.mjs.map +0 -7
  164. package/dist/types/src/components/EditorToolbar/util.d.ts +0 -51
  165. package/dist/types/src/components/EditorToolbar/util.d.ts.map +0 -1
  166. package/dist/types/src/defaults.d.ts +0 -14
  167. package/dist/types/src/defaults.d.ts.map +0 -1
  168. package/dist/types/src/extensions/annotations.d.ts +0 -9
  169. package/dist/types/src/extensions/annotations.d.ts.map +0 -1
  170. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts +0 -26
  171. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts.map +0 -1
  172. package/dist/types/src/extensions/autocomplete/index.d.ts +0 -5
  173. package/dist/types/src/extensions/autocomplete/index.d.ts.map +0 -1
  174. package/dist/types/src/extensions/autocomplete/match.d.ts +0 -13
  175. package/dist/types/src/extensions/autocomplete/match.d.ts.map +0 -1
  176. package/dist/types/src/extensions/autocomplete/placeholder.d.ts +0 -20
  177. package/dist/types/src/extensions/autocomplete/placeholder.d.ts.map +0 -1
  178. package/dist/types/src/extensions/autocomplete/typeahead.d.ts +0 -10
  179. package/dist/types/src/extensions/autocomplete/typeahead.d.ts.map +0 -1
  180. package/dist/types/src/extensions/automerge/automerge.d.ts +0 -4
  181. package/dist/types/src/extensions/automerge/automerge.d.ts.map +0 -1
  182. package/dist/types/src/extensions/automerge/automerge.stories.d.ts +0 -47
  183. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +0 -1
  184. package/dist/types/src/extensions/automerge/automerge.test.d.ts +0 -2
  185. package/dist/types/src/extensions/automerge/automerge.test.d.ts.map +0 -1
  186. package/dist/types/src/extensions/automerge/cursor.d.ts +0 -4
  187. package/dist/types/src/extensions/automerge/cursor.d.ts.map +0 -1
  188. package/dist/types/src/extensions/automerge/defs.d.ts +0 -17
  189. package/dist/types/src/extensions/automerge/defs.d.ts.map +0 -1
  190. package/dist/types/src/extensions/automerge/index.d.ts +0 -2
  191. package/dist/types/src/extensions/automerge/index.d.ts.map +0 -1
  192. package/dist/types/src/extensions/automerge/sync.d.ts +0 -17
  193. package/dist/types/src/extensions/automerge/sync.d.ts.map +0 -1
  194. package/dist/types/src/extensions/automerge/update-automerge.d.ts +0 -6
  195. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +0 -1
  196. package/dist/types/src/extensions/automerge/update-codemirror.d.ts +0 -5
  197. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +0 -1
  198. package/dist/types/src/extensions/autoscroll.d.ts +0 -10
  199. package/dist/types/src/extensions/autoscroll.d.ts.map +0 -1
  200. package/dist/types/src/extensions/awareness/awareness-provider.d.ts +0 -31
  201. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +0 -1
  202. package/dist/types/src/extensions/awareness/awareness.d.ts +0 -46
  203. package/dist/types/src/extensions/awareness/awareness.d.ts.map +0 -1
  204. package/dist/types/src/extensions/awareness/index.d.ts +0 -3
  205. package/dist/types/src/extensions/awareness/index.d.ts.map +0 -1
  206. package/dist/types/src/extensions/blast.d.ts +0 -25
  207. package/dist/types/src/extensions/blast.d.ts.map +0 -1
  208. package/dist/types/src/extensions/comments.d.ts +0 -95
  209. package/dist/types/src/extensions/comments.d.ts.map +0 -1
  210. package/dist/types/src/extensions/debug.d.ts +0 -3
  211. package/dist/types/src/extensions/debug.d.ts.map +0 -1
  212. package/dist/types/src/extensions/dnd.d.ts +0 -9
  213. package/dist/types/src/extensions/dnd.d.ts.map +0 -1
  214. package/dist/types/src/extensions/factories.d.ts +0 -83
  215. package/dist/types/src/extensions/factories.d.ts.map +0 -1
  216. package/dist/types/src/extensions/focus.d.ts +0 -7
  217. package/dist/types/src/extensions/focus.d.ts.map +0 -1
  218. package/dist/types/src/extensions/folding.d.ts +0 -7
  219. package/dist/types/src/extensions/folding.d.ts.map +0 -1
  220. package/dist/types/src/extensions/hashtag.d.ts +0 -3
  221. package/dist/types/src/extensions/hashtag.d.ts.map +0 -1
  222. package/dist/types/src/extensions/json.d.ts +0 -7
  223. package/dist/types/src/extensions/json.d.ts.map +0 -1
  224. package/dist/types/src/extensions/listener.d.ts +0 -11
  225. package/dist/types/src/extensions/listener.d.ts.map +0 -1
  226. package/dist/types/src/extensions/markdown/action.d.ts +0 -12
  227. package/dist/types/src/extensions/markdown/action.d.ts.map +0 -1
  228. package/dist/types/src/extensions/markdown/bundle.d.ts +0 -22
  229. package/dist/types/src/extensions/markdown/bundle.d.ts.map +0 -1
  230. package/dist/types/src/extensions/markdown/changes.d.ts +0 -10
  231. package/dist/types/src/extensions/markdown/changes.d.ts.map +0 -1
  232. package/dist/types/src/extensions/markdown/changes.test.d.ts +0 -2
  233. package/dist/types/src/extensions/markdown/changes.test.d.ts.map +0 -1
  234. package/dist/types/src/extensions/markdown/debug.d.ts +0 -11
  235. package/dist/types/src/extensions/markdown/debug.d.ts.map +0 -1
  236. package/dist/types/src/extensions/markdown/decorate.d.ts +0 -25
  237. package/dist/types/src/extensions/markdown/decorate.d.ts.map +0 -1
  238. package/dist/types/src/extensions/markdown/formatting.d.ts +0 -63
  239. package/dist/types/src/extensions/markdown/formatting.d.ts.map +0 -1
  240. package/dist/types/src/extensions/markdown/formatting.test.d.ts +0 -3
  241. package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +0 -1
  242. package/dist/types/src/extensions/markdown/highlight.d.ts +0 -37
  243. package/dist/types/src/extensions/markdown/highlight.d.ts.map +0 -1
  244. package/dist/types/src/extensions/markdown/image.d.ts +0 -7
  245. package/dist/types/src/extensions/markdown/image.d.ts.map +0 -1
  246. package/dist/types/src/extensions/markdown/index.d.ts +0 -10
  247. package/dist/types/src/extensions/markdown/index.d.ts.map +0 -1
  248. package/dist/types/src/extensions/markdown/link.d.ts +0 -7
  249. package/dist/types/src/extensions/markdown/link.d.ts.map +0 -1
  250. package/dist/types/src/extensions/markdown/parser.test.d.ts +0 -2
  251. package/dist/types/src/extensions/markdown/parser.test.d.ts.map +0 -1
  252. package/dist/types/src/extensions/markdown/styles.d.ts +0 -4
  253. package/dist/types/src/extensions/markdown/styles.d.ts.map +0 -1
  254. package/dist/types/src/extensions/markdown/table.d.ts +0 -8
  255. package/dist/types/src/extensions/markdown/table.d.ts.map +0 -1
  256. package/dist/types/src/extensions/mention.d.ts +0 -7
  257. package/dist/types/src/extensions/mention.d.ts.map +0 -1
  258. package/dist/types/src/extensions/modes.d.ts +0 -10
  259. package/dist/types/src/extensions/modes.d.ts.map +0 -1
  260. package/dist/types/src/extensions/outliner/commands.d.ts +0 -10
  261. package/dist/types/src/extensions/outliner/commands.d.ts.map +0 -1
  262. package/dist/types/src/extensions/outliner/editor.d.ts +0 -5
  263. package/dist/types/src/extensions/outliner/editor.d.ts.map +0 -1
  264. package/dist/types/src/extensions/outliner/editor.test.d.ts +0 -2
  265. package/dist/types/src/extensions/outliner/editor.test.d.ts.map +0 -1
  266. package/dist/types/src/extensions/outliner/index.d.ts +0 -4
  267. package/dist/types/src/extensions/outliner/index.d.ts.map +0 -1
  268. package/dist/types/src/extensions/outliner/menu.d.ts +0 -8
  269. package/dist/types/src/extensions/outliner/menu.d.ts.map +0 -1
  270. package/dist/types/src/extensions/outliner/outliner.d.ts +0 -11
  271. package/dist/types/src/extensions/outliner/outliner.d.ts.map +0 -1
  272. package/dist/types/src/extensions/outliner/outliner.test.d.ts +0 -2
  273. package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +0 -1
  274. package/dist/types/src/extensions/outliner/selection.d.ts +0 -12
  275. package/dist/types/src/extensions/outliner/selection.d.ts.map +0 -1
  276. package/dist/types/src/extensions/outliner/tree.d.ts +0 -79
  277. package/dist/types/src/extensions/outliner/tree.d.ts.map +0 -1
  278. package/dist/types/src/extensions/outliner/tree.test.d.ts +0 -2
  279. package/dist/types/src/extensions/outliner/tree.test.d.ts.map +0 -1
  280. package/dist/types/src/extensions/popover/PopoverMenuProvider.d.ts.map +0 -1
  281. package/dist/types/src/extensions/popover/index.d.ts +0 -8
  282. package/dist/types/src/extensions/popover/index.d.ts.map +0 -1
  283. package/dist/types/src/extensions/popover/menu-presets.d.ts +0 -4
  284. package/dist/types/src/extensions/popover/menu-presets.d.ts.map +0 -1
  285. package/dist/types/src/extensions/popover/menu.d.ts +0 -24
  286. package/dist/types/src/extensions/popover/menu.d.ts.map +0 -1
  287. package/dist/types/src/extensions/popover/modal.d.ts +0 -7
  288. package/dist/types/src/extensions/popover/modal.d.ts.map +0 -1
  289. package/dist/types/src/extensions/popover/popover.d.ts.map +0 -1
  290. package/dist/types/src/extensions/popover/usePopoverMenu.d.ts +0 -34
  291. package/dist/types/src/extensions/popover/usePopoverMenu.d.ts.map +0 -1
  292. package/dist/types/src/extensions/popover/util.d.ts +0 -8
  293. package/dist/types/src/extensions/popover/util.d.ts.map +0 -1
  294. package/dist/types/src/extensions/preview/index.d.ts +0 -2
  295. package/dist/types/src/extensions/preview/index.d.ts.map +0 -1
  296. package/dist/types/src/extensions/preview/preview.d.ts +0 -28
  297. package/dist/types/src/extensions/preview/preview.d.ts.map +0 -1
  298. package/dist/types/src/extensions/selection.d.ts +0 -24
  299. package/dist/types/src/extensions/selection.d.ts.map +0 -1
  300. package/dist/types/src/extensions/state.d.ts +0 -2
  301. package/dist/types/src/extensions/state.d.ts.map +0 -1
  302. package/dist/types/src/extensions/tags/extended-markdown.d.ts +0 -10
  303. package/dist/types/src/extensions/tags/extended-markdown.d.ts.map +0 -1
  304. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts +0 -2
  305. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts.map +0 -1
  306. package/dist/types/src/extensions/tags/index.d.ts +0 -4
  307. package/dist/types/src/extensions/tags/index.d.ts.map +0 -1
  308. package/dist/types/src/extensions/tags/streamer.d.ts +0 -12
  309. package/dist/types/src/extensions/tags/streamer.d.ts.map +0 -1
  310. package/dist/types/src/extensions/tags/xml-tags.d.ts +0 -72
  311. package/dist/types/src/extensions/tags/xml-tags.d.ts.map +0 -1
  312. package/dist/types/src/extensions/tags/xml-util.d.ts +0 -10
  313. package/dist/types/src/extensions/tags/xml-util.d.ts.map +0 -1
  314. package/dist/types/src/extensions/typewriter.d.ts +0 -10
  315. package/dist/types/src/extensions/typewriter.d.ts.map +0 -1
  316. package/dist/types/src/stories/CommandDialog.stories.d.ts +0 -14
  317. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +0 -1
  318. package/dist/types/src/styles/index.d.ts +0 -4
  319. package/dist/types/src/styles/index.d.ts.map +0 -1
  320. package/dist/types/src/styles/markdown.d.ts +0 -8
  321. package/dist/types/src/styles/markdown.d.ts.map +0 -1
  322. package/dist/types/src/styles/theme.d.ts +0 -38
  323. package/dist/types/src/styles/theme.d.ts.map +0 -1
  324. package/dist/types/src/styles/tokens.d.ts +0 -3
  325. package/dist/types/src/styles/tokens.d.ts.map +0 -1
  326. package/dist/types/src/testing/PreviewPopover.d.ts +0 -20
  327. package/dist/types/src/testing/PreviewPopover.d.ts.map +0 -1
  328. package/dist/types/src/testing/index.d.ts +0 -3
  329. package/dist/types/src/testing/index.d.ts.map +0 -1
  330. package/dist/types/src/testing/util.d.ts +0 -3
  331. package/dist/types/src/testing/util.d.ts.map +0 -1
  332. package/dist/types/src/types/index.d.ts +0 -2
  333. package/dist/types/src/types/index.d.ts.map +0 -1
  334. package/dist/types/src/types/types.d.ts +0 -21
  335. package/dist/types/src/types/types.d.ts.map +0 -1
  336. package/dist/types/src/util/cursor.d.ts +0 -31
  337. package/dist/types/src/util/cursor.d.ts.map +0 -1
  338. package/dist/types/src/util/debug.d.ts +0 -17
  339. package/dist/types/src/util/debug.d.ts.map +0 -1
  340. package/dist/types/src/util/decorations.d.ts +0 -4
  341. package/dist/types/src/util/decorations.d.ts.map +0 -1
  342. package/dist/types/src/util/dom.d.ts +0 -10
  343. package/dist/types/src/util/dom.d.ts.map +0 -1
  344. package/dist/types/src/util/facet.d.ts +0 -3
  345. package/dist/types/src/util/facet.d.ts.map +0 -1
  346. package/src/components/EditorToolbar/util.ts +0 -76
  347. package/src/defaults.ts +0 -52
  348. package/src/extensions/annotations.ts +0 -55
  349. package/src/extensions/autocomplete/autocomplete.ts +0 -220
  350. package/src/extensions/autocomplete/index.ts +0 -8
  351. package/src/extensions/autocomplete/match.ts +0 -46
  352. package/src/extensions/autocomplete/placeholder.ts +0 -117
  353. package/src/extensions/autocomplete/typeahead.ts +0 -87
  354. package/src/extensions/automerge/automerge.stories.tsx +0 -149
  355. package/src/extensions/automerge/automerge.test.tsx +0 -78
  356. package/src/extensions/automerge/automerge.ts +0 -105
  357. package/src/extensions/automerge/cursor.ts +0 -28
  358. package/src/extensions/automerge/defs.ts +0 -31
  359. package/src/extensions/automerge/index.ts +0 -5
  360. package/src/extensions/automerge/sync.ts +0 -79
  361. package/src/extensions/automerge/update-automerge.ts +0 -50
  362. package/src/extensions/automerge/update-codemirror.ts +0 -115
  363. package/src/extensions/autoscroll.ts +0 -157
  364. package/src/extensions/awareness/awareness-provider.ts +0 -127
  365. package/src/extensions/awareness/awareness.ts +0 -315
  366. package/src/extensions/awareness/index.ts +0 -6
  367. package/src/extensions/blast.ts +0 -363
  368. package/src/extensions/comments.ts +0 -597
  369. package/src/extensions/debug.ts +0 -15
  370. package/src/extensions/dnd.ts +0 -37
  371. package/src/extensions/factories.ts +0 -276
  372. package/src/extensions/focus.ts +0 -36
  373. package/src/extensions/folding.tsx +0 -44
  374. package/src/extensions/hashtag.tsx +0 -68
  375. package/src/extensions/json.ts +0 -57
  376. package/src/extensions/listener.ts +0 -38
  377. package/src/extensions/markdown/action.ts +0 -117
  378. package/src/extensions/markdown/bundle.ts +0 -105
  379. package/src/extensions/markdown/changes.test.ts +0 -26
  380. package/src/extensions/markdown/changes.ts +0 -149
  381. package/src/extensions/markdown/debug.ts +0 -44
  382. package/src/extensions/markdown/decorate.ts +0 -601
  383. package/src/extensions/markdown/formatting.test.ts +0 -498
  384. package/src/extensions/markdown/formatting.ts +0 -1267
  385. package/src/extensions/markdown/highlight.ts +0 -183
  386. package/src/extensions/markdown/image.ts +0 -118
  387. package/src/extensions/markdown/index.ts +0 -13
  388. package/src/extensions/markdown/link.ts +0 -50
  389. package/src/extensions/markdown/parser.test.ts +0 -75
  390. package/src/extensions/markdown/styles.ts +0 -135
  391. package/src/extensions/markdown/table.ts +0 -150
  392. package/src/extensions/mention.ts +0 -41
  393. package/src/extensions/modes.ts +0 -41
  394. package/src/extensions/outliner/commands.ts +0 -270
  395. package/src/extensions/outliner/editor.test.ts +0 -33
  396. package/src/extensions/outliner/editor.ts +0 -184
  397. package/src/extensions/outliner/index.ts +0 -7
  398. package/src/extensions/outliner/menu.ts +0 -128
  399. package/src/extensions/outliner/outliner.test.ts +0 -100
  400. package/src/extensions/outliner/outliner.ts +0 -167
  401. package/src/extensions/outliner/selection.ts +0 -50
  402. package/src/extensions/outliner/tree.test.ts +0 -168
  403. package/src/extensions/outliner/tree.ts +0 -317
  404. package/src/extensions/popover/index.ts +0 -12
  405. package/src/extensions/popover/modal.ts +0 -24
  406. package/src/extensions/popover/util.ts +0 -29
  407. package/src/extensions/preview/index.ts +0 -5
  408. package/src/extensions/preview/preview.ts +0 -188
  409. package/src/extensions/selection.ts +0 -100
  410. package/src/extensions/state.ts +0 -7
  411. package/src/extensions/tags/extended-markdown.test.ts +0 -261
  412. package/src/extensions/tags/extended-markdown.ts +0 -78
  413. package/src/extensions/tags/index.ts +0 -7
  414. package/src/extensions/tags/streamer.ts +0 -243
  415. package/src/extensions/tags/xml-tags.ts +0 -393
  416. package/src/extensions/tags/xml-util.ts +0 -94
  417. package/src/extensions/typewriter.ts +0 -68
  418. package/src/stories/CommandDialog.stories.tsx +0 -78
  419. package/src/styles/index.ts +0 -7
  420. package/src/styles/markdown.ts +0 -26
  421. package/src/styles/theme.ts +0 -269
  422. package/src/styles/tokens.ts +0 -17
  423. package/src/testing/PreviewPopover.tsx +0 -80
  424. package/src/testing/index.ts +0 -6
  425. package/src/testing/util.ts +0 -7
  426. package/src/types/index.ts +0 -5
  427. package/src/types/types.ts +0 -32
  428. package/src/util/cursor.ts +0 -56
  429. package/src/util/debug.ts +0 -64
  430. package/src/util/decorations.ts +0 -21
  431. package/src/util/dom.ts +0 -34
  432. package/src/util/facet.ts +0 -13
@@ -1,168 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { markdown, markdownLanguage } from '@codemirror/lang-markdown';
6
- import { EditorState } from '@codemirror/state';
7
- import { beforeEach, describe, test } from 'vitest';
8
-
9
- import { str } from '../../testing';
10
- import { type Range } from '../../types';
11
-
12
- import { type Item, listItemToString, outlinerTree, treeFacet } from './tree';
13
-
14
- const lines = [
15
- '- [ ] 1',
16
- '- [ ] 2',
17
- ' - [ ] 2.1',
18
- ' - [ ] 2.2',
19
- ' - 2.2.1',
20
- ' - 2.2.2',
21
- ' - 2.2.3',
22
- ' - [ ] 2.3',
23
- '- [ ] 3',
24
- ];
25
-
26
- const getPos = (line: number) => {
27
- return lines.slice(0, line).reduce((acc, line) => acc + line.length + 1, 0);
28
- };
29
-
30
- const extensions = [markdown({ base: markdownLanguage }), outlinerTree()];
31
-
32
- describe('tree (boundary conditions)', () => {
33
- test('empty', ({ expect }) => {
34
- const state = EditorState.create({ doc: str(''), extensions });
35
- const tree = state.facet(treeFacet);
36
- expect(tree).to.exist;
37
- });
38
-
39
- test('content range', ({ expect }) => {
40
- const state = EditorState.create({ doc: '- [ ] A', extensions });
41
- const tree = state.facet(treeFacet);
42
- console.log(JSON.stringify(tree, null, 2));
43
- expect(tree.toJSON()).to.deep.eq({
44
- type: 'root',
45
- index: -1,
46
- level: -1,
47
- lineRange: { from: 0, to: -1 },
48
- contentRange: { from: 0, to: -1 },
49
- children: [
50
- {
51
- type: 'task',
52
- index: 0,
53
- level: 0,
54
- lineRange: { from: 0, to: 7 },
55
- contentRange: { from: 6, to: 7 },
56
- children: [],
57
- },
58
- ],
59
- });
60
-
61
- const item = tree.find(0);
62
- expect(item?.contentRange).to.include({ from: 6, to: state.doc.length });
63
- });
64
-
65
- test('empty continuation', ({ expect }) => {
66
- const state = EditorState.create({ doc: str('- [ ] A', ' '), extensions });
67
- const tree = state.facet(treeFacet);
68
- tree.traverse((item, level) => {
69
- console.log(listItemToString(item, level));
70
- });
71
- });
72
- });
73
-
74
- describe('tree (advanced)', () => {
75
- let state: EditorState;
76
-
77
- beforeEach(() => {
78
- state = EditorState.create({ doc: str(...lines), extensions });
79
- });
80
-
81
- test('traverse', ({ expect }) => {
82
- const tree = state.facet(treeFacet);
83
- let count = 0;
84
- tree.traverse((item, level) => {
85
- console.log(listItemToString(item, level));
86
- count++;
87
- });
88
- expect(count).to.eq(9);
89
- });
90
-
91
- test('continguous', ({ expect }) => {
92
- const tree = state.facet(treeFacet);
93
- const ranges: Range[] = [];
94
- tree.traverse((item) => {
95
- console.log(listItemToString(item));
96
- ranges.push(item.lineRange);
97
- });
98
-
99
- // Check no gaps between ranges.
100
- expect(ranges[0].from).toBe(0);
101
- expect(ranges[ranges.length - 1].to).toBe(state.doc.length);
102
- for (let i = 0; i < ranges.length - 1; i++) {
103
- const current = ranges[i];
104
- const next = ranges[i + 1];
105
- expect(current.to + 1).to.eq(next.from);
106
- }
107
- });
108
-
109
- test('find', ({ expect }) => {
110
- const tree = state.facet(treeFacet);
111
- expect(tree.find(0)).to.include({ type: 'task' });
112
- expect(tree.find(state.doc.length)).to.include({ type: 'task' });
113
-
114
- expect(tree.find(getPos(1))).to.include({ type: 'task' });
115
- expect(tree.find(getPos(1))).to.eq(tree.find(getPos(1) + 4));
116
- expect(tree.find(getPos(5))).to.include({ type: 'bullet' });
117
- });
118
-
119
- test('siblings', ({ expect }) => {
120
- const tree = state.facet(treeFacet);
121
- const items: Item[] = [];
122
- tree.traverse((item) => {
123
- items.push(item);
124
- });
125
-
126
- expect(items[0].nextSibling).toBe(items[1]);
127
- expect(items[1].prevSibling).toBe(items[0]);
128
-
129
- expect(items[1].nextSibling).toBe(items[8]);
130
- expect(items[8].prevSibling).toBe(items[1]);
131
- });
132
-
133
- test('next/previous', ({ expect }) => {
134
- const tree = state.facet(treeFacet);
135
- const items: Item[] = [];
136
- tree.traverse((item) => {
137
- items.push(item);
138
- });
139
-
140
- expect(tree.prev(items[0])).not.to.exist;
141
- expect(tree.next(items[items.length - 1])).not.to.exist;
142
-
143
- for (let i = 0; i < items.length - 1; i++) {
144
- const current = items[i];
145
- const next = items[i + 1];
146
- expect(tree.next(current)?.index).toEqual(next.index);
147
- expect(tree.prev(next)?.index).toEqual(current.index);
148
- }
149
- });
150
-
151
- test('lastDescendant', ({ expect }) => {
152
- const tree = state.facet(treeFacet);
153
- {
154
- const item = tree.find(getPos(0))!;
155
- expect(tree.lastDescendant(item).index).to.eq(item.index);
156
- }
157
- {
158
- const item = tree.find(getPos(1))!;
159
- const last = tree.find(getPos(7))!;
160
- expect(tree.lastDescendant(item).index).to.eq(last.index);
161
- }
162
- {
163
- const item = tree.find(getPos(3))!;
164
- const last = tree.find(getPos(6))!;
165
- expect(tree.lastDescendant(item).index).to.eq(last.index);
166
- }
167
- });
168
- });
@@ -1,317 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { syntaxTree } from '@codemirror/language';
6
- import { type EditorState, type Extension, StateField, type Transaction } from '@codemirror/state';
7
- import { Facet } from '@codemirror/state';
8
- import { type SyntaxNode } from '@lezer/common';
9
-
10
- import { invariant } from '@dxos/invariant';
11
-
12
- import { type Range } from '../../types';
13
-
14
- /**
15
- * Represents a single item in the tree.
16
- */
17
- export interface Item {
18
- type: 'root' | 'bullet' | 'task' | 'unknown';
19
- index: number;
20
- level: number;
21
- node: SyntaxNode;
22
- parent?: Item;
23
- nextSibling?: Item;
24
- prevSibling?: Item;
25
- children: Item[];
26
- /**
27
- * Actual range.
28
- * Starts at the start of the line containing the item and ends at the end of the line before the
29
- * first child or next sibling.
30
- */
31
- lineRange: Range;
32
- /**
33
- * Range of the editable content.
34
- * This doesn't include the list or task marker or indentation.
35
- */
36
- contentRange: Range;
37
- }
38
-
39
- export const itemToJSON = ({ type, index, level, lineRange, contentRange, children }: Item): any => {
40
- return { type, index, level, lineRange, contentRange, children: children.map(itemToJSON) };
41
- };
42
-
43
- /**
44
- * Tree assumes the entire document is a single contiguous well-formed hierarchy of markdown LiteItem nodes.
45
- */
46
- export class Tree implements Item {
47
- type: Item['type'] = 'root';
48
- index = -1;
49
- level = -1;
50
- node: Item['node'];
51
- lineRange: Item['lineRange'];
52
- contentRange: Item['contentRange'];
53
- children: Item['children'] = [];
54
-
55
- constructor(node: SyntaxNode) {
56
- this.node = node;
57
- this.lineRange = { from: node.from, to: node.to };
58
- this.contentRange = this.lineRange;
59
- }
60
-
61
- toJSON() {
62
- return itemToJSON(this);
63
- }
64
-
65
- get root(): Item {
66
- return this;
67
- }
68
-
69
- traverse<T = any>(cb: (item: Item, level: number) => T | void): T | undefined;
70
- traverse<T = any>(item: Item, cb: (item: Item, level: number) => T | void): T | undefined;
71
- traverse<T = any>(
72
- itemOrCb: Item | ((item: Item, level: number) => T | undefined | void),
73
- maybeCb?: (item: Item, level: number) => T | undefined | void,
74
- ): T | undefined {
75
- if (typeof itemOrCb === 'function') {
76
- return traverse<T>(this, itemOrCb);
77
- } else {
78
- return traverse<T>(itemOrCb, maybeCb!);
79
- }
80
- }
81
-
82
- /**
83
- * Return the closest item.
84
- */
85
- find(pos: number): Item | undefined {
86
- return this.traverse<Item>((item) => (item.lineRange.from <= pos && item.lineRange.to >= pos ? item : undefined));
87
- }
88
-
89
- /**
90
- * Return the first child, next sibling, or parent's next sibling.
91
- */
92
- next(item: Item, enter = true): Item | undefined {
93
- if (enter && item.children.length > 0) {
94
- return item.children[0];
95
- }
96
-
97
- if (item.nextSibling) {
98
- return item.nextSibling;
99
- }
100
-
101
- if (item.parent) {
102
- return this.next(item.parent, false);
103
- }
104
-
105
- return undefined;
106
- }
107
-
108
- /**
109
- * Return the previous sibling, or parent.
110
- */
111
- prev(item: Item): Item | undefined {
112
- if (item.prevSibling) {
113
- return this.lastDescendant(item.prevSibling);
114
- }
115
-
116
- return item.parent?.type === 'root' ? undefined : item.parent;
117
- }
118
-
119
- /**
120
- * Return the last descendant of the item, or the item itself if it has no children.
121
- */
122
- lastDescendant(item: Item): Item {
123
- return item.children.length > 0 ? this.lastDescendant(item.children.at(-1)!) : item;
124
- }
125
- }
126
-
127
- export const getRange = (tree: Tree, item: Item): [number, number] => {
128
- const lastDescendant = tree.lastDescendant(item);
129
- return [item.lineRange.from, lastDescendant.lineRange.to];
130
- };
131
-
132
- /**
133
- * Traverse the tree, calling the callback for each item.
134
- * If the callback returns a value, the traversal is stopped and the value is returned.
135
- */
136
- export const traverse = <T = any>(root: Item, cb: (item: Item, level: number) => T | void): T | undefined => {
137
- const t = (item: Item, level: number): T | undefined => {
138
- if (item.type !== 'root') {
139
- const value = cb(item, level);
140
- if (value != null) {
141
- return value;
142
- }
143
- }
144
-
145
- for (const child of item.children) {
146
- const value = t(child, level + 1);
147
- if (value != null) {
148
- return value;
149
- }
150
- }
151
-
152
- return undefined;
153
- };
154
-
155
- return t(root, root.type === 'root' ? -1 : 0);
156
- };
157
-
158
- export const getListItemContent = (state: EditorState, item: Item): string => {
159
- return state.doc.sliceString(item.contentRange.from, item.contentRange.to);
160
- };
161
-
162
- export const listItemToString = (item: Item, level = 0) => {
163
- const indent = ' '.repeat(level);
164
- const data = {
165
- i: item.index,
166
- n: item.nextSibling?.index ?? '∅',
167
- p: item.prevSibling?.index ?? '∅',
168
- level: item.level,
169
- node: format([item.node.from, item.node.to]),
170
- line: format([item.lineRange.from, item.lineRange.to]),
171
- content: format([item.contentRange.from, item.contentRange.to]),
172
- };
173
-
174
- return `${indent}${item.type[0].toUpperCase()}(${Object.entries(data)
175
- .map(([k, v]) => `${k}=${v}`)
176
- .join(', ')})`;
177
- };
178
-
179
- const format = (value: any) =>
180
- JSON.stringify(value, (key: string, value: any) => {
181
- if (typeof value === 'number') {
182
- return value.toString().padStart(3, ' ');
183
- }
184
- return value;
185
- }).replaceAll('"', '');
186
-
187
- export const treeFacet = Facet.define<Tree, Tree>({
188
- combine: (values) => values[0],
189
- });
190
-
191
- export type TreeOptions = {};
192
-
193
- /**
194
- * Creates a shadow tree of `ListItem` nodes whenever the document changes.
195
- * This adds overhead relative to the markdown AST, but allows for efficient traversal of the list items.
196
- * NOTE: Requires markdown parser to be enabled.
197
- */
198
- export const outlinerTree = (_options: TreeOptions = {}): Extension => {
199
- const buildTree = (state: EditorState): Tree => {
200
- let tree: Tree | undefined;
201
- let parent: Item | undefined;
202
- let current: Item | undefined;
203
- let prev: Item | undefined;
204
- let level = -1;
205
- let index = -1;
206
-
207
- // Array to track previous siblings at each level.
208
- const prevSiblings: (Item | undefined)[] = [];
209
-
210
- syntaxTree(state).iterate({
211
- enter: (node) => {
212
- switch (node.name) {
213
- case 'Document': {
214
- tree = new Tree(node.node);
215
- current = tree;
216
- break;
217
- }
218
- case 'BulletList': {
219
- invariant(current);
220
- parent = current;
221
- if (current) {
222
- current.lineRange.to = current.node.from;
223
- }
224
- prevSiblings[++level] = undefined;
225
- break;
226
- }
227
- case 'ListItem': {
228
- invariant(parent);
229
-
230
- // Include all content up to the next sibling or the end of the document.
231
- const nextSibling = node.node.nextSibling ?? node.node.parent?.nextSibling;
232
- const docRange: Range = {
233
- from: state.doc.lineAt(node.from).from,
234
- to: nextSibling ? nextSibling.from - 1 : state.doc.length,
235
- };
236
-
237
- current = {
238
- type: 'unknown',
239
- index: ++index,
240
- level,
241
- node: node.node,
242
- lineRange: docRange,
243
- contentRange: { ...docRange },
244
- parent,
245
- prevSibling: prevSiblings[level],
246
- children: [],
247
- };
248
-
249
- // Update sibling refs.
250
- if (current.prevSibling) {
251
- current.prevSibling.nextSibling = current;
252
- }
253
-
254
- // Update previous siblings array at current level.
255
- prevSiblings[level] = current;
256
-
257
- // Update previous item (not sibling).
258
- if (prev) {
259
- prev.lineRange.to = prev.contentRange.to = current.lineRange.from - 1;
260
- }
261
- prev = current;
262
-
263
- // Update parent.
264
- parent.children.push(current);
265
- if (parent.lineRange.to === parent.node.from) {
266
- parent.lineRange.to = parent.contentRange.to = current.lineRange.from - 1;
267
- }
268
-
269
- break;
270
- }
271
- case 'ListMark': {
272
- invariant(current);
273
- current.type = 'bullet';
274
- current.contentRange.from = node.from + '- '.length;
275
- break;
276
- }
277
- case 'Task': {
278
- invariant(current);
279
- current.type = 'task';
280
- break;
281
- }
282
- case 'TaskMarker': {
283
- invariant(current);
284
- current.contentRange.from = node.from + '[ ] '.length;
285
- break;
286
- }
287
- }
288
- },
289
- leave: (node) => {
290
- if (node.name === 'BulletList') {
291
- invariant(parent);
292
- prevSiblings[level--] = undefined;
293
- parent = parent.parent;
294
- }
295
- },
296
- });
297
-
298
- invariant(tree);
299
- return tree;
300
- };
301
-
302
- return [
303
- StateField.define<Tree | undefined>({
304
- create: (state) => {
305
- return buildTree(state);
306
- },
307
- update: (value: Tree | undefined, tr: Transaction) => {
308
- if (!tr.docChanged) {
309
- return value;
310
- }
311
-
312
- return buildTree(tr.state);
313
- },
314
- provide: (field) => treeFacet.from(field),
315
- }),
316
- ];
317
- };
@@ -1,12 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './menu';
6
- export * from './menu-presets';
7
- export * from './modal';
8
- export * from './popover';
9
- export * from './util';
10
-
11
- export * from './PopoverMenuProvider';
12
- export * from './usePopoverMenu';
@@ -1,24 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { StateEffect, StateField } from '@codemirror/state';
6
-
7
- export const modalStateEffect = StateEffect.define<boolean>();
8
-
9
- /**
10
- * Determines if a modal dialog (e.g., popover) is active.
11
- */
12
- export const modalStateField = StateField.define<boolean>({
13
- create: () => false,
14
- update: (value, tr) => {
15
- let newValue = value;
16
- for (const effect of tr.effects) {
17
- if (effect.is(modalStateEffect)) {
18
- newValue = effect.value;
19
- }
20
- }
21
-
22
- return newValue;
23
- },
24
- });
@@ -1,29 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { type EditorView } from '@codemirror/view';
6
-
7
- export const insertAtCursor = (view: EditorView, from: number, insert: string) => {
8
- view.dispatch({
9
- changes: { from, to: from, insert },
10
- selection: { anchor: from + insert.length, head: from + insert.length },
11
- });
12
- };
13
-
14
- /**
15
- * If the cursor is at the start of a line, insert the text at the cursor.
16
- * Otherwise, insert the text on a new line.
17
- */
18
- export const insertAtLineStart = (view: EditorView, from: number, insert: string) => {
19
- const line = view.state.doc.lineAt(from);
20
- if (line.from === from) {
21
- insertAtCursor(view, from, insert);
22
- } else {
23
- insert = '\n' + insert;
24
- view.dispatch({
25
- changes: { from: line.to, to: line.to, insert },
26
- selection: { anchor: line.to + insert.length, head: line.to + insert.length },
27
- });
28
- }
29
- };
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './preview';