@dxos/react-ui-editor 0.8.4-main.3a94e84 → 0.8.4-main.3c1ae3b

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 (378) hide show
  1. package/dist/lib/browser/{chunk-22UMM3QJ.mjs → chunk-HL3YF6WC.mjs} +2 -2
  2. package/dist/lib/browser/chunk-HL3YF6WC.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +4541 -2844
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/types/index.mjs +1 -1
  7. package/dist/lib/node-esm/{chunk-YXYQPV6R.mjs → chunk-YJZGD3LY.mjs} +2 -2
  8. package/dist/lib/node-esm/chunk-YJZGD3LY.mjs.map +7 -0
  9. package/dist/lib/node-esm/index.mjs +4541 -2844
  10. package/dist/lib/node-esm/index.mjs.map +4 -4
  11. package/dist/lib/node-esm/meta.json +1 -1
  12. package/dist/lib/node-esm/types/index.mjs +1 -1
  13. package/dist/types/src/components/Editor/Editor.d.ts +37 -15
  14. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  15. package/dist/types/src/components/Editor/Editor.stories.d.ts +20 -0
  16. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -0
  17. package/dist/types/src/components/EditorContent/EditorContent.d.ts +29 -0
  18. package/dist/types/src/components/EditorContent/EditorContent.d.ts.map +1 -0
  19. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts +26 -0
  20. package/dist/types/src/components/EditorContent/EditorContent.stories.d.ts.map +1 -0
  21. package/dist/types/src/components/EditorContent/controller.d.ts +10 -0
  22. package/dist/types/src/components/EditorContent/controller.d.ts.map +1 -0
  23. package/dist/types/src/components/EditorContent/index.d.ts +3 -0
  24. package/dist/types/src/components/EditorContent/index.d.ts.map +1 -0
  25. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts +36 -0
  26. package/dist/types/src/components/EditorMenuProvider/EditorMenuProvider.d.ts.map +1 -0
  27. package/dist/types/src/components/EditorMenuProvider/index.d.ts +7 -0
  28. package/dist/types/src/components/EditorMenuProvider/index.d.ts.map +1 -0
  29. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts +4 -0
  30. package/dist/types/src/components/EditorMenuProvider/menu-presets.d.ts.map +1 -0
  31. package/dist/types/src/components/EditorMenuProvider/menu.d.ts +28 -0
  32. package/dist/types/src/components/EditorMenuProvider/menu.d.ts.map +1 -0
  33. package/dist/types/src/components/EditorMenuProvider/popover.d.ts +47 -0
  34. package/dist/types/src/components/EditorMenuProvider/popover.d.ts.map +1 -0
  35. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts +34 -0
  36. package/dist/types/src/components/EditorMenuProvider/useEditorMenu.d.ts.map +1 -0
  37. package/dist/types/src/components/EditorMenuProvider/util.d.ts +8 -0
  38. package/dist/types/src/components/EditorMenuProvider/util.d.ts.map +1 -0
  39. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts +16 -0
  40. package/dist/types/src/components/EditorPreviewProvider/EditorPreviewProvider.d.ts.map +1 -0
  41. package/dist/types/src/components/EditorPreviewProvider/index.d.ts +2 -0
  42. package/dist/types/src/components/EditorPreviewProvider/index.d.ts.map +1 -0
  43. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +26 -2
  44. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  45. package/dist/types/src/components/EditorToolbar/actions.d.ts +39 -0
  46. package/dist/types/src/components/EditorToolbar/actions.d.ts.map +1 -0
  47. package/dist/types/src/components/EditorToolbar/blocks.d.ts +3 -3
  48. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  49. package/dist/types/src/components/EditorToolbar/formatting.d.ts +3 -3
  50. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  51. package/dist/types/src/components/EditorToolbar/headings.d.ts +3 -3
  52. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  53. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -1
  54. package/dist/types/src/components/EditorToolbar/index.d.ts +2 -1
  55. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  56. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -1
  57. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts +11 -0
  58. package/dist/types/src/components/EditorToolbar/useEditorToolbar.d.ts.map +1 -0
  59. package/dist/types/src/components/EditorToolbar/view-mode.d.ts +3 -3
  60. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -1
  61. package/dist/types/src/components/index.d.ts +4 -2
  62. package/dist/types/src/components/index.d.ts.map +1 -1
  63. package/dist/types/src/defaults.d.ts +0 -2
  64. package/dist/types/src/defaults.d.ts.map +1 -1
  65. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts +17 -0
  66. package/dist/types/src/extensions/autocomplete/autocomplete.d.ts.map +1 -0
  67. package/dist/types/src/extensions/autocomplete/index.d.ts +5 -0
  68. package/dist/types/src/extensions/autocomplete/index.d.ts.map +1 -0
  69. package/dist/types/src/extensions/autocomplete/match.d.ts +13 -0
  70. package/dist/types/src/extensions/autocomplete/match.d.ts.map +1 -0
  71. package/dist/types/src/extensions/autocomplete/placeholder.d.ts +20 -0
  72. package/dist/types/src/extensions/autocomplete/placeholder.d.ts.map +1 -0
  73. package/dist/types/src/extensions/autocomplete/typeahead.d.ts +10 -0
  74. package/dist/types/src/extensions/autocomplete/typeahead.d.ts.map +1 -0
  75. package/dist/types/src/extensions/automerge/automerge.d.ts +1 -1
  76. package/dist/types/src/extensions/automerge/automerge.d.ts.map +1 -1
  77. package/dist/types/src/extensions/automerge/automerge.stories.d.ts +10 -19
  78. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +1 -1
  79. package/dist/types/src/extensions/automerge/cursor.d.ts +1 -1
  80. package/dist/types/src/extensions/automerge/cursor.d.ts.map +1 -1
  81. package/dist/types/src/extensions/automerge/defs.d.ts +1 -1
  82. package/dist/types/src/extensions/automerge/defs.d.ts.map +1 -1
  83. package/dist/types/src/extensions/automerge/sync.d.ts +3 -3
  84. package/dist/types/src/extensions/automerge/sync.d.ts.map +1 -1
  85. package/dist/types/src/extensions/automerge/update-automerge.d.ts +1 -1
  86. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -1
  87. package/dist/types/src/extensions/autoscroll.d.ts +20 -0
  88. package/dist/types/src/extensions/autoscroll.d.ts.map +1 -0
  89. package/dist/types/src/extensions/awareness/awareness-provider.d.ts +4 -4
  90. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +1 -1
  91. package/dist/types/src/extensions/blocks.d.ts +2 -0
  92. package/dist/types/src/extensions/blocks.d.ts.map +1 -0
  93. package/dist/types/src/extensions/bookmarks.d.ts +12 -0
  94. package/dist/types/src/extensions/bookmarks.d.ts.map +1 -0
  95. package/dist/types/src/extensions/comments.d.ts +1 -1
  96. package/dist/types/src/extensions/comments.d.ts.map +1 -1
  97. package/dist/types/src/extensions/dnd.d.ts.map +1 -1
  98. package/dist/types/src/extensions/factories.d.ts +15 -16
  99. package/dist/types/src/extensions/factories.d.ts.map +1 -1
  100. package/dist/types/src/extensions/focus.d.ts.map +1 -1
  101. package/dist/types/src/extensions/folding.d.ts.map +1 -1
  102. package/dist/types/src/extensions/index.d.ts +10 -1
  103. package/dist/types/src/extensions/index.d.ts.map +1 -1
  104. package/dist/types/src/extensions/json.d.ts +1 -1
  105. package/dist/types/src/extensions/json.d.ts.map +1 -1
  106. package/dist/types/src/extensions/listener.d.ts +8 -6
  107. package/dist/types/src/extensions/listener.d.ts.map +1 -1
  108. package/dist/types/src/extensions/markdown/action.d.ts.map +1 -1
  109. package/dist/types/src/extensions/markdown/bundle.d.ts +8 -2
  110. package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -1
  111. package/dist/types/src/extensions/markdown/changes.d.ts +1 -1
  112. package/dist/types/src/extensions/markdown/changes.d.ts.map +1 -1
  113. package/dist/types/src/extensions/markdown/decorate.d.ts +9 -1
  114. package/dist/types/src/extensions/markdown/decorate.d.ts.map +1 -1
  115. package/dist/types/src/extensions/markdown/formatting.d.ts +2 -4
  116. package/dist/types/src/extensions/markdown/formatting.d.ts.map +1 -1
  117. package/dist/types/src/extensions/markdown/formatting.test.d.ts.map +1 -1
  118. package/dist/types/src/extensions/markdown/highlight.d.ts.map +1 -1
  119. package/dist/types/src/extensions/markdown/image.d.ts.map +1 -1
  120. package/dist/types/src/extensions/markdown/link.d.ts.map +1 -1
  121. package/dist/types/src/extensions/modal.d.ts +7 -0
  122. package/dist/types/src/extensions/modal.d.ts.map +1 -0
  123. package/dist/types/src/extensions/modes.d.ts +1 -1
  124. package/dist/types/src/extensions/modes.d.ts.map +1 -1
  125. package/dist/types/src/extensions/outliner/menu.d.ts +8 -0
  126. package/dist/types/src/extensions/outliner/menu.d.ts.map +1 -0
  127. package/dist/types/src/extensions/outliner/outliner.d.ts +1 -1
  128. package/dist/types/src/extensions/outliner/outliner.d.ts.map +1 -1
  129. package/dist/types/src/extensions/outliner/selection.d.ts.map +1 -1
  130. package/dist/types/src/extensions/outliner/tree.d.ts +2 -2
  131. package/dist/types/src/extensions/outliner/tree.d.ts.map +1 -1
  132. package/dist/types/src/extensions/preview/preview.d.ts +8 -8
  133. package/dist/types/src/extensions/preview/preview.d.ts.map +1 -1
  134. package/dist/types/src/extensions/replacer.d.ts +21 -0
  135. package/dist/types/src/extensions/replacer.d.ts.map +1 -0
  136. package/dist/types/src/extensions/replacer.test.d.ts +2 -0
  137. package/dist/types/src/extensions/replacer.test.d.ts.map +1 -0
  138. package/dist/types/src/extensions/scrolling.d.ts +78 -0
  139. package/dist/types/src/extensions/scrolling.d.ts.map +1 -0
  140. package/dist/types/src/extensions/state.d.ts +2 -0
  141. package/dist/types/src/extensions/state.d.ts.map +1 -0
  142. package/dist/types/src/extensions/submit.d.ts +10 -0
  143. package/dist/types/src/extensions/submit.d.ts.map +1 -0
  144. package/dist/types/src/extensions/tab.d.ts +4 -0
  145. package/dist/types/src/extensions/tab.d.ts.map +1 -0
  146. package/dist/types/src/extensions/tags/extended-markdown.d.ts +10 -0
  147. package/dist/types/src/extensions/tags/extended-markdown.d.ts.map +1 -0
  148. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts +2 -0
  149. package/dist/types/src/extensions/tags/extended-markdown.test.d.ts.map +1 -0
  150. package/dist/types/src/extensions/tags/index.d.ts +4 -0
  151. package/dist/types/src/extensions/tags/index.d.ts.map +1 -0
  152. package/dist/types/src/extensions/tags/streamer.d.ts +12 -0
  153. package/dist/types/src/extensions/tags/streamer.d.ts.map +1 -0
  154. package/dist/types/src/extensions/tags/xml-tags.d.ts +97 -0
  155. package/dist/types/src/extensions/tags/xml-tags.d.ts.map +1 -0
  156. package/dist/types/src/extensions/tags/xml-util.d.ts +10 -0
  157. package/dist/types/src/extensions/tags/xml-util.d.ts.map +1 -0
  158. package/dist/types/src/hooks/useTextEditor.d.ts +5 -9
  159. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  160. package/dist/types/src/stories/CommandDialog.stories.d.ts +14 -0
  161. package/dist/types/src/stories/CommandDialog.stories.d.ts.map +1 -0
  162. package/dist/types/src/stories/Comments.stories.d.ts +22 -10
  163. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -1
  164. package/dist/types/src/stories/EditorToolbar.stories.d.ts +39 -3
  165. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -1
  166. package/dist/types/src/stories/Experimental.stories.d.ts +23 -13
  167. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -1
  168. package/dist/types/src/stories/Markdown.stories.d.ts +33 -43
  169. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -1
  170. package/dist/types/src/stories/Outliner.stories.d.ts +15 -21
  171. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  172. package/dist/types/src/stories/Popover.stories.d.ts +20 -0
  173. package/dist/types/src/stories/Popover.stories.d.ts.map +1 -0
  174. package/dist/types/src/stories/Preview.stories.d.ts +23 -7
  175. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
  176. package/dist/types/src/stories/Tags.stories.d.ts +16 -0
  177. package/dist/types/src/stories/Tags.stories.d.ts.map +1 -0
  178. package/dist/types/src/stories/TextEditor.stories.d.ts +38 -52
  179. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -1
  180. package/dist/types/src/stories/components/EditorStory.d.ts +15 -12
  181. package/dist/types/src/stories/components/EditorStory.d.ts.map +1 -1
  182. package/dist/types/src/stories/components/util.d.ts.map +1 -1
  183. package/dist/types/src/styles/markdown.d.ts +1 -1
  184. package/dist/types/src/styles/markdown.d.ts.map +1 -1
  185. package/dist/types/src/styles/theme.d.ts +6 -3
  186. package/dist/types/src/styles/theme.d.ts.map +1 -1
  187. package/dist/types/src/translations.d.ts +1 -1
  188. package/dist/types/src/types/types.d.ts +2 -2
  189. package/dist/types/src/types/types.d.ts.map +1 -1
  190. package/dist/types/src/util/cursor.d.ts.map +1 -1
  191. package/dist/types/src/util/debug.d.ts +5 -1
  192. package/dist/types/src/util/debug.d.ts.map +1 -1
  193. package/dist/types/src/util/decorations.d.ts +4 -0
  194. package/dist/types/src/util/decorations.d.ts.map +1 -0
  195. package/dist/types/src/util/dom.d.ts +2 -12
  196. package/dist/types/src/util/dom.d.ts.map +1 -1
  197. package/dist/types/src/util/index.d.ts +1 -0
  198. package/dist/types/src/util/index.d.ts.map +1 -1
  199. package/dist/types/src/util/react.d.ts +1 -1
  200. package/dist/types/src/util/react.d.ts.map +1 -1
  201. package/dist/types/tsconfig.tsbuildinfo +1 -1
  202. package/package.json +74 -68
  203. package/src/components/Editor/Editor.stories.tsx +89 -0
  204. package/src/components/Editor/Editor.tsx +160 -25
  205. package/src/components/EditorContent/EditorContent.stories.tsx +70 -0
  206. package/src/components/EditorContent/EditorContent.tsx +70 -0
  207. package/src/components/EditorContent/controller.ts +50 -0
  208. package/src/components/EditorContent/index.ts +6 -0
  209. package/src/components/EditorMenuProvider/EditorMenuProvider.tsx +233 -0
  210. package/src/components/EditorMenuProvider/index.ts +11 -0
  211. package/src/components/EditorMenuProvider/menu-presets.ts +123 -0
  212. package/src/components/EditorMenuProvider/menu.ts +71 -0
  213. package/src/components/EditorMenuProvider/popover.ts +287 -0
  214. package/src/components/EditorMenuProvider/useEditorMenu.ts +175 -0
  215. package/src/components/EditorMenuProvider/util.ts +31 -0
  216. package/src/components/EditorPreviewProvider/EditorPreviewProvider.tsx +82 -0
  217. package/src/components/EditorPreviewProvider/index.ts +5 -0
  218. package/src/components/EditorToolbar/EditorToolbar.tsx +116 -96
  219. package/src/components/EditorToolbar/actions.ts +86 -0
  220. package/src/components/EditorToolbar/blocks.ts +22 -24
  221. package/src/components/EditorToolbar/formatting.ts +23 -25
  222. package/src/components/EditorToolbar/headings.ts +17 -9
  223. package/src/components/EditorToolbar/image.ts +9 -5
  224. package/src/components/EditorToolbar/index.ts +3 -7
  225. package/src/components/EditorToolbar/search.ts +9 -5
  226. package/src/components/EditorToolbar/useEditorToolbar.ts +20 -0
  227. package/src/components/EditorToolbar/view-mode.ts +12 -6
  228. package/src/components/index.ts +8 -2
  229. package/src/defaults.ts +2 -17
  230. package/src/extensions/autocomplete/autocomplete.ts +151 -0
  231. package/src/extensions/autocomplete/index.ts +8 -0
  232. package/src/extensions/autocomplete/match.ts +46 -0
  233. package/src/extensions/{command → autocomplete}/placeholder.ts +22 -18
  234. package/src/extensions/{command → autocomplete}/typeahead.ts +8 -50
  235. package/src/extensions/automerge/automerge.stories.tsx +34 -26
  236. package/src/extensions/automerge/automerge.ts +31 -11
  237. package/src/extensions/automerge/cursor.ts +1 -1
  238. package/src/extensions/automerge/defs.ts +1 -1
  239. package/src/extensions/automerge/sync.ts +9 -5
  240. package/src/extensions/automerge/update-automerge.ts +2 -2
  241. package/src/extensions/autoscroll.ts +163 -0
  242. package/src/extensions/awareness/awareness-provider.ts +12 -12
  243. package/src/extensions/awareness/awareness.ts +2 -2
  244. package/src/extensions/blocks.ts +131 -0
  245. package/src/extensions/bookmarks.ts +75 -0
  246. package/src/extensions/comments.ts +20 -14
  247. package/src/extensions/dnd.ts +1 -1
  248. package/src/extensions/factories.ts +64 -46
  249. package/src/extensions/focus.ts +5 -4
  250. package/src/extensions/folding.tsx +3 -6
  251. package/src/extensions/hashtag.tsx +2 -2
  252. package/src/extensions/index.ts +10 -1
  253. package/src/extensions/json.ts +1 -1
  254. package/src/extensions/listener.ts +14 -20
  255. package/src/extensions/markdown/action.ts +2 -1
  256. package/src/extensions/markdown/bundle.ts +40 -6
  257. package/src/extensions/markdown/changes.ts +1 -1
  258. package/src/extensions/markdown/decorate.ts +95 -64
  259. package/src/extensions/markdown/formatting.test.ts +6 -6
  260. package/src/extensions/markdown/formatting.ts +11 -13
  261. package/src/extensions/markdown/highlight.ts +13 -13
  262. package/src/extensions/markdown/image.ts +5 -6
  263. package/src/extensions/markdown/link.ts +3 -0
  264. package/src/extensions/markdown/table.ts +13 -7
  265. package/src/extensions/mention.ts +1 -1
  266. package/src/extensions/modal.ts +24 -0
  267. package/src/extensions/modes.ts +2 -2
  268. package/src/extensions/{command/floating-menu.ts → outliner/menu.ts} +16 -21
  269. package/src/extensions/outliner/outliner.test.ts +3 -2
  270. package/src/extensions/outliner/outliner.ts +8 -7
  271. package/src/extensions/outliner/selection.ts +1 -1
  272. package/src/extensions/outliner/tree.test.ts +3 -2
  273. package/src/extensions/outliner/tree.ts +2 -2
  274. package/src/extensions/preview/index.ts +1 -1
  275. package/src/extensions/preview/preview.ts +69 -69
  276. package/src/extensions/replacer.test.ts +75 -0
  277. package/src/extensions/replacer.ts +93 -0
  278. package/src/extensions/scrolling.ts +189 -0
  279. package/src/extensions/selection.ts +3 -3
  280. package/src/extensions/state.ts +7 -0
  281. package/src/extensions/submit.ts +62 -0
  282. package/src/extensions/tab.ts +29 -0
  283. package/src/extensions/tags/extended-markdown.test.ts +263 -0
  284. package/src/extensions/tags/extended-markdown.ts +78 -0
  285. package/src/extensions/tags/index.ts +7 -0
  286. package/src/extensions/tags/streamer.ts +243 -0
  287. package/src/extensions/tags/xml-tags.ts +500 -0
  288. package/src/extensions/tags/xml-util.ts +94 -0
  289. package/src/extensions/typewriter.ts +1 -1
  290. package/src/hooks/useTextEditor.ts +31 -43
  291. package/src/stories/CommandDialog.stories.tsx +83 -0
  292. package/src/stories/Comments.stories.tsx +17 -14
  293. package/src/stories/EditorToolbar.stories.tsx +21 -20
  294. package/src/stories/Experimental.stories.tsx +17 -13
  295. package/src/stories/Markdown.stories.tsx +26 -22
  296. package/src/stories/Outliner.stories.tsx +51 -39
  297. package/src/stories/Popover.stories.tsx +162 -0
  298. package/src/stories/Preview.stories.tsx +56 -51
  299. package/src/stories/Tags.stories.tsx +95 -0
  300. package/src/stories/TextEditor.stories.tsx +43 -67
  301. package/src/stories/components/EditorStory.tsx +40 -29
  302. package/src/stories/components/util.tsx +40 -8
  303. package/src/styles/markdown.ts +2 -2
  304. package/src/styles/theme.ts +229 -209
  305. package/src/translations.ts +1 -1
  306. package/src/types/types.ts +1 -1
  307. package/src/util/cursor.ts +2 -1
  308. package/src/util/debug.ts +7 -2
  309. package/src/util/decorations.ts +21 -0
  310. package/src/util/dom.ts +5 -27
  311. package/src/util/index.ts +1 -0
  312. package/src/util/react.tsx +1 -1
  313. package/dist/lib/browser/chunk-22UMM3QJ.mjs.map +0 -7
  314. package/dist/lib/browser/testing/index.mjs +0 -6
  315. package/dist/lib/browser/testing/index.mjs.map +0 -7
  316. package/dist/lib/node-esm/chunk-YXYQPV6R.mjs.map +0 -7
  317. package/dist/lib/node-esm/testing/index.mjs +0 -8
  318. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  319. package/dist/types/src/components/EditorToolbar/lists.d.ts +0 -19
  320. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +0 -1
  321. package/dist/types/src/components/EditorToolbar/util.d.ts +0 -51
  322. package/dist/types/src/components/EditorToolbar/util.d.ts.map +0 -1
  323. package/dist/types/src/components/Popover/CommandMenu.d.ts +0 -34
  324. package/dist/types/src/components/Popover/CommandMenu.d.ts.map +0 -1
  325. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts +0 -21
  326. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +0 -1
  327. package/dist/types/src/components/Popover/RefPopover.d.ts +0 -34
  328. package/dist/types/src/components/Popover/RefPopover.d.ts.map +0 -1
  329. package/dist/types/src/components/Popover/index.d.ts +0 -4
  330. package/dist/types/src/components/Popover/index.d.ts.map +0 -1
  331. package/dist/types/src/extensions/autocomplete.d.ts +0 -13
  332. package/dist/types/src/extensions/autocomplete.d.ts.map +0 -1
  333. package/dist/types/src/extensions/command/action.d.ts +0 -17
  334. package/dist/types/src/extensions/command/action.d.ts.map +0 -1
  335. package/dist/types/src/extensions/command/command-menu.d.ts +0 -20
  336. package/dist/types/src/extensions/command/command-menu.d.ts.map +0 -1
  337. package/dist/types/src/extensions/command/command.d.ts +0 -6
  338. package/dist/types/src/extensions/command/command.d.ts.map +0 -1
  339. package/dist/types/src/extensions/command/floating-menu.d.ts +0 -7
  340. package/dist/types/src/extensions/command/floating-menu.d.ts.map +0 -1
  341. package/dist/types/src/extensions/command/hint.d.ts +0 -24
  342. package/dist/types/src/extensions/command/hint.d.ts.map +0 -1
  343. package/dist/types/src/extensions/command/index.d.ts +0 -7
  344. package/dist/types/src/extensions/command/index.d.ts.map +0 -1
  345. package/dist/types/src/extensions/command/placeholder.d.ts +0 -10
  346. package/dist/types/src/extensions/command/placeholder.d.ts.map +0 -1
  347. package/dist/types/src/extensions/command/state.d.ts +0 -16
  348. package/dist/types/src/extensions/command/state.d.ts.map +0 -1
  349. package/dist/types/src/extensions/command/typeahead.d.ts +0 -22
  350. package/dist/types/src/extensions/command/typeahead.d.ts.map +0 -1
  351. package/dist/types/src/extensions/command/useCommandMenu.d.ts +0 -26
  352. package/dist/types/src/extensions/command/useCommandMenu.d.ts.map +0 -1
  353. package/dist/types/src/stories/Command.stories.d.ts +0 -7
  354. package/dist/types/src/stories/Command.stories.d.ts.map +0 -1
  355. package/dist/types/src/stories/CommandMenu.stories.d.ts +0 -13
  356. package/dist/types/src/stories/CommandMenu.stories.d.ts.map +0 -1
  357. package/dist/types/src/testing/index.d.ts +0 -2
  358. package/dist/types/src/testing/index.d.ts.map +0 -1
  359. package/dist/types/src/testing/util.d.ts +0 -2
  360. package/dist/types/src/testing/util.d.ts.map +0 -1
  361. package/src/components/EditorToolbar/lists.ts +0 -59
  362. package/src/components/EditorToolbar/util.ts +0 -65
  363. package/src/components/Popover/CommandMenu.tsx +0 -279
  364. package/src/components/Popover/RefDropdownMenu.tsx +0 -85
  365. package/src/components/Popover/RefPopover.tsx +0 -99
  366. package/src/components/Popover/index.ts +0 -7
  367. package/src/extensions/autocomplete.ts +0 -69
  368. package/src/extensions/command/action.ts +0 -56
  369. package/src/extensions/command/command-menu.ts +0 -210
  370. package/src/extensions/command/command.ts +0 -34
  371. package/src/extensions/command/hint.ts +0 -102
  372. package/src/extensions/command/index.ts +0 -10
  373. package/src/extensions/command/state.ts +0 -89
  374. package/src/extensions/command/useCommandMenu.ts +0 -118
  375. package/src/stories/Command.stories.tsx +0 -97
  376. package/src/stories/CommandMenu.stories.tsx +0 -159
  377. package/src/testing/index.ts +0 -5
  378. package/src/testing/util.ts +0 -5
@@ -4,10 +4,9 @@
4
4
 
5
5
  import { closeBrackets, closeBracketsKeymap } from '@codemirror/autocomplete';
6
6
  import { defaultKeymap, history, historyKeymap, indentWithTab, standardKeymap } from '@codemirror/commands';
7
- import { bracketMatching, defaultHighlightStyle, syntaxHighlighting } from '@codemirror/language';
7
+ import { HighlightStyle, bracketMatching, syntaxHighlighting } from '@codemirror/language';
8
8
  import { searchKeymap } from '@codemirror/search';
9
- import { EditorState, type Extension } from '@codemirror/state';
10
- import { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';
9
+ import { type ChangeSpec, EditorState, type Extension, type TransactionSpec } from '@codemirror/state';
11
10
  import {
12
11
  EditorView,
13
12
  type KeyBinding,
@@ -20,33 +19,60 @@ import {
20
19
  placeholder,
21
20
  scrollPastEnd,
22
21
  } from '@codemirror/view';
22
+ import { vscodeDarkStyle, vscodeLightStyle } from '@uiw/codemirror-theme-vscode';
23
23
  import defaultsDeep from 'lodash.defaultsdeep';
24
- import merge from 'lodash.merge';
25
24
 
26
25
  import { generateName } from '@dxos/display-name';
26
+ import { type DocAccessor } from '@dxos/echo-db';
27
27
  import { log } from '@dxos/log';
28
- import { type DocAccessor, type Space } from '@dxos/react-client/echo';
29
- import { type Identity } from '@dxos/react-client/halo';
28
+ import { type Messenger } from '@dxos/protocols';
29
+ import { type Identity } from '@dxos/protocols/proto/dxos/client/services';
30
30
  import { type ThemeMode } from '@dxos/react-ui';
31
31
  import { type HuePalette } from '@dxos/react-ui-theme';
32
- import { hexToHue, isNotFalsy } from '@dxos/util';
32
+ import { hexToHue, isTruthy } from '@dxos/util';
33
+
34
+ import { createBaseTheme, editorGutter } from '../styles';
33
35
 
34
36
  import { automerge } from './automerge';
35
37
  import { SpaceAwarenessProvider, awareness } from './awareness';
36
38
  import { focus } from './focus';
37
- import { editorGutter, editorMonospace } from '../defaults';
38
- import { type ThemeStyles, defaultTheme } from '../styles';
39
39
 
40
40
  //
41
41
  // Basic
42
42
  //
43
43
 
44
- export const preventNewline = EditorState.transactionFilter.of((tr) => (tr.newDoc.lines > 1 ? [] : tr));
44
+ export const filterChars = (chars: RegExp) => {
45
+ return EditorState.transactionFilter.of((transaction) => {
46
+ if (!transaction.docChanged) {
47
+ return transaction;
48
+ }
49
+
50
+ const changes: ChangeSpec[] = [];
51
+ transaction.changes.iterChanges((fromA, toA, fromB, toB, text) => {
52
+ const inserted = text.toString();
53
+ const filtered = inserted.replace(chars, '');
54
+ if (inserted !== filtered) {
55
+ changes.push({
56
+ from: fromB,
57
+ to: toB,
58
+ insert: filtered,
59
+ });
60
+ }
61
+ });
62
+
63
+ if (changes.length) {
64
+ return [transaction, { changes, sequential: true } as TransactionSpec];
65
+ }
66
+
67
+ return transaction;
68
+ });
69
+ };
45
70
 
46
71
  /**
47
72
  * https://codemirror.net/docs/extensions
48
73
  * https://github.com/codemirror/basic-setup
49
74
  * https://github.com/codemirror/basic-setup/blob/main/src/codemirror.ts
75
+ * https://github.com/codemirror/theme-one-dark
50
76
  */
51
77
  export type BasicExtensionsOptions = {
52
78
  allowMultipleSelections?: boolean;
@@ -63,11 +89,11 @@ export type BasicExtensionsOptions = {
63
89
  lineNumbers?: boolean;
64
90
  /** If false then do not set a max-width or side margin on the editor. */
65
91
  lineWrapping?: boolean;
66
- monospace?: boolean;
67
92
  placeholder?: string;
68
93
  /** If true user cannot edit the text, but they can still select and copy it. */
69
94
  readOnly?: boolean;
70
95
  search?: boolean;
96
+ /** NOTE: Do not use with stack sections. */
71
97
  scrollPastEnd?: boolean;
72
98
  standardKeymap?: boolean;
73
99
  tabSize?: number;
@@ -82,7 +108,7 @@ const defaultBasicOptions: BasicExtensionsOptions = {
82
108
  history: true,
83
109
  keymap: 'standard',
84
110
  lineWrapping: true,
85
- search: true,
111
+ search: false,
86
112
  } as const;
87
113
 
88
114
  const keymaps: { [key: string]: readonly KeyBinding[] } = {
@@ -111,7 +137,6 @@ export const createBasicExtensions = (_props?: BasicExtensionsOptions): Extensio
111
137
  props.history && history(),
112
138
  props.lineNumbers && [lineNumbers(), editorGutter],
113
139
  props.lineWrapping && EditorView.lineWrapping,
114
- props.monospace && editorMonospace,
115
140
  props.placeholder && placeholder(props.placeholder),
116
141
  props.readOnly !== undefined && EditorState.readOnly.of(props.readOnly),
117
142
  props.scrollPastEnd && scrollPastEnd(),
@@ -137,9 +162,9 @@ export const createBasicExtensions = (_props?: BasicExtensionsOptions): Extensio
137
162
  preventDefault: true,
138
163
  run: () => true,
139
164
  },
140
- ].filter(isNotFalsy),
165
+ ].filter(isTruthy),
141
166
  ),
142
- ].filter(isNotFalsy);
167
+ ].filter(isTruthy);
143
168
  };
144
169
 
145
170
  //
@@ -147,28 +172,26 @@ export const createBasicExtensions = (_props?: BasicExtensionsOptions): Extensio
147
172
  //
148
173
 
149
174
  export type ThemeExtensionsOptions = {
175
+ monospace?: boolean;
150
176
  themeMode?: ThemeMode;
151
- styles?: ThemeStyles;
152
- syntaxHighlighting?: boolean;
153
177
  slots?: {
154
178
  editor?: {
155
179
  className?: string;
156
180
  };
157
181
  scroll?: {
158
- className?: string;
159
- };
160
- scroller?: {
182
+ // NOTE: Do not apply vertical padding to scroll container.
161
183
  className?: string;
162
184
  };
163
185
  content?: {
164
186
  className?: string;
165
187
  };
166
188
  };
189
+ syntaxHighlighting?: boolean;
167
190
  };
168
191
 
169
192
  export const grow: ThemeExtensionsOptions['slots'] = {
170
193
  editor: {
171
- className: 'is-full bs-full',
194
+ className: 'bs-full is-full',
172
195
  },
173
196
  } as const;
174
197
 
@@ -180,41 +203,37 @@ export const fullWidth: ThemeExtensionsOptions['slots'] = {
180
203
 
181
204
  export const defaultThemeSlots = grow;
182
205
 
206
+ export const defaultStyles = {
207
+ dark: vscodeDarkStyle,
208
+ light: vscodeLightStyle,
209
+ };
210
+
183
211
  /**
184
212
  * https://codemirror.net/examples/styling
185
213
  */
186
214
  export const createThemeExtensions = ({
215
+ monospace,
187
216
  themeMode,
188
- styles,
189
- syntaxHighlighting: _syntaxHighlighting,
190
- slots: _slots,
217
+ slots: slotsParam,
218
+ syntaxHighlighting: syntaxHighlightingProp,
191
219
  }: ThemeExtensionsOptions = {}): Extension => {
192
- const slots = defaultsDeep({}, _slots, defaultThemeSlots);
220
+ const slots = defaultsDeep({}, slotsParam, defaultThemeSlots);
193
221
  return [
194
222
  EditorView.darkTheme.of(themeMode === 'dark'),
195
- EditorView.baseTheme(styles ? merge({}, defaultTheme, styles) : defaultTheme),
196
- // https://github.com/codemirror/theme-one-dark
197
- _syntaxHighlighting &&
198
- (themeMode === 'dark' ? syntaxHighlighting(oneDarkHighlightStyle) : syntaxHighlighting(defaultHighlightStyle)),
223
+ createBaseTheme({ monospace }),
224
+ syntaxHighlightingProp &&
225
+ syntaxHighlighting(HighlightStyle.define(themeMode === 'dark' ? defaultStyles.dark : defaultStyles.light)),
199
226
  slots.editor?.className && EditorView.editorAttributes.of({ class: slots.editor.className }),
200
227
  slots.content?.className && EditorView.contentAttributes.of({ class: slots.content.className }),
201
228
  slots.scroll?.className &&
202
229
  ViewPlugin.fromClass(
203
230
  class {
204
231
  constructor(view: EditorView) {
205
- view.scrollDOM.classList.add(slots.scroll.className);
232
+ view.scrollDOM.classList.add(...slots.scroll.className.split(/\s+/));
206
233
  }
207
234
  },
208
235
  ),
209
- slots.scroller?.className &&
210
- ViewPlugin.fromClass(
211
- class {
212
- constructor(view: EditorView) {
213
- view.dom.querySelector('.cm-scroller')?.classList.add(...slots.scroller.className.split(' '));
214
- }
215
- },
216
- ),
217
- ].filter(isNotFalsy);
236
+ ].filter(isTruthy);
218
237
  };
219
238
 
220
239
  //
@@ -224,31 +243,30 @@ export const createThemeExtensions = ({
224
243
  export type DataExtensionsProps<T> = {
225
244
  id: string;
226
245
  text?: DocAccessor<T>;
227
- space?: Space;
246
+ messenger?: Messenger;
228
247
  identity?: Identity | null;
229
248
  };
230
249
 
231
- // TODO(burdon): Move out of react-ui-editor (remove echo deps).
232
- export const createDataExtensions = <T>({ id, text, space, identity }: DataExtensionsProps<T>): Extension[] => {
250
+ // TODO(burdon): Move out of react-ui-editor?
251
+ export const createDataExtensions = <T>({ id, text, messenger, identity }: DataExtensionsProps<T>): Extension[] => {
233
252
  const extensions: Extension[] = [];
234
253
  if (text) {
235
254
  extensions.push(automerge(text));
236
255
  }
237
256
 
238
- if (space && identity) {
257
+ if (messenger && identity) {
239
258
  const peerId = identity?.identityKey.toHex();
240
259
  const hue = (identity?.profile?.data?.hue as HuePalette | undefined) ?? hexToHue(peerId ?? '0');
241
-
242
260
  extensions.push(
243
261
  awareness(
244
262
  new SpaceAwarenessProvider({
245
- space,
263
+ messenger,
246
264
  channel: `awareness.${id}`,
247
265
  peerId: identity.identityKey.toHex(),
248
266
  info: {
249
- displayName: identity.profile?.displayName ?? generateName(identity.identityKey.toHex()),
250
267
  darkColor: `var(--dx-${hue}Cursor)`,
251
268
  lightColor: `var(--dx-${hue}Cursor)`,
269
+ displayName: identity.profile?.displayName ?? generateName(identity.identityKey.toHex()),
252
270
  },
253
271
  }),
254
272
  ),
@@ -15,6 +15,7 @@ export const focusField = StateField.define<boolean>({
15
15
  return effect.value;
16
16
  }
17
17
  }
18
+
18
19
  return value;
19
20
  },
20
21
  });
@@ -25,11 +26,11 @@ export const focusField = StateField.define<boolean>({
25
26
  export const focus = [
26
27
  focusField,
27
28
  EditorView.domEventHandlers({
28
- focus: (event, view) => {
29
- setTimeout(() => view.dispatch({ effects: focusEffect.of(true) }));
29
+ focus: (_event, view) => {
30
+ requestAnimationFrame(() => view.dispatch({ effects: focusEffect.of(true) }));
30
31
  },
31
- blur: (event, view) => {
32
- setTimeout(() => view.dispatch({ effects: focusEffect.of(false) }));
32
+ blur: (_event, view) => {
33
+ requestAnimationFrame(() => view.dispatch({ effects: focusEffect.of(false) }));
33
34
  },
34
35
  }),
35
36
  ];
@@ -7,16 +7,15 @@ import { type Extension } from '@codemirror/state';
7
7
  import { EditorView } from '@codemirror/view';
8
8
  import React from 'react';
9
9
 
10
- import { Icon } from '@dxos/react-ui';
10
+ import { Domino, Icon } from '@dxos/react-ui';
11
11
 
12
- import { createElement, renderRoot } from '../util';
12
+ import { renderRoot } from '../util';
13
13
 
14
14
  export type FoldingOptions = {};
15
15
 
16
16
  /**
17
17
  * https://codemirror.net/examples/gutter
18
18
  */
19
- // TODO(burdon): Remember folding state (to state).
20
19
  export const folding = (_props: FoldingOptions = {}): Extension => [
21
20
  codeFolding({
22
21
  placeholderDOM: () => {
@@ -25,10 +24,8 @@ export const folding = (_props: FoldingOptions = {}): Extension => [
25
24
  }),
26
25
  foldGutter({
27
26
  markerDOM: (open) => {
28
- // TODO(burdon): Use sprite directly.
29
- const el = createElement('div', { className: 'flex h-full items-center' });
30
27
  return renderRoot(
31
- el,
28
+ Domino.of('div').classNames('flex bs-full items-center').build(),
32
29
  <Icon icon='ph--caret-right--bold' size={3} classNames={['mx-3 cursor-pointer', open && 'rotate-90']} />,
33
30
  );
34
31
  },
@@ -13,7 +13,7 @@ import {
13
13
  WidgetType,
14
14
  } from '@codemirror/view';
15
15
 
16
- import { getHashColor, mx } from '@dxos/react-ui-theme';
16
+ import { getHashStyles, mx } from '@dxos/react-ui-theme';
17
17
 
18
18
  class TagWidget extends WidgetType {
19
19
  constructor(private _text: string) {
@@ -22,7 +22,7 @@ class TagWidget extends WidgetType {
22
22
 
23
23
  toDOM(): HTMLSpanElement {
24
24
  const span = document.createElement('span');
25
- span.className = mx('cm-tag', getHashColor(this._text).tag);
25
+ span.className = mx('cm-tag', getHashStyles(this._text).surface);
26
26
  span.textContent = this._text;
27
27
  return span;
28
28
  }
@@ -4,10 +4,12 @@
4
4
 
5
5
  export * from './annotations';
6
6
  export * from './autocomplete';
7
+ export * from './autoscroll';
7
8
  export * from './automerge';
8
9
  export * from './awareness';
9
10
  export * from './blast';
10
- export * from './command';
11
+ export * from './blocks';
12
+ export * from './bookmarks';
11
13
  export * from './comments';
12
14
  export * from './debug';
13
15
  export * from './dnd';
@@ -19,8 +21,15 @@ export * from './json';
19
21
  export * from './listener';
20
22
  export * from './markdown';
21
23
  export * from './mention';
24
+ export * from './modal';
22
25
  export * from './modes';
23
26
  export * from './outliner';
24
27
  export * from './preview';
28
+ export * from './replacer';
25
29
  export * from './selection';
30
+ export * from './scrolling';
31
+ export * from './state';
32
+ export * from './submit';
33
+ export * from './tab';
34
+ export * from './tags';
26
35
  export * from './typewriter';
@@ -7,7 +7,7 @@ import { type LintSource, linter } from '@codemirror/lint';
7
7
  import { type Extension } from '@codemirror/state';
8
8
  import Ajv, { type ValidateFunction } from 'ajv';
9
9
 
10
- import { type JsonSchemaType } from '@dxos/echo-schema';
10
+ import { type JsonSchemaType } from '@dxos/echo/internal';
11
11
 
12
12
  export type JsonExtensionsOptions = {
13
13
  schema?: JsonSchemaType;
@@ -5,34 +5,28 @@
5
5
  import { type Extension } from '@codemirror/state';
6
6
  import { EditorView } from '@codemirror/view';
7
7
 
8
+ import { isNonNullable } from '@dxos/util';
9
+
8
10
  import { documentId } from './selection';
9
11
 
10
12
  export type ListenerOptions = {
11
- onFocus?: (focusing: boolean) => void;
12
- onChange?: (text: string, id: string) => void;
13
+ onFocus?: (event: { id: string; focusing: boolean }) => void;
14
+ onChange?: (event: { id: string; text: string }) => void;
13
15
  };
14
16
 
15
- /**
16
- * Event listener.
17
- * @deprecated Use EditorView.updateListener and listen for specific update events.
18
- */
19
17
  export const listener = ({ onFocus, onChange }: ListenerOptions): Extension => {
20
- const extensions: Extension[] = [];
21
-
22
- onFocus &&
23
- extensions.push(
24
- EditorView.focusChangeEffect.of((_, focusing) => {
25
- onFocus(focusing);
18
+ return [
19
+ onFocus &&
20
+ EditorView.focusChangeEffect.of((state, focusing) => {
21
+ onFocus({ id: state.facet(documentId), focusing });
26
22
  return null;
27
23
  }),
28
- );
29
24
 
30
- onChange &&
31
- extensions.push(
32
- EditorView.updateListener.of((update) => {
33
- onChange(update.state.doc.toString(), update.state.facet(documentId));
25
+ onChange &&
26
+ EditorView.updateListener.of(({ state, docChanged }) => {
27
+ if (docChanged) {
28
+ onChange({ id: state.facet(documentId), text: state.doc.toString() });
29
+ }
34
30
  }),
35
- );
36
-
37
- return extensions;
31
+ ].filter(isNonNullable);
38
32
  };
@@ -7,6 +7,8 @@ import { type EditorView } from '@codemirror/view';
7
7
  import { type Action } from '@dxos/app-graph';
8
8
  import { type MenuActionProperties } from '@dxos/react-ui-menu';
9
9
 
10
+ import { createComment } from '../comments';
11
+
10
12
  import {
11
13
  Inline,
12
14
  List,
@@ -25,7 +27,6 @@ import {
25
27
  toggleList,
26
28
  toggleStyle,
27
29
  } from './formatting';
28
- import { createComment } from '../comments';
29
30
 
30
31
  export type PayloadType =
31
32
  | 'view-mode'
@@ -4,20 +4,23 @@
4
4
 
5
5
  import { completionKeymap } from '@codemirror/autocomplete';
6
6
  import { defaultKeymap, indentWithTab } from '@codemirror/commands';
7
- import { markdownLanguage, markdown } from '@codemirror/lang-markdown';
8
- import { syntaxHighlighting } from '@codemirror/language';
7
+ import { jsonLanguage } from '@codemirror/lang-json';
8
+ import { markdown, markdownLanguage } from '@codemirror/lang-markdown';
9
+ import { xml } from '@codemirror/lang-xml';
10
+ import { LanguageDescription, syntaxHighlighting } from '@codemirror/language';
9
11
  import { languages } from '@codemirror/language-data';
10
12
  import { type Extension } from '@codemirror/state';
11
13
  import { keymap } from '@codemirror/view';
14
+ import { type MarkdownConfig } from '@lezer/markdown';
12
15
 
13
- import { type ThemeMode } from '@dxos/react-ui';
14
- import { isNotFalsy } from '@dxos/util';
16
+ import { isTruthy } from '@dxos/util';
15
17
 
16
18
  import { markdownHighlightStyle, markdownTagsExtensions } from './highlight';
17
19
 
18
20
  export type MarkdownBundleOptions = {
19
- themeMode?: ThemeMode;
21
+ extensions?: MarkdownConfig[];
20
22
  indentWithTab?: boolean;
23
+ setextHeading?: boolean;
21
24
  };
22
25
 
23
26
  /**
@@ -42,6 +45,7 @@ export const createMarkdownExtensions = (options: MarkdownBundleOptions = {}): E
42
45
  base: markdownLanguage,
43
46
 
44
47
  // Languages for syntax highlighting fenced code blocks.
48
+ defaultCodeLanguage: jsonLanguage,
45
49
  codeLanguages: languages,
46
50
 
47
51
  // Don't complete HTML tags.
@@ -51,6 +55,7 @@ export const createMarkdownExtensions = (options: MarkdownBundleOptions = {}): E
51
55
  extensions: [
52
56
  // GFM provided by default.
53
57
  markdownTagsExtensions,
58
+ ...(options.extensions ?? defaultExtensions()),
54
59
  ],
55
60
  }),
56
61
 
@@ -64,8 +69,37 @@ export const createMarkdownExtensions = (options: MarkdownBundleOptions = {}): E
64
69
 
65
70
  // https://codemirror.net/docs/ref/#commands.defaultKeymap
66
71
  ...defaultKeymap,
72
+
73
+ // TODO(burdon): Remove?
67
74
  ...completionKeymap,
68
- ].filter(isNotFalsy),
75
+ ].filter(isTruthy),
69
76
  ),
70
77
  ];
71
78
  };
79
+
80
+ const xmlLanguageDesc = LanguageDescription.of({
81
+ name: 'xml',
82
+ alias: ['html', 'xhtml'],
83
+ extensions: ['xml', 'xhtml'],
84
+ load: async () => xml(),
85
+ });
86
+
87
+ /**
88
+ * Default customizations.
89
+ * https://github.com/lezer-parser/markdown/blob/main/src/markdown.ts
90
+ */
91
+ export const defaultExtensions = (): MarkdownConfig[] => [noSetExtHeading, noHtml];
92
+
93
+ /**
94
+ * Remove SetextHeading (e.g., headings created from "---").
95
+ */
96
+ const noSetExtHeading: MarkdownConfig = {
97
+ remove: ['SetextHeading'],
98
+ };
99
+
100
+ /**
101
+ * Remove HTML and XML parsing.
102
+ */
103
+ const noHtml: MarkdownConfig = {
104
+ // remove: ['HTMLBlock', 'HTMLTag'],
105
+ };
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { syntaxTree } from '@codemirror/language';
6
6
  import { type ChangeSpec, Transaction } from '@codemirror/state';
7
- import { ViewPlugin, type ViewUpdate, type PluginValue } from '@codemirror/view';
7
+ import { type PluginValue, ViewPlugin, type ViewUpdate } from '@codemirror/view';
8
8
 
9
9
  /**
10
10
  * Monitors and augments changes.