@dxos/react-ui-editor 0.8.4-main.5ea62a8 → 0.8.4-main.72ec0f3

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 (347) hide show
  1. package/dist/lib/browser/{chunk-22UMM3QJ.mjs → chunk-HL3YF6WC.mjs} +2 -2
  2. package/dist/lib/browser/chunk-HL3YF6WC.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +5006 -3698
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/types/index.mjs +1 -1
  7. package/dist/lib/node-esm/{chunk-YXYQPV6R.mjs → chunk-YJZGD3LY.mjs} +2 -2
  8. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs.map +7 -0
  9. package/dist/lib/node-esm/index.mjs +5006 -3698
  10. package/dist/lib/node-esm/index.mjs.map +4 -4
  11. package/dist/lib/node-esm/meta.json +1 -1
  12. package/dist/lib/node-esm/types/index.mjs +1 -1
  13. package/dist/types/src/components/Editor/Editor.d.ts +37 -15
  14. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  15. package/dist/types/src/components/Editor/Editor.stories.d.ts +20 -0
  16. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -0
  17. package/dist/types/src/components/EditorContent/EditorContent.d.ts +29 -0
  18. package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +1 -0
  19. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts +26 -0
  20. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts.map +1 -0
  21. package/dist/types/src/components/EditorContent/controller.d.ts +10 -0
  22. package/dist/types/src/components/EditorContent/controller.d.ts.map +1 -0
  23. package/dist/types/src/components/EditorContent/index.d.ts +3 -0
  24. package/dist/types/src/components/EditorContent/index.d.ts.map +1 -0
  25. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts +36 -0
  26. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -0
  27. package/dist/types/src/components/EditorMenuProvider/index.d.ts +7 -0
  28. package/dist/types/src/components/EditorMenuProvider/index.d.ts.map +1 -0
  29. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts +4 -0
  30. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -0
  31. package/dist/types/src/components/EditorMenuProvider/menu.d.ts +28 -0
  32. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -0
  33. package/dist/types/src/components/EditorMenuProvider/popover.d.ts +47 -0
  34. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -0
  35. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts +34 -0
  36. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -0
  37. package/dist/types/src/components/EditorMenuProvider/util.d.ts +8 -0
  38. package/dist/types/src/components/EditorMenuProvider/util.d.ts.map +1 -0
  39. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +16 -0
  40. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -0
  41. package/dist/types/src/components/EditorPreviewProvider/index.d.ts +2 -0
  42. package/dist/types/src/components/EditorPreviewProvider/index.d.ts.map +1 -0
  43. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +26 -2
  44. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  45. package/dist/types/src/components/EditorToolbar/actions.d.ts +39 -0
  46. package/dist/types/src/components/EditorToolbar/actions.d.ts.map +1 -0
  47. package/dist/types/src/components/EditorToolbar/blocks.d.ts +3 -3
  48. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  49. package/dist/types/src/components/EditorToolbar/formatting.d.ts +3 -3
  50. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  51. package/dist/types/src/components/EditorToolbar/headings.d.ts +3 -3
  52. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  53. package/dist/types/src/components/EditorToolbar/index.d.ts +2 -1
  54. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  55. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +11 -0
  56. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +1 -0
  57. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +3 -3
  58. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  59. package/dist/types/src/components/index.d.ts +4 -2
  60. package/dist/types/src/components/index.d.ts.map +1 -1
  61. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts +17 -0
  62. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts.map +1 -0
  63. package/dist/types/src/extensions/autocomplete/index.d.ts +5 -0
  64. package/dist/types/src/extensions/autocomplete/index.d.ts.map +1 -0
  65. package/dist/types/src/extensions/autocomplete/match.d.ts +13 -0
  66. package/dist/types/src/extensions/autocomplete/match.d.ts.map +1 -0
  67. package/dist/types/src/extensions/autocomplete/placeholder.d.ts +20 -0
  68. package/dist/types/src/extensions/autocomplete/placeholder.d.ts.map +1 -0
  69. package/dist/types/src/extensions/autocomplete/typeahead.d.ts +10 -0
  70. package/dist/types/src/extensions/autocomplete/typeahead.d.ts.map +1 -0
  71. package/dist/types/src/extensions/automerge/automerge.d.ts +1 -1
  72. package/dist/types/src/extensions/automerge/automerge.d.ts.map +1 -1
  73. package/dist/types/src/extensions/automerge/automerge.stories.d.ts +1 -1
  74. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +1 -1
  75. package/dist/types/src/extensions/automerge/cursor.d.ts +1 -1
  76. package/dist/types/src/extensions/automerge/cursor.d.ts.map +1 -1
  77. package/dist/types/src/extensions/automerge/sync.d.ts +3 -3
  78. package/dist/types/src/extensions/automerge/sync.d.ts.map +1 -1
  79. package/dist/types/src/extensions/automerge/update-automerge.d.ts +1 -1
  80. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -1
  81. package/dist/types/src/extensions/autoscroll.d.ts +20 -0
  82. package/dist/types/src/extensions/autoscroll.d.ts.map +1 -0
  83. package/dist/types/src/extensions/awareness/awareness-provider.d.ts +1 -1
  84. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +1 -1
  85. package/dist/types/src/extensions/blocks.d.ts +2 -0
  86. package/dist/types/src/extensions/blocks.d.ts.map +1 -0
  87. package/dist/types/src/extensions/bookmarks.d.ts +12 -0
  88. package/dist/types/src/extensions/bookmarks.d.ts.map +1 -0
  89. package/dist/types/src/extensions/comments.d.ts.map +1 -1
  90. package/dist/types/src/extensions/factories.d.ts +11 -11
  91. package/dist/types/src/extensions/factories.d.ts.map +1 -1
  92. package/dist/types/src/extensions/focus.d.ts.map +1 -1
  93. package/dist/types/src/extensions/folding.d.ts.map +1 -1
  94. package/dist/types/src/extensions/index.d.ts +10 -1
  95. package/dist/types/src/extensions/index.d.ts.map +1 -1
  96. package/dist/types/src/extensions/json.d.ts +1 -1
  97. package/dist/types/src/extensions/json.d.ts.map +1 -1
  98. package/dist/types/src/extensions/listener.d.ts +8 -6
  99. package/dist/types/src/extensions/listener.d.ts.map +1 -1
  100. package/dist/types/src/extensions/markdown/bundle.d.ts +6 -2
  101. package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -1
  102. package/dist/types/src/extensions/markdown/changes.d.ts +1 -1
  103. package/dist/types/src/extensions/markdown/changes.d.ts.map +1 -1
  104. package/dist/types/src/extensions/markdown/decorate.d.ts +9 -1
  105. package/dist/types/src/extensions/markdown/decorate.d.ts.map +1 -1
  106. package/dist/types/src/extensions/markdown/formatting.d.ts +1 -3
  107. package/dist/types/src/extensions/markdown/formatting.d.ts.map +1 -1
  108. package/dist/types/src/extensions/markdown/image.d.ts.map +1 -1
  109. package/dist/types/src/extensions/markdown/link.d.ts.map +1 -1
  110. package/dist/types/src/extensions/modal.d.ts +7 -0
  111. package/dist/types/src/extensions/modal.d.ts.map +1 -0
  112. package/dist/types/src/extensions/modes.d.ts +1 -1
  113. package/dist/types/src/extensions/modes.d.ts.map +1 -1
  114. package/dist/types/src/extensions/outliner/menu.d.ts +8 -0
  115. package/dist/types/src/extensions/outliner/menu.d.ts.map +1 -0
  116. package/dist/types/src/extensions/outliner/outliner.d.ts +1 -1
  117. package/dist/types/src/extensions/outliner/outliner.d.ts.map +1 -1
  118. package/dist/types/src/extensions/outliner/tree.d.ts +1 -1
  119. package/dist/types/src/extensions/outliner/tree.d.ts.map +1 -1
  120. package/dist/types/src/extensions/preview/preview.d.ts +8 -8
  121. package/dist/types/src/extensions/preview/preview.d.ts.map +1 -1
  122. package/dist/types/src/extensions/replacer.d.ts +21 -0
  123. package/dist/types/src/extensions/replacer.d.ts.map +1 -0
  124. package/dist/types/src/extensions/replacer.test.d.ts +2 -0
  125. package/dist/types/src/extensions/replacer.test.d.ts.map +1 -0
  126. package/dist/types/src/extensions/scrolling.d.ts +78 -0
  127. package/dist/types/src/extensions/scrolling.d.ts.map +1 -0
  128. package/dist/types/src/extensions/state.d.ts +2 -0
  129. package/dist/types/src/extensions/state.d.ts.map +1 -0
  130. package/dist/types/src/extensions/submit.d.ts +10 -0
  131. package/dist/types/src/extensions/submit.d.ts.map +1 -0
  132. package/dist/types/src/extensions/tab.d.ts +4 -0
  133. package/dist/types/src/extensions/tab.d.ts.map +1 -0
  134. package/dist/types/src/extensions/tags/extended-markdown.d.ts +10 -0
  135. package/dist/types/src/extensions/tags/extended-markdown.d.ts.map +1 -0
  136. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts +2 -0
  137. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts.map +1 -0
  138. package/dist/types/src/extensions/tags/index.d.ts +4 -0
  139. package/dist/types/src/extensions/tags/index.d.ts.map +1 -0
  140. package/dist/types/src/extensions/tags/streamer.d.ts +12 -0
  141. package/dist/types/src/extensions/tags/streamer.d.ts.map +1 -0
  142. package/dist/types/src/extensions/tags/xml-tags.d.ts +97 -0
  143. package/dist/types/src/extensions/tags/xml-tags.d.ts.map +1 -0
  144. package/dist/types/src/extensions/tags/xml-util.d.ts +10 -0
  145. package/dist/types/src/extensions/tags/xml-util.d.ts.map +1 -0
  146. package/dist/types/src/hooks/useTextEditor.d.ts +5 -9
  147. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  148. package/dist/types/src/stories/{Command.stories.d.ts → CommandDialog.stories.d.ts} +2 -3
  149. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +1 -0
  150. package/dist/types/src/stories/Comments.stories.d.ts +3 -4
  151. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  152. package/dist/types/src/stories/EditorToolbar.stories.d.ts +1 -2
  153. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  154. package/dist/types/src/stories/Experimental.stories.d.ts +3 -4
  155. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  156. package/dist/types/src/stories/Markdown.stories.d.ts +3 -4
  157. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  158. package/dist/types/src/stories/Outliner.stories.d.ts +0 -1
  159. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  160. package/dist/types/src/stories/{CommandMenu.stories.d.ts → Popover.stories.d.ts} +6 -6
  161. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -0
  162. package/dist/types/src/stories/Preview.stories.d.ts +4 -4
  163. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  164. package/dist/types/src/stories/Tags.stories.d.ts +16 -0
  165. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -0
  166. package/dist/types/src/stories/TextEditor.stories.d.ts +3 -5
  167. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  168. package/dist/types/src/stories/components/EditorStory.d.ts +7 -5
  169. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  170. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  171. package/dist/types/src/styles/theme.d.ts.map +1 -1
  172. package/dist/types/src/types/types.d.ts +2 -2
  173. package/dist/types/src/types/types.d.ts.map +1 -1
  174. package/dist/types/src/util/debug.d.ts +5 -1
  175. package/dist/types/src/util/debug.d.ts.map +1 -1
  176. package/dist/types/src/util/decorations.d.ts +4 -0
  177. package/dist/types/src/util/decorations.d.ts.map +1 -0
  178. package/dist/types/src/util/dom.d.ts +2 -12
  179. package/dist/types/src/util/dom.d.ts.map +1 -1
  180. package/dist/types/src/util/index.d.ts +1 -0
  181. package/dist/types/src/util/index.d.ts.map +1 -1
  182. package/dist/types/src/util/react.d.ts +1 -1
  183. package/dist/types/src/util/react.d.ts.map +1 -1
  184. package/dist/types/tsconfig.tsbuildinfo +1 -1
  185. package/package.json +68 -66
  186. package/src/components/Editor/Editor.stories.tsx +89 -0
  187. package/src/components/Editor/Editor.tsx +160 -25
  188. package/src/components/EditorContent/EditorContent.stories.tsx +70 -0
  189. package/src/components/EditorContent/EditorContent.tsx +70 -0
  190. package/src/components/EditorContent/controller.ts +50 -0
  191. package/src/components/EditorContent/index.ts +6 -0
  192. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +233 -0
  193. package/src/components/EditorMenuProvider/index.ts +11 -0
  194. package/src/components/EditorMenuProvider/menu-presets.ts +123 -0
  195. package/src/components/EditorMenuProvider/menu.ts +71 -0
  196. package/src/components/EditorMenuProvider/popover.ts +287 -0
  197. package/src/components/EditorMenuProvider/useEditorMenu.ts +175 -0
  198. package/src/components/EditorMenuProvider/util.ts +31 -0
  199. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +82 -0
  200. package/src/components/EditorPreviewProvider/index.ts +5 -0
  201. package/src/components/EditorToolbar/EditorToolbar.tsx +101 -91
  202. package/src/components/EditorToolbar/{lists.ts → actions.ts} +46 -16
  203. package/src/components/EditorToolbar/blocks.ts +2 -1
  204. package/src/components/EditorToolbar/formatting.ts +2 -1
  205. package/src/components/EditorToolbar/headings.ts +8 -5
  206. package/src/components/EditorToolbar/image.ts +1 -1
  207. package/src/components/EditorToolbar/index.ts +3 -7
  208. package/src/components/EditorToolbar/search.ts +1 -1
  209. package/src/components/EditorToolbar/useEditorToolbar.ts +20 -0
  210. package/src/components/EditorToolbar/view-mode.ts +2 -1
  211. package/src/components/index.ts +8 -2
  212. package/src/extensions/autocomplete/autocomplete.ts +151 -0
  213. package/src/extensions/autocomplete/index.ts +8 -0
  214. package/src/extensions/autocomplete/match.ts +46 -0
  215. package/src/extensions/{command → autocomplete}/placeholder.ts +21 -17
  216. package/src/extensions/{command → autocomplete}/typeahead.ts +6 -48
  217. package/src/extensions/automerge/automerge.stories.tsx +9 -9
  218. package/src/extensions/automerge/automerge.ts +28 -9
  219. package/src/extensions/automerge/cursor.ts +1 -1
  220. package/src/extensions/automerge/sync.ts +8 -4
  221. package/src/extensions/automerge/update-automerge.ts +1 -1
  222. package/src/extensions/autoscroll.ts +163 -0
  223. package/src/extensions/awareness/awareness-provider.ts +2 -2
  224. package/src/extensions/blocks.ts +131 -0
  225. package/src/extensions/bookmarks.ts +75 -0
  226. package/src/extensions/comments.ts +7 -2
  227. package/src/extensions/factories.ts +50 -32
  228. package/src/extensions/focus.ts +5 -4
  229. package/src/extensions/folding.tsx +3 -6
  230. package/src/extensions/hashtag.tsx +2 -2
  231. package/src/extensions/index.ts +10 -1
  232. package/src/extensions/json.ts +1 -1
  233. package/src/extensions/listener.ts +14 -20
  234. package/src/extensions/markdown/bundle.ts +37 -6
  235. package/src/extensions/markdown/decorate.ts +26 -17
  236. package/src/extensions/markdown/formatting.ts +8 -10
  237. package/src/extensions/markdown/highlight.ts +1 -1
  238. package/src/extensions/markdown/image.ts +5 -6
  239. package/src/extensions/markdown/link.ts +3 -0
  240. package/src/extensions/markdown/table.ts +13 -7
  241. package/src/extensions/modal.ts +24 -0
  242. package/src/extensions/modes.ts +2 -2
  243. package/src/extensions/{command/floating-menu.ts → outliner/menu.ts} +16 -21
  244. package/src/extensions/outliner/outliner.test.ts +1 -1
  245. package/src/extensions/outliner/outliner.ts +5 -5
  246. package/src/extensions/outliner/tree.test.ts +1 -1
  247. package/src/extensions/outliner/tree.ts +1 -1
  248. package/src/extensions/preview/index.ts +1 -1
  249. package/src/extensions/preview/preview.ts +69 -69
  250. package/src/extensions/replacer.test.ts +75 -0
  251. package/src/extensions/replacer.ts +93 -0
  252. package/src/extensions/scrolling.ts +189 -0
  253. package/src/extensions/selection.ts +3 -3
  254. package/src/extensions/state.ts +7 -0
  255. package/src/extensions/submit.ts +62 -0
  256. package/src/extensions/tab.ts +29 -0
  257. package/src/extensions/tags/extended-markdown.test.ts +262 -0
  258. package/src/extensions/tags/extended-markdown.ts +78 -0
  259. package/src/extensions/tags/index.ts +7 -0
  260. package/src/extensions/tags/streamer.ts +243 -0
  261. package/src/extensions/tags/xml-tags.ts +500 -0
  262. package/src/extensions/tags/xml-util.ts +94 -0
  263. package/src/extensions/typewriter.ts +1 -1
  264. package/src/hooks/useTextEditor.ts +31 -43
  265. package/src/stories/CommandDialog.stories.tsx +83 -0
  266. package/src/stories/Comments.stories.tsx +8 -9
  267. package/src/stories/EditorToolbar.stories.tsx +15 -14
  268. package/src/stories/Experimental.stories.tsx +7 -7
  269. package/src/stories/Markdown.stories.tsx +6 -6
  270. package/src/stories/Outliner.stories.tsx +40 -32
  271. package/src/stories/Popover.stories.tsx +162 -0
  272. package/src/stories/Preview.stories.tsx +46 -43
  273. package/src/stories/Tags.stories.tsx +95 -0
  274. package/src/stories/TextEditor.stories.tsx +10 -33
  275. package/src/stories/components/EditorStory.tsx +30 -17
  276. package/src/stories/components/util.tsx +40 -8
  277. package/src/styles/markdown.ts +1 -1
  278. package/src/styles/theme.ts +13 -11
  279. package/src/types/types.ts +1 -1
  280. package/src/util/debug.ts +7 -2
  281. package/src/util/decorations.ts +21 -0
  282. package/src/util/dom.ts +5 -27
  283. package/src/util/index.ts +1 -0
  284. package/src/util/react.tsx +1 -1
  285. package/dist/lib/browser/chunk-22UMM3QJ.mjs.map +0 -7
  286. package/dist/lib/browser/testing/index.mjs +0 -6
  287. package/dist/lib/browser/testing/index.mjs.map +0 -7
  288. package/dist/lib/node-esm/chunk-YXYQPV6R.mjs.map +0 -7
  289. package/dist/lib/node-esm/testing/index.mjs +0 -8
  290. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  291. package/dist/types/src/components/EditorToolbar/lists.d.ts +0 -19
  292. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +0 -1
  293. package/dist/types/src/components/EditorToolbar/util.d.ts +0 -51
  294. package/dist/types/src/components/EditorToolbar/util.d.ts.map +0 -1
  295. package/dist/types/src/components/Popover/CommandMenu.d.ts +0 -34
  296. package/dist/types/src/components/Popover/CommandMenu.d.ts.map +0 -1
  297. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts +0 -21
  298. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +0 -1
  299. package/dist/types/src/components/Popover/RefPopover.d.ts +0 -34
  300. package/dist/types/src/components/Popover/RefPopover.d.ts.map +0 -1
  301. package/dist/types/src/components/Popover/index.d.ts +0 -4
  302. package/dist/types/src/components/Popover/index.d.ts.map +0 -1
  303. package/dist/types/src/extensions/autocomplete.d.ts +0 -13
  304. package/dist/types/src/extensions/autocomplete.d.ts.map +0 -1
  305. package/dist/types/src/extensions/command/action.d.ts +0 -17
  306. package/dist/types/src/extensions/command/action.d.ts.map +0 -1
  307. package/dist/types/src/extensions/command/command-menu.d.ts +0 -20
  308. package/dist/types/src/extensions/command/command-menu.d.ts.map +0 -1
  309. package/dist/types/src/extensions/command/command.d.ts +0 -6
  310. package/dist/types/src/extensions/command/command.d.ts.map +0 -1
  311. package/dist/types/src/extensions/command/floating-menu.d.ts +0 -7
  312. package/dist/types/src/extensions/command/floating-menu.d.ts.map +0 -1
  313. package/dist/types/src/extensions/command/hint.d.ts +0 -24
  314. package/dist/types/src/extensions/command/hint.d.ts.map +0 -1
  315. package/dist/types/src/extensions/command/index.d.ts +0 -7
  316. package/dist/types/src/extensions/command/index.d.ts.map +0 -1
  317. package/dist/types/src/extensions/command/placeholder.d.ts +0 -10
  318. package/dist/types/src/extensions/command/placeholder.d.ts.map +0 -1
  319. package/dist/types/src/extensions/command/state.d.ts +0 -16
  320. package/dist/types/src/extensions/command/state.d.ts.map +0 -1
  321. package/dist/types/src/extensions/command/typeahead.d.ts +0 -22
  322. package/dist/types/src/extensions/command/typeahead.d.ts.map +0 -1
  323. package/dist/types/src/extensions/command/useCommandMenu.d.ts +0 -26
  324. package/dist/types/src/extensions/command/useCommandMenu.d.ts.map +0 -1
  325. package/dist/types/src/stories/Command.stories.d.ts.map +0 -1
  326. package/dist/types/src/stories/CommandMenu.stories.d.ts.map +0 -1
  327. package/dist/types/src/testing/index.d.ts +0 -2
  328. package/dist/types/src/testing/index.d.ts.map +0 -1
  329. package/dist/types/src/testing/util.d.ts +0 -3
  330. package/dist/types/src/testing/util.d.ts.map +0 -1
  331. package/src/components/EditorToolbar/util.ts +0 -76
  332. package/src/components/Popover/CommandMenu.tsx +0 -279
  333. package/src/components/Popover/RefDropdownMenu.tsx +0 -85
  334. package/src/components/Popover/RefPopover.tsx +0 -99
  335. package/src/components/Popover/index.ts +0 -7
  336. package/src/extensions/autocomplete.ts +0 -69
  337. package/src/extensions/command/action.ts +0 -56
  338. package/src/extensions/command/command-menu.ts +0 -211
  339. package/src/extensions/command/command.ts +0 -34
  340. package/src/extensions/command/hint.ts +0 -103
  341. package/src/extensions/command/index.ts +0 -10
  342. package/src/extensions/command/state.ts +0 -90
  343. package/src/extensions/command/useCommandMenu.ts +0 -119
  344. package/src/stories/Command.stories.tsx +0 -101
  345. package/src/stories/CommandMenu.stories.tsx +0 -161
  346. package/src/testing/index.ts +0 -5
  347. package/src/testing/util.ts +0 -7
@@ -1,119 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { type EditorView } from '@codemirror/view';
6
- import { type RefObject, useCallback, useMemo, useRef, useState } from 'react';
7
-
8
- import { type DxRefTag, type DxRefTagActivate } from '@dxos/lit-ui';
9
- import { type MaybePromise } from '@dxos/util';
10
-
11
- import { type CommandMenuGroup, type CommandMenuItem, getItem, getNextItem, getPreviousItem } from '../../components';
12
-
13
- import { commandMenu, commandRangeEffect } from './command-menu';
14
- import { type PlaceholderOptions } from './placeholder';
15
-
16
- export type UseCommandMenuOptions = {
17
- viewRef: RefObject<EditorView | undefined>;
18
- trigger: string | string[];
19
- placeholder?: Partial<PlaceholderOptions>;
20
- getMenu: (trigger: string, query?: string) => MaybePromise<CommandMenuGroup[]>;
21
- };
22
-
23
- export const useCommandMenu = ({ viewRef, trigger, placeholder, getMenu }: UseCommandMenuOptions) => {
24
- const triggerRef = useRef<DxRefTag | null>(null);
25
- const currentRef = useRef<CommandMenuItem | null>(null);
26
- const groupsRef = useRef<CommandMenuGroup[]>([]);
27
- const [currentItem, setCurrentItem] = useState<string>();
28
- const [open, setOpen] = useState(false);
29
- const [_, refresh] = useState({});
30
-
31
- const handleOpenChange = useCallback(
32
- async (open: boolean, trigger?: string) => {
33
- if (open && trigger) {
34
- groupsRef.current = await getMenu(trigger);
35
- }
36
- setOpen(open);
37
- if (!open) {
38
- triggerRef.current = null;
39
- setCurrentItem(undefined);
40
- viewRef.current?.dispatch({ effects: [commandRangeEffect.of(null)] });
41
- }
42
- },
43
- [getMenu],
44
- );
45
-
46
- const handleActivate = useCallback(
47
- async (event: DxRefTagActivate) => {
48
- const item = getItem(groupsRef.current, currentItem);
49
- if (item) {
50
- currentRef.current = item;
51
- }
52
-
53
- triggerRef.current = event.trigger;
54
- const triggerKey = event.trigger.getAttribute('data-trigger');
55
- if (!open && triggerKey) {
56
- await handleOpenChange(true, triggerKey);
57
- }
58
- },
59
- [open, handleOpenChange],
60
- );
61
-
62
- const handleSelect = useCallback((item: CommandMenuItem) => {
63
- const view = viewRef.current;
64
- if (!view) {
65
- return;
66
- }
67
-
68
- const selection = view.state.selection.main;
69
- void item.onSelect?.(view, selection.head);
70
- }, []);
71
-
72
- const serializedTrigger = Array.isArray(trigger) ? trigger.join(',') : trigger;
73
- const _commandMenu = useMemo(() => {
74
- return commandMenu({
75
- trigger,
76
- placeholder,
77
- onClose: () => handleOpenChange(false),
78
- onArrowDown: () => {
79
- setCurrentItem((currentItem) => {
80
- const next = getNextItem(groupsRef.current, currentItem);
81
- currentRef.current = next;
82
- return next.id;
83
- });
84
- },
85
- onArrowUp: () => {
86
- setCurrentItem((currentItem) => {
87
- const previous = getPreviousItem(groupsRef.current, currentItem);
88
- currentRef.current = previous;
89
- return previous.id;
90
- });
91
- },
92
- onEnter: () => {
93
- if (currentRef.current) {
94
- handleSelect(currentRef.current);
95
- }
96
- },
97
- onTextChange: async (trigger, text) => {
98
- groupsRef.current = await getMenu(trigger, text);
99
- const firstItem = groupsRef.current.filter((group) => group.items.length > 0)[0]?.items[0];
100
- if (firstItem) {
101
- setCurrentItem(firstItem.id);
102
- currentRef.current = firstItem;
103
- }
104
- refresh({});
105
- },
106
- });
107
- }, [handleOpenChange, getMenu, serializedTrigger, placeholder]);
108
-
109
- return {
110
- commandMenu: _commandMenu,
111
- currentItem,
112
- groupsRef,
113
- ref: triggerRef,
114
- open,
115
- onActivate: handleActivate,
116
- onOpenChange: setOpen,
117
- onSelect: handleSelect,
118
- };
119
- };
@@ -1,101 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { type Meta, type StoryObj } from '@storybook/react-vite';
8
- import React, { type KeyboardEvent, useState } from 'react';
9
-
10
- import { Button, DropdownMenu, Icon, Input } from '@dxos/react-ui';
11
- import { mx } from '@dxos/react-ui-theme';
12
- import { withLayout, withTheme } from '@dxos/storybook-utils';
13
-
14
- import { RefDropdownMenu } from '../components';
15
- import { editorWidth } from '../defaults';
16
- import { type Action, command, floatingMenu } from '../extensions';
17
- import { str } from '../testing';
18
- import { createRenderer } from '../util';
19
-
20
- import { EditorStory } from './components';
21
-
22
- const CommandDialog = ({ onAction }: { onAction: (action?: Action) => void }) => {
23
- const [text, setText] = useState('');
24
-
25
- const handleInsert = () => {
26
- // TODO(burdon): Use queue ref.
27
- const link = `[${text}](dxn:queue:data:123)`;
28
- onAction(text.length ? { type: 'insert', text: link } : undefined);
29
- };
30
-
31
- const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {
32
- switch (event.key) {
33
- case 'Enter': {
34
- handleInsert();
35
- break;
36
- }
37
- case 'Escape': {
38
- onAction();
39
- break;
40
- }
41
- }
42
- };
43
-
44
- return (
45
- <div className='flex w-full justify-center'>
46
- <div
47
- className={mx(
48
- 'flex w-full p-2 gap-2 items-center bg-modalSurface border border-separator rounded-md',
49
- editorWidth,
50
- )}
51
- >
52
- <Input.Root>
53
- <Input.TextInput
54
- autoFocus={true}
55
- placeholder='Ask a question...'
56
- value={text}
57
- onChange={(ev) => setText(ev.target.value)}
58
- onKeyDown={handleKeyDown}
59
- />
60
- </Input.Root>
61
- <Button variant='ghost' classNames='pli-0' onClick={() => onAction({ type: 'cancel' })}>
62
- <Icon icon='ph--x--regular' size={5} />
63
- </Button>
64
- </div>
65
- </div>
66
- );
67
- };
68
-
69
- const meta = {
70
- title: 'ui/react-ui-editor/Command',
71
- decorators: [withTheme, withLayout({ fullscreen: true })],
72
- render: () => (
73
- <RefDropdownMenu.Provider>
74
- <EditorStory
75
- text={str('# Command', '', '', '')}
76
- extensions={[
77
- floatingMenu(),
78
- command({
79
- renderDialog: createRenderer(CommandDialog),
80
- onHint: () => "Press '/' for commands",
81
- }),
82
- ]}
83
- />
84
- <DropdownMenu.Portal>
85
- <DropdownMenu.Content>
86
- <DropdownMenu.Viewport>
87
- <DropdownMenu.Item onClick={() => console.log('!')}>Test</DropdownMenu.Item>
88
- </DropdownMenu.Viewport>
89
- <DropdownMenu.Arrow />
90
- </DropdownMenu.Content>
91
- </DropdownMenu.Portal>
92
- </RefDropdownMenu.Provider>
93
- ),
94
- parameters: { layout: 'fullscreen' },
95
- } satisfies Meta<typeof Button>;
96
-
97
- export default meta;
98
-
99
- type Story = StoryObj<typeof meta>;
100
-
101
- export const Default: Story = {};
@@ -1,161 +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 Meta, 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 { Testing, type ValueGenerator, createObjectFactory } from '@dxos/schema/testing';
15
- import { withLayout, withTheme } from '@dxos/storybook-utils';
16
-
17
- import {
18
- CommandMenu,
19
- type CommandMenuGroup,
20
- type CommandMenuItem,
21
- RefPopover,
22
- coreSlashCommands,
23
- filterItems,
24
- insertAtCursor,
25
- insertAtLineStart,
26
- linkSlashCommands,
27
- } from '../components';
28
- import { type UseCommandMenuOptions, useCommandMenu } from '../extensions';
29
- import { str } from '../testing';
30
- import { createElement } from '../util';
31
-
32
- import { EditorStory, names } from './components';
33
-
34
- const generator: ValueGenerator = faker as any;
35
-
36
- type StoryProps = Omit<UseCommandMenuOptions, 'viewRef'> & { text: string };
37
-
38
- const DefaultStory = ({ text, ...options }: StoryProps) => {
39
- const viewRef = useRef<EditorView>();
40
- const { commandMenu, groupsRef, currentItem, onSelect, ...props } = useCommandMenu({ viewRef, ...options });
41
-
42
- return (
43
- <RefPopover modal={false} {...props}>
44
- <EditorStory ref={viewRef} text={text} placeholder={''} extensions={commandMenu} />
45
- <CommandMenu groups={groupsRef.current} currentItem={currentItem} onSelect={onSelect} />
46
- </RefPopover>
47
- );
48
- };
49
-
50
- const groups: CommandMenuGroup[] = [
51
- coreSlashCommands,
52
- linkSlashCommands,
53
- {
54
- id: 'custom',
55
- label: 'Custom',
56
- items: [
57
- {
58
- id: 'custom-1',
59
- label: 'Log',
60
- icon: 'ph--log--regular',
61
- onSelect: console.log,
62
- },
63
- ],
64
- },
65
- ];
66
-
67
- const meta = {
68
- title: 'ui/react-ui-editor/CommandMenu',
69
- render: DefaultStory,
70
- decorators: [withTheme, withLayout({ fullscreen: true })],
71
- parameters: {
72
- layout: 'fullscreen',
73
- },
74
- } satisfies Meta<typeof DefaultStory>;
75
-
76
- export default meta;
77
-
78
- type Story = StoryObj<typeof meta>;
79
-
80
- // TODO(burdon): Not working.
81
- export const Slash: Story = {
82
- args: {
83
- text: str('# Slash', '', names.join(' '), ''),
84
- trigger: '/',
85
- placeholder: {
86
- content: () => {
87
- return createElement('div', undefined, [
88
- createElement('span', { text: 'Press' }),
89
- createElement('span', { className: 'border border-separator rounded-sm mx-1 px-1', text: '/' }),
90
- createElement('span', { text: 'for commands' }),
91
- ]);
92
- },
93
- },
94
- getMenu: (text) => {
95
- return filterItems(groups, (item) =>
96
- text ? (item.label as string).toLowerCase().includes(text.toLowerCase()) : true,
97
- );
98
- },
99
- },
100
- };
101
-
102
- export const Link: Story = {
103
- render: (args: StoryProps) => {
104
- const { space } = useClientProvider();
105
- const getMenu = useCallback(
106
- async (trigger: string, query?: string): Promise<CommandMenuGroup[]> => {
107
- if (trigger === '/') {
108
- return filterItems(groups, (item) =>
109
- query ? (item.label as string).toLowerCase().includes(query.toLowerCase()) : true,
110
- );
111
- }
112
-
113
- if (!space) {
114
- return [];
115
- }
116
-
117
- const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : (query?.toLowerCase() ?? '');
118
- const result = await space?.db.query(Query.type(Testing.Contact)).run();
119
- const items = result.objects
120
- .filter((object) => object.name.toLowerCase().includes(name))
121
- .map(
122
- (object): CommandMenuItem => ({
123
- id: object.id,
124
- label: object.name,
125
- icon: 'ph--user--regular',
126
- onSelect: (view, head) => {
127
- const link = `[${object.name}][${Obj.getDXN(object)}]`;
128
- if (query?.startsWith('@')) {
129
- insertAtLineStart(view, head, `!${link}\n`);
130
- } else {
131
- insertAtCursor(view, head, `${link} `);
132
- }
133
- },
134
- }),
135
- );
136
- return [{ id: 'echo', items }];
137
- },
138
- [space],
139
- );
140
-
141
- return <DefaultStory {...args} getMenu={getMenu} />;
142
- },
143
- decorators: [
144
- withClientProvider({
145
- createSpace: true,
146
- onInitialized: async (client) => {
147
- client.addTypes([Testing.Contact]);
148
- },
149
- onSpaceCreated: async ({ space }) => {
150
- const createObjects = createObjectFactory(space.db, generator);
151
- await createObjects([{ type: Testing.Contact, count: 10 }]);
152
- await space.db.flush({ indexes: true });
153
- },
154
- }),
155
- ],
156
- args: {
157
- text: str('# Link', '', names.join(' '), ''),
158
- trigger: ['/', '@'],
159
- getMenu: () => [],
160
- },
161
- };
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2022 DXOS.org
3
- //
4
-
5
- export * from './util';
@@ -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');