@dxos/react-ui-editor 0.8.4-main.fffef41 → 0.8.4-staging.60fe92afc8

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 (436) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/browser/index.mjs +1126 -8845
  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 +1126 -8844
  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 +41 -24
  14. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  15. package/dist/types/src/components/Editor/Editor.stories.d.ts +7 -4
  16. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -1
  17. package/dist/types/src/components/{EditorContent/EditorContent.d.ts → Editor/EditorView.d.ts} +9 -7
  18. package/dist/types/src/components/Editor/EditorView.d.ts.map +1 -0
  19. package/dist/types/src/components/Editor/controller.d.ts.map +1 -0
  20. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts +3 -5
  21. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -1
  22. package/dist/types/src/components/EditorMenuProvider/index.d.ts +0 -1
  23. package/dist/types/src/components/EditorMenuProvider/index.d.ts.map +1 -1
  24. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -1
  25. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -1
  26. package/dist/types/src/components/EditorMenuProvider/popover.d.ts +9 -3
  27. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -1
  28. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts +3 -3
  29. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -1
  30. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +1 -1
  31. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -1
  32. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +8 -6
  33. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  34. package/dist/types/src/components/EditorToolbar/blocks.d.ts +4 -17
  35. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  36. package/dist/types/src/components/EditorToolbar/formatting.d.ts +4 -17
  37. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  38. package/dist/types/src/components/EditorToolbar/headings.d.ts +4 -17
  39. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  40. package/dist/types/src/components/EditorToolbar/image.d.ts +3 -15
  41. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  42. package/dist/types/src/components/EditorToolbar/index.d.ts +1 -2
  43. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  44. package/dist/types/src/components/EditorToolbar/lists.d.ts +6 -0
  45. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -0
  46. package/dist/types/src/components/EditorToolbar/search.d.ts +3 -15
  47. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  48. package/dist/types/src/components/EditorToolbar/types.d.ts +6 -0
  49. package/dist/types/src/components/EditorToolbar/types.d.ts.map +1 -0
  50. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +5 -18
  51. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  52. package/dist/types/src/components/index.d.ts +0 -2
  53. package/dist/types/src/components/index.d.ts.map +1 -1
  54. package/dist/types/src/extensions/Assistant.stories.d.ts +10 -0
  55. package/dist/types/src/extensions/Assistant.stories.d.ts.map +1 -0
  56. package/dist/types/src/extensions/assistant-extension.d.ts +24 -0
  57. package/dist/types/src/extensions/assistant-extension.d.ts.map +1 -0
  58. package/dist/types/src/extensions/index.d.ts +1 -31
  59. package/dist/types/src/extensions/index.d.ts.map +1 -1
  60. package/dist/types/src/hooks/index.d.ts +1 -0
  61. package/dist/types/src/hooks/index.d.ts.map +1 -1
  62. package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts +25 -0
  63. package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts.map +1 -0
  64. package/dist/types/src/hooks/useTextEditor.d.ts +1 -1
  65. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  66. package/dist/types/src/index.d.ts +0 -9
  67. package/dist/types/src/index.d.ts.map +1 -1
  68. package/dist/types/src/stories/Automerge.stories.d.ts +44 -0
  69. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -0
  70. package/dist/types/src/stories/Comments.stories.d.ts +3 -2
  71. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  72. package/dist/types/src/stories/EditorToolbar.stories.d.ts +29 -27
  73. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  74. package/dist/types/src/stories/Experimental.stories.d.ts +4 -3
  75. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  76. package/dist/types/src/stories/Markdown.stories.d.ts +3 -2
  77. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  78. package/dist/types/src/stories/Outliner.stories.d.ts +2 -2
  79. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  80. package/dist/types/src/stories/Popover.stories.d.ts +2 -2
  81. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -1
  82. package/dist/types/src/stories/Preview.stories.d.ts +3 -2
  83. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  84. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
  85. package/dist/types/src/stories/TextEditor.stories.d.ts +3 -2
  86. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  87. package/dist/types/src/stories/Theme.stories.d.ts +8 -0
  88. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -0
  89. package/dist/types/src/stories/components/EditorStory.d.ts +9 -20
  90. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  91. package/dist/types/src/stories/components/util.d.ts +4 -3
  92. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  93. package/dist/types/src/translations.d.ts +26 -26
  94. package/dist/types/src/translations.d.ts.map +1 -1
  95. package/dist/types/src/util/index.d.ts +0 -5
  96. package/dist/types/src/util/index.d.ts.map +1 -1
  97. package/dist/types/src/util/react.d.ts +6 -5
  98. package/dist/types/src/util/react.d.ts.map +1 -1
  99. package/dist/types/tsconfig.tsbuildinfo +1 -1
  100. package/package.json +93 -86
  101. package/src/components/Editor/Editor.stories.tsx +26 -26
  102. package/src/components/Editor/Editor.tsx +68 -55
  103. package/src/components/Editor/EditorView.tsx +99 -0
  104. package/src/components/{EditorContent → Editor}/controller.ts +13 -4
  105. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +40 -39
  106. package/src/components/EditorMenuProvider/index.ts +0 -1
  107. package/src/components/EditorMenuProvider/menu-presets.ts +3 -1
  108. package/src/components/EditorMenuProvider/menu.ts +1 -2
  109. package/src/components/EditorMenuProvider/popover.ts +42 -9
  110. package/src/components/EditorMenuProvider/useEditorMenu.ts +21 -7
  111. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +6 -9
  112. package/src/components/EditorToolbar/EditorToolbar.tsx +37 -68
  113. package/src/components/EditorToolbar/blocks.ts +55 -48
  114. package/src/components/EditorToolbar/formatting.ts +44 -46
  115. package/src/components/EditorToolbar/headings.ts +45 -51
  116. package/src/components/EditorToolbar/image.ts +16 -14
  117. package/src/components/EditorToolbar/index.ts +2 -3
  118. package/src/components/EditorToolbar/lists.ts +58 -0
  119. package/src/components/EditorToolbar/search.ts +16 -14
  120. package/src/components/EditorToolbar/types.ts +8 -0
  121. package/src/components/EditorToolbar/view-mode.ts +37 -43
  122. package/src/components/index.ts +0 -5
  123. package/src/extensions/Assistant.stories.tsx +112 -0
  124. package/src/extensions/assistant-extension.tsx +223 -0
  125. package/src/extensions/index.ts +2 -32
  126. package/src/hooks/index.ts +1 -0
  127. package/src/hooks/useBasicMarkdownExtensions.ts +55 -0
  128. package/src/hooks/useTextEditor.ts +9 -3
  129. package/src/index.ts +0 -13
  130. package/src/stories/Automerge.stories.tsx +177 -0
  131. package/src/stories/Comments.stories.tsx +48 -43
  132. package/src/stories/EditorToolbar.stories.tsx +40 -53
  133. package/src/stories/Experimental.stories.tsx +14 -16
  134. package/src/stories/Markdown.stories.tsx +16 -16
  135. package/src/stories/Outliner.stories.tsx +11 -12
  136. package/src/stories/Popover.stories.tsx +30 -34
  137. package/src/stories/Preview.stories.tsx +72 -58
  138. package/src/stories/Tags.stories.tsx +24 -15
  139. package/src/stories/TextEditor.stories.tsx +13 -19
  140. package/src/stories/Theme.stories.tsx +61 -0
  141. package/src/stories/components/EditorStory.tsx +33 -30
  142. package/src/stories/components/util.tsx +51 -52
  143. package/src/translations.ts +30 -25
  144. package/src/util/index.ts +1 -6
  145. package/src/util/react.tsx +8 -13
  146. package/dist/lib/browser/chunk-HL3YF6WC.mjs +0 -22
  147. package/dist/lib/browser/chunk-HL3YF6WC.mjs.map +0 -7
  148. package/dist/lib/browser/types/index.mjs +0 -13
  149. package/dist/lib/browser/types/index.mjs.map +0 -7
  150. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs +0 -24
  151. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs.map +0 -7
  152. package/dist/lib/node-esm/types/index.mjs +0 -14
  153. package/dist/lib/node-esm/types/index.mjs.map +0 -7
  154. package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +0 -1
  155. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts +0 -26
  156. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts.map +0 -1
  157. package/dist/types/src/components/EditorContent/controller.d.ts.map +0 -1
  158. package/dist/types/src/components/EditorContent/index.d.ts +0 -3
  159. package/dist/types/src/components/EditorContent/index.d.ts.map +0 -1
  160. package/dist/types/src/components/EditorMenuProvider/util.d.ts +0 -8
  161. package/dist/types/src/components/EditorMenuProvider/util.d.ts.map +0 -1
  162. package/dist/types/src/components/EditorToolbar/actions.d.ts +0 -39
  163. package/dist/types/src/components/EditorToolbar/actions.d.ts.map +0 -1
  164. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +0 -11
  165. package/dist/types/src/components/EditorToolbar/useEditorToolbar.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 -17
  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 -20
  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/blocks.d.ts +0 -2
  209. package/dist/types/src/extensions/blocks.d.ts.map +0 -1
  210. package/dist/types/src/extensions/bookmarks.d.ts +0 -12
  211. package/dist/types/src/extensions/bookmarks.d.ts.map +0 -1
  212. package/dist/types/src/extensions/comments.d.ts +0 -95
  213. package/dist/types/src/extensions/comments.d.ts.map +0 -1
  214. package/dist/types/src/extensions/debug.d.ts +0 -3
  215. package/dist/types/src/extensions/debug.d.ts.map +0 -1
  216. package/dist/types/src/extensions/dnd.d.ts +0 -9
  217. package/dist/types/src/extensions/dnd.d.ts.map +0 -1
  218. package/dist/types/src/extensions/factories.d.ts +0 -83
  219. package/dist/types/src/extensions/factories.d.ts.map +0 -1
  220. package/dist/types/src/extensions/focus.d.ts +0 -7
  221. package/dist/types/src/extensions/focus.d.ts.map +0 -1
  222. package/dist/types/src/extensions/folding.d.ts +0 -7
  223. package/dist/types/src/extensions/folding.d.ts.map +0 -1
  224. package/dist/types/src/extensions/hashtag.d.ts +0 -3
  225. package/dist/types/src/extensions/hashtag.d.ts.map +0 -1
  226. package/dist/types/src/extensions/json.d.ts +0 -7
  227. package/dist/types/src/extensions/json.d.ts.map +0 -1
  228. package/dist/types/src/extensions/listener.d.ts +0 -13
  229. package/dist/types/src/extensions/listener.d.ts.map +0 -1
  230. package/dist/types/src/extensions/markdown/action.d.ts +0 -12
  231. package/dist/types/src/extensions/markdown/action.d.ts.map +0 -1
  232. package/dist/types/src/extensions/markdown/bundle.d.ts +0 -22
  233. package/dist/types/src/extensions/markdown/bundle.d.ts.map +0 -1
  234. package/dist/types/src/extensions/markdown/changes.d.ts +0 -10
  235. package/dist/types/src/extensions/markdown/changes.d.ts.map +0 -1
  236. package/dist/types/src/extensions/markdown/changes.test.d.ts +0 -2
  237. package/dist/types/src/extensions/markdown/changes.test.d.ts.map +0 -1
  238. package/dist/types/src/extensions/markdown/debug.d.ts +0 -11
  239. package/dist/types/src/extensions/markdown/debug.d.ts.map +0 -1
  240. package/dist/types/src/extensions/markdown/decorate.d.ts +0 -25
  241. package/dist/types/src/extensions/markdown/decorate.d.ts.map +0 -1
  242. package/dist/types/src/extensions/markdown/formatting.d.ts +0 -61
  243. package/dist/types/src/extensions/markdown/formatting.d.ts.map +0 -1
  244. package/dist/types/src/extensions/markdown/formatting.test.d.ts +0 -3
  245. package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +0 -1
  246. package/dist/types/src/extensions/markdown/highlight.d.ts +0 -37
  247. package/dist/types/src/extensions/markdown/highlight.d.ts.map +0 -1
  248. package/dist/types/src/extensions/markdown/image.d.ts +0 -7
  249. package/dist/types/src/extensions/markdown/image.d.ts.map +0 -1
  250. package/dist/types/src/extensions/markdown/index.d.ts +0 -10
  251. package/dist/types/src/extensions/markdown/index.d.ts.map +0 -1
  252. package/dist/types/src/extensions/markdown/link.d.ts +0 -7
  253. package/dist/types/src/extensions/markdown/link.d.ts.map +0 -1
  254. package/dist/types/src/extensions/markdown/parser.test.d.ts +0 -2
  255. package/dist/types/src/extensions/markdown/parser.test.d.ts.map +0 -1
  256. package/dist/types/src/extensions/markdown/styles.d.ts +0 -4
  257. package/dist/types/src/extensions/markdown/styles.d.ts.map +0 -1
  258. package/dist/types/src/extensions/markdown/table.d.ts +0 -8
  259. package/dist/types/src/extensions/markdown/table.d.ts.map +0 -1
  260. package/dist/types/src/extensions/mention.d.ts +0 -7
  261. package/dist/types/src/extensions/mention.d.ts.map +0 -1
  262. package/dist/types/src/extensions/modal.d.ts +0 -7
  263. package/dist/types/src/extensions/modal.d.ts.map +0 -1
  264. package/dist/types/src/extensions/modes.d.ts +0 -10
  265. package/dist/types/src/extensions/modes.d.ts.map +0 -1
  266. package/dist/types/src/extensions/outliner/commands.d.ts +0 -10
  267. package/dist/types/src/extensions/outliner/commands.d.ts.map +0 -1
  268. package/dist/types/src/extensions/outliner/editor.d.ts +0 -5
  269. package/dist/types/src/extensions/outliner/editor.d.ts.map +0 -1
  270. package/dist/types/src/extensions/outliner/editor.test.d.ts +0 -2
  271. package/dist/types/src/extensions/outliner/editor.test.d.ts.map +0 -1
  272. package/dist/types/src/extensions/outliner/index.d.ts +0 -4
  273. package/dist/types/src/extensions/outliner/index.d.ts.map +0 -1
  274. package/dist/types/src/extensions/outliner/menu.d.ts +0 -8
  275. package/dist/types/src/extensions/outliner/menu.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/replacer.d.ts +0 -21
  291. package/dist/types/src/extensions/replacer.d.ts.map +0 -1
  292. package/dist/types/src/extensions/replacer.test.d.ts +0 -2
  293. package/dist/types/src/extensions/replacer.test.d.ts.map +0 -1
  294. package/dist/types/src/extensions/scrolling.d.ts +0 -78
  295. package/dist/types/src/extensions/scrolling.d.ts.map +0 -1
  296. package/dist/types/src/extensions/selection.d.ts +0 -24
  297. package/dist/types/src/extensions/selection.d.ts.map +0 -1
  298. package/dist/types/src/extensions/state.d.ts +0 -2
  299. package/dist/types/src/extensions/state.d.ts.map +0 -1
  300. package/dist/types/src/extensions/submit.d.ts +0 -10
  301. package/dist/types/src/extensions/submit.d.ts.map +0 -1
  302. package/dist/types/src/extensions/tab.d.ts +0 -4
  303. package/dist/types/src/extensions/tab.d.ts.map +0 -1
  304. package/dist/types/src/extensions/tags/extended-markdown.d.ts +0 -10
  305. package/dist/types/src/extensions/tags/extended-markdown.d.ts.map +0 -1
  306. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts +0 -2
  307. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts.map +0 -1
  308. package/dist/types/src/extensions/tags/index.d.ts +0 -4
  309. package/dist/types/src/extensions/tags/index.d.ts.map +0 -1
  310. package/dist/types/src/extensions/tags/streamer.d.ts +0 -12
  311. package/dist/types/src/extensions/tags/streamer.d.ts.map +0 -1
  312. package/dist/types/src/extensions/tags/xml-tags.d.ts +0 -97
  313. package/dist/types/src/extensions/tags/xml-tags.d.ts.map +0 -1
  314. package/dist/types/src/extensions/tags/xml-util.d.ts +0 -10
  315. package/dist/types/src/extensions/tags/xml-util.d.ts.map +0 -1
  316. package/dist/types/src/extensions/typewriter.d.ts +0 -10
  317. package/dist/types/src/extensions/typewriter.d.ts.map +0 -1
  318. package/dist/types/src/stories/CommandDialog.stories.d.ts +0 -14
  319. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +0 -1
  320. package/dist/types/src/styles/index.d.ts +0 -4
  321. package/dist/types/src/styles/index.d.ts.map +0 -1
  322. package/dist/types/src/styles/markdown.d.ts +0 -8
  323. package/dist/types/src/styles/markdown.d.ts.map +0 -1
  324. package/dist/types/src/styles/theme.d.ts +0 -38
  325. package/dist/types/src/styles/theme.d.ts.map +0 -1
  326. package/dist/types/src/styles/tokens.d.ts +0 -3
  327. package/dist/types/src/styles/tokens.d.ts.map +0 -1
  328. package/dist/types/src/types/index.d.ts +0 -2
  329. package/dist/types/src/types/index.d.ts.map +0 -1
  330. package/dist/types/src/types/types.d.ts +0 -21
  331. package/dist/types/src/types/types.d.ts.map +0 -1
  332. package/dist/types/src/util/cursor.d.ts +0 -31
  333. package/dist/types/src/util/cursor.d.ts.map +0 -1
  334. package/dist/types/src/util/debug.d.ts +0 -21
  335. package/dist/types/src/util/debug.d.ts.map +0 -1
  336. package/dist/types/src/util/decorations.d.ts +0 -4
  337. package/dist/types/src/util/decorations.d.ts.map +0 -1
  338. package/dist/types/src/util/dom.d.ts +0 -10
  339. package/dist/types/src/util/dom.d.ts.map +0 -1
  340. package/dist/types/src/util/facet.d.ts +0 -3
  341. package/dist/types/src/util/facet.d.ts.map +0 -1
  342. package/src/components/EditorContent/EditorContent.stories.tsx +0 -70
  343. package/src/components/EditorContent/EditorContent.tsx +0 -70
  344. package/src/components/EditorContent/index.ts +0 -6
  345. package/src/components/EditorMenuProvider/util.ts +0 -31
  346. package/src/components/EditorToolbar/actions.ts +0 -86
  347. package/src/components/EditorToolbar/useEditorToolbar.ts +0 -20
  348. package/src/defaults.ts +0 -52
  349. package/src/extensions/annotations.ts +0 -55
  350. package/src/extensions/autocomplete/autocomplete.ts +0 -151
  351. package/src/extensions/autocomplete/index.ts +0 -8
  352. package/src/extensions/autocomplete/match.ts +0 -46
  353. package/src/extensions/autocomplete/placeholder.ts +0 -117
  354. package/src/extensions/autocomplete/typeahead.ts +0 -87
  355. package/src/extensions/automerge/automerge.stories.tsx +0 -149
  356. package/src/extensions/automerge/automerge.test.tsx +0 -78
  357. package/src/extensions/automerge/automerge.ts +0 -105
  358. package/src/extensions/automerge/cursor.ts +0 -28
  359. package/src/extensions/automerge/defs.ts +0 -31
  360. package/src/extensions/automerge/index.ts +0 -5
  361. package/src/extensions/automerge/sync.ts +0 -79
  362. package/src/extensions/automerge/update-automerge.ts +0 -50
  363. package/src/extensions/automerge/update-codemirror.ts +0 -115
  364. package/src/extensions/autoscroll.ts +0 -163
  365. package/src/extensions/awareness/awareness-provider.ts +0 -127
  366. package/src/extensions/awareness/awareness.ts +0 -315
  367. package/src/extensions/awareness/index.ts +0 -6
  368. package/src/extensions/blast.ts +0 -363
  369. package/src/extensions/blocks.ts +0 -131
  370. package/src/extensions/bookmarks.ts +0 -75
  371. package/src/extensions/comments.ts +0 -598
  372. package/src/extensions/debug.ts +0 -15
  373. package/src/extensions/dnd.ts +0 -37
  374. package/src/extensions/factories.ts +0 -278
  375. package/src/extensions/focus.ts +0 -36
  376. package/src/extensions/folding.tsx +0 -43
  377. package/src/extensions/hashtag.tsx +0 -68
  378. package/src/extensions/json.ts +0 -57
  379. package/src/extensions/listener.ts +0 -32
  380. package/src/extensions/markdown/action.ts +0 -117
  381. package/src/extensions/markdown/bundle.ts +0 -105
  382. package/src/extensions/markdown/changes.test.ts +0 -26
  383. package/src/extensions/markdown/changes.ts +0 -149
  384. package/src/extensions/markdown/debug.ts +0 -44
  385. package/src/extensions/markdown/decorate.ts +0 -601
  386. package/src/extensions/markdown/formatting.test.ts +0 -498
  387. package/src/extensions/markdown/formatting.ts +0 -1265
  388. package/src/extensions/markdown/highlight.ts +0 -183
  389. package/src/extensions/markdown/image.ts +0 -118
  390. package/src/extensions/markdown/index.ts +0 -13
  391. package/src/extensions/markdown/link.ts +0 -50
  392. package/src/extensions/markdown/parser.test.ts +0 -75
  393. package/src/extensions/markdown/styles.ts +0 -135
  394. package/src/extensions/markdown/table.ts +0 -150
  395. package/src/extensions/mention.ts +0 -41
  396. package/src/extensions/modal.ts +0 -24
  397. package/src/extensions/modes.ts +0 -41
  398. package/src/extensions/outliner/commands.ts +0 -270
  399. package/src/extensions/outliner/editor.test.ts +0 -33
  400. package/src/extensions/outliner/editor.ts +0 -184
  401. package/src/extensions/outliner/index.ts +0 -7
  402. package/src/extensions/outliner/menu.ts +0 -128
  403. package/src/extensions/outliner/outliner.test.ts +0 -100
  404. package/src/extensions/outliner/outliner.ts +0 -167
  405. package/src/extensions/outliner/selection.ts +0 -50
  406. package/src/extensions/outliner/tree.test.ts +0 -168
  407. package/src/extensions/outliner/tree.ts +0 -317
  408. package/src/extensions/preview/index.ts +0 -5
  409. package/src/extensions/preview/preview.ts +0 -193
  410. package/src/extensions/replacer.test.ts +0 -75
  411. package/src/extensions/replacer.ts +0 -93
  412. package/src/extensions/scrolling.ts +0 -189
  413. package/src/extensions/selection.ts +0 -100
  414. package/src/extensions/state.ts +0 -7
  415. package/src/extensions/submit.ts +0 -62
  416. package/src/extensions/tab.ts +0 -29
  417. package/src/extensions/tags/extended-markdown.test.ts +0 -262
  418. package/src/extensions/tags/extended-markdown.ts +0 -78
  419. package/src/extensions/tags/index.ts +0 -7
  420. package/src/extensions/tags/streamer.ts +0 -243
  421. package/src/extensions/tags/xml-tags.ts +0 -500
  422. package/src/extensions/tags/xml-util.ts +0 -94
  423. package/src/extensions/typewriter.ts +0 -68
  424. package/src/stories/CommandDialog.stories.tsx +0 -83
  425. package/src/styles/index.ts +0 -7
  426. package/src/styles/markdown.ts +0 -26
  427. package/src/styles/theme.ts +0 -269
  428. package/src/styles/tokens.ts +0 -17
  429. package/src/types/index.ts +0 -5
  430. package/src/types/types.ts +0 -32
  431. package/src/util/cursor.ts +0 -56
  432. package/src/util/debug.ts +0 -69
  433. package/src/util/decorations.ts +0 -21
  434. package/src/util/dom.ts +0 -34
  435. package/src/util/facet.ts +0 -13
  436. /package/dist/types/src/components/{EditorContent → Editor}/controller.d.ts +0 -0
@@ -5,30 +5,27 @@
5
5
  import { type EditorView } from '@codemirror/view';
6
6
  import React, { type ReactNode, forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
7
7
 
8
- import { createDocAccessor, createObject } from '@dxos/client/echo';
9
- import { Expando } from '@dxos/echo/internal';
10
- import { live } from '@dxos/echo/internal';
8
+ import { Obj } from '@dxos/echo';
9
+ import { TestSchema } from '@dxos/echo/testing';
11
10
  import { invariant } from '@dxos/invariant';
12
11
  import { PublicKey } from '@dxos/keys';
13
12
  import { log } from '@dxos/log';
14
13
  import { useMergeRefs, useThemeContext } from '@dxos/react-ui';
15
14
  import { useAttentionAttributes } from '@dxos/react-ui-attention';
16
- import { JsonFilter } from '@dxos/react-ui-syntax-highlighter';
17
- import { mx } from '@dxos/react-ui-theme';
18
- import { isNonNullable } from '@dxos/util';
19
-
20
- import { type EditorController, createEditorController } from '../../components';
21
- import { editorGutter, editorSlots } from '../../defaults';
15
+ import { Syntax } from '@dxos/react-ui-syntax-highlighter';
22
16
  import {
23
17
  type DebugNode,
24
18
  type ThemeExtensionsOptions,
25
19
  createBasicExtensions,
26
- createDataExtensions,
27
20
  createMarkdownExtensions,
28
21
  createThemeExtensions,
29
22
  debugTree,
30
- decorateMarkdown,
31
- } from '../../extensions';
23
+ documentSlots,
24
+ } from '@dxos/ui-editor';
25
+ import { mx } from '@dxos/ui-theme';
26
+ import { isNonNullable } from '@dxos/util';
27
+
28
+ import { type EditorController, createEditorController } from '../../components';
32
29
  import { type UseTextEditorProps, useTextEditor } from '../../hooks';
33
30
 
34
31
  // Type definitions.
@@ -36,40 +33,41 @@ export type DebugMode = 'raw' | 'tree' | 'raw+tree';
36
33
 
37
34
  const defaultId = 'editor-' + PublicKey.random().toHex().slice(0, 8);
38
35
 
39
- export type StoryProps = Pick<UseTextEditorProps, 'id' | 'scrollTo' | 'selection' | 'extensions'> &
36
+ export type EditorStoryProps = Pick<UseTextEditorProps, 'id' | 'scrollTo' | 'selection' | 'extensions'> &
40
37
  Pick<ThemeExtensionsOptions, 'slots'> & {
41
38
  debug?: DebugMode;
42
39
  debugCustom?: (view: EditorView) => ReactNode;
43
40
  text?: string;
44
- object?: Expando;
41
+ object?: Obj.OfShape<TestSchema.Expando>;
45
42
  readOnly?: boolean;
46
43
  placeholder?: string;
47
44
  lineNumbers?: boolean;
45
+ monospace?: boolean;
48
46
  onReady?: (view: EditorView) => void;
49
47
  };
50
48
 
51
- export const EditorStory = forwardRef<EditorController, StoryProps>(
52
- ({ debug, debugCustom, text, extensions: extensionsParam, ...props }, forwardedRef) => {
49
+ export const EditorStory = forwardRef<EditorController, EditorStoryProps>(
50
+ ({ debug, debugCustom, text, extensions: extensionsProp, ...props }, forwardedRef) => {
53
51
  const controllerRef = useRef<EditorController>(null);
54
52
  const mergedRef = useMergeRefs([controllerRef, forwardedRef]);
55
53
 
56
54
  const attentionAttrs = useAttentionAttributes('test-panel');
57
55
  const [tree, setTree] = useState<DebugNode>();
58
- const [object] = useState(createObject(live(Expando, { content: text ?? '' })));
56
+ const [object] = useState(Obj.make(TestSchema.Expando, { content: text ?? '' }));
59
57
 
60
58
  const extensions = useMemo(
61
- () => (debug ? [extensionsParam, debugTree(setTree)].filter(isNonNullable) : extensionsParam),
62
- [debug, extensionsParam],
59
+ () => (debug ? [extensionsProp, debugTree(setTree)].filter(isNonNullable) : extensionsProp),
60
+ [debug, extensionsProp],
63
61
  );
64
62
 
65
63
  const view = controllerRef.current?.view;
66
64
  return (
67
- <div className={mx('is-full bs-full grid overflow-hidden', debug && 'grid-cols-2 lg:grid-cols-[1fr_600px]')}>
65
+ <div className={mx('dx-container grid', debug && 'grid-cols-2 lg:grid-cols-[1fr_600px]')}>
68
66
  <EditorComponent ref={mergedRef} object={object} text={text} extensions={extensions} {...props} />
69
67
 
70
68
  {debug && (
71
69
  <div
72
- className='grid bs-full auto-rows-fr border-l border-separator divide-y divide-separator overflow-hidden'
70
+ className='grid h-full auto-rows-fr border-l border-separator divide-y divide-separator overflow-hidden'
73
71
  {...attentionAttrs}
74
72
  >
75
73
  {view && debugCustom?.(view)}
@@ -78,7 +76,16 @@ export const EditorStory = forwardRef<EditorController, StoryProps>(
78
76
  {view?.state.doc.toString()}
79
77
  </pre>
80
78
  )}
81
- {(debug === 'tree' || debug === 'raw+tree') && <JsonFilter data={tree} classNames='p-1 text-xs' />}
79
+ {(debug === 'tree' || debug === 'raw+tree') && (
80
+ <Syntax.Root data={tree}>
81
+ <Syntax.Content>
82
+ <Syntax.Filter />
83
+ <Syntax.Viewport>
84
+ <Syntax.Code classNames='p-1 text-xs' />
85
+ </Syntax.Viewport>
86
+ </Syntax.Content>
87
+ </Syntax.Root>
88
+ )}
82
89
  </div>
83
90
  )}
84
91
  </div>
@@ -88,10 +95,8 @@ export const EditorStory = forwardRef<EditorController, StoryProps>(
88
95
 
89
96
  /**
90
97
  * Default story component.
91
- * @deprecated
92
98
  */
93
- // TODO(burdon): Replace with <Editor.Root>
94
- export const EditorComponent = forwardRef<EditorController, StoryProps>(
99
+ const EditorComponent = forwardRef<EditorController, EditorStoryProps>(
95
100
  (
96
101
  {
97
102
  id = defaultId,
@@ -100,10 +105,11 @@ export const EditorComponent = forwardRef<EditorController, StoryProps>(
100
105
  readOnly,
101
106
  placeholder = 'New document.',
102
107
  lineNumbers,
108
+ monospace,
103
109
  scrollTo,
104
110
  selection,
105
111
  extensions,
106
- slots = editorSlots,
112
+ slots = documentSlots,
107
113
  onReady,
108
114
  },
109
115
  forwardedRef,
@@ -118,12 +124,9 @@ export const EditorComponent = forwardRef<EditorController, StoryProps>(
118
124
  selection,
119
125
  initialValue: text,
120
126
  extensions: [
121
- createDataExtensions({ id, text: createDocAccessor(object, ['content']) }),
122
127
  createBasicExtensions({ readOnly, placeholder, lineNumbers, scrollPastEnd: true, search: true }),
128
+ createThemeExtensions({ monospace, themeMode, syntaxHighlighting: true, slots }),
123
129
  createMarkdownExtensions(),
124
- createThemeExtensions({ themeMode, syntaxHighlighting: true, slots }),
125
- decorateMarkdown(),
126
- editorGutter,
127
130
  extensions || [],
128
131
  ],
129
132
  }),
@@ -4,12 +4,9 @@
4
4
 
5
5
  import { type Completion } from '@codemirror/autocomplete';
6
6
  import { type Extension } from '@codemirror/state';
7
- import React, { type FC } from 'react';
8
-
9
- import { faker } from '@dxos/random';
10
- import { Icon } from '@dxos/react-ui';
11
- import { mx } from '@dxos/react-ui-theme';
12
7
 
8
+ import { random } from '@dxos/random';
9
+ import { Domino } from '@dxos/ui';
13
10
  import {
14
11
  type EditorSelectionState,
15
12
  decorateMarkdown,
@@ -18,10 +15,13 @@ import {
18
15
  image,
19
16
  linkTooltip,
20
17
  table,
21
- } from '../../extensions';
22
- import { createRenderer, str } from '../../util';
18
+ } from '@dxos/ui-editor';
19
+ import { type RenderCallback } from '@dxos/ui-editor/types';
20
+ import { safeUrl } from '@dxos/util';
21
+
22
+ import { str } from '../../util';
23
23
 
24
- export const num = () => faker.number.int({ min: 0, max: 9999 }).toLocaleString();
24
+ export const num = () => random.number.int({ min: 0, max: 9999 }).toLocaleString();
25
25
 
26
26
  export const img = '![dxos](https://dxos.network/dxos-logotype-blue.png)';
27
27
 
@@ -41,11 +41,11 @@ export const content = {
41
41
  // prettier-ignore
42
42
  '### TaskList',
43
43
  '',
44
- `- [x] ${faker.lorem.sentences()}`,
45
- `- [ ] ${faker.lorem.sentences()}`,
46
- ` - [ ] ${faker.lorem.sentences()}`,
47
- ` - [ ] ${faker.lorem.sentences()}`,
48
- ` - [x] ${faker.lorem.sentences()}`,
44
+ `- [x] ${random.lorem.sentences()}`,
45
+ `- [ ] ${random.lorem.sentences()}`,
46
+ ` - [ ] ${random.lorem.sentences()}`,
47
+ ` - [ ] ${random.lorem.sentences()}`,
48
+ ` - [x] ${random.lorem.sentences()}`,
49
49
  '',
50
50
  ),
51
51
 
@@ -53,11 +53,11 @@ export const content = {
53
53
  // prettier-ignore
54
54
  '### BulletList',
55
55
  '',
56
- `- ${faker.lorem.sentences()}`,
57
- `- ${faker.lorem.sentences()}`,
58
- ` - ${faker.lorem.sentences()}`,
59
- ` - ${faker.lorem.sentences()}`,
60
- `- ${faker.lorem.sentences()}`,
56
+ `- ${random.lorem.sentences()}`,
57
+ `- ${random.lorem.sentences()}`,
58
+ ` - ${random.lorem.sentences()}`,
59
+ ` - ${random.lorem.sentences()}`,
60
+ `- ${random.lorem.sentences()}`,
61
61
  '',
62
62
  ),
63
63
 
@@ -65,17 +65,17 @@ export const content = {
65
65
  // prettier-ignore
66
66
  '### OrderedList (part 1)',
67
67
  '',
68
- `1. ${faker.lorem.sentences()}`,
69
- `1. ${faker.lorem.sentences()}`,
70
- `1. ${faker.lorem.sentences()}`,
71
- ` 1. ${faker.lorem.sentences()}`,
72
- ` 1. ${faker.lorem.sentences()}`,
73
- ` 1. ${faker.lorem.sentences()}`,
74
- `1. ${faker.lorem.sentences()}`,
68
+ `1. ${random.lorem.sentences()}`,
69
+ `1. ${random.lorem.sentences()}`,
70
+ `1. ${random.lorem.sentences()}`,
71
+ ` 1. ${random.lorem.sentences()}`,
72
+ ` 1. ${random.lorem.sentences()}`,
73
+ ` 1. ${random.lorem.sentences()}`,
74
+ `1. ${random.lorem.sentences()}`,
75
75
  '',
76
76
  '### OrderedList (part 2)',
77
77
  '',
78
- `1. ${faker.lorem.sentences()}`,
78
+ `1. ${random.lorem.sentences()}`,
79
79
  '',
80
80
  ),
81
81
 
@@ -123,7 +123,7 @@ export const content = {
123
123
  // prettier-ignore
124
124
  '### Tables',
125
125
  '',
126
- `| ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} |`,
126
+ `| ${random.lorem.word().padStart(12)} | ${random.lorem.word().padStart(12)} | ${random.lorem.word().padStart(12)} |`,
127
127
  `|-${''.padStart(12, '-')}-|-${''.padStart(12, '-')}-|-${''.padStart(12, '-')}-|`,
128
128
  `| ${num().padStart(12)} | ${num().padStart(12)} | ${num().padStart(12)} |`,
129
129
  `| ${num().padStart(12)} | ${num().padStart(12)} | ${num().padStart(12)} |`,
@@ -134,7 +134,9 @@ export const content = {
134
134
  image: str('### Image', '', img),
135
135
 
136
136
  headings: str(
137
- ...[1, 2, 3, 4, 5, 6].map((level) => ['#'.repeat(level) + ` Heading ${level}`, faker.lorem.sentences(), '']).flat(),
137
+ ...[1, 2, 3, 4, 5, 6]
138
+ .map((level) => ['#'.repeat(level) + ` Heading ${level}`, random.lorem.sentences(), ''])
139
+ .flat(),
138
140
  ),
139
141
 
140
142
  formatting: str(
@@ -159,7 +161,7 @@ export const content = {
159
161
  '',
160
162
  ),
161
163
 
162
- paragraphs: str(...faker.helpers.multiple(() => [faker.lorem.paragraph(), ''], { count: 3 }).flat()),
164
+ paragraphs: str(...random.helpers.multiple(() => [random.lorem.paragraph(), ''], { count: 3 }).flat()),
163
165
 
164
166
  footer: str('', '', '', '', ''),
165
167
  };
@@ -204,30 +206,27 @@ export const links: Completion[] = [
204
206
  export const names = ['adam', 'alice', 'alison', 'bob', 'carol', 'charlie', 'sayuri', 'shoko'];
205
207
 
206
208
  const hover =
207
- 'rounded-sm text-baseText text-primary-600 hover:text-primary-500 dark:text-primary-300 hover:dark:text-primary-200';
208
-
209
- const LinkTooltip: FC<{ url: string }> = ({ url }) => {
210
- const web = new URL(url);
211
- return (
212
- <a href={url} target='_blank' rel='noreferrer' className={mx(hover, 'flex items-center gap-2')}>
213
- {web.origin}
214
- <Icon icon='ph--arrow-square-out--regular' size={4} />
215
- </a>
209
+ 'rounded-xs text-base-fg text-primary-600 hover:text-primary-500 dark:text-primary-300 hover:dark:text-primary-200';
210
+
211
+ export const renderLinkTooltip: RenderCallback<{ url: string }> = (el, { url }) => {
212
+ el.appendChild(
213
+ Domino.of('a')
214
+ .attributes({ href: url, target: '_blank', rel: 'noreferrer', 'aria-label': 'Open link' })
215
+ .classNames(hover, 'flex items-center gap-2')
216
+ .text(safeUrl(url)?.toString() ?? url)
217
+ .append(Domino.svg('ph--arrow-square-out--regular')).root,
216
218
  );
217
219
  };
218
220
 
219
- export const renderLinkTooltip = createRenderer(LinkTooltip);
220
-
221
- const LinkButton: FC<{ url: string }> = ({ url }) => {
222
- return (
223
- <a href={url} target='_blank' rel='noreferrer' className={mx(hover)}>
224
- <Icon icon='ph--arrow-square-out--regular' size={4} classNames='inline-block mis-1 mb-[3px]' />
225
- </a>
221
+ export const renderLinkButton: RenderCallback<{ url: string }> = (el, { url }) => {
222
+ el.appendChild(
223
+ Domino.of('span')
224
+ .attributes({ 'aria-hidden': 'true' })
225
+ .classNames(hover, 'ms-1 inline-block align-[-0.125em]')
226
+ .append(Domino.svg('ph--arrow-square-out--regular')).root,
226
227
  );
227
228
  };
228
229
 
229
- export const renderLinkButton = createRenderer(LinkButton);
230
-
231
230
  // Shared extensions.
232
231
  export const defaultExtensions: Extension[] = [
233
232
  decorateMarkdown({ renderLinkButton, selectionChangeDelay: 100 }),
@@ -245,18 +244,18 @@ export const allExtensions: Extension[] = [
245
244
  ];
246
245
 
247
246
  // Long text for scrolling stories.
248
- export const longText = faker.helpers
249
- .multiple(() => faker.lorem.paragraph({ min: 8, max: 16 }), { count: 20 })
247
+ export const longText = random.helpers
248
+ .multiple(() => random.lorem.paragraph({ min: 8, max: 16 }), { count: 20 })
250
249
  .join('\n\n');
251
250
 
252
- export const largeWithImages = faker.helpers
253
- .multiple(() => [faker.lorem.paragraph({ min: 12, max: 16 }), img], { count: 20 })
251
+ export const largeWithImages = random.helpers
252
+ .multiple(() => [random.lorem.paragraph({ min: 12, max: 16 }), img], { count: 20 })
254
253
  .flatMap((x) => x)
255
254
  .join('\n\n');
256
255
 
257
256
  export const headings = str(
258
257
  ...[1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 2, 3, 3, 2, 2, 6, 1]
259
- .map((level) => ['#'.repeat(level) + ' ' + faker.lorem.sentence(3), faker.lorem.sentences(), ''])
258
+ .map((level) => ['#'.repeat(level) + ' ' + random.lorem.sentence(3), random.lorem.sentences(), ''])
260
259
  .flat(),
261
260
  );
262
261
 
@@ -4,36 +4,41 @@
4
4
 
5
5
  import { type Resource } from '@dxos/react-ui';
6
6
 
7
- export const translationKey = 'react-ui-editor';
7
+ export const translationKey = '@dxos/react-ui-editor';
8
8
 
9
9
  export const translations = [
10
10
  {
11
11
  'en-US': {
12
12
  [translationKey]: {
13
- 'strong label': 'Bold',
14
- 'emphasis label': 'Italics',
15
- 'strikethrough label': 'Strikethrough',
16
- 'code label': 'Code',
17
- 'link label': 'Link',
18
- 'list-bullet label': 'Bullet list',
19
- 'list-ordered label': 'Numbered list',
20
- 'list-task label': 'Task list',
21
- 'blockquote label': 'Block quote',
22
- 'codeblock label': 'Code block',
23
- 'comment label': 'Create comment',
24
- 'selection overlaps existing comment label': 'Selection overlaps existing comment',
25
- 'select text to comment label': 'Select text to comment',
26
- 'image label': 'Insert image',
27
- 'table label': 'Create table',
28
- 'heading label': 'Heading level',
29
- 'heading level label_zero': 'Paragraph',
30
- 'heading level label_one': 'Heading level {{count}}',
31
- 'heading level label_other': 'Heading level {{count}}',
32
- 'view mode label': 'Editor view',
33
- 'preview mode label': 'Live preview',
34
- 'readonly mode label': 'Read only',
35
- 'search label': 'Search',
36
- 'source mode label': 'Source',
13
+ 'comment.label': 'Create comment',
14
+ 'image.label': 'Insert image',
15
+ 'search.label': 'Search',
16
+
17
+ 'block.label': 'Block',
18
+ 'block.blockquote.label': 'Block quote',
19
+ 'block.codeblock.label': 'Code block',
20
+ 'block.table.label': 'Create table',
21
+
22
+ 'formatting.label': 'Formatting',
23
+ 'formatting.strong.label': 'Bold',
24
+ 'formatting.emphasis.label': 'Italics',
25
+ 'formatting.strikethrough.label': 'Strikethrough',
26
+ 'formatting.code.label': 'Code',
27
+ 'formatting.link.label': 'Link',
28
+
29
+ 'list.bullet.label': 'Bullet list',
30
+ 'list.ordered.label': 'Numbered list',
31
+ 'list.task.label': 'Task list',
32
+
33
+ 'heading.label': 'Heading level',
34
+ 'heading-level.label_zero': 'Paragraph',
35
+ 'heading-level.label_one': 'Heading level {{count}}',
36
+ 'heading-level.label_other': 'Heading level {{count}}',
37
+
38
+ 'view-mode.label': 'Editor view',
39
+ 'view-mode.preview.label': 'Markdown',
40
+ 'view-mode.source.label': 'Plain text',
41
+ 'view-mode.readonly.label': 'Read only',
37
42
  },
38
43
  },
39
44
  },
package/src/util/index.ts CHANGED
@@ -1,10 +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 './decorations';
7
- export * from './debug';
8
- export * from './dom';
9
- export * from './facet';
10
5
  export * from './react';
@@ -2,30 +2,25 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import React, { type FC, type ReactNode } from 'react';
5
+ import React, { type FC } 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 { defaultTx } from '@dxos/react-ui';
10
+ import { type RenderCallback } from '@dxos/ui-editor/types';
10
11
 
11
- import { type RenderCallback } from '../types';
12
-
13
- /** @deprecated */
14
- // TODO(wittjosiah): Replace with portals which are lighter weight and inherit context from the main react tree.
15
- export const renderRoot = <T extends Element>(root: T, node: ReactNode): T => {
16
- createRoot(root).render(<ThemeProvider tx={defaultTx}>{node}</ThemeProvider>);
17
- return root;
18
- };
12
+ /**
13
+ * @deprecated Use `trim` from `@dxos/util`.
14
+ */
15
+ export const str = (...lines: string[]) => lines.join('\n');
19
16
 
20
17
  /**
21
- * Utility to create a renderer for a React component.
22
18
  * @deprecated
23
19
  */
24
20
  export const createRenderer =
25
21
  <TProps extends object>(Component: FC<TProps>): RenderCallback<TProps> =>
26
22
  (el, props) => {
27
- renderRoot(
28
- el,
23
+ createRoot(el).render(
29
24
  <ThemeProvider tx={defaultTx}>
30
25
  <Tooltip.Provider>
31
26
  <Component {...props} />
@@ -1,22 +0,0 @@
1
- // src/types/types.ts
2
- import * as Schema from "effect/Schema";
3
- var EditorViewModes = [
4
- "preview",
5
- "readonly",
6
- "source"
7
- ];
8
- var EditorViewMode = Schema.Union(...EditorViewModes.map((mode) => Schema.Literal(mode)));
9
- var EditorInputModes = [
10
- "default",
11
- "vim",
12
- "vscode"
13
- ];
14
- var EditorInputMode = Schema.Union(...EditorInputModes.map((mode) => Schema.Literal(mode)));
15
-
16
- export {
17
- EditorViewModes,
18
- EditorViewMode,
19
- EditorInputModes,
20
- EditorInputMode
21
- };
22
- //# sourceMappingURL=chunk-HL3YF6WC.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport * as Schema from 'effect/Schema';\n\n// Runtime data structure.\nexport type Range = {\n from: number;\n to: number;\n};\n\n// Persistent data structure.\n// TODO(burdon): Rename annotation?\nexport type Comment = {\n id: string;\n cursor?: string;\n};\n\n/**\n * Callback that renders into a DOM element within the editor.\n */\nexport type RenderCallback<Props extends object> = (el: HTMLElement, props: Props, view: EditorView) => void;\n\nexport const EditorViewModes = ['preview', 'readonly', 'source'] as const;\nexport const EditorViewMode = Schema.Union(...EditorViewModes.map((mode) => Schema.Literal(mode)));\nexport type EditorViewMode = Schema.Schema.Type<typeof EditorViewMode>;\n\nexport const EditorInputModes = ['default', 'vim', 'vscode'] as const;\nexport const EditorInputMode = Schema.Union(...EditorInputModes.map((mode) => Schema.Literal(mode)));\nexport type EditorInputMode = Schema.Schema.Type<typeof EditorInputMode>;\n"],
5
- "mappings": ";AAKA,YAAYA,YAAY;AAoBjB,IAAMC,kBAAkB;EAAC;EAAW;EAAY;;AAChD,IAAMC,iBAAwBC,aAAK,GAAIF,gBAAgBG,IAAI,CAACC,SAAgBC,eAAQD,IAAAA,CAAAA,CAAAA;AAGpF,IAAME,mBAAmB;EAAC;EAAW;EAAO;;AAC5C,IAAMC,kBAAyBL,aAAK,GAAII,iBAAiBH,IAAI,CAACC,SAAgBC,eAAQD,IAAAA,CAAAA,CAAAA;",
6
- "names": ["Schema", "EditorViewModes", "EditorViewMode", "Union", "map", "mode", "Literal", "EditorInputModes", "EditorInputMode"]
7
- }
@@ -1,13 +0,0 @@
1
- import {
2
- EditorInputMode,
3
- EditorInputModes,
4
- EditorViewMode,
5
- EditorViewModes
6
- } from "../chunk-HL3YF6WC.mjs";
7
- export {
8
- EditorInputMode,
9
- EditorInputModes,
10
- EditorViewMode,
11
- EditorViewModes
12
- };
13
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,24 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/types/types.ts
4
- import * as Schema from "effect/Schema";
5
- var EditorViewModes = [
6
- "preview",
7
- "readonly",
8
- "source"
9
- ];
10
- var EditorViewMode = Schema.Union(...EditorViewModes.map((mode) => Schema.Literal(mode)));
11
- var EditorInputModes = [
12
- "default",
13
- "vim",
14
- "vscode"
15
- ];
16
- var EditorInputMode = Schema.Union(...EditorInputModes.map((mode) => Schema.Literal(mode)));
17
-
18
- export {
19
- EditorViewModes,
20
- EditorViewMode,
21
- EditorInputModes,
22
- EditorInputMode
23
- };
24
- //# sourceMappingURL=chunk-YJZGD3LY.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport * as Schema from 'effect/Schema';\n\n// Runtime data structure.\nexport type Range = {\n from: number;\n to: number;\n};\n\n// Persistent data structure.\n// TODO(burdon): Rename annotation?\nexport type Comment = {\n id: string;\n cursor?: string;\n};\n\n/**\n * Callback that renders into a DOM element within the editor.\n */\nexport type RenderCallback<Props extends object> = (el: HTMLElement, props: Props, view: EditorView) => void;\n\nexport const EditorViewModes = ['preview', 'readonly', 'source'] as const;\nexport const EditorViewMode = Schema.Union(...EditorViewModes.map((mode) => Schema.Literal(mode)));\nexport type EditorViewMode = Schema.Schema.Type<typeof EditorViewMode>;\n\nexport const EditorInputModes = ['default', 'vim', 'vscode'] as const;\nexport const EditorInputMode = Schema.Union(...EditorInputModes.map((mode) => Schema.Literal(mode)));\nexport type EditorInputMode = Schema.Schema.Type<typeof EditorInputMode>;\n"],
5
- "mappings": ";;;AAKA,YAAYA,YAAY;AAoBjB,IAAMC,kBAAkB;EAAC;EAAW;EAAY;;AAChD,IAAMC,iBAAwBC,aAAK,GAAIF,gBAAgBG,IAAI,CAACC,SAAgBC,eAAQD,IAAAA,CAAAA,CAAAA;AAGpF,IAAME,mBAAmB;EAAC;EAAW;EAAO;;AAC5C,IAAMC,kBAAyBL,aAAK,GAAII,iBAAiBH,IAAI,CAACC,SAAgBC,eAAQD,IAAAA,CAAAA,CAAAA;",
6
- "names": ["Schema", "EditorViewModes", "EditorViewMode", "Union", "map", "mode", "Literal", "EditorInputModes", "EditorInputMode"]
7
- }
@@ -1,14 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- EditorInputMode,
4
- EditorInputModes,
5
- EditorViewMode,
6
- EditorViewModes
7
- } from "../chunk-YJZGD3LY.mjs";
8
- export {
9
- EditorInputMode,
10
- EditorInputModes,
11
- EditorViewMode,
12
- EditorViewModes
13
- };
14
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditorContent.d.ts","sourceRoot":"","sources":["../../../../../src/components/EditorContent/EditorContent.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,aAAa,CAAC;AAErE,OAAO,EAAE,KAAK,gBAAgB,EAA0B,MAAM,cAAc,CAAC;AAE7E,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAC9C;IACE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,GAAG,kBAAkB,CACvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa;YAVd,MAAM;eACH,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;;;;;;;;;;;0CAkDrC,CAAC"}
@@ -1,26 +0,0 @@
1
- import { type StoryObj } from '@storybook/react-vite';
2
- import React from 'react';
3
- declare const meta: {
4
- title: string;
5
- component: React.ForwardRefExoticComponent<Omit<{
6
- value?: string;
7
- onChange?: (value: string) => void;
8
- } & Pick<import("@codemirror/state").EditorStateConfig, "extensions"> & {
9
- id?: string;
10
- doc?: import("@codemirror/state").Text;
11
- initialValue?: string;
12
- autoFocus?: boolean;
13
- scrollTo?: number;
14
- selection?: import("../..").EditorSelection;
15
- selectionEnd?: boolean;
16
- debug?: boolean;
17
- }, "className"> & {
18
- classNames?: import("@dxos/react-ui-types").ClassNameValue;
19
- } & React.RefAttributes<import("./controller").EditorController>>;
20
- decorators: import("@storybook/react").Decorator[];
21
- };
22
- export default meta;
23
- type Story = StoryObj<typeof meta>;
24
- export declare const Default: Story;
25
- export declare const Automerge: Story;
26
- //# sourceMappingURL=EditorContent.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditorContent.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/EditorContent/EditorContent.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;CAI4B,CAAC;AAEvC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAmBrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAqBvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../../src/components/EditorContent/controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,EAAE,gBAO5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,MAAM,UAAU,GAAG,IAAI,KAAG,gBA2BhE,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './controller';
2
- export * from './EditorContent';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/EditorContent/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -1,8 +0,0 @@
1
- import { type EditorView } from '@codemirror/view';
2
- export declare const insertAtCursor: (view: EditorView, from: number, insert: string) => void;
3
- /**
4
- * If the cursor is at the start of a line, insert the text at the cursor.
5
- * Otherwise, insert the text on a new line.
6
- */
7
- export declare const insertAtLineStart: (view: EditorView, from: number, insert: string) => void;
8
- //# sourceMappingURL=util.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../../src/components/EditorMenuProvider/util.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,eAAO,MAAM,cAAc,GAAI,MAAM,UAAU,EAAE,MAAM,MAAM,EAAE,QAAQ,MAAM,SAK5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,UAAU,EAAE,MAAM,MAAM,EAAE,QAAQ,MAAM,SAW/E,CAAC"}