@dxos/react-ui-editor 0.8.4-main.84f28bd → 0.8.4-main.9735255

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 (406) hide show
  1. package/dist/lib/browser/index.mjs +1216 -7394
  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 +1216 -7393
  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 -15
  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 +24 -0
  36. package/dist/types/src/components/EditorToolbar/actions.d.ts.map +1 -0
  37. package/dist/types/src/components/EditorToolbar/blocks.d.ts +8 -7
  38. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  39. package/dist/types/src/components/EditorToolbar/formatting.d.ts +8 -7
  40. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  41. package/dist/types/src/components/EditorToolbar/headings.d.ts +8 -7
  42. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  43. package/dist/types/src/components/EditorToolbar/image.d.ts +4 -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 +4 -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 +9 -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 +6 -10
  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} +14 -27
  60. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -0
  61. package/dist/types/src/stories/CommandDialog.stories.d.ts +14 -0
  62. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +1 -0
  63. package/dist/types/src/stories/Comments.stories.d.ts +22 -10
  64. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  65. package/dist/types/src/stories/EditorToolbar.stories.d.ts +39 -3
  66. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  67. package/dist/types/src/stories/Experimental.stories.d.ts +23 -13
  68. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  69. package/dist/types/src/stories/Markdown.stories.d.ts +33 -43
  70. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  71. package/dist/types/src/stories/Outliner.stories.d.ts +15 -21
  72. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  73. package/dist/types/src/stories/Popover.stories.d.ts +20 -0
  74. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -0
  75. package/dist/types/src/stories/Preview.stories.d.ts +23 -7
  76. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  77. package/dist/types/src/stories/Tags.stories.d.ts +16 -0
  78. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -0
  79. package/dist/types/src/stories/TextEditor.stories.d.ts +38 -52
  80. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  81. package/dist/types/src/stories/Theme.stories.d.ts +8 -0
  82. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -0
  83. package/dist/types/src/stories/components/EditorStory.d.ts +11 -23
  84. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  85. package/dist/types/src/stories/components/util.d.ts +3 -3
  86. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  87. package/dist/types/src/translations.d.ts +6 -6
  88. package/dist/types/src/translations.d.ts.map +1 -1
  89. package/dist/types/src/util/index.d.ts +0 -4
  90. package/dist/types/src/util/index.d.ts.map +1 -1
  91. package/dist/types/src/util/react.d.ts +6 -2
  92. package/dist/types/src/util/react.d.ts.map +1 -1
  93. package/dist/types/tsconfig.tsbuildinfo +1 -1
  94. package/package.json +82 -78
  95. package/src/components/Editor/Editor.stories.tsx +95 -0
  96. package/src/components/Editor/Editor.tsx +164 -24
  97. package/src/components/EditorContent/EditorContent.tsx +83 -0
  98. package/src/components/EditorContent/controller.ts +50 -0
  99. package/src/components/EditorContent/index.ts +6 -0
  100. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +233 -0
  101. package/src/components/EditorMenuProvider/index.ts +10 -0
  102. package/src/components/EditorMenuProvider/menu-presets.ts +124 -0
  103. package/src/components/EditorMenuProvider/menu.ts +70 -0
  104. package/src/components/EditorMenuProvider/popover.ts +285 -0
  105. package/src/components/EditorMenuProvider/useEditorMenu.ts +173 -0
  106. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +81 -0
  107. package/src/components/EditorPreviewProvider/index.ts +5 -0
  108. package/src/components/EditorToolbar/EditorToolbar.tsx +120 -96
  109. package/src/components/EditorToolbar/actions.ts +87 -0
  110. package/src/components/EditorToolbar/blocks.ts +23 -26
  111. package/src/components/EditorToolbar/formatting.ts +24 -27
  112. package/src/components/EditorToolbar/headings.ts +20 -12
  113. package/src/components/EditorToolbar/image.ts +17 -6
  114. package/src/components/EditorToolbar/index.ts +3 -7
  115. package/src/components/EditorToolbar/search.ts +17 -6
  116. package/src/components/EditorToolbar/useEditorToolbar.ts +20 -0
  117. package/src/components/EditorToolbar/view-mode.ts +15 -9
  118. package/src/components/index.ts +6 -2
  119. package/src/hooks/useTextEditor.ts +39 -45
  120. package/src/index.ts +0 -10
  121. package/src/stories/Automerge.stories.tsx +175 -0
  122. package/src/stories/CommandDialog.stories.tsx +81 -0
  123. package/src/stories/Comments.stories.tsx +59 -51
  124. package/src/stories/EditorToolbar.stories.tsx +46 -30
  125. package/src/stories/Experimental.stories.tsx +18 -16
  126. package/src/stories/Markdown.stories.tsx +37 -33
  127. package/src/stories/Outliner.stories.tsx +53 -42
  128. package/src/stories/Popover.stories.tsx +158 -0
  129. package/src/stories/Preview.stories.tsx +101 -91
  130. package/src/stories/Tags.stories.tsx +104 -0
  131. package/src/stories/TextEditor.stories.tsx +50 -75
  132. package/src/stories/Theme.stories.tsx +61 -0
  133. package/src/stories/components/EditorStory.tsx +41 -33
  134. package/src/stories/components/util.tsx +43 -11
  135. package/src/translations.ts +5 -5
  136. package/src/util/index.ts +1 -5
  137. package/src/util/react.tsx +7 -3
  138. package/dist/lib/browser/chunk-22UMM3QJ.mjs +0 -22
  139. package/dist/lib/browser/chunk-22UMM3QJ.mjs.map +0 -7
  140. package/dist/lib/browser/testing/index.mjs +0 -6
  141. package/dist/lib/browser/testing/index.mjs.map +0 -7
  142. package/dist/lib/browser/types/index.mjs +0 -13
  143. package/dist/lib/browser/types/index.mjs.map +0 -7
  144. package/dist/lib/node-esm/chunk-YXYQPV6R.mjs +0 -24
  145. package/dist/lib/node-esm/chunk-YXYQPV6R.mjs.map +0 -7
  146. package/dist/lib/node-esm/testing/index.mjs +0 -8
  147. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  148. package/dist/lib/node-esm/types/index.mjs +0 -14
  149. package/dist/lib/node-esm/types/index.mjs.map +0 -7
  150. package/dist/types/src/components/EditorToolbar/lists.d.ts +0 -19
  151. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +0 -1
  152. package/dist/types/src/components/EditorToolbar/util.d.ts +0 -51
  153. package/dist/types/src/components/EditorToolbar/util.d.ts.map +0 -1
  154. package/dist/types/src/components/Popover/CommandMenu.d.ts +0 -34
  155. package/dist/types/src/components/Popover/CommandMenu.d.ts.map +0 -1
  156. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts +0 -21
  157. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +0 -1
  158. package/dist/types/src/components/Popover/RefPopover.d.ts +0 -34
  159. package/dist/types/src/components/Popover/RefPopover.d.ts.map +0 -1
  160. package/dist/types/src/components/Popover/index.d.ts +0 -4
  161. package/dist/types/src/components/Popover/index.d.ts.map +0 -1
  162. package/dist/types/src/defaults.d.ts +0 -14
  163. package/dist/types/src/defaults.d.ts.map +0 -1
  164. package/dist/types/src/extensions/annotations.d.ts +0 -9
  165. package/dist/types/src/extensions/annotations.d.ts.map +0 -1
  166. package/dist/types/src/extensions/autocomplete.d.ts +0 -13
  167. package/dist/types/src/extensions/autocomplete.d.ts.map +0 -1
  168. package/dist/types/src/extensions/automerge/automerge.d.ts +0 -4
  169. package/dist/types/src/extensions/automerge/automerge.d.ts.map +0 -1
  170. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +0 -1
  171. package/dist/types/src/extensions/automerge/automerge.test.d.ts +0 -2
  172. package/dist/types/src/extensions/automerge/automerge.test.d.ts.map +0 -1
  173. package/dist/types/src/extensions/automerge/cursor.d.ts +0 -4
  174. package/dist/types/src/extensions/automerge/cursor.d.ts.map +0 -1
  175. package/dist/types/src/extensions/automerge/defs.d.ts +0 -17
  176. package/dist/types/src/extensions/automerge/defs.d.ts.map +0 -1
  177. package/dist/types/src/extensions/automerge/index.d.ts +0 -2
  178. package/dist/types/src/extensions/automerge/index.d.ts.map +0 -1
  179. package/dist/types/src/extensions/automerge/sync.d.ts +0 -17
  180. package/dist/types/src/extensions/automerge/sync.d.ts.map +0 -1
  181. package/dist/types/src/extensions/automerge/update-automerge.d.ts +0 -6
  182. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +0 -1
  183. package/dist/types/src/extensions/automerge/update-codemirror.d.ts +0 -5
  184. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +0 -1
  185. package/dist/types/src/extensions/awareness/awareness-provider.d.ts +0 -31
  186. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +0 -1
  187. package/dist/types/src/extensions/awareness/awareness.d.ts +0 -46
  188. package/dist/types/src/extensions/awareness/awareness.d.ts.map +0 -1
  189. package/dist/types/src/extensions/awareness/index.d.ts +0 -3
  190. package/dist/types/src/extensions/awareness/index.d.ts.map +0 -1
  191. package/dist/types/src/extensions/blast.d.ts +0 -25
  192. package/dist/types/src/extensions/blast.d.ts.map +0 -1
  193. package/dist/types/src/extensions/command/action.d.ts +0 -17
  194. package/dist/types/src/extensions/command/action.d.ts.map +0 -1
  195. package/dist/types/src/extensions/command/command-menu.d.ts +0 -20
  196. package/dist/types/src/extensions/command/command-menu.d.ts.map +0 -1
  197. package/dist/types/src/extensions/command/command.d.ts +0 -6
  198. package/dist/types/src/extensions/command/command.d.ts.map +0 -1
  199. package/dist/types/src/extensions/command/floating-menu.d.ts +0 -7
  200. package/dist/types/src/extensions/command/floating-menu.d.ts.map +0 -1
  201. package/dist/types/src/extensions/command/hint.d.ts +0 -24
  202. package/dist/types/src/extensions/command/hint.d.ts.map +0 -1
  203. package/dist/types/src/extensions/command/index.d.ts +0 -7
  204. package/dist/types/src/extensions/command/index.d.ts.map +0 -1
  205. package/dist/types/src/extensions/command/placeholder.d.ts +0 -10
  206. package/dist/types/src/extensions/command/placeholder.d.ts.map +0 -1
  207. package/dist/types/src/extensions/command/state.d.ts +0 -16
  208. package/dist/types/src/extensions/command/state.d.ts.map +0 -1
  209. package/dist/types/src/extensions/command/typeahead.d.ts +0 -22
  210. package/dist/types/src/extensions/command/typeahead.d.ts.map +0 -1
  211. package/dist/types/src/extensions/command/useCommandMenu.d.ts +0 -26
  212. package/dist/types/src/extensions/command/useCommandMenu.d.ts.map +0 -1
  213. package/dist/types/src/extensions/comments.d.ts +0 -95
  214. package/dist/types/src/extensions/comments.d.ts.map +0 -1
  215. package/dist/types/src/extensions/debug.d.ts +0 -3
  216. package/dist/types/src/extensions/debug.d.ts.map +0 -1
  217. package/dist/types/src/extensions/dnd.d.ts +0 -9
  218. package/dist/types/src/extensions/dnd.d.ts.map +0 -1
  219. package/dist/types/src/extensions/factories.d.ts +0 -82
  220. package/dist/types/src/extensions/factories.d.ts.map +0 -1
  221. package/dist/types/src/extensions/focus.d.ts +0 -7
  222. package/dist/types/src/extensions/focus.d.ts.map +0 -1
  223. package/dist/types/src/extensions/folding.d.ts +0 -7
  224. package/dist/types/src/extensions/folding.d.ts.map +0 -1
  225. package/dist/types/src/extensions/hashtag.d.ts +0 -3
  226. package/dist/types/src/extensions/hashtag.d.ts.map +0 -1
  227. package/dist/types/src/extensions/index.d.ts +0 -23
  228. package/dist/types/src/extensions/index.d.ts.map +0 -1
  229. package/dist/types/src/extensions/json.d.ts +0 -7
  230. package/dist/types/src/extensions/json.d.ts.map +0 -1
  231. package/dist/types/src/extensions/listener.d.ts +0 -11
  232. package/dist/types/src/extensions/listener.d.ts.map +0 -1
  233. package/dist/types/src/extensions/markdown/action.d.ts +0 -12
  234. package/dist/types/src/extensions/markdown/action.d.ts.map +0 -1
  235. package/dist/types/src/extensions/markdown/bundle.d.ts +0 -16
  236. package/dist/types/src/extensions/markdown/bundle.d.ts.map +0 -1
  237. package/dist/types/src/extensions/markdown/changes.d.ts +0 -10
  238. package/dist/types/src/extensions/markdown/changes.d.ts.map +0 -1
  239. package/dist/types/src/extensions/markdown/changes.test.d.ts +0 -2
  240. package/dist/types/src/extensions/markdown/changes.test.d.ts.map +0 -1
  241. package/dist/types/src/extensions/markdown/debug.d.ts +0 -11
  242. package/dist/types/src/extensions/markdown/debug.d.ts.map +0 -1
  243. package/dist/types/src/extensions/markdown/decorate.d.ts +0 -17
  244. package/dist/types/src/extensions/markdown/decorate.d.ts.map +0 -1
  245. package/dist/types/src/extensions/markdown/formatting.d.ts +0 -63
  246. package/dist/types/src/extensions/markdown/formatting.d.ts.map +0 -1
  247. package/dist/types/src/extensions/markdown/formatting.test.d.ts +0 -3
  248. package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +0 -1
  249. package/dist/types/src/extensions/markdown/highlight.d.ts +0 -37
  250. package/dist/types/src/extensions/markdown/highlight.d.ts.map +0 -1
  251. package/dist/types/src/extensions/markdown/image.d.ts +0 -7
  252. package/dist/types/src/extensions/markdown/image.d.ts.map +0 -1
  253. package/dist/types/src/extensions/markdown/index.d.ts +0 -10
  254. package/dist/types/src/extensions/markdown/index.d.ts.map +0 -1
  255. package/dist/types/src/extensions/markdown/link.d.ts +0 -7
  256. package/dist/types/src/extensions/markdown/link.d.ts.map +0 -1
  257. package/dist/types/src/extensions/markdown/parser.test.d.ts +0 -2
  258. package/dist/types/src/extensions/markdown/parser.test.d.ts.map +0 -1
  259. package/dist/types/src/extensions/markdown/styles.d.ts +0 -4
  260. package/dist/types/src/extensions/markdown/styles.d.ts.map +0 -1
  261. package/dist/types/src/extensions/markdown/table.d.ts +0 -8
  262. package/dist/types/src/extensions/markdown/table.d.ts.map +0 -1
  263. package/dist/types/src/extensions/mention.d.ts +0 -7
  264. package/dist/types/src/extensions/mention.d.ts.map +0 -1
  265. package/dist/types/src/extensions/modes.d.ts +0 -10
  266. package/dist/types/src/extensions/modes.d.ts.map +0 -1
  267. package/dist/types/src/extensions/outliner/commands.d.ts +0 -10
  268. package/dist/types/src/extensions/outliner/commands.d.ts.map +0 -1
  269. package/dist/types/src/extensions/outliner/editor.d.ts +0 -5
  270. package/dist/types/src/extensions/outliner/editor.d.ts.map +0 -1
  271. package/dist/types/src/extensions/outliner/editor.test.d.ts +0 -2
  272. package/dist/types/src/extensions/outliner/editor.test.d.ts.map +0 -1
  273. package/dist/types/src/extensions/outliner/index.d.ts +0 -4
  274. package/dist/types/src/extensions/outliner/index.d.ts.map +0 -1
  275. package/dist/types/src/extensions/outliner/outliner.d.ts +0 -11
  276. package/dist/types/src/extensions/outliner/outliner.d.ts.map +0 -1
  277. package/dist/types/src/extensions/outliner/outliner.test.d.ts +0 -2
  278. package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +0 -1
  279. package/dist/types/src/extensions/outliner/selection.d.ts +0 -12
  280. package/dist/types/src/extensions/outliner/selection.d.ts.map +0 -1
  281. package/dist/types/src/extensions/outliner/tree.d.ts +0 -79
  282. package/dist/types/src/extensions/outliner/tree.d.ts.map +0 -1
  283. package/dist/types/src/extensions/outliner/tree.test.d.ts +0 -2
  284. package/dist/types/src/extensions/outliner/tree.test.d.ts.map +0 -1
  285. package/dist/types/src/extensions/preview/index.d.ts +0 -2
  286. package/dist/types/src/extensions/preview/index.d.ts.map +0 -1
  287. package/dist/types/src/extensions/preview/preview.d.ts +0 -32
  288. package/dist/types/src/extensions/preview/preview.d.ts.map +0 -1
  289. package/dist/types/src/extensions/selection.d.ts +0 -24
  290. package/dist/types/src/extensions/selection.d.ts.map +0 -1
  291. package/dist/types/src/extensions/typewriter.d.ts +0 -10
  292. package/dist/types/src/extensions/typewriter.d.ts.map +0 -1
  293. package/dist/types/src/stories/Command.stories.d.ts +0 -7
  294. package/dist/types/src/stories/Command.stories.d.ts.map +0 -1
  295. package/dist/types/src/stories/CommandMenu.stories.d.ts +0 -13
  296. package/dist/types/src/stories/CommandMenu.stories.d.ts.map +0 -1
  297. package/dist/types/src/styles/index.d.ts +0 -4
  298. package/dist/types/src/styles/index.d.ts.map +0 -1
  299. package/dist/types/src/styles/markdown.d.ts +0 -8
  300. package/dist/types/src/styles/markdown.d.ts.map +0 -1
  301. package/dist/types/src/styles/theme.d.ts +0 -38
  302. package/dist/types/src/styles/theme.d.ts.map +0 -1
  303. package/dist/types/src/styles/tokens.d.ts +0 -3
  304. package/dist/types/src/styles/tokens.d.ts.map +0 -1
  305. package/dist/types/src/testing/index.d.ts +0 -2
  306. package/dist/types/src/testing/index.d.ts.map +0 -1
  307. package/dist/types/src/testing/util.d.ts +0 -2
  308. package/dist/types/src/testing/util.d.ts.map +0 -1
  309. package/dist/types/src/types/index.d.ts +0 -2
  310. package/dist/types/src/types/index.d.ts.map +0 -1
  311. package/dist/types/src/types/types.d.ts +0 -21
  312. package/dist/types/src/types/types.d.ts.map +0 -1
  313. package/dist/types/src/util/cursor.d.ts +0 -31
  314. package/dist/types/src/util/cursor.d.ts.map +0 -1
  315. package/dist/types/src/util/debug.d.ts +0 -17
  316. package/dist/types/src/util/debug.d.ts.map +0 -1
  317. package/dist/types/src/util/dom.d.ts +0 -20
  318. package/dist/types/src/util/dom.d.ts.map +0 -1
  319. package/dist/types/src/util/facet.d.ts +0 -3
  320. package/dist/types/src/util/facet.d.ts.map +0 -1
  321. package/src/components/EditorToolbar/lists.ts +0 -59
  322. package/src/components/EditorToolbar/util.ts +0 -65
  323. package/src/components/Popover/CommandMenu.tsx +0 -279
  324. package/src/components/Popover/RefDropdownMenu.tsx +0 -85
  325. package/src/components/Popover/RefPopover.tsx +0 -99
  326. package/src/components/Popover/index.ts +0 -7
  327. package/src/defaults.ts +0 -49
  328. package/src/extensions/annotations.ts +0 -55
  329. package/src/extensions/autocomplete.ts +0 -69
  330. package/src/extensions/automerge/automerge.stories.tsx +0 -142
  331. package/src/extensions/automerge/automerge.test.tsx +0 -78
  332. package/src/extensions/automerge/automerge.ts +0 -85
  333. package/src/extensions/automerge/cursor.ts +0 -28
  334. package/src/extensions/automerge/defs.ts +0 -31
  335. package/src/extensions/automerge/index.ts +0 -5
  336. package/src/extensions/automerge/sync.ts +0 -75
  337. package/src/extensions/automerge/update-automerge.ts +0 -50
  338. package/src/extensions/automerge/update-codemirror.ts +0 -115
  339. package/src/extensions/awareness/awareness-provider.ts +0 -127
  340. package/src/extensions/awareness/awareness.ts +0 -315
  341. package/src/extensions/awareness/index.ts +0 -6
  342. package/src/extensions/blast.ts +0 -363
  343. package/src/extensions/command/action.ts +0 -56
  344. package/src/extensions/command/command-menu.ts +0 -210
  345. package/src/extensions/command/command.ts +0 -34
  346. package/src/extensions/command/floating-menu.ts +0 -133
  347. package/src/extensions/command/hint.ts +0 -102
  348. package/src/extensions/command/index.ts +0 -10
  349. package/src/extensions/command/placeholder.ts +0 -113
  350. package/src/extensions/command/state.ts +0 -89
  351. package/src/extensions/command/typeahead.ts +0 -129
  352. package/src/extensions/command/useCommandMenu.ts +0 -118
  353. package/src/extensions/comments.ts +0 -592
  354. package/src/extensions/debug.ts +0 -15
  355. package/src/extensions/dnd.ts +0 -37
  356. package/src/extensions/factories.ts +0 -259
  357. package/src/extensions/focus.ts +0 -35
  358. package/src/extensions/folding.tsx +0 -46
  359. package/src/extensions/hashtag.tsx +0 -68
  360. package/src/extensions/index.ts +0 -26
  361. package/src/extensions/json.ts +0 -57
  362. package/src/extensions/listener.ts +0 -38
  363. package/src/extensions/markdown/action.ts +0 -116
  364. package/src/extensions/markdown/bundle.ts +0 -71
  365. package/src/extensions/markdown/changes.test.ts +0 -26
  366. package/src/extensions/markdown/changes.ts +0 -149
  367. package/src/extensions/markdown/debug.ts +0 -44
  368. package/src/extensions/markdown/decorate.ts +0 -591
  369. package/src/extensions/markdown/formatting.test.ts +0 -498
  370. package/src/extensions/markdown/formatting.ts +0 -1267
  371. package/src/extensions/markdown/highlight.ts +0 -183
  372. package/src/extensions/markdown/image.ts +0 -119
  373. package/src/extensions/markdown/index.ts +0 -13
  374. package/src/extensions/markdown/link.ts +0 -47
  375. package/src/extensions/markdown/parser.test.ts +0 -75
  376. package/src/extensions/markdown/styles.ts +0 -135
  377. package/src/extensions/markdown/table.ts +0 -144
  378. package/src/extensions/mention.ts +0 -41
  379. package/src/extensions/modes.ts +0 -41
  380. package/src/extensions/outliner/commands.ts +0 -270
  381. package/src/extensions/outliner/editor.test.ts +0 -33
  382. package/src/extensions/outliner/editor.ts +0 -184
  383. package/src/extensions/outliner/index.ts +0 -7
  384. package/src/extensions/outliner/outliner.test.ts +0 -99
  385. package/src/extensions/outliner/outliner.ts +0 -166
  386. package/src/extensions/outliner/selection.ts +0 -50
  387. package/src/extensions/outliner/tree.test.ts +0 -167
  388. package/src/extensions/outliner/tree.ts +0 -317
  389. package/src/extensions/preview/index.ts +0 -5
  390. package/src/extensions/preview/preview.ts +0 -193
  391. package/src/extensions/selection.ts +0 -100
  392. package/src/extensions/typewriter.ts +0 -68
  393. package/src/stories/Command.stories.tsx +0 -97
  394. package/src/stories/CommandMenu.stories.tsx +0 -159
  395. package/src/styles/index.ts +0 -7
  396. package/src/styles/markdown.ts +0 -26
  397. package/src/styles/theme.ts +0 -266
  398. package/src/styles/tokens.ts +0 -17
  399. package/src/testing/index.ts +0 -5
  400. package/src/testing/util.ts +0 -5
  401. package/src/types/index.ts +0 -5
  402. package/src/types/types.ts +0 -32
  403. package/src/util/cursor.ts +0 -55
  404. package/src/util/debug.ts +0 -64
  405. package/src/util/dom.ts +0 -56
  406. package/src/util/facet.ts +0 -13
@@ -1,97 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import React, { useState, type KeyboardEvent } from 'react';
8
-
9
- import { Button, Icon, Input, DropdownMenu } from '@dxos/react-ui';
10
- import { mx } from '@dxos/react-ui-theme';
11
- import { withLayout, withTheme, type Meta } from '@dxos/storybook-utils';
12
-
13
- import { EditorStory } from './components';
14
- import { RefDropdownMenu } from '../components';
15
- import { editorWidth } from '../defaults';
16
- import { command, type Action, floatingMenu } from '../extensions';
17
- import { str } from '../testing';
18
- import { createRenderer } from '../util';
19
-
20
- const CommandDialog = ({ onAction }: { onAction: (action?: Action) => void }) => {
21
- const [text, setText] = useState('');
22
-
23
- const handleInsert = () => {
24
- // TODO(burdon): Use queue ref.
25
- const link = `[${text}](dxn:queue:data:123)`;
26
- onAction(text.length ? { type: 'insert', text: link } : undefined);
27
- };
28
-
29
- const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {
30
- switch (event.key) {
31
- case 'Enter': {
32
- handleInsert();
33
- break;
34
- }
35
- case 'Escape': {
36
- onAction();
37
- break;
38
- }
39
- }
40
- };
41
-
42
- return (
43
- <div className='flex w-full justify-center'>
44
- <div
45
- className={mx(
46
- 'flex w-full p-2 gap-2 items-center bg-modalSurface border border-separator rounded-md',
47
- editorWidth,
48
- )}
49
- >
50
- <Input.Root>
51
- <Input.TextInput
52
- autoFocus={true}
53
- placeholder='Ask a question...'
54
- value={text}
55
- onChange={(ev) => setText(ev.target.value)}
56
- onKeyDown={handleKeyDown}
57
- />
58
- </Input.Root>
59
- <Button variant='ghost' classNames='pli-0' onClick={() => onAction({ type: 'cancel' })}>
60
- <Icon icon='ph--x--regular' size={5} />
61
- </Button>
62
- </div>
63
- </div>
64
- );
65
- };
66
-
67
- const meta: Meta<typeof EditorStory> = {
68
- title: 'ui/react-ui-editor/Command',
69
- decorators: [withTheme, withLayout({ fullscreen: true })],
70
- render: () => (
71
- <RefDropdownMenu.Provider>
72
- <EditorStory
73
- text={str('# Command', '', '', '')}
74
- extensions={[
75
- floatingMenu(),
76
- command({
77
- renderDialog: createRenderer(CommandDialog),
78
- onHint: () => "Press '/' for commands",
79
- }),
80
- ]}
81
- />
82
- <DropdownMenu.Portal>
83
- <DropdownMenu.Content>
84
- <DropdownMenu.Viewport>
85
- <DropdownMenu.Item onClick={() => console.log('!')}>Test</DropdownMenu.Item>
86
- </DropdownMenu.Viewport>
87
- <DropdownMenu.Arrow />
88
- </DropdownMenu.Content>
89
- </DropdownMenu.Portal>
90
- </RefDropdownMenu.Provider>
91
- ),
92
- parameters: { layout: 'fullscreen' },
93
- };
94
-
95
- export default meta;
96
-
97
- export const Default = {};
@@ -1,159 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { type EditorView } from '@codemirror/view';
8
- import { type StoryObj } from '@storybook/react-vite';
9
- import React, { useCallback, useRef } from 'react';
10
-
11
- import { Obj, Query } from '@dxos/echo';
12
- import { faker } from '@dxos/random';
13
- import { useClientProvider, withClientProvider } from '@dxos/react-client/testing';
14
- import { createObjectFactory, Testing, type ValueGenerator } from '@dxos/schema/testing';
15
- import { withLayout, withTheme, type Meta } from '@dxos/storybook-utils';
16
-
17
- import { EditorStory, names } from './components';
18
- import {
19
- CommandMenu,
20
- type CommandMenuGroup,
21
- type CommandMenuItem,
22
- RefPopover,
23
- coreSlashCommands,
24
- filterItems,
25
- insertAtCursor,
26
- insertAtLineStart,
27
- linkSlashCommands,
28
- } from '../components';
29
- import { useCommandMenu, type UseCommandMenuOptions } from '../extensions';
30
- import { str } from '../testing';
31
- import { createElement } from '../util';
32
-
33
- const generator: ValueGenerator = faker as any;
34
-
35
- type StoryProps = Omit<UseCommandMenuOptions, 'viewRef'> & { text: string };
36
-
37
- const DefaultStory = ({ text, ...options }: StoryProps) => {
38
- const viewRef = useRef<EditorView>();
39
- const { commandMenu, groupsRef, currentItem, onSelect, ...props } = useCommandMenu({ viewRef, ...options });
40
-
41
- return (
42
- <RefPopover modal={false} {...props}>
43
- <EditorStory ref={viewRef} text={text} placeholder={''} extensions={commandMenu} />
44
- <CommandMenu groups={groupsRef.current} currentItem={currentItem} onSelect={onSelect} />
45
- </RefPopover>
46
- );
47
- };
48
-
49
- const groups: CommandMenuGroup[] = [
50
- coreSlashCommands,
51
- linkSlashCommands,
52
- {
53
- id: 'custom',
54
- label: 'Custom',
55
- items: [
56
- {
57
- id: 'custom-1',
58
- label: 'Log',
59
- icon: 'ph--log--regular',
60
- onSelect: console.log,
61
- },
62
- ],
63
- },
64
- ];
65
-
66
- const meta: Meta<StoryProps> = {
67
- title: 'ui/react-ui-editor/CommandMenu',
68
- decorators: [withTheme, withLayout({ fullscreen: true })],
69
- render: (args) => <DefaultStory {...args} />,
70
- parameters: {
71
- layout: 'fullscreen',
72
- },
73
- };
74
-
75
- export default meta;
76
-
77
- type Story = StoryObj<StoryProps>;
78
-
79
- // TODO(burdon): Not working.
80
- export const Slash: Story = {
81
- args: {
82
- text: str('# Slash', '', names.join(' '), ''),
83
- trigger: '/',
84
- placeholder: {
85
- content: () => {
86
- return createElement('div', undefined, [
87
- createElement('span', { text: 'Press' }),
88
- createElement('span', { className: 'border border-separator rounded-sm mx-1 px-1', text: '/' }),
89
- createElement('span', { text: 'for commands' }),
90
- ]);
91
- },
92
- },
93
- getMenu: (text) => {
94
- return filterItems(groups, (item) =>
95
- text ? (item.label as string).toLowerCase().includes(text.toLowerCase()) : true,
96
- );
97
- },
98
- },
99
- };
100
-
101
- export const Link: Story = {
102
- render: (args) => {
103
- const { space } = useClientProvider();
104
- const getMenu = useCallback(
105
- async (trigger: string, query?: string): Promise<CommandMenuGroup[]> => {
106
- if (trigger === '/') {
107
- return filterItems(groups, (item) =>
108
- query ? (item.label as string).toLowerCase().includes(query.toLowerCase()) : true,
109
- );
110
- }
111
-
112
- if (!space) {
113
- return [];
114
- }
115
-
116
- const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? '';
117
- const result = await space?.db.query(Query.type(Testing.Contact)).run();
118
- const items = result.objects
119
- .filter((object) => object.name.toLowerCase().includes(name))
120
- .map(
121
- (object): CommandMenuItem => ({
122
- id: object.id,
123
- label: object.name,
124
- icon: 'ph--user--regular',
125
- onSelect: (view, head) => {
126
- const link = `[${object.name}][${Obj.getDXN(object)}]`;
127
- if (query?.startsWith('@')) {
128
- insertAtLineStart(view, head, `!${link}\n`);
129
- } else {
130
- insertAtCursor(view, head, `${link} `);
131
- }
132
- },
133
- }),
134
- );
135
- return [{ id: 'echo', items }];
136
- },
137
- [space],
138
- );
139
-
140
- return <DefaultStory {...args} getMenu={getMenu} />;
141
- },
142
- args: {
143
- text: str('# Link', '', names.join(' '), ''),
144
- trigger: ['/', '@'],
145
- },
146
- decorators: [
147
- withClientProvider({
148
- createSpace: true,
149
- onInitialized: async (client) => {
150
- client.addTypes([Testing.Contact]);
151
- },
152
- onSpaceCreated: async ({ space }) => {
153
- const createObjects = createObjectFactory(space.db, generator);
154
- await createObjects([{ type: Testing.Contact, count: 10 }]);
155
- await space.db.flush({ indexes: true });
156
- },
157
- }),
158
- ],
159
- };
@@ -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,266 +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: 1.5,
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-separator)',
83
- },
84
- '.cm-gutter.cm-lineNumbers .cm-gutterElement': {
85
- minWidth: '40px',
86
- alignContent: 'center',
87
- },
88
- /**
89
- * Height is set to match the corresponding line.
90
- */
91
- '.cm-gutterElement': {
92
- alignItems: 'center',
93
- fontSize: '12px',
94
- },
95
-
96
- /**
97
- * Line.
98
- */
99
- '.cm-line': {
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: '4px',
169
- marginLeft: '-3px',
170
- borderColor: 'var(--dx-separator)',
171
- borderTop: 'none',
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-hoverSurface)',
181
- },
182
- '.cm-tooltip.cm-tooltip-autocomplete > ul > completion-section': {
183
- paddingLeft: '4px !important',
184
- borderBottom: 'none !important',
185
- color: 'var(--dx-accentText)',
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
- },
200
- '.cm-completionMatchedText': {
201
- textDecoration: 'none !important',
202
- opacity: 0.5,
203
- },
204
-
205
- /**
206
- * Panels
207
- * https://github.com/codemirror/search/blob/main/src/search.ts#L745
208
- *
209
- * Find/replace panel.
210
- * <div class="cm-announced">...</div>
211
- * <div class="cm-scroller">...</div>
212
- * <div class="cm-panels cm-panels-bottom">
213
- * <div class="cm-search cm-panel">
214
- * <input class="cm-textfield" />
215
- * <button class="cm-button">...</button>
216
- * <label><input type="checkbox" />...</label>
217
- * </div>
218
- * </div
219
- */
220
- // TODO(burdon): Implement custom panel (with icon buttons).
221
- '.cm-panels': {},
222
- '.cm-panel': {
223
- fontFamily: fontBody,
224
- backgroundColor: 'var(--surface-bg)',
225
- },
226
- '.cm-panel input, .cm-panel button, .cm-panel label': {
227
- color: 'var(--dx-subdued)',
228
- fontFamily: fontBody,
229
- fontSize: '14px',
230
- all: 'unset',
231
- margin: '3px !important',
232
- padding: '2px 6px !important',
233
- outline: '1px solid transparent',
234
- },
235
- '.cm-panel input, .cm-panel button': {
236
- backgroundColor: 'var(--dx-input)',
237
- },
238
- '.cm-panel input:focus, .cm-panel button:focus': {
239
- outline: '1px solid var(--dx-neutralFocusIndicator)',
240
- },
241
- '.cm-panel label': {
242
- display: 'inline-flex',
243
- alignItems: 'center',
244
- cursor: 'pointer',
245
- },
246
- '.cm-panel input.cm-textfield': {},
247
- '.cm-panel input[type=checkbox]': {
248
- width: '8px',
249
- height: '8px',
250
- marginRight: '6px !important',
251
- padding: '2px !important',
252
- color: 'var(--dx-neutralFocusIndicator)',
253
- },
254
- '.cm-panel button': {
255
- '&:hover': {
256
- backgroundColor: 'var(--dx-accentSurfaceHover) !important',
257
- },
258
- '&:active': {
259
- backgroundColor: 'var(--dx-accentSurfaceHover)',
260
- },
261
- },
262
- '.cm-panel.cm-search': {
263
- padding: '4px',
264
- borderTop: '1px solid var(--dx-separator)',
265
- },
266
- };
@@ -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 2022 DXOS.org
3
- //
4
-
5
- export * from './util';
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- 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 { Schema } from 'effect';
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,55 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { type EditorState } from '@codemirror/state';
6
-
7
- import { singleValueFacet } from './facet';
8
- import { type Range } from '../types';
9
-
10
- /**
11
- * Determines if two ranges overlap.
12
- * A range is considered to overlap if there is any intersection
13
- * between the two ranges, inclusive of their boundaries.
14
- */
15
- export const overlap = (a: Range, b: Range): boolean => a.from <= b.to && a.to >= b.from;
16
-
17
- /**
18
- * Converts indexes into the text document into stable peer-independent cursors.
19
- *
20
- * See:
21
- * - https://automerge.org/automerge/api-docs/js/functions/next.getCursor.html
22
- * - https://github.com/yjs/yjs?tab=readme-ov-file#relative-positions
23
- *
24
- * @param {assoc} number Negative values will associate the cursor with the previous character
25
- * while positive - with the next one.
26
- */
27
- export interface CursorConverter {
28
- toCursor(position: number, assoc?: -1 | 1 | undefined): string;
29
- fromCursor(cursor: string): number;
30
- }
31
-
32
- const defaultCursorConverter: CursorConverter = {
33
- toCursor: (position) => position.toString(),
34
- fromCursor: (cursor) => parseInt(cursor),
35
- };
36
-
37
- export class Cursor {
38
- static readonly converter = singleValueFacet(defaultCursorConverter);
39
-
40
- static readonly getCursorFromRange = (state: EditorState, range: Range) => {
41
- const cursorConverter = state.facet(Cursor.converter);
42
- const from = cursorConverter.toCursor(range.from);
43
- const to = cursorConverter.toCursor(range.to, -1);
44
- return [from, to].join(':');
45
- };
46
-
47
- static readonly getRangeFromCursor = (state: EditorState, cursor: string) => {
48
- const cursorConverter = state.facet(Cursor.converter);
49
-
50
- const parts = cursor.split(':');
51
- const from = cursorConverter.fromCursor(parts[0]);
52
- const to = cursorConverter.fromCursor(parts[1]);
53
- return from !== undefined && to !== undefined ? { from, to } : undefined;
54
- };
55
- }