@dxos/react-ui-editor 0.8.4-main.72ec0f3 → 0.8.4-main.7996785055

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 (400) hide show
  1. package/dist/lib/browser/index.mjs +520 -8302
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +518 -8299
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/components/Editor/Editor.d.ts +8 -2
  8. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  9. package/dist/types/src/components/Editor/Editor.stories.d.ts +4 -1
  10. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -1
  11. package/dist/types/src/components/EditorContent/EditorContent.d.ts +4 -2
  12. package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +1 -1
  13. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts +2 -4
  14. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -1
  15. package/dist/types/src/components/EditorMenuProvider/index.d.ts +0 -1
  16. package/dist/types/src/components/EditorMenuProvider/index.d.ts.map +1 -1
  17. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -1
  18. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -1
  19. package/dist/types/src/components/EditorMenuProvider/popover.d.ts +1 -2
  20. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -1
  21. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -1
  22. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +1 -1
  23. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -1
  24. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +7 -5
  25. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  26. package/dist/types/src/components/EditorToolbar/actions.d.ts +9 -23
  27. package/dist/types/src/components/EditorToolbar/actions.d.ts.map +1 -1
  28. package/dist/types/src/components/EditorToolbar/blocks.d.ts +7 -5
  29. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  30. package/dist/types/src/components/EditorToolbar/formatting.d.ts +7 -5
  31. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  32. package/dist/types/src/components/EditorToolbar/headings.d.ts +7 -5
  33. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  34. package/dist/types/src/components/EditorToolbar/image.d.ts +5 -11
  35. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  36. package/dist/types/src/components/EditorToolbar/index.d.ts +1 -1
  37. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  38. package/dist/types/src/components/EditorToolbar/search.d.ts +5 -11
  39. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  40. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +4 -4
  41. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +1 -1
  42. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +8 -6
  43. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  44. package/dist/types/src/components/index.d.ts.map +1 -1
  45. package/dist/types/src/hooks/useTextEditor.d.ts +1 -1
  46. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  47. package/dist/types/src/index.d.ts +0 -8
  48. package/dist/types/src/index.d.ts.map +1 -1
  49. package/dist/types/src/{extensions/automerge/automerge.stories.d.ts → stories/Automerge.stories.d.ts} +5 -8
  50. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -0
  51. package/dist/types/src/stories/Comments.stories.d.ts +3 -2
  52. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  53. package/dist/types/src/stories/EditorToolbar.stories.d.ts +6 -6
  54. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  55. package/dist/types/src/stories/Experimental.stories.d.ts +3 -2
  56. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  57. package/dist/types/src/stories/Markdown.stories.d.ts +3 -2
  58. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  59. package/dist/types/src/stories/Outliner.stories.d.ts +2 -2
  60. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  61. package/dist/types/src/stories/Popover.stories.d.ts +2 -2
  62. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -1
  63. package/dist/types/src/stories/Preview.stories.d.ts +3 -2
  64. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  65. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
  66. package/dist/types/src/stories/TextEditor.stories.d.ts +3 -2
  67. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  68. package/dist/types/src/stories/Theme.stories.d.ts +8 -0
  69. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -0
  70. package/dist/types/src/stories/components/EditorStory.d.ts +9 -20
  71. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  72. package/dist/types/src/stories/components/util.d.ts +3 -3
  73. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  74. package/dist/types/src/translations.d.ts +5 -5
  75. package/dist/types/src/translations.d.ts.map +1 -1
  76. package/dist/types/src/util/index.d.ts +0 -5
  77. package/dist/types/src/util/index.d.ts.map +1 -1
  78. package/dist/types/src/util/react.d.ts +6 -5
  79. package/dist/types/src/util/react.d.ts.map +1 -1
  80. package/dist/types/tsconfig.tsbuildinfo +1 -1
  81. package/package.json +65 -66
  82. package/src/components/Editor/Editor.stories.tsx +14 -8
  83. package/src/components/Editor/Editor.tsx +21 -10
  84. package/src/components/EditorContent/EditorContent.tsx +19 -6
  85. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +23 -30
  86. package/src/components/EditorMenuProvider/index.ts +0 -1
  87. package/src/components/EditorMenuProvider/menu-presets.ts +3 -1
  88. package/src/components/EditorMenuProvider/menu.ts +1 -2
  89. package/src/components/EditorMenuProvider/popover.ts +1 -3
  90. package/src/components/EditorMenuProvider/useEditorMenu.ts +9 -4
  91. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +6 -9
  92. package/src/components/EditorToolbar/EditorToolbar.tsx +25 -37
  93. package/src/components/EditorToolbar/actions.ts +10 -9
  94. package/src/components/EditorToolbar/blocks.ts +5 -6
  95. package/src/components/EditorToolbar/formatting.ts +5 -6
  96. package/src/components/EditorToolbar/headings.ts +12 -12
  97. package/src/components/EditorToolbar/image.ts +9 -2
  98. package/src/components/EditorToolbar/index.ts +1 -1
  99. package/src/components/EditorToolbar/search.ts +9 -2
  100. package/src/components/EditorToolbar/useEditorToolbar.ts +6 -6
  101. package/src/components/EditorToolbar/view-mode.ts +5 -5
  102. package/src/components/index.ts +0 -2
  103. package/src/hooks/useTextEditor.ts +9 -3
  104. package/src/index.ts +0 -10
  105. package/src/stories/Automerge.stories.tsx +173 -0
  106. package/src/stories/Comments.stories.tsx +47 -42
  107. package/src/stories/EditorToolbar.stories.tsx +57 -27
  108. package/src/stories/Experimental.stories.tsx +7 -9
  109. package/src/stories/Markdown.stories.tsx +16 -16
  110. package/src/stories/Outliner.stories.tsx +8 -9
  111. package/src/stories/Popover.stories.tsx +25 -29
  112. package/src/stories/Preview.stories.tsx +66 -51
  113. package/src/stories/Tags.stories.tsx +24 -15
  114. package/src/stories/TextEditor.stories.tsx +13 -19
  115. package/src/stories/Theme.stories.tsx +61 -0
  116. package/src/stories/components/EditorStory.tsx +22 -28
  117. package/src/stories/components/util.tsx +21 -24
  118. package/src/translations.ts +4 -4
  119. package/src/util/index.ts +1 -6
  120. package/src/util/react.tsx +8 -13
  121. package/dist/lib/browser/chunk-HL3YF6WC.mjs +0 -22
  122. package/dist/lib/browser/chunk-HL3YF6WC.mjs.map +0 -7
  123. package/dist/lib/browser/types/index.mjs +0 -13
  124. package/dist/lib/browser/types/index.mjs.map +0 -7
  125. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs +0 -24
  126. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs.map +0 -7
  127. package/dist/lib/node-esm/types/index.mjs +0 -14
  128. package/dist/lib/node-esm/types/index.mjs.map +0 -7
  129. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts +0 -26
  130. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts.map +0 -1
  131. package/dist/types/src/components/EditorMenuProvider/util.d.ts +0 -8
  132. package/dist/types/src/components/EditorMenuProvider/util.d.ts.map +0 -1
  133. package/dist/types/src/defaults.d.ts +0 -14
  134. package/dist/types/src/defaults.d.ts.map +0 -1
  135. package/dist/types/src/extensions/annotations.d.ts +0 -9
  136. package/dist/types/src/extensions/annotations.d.ts.map +0 -1
  137. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts +0 -17
  138. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts.map +0 -1
  139. package/dist/types/src/extensions/autocomplete/index.d.ts +0 -5
  140. package/dist/types/src/extensions/autocomplete/index.d.ts.map +0 -1
  141. package/dist/types/src/extensions/autocomplete/match.d.ts +0 -13
  142. package/dist/types/src/extensions/autocomplete/match.d.ts.map +0 -1
  143. package/dist/types/src/extensions/autocomplete/placeholder.d.ts +0 -20
  144. package/dist/types/src/extensions/autocomplete/placeholder.d.ts.map +0 -1
  145. package/dist/types/src/extensions/autocomplete/typeahead.d.ts +0 -10
  146. package/dist/types/src/extensions/autocomplete/typeahead.d.ts.map +0 -1
  147. package/dist/types/src/extensions/automerge/automerge.d.ts +0 -4
  148. package/dist/types/src/extensions/automerge/automerge.d.ts.map +0 -1
  149. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +0 -1
  150. package/dist/types/src/extensions/automerge/automerge.test.d.ts +0 -2
  151. package/dist/types/src/extensions/automerge/automerge.test.d.ts.map +0 -1
  152. package/dist/types/src/extensions/automerge/cursor.d.ts +0 -4
  153. package/dist/types/src/extensions/automerge/cursor.d.ts.map +0 -1
  154. package/dist/types/src/extensions/automerge/defs.d.ts +0 -17
  155. package/dist/types/src/extensions/automerge/defs.d.ts.map +0 -1
  156. package/dist/types/src/extensions/automerge/index.d.ts +0 -2
  157. package/dist/types/src/extensions/automerge/index.d.ts.map +0 -1
  158. package/dist/types/src/extensions/automerge/sync.d.ts +0 -17
  159. package/dist/types/src/extensions/automerge/sync.d.ts.map +0 -1
  160. package/dist/types/src/extensions/automerge/update-automerge.d.ts +0 -6
  161. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +0 -1
  162. package/dist/types/src/extensions/automerge/update-codemirror.d.ts +0 -5
  163. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +0 -1
  164. package/dist/types/src/extensions/autoscroll.d.ts +0 -20
  165. package/dist/types/src/extensions/autoscroll.d.ts.map +0 -1
  166. package/dist/types/src/extensions/awareness/awareness-provider.d.ts +0 -31
  167. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +0 -1
  168. package/dist/types/src/extensions/awareness/awareness.d.ts +0 -46
  169. package/dist/types/src/extensions/awareness/awareness.d.ts.map +0 -1
  170. package/dist/types/src/extensions/awareness/index.d.ts +0 -3
  171. package/dist/types/src/extensions/awareness/index.d.ts.map +0 -1
  172. package/dist/types/src/extensions/blast.d.ts +0 -25
  173. package/dist/types/src/extensions/blast.d.ts.map +0 -1
  174. package/dist/types/src/extensions/blocks.d.ts +0 -2
  175. package/dist/types/src/extensions/blocks.d.ts.map +0 -1
  176. package/dist/types/src/extensions/bookmarks.d.ts +0 -12
  177. package/dist/types/src/extensions/bookmarks.d.ts.map +0 -1
  178. package/dist/types/src/extensions/comments.d.ts +0 -95
  179. package/dist/types/src/extensions/comments.d.ts.map +0 -1
  180. package/dist/types/src/extensions/debug.d.ts +0 -3
  181. package/dist/types/src/extensions/debug.d.ts.map +0 -1
  182. package/dist/types/src/extensions/dnd.d.ts +0 -9
  183. package/dist/types/src/extensions/dnd.d.ts.map +0 -1
  184. package/dist/types/src/extensions/factories.d.ts +0 -83
  185. package/dist/types/src/extensions/factories.d.ts.map +0 -1
  186. package/dist/types/src/extensions/focus.d.ts +0 -7
  187. package/dist/types/src/extensions/focus.d.ts.map +0 -1
  188. package/dist/types/src/extensions/folding.d.ts +0 -7
  189. package/dist/types/src/extensions/folding.d.ts.map +0 -1
  190. package/dist/types/src/extensions/hashtag.d.ts +0 -3
  191. package/dist/types/src/extensions/hashtag.d.ts.map +0 -1
  192. package/dist/types/src/extensions/index.d.ts +0 -32
  193. package/dist/types/src/extensions/index.d.ts.map +0 -1
  194. package/dist/types/src/extensions/json.d.ts +0 -7
  195. package/dist/types/src/extensions/json.d.ts.map +0 -1
  196. package/dist/types/src/extensions/listener.d.ts +0 -13
  197. package/dist/types/src/extensions/listener.d.ts.map +0 -1
  198. package/dist/types/src/extensions/markdown/action.d.ts +0 -12
  199. package/dist/types/src/extensions/markdown/action.d.ts.map +0 -1
  200. package/dist/types/src/extensions/markdown/bundle.d.ts +0 -22
  201. package/dist/types/src/extensions/markdown/bundle.d.ts.map +0 -1
  202. package/dist/types/src/extensions/markdown/changes.d.ts +0 -10
  203. package/dist/types/src/extensions/markdown/changes.d.ts.map +0 -1
  204. package/dist/types/src/extensions/markdown/changes.test.d.ts +0 -2
  205. package/dist/types/src/extensions/markdown/changes.test.d.ts.map +0 -1
  206. package/dist/types/src/extensions/markdown/debug.d.ts +0 -11
  207. package/dist/types/src/extensions/markdown/debug.d.ts.map +0 -1
  208. package/dist/types/src/extensions/markdown/decorate.d.ts +0 -25
  209. package/dist/types/src/extensions/markdown/decorate.d.ts.map +0 -1
  210. package/dist/types/src/extensions/markdown/formatting.d.ts +0 -61
  211. package/dist/types/src/extensions/markdown/formatting.d.ts.map +0 -1
  212. package/dist/types/src/extensions/markdown/formatting.test.d.ts +0 -3
  213. package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +0 -1
  214. package/dist/types/src/extensions/markdown/highlight.d.ts +0 -37
  215. package/dist/types/src/extensions/markdown/highlight.d.ts.map +0 -1
  216. package/dist/types/src/extensions/markdown/image.d.ts +0 -7
  217. package/dist/types/src/extensions/markdown/image.d.ts.map +0 -1
  218. package/dist/types/src/extensions/markdown/index.d.ts +0 -10
  219. package/dist/types/src/extensions/markdown/index.d.ts.map +0 -1
  220. package/dist/types/src/extensions/markdown/link.d.ts +0 -7
  221. package/dist/types/src/extensions/markdown/link.d.ts.map +0 -1
  222. package/dist/types/src/extensions/markdown/parser.test.d.ts +0 -2
  223. package/dist/types/src/extensions/markdown/parser.test.d.ts.map +0 -1
  224. package/dist/types/src/extensions/markdown/styles.d.ts +0 -4
  225. package/dist/types/src/extensions/markdown/styles.d.ts.map +0 -1
  226. package/dist/types/src/extensions/markdown/table.d.ts +0 -8
  227. package/dist/types/src/extensions/markdown/table.d.ts.map +0 -1
  228. package/dist/types/src/extensions/mention.d.ts +0 -7
  229. package/dist/types/src/extensions/mention.d.ts.map +0 -1
  230. package/dist/types/src/extensions/modal.d.ts +0 -7
  231. package/dist/types/src/extensions/modal.d.ts.map +0 -1
  232. package/dist/types/src/extensions/modes.d.ts +0 -10
  233. package/dist/types/src/extensions/modes.d.ts.map +0 -1
  234. package/dist/types/src/extensions/outliner/commands.d.ts +0 -10
  235. package/dist/types/src/extensions/outliner/commands.d.ts.map +0 -1
  236. package/dist/types/src/extensions/outliner/editor.d.ts +0 -5
  237. package/dist/types/src/extensions/outliner/editor.d.ts.map +0 -1
  238. package/dist/types/src/extensions/outliner/editor.test.d.ts +0 -2
  239. package/dist/types/src/extensions/outliner/editor.test.d.ts.map +0 -1
  240. package/dist/types/src/extensions/outliner/index.d.ts +0 -4
  241. package/dist/types/src/extensions/outliner/index.d.ts.map +0 -1
  242. package/dist/types/src/extensions/outliner/menu.d.ts +0 -8
  243. package/dist/types/src/extensions/outliner/menu.d.ts.map +0 -1
  244. package/dist/types/src/extensions/outliner/outliner.d.ts +0 -11
  245. package/dist/types/src/extensions/outliner/outliner.d.ts.map +0 -1
  246. package/dist/types/src/extensions/outliner/outliner.test.d.ts +0 -2
  247. package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +0 -1
  248. package/dist/types/src/extensions/outliner/selection.d.ts +0 -12
  249. package/dist/types/src/extensions/outliner/selection.d.ts.map +0 -1
  250. package/dist/types/src/extensions/outliner/tree.d.ts +0 -79
  251. package/dist/types/src/extensions/outliner/tree.d.ts.map +0 -1
  252. package/dist/types/src/extensions/outliner/tree.test.d.ts +0 -2
  253. package/dist/types/src/extensions/outliner/tree.test.d.ts.map +0 -1
  254. package/dist/types/src/extensions/preview/index.d.ts +0 -2
  255. package/dist/types/src/extensions/preview/index.d.ts.map +0 -1
  256. package/dist/types/src/extensions/preview/preview.d.ts +0 -32
  257. package/dist/types/src/extensions/preview/preview.d.ts.map +0 -1
  258. package/dist/types/src/extensions/replacer.d.ts +0 -21
  259. package/dist/types/src/extensions/replacer.d.ts.map +0 -1
  260. package/dist/types/src/extensions/replacer.test.d.ts +0 -2
  261. package/dist/types/src/extensions/replacer.test.d.ts.map +0 -1
  262. package/dist/types/src/extensions/scrolling.d.ts +0 -78
  263. package/dist/types/src/extensions/scrolling.d.ts.map +0 -1
  264. package/dist/types/src/extensions/selection.d.ts +0 -24
  265. package/dist/types/src/extensions/selection.d.ts.map +0 -1
  266. package/dist/types/src/extensions/state.d.ts +0 -2
  267. package/dist/types/src/extensions/state.d.ts.map +0 -1
  268. package/dist/types/src/extensions/submit.d.ts +0 -10
  269. package/dist/types/src/extensions/submit.d.ts.map +0 -1
  270. package/dist/types/src/extensions/tab.d.ts +0 -4
  271. package/dist/types/src/extensions/tab.d.ts.map +0 -1
  272. package/dist/types/src/extensions/tags/extended-markdown.d.ts +0 -10
  273. package/dist/types/src/extensions/tags/extended-markdown.d.ts.map +0 -1
  274. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts +0 -2
  275. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts.map +0 -1
  276. package/dist/types/src/extensions/tags/index.d.ts +0 -4
  277. package/dist/types/src/extensions/tags/index.d.ts.map +0 -1
  278. package/dist/types/src/extensions/tags/streamer.d.ts +0 -12
  279. package/dist/types/src/extensions/tags/streamer.d.ts.map +0 -1
  280. package/dist/types/src/extensions/tags/xml-tags.d.ts +0 -97
  281. package/dist/types/src/extensions/tags/xml-tags.d.ts.map +0 -1
  282. package/dist/types/src/extensions/tags/xml-util.d.ts +0 -10
  283. package/dist/types/src/extensions/tags/xml-util.d.ts.map +0 -1
  284. package/dist/types/src/extensions/typewriter.d.ts +0 -10
  285. package/dist/types/src/extensions/typewriter.d.ts.map +0 -1
  286. package/dist/types/src/stories/CommandDialog.stories.d.ts +0 -14
  287. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +0 -1
  288. package/dist/types/src/styles/index.d.ts +0 -4
  289. package/dist/types/src/styles/index.d.ts.map +0 -1
  290. package/dist/types/src/styles/markdown.d.ts +0 -8
  291. package/dist/types/src/styles/markdown.d.ts.map +0 -1
  292. package/dist/types/src/styles/theme.d.ts +0 -38
  293. package/dist/types/src/styles/theme.d.ts.map +0 -1
  294. package/dist/types/src/styles/tokens.d.ts +0 -3
  295. package/dist/types/src/styles/tokens.d.ts.map +0 -1
  296. package/dist/types/src/types/index.d.ts +0 -2
  297. package/dist/types/src/types/index.d.ts.map +0 -1
  298. package/dist/types/src/types/types.d.ts +0 -21
  299. package/dist/types/src/types/types.d.ts.map +0 -1
  300. package/dist/types/src/util/cursor.d.ts +0 -31
  301. package/dist/types/src/util/cursor.d.ts.map +0 -1
  302. package/dist/types/src/util/debug.d.ts +0 -21
  303. package/dist/types/src/util/debug.d.ts.map +0 -1
  304. package/dist/types/src/util/decorations.d.ts +0 -4
  305. package/dist/types/src/util/decorations.d.ts.map +0 -1
  306. package/dist/types/src/util/dom.d.ts +0 -10
  307. package/dist/types/src/util/dom.d.ts.map +0 -1
  308. package/dist/types/src/util/facet.d.ts +0 -3
  309. package/dist/types/src/util/facet.d.ts.map +0 -1
  310. package/src/components/EditorContent/EditorContent.stories.tsx +0 -70
  311. package/src/components/EditorMenuProvider/util.ts +0 -31
  312. package/src/defaults.ts +0 -52
  313. package/src/extensions/annotations.ts +0 -55
  314. package/src/extensions/autocomplete/autocomplete.ts +0 -151
  315. package/src/extensions/autocomplete/index.ts +0 -8
  316. package/src/extensions/autocomplete/match.ts +0 -46
  317. package/src/extensions/autocomplete/placeholder.ts +0 -117
  318. package/src/extensions/autocomplete/typeahead.ts +0 -87
  319. package/src/extensions/automerge/automerge.stories.tsx +0 -149
  320. package/src/extensions/automerge/automerge.test.tsx +0 -78
  321. package/src/extensions/automerge/automerge.ts +0 -105
  322. package/src/extensions/automerge/cursor.ts +0 -28
  323. package/src/extensions/automerge/defs.ts +0 -31
  324. package/src/extensions/automerge/index.ts +0 -5
  325. package/src/extensions/automerge/sync.ts +0 -79
  326. package/src/extensions/automerge/update-automerge.ts +0 -50
  327. package/src/extensions/automerge/update-codemirror.ts +0 -115
  328. package/src/extensions/autoscroll.ts +0 -163
  329. package/src/extensions/awareness/awareness-provider.ts +0 -127
  330. package/src/extensions/awareness/awareness.ts +0 -315
  331. package/src/extensions/awareness/index.ts +0 -6
  332. package/src/extensions/blast.ts +0 -363
  333. package/src/extensions/blocks.ts +0 -131
  334. package/src/extensions/bookmarks.ts +0 -75
  335. package/src/extensions/comments.ts +0 -598
  336. package/src/extensions/debug.ts +0 -15
  337. package/src/extensions/dnd.ts +0 -37
  338. package/src/extensions/factories.ts +0 -278
  339. package/src/extensions/focus.ts +0 -36
  340. package/src/extensions/folding.tsx +0 -43
  341. package/src/extensions/hashtag.tsx +0 -68
  342. package/src/extensions/index.ts +0 -35
  343. package/src/extensions/json.ts +0 -57
  344. package/src/extensions/listener.ts +0 -32
  345. package/src/extensions/markdown/action.ts +0 -117
  346. package/src/extensions/markdown/bundle.ts +0 -105
  347. package/src/extensions/markdown/changes.test.ts +0 -26
  348. package/src/extensions/markdown/changes.ts +0 -149
  349. package/src/extensions/markdown/debug.ts +0 -44
  350. package/src/extensions/markdown/decorate.ts +0 -601
  351. package/src/extensions/markdown/formatting.test.ts +0 -498
  352. package/src/extensions/markdown/formatting.ts +0 -1265
  353. package/src/extensions/markdown/highlight.ts +0 -183
  354. package/src/extensions/markdown/image.ts +0 -118
  355. package/src/extensions/markdown/index.ts +0 -13
  356. package/src/extensions/markdown/link.ts +0 -50
  357. package/src/extensions/markdown/parser.test.ts +0 -75
  358. package/src/extensions/markdown/styles.ts +0 -135
  359. package/src/extensions/markdown/table.ts +0 -150
  360. package/src/extensions/mention.ts +0 -41
  361. package/src/extensions/modal.ts +0 -24
  362. package/src/extensions/modes.ts +0 -41
  363. package/src/extensions/outliner/commands.ts +0 -270
  364. package/src/extensions/outliner/editor.test.ts +0 -33
  365. package/src/extensions/outliner/editor.ts +0 -184
  366. package/src/extensions/outliner/index.ts +0 -7
  367. package/src/extensions/outliner/menu.ts +0 -128
  368. package/src/extensions/outliner/outliner.test.ts +0 -100
  369. package/src/extensions/outliner/outliner.ts +0 -167
  370. package/src/extensions/outliner/selection.ts +0 -50
  371. package/src/extensions/outliner/tree.test.ts +0 -168
  372. package/src/extensions/outliner/tree.ts +0 -317
  373. package/src/extensions/preview/index.ts +0 -5
  374. package/src/extensions/preview/preview.ts +0 -193
  375. package/src/extensions/replacer.test.ts +0 -75
  376. package/src/extensions/replacer.ts +0 -93
  377. package/src/extensions/scrolling.ts +0 -189
  378. package/src/extensions/selection.ts +0 -100
  379. package/src/extensions/state.ts +0 -7
  380. package/src/extensions/submit.ts +0 -62
  381. package/src/extensions/tab.ts +0 -29
  382. package/src/extensions/tags/extended-markdown.test.ts +0 -262
  383. package/src/extensions/tags/extended-markdown.ts +0 -78
  384. package/src/extensions/tags/index.ts +0 -7
  385. package/src/extensions/tags/streamer.ts +0 -243
  386. package/src/extensions/tags/xml-tags.ts +0 -500
  387. package/src/extensions/tags/xml-util.ts +0 -94
  388. package/src/extensions/typewriter.ts +0 -68
  389. package/src/stories/CommandDialog.stories.tsx +0 -83
  390. package/src/styles/index.ts +0 -7
  391. package/src/styles/markdown.ts +0 -26
  392. package/src/styles/theme.ts +0 -269
  393. package/src/styles/tokens.ts +0 -17
  394. package/src/types/index.ts +0 -5
  395. package/src/types/types.ts +0 -32
  396. package/src/util/cursor.ts +0 -56
  397. package/src/util/debug.ts +0 -69
  398. package/src/util/decorations.ts +0 -21
  399. package/src/util/dom.ts +0 -34
  400. package/src/util/facet.ts +0 -13
@@ -7,10 +7,9 @@ import { type EditorState } from '@codemirror/state';
7
7
  import { type RefObject, useCallback, useMemo, useRef, useState } from 'react';
8
8
 
9
9
  import { invariant } from '@dxos/invariant';
10
+ import { modalStateEffect } from '@dxos/ui-editor';
10
11
  import { type MaybePromise } from '@dxos/util';
11
12
 
12
- import { modalStateEffect } from '../../extensions';
13
-
14
13
  import { type EditorMenuProviderProps } from './EditorMenuProvider';
15
14
  import { type EditorMenuGroup, type EditorMenuItem } from './menu';
16
15
  import { filterMenuGroups, getMenuItem, getNextMenuItem, getPreviousMenuItem } from './menu';
@@ -63,7 +62,8 @@ export const useEditorMenu = ({
63
62
  const getMenuOptions = useCallback<NonNullable<UseEditorMenuProps['getMenu']>>(
64
63
  async ({ text, trigger, ...props }) => {
65
64
  const groups = (await getMenu?.({ text, trigger, ...props })) ?? [];
66
- return filter
65
+ // The "@" menu can use "@@" as syntax for block embeds, so it owns its own query filtering.
66
+ return filter && trigger !== '@'
67
67
  ? filterMenuGroups(groups, (item) =>
68
68
  text ? (item.label as string).toLowerCase().startsWith(text.toLowerCase()) : true,
69
69
  )
@@ -74,7 +74,6 @@ export const useEditorMenu = ({
74
74
 
75
75
  const handleOpenChange = useCallback<NonNullable<UseEditorMenu['onOpenChange']>>(
76
76
  async ({ view, open }) => {
77
- console.log(view, open);
78
77
  invariant(view);
79
78
  setOpen(open);
80
79
  if (!open) {
@@ -110,7 +109,13 @@ export const useEditorMenu = ({
110
109
  );
111
110
 
112
111
  const handleSelect = useCallback<NonNullable<UseEditorMenu['onSelect']>>(({ view, item }) => {
112
+ // Delete trigger range (e.g., "/" and any typed filter text).
113
+ const { range } = view.state.field(popoverStateField) ?? {};
114
+ if (range) {
115
+ view.dispatch({ changes: { from: range.from, to: range.to, insert: '' } });
116
+ }
113
117
  void item.onSelect?.({ view, head: view.state.selection.main.head });
118
+ view.focus();
114
119
  }, []);
115
120
 
116
121
  const handleCancel = useCallback<NonNullable<UseEditorMenu['onCancel']>>(({ view }) => {
@@ -7,8 +7,7 @@ import React, { type PropsWithChildren, type RefObject, useCallback, useEffect,
7
7
 
8
8
  import { addEventListener } from '@dxos/async';
9
9
  import { DX_ANCHOR_ACTIVATE, type DxAnchorActivate, Popover } from '@dxos/react-ui';
10
-
11
- import { type PreviewLinkRef, type PreviewLinkTarget } from '../../extensions';
10
+ import { type PreviewLinkRef, type PreviewLinkTarget } from '@dxos/ui-editor';
12
11
 
13
12
  type EditorPreviewPopoverValue = Partial<{
14
13
  link: PreviewLinkRef;
@@ -33,16 +32,16 @@ export const EditorPreviewProvider = ({ children, onLookup }: EditorPreviewProvi
33
32
 
34
33
  const handleActivate = useCallback(
35
34
  (event: DxAnchorActivate) => {
36
- const { refId, label, trigger: dxTrigger } = event;
35
+ const { dxn, label, trigger } = event;
37
36
  setValue((value) => ({
38
37
  ...value,
39
- link: { label, ref: refId },
38
+ link: { label, dxn },
40
39
  pending: true,
41
40
  }));
42
41
 
43
- triggerRef.current = dxTrigger;
42
+ triggerRef.current = trigger;
44
43
  queueMicrotask(() => setOpen(true));
45
- void onLookup?.({ label, ref: refId }).then((target) =>
44
+ void onLookup?.({ label, dxn }).then((target) =>
46
45
  setValue((value) => ({
47
46
  ...value,
48
47
  target: target ?? undefined,
@@ -69,9 +68,7 @@ export const EditorPreviewProvider = ({ children, onLookup }: EditorPreviewProvi
69
68
  <EditorPreviewContextProvider pending={value.pending} link={value.link} target={value.target}>
70
69
  <Popover.Root open={open} onOpenChange={setOpen}>
71
70
  <Popover.VirtualTrigger virtualRef={triggerRef as unknown as RefObject<HTMLButtonElement>} />
72
-
73
- {/* Content */}
74
- <div ref={setRoot} role='none' className='contents'>
71
+ <div role='none' className='contents' ref={setRoot}>
75
72
  {children}
76
73
  </div>
77
74
  </Popover.Root>
@@ -6,18 +6,10 @@ import { type EditorView } from '@codemirror/view';
6
6
  import { Atom } from '@effect-atom/atom-react';
7
7
  import React, { memo, useMemo } from 'react';
8
8
 
9
- import { atomFromSignal } from '@dxos/app-graph';
10
- import { type Live } from '@dxos/live-object';
9
+ import { type Node } from '@dxos/app-graph';
11
10
  import { ElevationProvider, type ThemedClassName } from '@dxos/react-ui';
12
- import {
13
- type ActionGraphProps,
14
- MenuProvider,
15
- ToolbarMenu,
16
- createGapSeparator,
17
- useMenuActions,
18
- } from '@dxos/react-ui-menu';
19
-
20
- import { type EditorViewMode } from '../../types';
11
+ import { type ActionGraphProps, Menu, type MenuAction, MenuBuilder, useMenuActions } from '@dxos/react-ui-menu';
12
+ import { type EditorViewMode } from '@dxos/ui-editor';
21
13
 
22
14
  import { createLists } from './actions';
23
15
  import { createBlocks } from './blocks';
@@ -41,7 +33,7 @@ export type EditorToolbarFeatureFlags = Partial<{
41
33
  }>;
42
34
 
43
35
  export type EditorToolbarActionGraphProps = {
44
- state: Live<EditorToolbarState>;
36
+ state: Atom.Atom<EditorToolbarState>;
45
37
  getView: () => EditorView;
46
38
  // TODO(wittjosiah): Control positioning.
47
39
  customActions?: Atom.Atom<ActionGraphProps>;
@@ -51,18 +43,19 @@ export type EditorToolbarProps = ThemedClassName<
51
43
  {
52
44
  role?: string;
53
45
  attendableId?: string;
46
+ /** Handler for executing actions. Required when customActions use Operation.invoke. */
47
+ onAction?: (action: MenuAction, params: Node.InvokeProps) => void;
54
48
  } & (EditorToolbarActionGraphProps & EditorToolbarFeatureFlags)
55
49
  >;
56
50
 
57
- // TODO(burdon): Remove role dependency.
58
- export const EditorToolbar = memo(({ classNames, role, attendableId, ...props }: EditorToolbarProps) => {
59
- const menuProps = useEditorToolbarActionGraph(props);
51
+ export const EditorToolbar = memo(({ classNames, role, attendableId, onAction, ...props }: EditorToolbarProps) => {
52
+ const menuActions = useEditorToolbarActionGraph(props);
60
53
 
61
54
  return (
62
55
  <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>
63
- <MenuProvider {...menuProps} attendableId={attendableId}>
64
- <ToolbarMenu classNames={classNames} textBlockWidth />
65
- </MenuProvider>
56
+ <Menu.Root {...menuActions} attendableId={attendableId} onAction={onAction}>
57
+ <Menu.Toolbar classNames={classNames} />
58
+ </Menu.Root>
66
59
  </ElevationProvider>
67
60
  );
68
61
  });
@@ -73,6 +66,7 @@ type ToolbarActionsProps = Pick<EditorToolbarActionGraphProps, 'state' | 'getVie
73
66
  // TODO(wittjosiah): Toolbar re-rendering is causing this graph to be recreated and breaking reactivity in some cases.
74
67
  // E.g. for toolbar dropdowns which use active icon, the icon is not updated when the active item changes.
75
68
  // This is currently only happening in the markdown plugin usage and should be reproduced in an editor story.
69
+ // TODO(burdon): Some actions should toggle the state (e.g., toggle bullets on/off depending on the current state).
76
70
  const useEditorToolbarActionGraph = ({ state, getView, customActions, ...features }: ToolbarActionsProps) => {
77
71
  const menuCreator = useMemo(
78
72
  () => createToolbarActions({ state, getView, customActions, ...features }),
@@ -100,45 +94,39 @@ const createToolbarActions = ({
100
94
  ...features
101
95
  }: ToolbarActionsProps): Atom.Atom<ActionGraphProps> => {
102
96
  return Atom.make((get) => {
103
- const graph: ActionGraphProps = {
104
- nodes: [],
105
- edges: [],
106
- };
97
+ // Subscribe to state changes.
98
+ const stateSnapshot = get(state);
107
99
 
108
- // TODO(burdon): Builder pattern?
109
- const addSubGraph = (graph: ActionGraphProps, subGraph: ActionGraphProps) => {
110
- graph.nodes.push(...subGraph.nodes);
111
- graph.edges.push(...subGraph.edges);
112
- };
100
+ const builder = MenuBuilder.make();
113
101
 
114
102
  if (features?.showHeadings ?? true) {
115
- addSubGraph(graph, get(atomFromSignal(() => createHeadings(state, getView))));
103
+ builder.subgraph(createHeadings(stateSnapshot, getView));
116
104
  }
117
105
  if (features?.showFormatting ?? true) {
118
- addSubGraph(graph, get(atomFromSignal(() => createFormatting(state, getView))));
106
+ builder.subgraph(createFormatting(stateSnapshot, getView));
119
107
  }
120
108
  if (features?.showLists ?? true) {
121
- addSubGraph(graph, get(atomFromSignal(() => createLists(state, getView))));
109
+ builder.subgraph(createLists(stateSnapshot, getView));
122
110
  }
123
111
  if (features?.showBlocks ?? true) {
124
- addSubGraph(graph, get(atomFromSignal(() => createBlocks(state, getView))));
112
+ builder.subgraph(createBlocks(stateSnapshot, getView));
125
113
  }
126
114
  if (features?.onImageUpload) {
127
- addSubGraph(graph, get(atomFromSignal(() => createImageUpload(features.onImageUpload!))));
115
+ builder.subgraph(createImageUpload(features.onImageUpload!));
128
116
  }
129
117
 
130
- addSubGraph(graph, createGapSeparator());
118
+ builder.separator('gap');
131
119
 
132
120
  if (customActions) {
133
- addSubGraph(graph, get(customActions));
121
+ builder.subgraph(get(customActions));
134
122
  }
135
123
  if (features?.showSearch ?? true) {
136
- addSubGraph(graph, get(atomFromSignal(() => createSearch(getView))));
124
+ builder.subgraph(createSearch(getView));
137
125
  }
138
126
  if (features?.onViewModeChange) {
139
- addSubGraph(graph, get(atomFromSignal(() => createViewMode(state, features.onViewModeChange!))));
127
+ builder.subgraph(createViewMode(stateSnapshot, features.onViewModeChange!));
140
128
  }
141
129
 
142
- return graph;
130
+ return builder.build();
143
131
  });
144
132
  };
@@ -4,15 +4,16 @@
4
4
 
5
5
  import { type EditorView } from '@codemirror/view';
6
6
 
7
- import { type Action, type NodeArg } from '@dxos/app-graph';
7
+ import { type Node } from '@dxos/app-graph';
8
8
  import {
9
- type MenuActionProperties,
9
+ type MenuItemGroup,
10
10
  type ToolbarMenuActionGroupProperties,
11
11
  createMenuAction,
12
12
  createMenuItemGroup,
13
13
  } from '@dxos/react-ui-menu';
14
+ import { List, addList, removeList } from '@dxos/ui-editor';
15
+ import { type MenuActionProperties } from '@dxos/ui-types';
14
16
 
15
- import { List, addList, removeList } from '../../extensions';
16
17
  import { translationKey } from '../../translations';
17
18
 
18
19
  import { type EditorToolbarState } from './useEditorToolbar';
@@ -28,10 +29,10 @@ export const createLists = (state: EditorToolbarState, getView: () => EditorView
28
29
  const listGroupAction = createListGroupAction(value);
29
30
  const listActionsMap = createListActions(value, getView);
30
31
  return {
31
- nodes: [listGroupAction as NodeArg<any>, ...listActionsMap],
32
+ nodes: [listGroupAction as Node.NodeArg<any>, ...listActionsMap],
32
33
  edges: [
33
- { source: 'root', target: 'list' },
34
- ...listActionsMap.map(({ id }) => ({ source: listGroupAction.id, target: id })),
34
+ { source: 'root', target: 'list', relation: 'child' },
35
+ ...listActionsMap.map(({ id }) => ({ source: listGroupAction.id, target: id, relation: 'child' })),
35
36
  ],
36
37
  };
37
38
  };
@@ -42,14 +43,14 @@ export const createEditorAction = (id: string, props: Partial<MenuActionProperti
42
43
  return createMenuAction(id, invoke, {
43
44
  label,
44
45
  ...rest,
45
- }) as Action<MenuActionProperties>;
46
+ }) as Node.Action<MenuActionProperties>;
46
47
  };
47
48
 
48
49
  export const createEditorActionGroup = (
49
50
  id: string,
50
51
  props: Omit<ToolbarMenuActionGroupProperties, 'icon'>,
51
52
  icon?: string,
52
- ) => {
53
+ ): MenuItemGroup<ToolbarMenuActionGroupProperties> => {
53
54
  const { label = [`${id} label`, { ns: translationKey }], ...rest } = props;
54
55
 
55
56
  return createMenuItemGroup(id, {
@@ -57,7 +58,7 @@ export const createEditorActionGroup = (
57
58
  icon,
58
59
  iconOnly: true,
59
60
  ...rest,
60
- });
61
+ }) as MenuItemGroup<ToolbarMenuActionGroupProperties>;
61
62
  };
62
63
 
63
64
  const createListGroupAction = (value: string) =>
@@ -4,10 +4,9 @@
4
4
 
5
5
  import { type EditorView } from '@codemirror/view';
6
6
 
7
- import { type NodeArg } from '@dxos/app-graph';
7
+ import { type Node } from '@dxos/app-graph';
8
8
  import { type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';
9
-
10
- import { addBlockquote, addCodeblock, insertTable, removeBlockquote, removeCodeblock } from '../../extensions';
9
+ import { addBlockquote, addCodeblock, insertTable, removeBlockquote, removeCodeblock } from '@dxos/ui-editor';
11
10
 
12
11
  import { createEditorAction, createEditorActionGroup } from './actions';
13
12
  import { type EditorToolbarState } from './useEditorToolbar';
@@ -51,10 +50,10 @@ export const createBlocks = (state: EditorToolbarState, getView: () => EditorVie
51
50
  const blockGroupAction = createBlockGroupAction(value);
52
51
  const blockActions = createBlockActions(value, getView, state.blankLine);
53
52
  return {
54
- nodes: [blockGroupAction as NodeArg<any>, ...blockActions],
53
+ nodes: [blockGroupAction as Node.NodeArg<any>, ...blockActions],
55
54
  edges: [
56
- { source: 'root', target: 'block' },
57
- ...blockActions.map(({ id }) => ({ source: blockGroupAction.id, target: id })),
55
+ { source: 'root', target: 'block', relation: 'child' },
56
+ ...blockActions.map(({ id }) => ({ source: blockGroupAction.id, target: id, relation: 'child' })),
58
57
  ],
59
58
  };
60
59
  };
@@ -4,10 +4,9 @@
4
4
 
5
5
  import { type EditorView } from '@codemirror/view';
6
6
 
7
- import { type NodeArg } from '@dxos/app-graph';
7
+ import { type Node } from '@dxos/app-graph';
8
8
  import { type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';
9
-
10
- import { type Formatting, Inline, addLink, removeLink, setStyle } from '../../extensions';
9
+ import { type Formatting, Inline, addLink, removeLink, setStyle } from '@dxos/ui-editor';
11
10
 
12
11
  import { createEditorAction, createEditorActionGroup } from './actions';
13
12
  import { type EditorToolbarState } from './useEditorToolbar';
@@ -57,10 +56,10 @@ export const createFormatting = (state: EditorToolbarState, getView: () => Edito
57
56
  const formattingGroupAction = createFormattingGroup(state);
58
57
  const formattingActions = createFormattingActions(state, getView);
59
58
  return {
60
- nodes: [formattingGroupAction as NodeArg<any>, ...formattingActions],
59
+ nodes: [formattingGroupAction as Node.NodeArg<any>, ...formattingActions],
61
60
  edges: [
62
- { source: 'root', target: 'formatting' },
63
- ...formattingActions.map(({ id }) => ({ source: formattingGroupAction.id, target: id })),
61
+ { source: 'root', target: 'formatting', relation: 'child' },
62
+ ...formattingActions.map(({ id }) => ({ source: formattingGroupAction.id, target: id, relation: 'child' })),
64
63
  ],
65
64
  };
66
65
  };
@@ -4,10 +4,10 @@
4
4
 
5
5
  import { type EditorView } from '@codemirror/view';
6
6
 
7
- import { type NodeArg } from '@dxos/app-graph';
7
+ import { type Node } from '@dxos/app-graph';
8
8
  import { type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';
9
+ import { setHeading } from '@dxos/ui-editor';
9
10
 
10
- import { setHeading } from '../../extensions';
11
11
  import { translationKey } from '../../translations';
12
12
 
13
13
  import { createEditorAction, createEditorActionGroup } from './actions';
@@ -28,13 +28,13 @@ const createHeadingGroupAction = (value: string) =>
28
28
 
29
29
  const createHeadingActions = (currentLevel: string, getView: () => EditorView) =>
30
30
  Object.entries({
31
- '0': 'ph--paragraph--regular',
32
- '1': 'ph--text-h-one--regular',
33
- '2': 'ph--text-h-two--regular',
34
- '3': 'ph--text-h-three--regular',
35
- '4': 'ph--text-h-four--regular',
36
- '5': 'ph--text-h-five--regular',
37
- '6': 'ph--text-h-six--regular',
31
+ 0: 'ph--paragraph--regular',
32
+ 1: 'ph--text-h-one--regular',
33
+ 2: 'ph--text-h-two--regular',
34
+ 3: 'ph--text-h-three--regular',
35
+ 4: 'ph--text-h-four--regular',
36
+ 5: 'ph--text-h-five--regular',
37
+ 6: 'ph--text-h-six--regular',
38
38
  }).map(([levelStr, icon]) => {
39
39
  const level = parseInt(levelStr);
40
40
  return createEditorAction(
@@ -59,10 +59,10 @@ export const createHeadings = (state: EditorToolbarState, getView: () => EditorV
59
59
  const headingGroupAction = createHeadingGroupAction(headingValue);
60
60
  const headingActions = createHeadingActions(headingValue, getView);
61
61
  return {
62
- nodes: [headingGroupAction as NodeArg<any>, ...headingActions],
62
+ nodes: [headingGroupAction as Node.NodeArg<any>, ...headingActions],
63
63
  edges: [
64
- { source: 'root', target: 'heading' },
65
- ...headingActions.map(({ id }) => ({ source: headingGroupAction.id, target: id })),
64
+ { source: 'root', target: 'heading', relation: 'child' },
65
+ ...headingActions.map(({ id }) => ({ source: headingGroupAction.id, target: id, relation: 'child' })),
66
66
  ],
67
67
  };
68
68
  };
@@ -2,6 +2,8 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { type Node } from '@dxos/app-graph';
6
+
5
7
  import { createEditorAction } from './actions';
6
8
 
7
9
  const createImageUploadAction = (onImageUpload: () => void) =>
@@ -14,7 +16,12 @@ const createImageUploadAction = (onImageUpload: () => void) =>
14
16
  onImageUpload,
15
17
  );
16
18
 
17
- export const createImageUpload = (onImageUpload: () => void) => ({
19
+ export const createImageUpload = (
20
+ onImageUpload: () => void,
21
+ ): {
22
+ nodes: Node.NodeArg<any>[];
23
+ edges: Array<{ source: string; target: string; relation: 'child' }>;
24
+ } => ({
18
25
  nodes: [createImageUploadAction(onImageUpload)],
19
- edges: [{ source: 'root', target: 'image' }],
26
+ edges: [{ source: 'root', target: 'image', relation: 'child' }],
20
27
  });
@@ -4,5 +4,5 @@
4
4
 
5
5
  export * from './EditorToolbar';
6
6
 
7
- export { type EditorToolbarState, useEditorToolbar } from './useEditorToolbar';
8
7
  export { createEditorAction, createEditorActionGroup } from './actions';
8
+ export { type EditorToolbarState, useEditorToolbar } from './useEditorToolbar';
@@ -5,6 +5,8 @@
5
5
  import { openSearchPanel } from '@codemirror/search';
6
6
  import { type EditorView } from '@codemirror/view';
7
7
 
8
+ import { type Node } from '@dxos/app-graph';
9
+
8
10
  import { createEditorAction } from './actions';
9
11
 
10
12
  const createSearchAction = (getView: () => EditorView) =>
@@ -17,7 +19,12 @@ const createSearchAction = (getView: () => EditorView) =>
17
19
  () => openSearchPanel(getView()),
18
20
  );
19
21
 
20
- export const createSearch = (getView: () => EditorView) => ({
22
+ export const createSearch = (
23
+ getView: () => EditorView,
24
+ ): {
25
+ nodes: Node.NodeArg<any>[];
26
+ edges: Array<{ source: string; target: string; relation: 'child' }>;
27
+ } => ({
21
28
  nodes: [createSearchAction(getView)],
22
- edges: [{ source: 'root', target: 'search' }],
29
+ edges: [{ source: 'root', target: 'search', relation: 'child' }],
23
30
  });
@@ -2,19 +2,19 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { Atom } from '@effect-atom/atom-react';
5
6
  import { useMemo } from 'react';
6
7
 
7
- import { type Live, live } from '@dxos/live-object';
8
-
9
- import { type Formatting } from '../../extensions';
10
- import { type EditorViewMode } from '../../types';
8
+ import { type EditorViewMode, type Formatting } from '@dxos/ui-editor';
11
9
 
12
10
  // TODO(burdon): Move to extensions.
13
11
  export type EditorToolbarState = { viewMode?: EditorViewMode } & Formatting;
14
12
 
15
13
  /**
14
+ * Creates an atom for editor toolbar state.
16
15
  * @deprecated Use Editor.Root
17
16
  */
18
- export const useEditorToolbar = (initialState: Partial<EditorToolbarState> = {}): Live<EditorToolbarState> => {
19
- return useMemo(() => live<EditorToolbarState>(initialState), []);
17
+ export const useEditorToolbar = (initialState: EditorToolbarState = {}): Atom.Writable<EditorToolbarState> => {
18
+ // TODO(wittjosiah): Including initialState in the deps causes reactivity issues.
19
+ return useMemo(() => Atom.make<EditorToolbarState>(initialState), []);
20
20
  };
@@ -2,11 +2,11 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type NodeArg } from '@dxos/app-graph';
5
+ import { type Node } from '@dxos/app-graph';
6
6
  import { type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';
7
+ import { type EditorViewMode } from '@dxos/ui-editor';
7
8
 
8
9
  import { translationKey } from '../../translations';
9
- import { type EditorViewMode } from '../../types';
10
10
 
11
11
  import { createEditorAction, createEditorActionGroup } from './actions';
12
12
  import { type EditorToolbarState } from './useEditorToolbar';
@@ -46,10 +46,10 @@ export const createViewMode = (state: EditorToolbarState, onViewModeChange: (mod
46
46
  const viewModeGroupAction = createViewModeGroupAction(value);
47
47
  const viewModeActions = createViewModeActions(value, onViewModeChange);
48
48
  return {
49
- nodes: [viewModeGroupAction as NodeArg<any>, ...viewModeActions],
49
+ nodes: [viewModeGroupAction as Node.NodeArg<any>, ...viewModeActions],
50
50
  edges: [
51
- { source: 'root', target: 'viewMode' },
52
- ...viewModeActions.map(({ id }) => ({ source: viewModeGroupAction.id, target: id })),
51
+ { source: 'root', target: 'viewMode', relation: 'child' },
52
+ ...viewModeActions.map(({ id }) => ({ source: viewModeGroupAction.id, target: id, relation: 'child' })),
53
53
  ],
54
54
  };
55
55
  };
@@ -4,8 +4,6 @@
4
4
 
5
5
  export * from './Editor';
6
6
 
7
- // export { type GetMenuContext } from './EditorMenuProvider';
8
-
9
7
  // TODO(burdon): Remove once Editor is fully migrated.
10
8
  export { EditorContent, createEditorController } from './EditorContent';
11
9
  export * from './EditorMenuProvider';
@@ -17,11 +17,15 @@ import {
17
17
  } from 'react';
18
18
 
19
19
  import { log } from '@dxos/log';
20
+ import {
21
+ type EditorSelection,
22
+ createEditorStateTransaction,
23
+ debugDispatcher,
24
+ documentId,
25
+ modalStateField,
26
+ } from '@dxos/ui-editor';
20
27
  import { type MaybeProvider, getProviderValue, isTruthy } from '@dxos/util';
21
28
 
22
- import { type EditorSelection, createEditorStateTransaction, documentId, modalStateField } from '../extensions';
23
- import { debugDispatcher } from '../util';
24
-
25
29
  let instanceCount = 0;
26
30
 
27
31
  export type CursorInfo = {
@@ -156,7 +160,9 @@ export const useTextEditor = (
156
160
  element?.focus();
157
161
  break;
158
162
  }
163
+
159
164
  case 'Enter': {
165
+ event.preventDefault();
160
166
  if (target === currentTarget) {
161
167
  view?.focus();
162
168
  }
package/src/index.ts CHANGED
@@ -4,17 +4,7 @@
4
4
 
5
5
  import { translations } from './translations';
6
6
 
7
- export { type Extension, EditorState } from '@codemirror/state';
8
- export { EditorView, keymap } from '@codemirror/view';
9
- export { tags } from '@lezer/highlight';
10
-
11
- export { TextKind } from '@dxos/protocols/proto/dxos/echo/model/text';
12
-
13
7
  export * from './components';
14
- export * from './defaults';
15
- export * from './extensions';
16
8
  export * from './hooks';
17
- export * from './types';
18
- export * from './util';
19
9
 
20
10
  export { translations };