@dxos/react-ui-editor 0.8.4-main.b97322e → 0.8.4-main.bcb3aa67d6

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 (401) hide show
  1. package/dist/lib/browser/index.mjs +1337 -7593
  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 +1337 -7592
  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 +34 -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/blocks.d.ts +4 -17
  36. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  37. package/dist/types/src/components/EditorToolbar/formatting.d.ts +4 -17
  38. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  39. package/dist/types/src/components/EditorToolbar/headings.d.ts +4 -17
  40. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  41. package/dist/types/src/components/EditorToolbar/image.d.ts +3 -15
  42. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  43. package/dist/types/src/components/EditorToolbar/index.d.ts +1 -1
  44. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  45. package/dist/types/src/components/EditorToolbar/lists.d.ts +4 -17
  46. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -1
  47. package/dist/types/src/components/EditorToolbar/search.d.ts +3 -15
  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 +5 -18
  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/stories/Automerge.stories.d.ts +44 -0
  60. package/dist/types/src/stories/Automerge.stories.d.ts.map +1 -0
  61. package/dist/types/src/stories/Comments.stories.d.ts +22 -10
  62. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  63. package/dist/types/src/stories/EditorToolbar.stories.d.ts +40 -4
  64. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  65. package/dist/types/src/stories/Experimental.stories.d.ts +23 -13
  66. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  67. package/dist/types/src/stories/Markdown.stories.d.ts +33 -43
  68. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  69. package/dist/types/src/stories/Outliner.stories.d.ts +16 -22
  70. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  71. package/dist/types/src/stories/Popover.stories.d.ts +20 -0
  72. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -0
  73. package/dist/types/src/stories/Preview.stories.d.ts +23 -7
  74. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  75. package/dist/types/src/stories/Tags.stories.d.ts +16 -0
  76. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -0
  77. package/dist/types/src/stories/TextEditor.stories.d.ts +38 -52
  78. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  79. package/dist/types/src/stories/Theme.stories.d.ts +8 -0
  80. package/dist/types/src/stories/Theme.stories.d.ts.map +1 -0
  81. package/dist/types/src/stories/components/EditorStory.d.ts +11 -23
  82. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  83. package/dist/types/src/stories/components/util.d.ts +3 -3
  84. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  85. package/dist/types/src/translations.d.ts +26 -26
  86. package/dist/types/src/translations.d.ts.map +1 -1
  87. package/dist/types/src/util/index.d.ts +0 -4
  88. package/dist/types/src/util/index.d.ts.map +1 -1
  89. package/dist/types/src/util/react.d.ts +7 -6
  90. package/dist/types/src/util/react.d.ts.map +1 -1
  91. package/dist/types/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +84 -80
  93. package/src/components/Editor/Editor.stories.tsx +95 -0
  94. package/src/components/Editor/Editor.tsx +170 -24
  95. package/src/components/EditorContent/EditorContent.tsx +83 -0
  96. package/src/components/EditorContent/controller.ts +50 -0
  97. package/src/components/EditorContent/index.ts +6 -0
  98. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +226 -0
  99. package/src/components/EditorMenuProvider/index.ts +10 -0
  100. package/src/components/EditorMenuProvider/menu-presets.ts +125 -0
  101. package/src/components/EditorMenuProvider/menu.ts +70 -0
  102. package/src/components/EditorMenuProvider/popover.ts +285 -0
  103. package/src/components/EditorMenuProvider/useEditorMenu.ts +180 -0
  104. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +79 -0
  105. package/src/components/EditorPreviewProvider/index.ts +5 -0
  106. package/src/components/EditorToolbar/EditorToolbar.tsx +90 -103
  107. package/src/components/EditorToolbar/blocks.ts +53 -48
  108. package/src/components/EditorToolbar/formatting.ts +42 -46
  109. package/src/components/EditorToolbar/headings.ts +46 -44
  110. package/src/components/EditorToolbar/image.ts +16 -10
  111. package/src/components/EditorToolbar/index.ts +2 -7
  112. package/src/components/EditorToolbar/lists.ts +39 -41
  113. package/src/components/EditorToolbar/search.ts +16 -10
  114. package/src/components/EditorToolbar/useEditorToolbar.ts +20 -0
  115. package/src/components/EditorToolbar/view-mode.ts +39 -39
  116. package/src/components/index.ts +6 -2
  117. package/src/hooks/useTextEditor.ts +39 -45
  118. package/src/index.ts +0 -10
  119. package/src/stories/Automerge.stories.tsx +173 -0
  120. package/src/stories/Comments.stories.tsx +59 -51
  121. package/src/stories/EditorToolbar.stories.tsx +72 -41
  122. package/src/stories/Experimental.stories.tsx +18 -16
  123. package/src/stories/Markdown.stories.tsx +37 -33
  124. package/src/stories/Outliner.stories.tsx +55 -44
  125. package/src/stories/Popover.stories.tsx +158 -0
  126. package/src/stories/Preview.stories.tsx +112 -92
  127. package/src/stories/Tags.stories.tsx +104 -0
  128. package/src/stories/TextEditor.stories.tsx +50 -75
  129. package/src/stories/Theme.stories.tsx +61 -0
  130. package/src/stories/components/EditorStory.tsx +48 -35
  131. package/src/stories/components/util.tsx +60 -31
  132. package/src/translations.ts +30 -25
  133. package/src/util/index.ts +1 -5
  134. package/src/util/react.tsx +9 -14
  135. package/dist/lib/browser/chunk-22UMM3QJ.mjs +0 -22
  136. package/dist/lib/browser/chunk-22UMM3QJ.mjs.map +0 -7
  137. package/dist/lib/browser/testing/index.mjs +0 -6
  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-YXYQPV6R.mjs +0 -24
  142. package/dist/lib/node-esm/chunk-YXYQPV6R.mjs.map +0 -7
  143. package/dist/lib/node-esm/testing/index.mjs +0 -8
  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/EditorToolbar/util.d.ts +0 -51
  148. package/dist/types/src/components/EditorToolbar/util.d.ts.map +0 -1
  149. package/dist/types/src/components/Popover/CommandMenu.d.ts +0 -34
  150. package/dist/types/src/components/Popover/CommandMenu.d.ts.map +0 -1
  151. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts +0 -21
  152. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +0 -1
  153. package/dist/types/src/components/Popover/RefPopover.d.ts +0 -34
  154. package/dist/types/src/components/Popover/RefPopover.d.ts.map +0 -1
  155. package/dist/types/src/components/Popover/index.d.ts +0 -4
  156. package/dist/types/src/components/Popover/index.d.ts.map +0 -1
  157. package/dist/types/src/defaults.d.ts +0 -14
  158. package/dist/types/src/defaults.d.ts.map +0 -1
  159. package/dist/types/src/extensions/annotations.d.ts +0 -9
  160. package/dist/types/src/extensions/annotations.d.ts.map +0 -1
  161. package/dist/types/src/extensions/autocomplete.d.ts +0 -13
  162. package/dist/types/src/extensions/autocomplete.d.ts.map +0 -1
  163. package/dist/types/src/extensions/automerge/automerge.d.ts +0 -4
  164. package/dist/types/src/extensions/automerge/automerge.d.ts.map +0 -1
  165. package/dist/types/src/extensions/automerge/automerge.stories.d.ts +0 -56
  166. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +0 -1
  167. package/dist/types/src/extensions/automerge/automerge.test.d.ts +0 -2
  168. package/dist/types/src/extensions/automerge/automerge.test.d.ts.map +0 -1
  169. package/dist/types/src/extensions/automerge/cursor.d.ts +0 -4
  170. package/dist/types/src/extensions/automerge/cursor.d.ts.map +0 -1
  171. package/dist/types/src/extensions/automerge/defs.d.ts +0 -17
  172. package/dist/types/src/extensions/automerge/defs.d.ts.map +0 -1
  173. package/dist/types/src/extensions/automerge/index.d.ts +0 -2
  174. package/dist/types/src/extensions/automerge/index.d.ts.map +0 -1
  175. package/dist/types/src/extensions/automerge/sync.d.ts +0 -17
  176. package/dist/types/src/extensions/automerge/sync.d.ts.map +0 -1
  177. package/dist/types/src/extensions/automerge/update-automerge.d.ts +0 -6
  178. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +0 -1
  179. package/dist/types/src/extensions/automerge/update-codemirror.d.ts +0 -5
  180. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +0 -1
  181. package/dist/types/src/extensions/awareness/awareness-provider.d.ts +0 -31
  182. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +0 -1
  183. package/dist/types/src/extensions/awareness/awareness.d.ts +0 -46
  184. package/dist/types/src/extensions/awareness/awareness.d.ts.map +0 -1
  185. package/dist/types/src/extensions/awareness/index.d.ts +0 -3
  186. package/dist/types/src/extensions/awareness/index.d.ts.map +0 -1
  187. package/dist/types/src/extensions/blast.d.ts +0 -25
  188. package/dist/types/src/extensions/blast.d.ts.map +0 -1
  189. package/dist/types/src/extensions/command/action.d.ts +0 -17
  190. package/dist/types/src/extensions/command/action.d.ts.map +0 -1
  191. package/dist/types/src/extensions/command/command-menu.d.ts +0 -20
  192. package/dist/types/src/extensions/command/command-menu.d.ts.map +0 -1
  193. package/dist/types/src/extensions/command/command.d.ts +0 -6
  194. package/dist/types/src/extensions/command/command.d.ts.map +0 -1
  195. package/dist/types/src/extensions/command/floating-menu.d.ts +0 -7
  196. package/dist/types/src/extensions/command/floating-menu.d.ts.map +0 -1
  197. package/dist/types/src/extensions/command/hint.d.ts +0 -24
  198. package/dist/types/src/extensions/command/hint.d.ts.map +0 -1
  199. package/dist/types/src/extensions/command/index.d.ts +0 -7
  200. package/dist/types/src/extensions/command/index.d.ts.map +0 -1
  201. package/dist/types/src/extensions/command/placeholder.d.ts +0 -10
  202. package/dist/types/src/extensions/command/placeholder.d.ts.map +0 -1
  203. package/dist/types/src/extensions/command/state.d.ts +0 -16
  204. package/dist/types/src/extensions/command/state.d.ts.map +0 -1
  205. package/dist/types/src/extensions/command/typeahead.d.ts +0 -22
  206. package/dist/types/src/extensions/command/typeahead.d.ts.map +0 -1
  207. package/dist/types/src/extensions/command/useCommandMenu.d.ts +0 -26
  208. package/dist/types/src/extensions/command/useCommandMenu.d.ts.map +0 -1
  209. package/dist/types/src/extensions/comments.d.ts +0 -95
  210. package/dist/types/src/extensions/comments.d.ts.map +0 -1
  211. package/dist/types/src/extensions/debug.d.ts +0 -3
  212. package/dist/types/src/extensions/debug.d.ts.map +0 -1
  213. package/dist/types/src/extensions/dnd.d.ts +0 -9
  214. package/dist/types/src/extensions/dnd.d.ts.map +0 -1
  215. package/dist/types/src/extensions/factories.d.ts +0 -83
  216. package/dist/types/src/extensions/factories.d.ts.map +0 -1
  217. package/dist/types/src/extensions/focus.d.ts +0 -7
  218. package/dist/types/src/extensions/focus.d.ts.map +0 -1
  219. package/dist/types/src/extensions/folding.d.ts +0 -7
  220. package/dist/types/src/extensions/folding.d.ts.map +0 -1
  221. package/dist/types/src/extensions/hashtag.d.ts +0 -3
  222. package/dist/types/src/extensions/hashtag.d.ts.map +0 -1
  223. package/dist/types/src/extensions/index.d.ts +0 -23
  224. package/dist/types/src/extensions/index.d.ts.map +0 -1
  225. package/dist/types/src/extensions/json.d.ts +0 -7
  226. package/dist/types/src/extensions/json.d.ts.map +0 -1
  227. package/dist/types/src/extensions/listener.d.ts +0 -11
  228. package/dist/types/src/extensions/listener.d.ts.map +0 -1
  229. package/dist/types/src/extensions/markdown/action.d.ts +0 -12
  230. package/dist/types/src/extensions/markdown/action.d.ts.map +0 -1
  231. package/dist/types/src/extensions/markdown/bundle.d.ts +0 -16
  232. package/dist/types/src/extensions/markdown/bundle.d.ts.map +0 -1
  233. package/dist/types/src/extensions/markdown/changes.d.ts +0 -10
  234. package/dist/types/src/extensions/markdown/changes.d.ts.map +0 -1
  235. package/dist/types/src/extensions/markdown/changes.test.d.ts +0 -2
  236. package/dist/types/src/extensions/markdown/changes.test.d.ts.map +0 -1
  237. package/dist/types/src/extensions/markdown/debug.d.ts +0 -11
  238. package/dist/types/src/extensions/markdown/debug.d.ts.map +0 -1
  239. package/dist/types/src/extensions/markdown/decorate.d.ts +0 -17
  240. package/dist/types/src/extensions/markdown/decorate.d.ts.map +0 -1
  241. package/dist/types/src/extensions/markdown/formatting.d.ts +0 -63
  242. package/dist/types/src/extensions/markdown/formatting.d.ts.map +0 -1
  243. package/dist/types/src/extensions/markdown/formatting.test.d.ts +0 -3
  244. package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +0 -1
  245. package/dist/types/src/extensions/markdown/highlight.d.ts +0 -37
  246. package/dist/types/src/extensions/markdown/highlight.d.ts.map +0 -1
  247. package/dist/types/src/extensions/markdown/image.d.ts +0 -7
  248. package/dist/types/src/extensions/markdown/image.d.ts.map +0 -1
  249. package/dist/types/src/extensions/markdown/index.d.ts +0 -10
  250. package/dist/types/src/extensions/markdown/index.d.ts.map +0 -1
  251. package/dist/types/src/extensions/markdown/link.d.ts +0 -7
  252. package/dist/types/src/extensions/markdown/link.d.ts.map +0 -1
  253. package/dist/types/src/extensions/markdown/parser.test.d.ts +0 -2
  254. package/dist/types/src/extensions/markdown/parser.test.d.ts.map +0 -1
  255. package/dist/types/src/extensions/markdown/styles.d.ts +0 -4
  256. package/dist/types/src/extensions/markdown/styles.d.ts.map +0 -1
  257. package/dist/types/src/extensions/markdown/table.d.ts +0 -8
  258. package/dist/types/src/extensions/markdown/table.d.ts.map +0 -1
  259. package/dist/types/src/extensions/mention.d.ts +0 -7
  260. package/dist/types/src/extensions/mention.d.ts.map +0 -1
  261. package/dist/types/src/extensions/modes.d.ts +0 -10
  262. package/dist/types/src/extensions/modes.d.ts.map +0 -1
  263. package/dist/types/src/extensions/outliner/commands.d.ts +0 -10
  264. package/dist/types/src/extensions/outliner/commands.d.ts.map +0 -1
  265. package/dist/types/src/extensions/outliner/editor.d.ts +0 -5
  266. package/dist/types/src/extensions/outliner/editor.d.ts.map +0 -1
  267. package/dist/types/src/extensions/outliner/editor.test.d.ts +0 -2
  268. package/dist/types/src/extensions/outliner/editor.test.d.ts.map +0 -1
  269. package/dist/types/src/extensions/outliner/index.d.ts +0 -4
  270. package/dist/types/src/extensions/outliner/index.d.ts.map +0 -1
  271. package/dist/types/src/extensions/outliner/outliner.d.ts +0 -11
  272. package/dist/types/src/extensions/outliner/outliner.d.ts.map +0 -1
  273. package/dist/types/src/extensions/outliner/outliner.test.d.ts +0 -2
  274. package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +0 -1
  275. package/dist/types/src/extensions/outliner/selection.d.ts +0 -12
  276. package/dist/types/src/extensions/outliner/selection.d.ts.map +0 -1
  277. package/dist/types/src/extensions/outliner/tree.d.ts +0 -79
  278. package/dist/types/src/extensions/outliner/tree.d.ts.map +0 -1
  279. package/dist/types/src/extensions/outliner/tree.test.d.ts +0 -2
  280. package/dist/types/src/extensions/outliner/tree.test.d.ts.map +0 -1
  281. package/dist/types/src/extensions/preview/index.d.ts +0 -2
  282. package/dist/types/src/extensions/preview/index.d.ts.map +0 -1
  283. package/dist/types/src/extensions/preview/preview.d.ts +0 -32
  284. package/dist/types/src/extensions/preview/preview.d.ts.map +0 -1
  285. package/dist/types/src/extensions/selection.d.ts +0 -24
  286. package/dist/types/src/extensions/selection.d.ts.map +0 -1
  287. package/dist/types/src/extensions/typewriter.d.ts +0 -10
  288. package/dist/types/src/extensions/typewriter.d.ts.map +0 -1
  289. package/dist/types/src/stories/Command.stories.d.ts +0 -7
  290. package/dist/types/src/stories/Command.stories.d.ts.map +0 -1
  291. package/dist/types/src/stories/CommandMenu.stories.d.ts +0 -13
  292. package/dist/types/src/stories/CommandMenu.stories.d.ts.map +0 -1
  293. package/dist/types/src/styles/index.d.ts +0 -4
  294. package/dist/types/src/styles/index.d.ts.map +0 -1
  295. package/dist/types/src/styles/markdown.d.ts +0 -8
  296. package/dist/types/src/styles/markdown.d.ts.map +0 -1
  297. package/dist/types/src/styles/theme.d.ts +0 -38
  298. package/dist/types/src/styles/theme.d.ts.map +0 -1
  299. package/dist/types/src/styles/tokens.d.ts +0 -3
  300. package/dist/types/src/styles/tokens.d.ts.map +0 -1
  301. package/dist/types/src/testing/index.d.ts +0 -2
  302. package/dist/types/src/testing/index.d.ts.map +0 -1
  303. package/dist/types/src/testing/util.d.ts +0 -2
  304. package/dist/types/src/testing/util.d.ts.map +0 -1
  305. package/dist/types/src/types/index.d.ts +0 -2
  306. package/dist/types/src/types/index.d.ts.map +0 -1
  307. package/dist/types/src/types/types.d.ts +0 -21
  308. package/dist/types/src/types/types.d.ts.map +0 -1
  309. package/dist/types/src/util/cursor.d.ts +0 -31
  310. package/dist/types/src/util/cursor.d.ts.map +0 -1
  311. package/dist/types/src/util/debug.d.ts +0 -17
  312. package/dist/types/src/util/debug.d.ts.map +0 -1
  313. package/dist/types/src/util/dom.d.ts +0 -20
  314. package/dist/types/src/util/dom.d.ts.map +0 -1
  315. package/dist/types/src/util/facet.d.ts +0 -3
  316. package/dist/types/src/util/facet.d.ts.map +0 -1
  317. package/src/components/EditorToolbar/util.ts +0 -65
  318. package/src/components/Popover/CommandMenu.tsx +0 -279
  319. package/src/components/Popover/RefDropdownMenu.tsx +0 -85
  320. package/src/components/Popover/RefPopover.tsx +0 -99
  321. package/src/components/Popover/index.ts +0 -7
  322. package/src/defaults.ts +0 -49
  323. package/src/extensions/annotations.ts +0 -55
  324. package/src/extensions/autocomplete.ts +0 -69
  325. package/src/extensions/automerge/automerge.stories.tsx +0 -142
  326. package/src/extensions/automerge/automerge.test.tsx +0 -78
  327. package/src/extensions/automerge/automerge.ts +0 -85
  328. package/src/extensions/automerge/cursor.ts +0 -28
  329. package/src/extensions/automerge/defs.ts +0 -31
  330. package/src/extensions/automerge/index.ts +0 -5
  331. package/src/extensions/automerge/sync.ts +0 -75
  332. package/src/extensions/automerge/update-automerge.ts +0 -50
  333. package/src/extensions/automerge/update-codemirror.ts +0 -115
  334. package/src/extensions/awareness/awareness-provider.ts +0 -127
  335. package/src/extensions/awareness/awareness.ts +0 -315
  336. package/src/extensions/awareness/index.ts +0 -6
  337. package/src/extensions/blast.ts +0 -363
  338. package/src/extensions/command/action.ts +0 -56
  339. package/src/extensions/command/command-menu.ts +0 -210
  340. package/src/extensions/command/command.ts +0 -34
  341. package/src/extensions/command/floating-menu.ts +0 -133
  342. package/src/extensions/command/hint.ts +0 -102
  343. package/src/extensions/command/index.ts +0 -10
  344. package/src/extensions/command/placeholder.ts +0 -113
  345. package/src/extensions/command/state.ts +0 -89
  346. package/src/extensions/command/typeahead.ts +0 -129
  347. package/src/extensions/command/useCommandMenu.ts +0 -118
  348. package/src/extensions/comments.ts +0 -592
  349. package/src/extensions/debug.ts +0 -15
  350. package/src/extensions/dnd.ts +0 -37
  351. package/src/extensions/factories.ts +0 -259
  352. package/src/extensions/focus.ts +0 -35
  353. package/src/extensions/folding.tsx +0 -46
  354. package/src/extensions/hashtag.tsx +0 -68
  355. package/src/extensions/index.ts +0 -26
  356. package/src/extensions/json.ts +0 -57
  357. package/src/extensions/listener.ts +0 -38
  358. package/src/extensions/markdown/action.ts +0 -116
  359. package/src/extensions/markdown/bundle.ts +0 -71
  360. package/src/extensions/markdown/changes.test.ts +0 -26
  361. package/src/extensions/markdown/changes.ts +0 -149
  362. package/src/extensions/markdown/debug.ts +0 -44
  363. package/src/extensions/markdown/decorate.ts +0 -591
  364. package/src/extensions/markdown/formatting.test.ts +0 -498
  365. package/src/extensions/markdown/formatting.ts +0 -1267
  366. package/src/extensions/markdown/highlight.ts +0 -183
  367. package/src/extensions/markdown/image.ts +0 -119
  368. package/src/extensions/markdown/index.ts +0 -13
  369. package/src/extensions/markdown/link.ts +0 -47
  370. package/src/extensions/markdown/parser.test.ts +0 -75
  371. package/src/extensions/markdown/styles.ts +0 -135
  372. package/src/extensions/markdown/table.ts +0 -144
  373. package/src/extensions/mention.ts +0 -41
  374. package/src/extensions/modes.ts +0 -41
  375. package/src/extensions/outliner/commands.ts +0 -270
  376. package/src/extensions/outliner/editor.test.ts +0 -33
  377. package/src/extensions/outliner/editor.ts +0 -184
  378. package/src/extensions/outliner/index.ts +0 -7
  379. package/src/extensions/outliner/outliner.test.ts +0 -99
  380. package/src/extensions/outliner/outliner.ts +0 -166
  381. package/src/extensions/outliner/selection.ts +0 -50
  382. package/src/extensions/outliner/tree.test.ts +0 -167
  383. package/src/extensions/outliner/tree.ts +0 -317
  384. package/src/extensions/preview/index.ts +0 -5
  385. package/src/extensions/preview/preview.ts +0 -193
  386. package/src/extensions/selection.ts +0 -100
  387. package/src/extensions/typewriter.ts +0 -68
  388. package/src/stories/Command.stories.tsx +0 -97
  389. package/src/stories/CommandMenu.stories.tsx +0 -159
  390. package/src/styles/index.ts +0 -7
  391. package/src/styles/markdown.ts +0 -26
  392. package/src/styles/theme.ts +0 -265
  393. package/src/styles/tokens.ts +0 -17
  394. package/src/testing/index.ts +0 -5
  395. package/src/testing/util.ts +0 -5
  396. package/src/types/index.ts +0 -5
  397. package/src/types/types.ts +0 -32
  398. package/src/util/cursor.ts +0 -55
  399. package/src/util/debug.ts +0 -64
  400. package/src/util/dom.ts +0 -56
  401. package/src/util/facet.ts +0 -13
@@ -2,81 +2,89 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
- import { effect, useSignal } from '@preact/signals-react';
8
- import React, { type FC } from 'react';
5
+ import { Atom, RegistryContext } from '@effect-atom/atom-react';
6
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
+ import React, { type FC, useContext, useMemo } from 'react';
9
8
 
10
9
  import { keySymbols, parseShortcut } from '@dxos/keyboard';
11
10
  import { PublicKey } from '@dxos/keys';
12
11
  import { log } from '@dxos/log';
13
- import { withLayout, withTheme, type Meta } from '@dxos/storybook-utils';
12
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
13
+ import { withRegistry } from '@dxos/storybook-utils';
14
+ import { type Comment, annotations, comments, createExternalCommentSync } from '@dxos/ui-editor';
15
+
16
+ import { createRenderer, str } from '../util';
14
17
 
15
18
  import { EditorStory, content, longText } from './components';
16
- import { annotations, comments, createExternalCommentSync } from '../extensions';
17
- import { str } from '../testing';
18
- import { type Comment } from '../types';
19
- import { createRenderer } from '../util';
20
19
 
21
- const meta: Meta<typeof EditorStory> = {
20
+ const meta = {
22
21
  title: 'ui/react-ui-editor/Comments',
23
22
  component: EditorStory,
24
- decorators: [withTheme, withLayout({ fullscreen: true })],
25
- parameters: { layout: 'fullscreen' },
26
- };
23
+ decorators: [withRegistry, withTheme(), withLayout({ layout: 'fullscreen' })],
24
+ parameters: {
25
+ layout: 'fullscreen',
26
+ },
27
+ } satisfies Meta<typeof EditorStory>;
27
28
 
28
29
  export default meta;
29
30
 
31
+ type Story = StoryObj<typeof meta>;
32
+
30
33
  //
31
34
  // Comments
32
35
  //
33
36
 
34
- export const Comments = {
35
- render: () => {
36
- const _comments = useSignal<Comment[]>([]);
37
- return (
38
- <EditorStory
39
- text={str('# Comments', '', content.paragraphs, content.footer)}
40
- extensions={[
41
- createExternalCommentSync(
42
- 'test',
43
- (sink) => effect(() => sink()),
44
- () => _comments.value,
45
- ),
46
- comments({
47
- id: 'test',
48
- renderTooltip: createRenderer(CommentTooltip),
49
- onCreate: ({ cursor }) => {
50
- const id = PublicKey.random().toHex();
51
- _comments.value = [..._comments.value, { id, cursor }];
52
- return id;
53
- },
54
- onSelect: (state) => {
55
- const debug = false;
56
- if (debug) {
57
- log.info('update', {
58
- comments: state.comments.length,
59
- active: state.selection.current?.slice(0, 8),
60
- closest: state.selection.closest?.slice(0, 8),
61
- });
62
- }
63
- },
64
- }),
65
- ]}
66
- />
67
- );
68
- },
37
+ const CommentsStory = () => {
38
+ const registry = useContext(RegistryContext);
39
+ const commentsAtom = useMemo(() => Atom.make<Comment[]>([]), []);
40
+
41
+ return (
42
+ <EditorStory
43
+ text={str('# Comments', '', content.paragraphs, content.footer)}
44
+ extensions={[
45
+ createExternalCommentSync(
46
+ 'test',
47
+ (sink) => registry.subscribe(commentsAtom, () => sink()),
48
+ () => registry.get(commentsAtom),
49
+ ),
50
+ comments({
51
+ id: 'test',
52
+ renderTooltip: createRenderer(CommentTooltip),
53
+ onCreate: ({ cursor }) => {
54
+ const id = PublicKey.random().toHex();
55
+ const current = registry.get(commentsAtom);
56
+ registry.set(commentsAtom, [...current, { id, cursor }]);
57
+ return id;
58
+ },
59
+ onSelect: (state) => {
60
+ const debug = false;
61
+ if (debug) {
62
+ log.info('update', {
63
+ comments: state.comments.length,
64
+ active: state.selection.current?.slice(0, 8),
65
+ closest: state.selection.closest?.slice(0, 8),
66
+ });
67
+ }
68
+ },
69
+ }),
70
+ ]}
71
+ />
72
+ );
73
+ };
74
+
75
+ export const Comments: Story = {
76
+ render: () => <CommentsStory />,
69
77
  };
70
78
 
71
79
  const Key: FC<{ char: string }> = ({ char }) => (
72
- <span className='flex justify-center items-center w-[24px] h-[24px] rounded text-xs bg-neutral-200 text-black'>
80
+ <span className='flex justify-center items-center w-[24px] h-[24px] rounded-sm text-xs bg-neutral-200 text-black'>
73
81
  {char}
74
82
  </span>
75
83
  );
76
84
 
77
85
  const CommentTooltip: FC<{ shortcut: string }> = ({ shortcut }) => {
78
86
  return (
79
- <div className='flex items-center gap-2 px-2 py-2 bg-neutral-700 text-white text-xs rounded'>
87
+ <div className='flex items-center gap-2 px-2 py-2 bg-neutral-700 text-white text-xs rounded-sm'>
80
88
  <div>Create comment</div>
81
89
  <div className='flex gap-1'>
82
90
  {keySymbols(parseShortcut(shortcut)).map((char) => (
@@ -91,7 +99,7 @@ const CommentTooltip: FC<{ shortcut: string }> = ({ shortcut }) => {
91
99
  // Annotations
92
100
  //
93
101
 
94
- export const Annotations = {
102
+ export const Annotations: Story = {
95
103
  render: () => (
96
104
  <EditorStory text={str('# Annotations', '', longText)} extensions={[annotations({ match: /volup/gi })]} />
97
105
  ),
@@ -2,53 +2,71 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
- import { type StoryObj } from '@storybook/react-vite';
8
- import React, { useCallback, useState } from 'react';
5
+ import { RegistryContext, useAtomValue } from '@effect-atom/atom-react';
6
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
+ import React, { useCallback, useContext, useState } from 'react';
9
8
 
10
9
  import { invariant } from '@dxos/invariant';
11
- import { useThemeContext } from '@dxos/react-ui';
12
- import { attentionSurface, mx } from '@dxos/react-ui-theme';
13
- import { type Meta, withLayout, withTheme } from '@dxos/storybook-utils';
14
-
15
- import { EditorToolbar, useEditorToolbarState } from '../components';
16
- import { editorWidth } from '../defaults';
10
+ import { Panel, useThemeContext } from '@dxos/react-ui';
11
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
12
+ import { withRegistry } from '@dxos/storybook-utils';
17
13
  import {
14
+ type EditorInputMode,
15
+ type EditorViewMode,
18
16
  InputModeExtensions,
19
- createMarkdownExtensions,
20
17
  createBasicExtensions,
18
+ createMarkdownExtensions,
21
19
  createThemeExtensions,
22
20
  decorateMarkdown,
21
+ documentSlots,
23
22
  formattingKeymap,
24
- useFormattingState,
25
- } from '../extensions';
26
- import { useTextEditor, type UseTextEditorProps } from '../hooks';
23
+ formattingListener,
24
+ } from '@dxos/ui-editor';
25
+
26
+ import { EditorToolbar, type EditorToolbarState, useEditorToolbar } from '../components';
27
+ import { type UseTextEditorProps, useTextEditor } from '../hooks';
27
28
  import { translations } from '../translations';
28
- import { type EditorInputMode, type EditorViewMode } from '../types';
29
29
 
30
- type StoryProps = { placeholder?: string } & UseTextEditorProps;
30
+ type DefaultStoryProps = { placeholder?: string } & UseTextEditorProps;
31
31
 
32
- const DefaultStory = ({ autoFocus, initialValue, placeholder }: StoryProps) => {
32
+ const DefaultStory = ({ autoFocus, initialValue, placeholder }: DefaultStoryProps) => {
33
33
  const { themeMode } = useThemeContext();
34
- const toolbarState = useEditorToolbarState({ viewMode: 'source' });
35
- const viewMode = toolbarState.viewMode;
36
- const trackFormatting = useFormattingState(toolbarState);
34
+ const registry = useContext(RegistryContext);
35
+
36
+ const toolbarState = useEditorToolbar({ viewMode: 'source' });
37
+ const { viewMode } = useAtomValue(toolbarState);
38
+
39
+ const updateToolbarState = useCallback(
40
+ (formatting: EditorToolbarState) => {
41
+ registry.update(toolbarState, (state) => ({ ...state, ...formatting }));
42
+ },
43
+ [registry, toolbarState],
44
+ );
45
+
37
46
  // TODO(wittjosiah): Provide way to change the input mode.
38
47
  const [editorInputMode, _setEditorInputMode] = useState<EditorInputMode>('default');
39
48
  const { parentRef, view } = useTextEditor(
40
49
  () => ({
41
50
  autoFocus,
42
51
  initialValue,
43
- moveToEndOfLine: true,
52
+ selectionEnd: true,
44
53
  extensions: [
45
54
  editorInputMode ? InputModeExtensions[editorInputMode] : [],
46
- createBasicExtensions({ placeholder, lineWrapping: true, readOnly: viewMode === 'readonly' }),
47
- createMarkdownExtensions({ themeMode }),
48
- createThemeExtensions({ themeMode, syntaxHighlighting: true }),
55
+ createBasicExtensions({
56
+ placeholder,
57
+ lineWrapping: true,
58
+ readOnly: viewMode === 'readonly',
59
+ search: true,
60
+ }),
61
+ createThemeExtensions({
62
+ themeMode,
63
+ syntaxHighlighting: true,
64
+ slots: documentSlots,
65
+ }),
66
+ createMarkdownExtensions(),
49
67
  viewMode === 'source' ? [] : decorateMarkdown(),
50
68
  formattingKeymap(),
51
- trackFormatting,
69
+ formattingListener(updateToolbarState),
52
70
  ],
53
71
  }),
54
72
  [editorInputMode, viewMode, themeMode, placeholder],
@@ -59,28 +77,41 @@ const DefaultStory = ({ autoFocus, initialValue, placeholder }: StoryProps) => {
59
77
  return view;
60
78
  }, [view]);
61
79
 
62
- const handleViewModeChange = useCallback((mode: EditorViewMode) => {
63
- toolbarState.viewMode = mode;
64
- }, []);
80
+ const handleViewModeChange = useCallback(
81
+ (mode: EditorViewMode) => {
82
+ registry.update(toolbarState, (state) => ({ ...state, viewMode: mode }));
83
+ },
84
+ [registry, toolbarState],
85
+ );
65
86
 
66
- // TODO(marijn): This doesn't update the state on view changes.
67
- // Also not sure if view is even guaranteed to exist at this point.
68
87
  return (
69
- <div role='none' className={mx('fixed inset-0 flex flex-col')}>
70
- {toolbarState && <EditorToolbar state={toolbarState} getView={getView} viewMode={handleViewModeChange} />}
71
- <div role='none' className={mx('grow overflow-hidden', attentionSurface)}>
72
- <div className={mx(editorWidth)} ref={parentRef} />
73
- </div>
74
- </div>
88
+ <Panel.Root>
89
+ {toolbarState && (
90
+ <Panel.Toolbar>
91
+ <EditorToolbar
92
+ classNames='dx-document'
93
+ state={toolbarState}
94
+ getView={getView}
95
+ onViewModeChange={handleViewModeChange}
96
+ />
97
+ </Panel.Toolbar>
98
+ )}
99
+ <Panel.Content>
100
+ <div role='none' className='dx-container dx-document bg-base-surface' ref={parentRef} />
101
+ </Panel.Content>
102
+ </Panel.Root>
75
103
  );
76
104
  };
77
105
 
78
- const meta: Meta<StoryProps> = {
106
+ const meta = {
79
107
  title: 'ui/react-ui-editor/EditorToolbar',
80
108
  render: DefaultStory,
81
- decorators: [withTheme, withLayout({ fullscreen: true })],
82
- parameters: { translations, layout: 'fullscreen' },
83
- };
109
+ decorators: [withRegistry, withTheme(), withLayout({ layout: 'fullscreen', classNames: 'bg-sidebar-surface' })],
110
+ parameters: {
111
+ layout: 'fullscreen',
112
+ translations,
113
+ },
114
+ } satisfies Meta<typeof DefaultStory>;
84
115
 
85
116
  export default meta;
86
117
 
@@ -90,6 +121,6 @@ export const Default: Story = {
90
121
  args: {
91
122
  autoFocus: true,
92
123
  placeholder: 'Text...',
93
- initialValue: '# Demo\n\nThis is a document.\n\n',
124
+ initialValue: '# Demo\n\nThis is a **document**.\n\n',
94
125
  },
95
126
  };
@@ -2,38 +2,40 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
6
  import defaultsDeep from 'lodash.defaultsdeep';
8
7
  import React from 'react';
9
8
 
10
9
  import { log } from '@dxos/log';
11
10
  import { faker } from '@dxos/random';
12
- import { withLayout, withTheme, type Meta } from '@dxos/storybook-utils';
11
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
12
+ import { blast, defaultOptions, dropFile, join, typewriter } from '@dxos/ui-editor';
13
13
 
14
14
  import { EditorStory, content } from './components';
15
- import { typewriter, blast, defaultOptions, dropFile } from '../extensions';
16
- import { str } from '../testing';
17
15
 
18
- const meta: Meta<typeof EditorStory> = {
16
+ const meta = {
19
17
  title: 'ui/react-ui-editor/Experimental',
20
18
  component: EditorStory,
21
- decorators: [withTheme, withLayout({ fullscreen: true })],
22
- parameters: { layout: 'fullscreen' },
23
- };
19
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
20
+ parameters: {
21
+ layout: 'fullscreen',
22
+ },
23
+ } satisfies Meta<typeof EditorStory>;
24
24
 
25
25
  export default meta;
26
26
 
27
+ type Story = StoryObj<typeof meta>;
28
+
27
29
  //
28
30
  // Typewriter
29
31
  //
30
32
 
31
- const typewriterItems = localStorage.getItem('dxos.org/plugin/markdown/typewriter')?.split(',');
33
+ const typewriterItems = localStorage.getItem('org.dxos.testing.typewriter')?.split(',');
32
34
 
33
- export const Typewriter = {
35
+ export const Typewriter: Story = {
34
36
  render: () => (
35
37
  <EditorStory
36
- text={str('# Typewriter', '', content.paragraphs, content.footer)}
38
+ text={join('# Typewriter', '', content.paragraphs, content.footer)}
37
39
  extensions={[typewriter({ items: typewriterItems })]}
38
40
  />
39
41
  ),
@@ -43,10 +45,10 @@ export const Typewriter = {
43
45
  // Blast
44
46
  //
45
47
 
46
- export const Blast = {
48
+ export const Blast: Story = {
47
49
  render: () => (
48
50
  <EditorStory
49
- text={str('# Blast', '', content.paragraphs, content.codeblocks, content.paragraphs)}
51
+ text={join('# Blast', '', content.paragraphs, content.codeblocks, content.paragraphs)}
50
52
  extensions={[
51
53
  typewriter({ items: typewriterItems }),
52
54
  blast(
@@ -70,10 +72,10 @@ export const Blast = {
70
72
  // DND
71
73
  //
72
74
 
73
- export const DND = {
75
+ export const DND: Story = {
74
76
  render: () => (
75
77
  <EditorStory
76
- text={str('# DND', '')}
78
+ text={join('# DND', '')}
77
79
  extensions={[
78
80
  dropFile({
79
81
  onDrop: (view, event) => {
@@ -2,64 +2,68 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
5
  import { markdown } from '@codemirror/lang-markdown';
6
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
7
  import React from 'react';
9
8
 
10
- import { withLayout, withTheme, type Meta } from '@dxos/storybook-utils';
9
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
10
+ import { decorateMarkdown, image, join, linkTooltip, table } from '@dxos/ui-editor';
11
11
 
12
12
  import { EditorStory, content, defaultExtensions, headings, renderLinkTooltip, text } from './components';
13
- import { decorateMarkdown, image, linkTooltip, table } from '../extensions';
14
- import { str } from '../testing';
15
13
 
16
- const meta: Meta<typeof EditorStory> = {
14
+ const meta = {
17
15
  title: 'ui/react-ui-editor/Markdown',
18
16
  component: EditorStory,
19
- decorators: [withTheme, withLayout({ fullscreen: true })],
20
- parameters: { layout: 'fullscreen' },
21
- };
17
+ decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
18
+ parameters: {
19
+ layout: 'fullscreen',
20
+ },
21
+ } satisfies Meta<typeof EditorStory>;
22
22
 
23
23
  export default meta;
24
24
 
25
+ type Story = StoryObj<typeof meta>;
26
+
25
27
  //
26
28
  // Default
27
29
  //
28
30
 
29
- export const Default = {
31
+ export const Default: Story = {
30
32
  render: () => <EditorStory text={text} extensions={defaultExtensions} />,
31
33
  };
32
34
 
33
- export const Blockquote = {
35
+ export const Blockquote: Story = {
34
36
  render: () => (
35
37
  <EditorStory
36
- text={str('> Blockquote', 'continuation', content.footer)}
38
+ text={join('> Blockquote', 'continuation', content.footer)}
37
39
  extensions={decorateMarkdown()}
38
40
  debug='raw'
39
41
  />
40
42
  ),
41
43
  };
42
44
 
43
- export const Headings = {
45
+ export const Headings: Story = {
44
46
  render: () => <EditorStory text={headings} extensions={decorateMarkdown({ numberedHeadings: { from: 2, to: 4 } })} />,
45
47
  };
46
48
 
47
- export const Links = {
48
- render: () => <EditorStory text={str(content.links, content.footer)} extensions={[linkTooltip(renderLinkTooltip)]} />,
49
+ export const Links: Story = {
50
+ render: () => (
51
+ <EditorStory text={join(content.links, content.footer)} extensions={[linkTooltip(renderLinkTooltip)]} />
52
+ ),
49
53
  };
50
54
 
51
- export const Image = {
52
- render: () => <EditorStory text={str(content.image, content.footer)} extensions={[image()]} />,
55
+ export const Image: Story = {
56
+ render: () => <EditorStory text={join(content.image, content.footer)} extensions={[image()]} />,
53
57
  };
54
58
 
55
- export const Code = {
56
- render: () => <EditorStory text={str(content.codeblocks, content.footer)} extensions={[decorateMarkdown()]} />,
59
+ export const Code: Story = {
60
+ render: () => <EditorStory text={join(content.codeblocks, content.footer)} extensions={[decorateMarkdown()]} />,
57
61
  };
58
62
 
59
- export const Lists = {
63
+ export const Lists: Story = {
60
64
  render: () => (
61
65
  <EditorStory
62
- text={str(content.tasks, '', content.bullets, '', content.numbered, content.footer)}
66
+ text={join(content.tasks, '', content.bullets, '', content.numbered, content.footer)}
63
67
  extensions={[decorateMarkdown()]}
64
68
  />
65
69
  ),
@@ -69,48 +73,48 @@ export const Lists = {
69
73
  // Bullet List
70
74
  //
71
75
 
72
- export const BulletList = {
73
- render: () => <EditorStory text={str(content.bullets, content.footer)} extensions={[decorateMarkdown()]} />,
76
+ export const BulletList: Story = {
77
+ render: () => <EditorStory text={join(content.bullets, content.footer)} extensions={[decorateMarkdown()]} />,
74
78
  };
75
79
 
76
80
  //
77
81
  // Ordered List
78
82
  //
79
83
 
80
- export const OrderedList = {
81
- render: () => <EditorStory text={str(content.numbered, content.footer)} extensions={[decorateMarkdown()]} />,
84
+ export const OrderedList: Story = {
85
+ render: () => <EditorStory text={join(content.numbered, content.footer)} extensions={[decorateMarkdown()]} />,
82
86
  };
83
87
 
84
88
  //
85
89
  // Task List
86
90
  //
87
91
 
88
- export const TaskList = {
92
+ export const TaskList: Story = {
89
93
  render: () => (
90
- <EditorStory text={str(content.tasks, content.footer)} extensions={[decorateMarkdown()]} debug='raw+tree' />
94
+ <EditorStory text={join(content.tasks, content.footer)} extensions={[decorateMarkdown()]} debug='raw+tree' />
91
95
  ),
92
96
  };
93
97
 
94
- export const TaskListEmpty = {
95
- render: () => <EditorStory text={str('- [ ] ')} extensions={[decorateMarkdown()]} debug='raw+tree' />,
98
+ export const TaskListEmpty: Story = {
99
+ render: () => <EditorStory text={join('- [ ] ')} extensions={[decorateMarkdown()]} debug='raw+tree' />,
96
100
  };
97
101
 
98
102
  //
99
103
  // Table
100
104
  //
101
105
 
102
- export const Table = {
103
- render: () => <EditorStory text={str(content.table, content.footer)} extensions={[decorateMarkdown(), table()]} />,
106
+ export const Table: Story = {
107
+ render: () => <EditorStory text={join(content.table, content.footer)} extensions={[decorateMarkdown(), table()]} />,
104
108
  };
105
109
 
106
110
  //
107
111
  // Commented out
108
112
  //
109
113
 
110
- export const CommentedOut = {
114
+ export const CommentedOut: Story = {
111
115
  render: () => (
112
116
  <EditorStory
113
- text={str('# Commented out', '', content.comment, content.footer)}
117
+ text={join('# Commented out', '', content.comment, content.footer)}
114
118
  extensions={[
115
119
  decorateMarkdown(),
116
120
  markdown(),