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

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 (435) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/browser/index.mjs +1080 -8837
  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 +1080 -8836
  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 +2 -4
  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 +2 -2
  27. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -1
  28. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -1
  29. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +1 -1
  30. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -1
  31. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +8 -6
  32. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  33. package/dist/types/src/components/EditorToolbar/blocks.d.ts +4 -17
  34. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  35. package/dist/types/src/components/EditorToolbar/formatting.d.ts +4 -17
  36. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  37. package/dist/types/src/components/EditorToolbar/headings.d.ts +4 -17
  38. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  39. package/dist/types/src/components/EditorToolbar/image.d.ts +3 -15
  40. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  41. package/dist/types/src/components/EditorToolbar/index.d.ts +1 -2
  42. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  43. package/dist/types/src/components/EditorToolbar/lists.d.ts +6 -0
  44. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -0
  45. package/dist/types/src/components/EditorToolbar/search.d.ts +3 -15
  46. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  47. package/dist/types/src/components/EditorToolbar/types.d.ts +6 -0
  48. package/dist/types/src/components/EditorToolbar/types.d.ts.map +1 -0
  49. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +5 -18
  50. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  51. package/dist/types/src/components/index.d.ts +0 -2
  52. package/dist/types/src/components/index.d.ts.map +1 -1
  53. package/dist/types/src/extensions/Assistant.stories.d.ts +10 -0
  54. package/dist/types/src/extensions/Assistant.stories.d.ts.map +1 -0
  55. package/dist/types/src/extensions/assistant-extension.d.ts +24 -0
  56. package/dist/types/src/extensions/assistant-extension.d.ts.map +1 -0
  57. package/dist/types/src/extensions/index.d.ts +1 -31
  58. package/dist/types/src/extensions/index.d.ts.map +1 -1
  59. package/dist/types/src/hooks/index.d.ts +1 -0
  60. package/dist/types/src/hooks/index.d.ts.map +1 -1
  61. package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts +25 -0
  62. package/dist/types/src/hooks/useBasicMarkdownExtensions.d.ts.map +1 -0
  63. package/dist/types/src/hooks/useTextEditor.d.ts +1 -1
  64. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  65. package/dist/types/src/index.d.ts +0 -9
  66. package/dist/types/src/index.d.ts.map +1 -1
  67. package/dist/types/src/stories/Automerge.stories.d.ts +44 -0
  68. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -0
  69. package/dist/types/src/stories/Comments.stories.d.ts +3 -2
  70. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  71. package/dist/types/src/stories/EditorToolbar.stories.d.ts +29 -27
  72. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  73. package/dist/types/src/stories/Experimental.stories.d.ts +4 -3
  74. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  75. package/dist/types/src/stories/Markdown.stories.d.ts +3 -2
  76. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  77. package/dist/types/src/stories/Outliner.stories.d.ts +2 -2
  78. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  79. package/dist/types/src/stories/Popover.stories.d.ts +2 -2
  80. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -1
  81. package/dist/types/src/stories/Preview.stories.d.ts +3 -2
  82. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  83. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
  84. package/dist/types/src/stories/TextEditor.stories.d.ts +3 -2
  85. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  86. package/dist/types/src/stories/Theme.stories.d.ts +8 -0
  87. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -0
  88. package/dist/types/src/stories/components/EditorStory.d.ts +9 -20
  89. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  90. package/dist/types/src/stories/components/util.d.ts +4 -3
  91. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  92. package/dist/types/src/translations.d.ts +26 -26
  93. package/dist/types/src/translations.d.ts.map +1 -1
  94. package/dist/types/src/util/index.d.ts +0 -5
  95. package/dist/types/src/util/index.d.ts.map +1 -1
  96. package/dist/types/src/util/react.d.ts +6 -5
  97. package/dist/types/src/util/react.d.ts.map +1 -1
  98. package/dist/types/tsconfig.tsbuildinfo +1 -1
  99. package/package.json +79 -71
  100. package/src/components/Editor/Editor.stories.tsx +26 -26
  101. package/src/components/Editor/Editor.tsx +67 -55
  102. package/src/components/Editor/EditorView.tsx +102 -0
  103. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +23 -30
  104. package/src/components/EditorMenuProvider/index.ts +0 -1
  105. package/src/components/EditorMenuProvider/menu-presets.ts +3 -1
  106. package/src/components/EditorMenuProvider/menu.ts +1 -2
  107. package/src/components/EditorMenuProvider/popover.ts +3 -3
  108. package/src/components/EditorMenuProvider/useEditorMenu.ts +9 -4
  109. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +6 -9
  110. package/src/components/EditorToolbar/EditorToolbar.tsx +37 -68
  111. package/src/components/EditorToolbar/blocks.ts +55 -48
  112. package/src/components/EditorToolbar/formatting.ts +44 -46
  113. package/src/components/EditorToolbar/headings.ts +45 -51
  114. package/src/components/EditorToolbar/image.ts +16 -14
  115. package/src/components/EditorToolbar/index.ts +2 -3
  116. package/src/components/EditorToolbar/lists.ts +58 -0
  117. package/src/components/EditorToolbar/search.ts +16 -14
  118. package/src/components/EditorToolbar/types.ts +8 -0
  119. package/src/components/EditorToolbar/view-mode.ts +37 -43
  120. package/src/components/index.ts +0 -5
  121. package/src/extensions/Assistant.stories.tsx +112 -0
  122. package/src/extensions/assistant-extension.tsx +223 -0
  123. package/src/extensions/index.ts +2 -32
  124. package/src/hooks/index.ts +1 -0
  125. package/src/hooks/useBasicMarkdownExtensions.ts +55 -0
  126. package/src/hooks/useTextEditor.ts +9 -3
  127. package/src/index.ts +0 -13
  128. package/src/stories/Automerge.stories.tsx +177 -0
  129. package/src/stories/Comments.stories.tsx +48 -43
  130. package/src/stories/EditorToolbar.stories.tsx +40 -53
  131. package/src/stories/Experimental.stories.tsx +14 -16
  132. package/src/stories/Markdown.stories.tsx +16 -16
  133. package/src/stories/Outliner.stories.tsx +8 -10
  134. package/src/stories/Popover.stories.tsx +27 -32
  135. package/src/stories/Preview.stories.tsx +67 -53
  136. package/src/stories/Tags.stories.tsx +24 -15
  137. package/src/stories/TextEditor.stories.tsx +13 -19
  138. package/src/stories/Theme.stories.tsx +61 -0
  139. package/src/stories/components/EditorStory.tsx +33 -30
  140. package/src/stories/components/util.tsx +51 -52
  141. package/src/translations.ts +30 -25
  142. package/src/util/index.ts +1 -6
  143. package/src/util/react.tsx +8 -13
  144. package/dist/lib/browser/chunk-HL3YF6WC.mjs +0 -22
  145. package/dist/lib/browser/chunk-HL3YF6WC.mjs.map +0 -7
  146. package/dist/lib/browser/types/index.mjs +0 -13
  147. package/dist/lib/browser/types/index.mjs.map +0 -7
  148. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs +0 -24
  149. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs.map +0 -7
  150. package/dist/lib/node-esm/types/index.mjs +0 -14
  151. package/dist/lib/node-esm/types/index.mjs.map +0 -7
  152. package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +0 -1
  153. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts +0 -26
  154. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts.map +0 -1
  155. package/dist/types/src/components/EditorContent/controller.d.ts.map +0 -1
  156. package/dist/types/src/components/EditorContent/index.d.ts +0 -3
  157. package/dist/types/src/components/EditorContent/index.d.ts.map +0 -1
  158. package/dist/types/src/components/EditorMenuProvider/util.d.ts +0 -8
  159. package/dist/types/src/components/EditorMenuProvider/util.d.ts.map +0 -1
  160. package/dist/types/src/components/EditorToolbar/actions.d.ts +0 -39
  161. package/dist/types/src/components/EditorToolbar/actions.d.ts.map +0 -1
  162. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +0 -11
  163. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +0 -1
  164. package/dist/types/src/defaults.d.ts +0 -14
  165. package/dist/types/src/defaults.d.ts.map +0 -1
  166. package/dist/types/src/extensions/annotations.d.ts +0 -9
  167. package/dist/types/src/extensions/annotations.d.ts.map +0 -1
  168. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts +0 -17
  169. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts.map +0 -1
  170. package/dist/types/src/extensions/autocomplete/index.d.ts +0 -5
  171. package/dist/types/src/extensions/autocomplete/index.d.ts.map +0 -1
  172. package/dist/types/src/extensions/autocomplete/match.d.ts +0 -13
  173. package/dist/types/src/extensions/autocomplete/match.d.ts.map +0 -1
  174. package/dist/types/src/extensions/autocomplete/placeholder.d.ts +0 -20
  175. package/dist/types/src/extensions/autocomplete/placeholder.d.ts.map +0 -1
  176. package/dist/types/src/extensions/autocomplete/typeahead.d.ts +0 -10
  177. package/dist/types/src/extensions/autocomplete/typeahead.d.ts.map +0 -1
  178. package/dist/types/src/extensions/automerge/automerge.d.ts +0 -4
  179. package/dist/types/src/extensions/automerge/automerge.d.ts.map +0 -1
  180. package/dist/types/src/extensions/automerge/automerge.stories.d.ts +0 -47
  181. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +0 -1
  182. package/dist/types/src/extensions/automerge/automerge.test.d.ts +0 -2
  183. package/dist/types/src/extensions/automerge/automerge.test.d.ts.map +0 -1
  184. package/dist/types/src/extensions/automerge/cursor.d.ts +0 -4
  185. package/dist/types/src/extensions/automerge/cursor.d.ts.map +0 -1
  186. package/dist/types/src/extensions/automerge/defs.d.ts +0 -17
  187. package/dist/types/src/extensions/automerge/defs.d.ts.map +0 -1
  188. package/dist/types/src/extensions/automerge/index.d.ts +0 -2
  189. package/dist/types/src/extensions/automerge/index.d.ts.map +0 -1
  190. package/dist/types/src/extensions/automerge/sync.d.ts +0 -17
  191. package/dist/types/src/extensions/automerge/sync.d.ts.map +0 -1
  192. package/dist/types/src/extensions/automerge/update-automerge.d.ts +0 -6
  193. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +0 -1
  194. package/dist/types/src/extensions/automerge/update-codemirror.d.ts +0 -5
  195. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +0 -1
  196. package/dist/types/src/extensions/autoscroll.d.ts +0 -20
  197. package/dist/types/src/extensions/autoscroll.d.ts.map +0 -1
  198. package/dist/types/src/extensions/awareness/awareness-provider.d.ts +0 -31
  199. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +0 -1
  200. package/dist/types/src/extensions/awareness/awareness.d.ts +0 -46
  201. package/dist/types/src/extensions/awareness/awareness.d.ts.map +0 -1
  202. package/dist/types/src/extensions/awareness/index.d.ts +0 -3
  203. package/dist/types/src/extensions/awareness/index.d.ts.map +0 -1
  204. package/dist/types/src/extensions/blast.d.ts +0 -25
  205. package/dist/types/src/extensions/blast.d.ts.map +0 -1
  206. package/dist/types/src/extensions/blocks.d.ts +0 -2
  207. package/dist/types/src/extensions/blocks.d.ts.map +0 -1
  208. package/dist/types/src/extensions/bookmarks.d.ts +0 -12
  209. package/dist/types/src/extensions/bookmarks.d.ts.map +0 -1
  210. package/dist/types/src/extensions/comments.d.ts +0 -95
  211. package/dist/types/src/extensions/comments.d.ts.map +0 -1
  212. package/dist/types/src/extensions/debug.d.ts +0 -3
  213. package/dist/types/src/extensions/debug.d.ts.map +0 -1
  214. package/dist/types/src/extensions/dnd.d.ts +0 -9
  215. package/dist/types/src/extensions/dnd.d.ts.map +0 -1
  216. package/dist/types/src/extensions/factories.d.ts +0 -83
  217. package/dist/types/src/extensions/factories.d.ts.map +0 -1
  218. package/dist/types/src/extensions/focus.d.ts +0 -7
  219. package/dist/types/src/extensions/focus.d.ts.map +0 -1
  220. package/dist/types/src/extensions/folding.d.ts +0 -7
  221. package/dist/types/src/extensions/folding.d.ts.map +0 -1
  222. package/dist/types/src/extensions/hashtag.d.ts +0 -3
  223. package/dist/types/src/extensions/hashtag.d.ts.map +0 -1
  224. package/dist/types/src/extensions/json.d.ts +0 -7
  225. package/dist/types/src/extensions/json.d.ts.map +0 -1
  226. package/dist/types/src/extensions/listener.d.ts +0 -13
  227. package/dist/types/src/extensions/listener.d.ts.map +0 -1
  228. package/dist/types/src/extensions/markdown/action.d.ts +0 -12
  229. package/dist/types/src/extensions/markdown/action.d.ts.map +0 -1
  230. package/dist/types/src/extensions/markdown/bundle.d.ts +0 -22
  231. package/dist/types/src/extensions/markdown/bundle.d.ts.map +0 -1
  232. package/dist/types/src/extensions/markdown/changes.d.ts +0 -10
  233. package/dist/types/src/extensions/markdown/changes.d.ts.map +0 -1
  234. package/dist/types/src/extensions/markdown/changes.test.d.ts +0 -2
  235. package/dist/types/src/extensions/markdown/changes.test.d.ts.map +0 -1
  236. package/dist/types/src/extensions/markdown/debug.d.ts +0 -11
  237. package/dist/types/src/extensions/markdown/debug.d.ts.map +0 -1
  238. package/dist/types/src/extensions/markdown/decorate.d.ts +0 -25
  239. package/dist/types/src/extensions/markdown/decorate.d.ts.map +0 -1
  240. package/dist/types/src/extensions/markdown/formatting.d.ts +0 -61
  241. package/dist/types/src/extensions/markdown/formatting.d.ts.map +0 -1
  242. package/dist/types/src/extensions/markdown/formatting.test.d.ts +0 -3
  243. package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +0 -1
  244. package/dist/types/src/extensions/markdown/highlight.d.ts +0 -37
  245. package/dist/types/src/extensions/markdown/highlight.d.ts.map +0 -1
  246. package/dist/types/src/extensions/markdown/image.d.ts +0 -7
  247. package/dist/types/src/extensions/markdown/image.d.ts.map +0 -1
  248. package/dist/types/src/extensions/markdown/index.d.ts +0 -10
  249. package/dist/types/src/extensions/markdown/index.d.ts.map +0 -1
  250. package/dist/types/src/extensions/markdown/link.d.ts +0 -7
  251. package/dist/types/src/extensions/markdown/link.d.ts.map +0 -1
  252. package/dist/types/src/extensions/markdown/parser.test.d.ts +0 -2
  253. package/dist/types/src/extensions/markdown/parser.test.d.ts.map +0 -1
  254. package/dist/types/src/extensions/markdown/styles.d.ts +0 -4
  255. package/dist/types/src/extensions/markdown/styles.d.ts.map +0 -1
  256. package/dist/types/src/extensions/markdown/table.d.ts +0 -8
  257. package/dist/types/src/extensions/markdown/table.d.ts.map +0 -1
  258. package/dist/types/src/extensions/mention.d.ts +0 -7
  259. package/dist/types/src/extensions/mention.d.ts.map +0 -1
  260. package/dist/types/src/extensions/modal.d.ts +0 -7
  261. package/dist/types/src/extensions/modal.d.ts.map +0 -1
  262. package/dist/types/src/extensions/modes.d.ts +0 -10
  263. package/dist/types/src/extensions/modes.d.ts.map +0 -1
  264. package/dist/types/src/extensions/outliner/commands.d.ts +0 -10
  265. package/dist/types/src/extensions/outliner/commands.d.ts.map +0 -1
  266. package/dist/types/src/extensions/outliner/editor.d.ts +0 -5
  267. package/dist/types/src/extensions/outliner/editor.d.ts.map +0 -1
  268. package/dist/types/src/extensions/outliner/editor.test.d.ts +0 -2
  269. package/dist/types/src/extensions/outliner/editor.test.d.ts.map +0 -1
  270. package/dist/types/src/extensions/outliner/index.d.ts +0 -4
  271. package/dist/types/src/extensions/outliner/index.d.ts.map +0 -1
  272. package/dist/types/src/extensions/outliner/menu.d.ts +0 -8
  273. package/dist/types/src/extensions/outliner/menu.d.ts.map +0 -1
  274. package/dist/types/src/extensions/outliner/outliner.d.ts +0 -11
  275. package/dist/types/src/extensions/outliner/outliner.d.ts.map +0 -1
  276. package/dist/types/src/extensions/outliner/outliner.test.d.ts +0 -2
  277. package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +0 -1
  278. package/dist/types/src/extensions/outliner/selection.d.ts +0 -12
  279. package/dist/types/src/extensions/outliner/selection.d.ts.map +0 -1
  280. package/dist/types/src/extensions/outliner/tree.d.ts +0 -79
  281. package/dist/types/src/extensions/outliner/tree.d.ts.map +0 -1
  282. package/dist/types/src/extensions/outliner/tree.test.d.ts +0 -2
  283. package/dist/types/src/extensions/outliner/tree.test.d.ts.map +0 -1
  284. package/dist/types/src/extensions/preview/index.d.ts +0 -2
  285. package/dist/types/src/extensions/preview/index.d.ts.map +0 -1
  286. package/dist/types/src/extensions/preview/preview.d.ts +0 -32
  287. package/dist/types/src/extensions/preview/preview.d.ts.map +0 -1
  288. package/dist/types/src/extensions/replacer.d.ts +0 -21
  289. package/dist/types/src/extensions/replacer.d.ts.map +0 -1
  290. package/dist/types/src/extensions/replacer.test.d.ts +0 -2
  291. package/dist/types/src/extensions/replacer.test.d.ts.map +0 -1
  292. package/dist/types/src/extensions/scrolling.d.ts +0 -78
  293. package/dist/types/src/extensions/scrolling.d.ts.map +0 -1
  294. package/dist/types/src/extensions/selection.d.ts +0 -24
  295. package/dist/types/src/extensions/selection.d.ts.map +0 -1
  296. package/dist/types/src/extensions/state.d.ts +0 -2
  297. package/dist/types/src/extensions/state.d.ts.map +0 -1
  298. package/dist/types/src/extensions/submit.d.ts +0 -10
  299. package/dist/types/src/extensions/submit.d.ts.map +0 -1
  300. package/dist/types/src/extensions/tab.d.ts +0 -4
  301. package/dist/types/src/extensions/tab.d.ts.map +0 -1
  302. package/dist/types/src/extensions/tags/extended-markdown.d.ts +0 -10
  303. package/dist/types/src/extensions/tags/extended-markdown.d.ts.map +0 -1
  304. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts +0 -2
  305. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts.map +0 -1
  306. package/dist/types/src/extensions/tags/index.d.ts +0 -4
  307. package/dist/types/src/extensions/tags/index.d.ts.map +0 -1
  308. package/dist/types/src/extensions/tags/streamer.d.ts +0 -12
  309. package/dist/types/src/extensions/tags/streamer.d.ts.map +0 -1
  310. package/dist/types/src/extensions/tags/xml-tags.d.ts +0 -97
  311. package/dist/types/src/extensions/tags/xml-tags.d.ts.map +0 -1
  312. package/dist/types/src/extensions/tags/xml-util.d.ts +0 -10
  313. package/dist/types/src/extensions/tags/xml-util.d.ts.map +0 -1
  314. package/dist/types/src/extensions/typewriter.d.ts +0 -10
  315. package/dist/types/src/extensions/typewriter.d.ts.map +0 -1
  316. package/dist/types/src/stories/CommandDialog.stories.d.ts +0 -14
  317. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +0 -1
  318. package/dist/types/src/styles/index.d.ts +0 -4
  319. package/dist/types/src/styles/index.d.ts.map +0 -1
  320. package/dist/types/src/styles/markdown.d.ts +0 -8
  321. package/dist/types/src/styles/markdown.d.ts.map +0 -1
  322. package/dist/types/src/styles/theme.d.ts +0 -38
  323. package/dist/types/src/styles/theme.d.ts.map +0 -1
  324. package/dist/types/src/styles/tokens.d.ts +0 -3
  325. package/dist/types/src/styles/tokens.d.ts.map +0 -1
  326. package/dist/types/src/types/index.d.ts +0 -2
  327. package/dist/types/src/types/index.d.ts.map +0 -1
  328. package/dist/types/src/types/types.d.ts +0 -21
  329. package/dist/types/src/types/types.d.ts.map +0 -1
  330. package/dist/types/src/util/cursor.d.ts +0 -31
  331. package/dist/types/src/util/cursor.d.ts.map +0 -1
  332. package/dist/types/src/util/debug.d.ts +0 -21
  333. package/dist/types/src/util/debug.d.ts.map +0 -1
  334. package/dist/types/src/util/decorations.d.ts +0 -4
  335. package/dist/types/src/util/decorations.d.ts.map +0 -1
  336. package/dist/types/src/util/dom.d.ts +0 -10
  337. package/dist/types/src/util/dom.d.ts.map +0 -1
  338. package/dist/types/src/util/facet.d.ts +0 -3
  339. package/dist/types/src/util/facet.d.ts.map +0 -1
  340. package/src/components/EditorContent/EditorContent.stories.tsx +0 -70
  341. package/src/components/EditorContent/EditorContent.tsx +0 -70
  342. package/src/components/EditorContent/index.ts +0 -6
  343. package/src/components/EditorMenuProvider/util.ts +0 -31
  344. package/src/components/EditorToolbar/actions.ts +0 -86
  345. package/src/components/EditorToolbar/useEditorToolbar.ts +0 -20
  346. package/src/defaults.ts +0 -52
  347. package/src/extensions/annotations.ts +0 -55
  348. package/src/extensions/autocomplete/autocomplete.ts +0 -151
  349. package/src/extensions/autocomplete/index.ts +0 -8
  350. package/src/extensions/autocomplete/match.ts +0 -46
  351. package/src/extensions/autocomplete/placeholder.ts +0 -117
  352. package/src/extensions/autocomplete/typeahead.ts +0 -87
  353. package/src/extensions/automerge/automerge.stories.tsx +0 -149
  354. package/src/extensions/automerge/automerge.test.tsx +0 -78
  355. package/src/extensions/automerge/automerge.ts +0 -105
  356. package/src/extensions/automerge/cursor.ts +0 -28
  357. package/src/extensions/automerge/defs.ts +0 -31
  358. package/src/extensions/automerge/index.ts +0 -5
  359. package/src/extensions/automerge/sync.ts +0 -79
  360. package/src/extensions/automerge/update-automerge.ts +0 -50
  361. package/src/extensions/automerge/update-codemirror.ts +0 -115
  362. package/src/extensions/autoscroll.ts +0 -163
  363. package/src/extensions/awareness/awareness-provider.ts +0 -127
  364. package/src/extensions/awareness/awareness.ts +0 -315
  365. package/src/extensions/awareness/index.ts +0 -6
  366. package/src/extensions/blast.ts +0 -363
  367. package/src/extensions/blocks.ts +0 -131
  368. package/src/extensions/bookmarks.ts +0 -75
  369. package/src/extensions/comments.ts +0 -598
  370. package/src/extensions/debug.ts +0 -15
  371. package/src/extensions/dnd.ts +0 -37
  372. package/src/extensions/factories.ts +0 -278
  373. package/src/extensions/focus.ts +0 -36
  374. package/src/extensions/folding.tsx +0 -43
  375. package/src/extensions/hashtag.tsx +0 -68
  376. package/src/extensions/json.ts +0 -57
  377. package/src/extensions/listener.ts +0 -32
  378. package/src/extensions/markdown/action.ts +0 -117
  379. package/src/extensions/markdown/bundle.ts +0 -105
  380. package/src/extensions/markdown/changes.test.ts +0 -26
  381. package/src/extensions/markdown/changes.ts +0 -149
  382. package/src/extensions/markdown/debug.ts +0 -44
  383. package/src/extensions/markdown/decorate.ts +0 -601
  384. package/src/extensions/markdown/formatting.test.ts +0 -498
  385. package/src/extensions/markdown/formatting.ts +0 -1265
  386. package/src/extensions/markdown/highlight.ts +0 -183
  387. package/src/extensions/markdown/image.ts +0 -118
  388. package/src/extensions/markdown/index.ts +0 -13
  389. package/src/extensions/markdown/link.ts +0 -50
  390. package/src/extensions/markdown/parser.test.ts +0 -75
  391. package/src/extensions/markdown/styles.ts +0 -135
  392. package/src/extensions/markdown/table.ts +0 -150
  393. package/src/extensions/mention.ts +0 -41
  394. package/src/extensions/modal.ts +0 -24
  395. package/src/extensions/modes.ts +0 -41
  396. package/src/extensions/outliner/commands.ts +0 -270
  397. package/src/extensions/outliner/editor.test.ts +0 -33
  398. package/src/extensions/outliner/editor.ts +0 -184
  399. package/src/extensions/outliner/index.ts +0 -7
  400. package/src/extensions/outliner/menu.ts +0 -128
  401. package/src/extensions/outliner/outliner.test.ts +0 -100
  402. package/src/extensions/outliner/outliner.ts +0 -167
  403. package/src/extensions/outliner/selection.ts +0 -50
  404. package/src/extensions/outliner/tree.test.ts +0 -168
  405. package/src/extensions/outliner/tree.ts +0 -317
  406. package/src/extensions/preview/index.ts +0 -5
  407. package/src/extensions/preview/preview.ts +0 -193
  408. package/src/extensions/replacer.test.ts +0 -75
  409. package/src/extensions/replacer.ts +0 -93
  410. package/src/extensions/scrolling.ts +0 -189
  411. package/src/extensions/selection.ts +0 -100
  412. package/src/extensions/state.ts +0 -7
  413. package/src/extensions/submit.ts +0 -62
  414. package/src/extensions/tab.ts +0 -29
  415. package/src/extensions/tags/extended-markdown.test.ts +0 -262
  416. package/src/extensions/tags/extended-markdown.ts +0 -78
  417. package/src/extensions/tags/index.ts +0 -7
  418. package/src/extensions/tags/streamer.ts +0 -243
  419. package/src/extensions/tags/xml-tags.ts +0 -500
  420. package/src/extensions/tags/xml-util.ts +0 -94
  421. package/src/extensions/typewriter.ts +0 -68
  422. package/src/stories/CommandDialog.stories.tsx +0 -83
  423. package/src/styles/index.ts +0 -7
  424. package/src/styles/markdown.ts +0 -26
  425. package/src/styles/theme.ts +0 -269
  426. package/src/styles/tokens.ts +0 -17
  427. package/src/types/index.ts +0 -5
  428. package/src/types/types.ts +0 -32
  429. package/src/util/cursor.ts +0 -56
  430. package/src/util/debug.ts +0 -69
  431. package/src/util/decorations.ts +0 -21
  432. package/src/util/dom.ts +0 -34
  433. package/src/util/facet.ts +0 -13
  434. /package/dist/types/src/components/{EditorContent → Editor}/controller.d.ts +0 -0
  435. /package/src/components/{EditorContent → Editor}/controller.ts +0 -0
@@ -1,83 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type Meta, type StoryObj } from '@storybook/react-vite';
6
- import React, { type KeyboardEvent, useState } from 'react';
7
-
8
- import { type Button, IconButton, Input } from '@dxos/react-ui';
9
- import { withTheme } from '@dxos/react-ui/testing';
10
- import { mx } from '@dxos/react-ui-theme';
11
-
12
- import { editorWidth } from '../defaults';
13
- import { str } from '../util';
14
-
15
- import { EditorStory } from './components';
16
-
17
- // TODO(burdon): Reimplement with Popover.
18
- const CommandDialog = ({ onAction }: { onAction: (action?: any) => void }) => {
19
- const [text, setText] = useState('');
20
-
21
- const handleInsert = () => {
22
- // TODO(burdon): Use queue ref.
23
- const link = `![${text}](dxn:queue:data:123)`;
24
- onAction(text.length ? { type: 'insert', text: link } : undefined);
25
- };
26
-
27
- const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {
28
- switch (event.key) {
29
- case 'Enter': {
30
- handleInsert();
31
- break;
32
- }
33
- case 'Escape': {
34
- onAction();
35
- break;
36
- }
37
- }
38
- };
39
-
40
- return (
41
- <div className='flex is-full justify-center'>
42
- <div
43
- className={mx(
44
- 'flex is-full p-2 gap-2 items-center bg-modalSurface border border-separator rounded-md',
45
- editorWidth,
46
- )}
47
- >
48
- <Input.Root>
49
- <Input.TextInput
50
- autoFocus={true}
51
- placeholder='Ask a question...'
52
- value={text}
53
- onChange={(ev) => setText(ev.target.value)}
54
- onKeyDown={handleKeyDown}
55
- />
56
- </Input.Root>
57
- <IconButton
58
- icon='ph--x--regular'
59
- label='Cancel'
60
- iconOnly
61
- variant='ghost'
62
- classNames='pli-0'
63
- onClick={() => onAction({ type: 'cancel' })}
64
- />
65
- </div>
66
- </div>
67
- );
68
- };
69
-
70
- const meta = {
71
- title: 'ui/react-ui-editor/CommandDialog',
72
- render: () => <EditorStory text={str('# Command', '', '')} extensions={[]} />,
73
- decorators: [withTheme],
74
- parameters: {
75
- layout: 'fullscreen',
76
- },
77
- } satisfies Meta<typeof Button>;
78
-
79
- export default meta;
80
-
81
- type Story = StoryObj<typeof meta>;
82
-
83
- export const Default: Story = {};
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- export * from './markdown';
6
- export * from './theme';
7
- export * from './tokens';
@@ -1,26 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { mx } from '@dxos/react-ui-theme';
6
-
7
- export type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
8
-
9
- // https://tailwindcss.com/docs/font-weight
10
- const headings: Record<HeadingLevel, string> = {
11
- 1: 'text-4xl',
12
- 2: 'text-3xl',
13
- 3: 'text-2xl',
14
- 4: 'text-xl',
15
- 5: 'text-lg',
16
- 6: '', // TODO(burdon): Should be text-base, but that's a color in our system.
17
- };
18
-
19
- export const theme = {
20
- code: 'font-mono !no-underline text-neutral-700 dark:text-neutral-300',
21
- codeMark: 'font-mono text-primary-500',
22
- mark: 'opacity-50',
23
- heading: (level: HeadingLevel) => {
24
- return mx(headings[level], 'dark:text-neutral-400');
25
- },
26
- };
@@ -1,269 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type StyleSpec } from 'style-mod';
6
-
7
- import { fontBody } from './tokens';
8
-
9
- export type ThemeStyles = Record<string, StyleSpec>;
10
-
11
- /**
12
- * Minimal styles.
13
- * https://codemirror.net/examples/styling
14
- *
15
- * Examples:
16
- * - https://github.com/codemirror/view/blob/main/src/theme.ts
17
- * - https://github.com/codemirror/theme-one-dark/blob/main/src/one-dark.ts
18
- *
19
- * Main layout:
20
- * https://codemirror.net/examples/styling
21
- * https://codemirror.net/docs/guide (DOM Structure).
22
- *
23
- * <div class="cm-editor [cm-focused] [generated classes]">
24
- * <div class="cm-scroller">
25
- * <div class="cm-gutters">
26
- * <div class="cm-gutter [...]">
27
- * <div class="cm-gutterElement">...</div>
28
- * </div>
29
- * </div>
30
- * <div class="cm-content" role="textbox" contenteditable="true">
31
- * <div class="cm-line"></div>
32
- * </div>
33
- * <div class="cm-selectionLayer">
34
- * <div class="cm-selectionBackground"></div>
35
- * </div>
36
- * <div class="cm-cursorLayer">
37
- * <div class="cm-cursor"></div>
38
- * </div>
39
- * </div>
40
- * </div>
41
- *
42
- * NOTE: `light` and `dark` selectors are preprocessed by CodeMirror and can only be in the base theme.
43
- * NOTE: Use 'unset' to remove default CM style.
44
- */
45
- export const defaultTheme: ThemeStyles = {
46
- '&': {},
47
- '&.cm-focused': {
48
- outline: 'none',
49
- },
50
-
51
- /**
52
- * Scroller
53
- */
54
- '.cm-scroller': {
55
- overflowY: 'auto',
56
- },
57
-
58
- /**
59
- * Content
60
- * NOTE: Apply margins to content so that scrollbar is at the edge of the container.
61
- */
62
- '.cm-content': {
63
- padding: 'unset',
64
- fontFamily: fontBody,
65
- // NOTE: Base font size (otherwise defined by HTML tag, which might be different for storybook).
66
- fontSize: '16px',
67
- lineHeight: '24px',
68
- color: 'unset',
69
- },
70
-
71
- /**
72
- * Gutters
73
- * NOTE: Gutters should have the same top margin as the content.
74
- */
75
- '.cm-gutters': {
76
- borderRight: 'none',
77
- },
78
- '.cm-gutter': {},
79
- '.cm-gutter.cm-lineNumbers': {
80
- paddingRight: '4px',
81
- borderRight: '1px solid var(--dx-subduedSeparator)',
82
- color: 'var(--dx-subduedText)',
83
- },
84
- '.cm-gutter.cm-lineNumbers .cm-gutterElement': {
85
- minWidth: '40px',
86
- },
87
- /**
88
- * Height is set to match the corresponding line (which may have wrapped).
89
- */
90
- '.cm-gutterElement': {
91
- lineHeight: '24px',
92
- fontSize: '12px',
93
- },
94
-
95
- /**
96
- * Line.
97
- */
98
- '.cm-line': {
99
- lineHeight: '24px',
100
- paddingInline: 0,
101
- },
102
- '.cm-activeLine': {
103
- background: 'var(--dx-cmActiveLine)',
104
- },
105
-
106
- /**
107
- * Cursor (layer).
108
- */
109
- '.cm-cursor, .cm-dropCursor': {
110
- borderLeft: '2px solid var(--dx-cmCursor)',
111
- },
112
- '.cm-placeholder': {
113
- fontFamily: fontBody,
114
- color: 'var(--dx-placeholder)',
115
- },
116
-
117
- /**
118
- * Selection (layer).
119
- */
120
- '.cm-selectionBackground': {
121
- background: 'var(--dx-cmSelection)',
122
- },
123
- '&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground': {
124
- background: 'var(--dx-cmFocusedSelection)',
125
- },
126
-
127
- /**
128
- * Search.
129
- * NOTE: Matches comment.
130
- */
131
- '.cm-searchMatch': {
132
- margin: '0 -3px',
133
- padding: '3px',
134
- borderRadius: '3px',
135
- background: 'var(--dx-cmHighlightSurface)',
136
- color: 'var(--dx-cmHighlight)',
137
- },
138
- '.cm-searchMatch-selected': {
139
- textDecoration: 'underline',
140
- },
141
-
142
- /**
143
- * Link.
144
- */
145
- '.cm-link': {
146
- textDecorationLine: 'underline',
147
- textDecorationThickness: '1px',
148
- textDecorationColor: 'var(--dx-separator)',
149
- textUnderlineOffset: '2px',
150
- borderRadius: '.125rem',
151
- },
152
- '.cm-link > span': {
153
- color: 'var(--dx-accentText)',
154
- },
155
-
156
- /**
157
- * Tooltip.
158
- */
159
- '.cm-tooltip': {
160
- background: 'var(--dx-baseSurface)',
161
- },
162
- '.cm-tooltip-below': {},
163
-
164
- /**
165
- * Autocomplete.
166
- * https://github.com/codemirror/autocomplete/blob/main/src/completion.ts
167
- */
168
- '.cm-tooltip.cm-tooltip-autocomplete': {
169
- marginTop: '6px',
170
- marginLeft: '-10px',
171
- border: '2px solid var(--dx-separator)',
172
- borderRadius: '4px',
173
- },
174
- '.cm-tooltip.cm-tooltip-autocomplete > ul': {
175
- maxHeight: '20em',
176
- },
177
- '.cm-tooltip.cm-tooltip-autocomplete > ul > li': {
178
- padding: '4px',
179
- },
180
- '.cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected]': {
181
- background: 'var(--dx-activeSurface)',
182
- color: 'var(--dx-activeSurfaceText)',
183
- },
184
- '.cm-tooltip.cm-tooltip-autocomplete > ul > completion-section': {
185
- paddingLeft: '4px !important',
186
- color: 'var(--dx-hoverSurfaceText)',
187
- },
188
-
189
- '.cm-completionInfo': {
190
- width: '360px !important',
191
- margin: '-10px 1px 0 1px',
192
- padding: '8px !important',
193
- borderColor: 'var(--dx-separator)',
194
- },
195
- '.cm-completionIcon': {
196
- display: 'none',
197
- },
198
- '.cm-completionLabel': {
199
- fontFamily: fontBody,
200
- color: 'var(--dx-description)',
201
- padding: '0 4px',
202
- },
203
- '.cm-completionMatchedText': {
204
- textDecoration: 'none !important',
205
- color: 'var(--dx-baseText)',
206
- },
207
-
208
- /**
209
- * Panels
210
- * https://github.com/codemirror/search/blob/main/src/search.ts#L745
211
- *
212
- * Find/replace panel.
213
- * <div class="cm-announced">...</div>
214
- * <div class="cm-scroller">...</div>
215
- * <div class="cm-panels cm-panels-bottom">
216
- * <div class="cm-search cm-panel">
217
- * <input class="cm-textfield" />
218
- * <button class="cm-button">...</button>
219
- * <label><input type="checkbox" />...</label>
220
- * </div>
221
- * </div
222
- */
223
- // TODO(burdon): Implement custom panel (with icon buttons).
224
- '.cm-panels': {},
225
- '.cm-panel': {
226
- fontFamily: fontBody,
227
- backgroundColor: 'var(--surface-bg)',
228
- },
229
- '.cm-panel input, .cm-panel button, .cm-panel label': {
230
- color: 'var(--dx-subdued)',
231
- fontFamily: fontBody,
232
- fontSize: '14px',
233
- all: 'unset',
234
- margin: '3px !important',
235
- padding: '2px 6px !important',
236
- outline: '1px solid transparent',
237
- },
238
- '.cm-panel input, .cm-panel button': {
239
- backgroundColor: 'var(--dx-inputSurface)',
240
- },
241
- '.cm-panel input:focus, .cm-panel button:focus': {
242
- outline: '1px solid var(--dx-neutralFocusIndicator)',
243
- },
244
- '.cm-panel label': {
245
- display: 'inline-flex',
246
- alignItems: 'center',
247
- cursor: 'pointer',
248
- },
249
- '.cm-panel input.cm-textfield': {},
250
- '.cm-panel input[type=checkbox]': {
251
- width: '8px',
252
- height: '8px',
253
- marginRight: '6px !important',
254
- padding: '2px !important',
255
- color: 'var(--dx-neutralFocusIndicator)',
256
- },
257
- '.cm-panel button': {
258
- '&:hover': {
259
- backgroundColor: 'var(--dx-accentSurfaceHover) !important',
260
- },
261
- '&:active': {
262
- backgroundColor: 'var(--dx-accentSurfaceHover)',
263
- },
264
- },
265
- '.cm-panel.cm-search': {
266
- padding: '4px',
267
- borderTop: '1px solid var(--dx-separator)',
268
- },
269
- };
@@ -1,17 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { tokens } from '@dxos/react-ui-theme';
6
- import { get } from '@dxos/util';
7
-
8
- /**
9
- * Returns the tailwind token value.
10
- */
11
- const getToken = (path: string, defaultValue?: string | string[]): string => {
12
- const value = get(tokens, path, defaultValue);
13
- return value?.toString() ?? '';
14
- };
15
-
16
- export const fontBody = getToken('fontFamily.body');
17
- export const fontMono = getToken('fontFamily.mono');
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './types';
@@ -1,32 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { type EditorView } from '@codemirror/view';
6
- import * as Schema from 'effect/Schema';
7
-
8
- // Runtime data structure.
9
- export type Range = {
10
- from: number;
11
- to: number;
12
- };
13
-
14
- // Persistent data structure.
15
- // TODO(burdon): Rename annotation?
16
- export type Comment = {
17
- id: string;
18
- cursor?: string;
19
- };
20
-
21
- /**
22
- * Callback that renders into a DOM element within the editor.
23
- */
24
- export type RenderCallback<Props extends object> = (el: HTMLElement, props: Props, view: EditorView) => void;
25
-
26
- export const EditorViewModes = ['preview', 'readonly', 'source'] as const;
27
- export const EditorViewMode = Schema.Union(...EditorViewModes.map((mode) => Schema.Literal(mode)));
28
- export type EditorViewMode = Schema.Schema.Type<typeof EditorViewMode>;
29
-
30
- export const EditorInputModes = ['default', 'vim', 'vscode'] as const;
31
- export const EditorInputMode = Schema.Union(...EditorInputModes.map((mode) => Schema.Literal(mode)));
32
- export type EditorInputMode = Schema.Schema.Type<typeof EditorInputMode>;
@@ -1,56 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { type EditorState } from '@codemirror/state';
6
-
7
- import { type Range } from '../types';
8
-
9
- import { singleValueFacet } from './facet';
10
-
11
- /**
12
- * Determines if two ranges overlap.
13
- * A range is considered to overlap if there is any intersection
14
- * between the two ranges, inclusive of their boundaries.
15
- */
16
- export const overlap = (a: Range, b: Range): boolean => a.from <= b.to && a.to >= b.from;
17
-
18
- /**
19
- * Converts indexes into the text document into stable peer-independent cursors.
20
- *
21
- * See:
22
- * - https://automerge.org/automerge/api-docs/js/functions/next.getCursor.html
23
- * - https://github.com/yjs/yjs?tab=readme-ov-file#relative-positions
24
- *
25
- * @param {assoc} number Negative values will associate the cursor with the previous character
26
- * while positive - with the next one.
27
- */
28
- export interface CursorConverter {
29
- toCursor(position: number, assoc?: -1 | 1 | undefined): string;
30
- fromCursor(cursor: string): number;
31
- }
32
-
33
- const defaultCursorConverter: CursorConverter = {
34
- toCursor: (position) => position.toString(),
35
- fromCursor: (cursor) => parseInt(cursor),
36
- };
37
-
38
- export class Cursor {
39
- static readonly converter = singleValueFacet(defaultCursorConverter);
40
-
41
- static readonly getCursorFromRange = (state: EditorState, range: Range) => {
42
- const cursorConverter = state.facet(Cursor.converter);
43
- const from = cursorConverter.toCursor(range.from);
44
- const to = cursorConverter.toCursor(range.to, -1);
45
- return [from, to].join(':');
46
- };
47
-
48
- static readonly getRangeFromCursor = (state: EditorState, cursor: string) => {
49
- const cursorConverter = state.facet(Cursor.converter);
50
-
51
- const parts = cursor.split(':');
52
- const from = cursorConverter.fromCursor(parts[0]);
53
- const to = cursorConverter.fromCursor(parts[1]);
54
- return from !== undefined && to !== undefined ? { from, to } : undefined;
55
- };
56
- }
package/src/util/debug.ts DELETED
@@ -1,69 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { type Transaction } from '@codemirror/state';
6
- import { type EditorView } from '@codemirror/view';
7
-
8
- import { log } from '@dxos/log';
9
-
10
- /**
11
- * @deprecated Use `trim` from `@dxos/util`.
12
- */
13
- export const str = (...lines: string[]) => lines.join('\n');
14
-
15
- export const wrapWithCatch = (fn: (...args: any[]) => any, label?: string) => {
16
- return (...args: any[]) => {
17
- try {
18
- return fn(...args);
19
- } catch (err) {
20
- log.catch(err, { label });
21
- }
22
- };
23
- };
24
-
25
- /**
26
- * CodeMirror callbacks swallow errors so wrap handlers.
27
- */
28
- // TODO(burdon): Reconcile with wrapWithCatch.
29
- export const callbackWrapper = <T extends Function>(fn: T): T =>
30
- ((...args: any[]) => {
31
- try {
32
- return fn(...args);
33
- } catch (err) {
34
- log.catch(err);
35
- }
36
- }) as unknown as T;
37
-
38
- /**
39
- * Log all changes before dispatching them to the view.
40
- * https://codemirror.net/docs/ref/#view.EditorView.dispatch
41
- */
42
- export const debugDispatcher = (trs: readonly Transaction[], view: EditorView) => {
43
- logChanges(trs);
44
- view.update(trs);
45
- };
46
-
47
- /**
48
- * Util to log transactions in update listener.
49
- */
50
- export const logChanges = (trs: readonly Transaction[]) => {
51
- const changes = trs
52
- .flatMap((tr) => {
53
- if (tr.changes.empty) {
54
- return undefined;
55
- }
56
-
57
- const changes: any[] = [];
58
- tr.changes.iterChanges((fromA, toA, fromB, toB, inserted) =>
59
- changes.push(JSON.stringify({ fromA, toA, fromB, toB, inserted: inserted.toString() })),
60
- );
61
-
62
- return changes;
63
- })
64
- .filter(Boolean);
65
-
66
- if (changes.length) {
67
- log('changes', { changes });
68
- }
69
- };
@@ -1,21 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { type Range } from '@codemirror/state';
6
- import { type Decoration, type DecorationSet } from '@codemirror/view';
7
-
8
- export const decorationSetToArray = (deco: DecorationSet): readonly Range<Decoration>[] => {
9
- const ranges: Range<Decoration>[] = [];
10
- const iter = deco.iter();
11
- while (iter.value) {
12
- ranges.push({
13
- from: iter.from,
14
- to: iter.to,
15
- value: iter.value,
16
- });
17
- iter.next();
18
- }
19
-
20
- return ranges;
21
- };
package/src/util/dom.ts DELETED
@@ -1,34 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- export type Rect = {
6
- readonly left: number;
7
- readonly right: number;
8
- readonly top: number;
9
- readonly bottom: number;
10
- };
11
-
12
- export const flattenRect = (rect: Rect, left: boolean): Rect => {
13
- const x = left ? rect.left : rect.right;
14
- return { left: x, right: x, top: rect.top, bottom: rect.bottom };
15
- };
16
-
17
- let scratchRange: Range | null;
18
-
19
- export const textRange = (node: Text, from: number, to = from): Range => {
20
- const range = scratchRange || (scratchRange = document.createRange());
21
- range.setEnd(node, to);
22
- range.setStart(node, from);
23
- return range;
24
- };
25
-
26
- export const clientRectsFor = (dom: Node): DOMRectList => {
27
- if (dom.nodeType === 3) {
28
- return textRange(dom as Text, 0, dom.nodeValue!.length).getClientRects();
29
- } else if (dom.nodeType === 1) {
30
- return (dom as HTMLElement).getClientRects();
31
- } else {
32
- return [] as any as DOMRectList;
33
- }
34
- };
package/src/util/facet.ts DELETED
@@ -1,13 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { Facet } from '@codemirror/state';
6
-
7
- export const singleValueFacet = <I, O = I>(defaultValue?: O) =>
8
- Facet.define<I, O>({
9
- // Called immediately.
10
- combine: (providers) => {
11
- return (providers[0] ?? defaultValue) as O;
12
- },
13
- });