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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (404) hide show
  1. package/dist/lib/browser/index.mjs +718 -8598
  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 +711 -8590
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/components/Editor/Editor.d.ts +8 -2
  8. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  9. package/dist/types/src/components/Editor/Editor.stories.d.ts +4 -1
  10. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -1
  11. package/dist/types/src/components/EditorContent/EditorContent.d.ts +4 -2
  12. package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +1 -1
  13. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts +2 -4
  14. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -1
  15. package/dist/types/src/components/EditorMenuProvider/index.d.ts +0 -1
  16. package/dist/types/src/components/EditorMenuProvider/index.d.ts.map +1 -1
  17. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -1
  18. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -1
  19. package/dist/types/src/components/EditorMenuProvider/popover.d.ts +1 -2
  20. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -1
  21. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -1
  22. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +1 -1
  23. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -1
  24. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +7 -5
  25. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  26. package/dist/types/src/components/EditorToolbar/blocks.d.ts +3 -16
  27. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  28. package/dist/types/src/components/EditorToolbar/formatting.d.ts +3 -16
  29. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  30. package/dist/types/src/components/EditorToolbar/headings.d.ts +3 -16
  31. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  32. package/dist/types/src/components/EditorToolbar/image.d.ts +3 -15
  33. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  34. package/dist/types/src/components/EditorToolbar/index.d.ts +0 -1
  35. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  36. package/dist/types/src/components/EditorToolbar/lists.d.ts +6 -0
  37. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -0
  38. package/dist/types/src/components/EditorToolbar/search.d.ts +3 -15
  39. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  40. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +4 -4
  41. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +1 -1
  42. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +4 -17
  43. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  44. package/dist/types/src/components/index.d.ts.map +1 -1
  45. package/dist/types/src/hooks/useTextEditor.d.ts +1 -1
  46. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  47. package/dist/types/src/index.d.ts +0 -8
  48. package/dist/types/src/index.d.ts.map +1 -1
  49. package/dist/types/src/stories/Automerge.stories.d.ts +44 -0
  50. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -0
  51. package/dist/types/src/stories/Comments.stories.d.ts +3 -2
  52. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  53. package/dist/types/src/stories/EditorToolbar.stories.d.ts +27 -27
  54. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  55. package/dist/types/src/stories/Experimental.stories.d.ts +3 -2
  56. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  57. package/dist/types/src/stories/Markdown.stories.d.ts +3 -2
  58. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  59. package/dist/types/src/stories/Outliner.stories.d.ts +2 -2
  60. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  61. package/dist/types/src/stories/Popover.stories.d.ts +2 -2
  62. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -1
  63. package/dist/types/src/stories/Preview.stories.d.ts +3 -2
  64. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  65. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
  66. package/dist/types/src/stories/TextEditor.stories.d.ts +3 -2
  67. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  68. package/dist/types/src/stories/Theme.stories.d.ts +8 -0
  69. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -0
  70. package/dist/types/src/stories/components/EditorStory.d.ts +9 -20
  71. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  72. package/dist/types/src/stories/components/util.d.ts +3 -3
  73. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  74. package/dist/types/src/translations.d.ts +26 -26
  75. package/dist/types/src/translations.d.ts.map +1 -1
  76. package/dist/types/src/util/index.d.ts +0 -5
  77. package/dist/types/src/util/index.d.ts.map +1 -1
  78. package/dist/types/src/util/react.d.ts +6 -5
  79. package/dist/types/src/util/react.d.ts.map +1 -1
  80. package/dist/types/tsconfig.tsbuildinfo +1 -1
  81. package/package.json +65 -66
  82. package/src/components/Editor/Editor.stories.tsx +17 -12
  83. package/src/components/Editor/Editor.tsx +21 -10
  84. package/src/components/EditorContent/EditorContent.tsx +19 -7
  85. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +23 -30
  86. package/src/components/EditorMenuProvider/index.ts +0 -1
  87. package/src/components/EditorMenuProvider/menu-presets.ts +3 -1
  88. package/src/components/EditorMenuProvider/menu.ts +1 -2
  89. package/src/components/EditorMenuProvider/popover.ts +1 -3
  90. package/src/components/EditorMenuProvider/useEditorMenu.ts +9 -4
  91. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +6 -9
  92. package/src/components/EditorToolbar/EditorToolbar.tsx +33 -66
  93. package/src/components/EditorToolbar/blocks.ts +54 -48
  94. package/src/components/EditorToolbar/formatting.ts +45 -48
  95. package/src/components/EditorToolbar/headings.ts +43 -50
  96. package/src/components/EditorToolbar/image.ts +16 -14
  97. package/src/components/EditorToolbar/index.ts +0 -1
  98. package/src/components/EditorToolbar/lists.ts +57 -0
  99. package/src/components/EditorToolbar/search.ts +16 -14
  100. package/src/components/EditorToolbar/useEditorToolbar.ts +6 -6
  101. package/src/components/EditorToolbar/view-mode.ts +35 -42
  102. package/src/components/index.ts +0 -2
  103. package/src/hooks/useTextEditor.ts +9 -3
  104. package/src/index.ts +0 -10
  105. package/src/stories/Automerge.stories.tsx +173 -0
  106. package/src/stories/Comments.stories.tsx +47 -43
  107. package/src/stories/EditorToolbar.stories.tsx +57 -27
  108. package/src/stories/Experimental.stories.tsx +10 -12
  109. package/src/stories/Markdown.stories.tsx +16 -16
  110. package/src/stories/Outliner.stories.tsx +8 -10
  111. package/src/stories/Popover.stories.tsx +27 -32
  112. package/src/stories/Preview.stories.tsx +67 -53
  113. package/src/stories/Tags.stories.tsx +24 -15
  114. package/src/stories/TextEditor.stories.tsx +13 -19
  115. package/src/stories/Theme.stories.tsx +61 -0
  116. package/src/stories/components/EditorStory.tsx +31 -30
  117. package/src/stories/components/util.tsx +51 -52
  118. package/src/translations.ts +30 -25
  119. package/src/util/index.ts +1 -6
  120. package/src/util/react.tsx +8 -13
  121. package/dist/lib/browser/chunk-HL3YF6WC.mjs +0 -22
  122. package/dist/lib/browser/chunk-HL3YF6WC.mjs.map +0 -7
  123. package/dist/lib/browser/types/index.mjs +0 -13
  124. package/dist/lib/browser/types/index.mjs.map +0 -7
  125. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs +0 -24
  126. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs.map +0 -7
  127. package/dist/lib/node-esm/types/index.mjs +0 -14
  128. package/dist/lib/node-esm/types/index.mjs.map +0 -7
  129. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts +0 -26
  130. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts.map +0 -1
  131. package/dist/types/src/components/EditorMenuProvider/util.d.ts +0 -8
  132. package/dist/types/src/components/EditorMenuProvider/util.d.ts.map +0 -1
  133. package/dist/types/src/components/EditorToolbar/actions.d.ts +0 -39
  134. package/dist/types/src/components/EditorToolbar/actions.d.ts.map +0 -1
  135. package/dist/types/src/defaults.d.ts +0 -14
  136. package/dist/types/src/defaults.d.ts.map +0 -1
  137. package/dist/types/src/extensions/annotations.d.ts +0 -9
  138. package/dist/types/src/extensions/annotations.d.ts.map +0 -1
  139. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts +0 -17
  140. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts.map +0 -1
  141. package/dist/types/src/extensions/autocomplete/index.d.ts +0 -5
  142. package/dist/types/src/extensions/autocomplete/index.d.ts.map +0 -1
  143. package/dist/types/src/extensions/autocomplete/match.d.ts +0 -13
  144. package/dist/types/src/extensions/autocomplete/match.d.ts.map +0 -1
  145. package/dist/types/src/extensions/autocomplete/placeholder.d.ts +0 -20
  146. package/dist/types/src/extensions/autocomplete/placeholder.d.ts.map +0 -1
  147. package/dist/types/src/extensions/autocomplete/typeahead.d.ts +0 -10
  148. package/dist/types/src/extensions/autocomplete/typeahead.d.ts.map +0 -1
  149. package/dist/types/src/extensions/automerge/automerge.d.ts +0 -4
  150. package/dist/types/src/extensions/automerge/automerge.d.ts.map +0 -1
  151. package/dist/types/src/extensions/automerge/automerge.stories.d.ts +0 -47
  152. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +0 -1
  153. package/dist/types/src/extensions/automerge/automerge.test.d.ts +0 -2
  154. package/dist/types/src/extensions/automerge/automerge.test.d.ts.map +0 -1
  155. package/dist/types/src/extensions/automerge/cursor.d.ts +0 -4
  156. package/dist/types/src/extensions/automerge/cursor.d.ts.map +0 -1
  157. package/dist/types/src/extensions/automerge/defs.d.ts +0 -17
  158. package/dist/types/src/extensions/automerge/defs.d.ts.map +0 -1
  159. package/dist/types/src/extensions/automerge/index.d.ts +0 -2
  160. package/dist/types/src/extensions/automerge/index.d.ts.map +0 -1
  161. package/dist/types/src/extensions/automerge/sync.d.ts +0 -17
  162. package/dist/types/src/extensions/automerge/sync.d.ts.map +0 -1
  163. package/dist/types/src/extensions/automerge/update-automerge.d.ts +0 -6
  164. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +0 -1
  165. package/dist/types/src/extensions/automerge/update-codemirror.d.ts +0 -5
  166. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +0 -1
  167. package/dist/types/src/extensions/autoscroll.d.ts +0 -20
  168. package/dist/types/src/extensions/autoscroll.d.ts.map +0 -1
  169. package/dist/types/src/extensions/awareness/awareness-provider.d.ts +0 -31
  170. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +0 -1
  171. package/dist/types/src/extensions/awareness/awareness.d.ts +0 -46
  172. package/dist/types/src/extensions/awareness/awareness.d.ts.map +0 -1
  173. package/dist/types/src/extensions/awareness/index.d.ts +0 -3
  174. package/dist/types/src/extensions/awareness/index.d.ts.map +0 -1
  175. package/dist/types/src/extensions/blast.d.ts +0 -25
  176. package/dist/types/src/extensions/blast.d.ts.map +0 -1
  177. package/dist/types/src/extensions/blocks.d.ts +0 -2
  178. package/dist/types/src/extensions/blocks.d.ts.map +0 -1
  179. package/dist/types/src/extensions/bookmarks.d.ts +0 -12
  180. package/dist/types/src/extensions/bookmarks.d.ts.map +0 -1
  181. package/dist/types/src/extensions/comments.d.ts +0 -95
  182. package/dist/types/src/extensions/comments.d.ts.map +0 -1
  183. package/dist/types/src/extensions/debug.d.ts +0 -3
  184. package/dist/types/src/extensions/debug.d.ts.map +0 -1
  185. package/dist/types/src/extensions/dnd.d.ts +0 -9
  186. package/dist/types/src/extensions/dnd.d.ts.map +0 -1
  187. package/dist/types/src/extensions/factories.d.ts +0 -83
  188. package/dist/types/src/extensions/factories.d.ts.map +0 -1
  189. package/dist/types/src/extensions/focus.d.ts +0 -7
  190. package/dist/types/src/extensions/focus.d.ts.map +0 -1
  191. package/dist/types/src/extensions/folding.d.ts +0 -7
  192. package/dist/types/src/extensions/folding.d.ts.map +0 -1
  193. package/dist/types/src/extensions/hashtag.d.ts +0 -3
  194. package/dist/types/src/extensions/hashtag.d.ts.map +0 -1
  195. package/dist/types/src/extensions/index.d.ts +0 -32
  196. package/dist/types/src/extensions/index.d.ts.map +0 -1
  197. package/dist/types/src/extensions/json.d.ts +0 -7
  198. package/dist/types/src/extensions/json.d.ts.map +0 -1
  199. package/dist/types/src/extensions/listener.d.ts +0 -13
  200. package/dist/types/src/extensions/listener.d.ts.map +0 -1
  201. package/dist/types/src/extensions/markdown/action.d.ts +0 -12
  202. package/dist/types/src/extensions/markdown/action.d.ts.map +0 -1
  203. package/dist/types/src/extensions/markdown/bundle.d.ts +0 -22
  204. package/dist/types/src/extensions/markdown/bundle.d.ts.map +0 -1
  205. package/dist/types/src/extensions/markdown/changes.d.ts +0 -10
  206. package/dist/types/src/extensions/markdown/changes.d.ts.map +0 -1
  207. package/dist/types/src/extensions/markdown/changes.test.d.ts +0 -2
  208. package/dist/types/src/extensions/markdown/changes.test.d.ts.map +0 -1
  209. package/dist/types/src/extensions/markdown/debug.d.ts +0 -11
  210. package/dist/types/src/extensions/markdown/debug.d.ts.map +0 -1
  211. package/dist/types/src/extensions/markdown/decorate.d.ts +0 -25
  212. package/dist/types/src/extensions/markdown/decorate.d.ts.map +0 -1
  213. package/dist/types/src/extensions/markdown/formatting.d.ts +0 -61
  214. package/dist/types/src/extensions/markdown/formatting.d.ts.map +0 -1
  215. package/dist/types/src/extensions/markdown/formatting.test.d.ts +0 -3
  216. package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +0 -1
  217. package/dist/types/src/extensions/markdown/highlight.d.ts +0 -37
  218. package/dist/types/src/extensions/markdown/highlight.d.ts.map +0 -1
  219. package/dist/types/src/extensions/markdown/image.d.ts +0 -7
  220. package/dist/types/src/extensions/markdown/image.d.ts.map +0 -1
  221. package/dist/types/src/extensions/markdown/index.d.ts +0 -10
  222. package/dist/types/src/extensions/markdown/index.d.ts.map +0 -1
  223. package/dist/types/src/extensions/markdown/link.d.ts +0 -7
  224. package/dist/types/src/extensions/markdown/link.d.ts.map +0 -1
  225. package/dist/types/src/extensions/markdown/parser.test.d.ts +0 -2
  226. package/dist/types/src/extensions/markdown/parser.test.d.ts.map +0 -1
  227. package/dist/types/src/extensions/markdown/styles.d.ts +0 -4
  228. package/dist/types/src/extensions/markdown/styles.d.ts.map +0 -1
  229. package/dist/types/src/extensions/markdown/table.d.ts +0 -8
  230. package/dist/types/src/extensions/markdown/table.d.ts.map +0 -1
  231. package/dist/types/src/extensions/mention.d.ts +0 -7
  232. package/dist/types/src/extensions/mention.d.ts.map +0 -1
  233. package/dist/types/src/extensions/modal.d.ts +0 -7
  234. package/dist/types/src/extensions/modal.d.ts.map +0 -1
  235. package/dist/types/src/extensions/modes.d.ts +0 -10
  236. package/dist/types/src/extensions/modes.d.ts.map +0 -1
  237. package/dist/types/src/extensions/outliner/commands.d.ts +0 -10
  238. package/dist/types/src/extensions/outliner/commands.d.ts.map +0 -1
  239. package/dist/types/src/extensions/outliner/editor.d.ts +0 -5
  240. package/dist/types/src/extensions/outliner/editor.d.ts.map +0 -1
  241. package/dist/types/src/extensions/outliner/editor.test.d.ts +0 -2
  242. package/dist/types/src/extensions/outliner/editor.test.d.ts.map +0 -1
  243. package/dist/types/src/extensions/outliner/index.d.ts +0 -4
  244. package/dist/types/src/extensions/outliner/index.d.ts.map +0 -1
  245. package/dist/types/src/extensions/outliner/menu.d.ts +0 -8
  246. package/dist/types/src/extensions/outliner/menu.d.ts.map +0 -1
  247. package/dist/types/src/extensions/outliner/outliner.d.ts +0 -11
  248. package/dist/types/src/extensions/outliner/outliner.d.ts.map +0 -1
  249. package/dist/types/src/extensions/outliner/outliner.test.d.ts +0 -2
  250. package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +0 -1
  251. package/dist/types/src/extensions/outliner/selection.d.ts +0 -12
  252. package/dist/types/src/extensions/outliner/selection.d.ts.map +0 -1
  253. package/dist/types/src/extensions/outliner/tree.d.ts +0 -79
  254. package/dist/types/src/extensions/outliner/tree.d.ts.map +0 -1
  255. package/dist/types/src/extensions/outliner/tree.test.d.ts +0 -2
  256. package/dist/types/src/extensions/outliner/tree.test.d.ts.map +0 -1
  257. package/dist/types/src/extensions/preview/index.d.ts +0 -2
  258. package/dist/types/src/extensions/preview/index.d.ts.map +0 -1
  259. package/dist/types/src/extensions/preview/preview.d.ts +0 -32
  260. package/dist/types/src/extensions/preview/preview.d.ts.map +0 -1
  261. package/dist/types/src/extensions/replacer.d.ts +0 -21
  262. package/dist/types/src/extensions/replacer.d.ts.map +0 -1
  263. package/dist/types/src/extensions/replacer.test.d.ts +0 -2
  264. package/dist/types/src/extensions/replacer.test.d.ts.map +0 -1
  265. package/dist/types/src/extensions/scrolling.d.ts +0 -78
  266. package/dist/types/src/extensions/scrolling.d.ts.map +0 -1
  267. package/dist/types/src/extensions/selection.d.ts +0 -24
  268. package/dist/types/src/extensions/selection.d.ts.map +0 -1
  269. package/dist/types/src/extensions/state.d.ts +0 -2
  270. package/dist/types/src/extensions/state.d.ts.map +0 -1
  271. package/dist/types/src/extensions/submit.d.ts +0 -10
  272. package/dist/types/src/extensions/submit.d.ts.map +0 -1
  273. package/dist/types/src/extensions/tab.d.ts +0 -4
  274. package/dist/types/src/extensions/tab.d.ts.map +0 -1
  275. package/dist/types/src/extensions/tags/extended-markdown.d.ts +0 -10
  276. package/dist/types/src/extensions/tags/extended-markdown.d.ts.map +0 -1
  277. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts +0 -2
  278. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts.map +0 -1
  279. package/dist/types/src/extensions/tags/index.d.ts +0 -4
  280. package/dist/types/src/extensions/tags/index.d.ts.map +0 -1
  281. package/dist/types/src/extensions/tags/streamer.d.ts +0 -12
  282. package/dist/types/src/extensions/tags/streamer.d.ts.map +0 -1
  283. package/dist/types/src/extensions/tags/xml-tags.d.ts +0 -97
  284. package/dist/types/src/extensions/tags/xml-tags.d.ts.map +0 -1
  285. package/dist/types/src/extensions/tags/xml-util.d.ts +0 -10
  286. package/dist/types/src/extensions/tags/xml-util.d.ts.map +0 -1
  287. package/dist/types/src/extensions/typewriter.d.ts +0 -10
  288. package/dist/types/src/extensions/typewriter.d.ts.map +0 -1
  289. package/dist/types/src/stories/CommandDialog.stories.d.ts +0 -14
  290. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +0 -1
  291. package/dist/types/src/styles/index.d.ts +0 -4
  292. package/dist/types/src/styles/index.d.ts.map +0 -1
  293. package/dist/types/src/styles/markdown.d.ts +0 -8
  294. package/dist/types/src/styles/markdown.d.ts.map +0 -1
  295. package/dist/types/src/styles/theme.d.ts +0 -38
  296. package/dist/types/src/styles/theme.d.ts.map +0 -1
  297. package/dist/types/src/styles/tokens.d.ts +0 -3
  298. package/dist/types/src/styles/tokens.d.ts.map +0 -1
  299. package/dist/types/src/types/index.d.ts +0 -2
  300. package/dist/types/src/types/index.d.ts.map +0 -1
  301. package/dist/types/src/types/types.d.ts +0 -21
  302. package/dist/types/src/types/types.d.ts.map +0 -1
  303. package/dist/types/src/util/cursor.d.ts +0 -31
  304. package/dist/types/src/util/cursor.d.ts.map +0 -1
  305. package/dist/types/src/util/debug.d.ts +0 -21
  306. package/dist/types/src/util/debug.d.ts.map +0 -1
  307. package/dist/types/src/util/decorations.d.ts +0 -4
  308. package/dist/types/src/util/decorations.d.ts.map +0 -1
  309. package/dist/types/src/util/dom.d.ts +0 -10
  310. package/dist/types/src/util/dom.d.ts.map +0 -1
  311. package/dist/types/src/util/facet.d.ts +0 -3
  312. package/dist/types/src/util/facet.d.ts.map +0 -1
  313. package/src/components/EditorContent/EditorContent.stories.tsx +0 -70
  314. package/src/components/EditorMenuProvider/util.ts +0 -31
  315. package/src/components/EditorToolbar/actions.ts +0 -86
  316. package/src/defaults.ts +0 -52
  317. package/src/extensions/annotations.ts +0 -55
  318. package/src/extensions/autocomplete/autocomplete.ts +0 -151
  319. package/src/extensions/autocomplete/index.ts +0 -8
  320. package/src/extensions/autocomplete/match.ts +0 -46
  321. package/src/extensions/autocomplete/placeholder.ts +0 -117
  322. package/src/extensions/autocomplete/typeahead.ts +0 -87
  323. package/src/extensions/automerge/automerge.stories.tsx +0 -149
  324. package/src/extensions/automerge/automerge.test.tsx +0 -78
  325. package/src/extensions/automerge/automerge.ts +0 -105
  326. package/src/extensions/automerge/cursor.ts +0 -28
  327. package/src/extensions/automerge/defs.ts +0 -31
  328. package/src/extensions/automerge/index.ts +0 -5
  329. package/src/extensions/automerge/sync.ts +0 -79
  330. package/src/extensions/automerge/update-automerge.ts +0 -50
  331. package/src/extensions/automerge/update-codemirror.ts +0 -115
  332. package/src/extensions/autoscroll.ts +0 -163
  333. package/src/extensions/awareness/awareness-provider.ts +0 -127
  334. package/src/extensions/awareness/awareness.ts +0 -315
  335. package/src/extensions/awareness/index.ts +0 -6
  336. package/src/extensions/blast.ts +0 -363
  337. package/src/extensions/blocks.ts +0 -131
  338. package/src/extensions/bookmarks.ts +0 -75
  339. package/src/extensions/comments.ts +0 -598
  340. package/src/extensions/debug.ts +0 -15
  341. package/src/extensions/dnd.ts +0 -37
  342. package/src/extensions/factories.ts +0 -278
  343. package/src/extensions/focus.ts +0 -36
  344. package/src/extensions/folding.tsx +0 -43
  345. package/src/extensions/hashtag.tsx +0 -68
  346. package/src/extensions/index.ts +0 -35
  347. package/src/extensions/json.ts +0 -57
  348. package/src/extensions/listener.ts +0 -32
  349. package/src/extensions/markdown/action.ts +0 -117
  350. package/src/extensions/markdown/bundle.ts +0 -105
  351. package/src/extensions/markdown/changes.test.ts +0 -26
  352. package/src/extensions/markdown/changes.ts +0 -149
  353. package/src/extensions/markdown/debug.ts +0 -44
  354. package/src/extensions/markdown/decorate.ts +0 -601
  355. package/src/extensions/markdown/formatting.test.ts +0 -498
  356. package/src/extensions/markdown/formatting.ts +0 -1265
  357. package/src/extensions/markdown/highlight.ts +0 -183
  358. package/src/extensions/markdown/image.ts +0 -118
  359. package/src/extensions/markdown/index.ts +0 -13
  360. package/src/extensions/markdown/link.ts +0 -50
  361. package/src/extensions/markdown/parser.test.ts +0 -75
  362. package/src/extensions/markdown/styles.ts +0 -135
  363. package/src/extensions/markdown/table.ts +0 -150
  364. package/src/extensions/mention.ts +0 -41
  365. package/src/extensions/modal.ts +0 -24
  366. package/src/extensions/modes.ts +0 -41
  367. package/src/extensions/outliner/commands.ts +0 -270
  368. package/src/extensions/outliner/editor.test.ts +0 -33
  369. package/src/extensions/outliner/editor.ts +0 -184
  370. package/src/extensions/outliner/index.ts +0 -7
  371. package/src/extensions/outliner/menu.ts +0 -128
  372. package/src/extensions/outliner/outliner.test.ts +0 -100
  373. package/src/extensions/outliner/outliner.ts +0 -167
  374. package/src/extensions/outliner/selection.ts +0 -50
  375. package/src/extensions/outliner/tree.test.ts +0 -168
  376. package/src/extensions/outliner/tree.ts +0 -317
  377. package/src/extensions/preview/index.ts +0 -5
  378. package/src/extensions/preview/preview.ts +0 -193
  379. package/src/extensions/replacer.test.ts +0 -75
  380. package/src/extensions/replacer.ts +0 -93
  381. package/src/extensions/scrolling.ts +0 -189
  382. package/src/extensions/selection.ts +0 -100
  383. package/src/extensions/state.ts +0 -7
  384. package/src/extensions/submit.ts +0 -62
  385. package/src/extensions/tab.ts +0 -29
  386. package/src/extensions/tags/extended-markdown.test.ts +0 -262
  387. package/src/extensions/tags/extended-markdown.ts +0 -78
  388. package/src/extensions/tags/index.ts +0 -7
  389. package/src/extensions/tags/streamer.ts +0 -243
  390. package/src/extensions/tags/xml-tags.ts +0 -500
  391. package/src/extensions/tags/xml-util.ts +0 -94
  392. package/src/extensions/typewriter.ts +0 -68
  393. package/src/stories/CommandDialog.stories.tsx +0 -83
  394. package/src/styles/index.ts +0 -7
  395. package/src/styles/markdown.ts +0 -26
  396. package/src/styles/theme.ts +0 -269
  397. package/src/styles/tokens.ts +0 -17
  398. package/src/types/index.ts +0 -5
  399. package/src/types/types.ts +0 -32
  400. package/src/util/cursor.ts +0 -56
  401. package/src/util/debug.ts +0 -69
  402. package/src/util/decorations.ts +0 -21
  403. package/src/util/dom.ts +0 -34
  404. package/src/util/facet.ts +0 -13
@@ -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
- });