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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/dist/lib/browser/index.mjs +1143 -8424
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +1143 -8423
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/components/Editor/Editor.d.ts +43 -21
  8. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  9. package/dist/types/src/components/Editor/Editor.stories.d.ts +23 -0
  10. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -0
  11. package/dist/types/src/components/EditorContent/EditorContent.d.ts +31 -0
  12. package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +1 -0
  13. package/dist/types/src/components/EditorContent/controller.d.ts +10 -0
  14. package/dist/types/src/components/EditorContent/controller.d.ts.map +1 -0
  15. package/dist/types/src/components/EditorContent/index.d.ts +3 -0
  16. package/dist/types/src/components/EditorContent/index.d.ts.map +1 -0
  17. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts +36 -0
  18. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -0
  19. package/dist/types/src/components/EditorMenuProvider/index.d.ts +6 -0
  20. package/dist/types/src/components/EditorMenuProvider/index.d.ts.map +1 -0
  21. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts +4 -0
  22. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -0
  23. package/dist/types/src/components/EditorMenuProvider/menu.d.ts +28 -0
  24. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -0
  25. package/dist/types/src/components/EditorMenuProvider/popover.d.ts +46 -0
  26. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -0
  27. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts +34 -0
  28. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -0
  29. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +16 -0
  30. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -0
  31. package/dist/types/src/components/EditorPreviewProvider/index.d.ts +2 -0
  32. package/dist/types/src/components/EditorPreviewProvider/index.d.ts.map +1 -0
  33. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +28 -2
  34. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  35. package/dist/types/src/components/EditorToolbar/actions.d.ts +25 -0
  36. package/dist/types/src/components/EditorToolbar/actions.d.ts.map +1 -0
  37. package/dist/types/src/components/EditorToolbar/blocks.d.ts +9 -7
  38. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  39. package/dist/types/src/components/EditorToolbar/formatting.d.ts +9 -7
  40. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  41. package/dist/types/src/components/EditorToolbar/headings.d.ts +9 -7
  42. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  43. package/dist/types/src/components/EditorToolbar/image.d.ts +5 -11
  44. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  45. package/dist/types/src/components/EditorToolbar/index.d.ts +2 -1
  46. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  47. package/dist/types/src/components/EditorToolbar/search.d.ts +5 -11
  48. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  49. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +11 -0
  50. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +1 -0
  51. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +10 -8
  52. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  53. package/dist/types/src/components/index.d.ts +4 -2
  54. package/dist/types/src/components/index.d.ts.map +1 -1
  55. package/dist/types/src/hooks/useTextEditor.d.ts +4 -8
  56. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  57. package/dist/types/src/index.d.ts +0 -8
  58. package/dist/types/src/index.d.ts.map +1 -1
  59. package/dist/types/src/{extensions/automerge/automerge.stories.d.ts → stories/Automerge.stories.d.ts} +5 -8
  60. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -0
  61. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +1 -1
  62. package/dist/types/src/stories/Comments.stories.d.ts +4 -3
  63. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  64. package/dist/types/src/stories/EditorToolbar.stories.d.ts +4 -4
  65. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  66. package/dist/types/src/stories/Experimental.stories.d.ts +4 -3
  67. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  68. package/dist/types/src/stories/Markdown.stories.d.ts +4 -3
  69. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  70. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  71. package/dist/types/src/stories/{CommandMenu.stories.d.ts → Popover.stories.d.ts} +6 -5
  72. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -0
  73. package/dist/types/src/stories/Preview.stories.d.ts +5 -3
  74. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  75. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -1
  76. package/dist/types/src/stories/TextEditor.stories.d.ts +4 -4
  77. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  78. package/dist/types/src/stories/Theme.stories.d.ts +8 -0
  79. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -0
  80. package/dist/types/src/stories/components/EditorStory.d.ts +9 -18
  81. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  82. package/dist/types/src/stories/components/util.d.ts +3 -3
  83. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  84. package/dist/types/src/translations.d.ts +5 -5
  85. package/dist/types/src/translations.d.ts.map +1 -1
  86. package/dist/types/src/util/index.d.ts +0 -5
  87. package/dist/types/src/util/index.d.ts.map +1 -1
  88. package/dist/types/src/util/react.d.ts +6 -5
  89. package/dist/types/src/util/react.d.ts.map +1 -1
  90. package/dist/types/tsconfig.tsbuildinfo +1 -1
  91. package/package.json +68 -72
  92. package/src/components/Editor/Editor.stories.tsx +95 -0
  93. package/src/components/Editor/Editor.tsx +167 -56
  94. package/src/components/EditorContent/EditorContent.tsx +83 -0
  95. package/src/components/EditorContent/controller.ts +50 -0
  96. package/src/components/EditorContent/index.ts +6 -0
  97. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +228 -0
  98. package/src/components/EditorMenuProvider/index.ts +10 -0
  99. package/src/components/EditorMenuProvider/menu-presets.ts +124 -0
  100. package/src/components/EditorMenuProvider/menu.ts +70 -0
  101. package/src/components/EditorMenuProvider/popover.ts +285 -0
  102. package/src/components/EditorMenuProvider/useEditorMenu.ts +179 -0
  103. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +79 -0
  104. package/src/components/EditorPreviewProvider/index.ts +5 -0
  105. package/src/components/EditorToolbar/EditorToolbar.tsx +102 -105
  106. package/src/components/EditorToolbar/{lists.ts → actions.ts} +48 -17
  107. package/src/components/EditorToolbar/blocks.ts +7 -7
  108. package/src/components/EditorToolbar/formatting.ts +7 -7
  109. package/src/components/EditorToolbar/headings.ts +20 -17
  110. package/src/components/EditorToolbar/image.ts +10 -3
  111. package/src/components/EditorToolbar/index.ts +3 -7
  112. package/src/components/EditorToolbar/search.ts +10 -3
  113. package/src/components/EditorToolbar/useEditorToolbar.ts +20 -0
  114. package/src/components/EditorToolbar/view-mode.ts +7 -6
  115. package/src/components/index.ts +6 -2
  116. package/src/hooks/useTextEditor.ts +33 -27
  117. package/src/index.ts +0 -10
  118. package/src/stories/Automerge.stories.tsx +173 -0
  119. package/src/stories/CommandDialog.stories.tsx +18 -26
  120. package/src/stories/Comments.stories.tsx +48 -44
  121. package/src/stories/EditorToolbar.stories.tsx +36 -21
  122. package/src/stories/Experimental.stories.tsx +7 -9
  123. package/src/stories/Markdown.stories.tsx +16 -16
  124. package/src/stories/Outliner.stories.tsx +20 -21
  125. package/src/stories/Popover.stories.tsx +158 -0
  126. package/src/stories/Preview.stories.tsx +100 -81
  127. package/src/stories/Tags.stories.tsx +36 -13
  128. package/src/stories/TextEditor.stories.tsx +16 -48
  129. package/src/stories/Theme.stories.tsx +61 -0
  130. package/src/stories/components/EditorStory.tsx +32 -25
  131. package/src/stories/components/util.tsx +60 -31
  132. package/src/translations.ts +4 -4
  133. package/src/util/index.ts +1 -6
  134. package/src/util/react.tsx +8 -13
  135. package/dist/lib/browser/chunk-HL3YF6WC.mjs +0 -22
  136. package/dist/lib/browser/chunk-HL3YF6WC.mjs.map +0 -7
  137. package/dist/lib/browser/testing/index.mjs +0 -76
  138. package/dist/lib/browser/testing/index.mjs.map +0 -7
  139. package/dist/lib/browser/types/index.mjs +0 -13
  140. package/dist/lib/browser/types/index.mjs.map +0 -7
  141. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs +0 -24
  142. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs.map +0 -7
  143. package/dist/lib/node-esm/testing/index.mjs +0 -78
  144. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  145. package/dist/lib/node-esm/types/index.mjs +0 -14
  146. package/dist/lib/node-esm/types/index.mjs.map +0 -7
  147. package/dist/types/src/components/CommandMenu/CommandMenu.d.ts +0 -38
  148. package/dist/types/src/components/CommandMenu/CommandMenu.d.ts.map +0 -1
  149. package/dist/types/src/components/CommandMenu/index.d.ts +0 -2
  150. package/dist/types/src/components/CommandMenu/index.d.ts.map +0 -1
  151. package/dist/types/src/components/EditorToolbar/lists.d.ts +0 -19
  152. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +0 -1
  153. package/dist/types/src/components/EditorToolbar/util.d.ts +0 -51
  154. package/dist/types/src/components/EditorToolbar/util.d.ts.map +0 -1
  155. package/dist/types/src/defaults.d.ts +0 -14
  156. package/dist/types/src/defaults.d.ts.map +0 -1
  157. package/dist/types/src/extensions/annotations.d.ts +0 -9
  158. package/dist/types/src/extensions/annotations.d.ts.map +0 -1
  159. package/dist/types/src/extensions/autocomplete.d.ts +0 -26
  160. package/dist/types/src/extensions/autocomplete.d.ts.map +0 -1
  161. package/dist/types/src/extensions/automerge/automerge.d.ts +0 -4
  162. package/dist/types/src/extensions/automerge/automerge.d.ts.map +0 -1
  163. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +0 -1
  164. package/dist/types/src/extensions/automerge/automerge.test.d.ts +0 -2
  165. package/dist/types/src/extensions/automerge/automerge.test.d.ts.map +0 -1
  166. package/dist/types/src/extensions/automerge/cursor.d.ts +0 -4
  167. package/dist/types/src/extensions/automerge/cursor.d.ts.map +0 -1
  168. package/dist/types/src/extensions/automerge/defs.d.ts +0 -17
  169. package/dist/types/src/extensions/automerge/defs.d.ts.map +0 -1
  170. package/dist/types/src/extensions/automerge/index.d.ts +0 -2
  171. package/dist/types/src/extensions/automerge/index.d.ts.map +0 -1
  172. package/dist/types/src/extensions/automerge/sync.d.ts +0 -17
  173. package/dist/types/src/extensions/automerge/sync.d.ts.map +0 -1
  174. package/dist/types/src/extensions/automerge/update-automerge.d.ts +0 -6
  175. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +0 -1
  176. package/dist/types/src/extensions/automerge/update-codemirror.d.ts +0 -5
  177. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +0 -1
  178. package/dist/types/src/extensions/autoscroll.d.ts +0 -10
  179. package/dist/types/src/extensions/autoscroll.d.ts.map +0 -1
  180. package/dist/types/src/extensions/awareness/awareness-provider.d.ts +0 -31
  181. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +0 -1
  182. package/dist/types/src/extensions/awareness/awareness.d.ts +0 -46
  183. package/dist/types/src/extensions/awareness/awareness.d.ts.map +0 -1
  184. package/dist/types/src/extensions/awareness/index.d.ts +0 -3
  185. package/dist/types/src/extensions/awareness/index.d.ts.map +0 -1
  186. package/dist/types/src/extensions/blast.d.ts +0 -25
  187. package/dist/types/src/extensions/blast.d.ts.map +0 -1
  188. package/dist/types/src/extensions/command-dialog/action.d.ts +0 -17
  189. package/dist/types/src/extensions/command-dialog/action.d.ts.map +0 -1
  190. package/dist/types/src/extensions/command-dialog/command-dialog.d.ts +0 -6
  191. package/dist/types/src/extensions/command-dialog/command-dialog.d.ts.map +0 -1
  192. package/dist/types/src/extensions/command-dialog/hint.d.ts +0 -19
  193. package/dist/types/src/extensions/command-dialog/hint.d.ts.map +0 -1
  194. package/dist/types/src/extensions/command-dialog/index.d.ts +0 -4
  195. package/dist/types/src/extensions/command-dialog/index.d.ts.map +0 -1
  196. package/dist/types/src/extensions/command-dialog/state.d.ts +0 -16
  197. package/dist/types/src/extensions/command-dialog/state.d.ts.map +0 -1
  198. package/dist/types/src/extensions/command-dialog/typeahead.d.ts +0 -22
  199. package/dist/types/src/extensions/command-dialog/typeahead.d.ts.map +0 -1
  200. package/dist/types/src/extensions/command-menu/command-menu.d.ts +0 -20
  201. package/dist/types/src/extensions/command-menu/command-menu.d.ts.map +0 -1
  202. package/dist/types/src/extensions/command-menu/index.d.ts +0 -3
  203. package/dist/types/src/extensions/command-menu/index.d.ts.map +0 -1
  204. package/dist/types/src/extensions/command-menu/placeholder.d.ts +0 -10
  205. package/dist/types/src/extensions/command-menu/placeholder.d.ts.map +0 -1
  206. package/dist/types/src/extensions/command-menu/useCommandMenu.d.ts +0 -24
  207. package/dist/types/src/extensions/command-menu/useCommandMenu.d.ts.map +0 -1
  208. package/dist/types/src/extensions/comments.d.ts +0 -95
  209. package/dist/types/src/extensions/comments.d.ts.map +0 -1
  210. package/dist/types/src/extensions/debug.d.ts +0 -3
  211. package/dist/types/src/extensions/debug.d.ts.map +0 -1
  212. package/dist/types/src/extensions/dnd.d.ts +0 -9
  213. package/dist/types/src/extensions/dnd.d.ts.map +0 -1
  214. package/dist/types/src/extensions/factories.d.ts +0 -83
  215. package/dist/types/src/extensions/factories.d.ts.map +0 -1
  216. package/dist/types/src/extensions/floating-menu.d.ts +0 -7
  217. package/dist/types/src/extensions/floating-menu.d.ts.map +0 -1
  218. package/dist/types/src/extensions/focus.d.ts +0 -7
  219. package/dist/types/src/extensions/focus.d.ts.map +0 -1
  220. package/dist/types/src/extensions/folding.d.ts +0 -7
  221. package/dist/types/src/extensions/folding.d.ts.map +0 -1
  222. package/dist/types/src/extensions/hashtag.d.ts +0 -3
  223. package/dist/types/src/extensions/hashtag.d.ts.map +0 -1
  224. package/dist/types/src/extensions/index.d.ts +0 -27
  225. package/dist/types/src/extensions/index.d.ts.map +0 -1
  226. package/dist/types/src/extensions/json.d.ts +0 -7
  227. package/dist/types/src/extensions/json.d.ts.map +0 -1
  228. package/dist/types/src/extensions/listener.d.ts +0 -11
  229. package/dist/types/src/extensions/listener.d.ts.map +0 -1
  230. package/dist/types/src/extensions/markdown/action.d.ts +0 -12
  231. package/dist/types/src/extensions/markdown/action.d.ts.map +0 -1
  232. package/dist/types/src/extensions/markdown/bundle.d.ts +0 -22
  233. package/dist/types/src/extensions/markdown/bundle.d.ts.map +0 -1
  234. package/dist/types/src/extensions/markdown/changes.d.ts +0 -10
  235. package/dist/types/src/extensions/markdown/changes.d.ts.map +0 -1
  236. package/dist/types/src/extensions/markdown/changes.test.d.ts +0 -2
  237. package/dist/types/src/extensions/markdown/changes.test.d.ts.map +0 -1
  238. package/dist/types/src/extensions/markdown/debug.d.ts +0 -11
  239. package/dist/types/src/extensions/markdown/debug.d.ts.map +0 -1
  240. package/dist/types/src/extensions/markdown/decorate.d.ts +0 -25
  241. package/dist/types/src/extensions/markdown/decorate.d.ts.map +0 -1
  242. package/dist/types/src/extensions/markdown/formatting.d.ts +0 -63
  243. package/dist/types/src/extensions/markdown/formatting.d.ts.map +0 -1
  244. package/dist/types/src/extensions/markdown/formatting.test.d.ts +0 -3
  245. package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +0 -1
  246. package/dist/types/src/extensions/markdown/highlight.d.ts +0 -37
  247. package/dist/types/src/extensions/markdown/highlight.d.ts.map +0 -1
  248. package/dist/types/src/extensions/markdown/image.d.ts +0 -7
  249. package/dist/types/src/extensions/markdown/image.d.ts.map +0 -1
  250. package/dist/types/src/extensions/markdown/index.d.ts +0 -10
  251. package/dist/types/src/extensions/markdown/index.d.ts.map +0 -1
  252. package/dist/types/src/extensions/markdown/link.d.ts +0 -7
  253. package/dist/types/src/extensions/markdown/link.d.ts.map +0 -1
  254. package/dist/types/src/extensions/markdown/parser.test.d.ts +0 -2
  255. package/dist/types/src/extensions/markdown/parser.test.d.ts.map +0 -1
  256. package/dist/types/src/extensions/markdown/styles.d.ts +0 -4
  257. package/dist/types/src/extensions/markdown/styles.d.ts.map +0 -1
  258. package/dist/types/src/extensions/markdown/table.d.ts +0 -8
  259. package/dist/types/src/extensions/markdown/table.d.ts.map +0 -1
  260. package/dist/types/src/extensions/mention.d.ts +0 -7
  261. package/dist/types/src/extensions/mention.d.ts.map +0 -1
  262. package/dist/types/src/extensions/modes.d.ts +0 -10
  263. package/dist/types/src/extensions/modes.d.ts.map +0 -1
  264. package/dist/types/src/extensions/outliner/commands.d.ts +0 -10
  265. package/dist/types/src/extensions/outliner/commands.d.ts.map +0 -1
  266. package/dist/types/src/extensions/outliner/editor.d.ts +0 -5
  267. package/dist/types/src/extensions/outliner/editor.d.ts.map +0 -1
  268. package/dist/types/src/extensions/outliner/editor.test.d.ts +0 -2
  269. package/dist/types/src/extensions/outliner/editor.test.d.ts.map +0 -1
  270. package/dist/types/src/extensions/outliner/index.d.ts +0 -4
  271. package/dist/types/src/extensions/outliner/index.d.ts.map +0 -1
  272. package/dist/types/src/extensions/outliner/outliner.d.ts +0 -11
  273. package/dist/types/src/extensions/outliner/outliner.d.ts.map +0 -1
  274. package/dist/types/src/extensions/outliner/outliner.test.d.ts +0 -2
  275. package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +0 -1
  276. package/dist/types/src/extensions/outliner/selection.d.ts +0 -12
  277. package/dist/types/src/extensions/outliner/selection.d.ts.map +0 -1
  278. package/dist/types/src/extensions/outliner/tree.d.ts +0 -79
  279. package/dist/types/src/extensions/outliner/tree.d.ts.map +0 -1
  280. package/dist/types/src/extensions/outliner/tree.test.d.ts +0 -2
  281. package/dist/types/src/extensions/outliner/tree.test.d.ts.map +0 -1
  282. package/dist/types/src/extensions/preview/index.d.ts +0 -2
  283. package/dist/types/src/extensions/preview/index.d.ts.map +0 -1
  284. package/dist/types/src/extensions/preview/preview.d.ts +0 -29
  285. package/dist/types/src/extensions/preview/preview.d.ts.map +0 -1
  286. package/dist/types/src/extensions/selection.d.ts +0 -24
  287. package/dist/types/src/extensions/selection.d.ts.map +0 -1
  288. package/dist/types/src/extensions/tags/extended-markdown.d.ts +0 -10
  289. package/dist/types/src/extensions/tags/extended-markdown.d.ts.map +0 -1
  290. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts +0 -2
  291. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts.map +0 -1
  292. package/dist/types/src/extensions/tags/index.d.ts +0 -4
  293. package/dist/types/src/extensions/tags/index.d.ts.map +0 -1
  294. package/dist/types/src/extensions/tags/streamer.d.ts +0 -12
  295. package/dist/types/src/extensions/tags/streamer.d.ts.map +0 -1
  296. package/dist/types/src/extensions/tags/xml-tags.d.ts +0 -72
  297. package/dist/types/src/extensions/tags/xml-tags.d.ts.map +0 -1
  298. package/dist/types/src/extensions/tags/xml-util.d.ts +0 -10
  299. package/dist/types/src/extensions/tags/xml-util.d.ts.map +0 -1
  300. package/dist/types/src/extensions/typewriter.d.ts +0 -10
  301. package/dist/types/src/extensions/typewriter.d.ts.map +0 -1
  302. package/dist/types/src/stories/CommandMenu.stories.d.ts.map +0 -1
  303. package/dist/types/src/styles/index.d.ts +0 -4
  304. package/dist/types/src/styles/index.d.ts.map +0 -1
  305. package/dist/types/src/styles/markdown.d.ts +0 -8
  306. package/dist/types/src/styles/markdown.d.ts.map +0 -1
  307. package/dist/types/src/styles/theme.d.ts +0 -38
  308. package/dist/types/src/styles/theme.d.ts.map +0 -1
  309. package/dist/types/src/styles/tokens.d.ts +0 -3
  310. package/dist/types/src/styles/tokens.d.ts.map +0 -1
  311. package/dist/types/src/testing/PreviewPopover.d.ts +0 -20
  312. package/dist/types/src/testing/PreviewPopover.d.ts.map +0 -1
  313. package/dist/types/src/testing/index.d.ts +0 -3
  314. package/dist/types/src/testing/index.d.ts.map +0 -1
  315. package/dist/types/src/testing/util.d.ts +0 -3
  316. package/dist/types/src/testing/util.d.ts.map +0 -1
  317. package/dist/types/src/types/index.d.ts +0 -2
  318. package/dist/types/src/types/index.d.ts.map +0 -1
  319. package/dist/types/src/types/types.d.ts +0 -21
  320. package/dist/types/src/types/types.d.ts.map +0 -1
  321. package/dist/types/src/util/cursor.d.ts +0 -31
  322. package/dist/types/src/util/cursor.d.ts.map +0 -1
  323. package/dist/types/src/util/debug.d.ts +0 -17
  324. package/dist/types/src/util/debug.d.ts.map +0 -1
  325. package/dist/types/src/util/decorations.d.ts +0 -4
  326. package/dist/types/src/util/decorations.d.ts.map +0 -1
  327. package/dist/types/src/util/dom.d.ts +0 -10
  328. package/dist/types/src/util/dom.d.ts.map +0 -1
  329. package/dist/types/src/util/facet.d.ts +0 -3
  330. package/dist/types/src/util/facet.d.ts.map +0 -1
  331. package/src/components/CommandMenu/CommandMenu.tsx +0 -348
  332. package/src/components/CommandMenu/index.ts +0 -5
  333. package/src/components/EditorToolbar/util.ts +0 -76
  334. package/src/defaults.ts +0 -52
  335. package/src/extensions/annotations.ts +0 -55
  336. package/src/extensions/autocomplete.ts +0 -219
  337. package/src/extensions/automerge/automerge.stories.tsx +0 -149
  338. package/src/extensions/automerge/automerge.test.tsx +0 -78
  339. package/src/extensions/automerge/automerge.ts +0 -86
  340. package/src/extensions/automerge/cursor.ts +0 -28
  341. package/src/extensions/automerge/defs.ts +0 -31
  342. package/src/extensions/automerge/index.ts +0 -5
  343. package/src/extensions/automerge/sync.ts +0 -75
  344. package/src/extensions/automerge/update-automerge.ts +0 -50
  345. package/src/extensions/automerge/update-codemirror.ts +0 -115
  346. package/src/extensions/autoscroll.ts +0 -157
  347. package/src/extensions/awareness/awareness-provider.ts +0 -127
  348. package/src/extensions/awareness/awareness.ts +0 -315
  349. package/src/extensions/awareness/index.ts +0 -6
  350. package/src/extensions/blast.ts +0 -363
  351. package/src/extensions/command-dialog/action.ts +0 -55
  352. package/src/extensions/command-dialog/command-dialog.ts +0 -34
  353. package/src/extensions/command-dialog/hint.ts +0 -103
  354. package/src/extensions/command-dialog/index.ts +0 -7
  355. package/src/extensions/command-dialog/state.ts +0 -90
  356. package/src/extensions/command-dialog/typeahead.ts +0 -129
  357. package/src/extensions/command-menu/command-menu.ts +0 -210
  358. package/src/extensions/command-menu/index.ts +0 -6
  359. package/src/extensions/command-menu/placeholder.ts +0 -113
  360. package/src/extensions/command-menu/useCommandMenu.ts +0 -134
  361. package/src/extensions/comments.ts +0 -597
  362. package/src/extensions/debug.ts +0 -15
  363. package/src/extensions/dnd.ts +0 -37
  364. package/src/extensions/factories.ts +0 -284
  365. package/src/extensions/floating-menu.ts +0 -126
  366. package/src/extensions/focus.ts +0 -36
  367. package/src/extensions/folding.tsx +0 -44
  368. package/src/extensions/hashtag.tsx +0 -68
  369. package/src/extensions/index.ts +0 -30
  370. package/src/extensions/json.ts +0 -57
  371. package/src/extensions/listener.ts +0 -38
  372. package/src/extensions/markdown/action.ts +0 -117
  373. package/src/extensions/markdown/bundle.ts +0 -93
  374. package/src/extensions/markdown/changes.test.ts +0 -26
  375. package/src/extensions/markdown/changes.ts +0 -149
  376. package/src/extensions/markdown/debug.ts +0 -44
  377. package/src/extensions/markdown/decorate.ts +0 -601
  378. package/src/extensions/markdown/formatting.test.ts +0 -498
  379. package/src/extensions/markdown/formatting.ts +0 -1267
  380. package/src/extensions/markdown/highlight.ts +0 -183
  381. package/src/extensions/markdown/image.ts +0 -118
  382. package/src/extensions/markdown/index.ts +0 -13
  383. package/src/extensions/markdown/link.ts +0 -50
  384. package/src/extensions/markdown/parser.test.ts +0 -75
  385. package/src/extensions/markdown/styles.ts +0 -135
  386. package/src/extensions/markdown/table.ts +0 -150
  387. package/src/extensions/mention.ts +0 -41
  388. package/src/extensions/modes.ts +0 -41
  389. package/src/extensions/outliner/commands.ts +0 -270
  390. package/src/extensions/outliner/editor.test.ts +0 -33
  391. package/src/extensions/outliner/editor.ts +0 -184
  392. package/src/extensions/outliner/index.ts +0 -7
  393. package/src/extensions/outliner/outliner.test.ts +0 -100
  394. package/src/extensions/outliner/outliner.ts +0 -167
  395. package/src/extensions/outliner/selection.ts +0 -50
  396. package/src/extensions/outliner/tree.test.ts +0 -168
  397. package/src/extensions/outliner/tree.ts +0 -317
  398. package/src/extensions/preview/index.ts +0 -5
  399. package/src/extensions/preview/preview.ts +0 -190
  400. package/src/extensions/selection.ts +0 -100
  401. package/src/extensions/tags/extended-markdown.test.ts +0 -261
  402. package/src/extensions/tags/extended-markdown.ts +0 -78
  403. package/src/extensions/tags/index.ts +0 -7
  404. package/src/extensions/tags/streamer.ts +0 -243
  405. package/src/extensions/tags/xml-tags.ts +0 -393
  406. package/src/extensions/tags/xml-util.ts +0 -94
  407. package/src/extensions/typewriter.ts +0 -68
  408. package/src/stories/CommandMenu.stories.tsx +0 -158
  409. package/src/styles/index.ts +0 -7
  410. package/src/styles/markdown.ts +0 -26
  411. package/src/styles/theme.ts +0 -268
  412. package/src/styles/tokens.ts +0 -17
  413. package/src/testing/PreviewPopover.tsx +0 -78
  414. package/src/testing/index.ts +0 -6
  415. package/src/testing/util.ts +0 -7
  416. package/src/types/index.ts +0 -5
  417. package/src/types/types.ts +0 -32
  418. package/src/util/cursor.ts +0 -56
  419. package/src/util/debug.ts +0 -64
  420. package/src/util/decorations.ts +0 -21
  421. package/src/util/dom.ts +0 -34
  422. package/src/util/facet.ts +0 -13
@@ -3,29 +3,29 @@
3
3
  //
4
4
 
5
5
  import { type EditorView } from '@codemirror/view';
6
- import React, { type ReactNode, forwardRef, useEffect, useImperativeHandle, useMemo, useState } from 'react';
6
+ import React, { type ReactNode, forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
7
7
 
8
- import { Expando } from '@dxos/echo/internal';
9
- import { live } from '@dxos/echo/internal';
8
+ import { Obj } from '@dxos/echo';
9
+ import { TestSchema } from '@dxos/echo/testing';
10
10
  import { invariant } from '@dxos/invariant';
11
11
  import { PublicKey } from '@dxos/keys';
12
- import { createDocAccessor, createObject } from '@dxos/react-client/echo';
13
- import { useForwardedRef, useThemeContext } from '@dxos/react-ui';
12
+ import { log } from '@dxos/log';
13
+ import { useMergeRefs, useThemeContext } from '@dxos/react-ui';
14
14
  import { useAttentionAttributes } from '@dxos/react-ui-attention';
15
15
  import { JsonFilter } from '@dxos/react-ui-syntax-highlighter';
16
- import { mx } from '@dxos/react-ui-theme';
17
- import { isNonNullable } from '@dxos/util';
18
-
19
- import { editorGutter, editorSlots } from '../../defaults';
20
16
  import {
21
17
  type DebugNode,
22
18
  type ThemeExtensionsOptions,
23
19
  createBasicExtensions,
24
- createDataExtensions,
25
20
  createMarkdownExtensions,
26
21
  createThemeExtensions,
27
22
  debugTree,
28
- } from '../../extensions';
23
+ editorSlots,
24
+ } from '@dxos/ui-editor';
25
+ import { mx } from '@dxos/ui-theme';
26
+ import { isNonNullable } from '@dxos/util';
27
+
28
+ import { type EditorController, createEditorController } from '../../components';
29
29
  import { type UseTextEditorProps, useTextEditor } from '../../hooks';
30
30
 
31
31
  // Type definitions.
@@ -38,28 +38,32 @@ export type StoryProps = Pick<UseTextEditorProps, 'id' | 'scrollTo' | 'selection
38
38
  debug?: DebugMode;
39
39
  debugCustom?: (view: EditorView) => ReactNode;
40
40
  text?: string;
41
- object?: Expando;
41
+ object?: Obj.OfShape<TestSchema.Expando>;
42
42
  readOnly?: boolean;
43
43
  placeholder?: string;
44
44
  lineNumbers?: boolean;
45
+ monospace?: boolean;
45
46
  onReady?: (view: EditorView) => void;
46
47
  };
47
48
 
48
- export const EditorStory = forwardRef<EditorView | null, StoryProps>(
49
- ({ debug, debugCustom, text, extensions: _extensions, ...props }, forwardedRef) => {
49
+ export const EditorStory = forwardRef<EditorController, StoryProps>(
50
+ ({ debug, debugCustom, text, extensions: extensionsProp, ...props }, forwardedRef) => {
51
+ const controllerRef = useRef<EditorController>(null);
52
+ const mergedRef = useMergeRefs([controllerRef, forwardedRef]);
53
+
50
54
  const attentionAttrs = useAttentionAttributes('test-panel');
51
55
  const [tree, setTree] = useState<DebugNode>();
52
- const [object] = useState(createObject(live(Expando, { content: text ?? '' })));
53
- const viewRef = useForwardedRef(forwardedRef);
56
+ const [object] = useState(Obj.make(TestSchema.Expando, { content: text ?? '' }));
57
+
54
58
  const extensions = useMemo(
55
- () => (debug ? [_extensions, debugTree(setTree)].filter(isNonNullable) : _extensions),
56
- [debug, _extensions],
59
+ () => (debug ? [extensionsProp, debugTree(setTree)].filter(isNonNullable) : extensionsProp),
60
+ [debug, extensionsProp],
57
61
  );
58
62
 
59
- const view = viewRef.current;
63
+ const view = controllerRef.current?.view;
60
64
  return (
61
65
  <div className={mx('w-full h-full grid overflow-hidden', debug && 'grid-cols-2 lg:grid-cols-[1fr_600px]')}>
62
- <EditorComponent ref={viewRef} object={object} text={text} extensions={extensions} {...props} />
66
+ <EditorComponent ref={mergedRef} object={object} text={text} extensions={extensions} {...props} />
63
67
 
64
68
  {debug && (
65
69
  <div
@@ -83,7 +87,7 @@ export const EditorStory = forwardRef<EditorView | null, StoryProps>(
83
87
  /**
84
88
  * Default story component.
85
89
  */
86
- export const EditorComponent = forwardRef<EditorView | null, StoryProps>(
90
+ const EditorComponent = forwardRef<EditorController, StoryProps>(
87
91
  (
88
92
  {
89
93
  id = defaultId,
@@ -92,6 +96,7 @@ export const EditorComponent = forwardRef<EditorView | null, StoryProps>(
92
96
  readOnly,
93
97
  placeholder = 'New document.',
94
98
  lineNumbers,
99
+ monospace,
95
100
  scrollTo,
96
101
  selection,
97
102
  extensions,
@@ -110,18 +115,20 @@ export const EditorComponent = forwardRef<EditorView | null, StoryProps>(
110
115
  selection,
111
116
  initialValue: text,
112
117
  extensions: [
113
- createDataExtensions({ id, text: createDocAccessor(object, ['content']) }),
114
118
  createBasicExtensions({ readOnly, placeholder, lineNumbers, scrollPastEnd: true, search: true }),
119
+ createThemeExtensions({ monospace, themeMode, syntaxHighlighting: true, slots }),
115
120
  createMarkdownExtensions(),
116
- createThemeExtensions({ themeMode, syntaxHighlighting: true, slots }),
117
- editorGutter,
118
121
  extensions || [],
119
122
  ],
120
123
  }),
121
124
  [id, object, extensions, themeMode],
122
125
  );
123
126
 
124
- useImperativeHandle<EditorView | null, EditorView | null>(forwardedRef, () => view, [view]);
127
+ // External controller.
128
+ useImperativeHandle(forwardedRef, () => {
129
+ log.info('view updated', { id });
130
+ return createEditorController(view);
131
+ }, [id, view]);
125
132
 
126
133
  useEffect(() => {
127
134
  if (view) {
@@ -4,29 +4,29 @@
4
4
 
5
5
  import { type Completion } from '@codemirror/autocomplete';
6
6
  import { type Extension } from '@codemirror/state';
7
- import React, { type FC } from 'react';
8
7
 
9
8
  import { faker } from '@dxos/random';
10
- import { Icon } from '@dxos/react-ui';
11
- import { mx } from '@dxos/react-ui-theme';
12
-
9
+ import { Domino } from '@dxos/ui';
13
10
  import {
14
11
  type EditorSelectionState,
12
+ type RenderCallback,
15
13
  decorateMarkdown,
16
14
  folding,
17
15
  formattingKeymap,
18
16
  image,
19
17
  linkTooltip,
20
18
  table,
21
- } from '../../extensions';
22
- import { str } from '../../testing';
23
- import { createRenderer } from '../../util';
19
+ } from '@dxos/ui-editor';
20
+ import { safeUrl } from '@dxos/util';
21
+
22
+ import { str } from '../../util';
24
23
 
25
24
  export const num = () => faker.number.int({ min: 0, max: 9999 }).toLocaleString();
26
25
 
27
26
  export const img = '![dxos](https://dxos.network/dxos-logotype-blue.png)';
28
27
 
29
28
  export const code = str(
29
+ // prettier-ignore
30
30
  '// Code',
31
31
  'const Component = () => {',
32
32
  ' const x = 100;',
@@ -38,7 +38,7 @@ export const code = str(
38
38
  // Content blocks for stories
39
39
  export const content = {
40
40
  tasks: str(
41
- //
41
+ // prettier-ignore
42
42
  '### TaskList',
43
43
  '',
44
44
  `- [x] ${faker.lorem.sentences()}`,
@@ -50,7 +50,7 @@ export const content = {
50
50
  ),
51
51
 
52
52
  bullets: str(
53
- //
53
+ // prettier-ignore
54
54
  '### BulletList',
55
55
  '',
56
56
  `- ${faker.lorem.sentences()}`,
@@ -62,7 +62,7 @@ export const content = {
62
62
  ),
63
63
 
64
64
  numbered: str(
65
- //
65
+ // prettier-ignore
66
66
  '### OrderedList (part 1)',
67
67
  '',
68
68
  `1. ${faker.lorem.sentences()}`,
@@ -81,11 +81,34 @@ export const content = {
81
81
 
82
82
  typescript: code,
83
83
 
84
- codeblocks: str('### Code', '', '```bash', '$ ls -las', '```', '', '```tsx', code, '```', ''),
84
+ codeblocks: str(
85
+ // prettier-ignore
86
+ '### Code',
87
+ '',
88
+ '```bash',
89
+ '$ ls -las',
90
+ '```',
91
+ '',
92
+ '```tsx',
93
+ code,
94
+ '```',
95
+ '',
96
+ ),
85
97
 
86
- comment: str('<!--', 'A comment', '-->', '', 'No comment.', 'Partial comment. <!-- comment. -->'),
98
+ comment: str(
99
+ // prettier-ignore
100
+ '### Comment',
101
+ '',
102
+ '<!--',
103
+ 'A comment',
104
+ '-->',
105
+ '',
106
+ 'Partial comment. <!-- comment. -->',
107
+ '',
108
+ ),
87
109
 
88
110
  links: str(
111
+ // prettier-ignore
89
112
  '### Links',
90
113
  '',
91
114
  'This is a naked link https://dxos.org within a sentence.',
@@ -97,6 +120,7 @@ export const content = {
97
120
  ),
98
121
 
99
122
  table: str(
123
+ // prettier-ignore
100
124
  '### Tables',
101
125
  '',
102
126
  `| ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} |`,
@@ -113,9 +137,16 @@ export const content = {
113
137
  ...[1, 2, 3, 4, 5, 6].map((level) => ['#'.repeat(level) + ` Heading ${level}`, faker.lorem.sentences(), '']).flat(),
114
138
  ),
115
139
 
116
- formatting: str('### Formatting', '', 'This this is **bold**, ~~strikethrough~~, _italic_, and `f(INLINE)`.', ''),
140
+ formatting: str(
141
+ // prettier-ignore
142
+ '### Formatting',
143
+ '',
144
+ 'This this is **bold**, ~~strikethrough~~, _italic_, and `f(INLINE)`.',
145
+ '',
146
+ ),
117
147
 
118
148
  blockquotes: str(
149
+ // prettier-ignore
119
150
  '### Blockquotes',
120
151
  '',
121
152
  '> This is a block quote.',
@@ -154,6 +185,7 @@ export const text = str(
154
185
  '---',
155
186
  '## Misc',
156
187
  content.codeblocks,
188
+ content.comment,
157
189
  content.table,
158
190
  content.image,
159
191
  content.footer,
@@ -172,30 +204,27 @@ export const links: Completion[] = [
172
204
  export const names = ['adam', 'alice', 'alison', 'bob', 'carol', 'charlie', 'sayuri', 'shoko'];
173
205
 
174
206
  const hover =
175
- 'rounded-sm text-baseText text-primary-600 hover:text-primary-500 dark:text-primary-300 hover:dark:text-primary-200';
176
-
177
- const LinkTooltip: FC<{ url: string }> = ({ url }) => {
178
- const web = new URL(url);
179
- return (
180
- <a href={url} target='_blank' rel='noreferrer' className={mx(hover, 'flex items-center gap-2')}>
181
- {web.origin}
182
- <Icon icon='ph--arrow-square-out--regular' size={4} />
183
- </a>
207
+ 'rounded-xs text-base-surface-text text-primary-600 hover:text-primary-500 dark:text-primary-300 hover:dark:text-primary-200';
208
+
209
+ export const renderLinkTooltip: RenderCallback<{ url: string }> = (el, { url }) => {
210
+ el.appendChild(
211
+ Domino.of('a')
212
+ .attributes({ href: url, target: '_blank', rel: 'noreferrer', 'aria-label': 'Open link' })
213
+ .classNames(hover, 'flex items-center gap-2')
214
+ .text(safeUrl(url)?.origin ?? url)
215
+ .children(Domino.svg('ph--arrow-square-out--regular')).root,
184
216
  );
185
217
  };
186
218
 
187
- export const renderLinkTooltip = createRenderer(LinkTooltip);
188
-
189
- const LinkButton: FC<{ url: string }> = ({ url }) => {
190
- return (
191
- <a href={url} target='_blank' rel='noreferrer' className={mx(hover)}>
192
- <Icon icon='ph--arrow-square-out--regular' size={4} classNames='inline-block mis-1 mb-[3px]' />
193
- </a>
219
+ export const renderLinkButton: RenderCallback<{ url: string }> = (el, { url }) => {
220
+ el.appendChild(
221
+ Domino.of('a')
222
+ .attributes({ href: url, target: '_blank', rel: 'noreferrer', 'aria-label': 'Open link' })
223
+ .classNames(hover, 'inline-block ms-1 align-[-0.125em]') // Center icon.
224
+ .children(Domino.svg('ph--arrow-square-out--regular')).root,
194
225
  );
195
226
  };
196
227
 
197
- export const renderLinkButton = createRenderer(LinkButton);
198
-
199
228
  // Shared extensions.
200
229
  export const defaultExtensions: Extension[] = [
201
230
  decorateMarkdown({ renderLinkButton, selectionChangeDelay: 100 }),
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { type Resource } from '@dxos/react-ui';
6
6
 
7
- export const translationKey = 'react-ui-editor';
7
+ export const translationKey = '@dxos/react-ui-editor';
8
8
 
9
9
  export const translations = [
10
10
  {
@@ -29,11 +29,11 @@ export const translations = [
29
29
  'heading level label_zero': 'Paragraph',
30
30
  'heading level label_one': 'Heading level {{count}}',
31
31
  'heading level label_other': 'Heading level {{count}}',
32
+ 'search label': 'Search',
32
33
  'view mode label': 'Editor view',
33
- 'preview mode label': 'Live preview',
34
+ 'preview mode label': 'Markdown',
34
35
  'readonly mode label': 'Read only',
35
- 'search label': 'Search',
36
- 'source mode label': 'Source',
36
+ 'source mode label': 'Plain text',
37
37
  },
38
38
  },
39
39
  },
package/src/util/index.ts CHANGED
@@ -1,10 +1,5 @@
1
1
  //
2
- // Copyright 2024 DXOS.org
2
+ // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './cursor';
6
- export * from './decorations';
7
- export * from './debug';
8
- export * from './dom';
9
- export * from './facet';
10
5
  export * from './react';
@@ -2,30 +2,25 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import React, { type FC, type ReactNode } from 'react';
5
+ import React, { type FC } from 'react';
6
6
  import { createRoot } from 'react-dom/client';
7
7
 
8
8
  import { ThemeProvider, Tooltip } from '@dxos/react-ui';
9
- import { defaultTx } from '@dxos/react-ui-theme';
9
+ import { type RenderCallback } from '@dxos/ui-editor';
10
+ import { defaultTx } from '@dxos/ui-theme';
10
11
 
11
- import { type RenderCallback } from '../types';
12
-
13
- /** @deprecated */
14
- // TODO(wittjosiah): Replace with portals which are lighter weight and inherit context from the main react tree.
15
- export const renderRoot = <T extends Element>(root: T, node: ReactNode): T => {
16
- createRoot(root).render(<ThemeProvider tx={defaultTx}>{node}</ThemeProvider>);
17
- return root;
18
- };
12
+ /**
13
+ * @deprecated Use `trim` from `@dxos/util`.
14
+ */
15
+ export const str = (...lines: string[]) => lines.join('\n');
19
16
 
20
17
  /**
21
- * Utility to create a renderer for a React component.
22
18
  * @deprecated
23
19
  */
24
20
  export const createRenderer =
25
21
  <TProps extends object>(Component: FC<TProps>): RenderCallback<TProps> =>
26
22
  (el, props) => {
27
- renderRoot(
28
- el,
23
+ createRoot(el).render(
29
24
  <ThemeProvider tx={defaultTx}>
30
25
  <Tooltip.Provider>
31
26
  <Component {...props} />
@@ -1,22 +0,0 @@
1
- // src/types/types.ts
2
- import * as Schema from "effect/Schema";
3
- var EditorViewModes = [
4
- "preview",
5
- "readonly",
6
- "source"
7
- ];
8
- var EditorViewMode = Schema.Union(...EditorViewModes.map((mode) => Schema.Literal(mode)));
9
- var EditorInputModes = [
10
- "default",
11
- "vim",
12
- "vscode"
13
- ];
14
- var EditorInputMode = Schema.Union(...EditorInputModes.map((mode) => Schema.Literal(mode)));
15
-
16
- export {
17
- EditorViewModes,
18
- EditorViewMode,
19
- EditorInputModes,
20
- EditorInputMode
21
- };
22
- //# sourceMappingURL=chunk-HL3YF6WC.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport * as Schema from 'effect/Schema';\n\n// Runtime data structure.\nexport type Range = {\n from: number;\n to: number;\n};\n\n// Persistent data structure.\n// TODO(burdon): Rename annotation?\nexport type Comment = {\n id: string;\n cursor?: string;\n};\n\n/**\n * Callback that renders into a DOM element within the editor.\n */\nexport type RenderCallback<Props extends object> = (el: HTMLElement, props: Props, view: EditorView) => void;\n\nexport const EditorViewModes = ['preview', 'readonly', 'source'] as const;\nexport const EditorViewMode = Schema.Union(...EditorViewModes.map((mode) => Schema.Literal(mode)));\nexport type EditorViewMode = Schema.Schema.Type<typeof EditorViewMode>;\n\nexport const EditorInputModes = ['default', 'vim', 'vscode'] as const;\nexport const EditorInputMode = Schema.Union(...EditorInputModes.map((mode) => Schema.Literal(mode)));\nexport type EditorInputMode = Schema.Schema.Type<typeof EditorInputMode>;\n"],
5
- "mappings": ";AAKA,YAAYA,YAAY;AAoBjB,IAAMC,kBAAkB;EAAC;EAAW;EAAY;;AAChD,IAAMC,iBAAwBC,aAAK,GAAIF,gBAAgBG,IAAI,CAACC,SAAgBC,eAAQD,IAAAA,CAAAA,CAAAA;AAGpF,IAAME,mBAAmB;EAAC;EAAW;EAAO;;AAC5C,IAAMC,kBAAyBL,aAAK,GAAII,iBAAiBH,IAAI,CAACC,SAAgBC,eAAQD,IAAAA,CAAAA,CAAAA;",
6
- "names": ["Schema", "EditorViewModes", "EditorViewMode", "Union", "map", "mode", "Literal", "EditorInputModes", "EditorInputMode"]
7
- }
@@ -1,76 +0,0 @@
1
- // src/testing/util.ts
2
- var str = (...lines) => lines.join("\n");
3
-
4
- // src/testing/PreviewPopover.tsx
5
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
6
- import { createContext } from "@radix-ui/react-context";
7
- import React, { useCallback, useEffect, useRef, useState } from "react";
8
- import { addEventListener } from "@dxos/async";
9
- import { Popover } from "@dxos/react-ui";
10
- var [PreviewPopoverContextProvider, usePreviewPopover] = createContext("PreviewPopover", {});
11
- var PreviewPopoverProvider = ({ children, onLookup }) => {
12
- var _effect = _useSignals();
13
- try {
14
- const trigger = useRef(null);
15
- const [value, setValue] = useState({});
16
- const [open, setOpen] = useState(false);
17
- const handleDxAnchorActivate = useCallback((event) => {
18
- const { refId, label, trigger: dxTrigger } = event;
19
- setValue((value2) => ({
20
- ...value2,
21
- link: {
22
- label,
23
- ref: refId
24
- },
25
- pending: true
26
- }));
27
- trigger.current = dxTrigger;
28
- queueMicrotask(() => setOpen(true));
29
- void onLookup?.({
30
- label,
31
- ref: refId
32
- }).then((target) => setValue((value2) => ({
33
- ...value2,
34
- target: target ?? void 0,
35
- pending: false
36
- })));
37
- }, [
38
- onLookup
39
- ]);
40
- const [rootRef, setRootRef] = useState(null);
41
- useEffect(() => {
42
- if (!rootRef || !handleDxAnchorActivate) {
43
- return;
44
- }
45
- return addEventListener(rootRef, "dx-anchor-activate", handleDxAnchorActivate, {
46
- capture: true,
47
- passive: false
48
- });
49
- }, [
50
- rootRef,
51
- handleDxAnchorActivate
52
- ]);
53
- return /* @__PURE__ */ React.createElement(PreviewPopoverContextProvider, {
54
- pending: value.pending,
55
- link: value.link,
56
- target: value.target
57
- }, /* @__PURE__ */ React.createElement(Popover.Root, {
58
- open,
59
- onOpenChange: setOpen
60
- }, /* @__PURE__ */ React.createElement(Popover.VirtualTrigger, {
61
- virtualRef: trigger
62
- }), /* @__PURE__ */ React.createElement("div", {
63
- role: "none",
64
- className: "contents",
65
- ref: setRootRef
66
- }, children)));
67
- } finally {
68
- _effect.f();
69
- }
70
- };
71
- export {
72
- PreviewPopoverProvider,
73
- str,
74
- usePreviewPopover
75
- };
76
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/testing/util.ts", "../../../../src/testing/PreviewPopover.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n/** deprecated Replace with @dxos/util trim */\n// TODO(burdon): Remove\nexport const str = (...lines: string[]) => lines.join('\\n');\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type PropsWithChildren, type RefObject, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { addEventListener } from '@dxos/async';\nimport { type DxAnchorActivate, Popover } from '@dxos/react-ui';\n\nimport { type PreviewLinkRef, type PreviewLinkTarget } from '../extensions';\n\ntype PreviewLookup = (link: PreviewLinkRef) => Promise<PreviewLinkTarget | null | undefined>;\n\ntype PreviewPopoverValue = Partial<{\n link: PreviewLinkRef;\n target: PreviewLinkTarget;\n pending: boolean;\n}>;\n\nconst [PreviewPopoverContextProvider, usePreviewPopover] = createContext<PreviewPopoverValue>('PreviewPopover', {});\n\ntype PopoverLookupProviderProps = PropsWithChildren<{\n onLookup?: PreviewLookup;\n}>;\n\nconst PreviewPopoverProvider = ({ children, onLookup }: PopoverLookupProviderProps) => {\n const trigger = useRef<HTMLElement | null>(null);\n const [value, setValue] = useState<PreviewPopoverValue>({});\n const [open, setOpen] = useState(false);\n\n const handleDxAnchorActivate = useCallback(\n (event: DxAnchorActivate) => {\n const { refId, label, trigger: dxTrigger } = event;\n setValue((value) => ({\n ...value,\n link: { label, ref: refId },\n pending: true,\n }));\n trigger.current = dxTrigger;\n queueMicrotask(() => setOpen(true));\n void onLookup?.({ label, ref: refId }).then((target) =>\n setValue((value) => ({\n ...value,\n target: target ?? undefined,\n pending: false,\n })),\n );\n },\n [onLookup],\n );\n\n const [rootRef, setRootRef] = useState<HTMLDivElement | null>(null);\n useEffect(() => {\n if (!rootRef || !handleDxAnchorActivate) {\n return;\n }\n\n return addEventListener(rootRef, 'dx-anchor-activate' as any, handleDxAnchorActivate, {\n capture: true,\n passive: false,\n });\n }, [rootRef, handleDxAnchorActivate]);\n\n return (\n <PreviewPopoverContextProvider pending={value.pending} link={value.link} target={value.target}>\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.VirtualTrigger virtualRef={trigger as unknown as RefObject<HTMLButtonElement>} />\n <div role='none' className='contents' ref={setRootRef}>\n {children}\n </div>\n </Popover.Root>\n </PreviewPopoverContextProvider>\n );\n};\nexport { PreviewPopoverProvider, usePreviewPopover };\n\nexport type { PopoverLookupProviderProps, PreviewPopoverValue };\n"],
5
- "mappings": ";AAMO,IAAMA,MAAM,IAAIC,UAAoBA,MAAMC,KAAK,IAAA;;;;ACFtD,SAASC,qBAAqB;AAC9B,OAAOC,SAAiDC,aAAaC,WAAWC,QAAQC,gBAAgB;AAExG,SAASC,wBAAwB;AACjC,SAAgCC,eAAe;AAY/C,IAAM,CAACC,+BAA+BC,iBAAAA,IAAqBC,cAAmC,kBAAkB,CAAC,CAAA;AAMjH,IAAMC,yBAAyB,CAAC,EAAEC,UAAUC,SAAQ,MAA8B;;;AAChF,UAAMC,UAAUC,OAA2B,IAAA;AAC3C,UAAM,CAACC,OAAOC,QAAAA,IAAYC,SAA8B,CAAC,CAAA;AACzD,UAAM,CAACC,MAAMC,OAAAA,IAAWF,SAAS,KAAA;AAEjC,UAAMG,yBAAyBC,YAC7B,CAACC,UAAAA;AACC,YAAM,EAAEC,OAAOC,OAAOX,SAASY,UAAS,IAAKH;AAC7CN,eAAS,CAACD,YAAW;QACnB,GAAGA;QACHW,MAAM;UAAEF;UAAOG,KAAKJ;QAAM;QAC1BK,SAAS;MACX,EAAA;AACAf,cAAQgB,UAAUJ;AAClBK,qBAAe,MAAMX,QAAQ,IAAA,CAAA;AAC7B,WAAKP,WAAW;QAAEY;QAAOG,KAAKJ;MAAM,CAAA,EAAGQ,KAAK,CAACC,WAC3ChB,SAAS,CAACD,YAAW;QACnB,GAAGA;QACHiB,QAAQA,UAAUC;QAClBL,SAAS;MACX,EAAA,CAAA;IAEJ,GACA;MAAChB;KAAS;AAGZ,UAAM,CAACsB,SAASC,UAAAA,IAAclB,SAAgC,IAAA;AAC9DmB,cAAU,MAAA;AACR,UAAI,CAACF,WAAW,CAACd,wBAAwB;AACvC;MACF;AAEA,aAAOiB,iBAAiBH,SAAS,sBAA6Bd,wBAAwB;QACpFkB,SAAS;QACTC,SAAS;MACX,CAAA;IACF,GAAG;MAACL;MAASd;KAAuB;AAEpC,WACE,sBAAA,cAACb,+BAAAA;MAA8BqB,SAASb,MAAMa;MAASF,MAAMX,MAAMW;MAAMM,QAAQjB,MAAMiB;OACrF,sBAAA,cAACQ,QAAQC,MAAI;MAACvB;MAAYwB,cAAcvB;OACtC,sBAAA,cAACqB,QAAQG,gBAAc;MAACC,YAAY/B;QACpC,sBAAA,cAACgC,OAAAA;MAAIC,MAAK;MAAOC,WAAU;MAAWpB,KAAKQ;OACxCxB,QAAAA,CAAAA,CAAAA;;;;AAKX;",
6
- "names": ["str", "lines", "join", "createContext", "React", "useCallback", "useEffect", "useRef", "useState", "addEventListener", "Popover", "PreviewPopoverContextProvider", "usePreviewPopover", "createContext", "PreviewPopoverProvider", "children", "onLookup", "trigger", "useRef", "value", "setValue", "useState", "open", "setOpen", "handleDxAnchorActivate", "useCallback", "event", "refId", "label", "dxTrigger", "link", "ref", "pending", "current", "queueMicrotask", "then", "target", "undefined", "rootRef", "setRootRef", "useEffect", "addEventListener", "capture", "passive", "Popover", "Root", "onOpenChange", "VirtualTrigger", "virtualRef", "div", "role", "className"]
7
- }
@@ -1,13 +0,0 @@
1
- import {
2
- EditorInputMode,
3
- EditorInputModes,
4
- EditorViewMode,
5
- EditorViewModes
6
- } from "../chunk-HL3YF6WC.mjs";
7
- export {
8
- EditorInputMode,
9
- EditorInputModes,
10
- EditorViewMode,
11
- EditorViewModes
12
- };
13
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,24 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/types/types.ts
4
- import * as Schema from "effect/Schema";
5
- var EditorViewModes = [
6
- "preview",
7
- "readonly",
8
- "source"
9
- ];
10
- var EditorViewMode = Schema.Union(...EditorViewModes.map((mode) => Schema.Literal(mode)));
11
- var EditorInputModes = [
12
- "default",
13
- "vim",
14
- "vscode"
15
- ];
16
- var EditorInputMode = Schema.Union(...EditorInputModes.map((mode) => Schema.Literal(mode)));
17
-
18
- export {
19
- EditorViewModes,
20
- EditorViewMode,
21
- EditorInputModes,
22
- EditorInputMode
23
- };
24
- //# sourceMappingURL=chunk-YJZGD3LY.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport * as Schema from 'effect/Schema';\n\n// Runtime data structure.\nexport type Range = {\n from: number;\n to: number;\n};\n\n// Persistent data structure.\n// TODO(burdon): Rename annotation?\nexport type Comment = {\n id: string;\n cursor?: string;\n};\n\n/**\n * Callback that renders into a DOM element within the editor.\n */\nexport type RenderCallback<Props extends object> = (el: HTMLElement, props: Props, view: EditorView) => void;\n\nexport const EditorViewModes = ['preview', 'readonly', 'source'] as const;\nexport const EditorViewMode = Schema.Union(...EditorViewModes.map((mode) => Schema.Literal(mode)));\nexport type EditorViewMode = Schema.Schema.Type<typeof EditorViewMode>;\n\nexport const EditorInputModes = ['default', 'vim', 'vscode'] as const;\nexport const EditorInputMode = Schema.Union(...EditorInputModes.map((mode) => Schema.Literal(mode)));\nexport type EditorInputMode = Schema.Schema.Type<typeof EditorInputMode>;\n"],
5
- "mappings": ";;;AAKA,YAAYA,YAAY;AAoBjB,IAAMC,kBAAkB;EAAC;EAAW;EAAY;;AAChD,IAAMC,iBAAwBC,aAAK,GAAIF,gBAAgBG,IAAI,CAACC,SAAgBC,eAAQD,IAAAA,CAAAA,CAAAA;AAGpF,IAAME,mBAAmB;EAAC;EAAW;EAAO;;AAC5C,IAAMC,kBAAyBL,aAAK,GAAII,iBAAiBH,IAAI,CAACC,SAAgBC,eAAQD,IAAAA,CAAAA,CAAAA;",
6
- "names": ["Schema", "EditorViewModes", "EditorViewMode", "Union", "map", "mode", "Literal", "EditorInputModes", "EditorInputMode"]
7
- }
@@ -1,78 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/testing/util.ts
4
- var str = (...lines) => lines.join("\n");
5
-
6
- // src/testing/PreviewPopover.tsx
7
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
8
- import { createContext } from "@radix-ui/react-context";
9
- import React, { useCallback, useEffect, useRef, useState } from "react";
10
- import { addEventListener } from "@dxos/async";
11
- import { Popover } from "@dxos/react-ui";
12
- var [PreviewPopoverContextProvider, usePreviewPopover] = createContext("PreviewPopover", {});
13
- var PreviewPopoverProvider = ({ children, onLookup }) => {
14
- var _effect = _useSignals();
15
- try {
16
- const trigger = useRef(null);
17
- const [value, setValue] = useState({});
18
- const [open, setOpen] = useState(false);
19
- const handleDxAnchorActivate = useCallback((event) => {
20
- const { refId, label, trigger: dxTrigger } = event;
21
- setValue((value2) => ({
22
- ...value2,
23
- link: {
24
- label,
25
- ref: refId
26
- },
27
- pending: true
28
- }));
29
- trigger.current = dxTrigger;
30
- queueMicrotask(() => setOpen(true));
31
- void onLookup?.({
32
- label,
33
- ref: refId
34
- }).then((target) => setValue((value2) => ({
35
- ...value2,
36
- target: target ?? void 0,
37
- pending: false
38
- })));
39
- }, [
40
- onLookup
41
- ]);
42
- const [rootRef, setRootRef] = useState(null);
43
- useEffect(() => {
44
- if (!rootRef || !handleDxAnchorActivate) {
45
- return;
46
- }
47
- return addEventListener(rootRef, "dx-anchor-activate", handleDxAnchorActivate, {
48
- capture: true,
49
- passive: false
50
- });
51
- }, [
52
- rootRef,
53
- handleDxAnchorActivate
54
- ]);
55
- return /* @__PURE__ */ React.createElement(PreviewPopoverContextProvider, {
56
- pending: value.pending,
57
- link: value.link,
58
- target: value.target
59
- }, /* @__PURE__ */ React.createElement(Popover.Root, {
60
- open,
61
- onOpenChange: setOpen
62
- }, /* @__PURE__ */ React.createElement(Popover.VirtualTrigger, {
63
- virtualRef: trigger
64
- }), /* @__PURE__ */ React.createElement("div", {
65
- role: "none",
66
- className: "contents",
67
- ref: setRootRef
68
- }, children)));
69
- } finally {
70
- _effect.f();
71
- }
72
- };
73
- export {
74
- PreviewPopoverProvider,
75
- str,
76
- usePreviewPopover
77
- };
78
- //# sourceMappingURL=index.mjs.map