@dxos/react-ui-editor 0.8.3-staging.0fa589b → 0.8.4-main.1068cf700f

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 (404) hide show
  1. package/dist/lib/browser/index.mjs +1304 -7438
  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 +1304 -7438
  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 +47 -0
  8. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -0
  9. package/dist/types/src/components/Editor/Editor.stories.d.ts +23 -0
  10. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -0
  11. package/dist/types/src/components/Editor/index.d.ts +2 -0
  12. package/dist/types/src/components/Editor/index.d.ts.map +1 -0
  13. package/dist/types/src/components/EditorContent/EditorContent.d.ts +31 -0
  14. package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +1 -0
  15. package/dist/types/src/components/EditorContent/controller.d.ts +10 -0
  16. package/dist/types/src/components/EditorContent/controller.d.ts.map +1 -0
  17. package/dist/types/src/components/EditorContent/index.d.ts +3 -0
  18. package/dist/types/src/components/EditorContent/index.d.ts.map +1 -0
  19. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts +36 -0
  20. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -0
  21. package/dist/types/src/components/EditorMenuProvider/index.d.ts +6 -0
  22. package/dist/types/src/components/EditorMenuProvider/index.d.ts.map +1 -0
  23. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts +4 -0
  24. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -0
  25. package/dist/types/src/components/EditorMenuProvider/menu.d.ts +28 -0
  26. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -0
  27. package/dist/types/src/components/EditorMenuProvider/popover.d.ts +46 -0
  28. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -0
  29. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts +34 -0
  30. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -0
  31. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +16 -0
  32. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -0
  33. package/dist/types/src/components/EditorPreviewProvider/index.d.ts +2 -0
  34. package/dist/types/src/components/EditorPreviewProvider/index.d.ts.map +1 -0
  35. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +28 -2
  36. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  37. package/dist/types/src/components/EditorToolbar/actions.d.ts +24 -0
  38. package/dist/types/src/components/EditorToolbar/actions.d.ts.map +1 -0
  39. package/dist/types/src/components/EditorToolbar/blocks.d.ts +8 -7
  40. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  41. package/dist/types/src/components/EditorToolbar/formatting.d.ts +8 -7
  42. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  43. package/dist/types/src/components/EditorToolbar/headings.d.ts +8 -7
  44. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  45. package/dist/types/src/components/EditorToolbar/image.d.ts +4 -11
  46. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  47. package/dist/types/src/components/EditorToolbar/index.d.ts +2 -1
  48. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  49. package/dist/types/src/components/EditorToolbar/search.d.ts +4 -11
  50. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  51. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +11 -0
  52. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +1 -0
  53. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +9 -8
  54. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  55. package/dist/types/src/components/index.d.ts +5 -2
  56. package/dist/types/src/components/index.d.ts.map +1 -1
  57. package/dist/types/src/hooks/useTextEditor.d.ts +6 -10
  58. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  59. package/dist/types/src/index.d.ts +1 -9
  60. package/dist/types/src/index.d.ts.map +1 -1
  61. package/dist/types/src/stories/Automerge.stories.d.ts +43 -0
  62. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -0
  63. package/dist/types/src/stories/CommandDialog.stories.d.ts +14 -0
  64. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +1 -0
  65. package/dist/types/src/stories/Comments.stories.d.ts +22 -10
  66. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  67. package/dist/types/src/stories/EditorToolbar.stories.d.ts +40 -4
  68. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  69. package/dist/types/src/stories/Experimental.stories.d.ts +23 -13
  70. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  71. package/dist/types/src/stories/Markdown.stories.d.ts +33 -43
  72. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  73. package/dist/types/src/stories/Outliner.stories.d.ts +15 -21
  74. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  75. package/dist/types/src/stories/Popover.stories.d.ts +20 -0
  76. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -0
  77. package/dist/types/src/stories/Preview.stories.d.ts +23 -7
  78. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  79. package/dist/types/src/stories/Tags.stories.d.ts +16 -0
  80. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -0
  81. package/dist/types/src/stories/TextEditor.stories.d.ts +38 -52
  82. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  83. package/dist/types/src/stories/Theme.stories.d.ts +8 -0
  84. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -0
  85. package/dist/types/src/stories/components/EditorStory.d.ts +11 -23
  86. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  87. package/dist/types/src/stories/components/util.d.ts +3 -3
  88. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  89. package/dist/types/src/translations.d.ts +29 -30
  90. package/dist/types/src/translations.d.ts.map +1 -1
  91. package/dist/types/src/util/index.d.ts +0 -4
  92. package/dist/types/src/util/index.d.ts.map +1 -1
  93. package/dist/types/src/util/react.d.ts +6 -2
  94. package/dist/types/src/util/react.d.ts.map +1 -1
  95. package/dist/types/tsconfig.tsbuildinfo +1 -1
  96. package/package.json +82 -75
  97. package/src/components/Editor/Editor.stories.tsx +95 -0
  98. package/src/components/Editor/Editor.tsx +185 -0
  99. package/src/components/Editor/index.ts +5 -0
  100. package/src/components/EditorContent/EditorContent.tsx +83 -0
  101. package/src/components/EditorContent/controller.ts +50 -0
  102. package/src/components/EditorContent/index.ts +6 -0
  103. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +227 -0
  104. package/src/components/EditorMenuProvider/index.ts +10 -0
  105. package/src/components/EditorMenuProvider/menu-presets.ts +124 -0
  106. package/src/components/EditorMenuProvider/menu.ts +70 -0
  107. package/src/components/EditorMenuProvider/popover.ts +285 -0
  108. package/src/components/EditorMenuProvider/useEditorMenu.ts +173 -0
  109. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +79 -0
  110. package/src/components/EditorPreviewProvider/index.ts +5 -0
  111. package/src/components/EditorToolbar/EditorToolbar.tsx +119 -96
  112. package/src/components/EditorToolbar/actions.ts +87 -0
  113. package/src/components/EditorToolbar/blocks.ts +23 -26
  114. package/src/components/EditorToolbar/formatting.ts +24 -27
  115. package/src/components/EditorToolbar/headings.ts +20 -12
  116. package/src/components/EditorToolbar/image.ts +17 -6
  117. package/src/components/EditorToolbar/index.ts +3 -7
  118. package/src/components/EditorToolbar/search.ts +17 -6
  119. package/src/components/EditorToolbar/useEditorToolbar.ts +20 -0
  120. package/src/components/EditorToolbar/view-mode.ts +15 -9
  121. package/src/components/index.ts +7 -2
  122. package/src/hooks/useTextEditor.ts +39 -45
  123. package/src/index.ts +1 -11
  124. package/src/stories/Automerge.stories.tsx +175 -0
  125. package/src/stories/CommandDialog.stories.tsx +81 -0
  126. package/src/stories/Comments.stories.tsx +59 -51
  127. package/src/stories/EditorToolbar.stories.tsx +45 -30
  128. package/src/stories/Experimental.stories.tsx +18 -16
  129. package/src/stories/Markdown.stories.tsx +37 -33
  130. package/src/stories/Outliner.stories.tsx +53 -42
  131. package/src/stories/Popover.stories.tsx +158 -0
  132. package/src/stories/Preview.stories.tsx +105 -94
  133. package/src/stories/Tags.stories.tsx +104 -0
  134. package/src/stories/TextEditor.stories.tsx +51 -76
  135. package/src/stories/Theme.stories.tsx +61 -0
  136. package/src/stories/components/EditorStory.tsx +41 -33
  137. package/src/stories/components/util.tsx +43 -11
  138. package/src/translations.ts +9 -7
  139. package/src/util/index.ts +1 -5
  140. package/src/util/react.tsx +7 -3
  141. package/dist/lib/browser/testing/index.mjs +0 -6
  142. package/dist/lib/browser/testing/index.mjs.map +0 -7
  143. package/dist/lib/node/index.cjs +0 -7754
  144. package/dist/lib/node/index.cjs.map +0 -7
  145. package/dist/lib/node/meta.json +0 -1
  146. package/dist/lib/node/testing/index.cjs +0 -29
  147. package/dist/lib/node/testing/index.cjs.map +0 -7
  148. package/dist/lib/node-esm/testing/index.mjs +0 -8
  149. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  150. package/dist/types/src/components/EditorToolbar/lists.d.ts +0 -19
  151. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +0 -1
  152. package/dist/types/src/components/EditorToolbar/util.d.ts +0 -50
  153. package/dist/types/src/components/EditorToolbar/util.d.ts.map +0 -1
  154. package/dist/types/src/components/Popover/CommandMenu.d.ts +0 -34
  155. package/dist/types/src/components/Popover/CommandMenu.d.ts.map +0 -1
  156. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts +0 -21
  157. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +0 -1
  158. package/dist/types/src/components/Popover/RefPopover.d.ts +0 -34
  159. package/dist/types/src/components/Popover/RefPopover.d.ts.map +0 -1
  160. package/dist/types/src/components/Popover/index.d.ts +0 -4
  161. package/dist/types/src/components/Popover/index.d.ts.map +0 -1
  162. package/dist/types/src/defaults.d.ts +0 -14
  163. package/dist/types/src/defaults.d.ts.map +0 -1
  164. package/dist/types/src/extensions/annotations.d.ts +0 -9
  165. package/dist/types/src/extensions/annotations.d.ts.map +0 -1
  166. package/dist/types/src/extensions/autocomplete.d.ts +0 -13
  167. package/dist/types/src/extensions/autocomplete.d.ts.map +0 -1
  168. package/dist/types/src/extensions/automerge/automerge.d.ts +0 -4
  169. package/dist/types/src/extensions/automerge/automerge.d.ts.map +0 -1
  170. package/dist/types/src/extensions/automerge/automerge.stories.d.ts +0 -56
  171. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +0 -1
  172. package/dist/types/src/extensions/automerge/automerge.test.d.ts +0 -2
  173. package/dist/types/src/extensions/automerge/automerge.test.d.ts.map +0 -1
  174. package/dist/types/src/extensions/automerge/cursor.d.ts +0 -4
  175. package/dist/types/src/extensions/automerge/cursor.d.ts.map +0 -1
  176. package/dist/types/src/extensions/automerge/defs.d.ts +0 -17
  177. package/dist/types/src/extensions/automerge/defs.d.ts.map +0 -1
  178. package/dist/types/src/extensions/automerge/index.d.ts +0 -2
  179. package/dist/types/src/extensions/automerge/index.d.ts.map +0 -1
  180. package/dist/types/src/extensions/automerge/sync.d.ts +0 -17
  181. package/dist/types/src/extensions/automerge/sync.d.ts.map +0 -1
  182. package/dist/types/src/extensions/automerge/update-automerge.d.ts +0 -6
  183. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +0 -1
  184. package/dist/types/src/extensions/automerge/update-codemirror.d.ts +0 -5
  185. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +0 -1
  186. package/dist/types/src/extensions/awareness/awareness-provider.d.ts +0 -31
  187. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +0 -1
  188. package/dist/types/src/extensions/awareness/awareness.d.ts +0 -46
  189. package/dist/types/src/extensions/awareness/awareness.d.ts.map +0 -1
  190. package/dist/types/src/extensions/awareness/index.d.ts +0 -3
  191. package/dist/types/src/extensions/awareness/index.d.ts.map +0 -1
  192. package/dist/types/src/extensions/blast.d.ts +0 -25
  193. package/dist/types/src/extensions/blast.d.ts.map +0 -1
  194. package/dist/types/src/extensions/command/action.d.ts +0 -17
  195. package/dist/types/src/extensions/command/action.d.ts.map +0 -1
  196. package/dist/types/src/extensions/command/command-menu.d.ts +0 -20
  197. package/dist/types/src/extensions/command/command-menu.d.ts.map +0 -1
  198. package/dist/types/src/extensions/command/command.d.ts +0 -6
  199. package/dist/types/src/extensions/command/command.d.ts.map +0 -1
  200. package/dist/types/src/extensions/command/floating-menu.d.ts +0 -7
  201. package/dist/types/src/extensions/command/floating-menu.d.ts.map +0 -1
  202. package/dist/types/src/extensions/command/hint.d.ts +0 -24
  203. package/dist/types/src/extensions/command/hint.d.ts.map +0 -1
  204. package/dist/types/src/extensions/command/index.d.ts +0 -7
  205. package/dist/types/src/extensions/command/index.d.ts.map +0 -1
  206. package/dist/types/src/extensions/command/placeholder.d.ts +0 -10
  207. package/dist/types/src/extensions/command/placeholder.d.ts.map +0 -1
  208. package/dist/types/src/extensions/command/state.d.ts +0 -16
  209. package/dist/types/src/extensions/command/state.d.ts.map +0 -1
  210. package/dist/types/src/extensions/command/typeahead.d.ts +0 -17
  211. package/dist/types/src/extensions/command/typeahead.d.ts.map +0 -1
  212. package/dist/types/src/extensions/command/useCommandMenu.d.ts +0 -26
  213. package/dist/types/src/extensions/command/useCommandMenu.d.ts.map +0 -1
  214. package/dist/types/src/extensions/comments.d.ts +0 -95
  215. package/dist/types/src/extensions/comments.d.ts.map +0 -1
  216. package/dist/types/src/extensions/debug.d.ts +0 -3
  217. package/dist/types/src/extensions/debug.d.ts.map +0 -1
  218. package/dist/types/src/extensions/dnd.d.ts +0 -9
  219. package/dist/types/src/extensions/dnd.d.ts.map +0 -1
  220. package/dist/types/src/extensions/factories.d.ts +0 -64
  221. package/dist/types/src/extensions/factories.d.ts.map +0 -1
  222. package/dist/types/src/extensions/focus.d.ts +0 -7
  223. package/dist/types/src/extensions/focus.d.ts.map +0 -1
  224. package/dist/types/src/extensions/folding.d.ts +0 -7
  225. package/dist/types/src/extensions/folding.d.ts.map +0 -1
  226. package/dist/types/src/extensions/hashtag.d.ts +0 -3
  227. package/dist/types/src/extensions/hashtag.d.ts.map +0 -1
  228. package/dist/types/src/extensions/index.d.ts +0 -23
  229. package/dist/types/src/extensions/index.d.ts.map +0 -1
  230. package/dist/types/src/extensions/json.d.ts +0 -7
  231. package/dist/types/src/extensions/json.d.ts.map +0 -1
  232. package/dist/types/src/extensions/listener.d.ts +0 -11
  233. package/dist/types/src/extensions/listener.d.ts.map +0 -1
  234. package/dist/types/src/extensions/markdown/action.d.ts +0 -12
  235. package/dist/types/src/extensions/markdown/action.d.ts.map +0 -1
  236. package/dist/types/src/extensions/markdown/bundle.d.ts +0 -16
  237. package/dist/types/src/extensions/markdown/bundle.d.ts.map +0 -1
  238. package/dist/types/src/extensions/markdown/changes.d.ts +0 -10
  239. package/dist/types/src/extensions/markdown/changes.d.ts.map +0 -1
  240. package/dist/types/src/extensions/markdown/changes.test.d.ts +0 -2
  241. package/dist/types/src/extensions/markdown/changes.test.d.ts.map +0 -1
  242. package/dist/types/src/extensions/markdown/debug.d.ts +0 -11
  243. package/dist/types/src/extensions/markdown/debug.d.ts.map +0 -1
  244. package/dist/types/src/extensions/markdown/decorate.d.ts +0 -17
  245. package/dist/types/src/extensions/markdown/decorate.d.ts.map +0 -1
  246. package/dist/types/src/extensions/markdown/formatting.d.ts +0 -63
  247. package/dist/types/src/extensions/markdown/formatting.d.ts.map +0 -1
  248. package/dist/types/src/extensions/markdown/formatting.test.d.ts +0 -3
  249. package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +0 -1
  250. package/dist/types/src/extensions/markdown/highlight.d.ts +0 -37
  251. package/dist/types/src/extensions/markdown/highlight.d.ts.map +0 -1
  252. package/dist/types/src/extensions/markdown/image.d.ts +0 -7
  253. package/dist/types/src/extensions/markdown/image.d.ts.map +0 -1
  254. package/dist/types/src/extensions/markdown/index.d.ts +0 -10
  255. package/dist/types/src/extensions/markdown/index.d.ts.map +0 -1
  256. package/dist/types/src/extensions/markdown/link.d.ts +0 -7
  257. package/dist/types/src/extensions/markdown/link.d.ts.map +0 -1
  258. package/dist/types/src/extensions/markdown/parser.test.d.ts +0 -2
  259. package/dist/types/src/extensions/markdown/parser.test.d.ts.map +0 -1
  260. package/dist/types/src/extensions/markdown/styles.d.ts +0 -4
  261. package/dist/types/src/extensions/markdown/styles.d.ts.map +0 -1
  262. package/dist/types/src/extensions/markdown/table.d.ts +0 -8
  263. package/dist/types/src/extensions/markdown/table.d.ts.map +0 -1
  264. package/dist/types/src/extensions/mention.d.ts +0 -7
  265. package/dist/types/src/extensions/mention.d.ts.map +0 -1
  266. package/dist/types/src/extensions/modes.d.ts +0 -17
  267. package/dist/types/src/extensions/modes.d.ts.map +0 -1
  268. package/dist/types/src/extensions/outliner/commands.d.ts +0 -10
  269. package/dist/types/src/extensions/outliner/commands.d.ts.map +0 -1
  270. package/dist/types/src/extensions/outliner/editor.d.ts +0 -5
  271. package/dist/types/src/extensions/outliner/editor.d.ts.map +0 -1
  272. package/dist/types/src/extensions/outliner/editor.test.d.ts +0 -2
  273. package/dist/types/src/extensions/outliner/editor.test.d.ts.map +0 -1
  274. package/dist/types/src/extensions/outliner/index.d.ts +0 -4
  275. package/dist/types/src/extensions/outliner/index.d.ts.map +0 -1
  276. package/dist/types/src/extensions/outliner/outliner.d.ts +0 -11
  277. package/dist/types/src/extensions/outliner/outliner.d.ts.map +0 -1
  278. package/dist/types/src/extensions/outliner/outliner.test.d.ts +0 -2
  279. package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +0 -1
  280. package/dist/types/src/extensions/outliner/selection.d.ts +0 -12
  281. package/dist/types/src/extensions/outliner/selection.d.ts.map +0 -1
  282. package/dist/types/src/extensions/outliner/tree.d.ts +0 -79
  283. package/dist/types/src/extensions/outliner/tree.d.ts.map +0 -1
  284. package/dist/types/src/extensions/outliner/tree.test.d.ts +0 -2
  285. package/dist/types/src/extensions/outliner/tree.test.d.ts.map +0 -1
  286. package/dist/types/src/extensions/preview/index.d.ts +0 -2
  287. package/dist/types/src/extensions/preview/index.d.ts.map +0 -1
  288. package/dist/types/src/extensions/preview/preview.d.ts +0 -32
  289. package/dist/types/src/extensions/preview/preview.d.ts.map +0 -1
  290. package/dist/types/src/extensions/selection.d.ts +0 -24
  291. package/dist/types/src/extensions/selection.d.ts.map +0 -1
  292. package/dist/types/src/extensions/typewriter.d.ts +0 -10
  293. package/dist/types/src/extensions/typewriter.d.ts.map +0 -1
  294. package/dist/types/src/stories/Command.stories.d.ts +0 -7
  295. package/dist/types/src/stories/Command.stories.d.ts.map +0 -1
  296. package/dist/types/src/stories/CommandMenu.stories.d.ts +0 -13
  297. package/dist/types/src/stories/CommandMenu.stories.d.ts.map +0 -1
  298. package/dist/types/src/styles/index.d.ts +0 -4
  299. package/dist/types/src/styles/index.d.ts.map +0 -1
  300. package/dist/types/src/styles/markdown.d.ts +0 -8
  301. package/dist/types/src/styles/markdown.d.ts.map +0 -1
  302. package/dist/types/src/styles/theme.d.ts +0 -38
  303. package/dist/types/src/styles/theme.d.ts.map +0 -1
  304. package/dist/types/src/styles/tokens.d.ts +0 -3
  305. package/dist/types/src/styles/tokens.d.ts.map +0 -1
  306. package/dist/types/src/testing/index.d.ts +0 -2
  307. package/dist/types/src/testing/index.d.ts.map +0 -1
  308. package/dist/types/src/testing/util.d.ts +0 -2
  309. package/dist/types/src/testing/util.d.ts.map +0 -1
  310. package/dist/types/src/types.d.ts +0 -14
  311. package/dist/types/src/types.d.ts.map +0 -1
  312. package/dist/types/src/util/cursor.d.ts +0 -31
  313. package/dist/types/src/util/cursor.d.ts.map +0 -1
  314. package/dist/types/src/util/debug.d.ts +0 -17
  315. package/dist/types/src/util/debug.d.ts.map +0 -1
  316. package/dist/types/src/util/dom.d.ts +0 -20
  317. package/dist/types/src/util/dom.d.ts.map +0 -1
  318. package/dist/types/src/util/facet.d.ts +0 -3
  319. package/dist/types/src/util/facet.d.ts.map +0 -1
  320. package/src/components/EditorToolbar/lists.ts +0 -59
  321. package/src/components/EditorToolbar/util.ts +0 -64
  322. package/src/components/Popover/CommandMenu.tsx +0 -279
  323. package/src/components/Popover/RefDropdownMenu.tsx +0 -79
  324. package/src/components/Popover/RefPopover.tsx +0 -99
  325. package/src/components/Popover/index.ts +0 -7
  326. package/src/defaults.ts +0 -49
  327. package/src/extensions/annotations.ts +0 -55
  328. package/src/extensions/autocomplete.ts +0 -69
  329. package/src/extensions/automerge/automerge.stories.tsx +0 -140
  330. package/src/extensions/automerge/automerge.test.tsx +0 -78
  331. package/src/extensions/automerge/automerge.ts +0 -85
  332. package/src/extensions/automerge/cursor.ts +0 -28
  333. package/src/extensions/automerge/defs.ts +0 -31
  334. package/src/extensions/automerge/index.ts +0 -5
  335. package/src/extensions/automerge/sync.ts +0 -75
  336. package/src/extensions/automerge/update-automerge.ts +0 -50
  337. package/src/extensions/automerge/update-codemirror.ts +0 -115
  338. package/src/extensions/awareness/awareness-provider.ts +0 -127
  339. package/src/extensions/awareness/awareness.ts +0 -315
  340. package/src/extensions/awareness/index.ts +0 -6
  341. package/src/extensions/blast.ts +0 -376
  342. package/src/extensions/command/action.ts +0 -56
  343. package/src/extensions/command/command-menu.ts +0 -210
  344. package/src/extensions/command/command.ts +0 -34
  345. package/src/extensions/command/floating-menu.ts +0 -133
  346. package/src/extensions/command/hint.ts +0 -102
  347. package/src/extensions/command/index.ts +0 -10
  348. package/src/extensions/command/placeholder.ts +0 -113
  349. package/src/extensions/command/state.ts +0 -89
  350. package/src/extensions/command/typeahead.ts +0 -116
  351. package/src/extensions/command/useCommandMenu.ts +0 -118
  352. package/src/extensions/comments.ts +0 -592
  353. package/src/extensions/debug.ts +0 -15
  354. package/src/extensions/dnd.ts +0 -37
  355. package/src/extensions/factories.ts +0 -240
  356. package/src/extensions/focus.ts +0 -35
  357. package/src/extensions/folding.tsx +0 -46
  358. package/src/extensions/hashtag.tsx +0 -68
  359. package/src/extensions/index.ts +0 -26
  360. package/src/extensions/json.ts +0 -57
  361. package/src/extensions/listener.ts +0 -38
  362. package/src/extensions/markdown/action.ts +0 -116
  363. package/src/extensions/markdown/bundle.ts +0 -71
  364. package/src/extensions/markdown/changes.test.ts +0 -26
  365. package/src/extensions/markdown/changes.ts +0 -149
  366. package/src/extensions/markdown/debug.ts +0 -44
  367. package/src/extensions/markdown/decorate.ts +0 -591
  368. package/src/extensions/markdown/formatting.test.ts +0 -498
  369. package/src/extensions/markdown/formatting.ts +0 -1265
  370. package/src/extensions/markdown/highlight.ts +0 -183
  371. package/src/extensions/markdown/image.ts +0 -119
  372. package/src/extensions/markdown/index.ts +0 -13
  373. package/src/extensions/markdown/link.ts +0 -47
  374. package/src/extensions/markdown/parser.test.ts +0 -75
  375. package/src/extensions/markdown/styles.ts +0 -135
  376. package/src/extensions/markdown/table.ts +0 -144
  377. package/src/extensions/mention.ts +0 -41
  378. package/src/extensions/modes.ts +0 -50
  379. package/src/extensions/outliner/commands.ts +0 -270
  380. package/src/extensions/outliner/editor.test.ts +0 -33
  381. package/src/extensions/outliner/editor.ts +0 -184
  382. package/src/extensions/outliner/index.ts +0 -7
  383. package/src/extensions/outliner/outliner.test.ts +0 -99
  384. package/src/extensions/outliner/outliner.ts +0 -166
  385. package/src/extensions/outliner/selection.ts +0 -50
  386. package/src/extensions/outliner/tree.test.ts +0 -167
  387. package/src/extensions/outliner/tree.ts +0 -317
  388. package/src/extensions/preview/index.ts +0 -5
  389. package/src/extensions/preview/preview.ts +0 -193
  390. package/src/extensions/selection.ts +0 -100
  391. package/src/extensions/typewriter.ts +0 -68
  392. package/src/stories/Command.stories.tsx +0 -97
  393. package/src/stories/CommandMenu.stories.tsx +0 -159
  394. package/src/styles/index.ts +0 -7
  395. package/src/styles/markdown.ts +0 -26
  396. package/src/styles/theme.ts +0 -266
  397. package/src/styles/tokens.ts +0 -17
  398. package/src/testing/index.ts +0 -5
  399. package/src/testing/util.ts +0 -5
  400. package/src/types.ts +0 -23
  401. package/src/util/cursor.ts +0 -55
  402. package/src/util/debug.ts +0 -64
  403. package/src/util/dom.ts +0 -56
  404. package/src/util/facet.ts +0 -13
@@ -0,0 +1,61 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import React, { useMemo } from 'react';
7
+
8
+ import { useThemeContext } from '@dxos/react-ui';
9
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
10
+ import { createBasicExtensions, createThemeExtensions } from '@dxos/ui-editor';
11
+
12
+ import { Editor } from '../components';
13
+
14
+ const createText = (monospace?: boolean) =>
15
+ [`${monospace ? 'monospace' : 'body'}`, 'Hello world', '0123456789'].join('\n');
16
+
17
+ const DefaultStory = () => {
18
+ const { themeMode } = useThemeContext();
19
+ const [ext1, ext2] = useMemo(
20
+ () => [
21
+ //
22
+ [
23
+ createBasicExtensions({ placeholder: 'Enter text', search: true }),
24
+ createThemeExtensions({ themeMode, monospace: false }),
25
+ ],
26
+ [
27
+ createBasicExtensions({ placeholder: 'Enter text', search: true }),
28
+ createThemeExtensions({ themeMode, monospace: true }),
29
+ ],
30
+ ],
31
+ [],
32
+ );
33
+
34
+ return (
35
+ <div className='is-full grid grid-cols-2 gap-2'>
36
+ <Editor.Root>
37
+ <Editor.Content classNames='p-2' extensions={ext1} initialValue={createText(false)} />
38
+ </Editor.Root>
39
+ <Editor.Root>
40
+ <Editor.Content classNames='p-2' extensions={ext2} initialValue={createText(true)} />
41
+ </Editor.Root>
42
+ </div>
43
+ );
44
+ };
45
+
46
+ const meta: Meta<typeof DefaultStory> = {
47
+ title: 'ui/react-ui-editor/Theme',
48
+ component: DefaultStory,
49
+ decorators: [withTheme(), withLayout()],
50
+ parameters: {
51
+ layout: 'fullscreen',
52
+ },
53
+ };
54
+
55
+ export default meta;
56
+
57
+ type Story = StoryObj<typeof meta>;
58
+
59
+ export const Default: Story = {
60
+ args: {},
61
+ };
@@ -3,68 +3,72 @@
3
3
  //
4
4
 
5
5
  import { type EditorView } from '@codemirror/view';
6
- import React, { type ReactNode, forwardRef, useEffect, useState, useImperativeHandle, useMemo } from 'react';
6
+ import React, { type ReactNode, forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
7
7
 
8
- import { Expando } from '@dxos/echo-schema';
8
+ import { Obj } from '@dxos/echo';
9
+ import { TestSchema } from '@dxos/echo/testing';
9
10
  import { invariant } from '@dxos/invariant';
10
11
  import { PublicKey } from '@dxos/keys';
11
- import { live } from '@dxos/live-object';
12
- import { createDocAccessor, createObject } from '@dxos/react-client/echo';
13
- import { useForwardedRef, useThemeContext } from '@dxos/react-ui';
12
+ import { log } from '@dxos/log';
13
+ import { useMergeRefs, useThemeContext } from '@dxos/react-ui';
14
14
  import { useAttentionAttributes } from '@dxos/react-ui-attention';
15
15
  import { JsonFilter } from '@dxos/react-ui-syntax-highlighter';
16
- import { mx } from '@dxos/react-ui-theme';
17
- import { isNonNullable } from '@dxos/util';
18
-
19
- import { editorSlots, editorGutter } from '../../defaults';
20
16
  import {
21
17
  type DebugNode,
22
18
  type ThemeExtensionsOptions,
23
- createDataExtensions,
24
19
  createBasicExtensions,
25
20
  createMarkdownExtensions,
26
21
  createThemeExtensions,
27
22
  debugTree,
28
- } from '../../extensions';
29
- import { useTextEditor, type UseTextEditorProps } from '../../hooks';
23
+ decorateMarkdown,
24
+ editorSlots,
25
+ } from '@dxos/ui-editor';
26
+ import { mx } from '@dxos/ui-theme';
27
+ import { isNonNullable } from '@dxos/util';
28
+
29
+ import { type EditorController, createEditorController } from '../../components';
30
+ import { type UseTextEditorProps, useTextEditor } from '../../hooks';
30
31
 
31
32
  // Type definitions.
32
33
  export type DebugMode = 'raw' | 'tree' | 'raw+tree';
33
34
 
34
35
  const defaultId = 'editor-' + PublicKey.random().toHex().slice(0, 8);
35
36
 
36
- export type StoryProps = Pick<UseTextEditorProps, 'scrollTo' | 'selection' | 'extensions'> &
37
+ export type StoryProps = Pick<UseTextEditorProps, 'id' | 'scrollTo' | 'selection' | 'extensions'> &
37
38
  Pick<ThemeExtensionsOptions, 'slots'> & {
38
- id?: string;
39
39
  debug?: DebugMode;
40
40
  debugCustom?: (view: EditorView) => ReactNode;
41
41
  text?: string;
42
- object?: Expando;
42
+ object?: Obj.Obj<TestSchema.Expando>;
43
43
  readOnly?: boolean;
44
44
  placeholder?: string;
45
45
  lineNumbers?: boolean;
46
+ monospace?: boolean;
46
47
  onReady?: (view: EditorView) => void;
47
48
  };
48
49
 
49
- export const EditorStory = forwardRef<EditorView | undefined, StoryProps>(
50
- ({ debug, debugCustom, text, extensions: _extensions, ...props }, forwardedRef) => {
51
- const attentionAttrs = useAttentionAttributes('testing');
50
+ export const EditorStory = forwardRef<EditorController, StoryProps>(
51
+ ({ debug, debugCustom, text, extensions: extensionsProp, ...props }, forwardedRef) => {
52
+ const controllerRef = useRef<EditorController>(null);
53
+ const mergedRef = useMergeRefs([controllerRef, forwardedRef]);
54
+
55
+ const attentionAttrs = useAttentionAttributes('test-panel');
52
56
  const [tree, setTree] = useState<DebugNode>();
53
- const [object] = useState(createObject(live(Expando, { content: text ?? '' })));
54
- const viewRef = useForwardedRef(forwardedRef);
55
- const view = viewRef.current;
57
+ const [object] = useState(Obj.make(TestSchema.Expando, { content: text ?? '' }));
58
+
56
59
  const extensions = useMemo(
57
- () => (debug ? [_extensions, debugTree(setTree)].filter(isNonNullable) : _extensions),
58
- [debug, _extensions],
60
+ () => (debug ? [extensionsProp, debugTree(setTree)].filter(isNonNullable) : extensionsProp),
61
+ [debug, extensionsProp],
59
62
  );
60
63
 
64
+ const view = controllerRef.current?.view;
61
65
  return (
62
- <div className={mx('w-full h-full grid overflow-hidden', debug && 'grid-cols-2 lg:grid-cols-[1fr_600px]')}>
63
- <EditorComponent ref={viewRef} object={object} text={text} extensions={extensions} {...props} />
66
+ <div className={mx('is-full bs-full grid overflow-hidden', debug && 'grid-cols-2 lg:grid-cols-[1fr_600px]')}>
67
+ <EditorComponent ref={mergedRef} object={object} text={text} extensions={extensions} {...props} />
64
68
 
65
69
  {debug && (
66
70
  <div
67
- className='grid h-full auto-rows-fr border-l border-separator divide-y divide-separator overflow-hidden'
71
+ className='grid bs-full auto-rows-fr border-l border-separator divide-y divide-separator overflow-hidden'
68
72
  {...attentionAttrs}
69
73
  >
70
74
  {view && debugCustom?.(view)}
@@ -84,7 +88,7 @@ export const EditorStory = forwardRef<EditorView | undefined, StoryProps>(
84
88
  /**
85
89
  * Default story component.
86
90
  */
87
- export const EditorComponent = forwardRef<EditorView | undefined, StoryProps>(
91
+ const EditorComponent = forwardRef<EditorController, StoryProps>(
88
92
  (
89
93
  {
90
94
  id = defaultId,
@@ -93,6 +97,7 @@ export const EditorComponent = forwardRef<EditorView | undefined, StoryProps>(
93
97
  readOnly,
94
98
  placeholder = 'New document.',
95
99
  lineNumbers,
100
+ monospace,
96
101
  scrollTo,
97
102
  selection,
98
103
  extensions,
@@ -111,18 +116,21 @@ export const EditorComponent = forwardRef<EditorView | undefined, StoryProps>(
111
116
  selection,
112
117
  initialValue: text,
113
118
  extensions: [
114
- createDataExtensions({ id, text: createDocAccessor(object, ['content']) }),
115
- createBasicExtensions({ readOnly, placeholder, lineNumbers, scrollPastEnd: true }),
116
- createMarkdownExtensions({ themeMode }),
117
- createThemeExtensions({ themeMode, syntaxHighlighting: true, slots }),
118
- editorGutter,
119
+ createBasicExtensions({ readOnly, placeholder, lineNumbers, scrollPastEnd: true, search: true }),
120
+ createThemeExtensions({ monospace, themeMode, syntaxHighlighting: true, slots }),
121
+ createMarkdownExtensions(),
122
+ decorateMarkdown(),
119
123
  extensions || [],
120
124
  ],
121
125
  }),
122
126
  [id, object, extensions, themeMode],
123
127
  );
124
128
 
125
- useImperativeHandle(forwardedRef, () => view, [view]);
129
+ // External controller.
130
+ useImperativeHandle(forwardedRef, () => {
131
+ log.info('view updated', { id });
132
+ return createEditorController(view);
133
+ }, [id, view]);
126
134
 
127
135
  useEffect(() => {
128
136
  if (view) {
@@ -8,8 +8,6 @@ import React, { type FC } from 'react';
8
8
 
9
9
  import { faker } from '@dxos/random';
10
10
  import { Icon } from '@dxos/react-ui';
11
- import { mx } from '@dxos/react-ui-theme';
12
-
13
11
  import {
14
12
  type EditorSelectionState,
15
13
  decorateMarkdown,
@@ -18,15 +16,17 @@ import {
18
16
  image,
19
17
  linkTooltip,
20
18
  table,
21
- } from '../../extensions';
22
- import { str } from '../../testing';
23
- import { createRenderer } from '../../util';
19
+ } from '@dxos/ui-editor';
20
+ import { mx } from '@dxos/ui-theme';
21
+
22
+ import { createRenderer, str } from '../../util';
24
23
 
25
24
  export const num = () => faker.number.int({ min: 0, max: 9999 }).toLocaleString();
26
25
 
27
26
  export const img = '![dxos](https://dxos.network/dxos-logotype-blue.png)';
28
27
 
29
28
  export const code = str(
29
+ // prettier-ignore
30
30
  '// Code',
31
31
  'const Component = () => {',
32
32
  ' const x = 100;',
@@ -38,7 +38,7 @@ export const code = str(
38
38
  // Content blocks for stories
39
39
  export const content = {
40
40
  tasks: str(
41
- //
41
+ // prettier-ignore
42
42
  '### TaskList',
43
43
  '',
44
44
  `- [x] ${faker.lorem.sentences()}`,
@@ -50,7 +50,7 @@ export const content = {
50
50
  ),
51
51
 
52
52
  bullets: str(
53
- //
53
+ // prettier-ignore
54
54
  '### BulletList',
55
55
  '',
56
56
  `- ${faker.lorem.sentences()}`,
@@ -62,7 +62,7 @@ export const content = {
62
62
  ),
63
63
 
64
64
  numbered: str(
65
- //
65
+ // prettier-ignore
66
66
  '### OrderedList (part 1)',
67
67
  '',
68
68
  `1. ${faker.lorem.sentences()}`,
@@ -81,11 +81,34 @@ export const content = {
81
81
 
82
82
  typescript: code,
83
83
 
84
- codeblocks: str('### Code', '', '```bash', '$ ls -las', '```', '', '```tsx', code, '```', ''),
84
+ codeblocks: str(
85
+ // prettier-ignore
86
+ '### Code',
87
+ '',
88
+ '```bash',
89
+ '$ ls -las',
90
+ '```',
91
+ '',
92
+ '```tsx',
93
+ code,
94
+ '```',
95
+ '',
96
+ ),
85
97
 
86
- comment: str('<!--', 'A comment', '-->', '', 'No comment.', 'Partial comment. <!-- comment. -->'),
98
+ comment: str(
99
+ // prettier-ignore
100
+ '### Comment',
101
+ '',
102
+ '<!--',
103
+ 'A comment',
104
+ '-->',
105
+ '',
106
+ 'Partial comment. <!-- comment. -->',
107
+ '',
108
+ ),
87
109
 
88
110
  links: str(
111
+ // prettier-ignore
89
112
  '### Links',
90
113
  '',
91
114
  'This is a naked link https://dxos.org within a sentence.',
@@ -97,6 +120,7 @@ export const content = {
97
120
  ),
98
121
 
99
122
  table: str(
123
+ // prettier-ignore
100
124
  '### Tables',
101
125
  '',
102
126
  `| ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} |`,
@@ -113,9 +137,16 @@ export const content = {
113
137
  ...[1, 2, 3, 4, 5, 6].map((level) => ['#'.repeat(level) + ` Heading ${level}`, faker.lorem.sentences(), '']).flat(),
114
138
  ),
115
139
 
116
- formatting: str('### Formatting', '', 'This this is **bold**, ~~strikethrough~~, _italic_, and `f(INLINE)`.', ''),
140
+ formatting: str(
141
+ // prettier-ignore
142
+ '### Formatting',
143
+ '',
144
+ 'This this is **bold**, ~~strikethrough~~, _italic_, and `f(INLINE)`.',
145
+ '',
146
+ ),
117
147
 
118
148
  blockquotes: str(
149
+ // prettier-ignore
119
150
  '### Blockquotes',
120
151
  '',
121
152
  '> This is a block quote.',
@@ -154,6 +185,7 @@ export const text = str(
154
185
  '---',
155
186
  '## Misc',
156
187
  content.codeblocks,
188
+ content.comment,
157
189
  content.table,
158
190
  content.image,
159
191
  content.footer,
@@ -2,9 +2,11 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export const translationKey = 'react-ui-editor';
5
+ import { type Resource } from '@dxos/react-ui';
6
6
 
7
- export default [
7
+ export const translationKey = '@dxos/react-ui-editor';
8
+
9
+ export const translations = [
8
10
  {
9
11
  'en-US': {
10
12
  [translationKey]: {
@@ -22,17 +24,17 @@ export default [
22
24
  'selection overlaps existing comment label': 'Selection overlaps existing comment',
23
25
  'select text to comment label': 'Select text to comment',
24
26
  'image label': 'Insert image',
25
- 'heading label': 'Heading level',
26
27
  'table label': 'Create table',
28
+ 'heading label': 'Heading level',
27
29
  'heading level label_zero': 'Paragraph',
28
30
  'heading level label_one': 'Heading level {{count}}',
29
31
  'heading level label_other': 'Heading level {{count}}',
32
+ 'search label': 'Search',
30
33
  'view mode label': 'Editor view',
31
- 'preview mode label': 'Live preview',
34
+ 'preview mode label': 'Markdown',
32
35
  'readonly mode label': 'Read only',
33
- 'search label': 'Search',
34
- 'source mode label': 'Source',
36
+ 'source mode label': 'Plain text',
35
37
  },
36
38
  },
37
39
  },
38
- ];
40
+ ] as const satisfies Resource[];
package/src/util/index.ts CHANGED
@@ -1,9 +1,5 @@
1
1
  //
2
- // Copyright 2024 DXOS.org
2
+ // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './cursor';
6
- export * from './debug';
7
- export * from './dom';
8
- export * from './facet';
9
5
  export * from './react';
@@ -6,9 +6,13 @@ import React, { type FC, type ReactNode } from 'react';
6
6
  import { createRoot } from 'react-dom/client';
7
7
 
8
8
  import { ThemeProvider, Tooltip } from '@dxos/react-ui';
9
- import { defaultTx } from '@dxos/react-ui-theme';
9
+ import { type RenderCallback } from '@dxos/ui-editor';
10
+ import { defaultTx } from '@dxos/ui-theme';
10
11
 
11
- import { type RenderCallback } from '../types';
12
+ /**
13
+ * @deprecated Use `trim` from `@dxos/util`.
14
+ */
15
+ export const str = (...lines: string[]) => lines.join('\n');
12
16
 
13
17
  /** @deprecated */
14
18
  // TODO(wittjosiah): Replace with portals which are lighter weight and inherit context from the main react tree.
@@ -22,7 +26,7 @@ export const renderRoot = <T extends Element>(root: T, node: ReactNode): T => {
22
26
  * @deprecated
23
27
  */
24
28
  export const createRenderer =
25
- <Props extends object>(Component: FC<Props>): RenderCallback<Props> =>
29
+ <TProps extends object>(Component: FC<TProps>): RenderCallback<TProps> =>
26
30
  (el, props) => {
27
31
  renderRoot(
28
32
  el,
@@ -1,6 +0,0 @@
1
- // packages/ui/react-ui-editor/src/testing/util.ts
2
- var str = (...lines) => lines.join("\n");
3
- export {
4
- str
5
- };
6
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/testing/util.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nexport const str = (...lines: string[]) => lines.join('\\n');\n"],
5
- "mappings": ";AAIO,IAAMA,MAAM,IAAIC,UAAoBA,MAAMC,KAAK,IAAA;",
6
- "names": ["str", "lines", "join"]
7
- }