@dxos/react-ui-editor 0.8.4-main.c4373fc → 0.8.4-main.c85a9c8dae

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 (422) hide show
  1. package/dist/lib/browser/index.mjs +1143 -8424
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +1143 -8423
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/components/Editor/Editor.d.ts +43 -21
  8. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  9. package/dist/types/src/components/Editor/Editor.stories.d.ts +23 -0
  10. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -0
  11. package/dist/types/src/components/EditorContent/EditorContent.d.ts +31 -0
  12. package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +1 -0
  13. package/dist/types/src/components/EditorContent/controller.d.ts +10 -0
  14. package/dist/types/src/components/EditorContent/controller.d.ts.map +1 -0
  15. package/dist/types/src/components/EditorContent/index.d.ts +3 -0
  16. package/dist/types/src/components/EditorContent/index.d.ts.map +1 -0
  17. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts +36 -0
  18. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -0
  19. package/dist/types/src/components/EditorMenuProvider/index.d.ts +6 -0
  20. package/dist/types/src/components/EditorMenuProvider/index.d.ts.map +1 -0
  21. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts +4 -0
  22. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -0
  23. package/dist/types/src/components/EditorMenuProvider/menu.d.ts +28 -0
  24. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -0
  25. package/dist/types/src/components/EditorMenuProvider/popover.d.ts +46 -0
  26. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -0
  27. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts +34 -0
  28. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -0
  29. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +16 -0
  30. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -0
  31. package/dist/types/src/components/EditorPreviewProvider/index.d.ts +2 -0
  32. package/dist/types/src/components/EditorPreviewProvider/index.d.ts.map +1 -0
  33. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +28 -2
  34. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  35. package/dist/types/src/components/EditorToolbar/actions.d.ts +25 -0
  36. package/dist/types/src/components/EditorToolbar/actions.d.ts.map +1 -0
  37. package/dist/types/src/components/EditorToolbar/blocks.d.ts +9 -7
  38. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  39. package/dist/types/src/components/EditorToolbar/formatting.d.ts +9 -7
  40. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  41. package/dist/types/src/components/EditorToolbar/headings.d.ts +9 -7
  42. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  43. package/dist/types/src/components/EditorToolbar/image.d.ts +5 -11
  44. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  45. package/dist/types/src/components/EditorToolbar/index.d.ts +2 -1
  46. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  47. package/dist/types/src/components/EditorToolbar/search.d.ts +5 -11
  48. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  49. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +11 -0
  50. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +1 -0
  51. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +10 -8
  52. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  53. package/dist/types/src/components/index.d.ts +4 -2
  54. package/dist/types/src/components/index.d.ts.map +1 -1
  55. package/dist/types/src/hooks/useTextEditor.d.ts +4 -8
  56. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  57. package/dist/types/src/index.d.ts +0 -8
  58. package/dist/types/src/index.d.ts.map +1 -1
  59. package/dist/types/src/{extensions/automerge/automerge.stories.d.ts → stories/Automerge.stories.d.ts} +5 -8
  60. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -0
  61. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +1 -1
  62. package/dist/types/src/stories/Comments.stories.d.ts +4 -3
  63. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  64. package/dist/types/src/stories/EditorToolbar.stories.d.ts +4 -4
  65. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  66. package/dist/types/src/stories/Experimental.stories.d.ts +4 -3
  67. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  68. package/dist/types/src/stories/Markdown.stories.d.ts +4 -3
  69. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  70. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  71. package/dist/types/src/stories/{CommandMenu.stories.d.ts → Popover.stories.d.ts} +6 -5
  72. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -0
  73. package/dist/types/src/stories/Preview.stories.d.ts +5 -3
  74. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  75. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
  76. package/dist/types/src/stories/TextEditor.stories.d.ts +4 -4
  77. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  78. package/dist/types/src/stories/Theme.stories.d.ts +8 -0
  79. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -0
  80. package/dist/types/src/stories/components/EditorStory.d.ts +9 -18
  81. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  82. package/dist/types/src/stories/components/util.d.ts +3 -3
  83. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  84. package/dist/types/src/translations.d.ts +5 -5
  85. package/dist/types/src/translations.d.ts.map +1 -1
  86. package/dist/types/src/util/index.d.ts +0 -5
  87. package/dist/types/src/util/index.d.ts.map +1 -1
  88. package/dist/types/src/util/react.d.ts +6 -5
  89. package/dist/types/src/util/react.d.ts.map +1 -1
  90. package/dist/types/tsconfig.tsbuildinfo +1 -1
  91. package/package.json +68 -72
  92. package/src/components/Editor/Editor.stories.tsx +95 -0
  93. package/src/components/Editor/Editor.tsx +167 -56
  94. package/src/components/EditorContent/EditorContent.tsx +83 -0
  95. package/src/components/EditorContent/controller.ts +50 -0
  96. package/src/components/EditorContent/index.ts +6 -0
  97. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +228 -0
  98. package/src/components/EditorMenuProvider/index.ts +10 -0
  99. package/src/components/EditorMenuProvider/menu-presets.ts +124 -0
  100. package/src/components/EditorMenuProvider/menu.ts +70 -0
  101. package/src/components/EditorMenuProvider/popover.ts +285 -0
  102. package/src/components/EditorMenuProvider/useEditorMenu.ts +179 -0
  103. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +79 -0
  104. package/src/components/EditorPreviewProvider/index.ts +5 -0
  105. package/src/components/EditorToolbar/EditorToolbar.tsx +102 -105
  106. package/src/components/EditorToolbar/{lists.ts → actions.ts} +48 -17
  107. package/src/components/EditorToolbar/blocks.ts +7 -7
  108. package/src/components/EditorToolbar/formatting.ts +7 -7
  109. package/src/components/EditorToolbar/headings.ts +20 -17
  110. package/src/components/EditorToolbar/image.ts +10 -3
  111. package/src/components/EditorToolbar/index.ts +3 -7
  112. package/src/components/EditorToolbar/search.ts +10 -3
  113. package/src/components/EditorToolbar/useEditorToolbar.ts +20 -0
  114. package/src/components/EditorToolbar/view-mode.ts +7 -6
  115. package/src/components/index.ts +6 -2
  116. package/src/hooks/useTextEditor.ts +33 -27
  117. package/src/index.ts +0 -10
  118. package/src/stories/Automerge.stories.tsx +174 -0
  119. package/src/stories/CommandDialog.stories.tsx +18 -26
  120. package/src/stories/Comments.stories.tsx +48 -44
  121. package/src/stories/EditorToolbar.stories.tsx +36 -21
  122. package/src/stories/Experimental.stories.tsx +6 -8
  123. package/src/stories/Markdown.stories.tsx +16 -16
  124. package/src/stories/Outliner.stories.tsx +20 -21
  125. package/src/stories/Popover.stories.tsx +158 -0
  126. package/src/stories/Preview.stories.tsx +100 -81
  127. package/src/stories/Tags.stories.tsx +36 -13
  128. package/src/stories/TextEditor.stories.tsx +16 -48
  129. package/src/stories/Theme.stories.tsx +61 -0
  130. package/src/stories/components/EditorStory.tsx +32 -25
  131. package/src/stories/components/util.tsx +60 -31
  132. package/src/translations.ts +4 -4
  133. package/src/util/index.ts +1 -6
  134. package/src/util/react.tsx +8 -13
  135. package/dist/lib/browser/chunk-HL3YF6WC.mjs +0 -22
  136. package/dist/lib/browser/chunk-HL3YF6WC.mjs.map +0 -7
  137. package/dist/lib/browser/testing/index.mjs +0 -76
  138. package/dist/lib/browser/testing/index.mjs.map +0 -7
  139. package/dist/lib/browser/types/index.mjs +0 -13
  140. package/dist/lib/browser/types/index.mjs.map +0 -7
  141. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs +0 -24
  142. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs.map +0 -7
  143. package/dist/lib/node-esm/testing/index.mjs +0 -78
  144. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  145. package/dist/lib/node-esm/types/index.mjs +0 -14
  146. package/dist/lib/node-esm/types/index.mjs.map +0 -7
  147. package/dist/types/src/components/CommandMenu/CommandMenu.d.ts +0 -38
  148. package/dist/types/src/components/CommandMenu/CommandMenu.d.ts.map +0 -1
  149. package/dist/types/src/components/CommandMenu/index.d.ts +0 -2
  150. package/dist/types/src/components/CommandMenu/index.d.ts.map +0 -1
  151. package/dist/types/src/components/EditorToolbar/lists.d.ts +0 -19
  152. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +0 -1
  153. package/dist/types/src/components/EditorToolbar/util.d.ts +0 -51
  154. package/dist/types/src/components/EditorToolbar/util.d.ts.map +0 -1
  155. package/dist/types/src/defaults.d.ts +0 -14
  156. package/dist/types/src/defaults.d.ts.map +0 -1
  157. package/dist/types/src/extensions/annotations.d.ts +0 -9
  158. package/dist/types/src/extensions/annotations.d.ts.map +0 -1
  159. package/dist/types/src/extensions/autocomplete.d.ts +0 -26
  160. package/dist/types/src/extensions/autocomplete.d.ts.map +0 -1
  161. package/dist/types/src/extensions/automerge/automerge.d.ts +0 -4
  162. package/dist/types/src/extensions/automerge/automerge.d.ts.map +0 -1
  163. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +0 -1
  164. package/dist/types/src/extensions/automerge/automerge.test.d.ts +0 -2
  165. package/dist/types/src/extensions/automerge/automerge.test.d.ts.map +0 -1
  166. package/dist/types/src/extensions/automerge/cursor.d.ts +0 -4
  167. package/dist/types/src/extensions/automerge/cursor.d.ts.map +0 -1
  168. package/dist/types/src/extensions/automerge/defs.d.ts +0 -17
  169. package/dist/types/src/extensions/automerge/defs.d.ts.map +0 -1
  170. package/dist/types/src/extensions/automerge/index.d.ts +0 -2
  171. package/dist/types/src/extensions/automerge/index.d.ts.map +0 -1
  172. package/dist/types/src/extensions/automerge/sync.d.ts +0 -17
  173. package/dist/types/src/extensions/automerge/sync.d.ts.map +0 -1
  174. package/dist/types/src/extensions/automerge/update-automerge.d.ts +0 -6
  175. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +0 -1
  176. package/dist/types/src/extensions/automerge/update-codemirror.d.ts +0 -5
  177. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +0 -1
  178. package/dist/types/src/extensions/autoscroll.d.ts +0 -10
  179. package/dist/types/src/extensions/autoscroll.d.ts.map +0 -1
  180. package/dist/types/src/extensions/awareness/awareness-provider.d.ts +0 -31
  181. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +0 -1
  182. package/dist/types/src/extensions/awareness/awareness.d.ts +0 -46
  183. package/dist/types/src/extensions/awareness/awareness.d.ts.map +0 -1
  184. package/dist/types/src/extensions/awareness/index.d.ts +0 -3
  185. package/dist/types/src/extensions/awareness/index.d.ts.map +0 -1
  186. package/dist/types/src/extensions/blast.d.ts +0 -25
  187. package/dist/types/src/extensions/blast.d.ts.map +0 -1
  188. package/dist/types/src/extensions/command-dialog/action.d.ts +0 -17
  189. package/dist/types/src/extensions/command-dialog/action.d.ts.map +0 -1
  190. package/dist/types/src/extensions/command-dialog/command-dialog.d.ts +0 -6
  191. package/dist/types/src/extensions/command-dialog/command-dialog.d.ts.map +0 -1
  192. package/dist/types/src/extensions/command-dialog/hint.d.ts +0 -19
  193. package/dist/types/src/extensions/command-dialog/hint.d.ts.map +0 -1
  194. package/dist/types/src/extensions/command-dialog/index.d.ts +0 -4
  195. package/dist/types/src/extensions/command-dialog/index.d.ts.map +0 -1
  196. package/dist/types/src/extensions/command-dialog/state.d.ts +0 -16
  197. package/dist/types/src/extensions/command-dialog/state.d.ts.map +0 -1
  198. package/dist/types/src/extensions/command-dialog/typeahead.d.ts +0 -22
  199. package/dist/types/src/extensions/command-dialog/typeahead.d.ts.map +0 -1
  200. package/dist/types/src/extensions/command-menu/command-menu.d.ts +0 -20
  201. package/dist/types/src/extensions/command-menu/command-menu.d.ts.map +0 -1
  202. package/dist/types/src/extensions/command-menu/index.d.ts +0 -3
  203. package/dist/types/src/extensions/command-menu/index.d.ts.map +0 -1
  204. package/dist/types/src/extensions/command-menu/placeholder.d.ts +0 -10
  205. package/dist/types/src/extensions/command-menu/placeholder.d.ts.map +0 -1
  206. package/dist/types/src/extensions/command-menu/useCommandMenu.d.ts +0 -24
  207. package/dist/types/src/extensions/command-menu/useCommandMenu.d.ts.map +0 -1
  208. package/dist/types/src/extensions/comments.d.ts +0 -95
  209. package/dist/types/src/extensions/comments.d.ts.map +0 -1
  210. package/dist/types/src/extensions/debug.d.ts +0 -3
  211. package/dist/types/src/extensions/debug.d.ts.map +0 -1
  212. package/dist/types/src/extensions/dnd.d.ts +0 -9
  213. package/dist/types/src/extensions/dnd.d.ts.map +0 -1
  214. package/dist/types/src/extensions/factories.d.ts +0 -83
  215. package/dist/types/src/extensions/factories.d.ts.map +0 -1
  216. package/dist/types/src/extensions/floating-menu.d.ts +0 -7
  217. package/dist/types/src/extensions/floating-menu.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/index.d.ts +0 -27
  225. package/dist/types/src/extensions/index.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 -11
  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 -63
  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/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/outliner.d.ts +0 -11
  273. package/dist/types/src/extensions/outliner/outliner.d.ts.map +0 -1
  274. package/dist/types/src/extensions/outliner/outliner.test.d.ts +0 -2
  275. package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +0 -1
  276. package/dist/types/src/extensions/outliner/selection.d.ts +0 -12
  277. package/dist/types/src/extensions/outliner/selection.d.ts.map +0 -1
  278. package/dist/types/src/extensions/outliner/tree.d.ts +0 -79
  279. package/dist/types/src/extensions/outliner/tree.d.ts.map +0 -1
  280. package/dist/types/src/extensions/outliner/tree.test.d.ts +0 -2
  281. package/dist/types/src/extensions/outliner/tree.test.d.ts.map +0 -1
  282. package/dist/types/src/extensions/preview/index.d.ts +0 -2
  283. package/dist/types/src/extensions/preview/index.d.ts.map +0 -1
  284. package/dist/types/src/extensions/preview/preview.d.ts +0 -29
  285. package/dist/types/src/extensions/preview/preview.d.ts.map +0 -1
  286. package/dist/types/src/extensions/selection.d.ts +0 -24
  287. package/dist/types/src/extensions/selection.d.ts.map +0 -1
  288. package/dist/types/src/extensions/tags/extended-markdown.d.ts +0 -10
  289. package/dist/types/src/extensions/tags/extended-markdown.d.ts.map +0 -1
  290. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts +0 -2
  291. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts.map +0 -1
  292. package/dist/types/src/extensions/tags/index.d.ts +0 -4
  293. package/dist/types/src/extensions/tags/index.d.ts.map +0 -1
  294. package/dist/types/src/extensions/tags/streamer.d.ts +0 -12
  295. package/dist/types/src/extensions/tags/streamer.d.ts.map +0 -1
  296. package/dist/types/src/extensions/tags/xml-tags.d.ts +0 -72
  297. package/dist/types/src/extensions/tags/xml-tags.d.ts.map +0 -1
  298. package/dist/types/src/extensions/tags/xml-util.d.ts +0 -10
  299. package/dist/types/src/extensions/tags/xml-util.d.ts.map +0 -1
  300. package/dist/types/src/extensions/typewriter.d.ts +0 -10
  301. package/dist/types/src/extensions/typewriter.d.ts.map +0 -1
  302. package/dist/types/src/stories/CommandMenu.stories.d.ts.map +0 -1
  303. package/dist/types/src/styles/index.d.ts +0 -4
  304. package/dist/types/src/styles/index.d.ts.map +0 -1
  305. package/dist/types/src/styles/markdown.d.ts +0 -8
  306. package/dist/types/src/styles/markdown.d.ts.map +0 -1
  307. package/dist/types/src/styles/theme.d.ts +0 -38
  308. package/dist/types/src/styles/theme.d.ts.map +0 -1
  309. package/dist/types/src/styles/tokens.d.ts +0 -3
  310. package/dist/types/src/styles/tokens.d.ts.map +0 -1
  311. package/dist/types/src/testing/PreviewPopover.d.ts +0 -20
  312. package/dist/types/src/testing/PreviewPopover.d.ts.map +0 -1
  313. package/dist/types/src/testing/index.d.ts +0 -3
  314. package/dist/types/src/testing/index.d.ts.map +0 -1
  315. package/dist/types/src/testing/util.d.ts +0 -3
  316. package/dist/types/src/testing/util.d.ts.map +0 -1
  317. package/dist/types/src/types/index.d.ts +0 -2
  318. package/dist/types/src/types/index.d.ts.map +0 -1
  319. package/dist/types/src/types/types.d.ts +0 -21
  320. package/dist/types/src/types/types.d.ts.map +0 -1
  321. package/dist/types/src/util/cursor.d.ts +0 -31
  322. package/dist/types/src/util/cursor.d.ts.map +0 -1
  323. package/dist/types/src/util/debug.d.ts +0 -17
  324. package/dist/types/src/util/debug.d.ts.map +0 -1
  325. package/dist/types/src/util/decorations.d.ts +0 -4
  326. package/dist/types/src/util/decorations.d.ts.map +0 -1
  327. package/dist/types/src/util/dom.d.ts +0 -10
  328. package/dist/types/src/util/dom.d.ts.map +0 -1
  329. package/dist/types/src/util/facet.d.ts +0 -3
  330. package/dist/types/src/util/facet.d.ts.map +0 -1
  331. package/src/components/CommandMenu/CommandMenu.tsx +0 -348
  332. package/src/components/CommandMenu/index.ts +0 -5
  333. package/src/components/EditorToolbar/util.ts +0 -76
  334. package/src/defaults.ts +0 -52
  335. package/src/extensions/annotations.ts +0 -55
  336. package/src/extensions/autocomplete.ts +0 -219
  337. package/src/extensions/automerge/automerge.stories.tsx +0 -149
  338. package/src/extensions/automerge/automerge.test.tsx +0 -78
  339. package/src/extensions/automerge/automerge.ts +0 -86
  340. package/src/extensions/automerge/cursor.ts +0 -28
  341. package/src/extensions/automerge/defs.ts +0 -31
  342. package/src/extensions/automerge/index.ts +0 -5
  343. package/src/extensions/automerge/sync.ts +0 -75
  344. package/src/extensions/automerge/update-automerge.ts +0 -50
  345. package/src/extensions/automerge/update-codemirror.ts +0 -115
  346. package/src/extensions/autoscroll.ts +0 -157
  347. package/src/extensions/awareness/awareness-provider.ts +0 -127
  348. package/src/extensions/awareness/awareness.ts +0 -315
  349. package/src/extensions/awareness/index.ts +0 -6
  350. package/src/extensions/blast.ts +0 -363
  351. package/src/extensions/command-dialog/action.ts +0 -55
  352. package/src/extensions/command-dialog/command-dialog.ts +0 -34
  353. package/src/extensions/command-dialog/hint.ts +0 -103
  354. package/src/extensions/command-dialog/index.ts +0 -7
  355. package/src/extensions/command-dialog/state.ts +0 -90
  356. package/src/extensions/command-dialog/typeahead.ts +0 -129
  357. package/src/extensions/command-menu/command-menu.ts +0 -210
  358. package/src/extensions/command-menu/index.ts +0 -6
  359. package/src/extensions/command-menu/placeholder.ts +0 -113
  360. package/src/extensions/command-menu/useCommandMenu.ts +0 -134
  361. package/src/extensions/comments.ts +0 -597
  362. package/src/extensions/debug.ts +0 -15
  363. package/src/extensions/dnd.ts +0 -37
  364. package/src/extensions/factories.ts +0 -284
  365. package/src/extensions/floating-menu.ts +0 -126
  366. package/src/extensions/focus.ts +0 -36
  367. package/src/extensions/folding.tsx +0 -44
  368. package/src/extensions/hashtag.tsx +0 -68
  369. package/src/extensions/index.ts +0 -30
  370. package/src/extensions/json.ts +0 -57
  371. package/src/extensions/listener.ts +0 -38
  372. package/src/extensions/markdown/action.ts +0 -117
  373. package/src/extensions/markdown/bundle.ts +0 -93
  374. package/src/extensions/markdown/changes.test.ts +0 -26
  375. package/src/extensions/markdown/changes.ts +0 -149
  376. package/src/extensions/markdown/debug.ts +0 -44
  377. package/src/extensions/markdown/decorate.ts +0 -601
  378. package/src/extensions/markdown/formatting.test.ts +0 -498
  379. package/src/extensions/markdown/formatting.ts +0 -1267
  380. package/src/extensions/markdown/highlight.ts +0 -183
  381. package/src/extensions/markdown/image.ts +0 -118
  382. package/src/extensions/markdown/index.ts +0 -13
  383. package/src/extensions/markdown/link.ts +0 -50
  384. package/src/extensions/markdown/parser.test.ts +0 -75
  385. package/src/extensions/markdown/styles.ts +0 -135
  386. package/src/extensions/markdown/table.ts +0 -150
  387. package/src/extensions/mention.ts +0 -41
  388. package/src/extensions/modes.ts +0 -41
  389. package/src/extensions/outliner/commands.ts +0 -270
  390. package/src/extensions/outliner/editor.test.ts +0 -33
  391. package/src/extensions/outliner/editor.ts +0 -184
  392. package/src/extensions/outliner/index.ts +0 -7
  393. package/src/extensions/outliner/outliner.test.ts +0 -100
  394. package/src/extensions/outliner/outliner.ts +0 -167
  395. package/src/extensions/outliner/selection.ts +0 -50
  396. package/src/extensions/outliner/tree.test.ts +0 -168
  397. package/src/extensions/outliner/tree.ts +0 -317
  398. package/src/extensions/preview/index.ts +0 -5
  399. package/src/extensions/preview/preview.ts +0 -190
  400. package/src/extensions/selection.ts +0 -100
  401. package/src/extensions/tags/extended-markdown.test.ts +0 -261
  402. package/src/extensions/tags/extended-markdown.ts +0 -78
  403. package/src/extensions/tags/index.ts +0 -7
  404. package/src/extensions/tags/streamer.ts +0 -243
  405. package/src/extensions/tags/xml-tags.ts +0 -393
  406. package/src/extensions/tags/xml-util.ts +0 -94
  407. package/src/extensions/typewriter.ts +0 -68
  408. package/src/stories/CommandMenu.stories.tsx +0 -158
  409. package/src/styles/index.ts +0 -7
  410. package/src/styles/markdown.ts +0 -26
  411. package/src/styles/theme.ts +0 -268
  412. package/src/styles/tokens.ts +0 -17
  413. package/src/testing/PreviewPopover.tsx +0 -78
  414. package/src/testing/index.ts +0 -6
  415. package/src/testing/util.ts +0 -7
  416. package/src/types/index.ts +0 -5
  417. package/src/types/types.ts +0 -32
  418. package/src/util/cursor.ts +0 -56
  419. package/src/util/debug.ts +0 -64
  420. package/src/util/decorations.ts +0 -21
  421. package/src/util/dom.ts +0 -34
  422. package/src/util/facet.ts +0 -13
@@ -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-primary-400');
25
- },
26
- };
@@ -1,268 +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
- // background: 'transparent',
78
- },
79
- '.cm-gutter': {},
80
- '.cm-gutter.cm-lineNumbers': {
81
- paddingRight: '4px',
82
- borderRight: '1px solid var(--dx-subduedSeparator)',
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
- color: 'var(--dx-placeholder)',
114
- },
115
-
116
- /**
117
- * Selection (layer).
118
- */
119
- '.cm-selectionBackground': {
120
- background: 'var(--dx-cmSelection)',
121
- },
122
- '&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground': {
123
- background: 'var(--dx-cmFocusedSelection)',
124
- },
125
-
126
- /**
127
- * Search.
128
- * NOTE: Matches comment.
129
- */
130
- '.cm-searchMatch': {
131
- margin: '0 -3px',
132
- padding: '3px',
133
- borderRadius: '3px',
134
- background: 'var(--dx-cmHighlightSurface)',
135
- color: 'var(--dx-cmHighlight)',
136
- },
137
- '.cm-searchMatch-selected': {
138
- textDecoration: 'underline',
139
- },
140
-
141
- /**
142
- * Link.
143
- */
144
- '.cm-link': {
145
- textDecorationLine: 'underline',
146
- textDecorationThickness: '1px',
147
- textDecorationColor: 'var(--dx-separator)',
148
- textUnderlineOffset: '2px',
149
- borderRadius: '.125rem',
150
- },
151
- '.cm-link > span': {
152
- color: 'var(--dx-accentText)',
153
- },
154
-
155
- /**
156
- * Tooltip.
157
- */
158
- '.cm-tooltip': {
159
- background: 'var(--dx-baseSurface)',
160
- },
161
- '.cm-tooltip-below': {},
162
-
163
- /**
164
- * Autocomplete.
165
- * https://github.com/codemirror/autocomplete/blob/main/src/completion.ts
166
- */
167
- '.cm-tooltip.cm-tooltip-autocomplete': {
168
- marginTop: '6px',
169
- marginLeft: '-10px',
170
- border: '2px solid var(--dx-separator)',
171
- borderRadius: '4px',
172
- },
173
- '.cm-tooltip.cm-tooltip-autocomplete > ul': {
174
- maxHeight: '20em',
175
- },
176
- '.cm-tooltip.cm-tooltip-autocomplete > ul > li': {
177
- padding: '4px',
178
- },
179
- '.cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected]': {
180
- background: 'var(--dx-activeSurface)',
181
- color: 'var(--dx-activeSurfaceText)',
182
- },
183
- '.cm-tooltip.cm-tooltip-autocomplete > ul > completion-section': {
184
- paddingLeft: '4px !important',
185
- color: 'var(--dx-hoverSurfaceText)',
186
- },
187
-
188
- '.cm-completionInfo': {
189
- width: '360px !important',
190
- margin: '-10px 1px 0 1px',
191
- padding: '8px !important',
192
- borderColor: 'var(--dx-separator)',
193
- },
194
- '.cm-completionIcon': {
195
- display: 'none',
196
- },
197
- '.cm-completionLabel': {
198
- fontFamily: fontBody,
199
- color: 'var(--dx-description)',
200
- padding: '0 4px',
201
- },
202
- '.cm-completionMatchedText': {
203
- textDecoration: 'none !important',
204
- color: 'var(--dx-baseText)',
205
- },
206
-
207
- /**
208
- * Panels
209
- * https://github.com/codemirror/search/blob/main/src/search.ts#L745
210
- *
211
- * Find/replace panel.
212
- * <div class="cm-announced">...</div>
213
- * <div class="cm-scroller">...</div>
214
- * <div class="cm-panels cm-panels-bottom">
215
- * <div class="cm-search cm-panel">
216
- * <input class="cm-textfield" />
217
- * <button class="cm-button">...</button>
218
- * <label><input type="checkbox" />...</label>
219
- * </div>
220
- * </div
221
- */
222
- // TODO(burdon): Implement custom panel (with icon buttons).
223
- '.cm-panels': {},
224
- '.cm-panel': {
225
- fontFamily: fontBody,
226
- backgroundColor: 'var(--surface-bg)',
227
- },
228
- '.cm-panel input, .cm-panel button, .cm-panel label': {
229
- color: 'var(--dx-subdued)',
230
- fontFamily: fontBody,
231
- fontSize: '14px',
232
- all: 'unset',
233
- margin: '3px !important',
234
- padding: '2px 6px !important',
235
- outline: '1px solid transparent',
236
- },
237
- '.cm-panel input, .cm-panel button': {
238
- backgroundColor: 'var(--dx-inputSurface)',
239
- },
240
- '.cm-panel input:focus, .cm-panel button:focus': {
241
- outline: '1px solid var(--dx-neutralFocusIndicator)',
242
- },
243
- '.cm-panel label': {
244
- display: 'inline-flex',
245
- alignItems: 'center',
246
- cursor: 'pointer',
247
- },
248
- '.cm-panel input.cm-textfield': {},
249
- '.cm-panel input[type=checkbox]': {
250
- width: '8px',
251
- height: '8px',
252
- marginRight: '6px !important',
253
- padding: '2px !important',
254
- color: 'var(--dx-neutralFocusIndicator)',
255
- },
256
- '.cm-panel button': {
257
- '&:hover': {
258
- backgroundColor: 'var(--dx-accentSurfaceHover) !important',
259
- },
260
- '&:active': {
261
- backgroundColor: 'var(--dx-accentSurfaceHover)',
262
- },
263
- },
264
- '.cm-panel.cm-search': {
265
- padding: '4px',
266
- borderTop: '1px solid var(--dx-separator)',
267
- },
268
- };
@@ -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,78 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { createContext } from '@radix-ui/react-context';
6
- import React, { type PropsWithChildren, type RefObject, useCallback, useEffect, useRef, useState } from 'react';
7
-
8
- import { addEventListener } from '@dxos/async';
9
- import { type DxAnchorActivate, Popover } from '@dxos/react-ui';
10
-
11
- import { type PreviewLinkRef, type PreviewLinkTarget } from '../extensions';
12
-
13
- type PreviewLookup = (link: PreviewLinkRef) => Promise<PreviewLinkTarget | null | undefined>;
14
-
15
- type PreviewPopoverValue = Partial<{
16
- link: PreviewLinkRef;
17
- target: PreviewLinkTarget;
18
- pending: boolean;
19
- }>;
20
-
21
- const [PreviewPopoverContextProvider, usePreviewPopover] = createContext<PreviewPopoverValue>('PreviewPopover', {});
22
-
23
- type PopoverLookupProviderProps = PropsWithChildren<{
24
- onLookup?: PreviewLookup;
25
- }>;
26
-
27
- const PreviewPopoverProvider = ({ children, onLookup }: PopoverLookupProviderProps) => {
28
- const trigger = useRef<HTMLElement | null>(null);
29
- const [value, setValue] = useState<PreviewPopoverValue>({});
30
- const [open, setOpen] = useState(false);
31
-
32
- const handleDxAnchorActivate = useCallback(
33
- (event: DxAnchorActivate) => {
34
- const { refId, label, trigger: dxTrigger } = event;
35
- setValue((value) => ({
36
- ...value,
37
- link: { label, ref: refId },
38
- pending: true,
39
- }));
40
- trigger.current = dxTrigger;
41
- queueMicrotask(() => setOpen(true));
42
- void onLookup?.({ label, ref: refId }).then((target) =>
43
- setValue((value) => ({
44
- ...value,
45
- target: target ?? undefined,
46
- pending: false,
47
- })),
48
- );
49
- },
50
- [onLookup],
51
- );
52
-
53
- const [rootRef, setRootRef] = useState<HTMLDivElement | null>(null);
54
- useEffect(() => {
55
- if (!rootRef || !handleDxAnchorActivate) {
56
- return;
57
- }
58
-
59
- return addEventListener(rootRef, 'dx-anchor-activate' as any, handleDxAnchorActivate, {
60
- capture: true,
61
- passive: false,
62
- });
63
- }, [rootRef, handleDxAnchorActivate]);
64
-
65
- return (
66
- <PreviewPopoverContextProvider pending={value.pending} link={value.link} target={value.target}>
67
- <Popover.Root open={open} onOpenChange={setOpen}>
68
- <Popover.VirtualTrigger virtualRef={trigger as unknown as RefObject<HTMLButtonElement>} />
69
- <div role='none' className='contents' ref={setRootRef}>
70
- {children}
71
- </div>
72
- </Popover.Root>
73
- </PreviewPopoverContextProvider>
74
- );
75
- };
76
- export { PreviewPopoverProvider, usePreviewPopover };
77
-
78
- export type { PopoverLookupProviderProps, PreviewPopoverValue };
@@ -1,6 +0,0 @@
1
- //
2
- // Copyright 2022 DXOS.org
3
- //
4
-
5
- export * from './util';
6
- export * from './PreviewPopover';
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- /** deprecated Replace with @dxos/util trim */
6
- // TODO(burdon): Remove
7
- export const str = (...lines: string[]) => lines.join('\n');
@@ -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,64 +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
- export const wrapWithCatch = (fn: (...args: any[]) => any, label?: string) => {
11
- return (...args: any[]) => {
12
- try {
13
- return fn(...args);
14
- } catch (err) {
15
- log.catch(err, { label });
16
- }
17
- };
18
- };
19
-
20
- /**
21
- * CodeMirror callbacks swallow errors so wrap handlers.
22
- */
23
- // TODO(burdon): Reconcile with wrapWithCatch.
24
- export const callbackWrapper = <T extends Function>(fn: T): T =>
25
- ((...args: any[]) => {
26
- try {
27
- return fn(...args);
28
- } catch (err) {
29
- log.catch(err);
30
- }
31
- }) as unknown as T;
32
-
33
- /**
34
- * Log all changes before dispatching them to the view.
35
- * https://codemirror.net/docs/ref/#view.EditorView.dispatch
36
- */
37
- export const debugDispatcher = (trs: readonly Transaction[], view: EditorView) => {
38
- logChanges(trs);
39
- view.update(trs);
40
- };
41
-
42
- /**
43
- * Util to log transactions in update listener.
44
- */
45
- export const logChanges = (trs: readonly Transaction[]) => {
46
- const changes = trs
47
- .flatMap((tr) => {
48
- if (tr.changes.empty) {
49
- return undefined;
50
- }
51
-
52
- const changes: any[] = [];
53
- tr.changes.iterChanges((fromA, toA, fromB, toB, inserted) =>
54
- changes.push(JSON.stringify({ fromA, toA, fromB, toB, inserted: inserted.toString() })),
55
- );
56
-
57
- return changes;
58
- })
59
- .filter(Boolean);
60
-
61
- if (changes.length) {
62
- log('changes', { changes });
63
- }
64
- };
@@ -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
- });