@dxos/plugin-markdown 0.8.4-main.422d1c7879 → 0.8.4-main.4f23b4e393

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 (289) hide show
  1. package/dist/lib/neutral/EditableMarkdownCard-P4F4TIUM.mjs +32 -0
  2. package/dist/lib/neutral/EditableMarkdownCard-P4F4TIUM.mjs.map +7 -0
  3. package/dist/lib/neutral/MarkdownCard-INMBLUL4.mjs +102 -0
  4. package/dist/lib/neutral/MarkdownCard-INMBLUL4.mjs.map +7 -0
  5. package/dist/lib/neutral/MarkdownContainer-2BDGD3PL.mjs +126 -0
  6. package/dist/lib/neutral/MarkdownContainer-2BDGD3PL.mjs.map +7 -0
  7. package/dist/lib/neutral/MarkdownPlugin.mjs +58 -0
  8. package/dist/lib/neutral/MarkdownPlugin.mjs.map +7 -0
  9. package/dist/lib/neutral/MarkdownPlugin.node.mjs +25 -0
  10. package/dist/lib/neutral/MarkdownPlugin.node.mjs.map +7 -0
  11. package/dist/lib/{browser/MarkdownSettings-62YSRY7L.mjs → neutral/MarkdownSettings-YCTZJL5V.mjs} +4 -4
  12. package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
  13. package/dist/lib/neutral/anchor-sort-L4VCKDO6.mjs +32 -0
  14. package/dist/lib/neutral/anchor-sort-L4VCKDO6.mjs.map +7 -0
  15. package/dist/lib/neutral/app-graph-serializer-YI72EEVM.mjs +55 -0
  16. package/dist/lib/neutral/app-graph-serializer-YI72EEVM.mjs.map +7 -0
  17. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs +15 -0
  18. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs.map +7 -0
  19. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  20. package/dist/lib/neutral/capabilities/index.mjs +25 -0
  21. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  22. package/dist/lib/neutral/capabilities/node.mjs +11 -0
  23. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  24. package/dist/lib/neutral/chunk-3LYCPEVP.mjs +21 -0
  25. package/dist/lib/neutral/chunk-3LYCPEVP.mjs.map +7 -0
  26. package/dist/lib/neutral/chunk-6N7AD3IU.mjs +8 -0
  27. package/dist/lib/neutral/chunk-6N7AD3IU.mjs.map +7 -0
  28. package/dist/lib/neutral/chunk-KDN4GKG2.mjs +98 -0
  29. package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
  30. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-LXNSKCPD.mjs} +10 -17
  31. package/dist/lib/neutral/chunk-LXNSKCPD.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-SOLAMEK3.mjs +276 -0
  33. package/dist/lib/neutral/chunk-SOLAMEK3.mjs.map +7 -0
  34. package/dist/lib/neutral/comment-config-7VTHRUIZ.mjs +30 -0
  35. package/dist/lib/neutral/comment-config-7VTHRUIZ.mjs.map +7 -0
  36. package/dist/lib/{browser → neutral/components}/index.mjs +13 -275
  37. package/dist/lib/neutral/components/index.mjs.map +7 -0
  38. package/dist/lib/neutral/containers/index.mjs +13 -0
  39. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  40. package/dist/lib/{browser/create-YL5ELZWP.mjs → neutral/create-3PGJ2NEK.mjs} +5 -7
  41. package/dist/lib/neutral/create-3PGJ2NEK.mjs.map +7 -0
  42. package/dist/lib/{browser/create-markdown-LU5IDKMH.mjs → neutral/create-markdown-5LS46GMH.mjs} +5 -7
  43. package/dist/lib/neutral/create-markdown-5LS46GMH.mjs.map +7 -0
  44. package/dist/lib/neutral/create-object-ZA6VXLJJ.mjs +27 -0
  45. package/dist/lib/neutral/create-object-ZA6VXLJJ.mjs.map +7 -0
  46. package/dist/lib/neutral/hooks/index.mjs +321 -0
  47. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  48. package/dist/lib/neutral/index.mjs +42 -0
  49. package/dist/lib/neutral/meta.json +1 -0
  50. package/dist/lib/neutral/meta.mjs +8 -0
  51. package/dist/lib/{browser/open-AFSOZZ6G.mjs → neutral/open-WCYGBLAG.mjs} +5 -6
  52. package/dist/lib/neutral/open-WCYGBLAG.mjs.map +7 -0
  53. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs +13 -0
  54. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs.map +7 -0
  55. package/dist/lib/neutral/operations/index.mjs +8 -0
  56. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  57. package/dist/lib/neutral/plugin.mjs +16 -0
  58. package/dist/lib/neutral/plugin.mjs.map +7 -0
  59. package/dist/lib/neutral/react-surface-TB4TY57T.mjs +119 -0
  60. package/dist/lib/neutral/react-surface-TB4TY57T.mjs.map +7 -0
  61. package/dist/lib/{browser/scroll-to-anchor-IPXV32A6.mjs → neutral/scroll-to-anchor-6FIOKVKT.mjs} +7 -9
  62. package/dist/lib/neutral/scroll-to-anchor-6FIOKVKT.mjs.map +7 -0
  63. package/dist/lib/neutral/set-view-mode-37RSPFEN.mjs +24 -0
  64. package/dist/lib/neutral/set-view-mode-37RSPFEN.mjs.map +7 -0
  65. package/dist/lib/neutral/settings-TDGDLCUR.mjs +34 -0
  66. package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +7 -0
  67. package/dist/lib/neutral/state-5COCF5PN.mjs +44 -0
  68. package/dist/lib/neutral/state-5COCF5PN.mjs.map +7 -0
  69. package/dist/lib/neutral/testing.mjs +18 -0
  70. package/dist/lib/neutral/testing.mjs.map +7 -0
  71. package/dist/lib/neutral/translations.mjs +43 -0
  72. package/dist/lib/neutral/translations.mjs.map +7 -0
  73. package/dist/lib/neutral/types/index.mjs +16 -0
  74. package/dist/lib/neutral/types/index.mjs.map +7 -0
  75. package/dist/lib/{browser/update-HZNVYBMO.mjs → neutral/update-markdown-5EDRD3SH.mjs} +8 -9
  76. package/dist/lib/neutral/update-markdown-5EDRD3SH.mjs.map +7 -0
  77. package/dist/types/src/MarkdownPlugin.d.ts +1 -0
  78. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  79. package/dist/types/src/{cli/plugin.d.ts → MarkdownPlugin.node.d.ts} +2 -1
  80. package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -0
  81. package/dist/types/src/MarkdownPlugin.test.d.ts +2 -0
  82. package/dist/types/src/MarkdownPlugin.test.d.ts.map +1 -0
  83. package/dist/types/src/blueprints/markdown-blueprint.d.ts +2 -2
  84. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  88. package/dist/types/src/capabilities/blueprint-definition.d.ts +2 -2
  89. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/comment-config.d.ts +12 -0
  91. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  92. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  93. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  94. package/dist/types/src/capabilities/index.d.ts +16 -3
  95. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/node.d.ts +7 -1
  97. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  99. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/state.d.ts +2 -2
  103. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  104. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +13 -5
  105. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  106. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  107. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +2 -1
  108. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  109. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +1 -1
  110. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  111. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +46 -46
  112. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -1
  113. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts +15 -0
  114. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
  115. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
  116. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
  117. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  118. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +1 -1
  119. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
  120. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -1
  121. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts +5 -5
  122. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -1
  123. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +70 -50
  124. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -1
  125. package/dist/types/src/containers/index.d.ts +1 -0
  126. package/dist/types/src/containers/index.d.ts.map +1 -1
  127. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
  128. package/dist/types/src/hooks/useExtensions.d.ts +2 -1
  129. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  130. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  131. package/dist/types/src/index.d.ts +2 -4
  132. package/dist/types/src/index.d.ts.map +1 -1
  133. package/dist/types/src/operations/create-markdown.d.ts +3 -3
  134. package/dist/types/src/operations/create-markdown.d.ts.map +1 -1
  135. package/dist/types/src/operations/create.d.ts +3 -3
  136. package/dist/types/src/operations/create.d.ts.map +1 -1
  137. package/dist/types/src/operations/index.d.ts +1 -2
  138. package/dist/types/src/operations/index.d.ts.map +1 -1
  139. package/dist/types/src/operations/open.d.ts +3 -3
  140. package/dist/types/src/operations/open.d.ts.map +1 -1
  141. package/dist/types/src/operations/scroll-to-anchor.d.ts +3 -3
  142. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -1
  143. package/dist/types/src/operations/set-view-mode.d.ts +3 -3
  144. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -1
  145. package/dist/types/src/operations/update-markdown.d.ts +5 -0
  146. package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
  147. package/dist/types/src/plugin.d.ts +4 -0
  148. package/dist/types/src/plugin.d.ts.map +1 -0
  149. package/dist/types/src/testing.d.ts.map +1 -1
  150. package/dist/types/src/translations.d.ts +70 -51
  151. package/dist/types/src/translations.d.ts.map +1 -1
  152. package/dist/types/src/types/Markdown.d.ts +4 -3
  153. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  154. package/dist/types/src/types/MarkdownCapabilities.d.ts +32 -0
  155. package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -0
  156. package/dist/types/src/types/MarkdownEvents.d.ts +3 -0
  157. package/dist/types/src/types/MarkdownEvents.d.ts.map +1 -0
  158. package/dist/types/src/{operations/definitions.d.ts → types/MarkdownOperation.d.ts} +5 -5
  159. package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
  160. package/dist/types/src/types/Settings.d.ts +1 -1
  161. package/dist/types/src/types/index.d.ts +3 -2
  162. package/dist/types/src/types/index.d.ts.map +1 -1
  163. package/dist/types/src/types/types.d.ts +1 -0
  164. package/dist/types/src/types/types.d.ts.map +1 -1
  165. package/dist/types/src/util.d.ts +1 -1
  166. package/dist/types/src/util.d.ts.map +1 -1
  167. package/dist/types/tsconfig.tsbuildinfo +1 -1
  168. package/package.json +119 -88
  169. package/src/MarkdownPlugin.node.ts +20 -0
  170. package/src/MarkdownPlugin.test.ts +26 -0
  171. package/src/MarkdownPlugin.tsx +8 -52
  172. package/src/blueprints/markdown-blueprint.ts +8 -9
  173. package/src/capabilities/app-graph-serializer.ts +4 -6
  174. package/src/capabilities/artifact-definition.ts +3 -4
  175. package/src/capabilities/blueprint-definition.ts +2 -0
  176. package/src/capabilities/comment-config.ts +32 -0
  177. package/src/capabilities/create-object.ts +30 -0
  178. package/src/capabilities/index.ts +4 -1
  179. package/src/capabilities/node.ts +3 -1
  180. package/src/capabilities/operation-handler.ts +1 -1
  181. package/src/capabilities/react-surface.tsx +10 -4
  182. package/src/capabilities/state.ts +4 -4
  183. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +4 -3
  184. package/src/components/MarkdownEditor/MarkdownEditor.tsx +32 -25
  185. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +2 -3
  186. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +1 -1
  187. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +2 -1
  188. package/src/components/MarkdownSettings/MarkdownSettings.tsx +3 -3
  189. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.tsx +42 -0
  190. package/src/containers/EditableMarkdownCard/index.ts +6 -0
  191. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +4 -3
  192. package/src/containers/MarkdownCard/MarkdownCard.tsx +0 -1
  193. package/src/containers/MarkdownCard/snippet.ts +3 -1
  194. package/src/containers/MarkdownContainer/MarkdownContainer.stories.tsx +3 -3
  195. package/src/containers/MarkdownContainer/MarkdownContainer.tsx +5 -4
  196. package/src/containers/index.ts +1 -0
  197. package/src/hooks/useExtensions.tsx +4 -6
  198. package/src/hooks/useLinkQuery.ts +9 -26
  199. package/src/index.ts +2 -7
  200. package/src/operations/create-markdown.ts +3 -4
  201. package/src/operations/create.conversations.json +1 -1
  202. package/src/operations/create.test.ts +7 -9
  203. package/src/operations/create.ts +3 -4
  204. package/src/operations/index.ts +2 -4
  205. package/src/operations/open.ts +3 -3
  206. package/src/operations/scroll-to-anchor.ts +3 -4
  207. package/src/operations/set-view-mode.ts +3 -4
  208. package/src/operations/{update.ts → update-markdown.ts} +3 -3
  209. package/src/operations/update.conversations.json +1 -1
  210. package/src/operations/update.test.ts +7 -9
  211. package/src/plugin.ts +11 -0
  212. package/src/testing.ts +1 -3
  213. package/src/translations.ts +2 -2
  214. package/src/types/Markdown.ts +5 -0
  215. package/src/types/MarkdownCapabilities.ts +51 -0
  216. package/src/types/MarkdownEvents.ts +14 -0
  217. package/src/{operations/definitions.ts → types/MarkdownOperation.ts} +4 -2
  218. package/src/types/Settings.ts +3 -3
  219. package/src/types/index.ts +3 -2
  220. package/src/types/types.ts +4 -1
  221. package/src/util.tsx +2 -2
  222. package/dist/lib/browser/MarkdownSettings-62YSRY7L.mjs.map +0 -7
  223. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  224. package/dist/lib/browser/chunk-4KOZEH2H.mjs +0 -121
  225. package/dist/lib/browser/chunk-4KOZEH2H.mjs.map +0 -7
  226. package/dist/lib/browser/chunk-QFPZONKP.mjs +0 -158
  227. package/dist/lib/browser/chunk-QFPZONKP.mjs.map +0 -7
  228. package/dist/lib/browser/cli/index.mjs +0 -39
  229. package/dist/lib/browser/cli/index.mjs.map +0 -7
  230. package/dist/lib/browser/create-YL5ELZWP.mjs.map +0 -7
  231. package/dist/lib/browser/create-markdown-LU5IDKMH.mjs.map +0 -7
  232. package/dist/lib/browser/index.mjs.map +0 -7
  233. package/dist/lib/browser/meta.json +0 -1
  234. package/dist/lib/browser/open-AFSOZZ6G.mjs.map +0 -7
  235. package/dist/lib/browser/operations/index.mjs +0 -14
  236. package/dist/lib/browser/operations/index.mjs.map +0 -7
  237. package/dist/lib/browser/scroll-to-anchor-IPXV32A6.mjs.map +0 -7
  238. package/dist/lib/browser/set-view-mode-2QWB24RR.mjs +0 -26
  239. package/dist/lib/browser/set-view-mode-2QWB24RR.mjs.map +0 -7
  240. package/dist/lib/browser/types/index.mjs +0 -16
  241. package/dist/lib/browser/update-HZNVYBMO.mjs.map +0 -7
  242. package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs +0 -33
  243. package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs.map +0 -7
  244. package/dist/lib/node-esm/blueprints/index.mjs +0 -52
  245. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  246. package/dist/lib/node-esm/chunk-3OPDJJJH.mjs +0 -122
  247. package/dist/lib/node-esm/chunk-3OPDJJJH.mjs.map +0 -7
  248. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  249. package/dist/lib/node-esm/chunk-JUGS6RKO.mjs +0 -159
  250. package/dist/lib/node-esm/chunk-JUGS6RKO.mjs.map +0 -7
  251. package/dist/lib/node-esm/cli/index.mjs +0 -40
  252. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  253. package/dist/lib/node-esm/create-SMQAIM3V.mjs +0 -31
  254. package/dist/lib/node-esm/create-SMQAIM3V.mjs.map +0 -7
  255. package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs +0 -23
  256. package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs.map +0 -7
  257. package/dist/lib/node-esm/index.mjs +0 -633
  258. package/dist/lib/node-esm/index.mjs.map +0 -7
  259. package/dist/lib/node-esm/meta.json +0 -1
  260. package/dist/lib/node-esm/open-SRWLLOKE.mjs +0 -22
  261. package/dist/lib/node-esm/open-SRWLLOKE.mjs.map +0 -7
  262. package/dist/lib/node-esm/operations/index.mjs +0 -15
  263. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  264. package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs +0 -50
  265. package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs.map +0 -7
  266. package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs +0 -27
  267. package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs.map +0 -7
  268. package/dist/lib/node-esm/types/index.mjs +0 -17
  269. package/dist/lib/node-esm/update-4CELTLXK.mjs +0 -46
  270. package/dist/lib/node-esm/update-4CELTLXK.mjs.map +0 -7
  271. package/dist/types/src/cli/index.d.ts +0 -2
  272. package/dist/types/src/cli/index.d.ts.map +0 -1
  273. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  274. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  275. package/dist/types/src/operations/update.d.ts +0 -5
  276. package/dist/types/src/operations/update.d.ts.map +0 -1
  277. package/dist/types/src/types/capabilities.d.ts +0 -33
  278. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  279. package/dist/types/src/types/events.d.ts +0 -5
  280. package/dist/types/src/types/events.d.ts.map +0 -1
  281. package/src/cli/index.ts +0 -5
  282. package/src/cli/plugin.ts +0 -39
  283. package/src/types/capabilities.ts +0 -50
  284. package/src/types/events.ts +0 -14
  285. /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  286. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  287. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  288. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  289. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
@@ -8,19 +8,20 @@ import React from 'react';
8
8
 
9
9
  import { withPluginManager } from '@dxos/app-framework/testing';
10
10
  import { Filter, Obj } from '@dxos/echo';
11
- import { ClientPlugin } from '@dxos/plugin-client';
11
+ import { ClientPlugin } from '@dxos/plugin-client/plugin';
12
12
  import { initializeIdentity } from '@dxos/plugin-client/testing';
13
13
  import { corePlugins } from '@dxos/plugin-testing';
14
14
  import { useQuery, useSpaces } from '@dxos/react-client/echo';
15
15
  import { Panel } from '@dxos/react-ui';
16
16
  import { AttendableContainer } from '@dxos/react-ui-attention';
17
- import { Editor, translations as editorTranslations } from '@dxos/react-ui-editor';
17
+ import { Editor } from '@dxos/react-ui-editor';
18
+ import { translations as editorTranslations } from '@dxos/react-ui-editor/translations';
18
19
  import { Loading, withLayout } from '@dxos/react-ui/testing';
19
20
  import { Text } from '@dxos/schema';
20
21
 
22
+ import { translations } from '#translations';
21
23
  import { Markdown } from '#types';
22
24
 
23
- import { translations } from '../../translations';
24
25
  import { MarkdownEditor, MarkdownEditorProvider, type MarkdownEditorProviderProps } from './MarkdownEditor';
25
26
 
26
27
  type DefaultStoryProps = Omit<MarkdownEditorProviderProps, 'id' | 'extensions' | 'children'>;
@@ -172,32 +172,39 @@ const MARKDOWN_EDITOR_CONTENT_NAME = 'MarkdownEditor.Content';
172
172
 
173
173
  type MarkdownEditorContentProps = Omit<NaturalMarkdownEditorContentProps, 'id' | 'extensions' | 'toolbarState'>;
174
174
 
175
- const MarkdownEditorContent = composable<HTMLDivElement, MarkdownEditorContentProps>(({ ...props }, _forwardedRef) => {
176
- const { id, attendableId, compact, viewMode, onFileUpload } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
177
-
178
- const { extensions, setController, state } = useEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
179
-
180
- const handleRef = useCallback(
181
- (view: EditorView | null) => {
182
- setController(createEditorController(view));
183
- },
184
- [setController],
185
- );
175
+ const MarkdownEditorContent = composable<HTMLDivElement, MarkdownEditorContentProps>(
176
+ ({ compact: compactProp, ...props }, _forwardedRef) => {
177
+ const {
178
+ id,
179
+ attendableId,
180
+ compact = compactProp,
181
+ viewMode,
182
+ onFileUpload,
183
+ } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
184
+ const { extensions, setController, state } = useEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
186
185
 
187
- return (
188
- <NaturalMarkdownEditorContent
189
- {...composableProps(props)}
190
- id={id}
191
- attendableId={attendableId}
192
- compact={compact}
193
- viewMode={viewMode}
194
- toolbarState={state as Atom.Writable<EditorToolbarState>}
195
- extensions={extensions}
196
- onFileUpload={onFileUpload}
197
- ref={handleRef}
198
- />
199
- );
200
- });
186
+ const handleRef = useCallback(
187
+ (view: EditorView | null) => {
188
+ setController(createEditorController(view));
189
+ },
190
+ [setController],
191
+ );
192
+
193
+ return (
194
+ <NaturalMarkdownEditorContent
195
+ {...composableProps(props)}
196
+ id={id}
197
+ attendableId={attendableId}
198
+ compact={compact}
199
+ viewMode={viewMode}
200
+ toolbarState={state as Atom.Writable<EditorToolbarState>}
201
+ extensions={extensions}
202
+ onFileUpload={onFileUpload}
203
+ ref={handleRef}
204
+ />
205
+ );
206
+ },
207
+ );
201
208
 
202
209
  MarkdownEditorContent.displayName = MARKDOWN_EDITOR_CONTENT_NAME;
203
210
 
@@ -17,7 +17,6 @@ import {
17
17
  import {
18
18
  type EditorSelectionState,
19
19
  type EditorStateStore,
20
- type EditorViewMode,
21
20
  type ThemeExtensionsOptions,
22
21
  mobileSlots,
23
22
  createBasicExtensions,
@@ -29,6 +28,7 @@ import {
29
28
  processEditorPayload,
30
29
  editorClassNames,
31
30
  } from '@dxos/ui-editor';
31
+ import { type EditorViewMode } from '@dxos/ui-editor/types';
32
32
  import { mx } from '@dxos/ui-theme';
33
33
  import { isTruthy } from '@dxos/util';
34
34
 
@@ -130,7 +130,7 @@ export const MarkdownEditorContent = forwardRef<EditorView | null, MarkdownEdito
130
130
  extensions,
131
131
  ].filter(isTruthy),
132
132
  }),
133
- [id, viewMode, themeMode, extensions],
133
+ [id, viewMode, themeMode, extensions, compact],
134
134
  );
135
135
 
136
136
  useImperativeHandle<EditorView | null, EditorView | null>(forwardedRef, () => editorView, [editorView]);
@@ -149,7 +149,6 @@ export const MarkdownEditorContent = forwardRef<EditorView | null, MarkdownEdito
149
149
  <div
150
150
  {...focusAttributes}
151
151
  className={mx(editorClassNames(role), classNames)}
152
- role='none'
153
152
  data-testid='composer.markdownRoot'
154
153
  data-popover-collision-boundary={true}
155
154
  ref={parentRef}
@@ -28,7 +28,7 @@ export const MarkdownEditorToolbar = composable<HTMLDivElement, MarkdownEditorTo
28
28
  }
29
29
 
30
30
  return (
31
- <div role='none' className='contents' ref={forwardedRef}>
31
+ <div className='contents' ref={forwardedRef}>
32
32
  <Editor.Toolbar
33
33
  {...rest}
34
34
  classNames={className}
@@ -6,7 +6,8 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
 
7
7
  import { withLayout, withTheme } from '@dxos/react-ui/testing';
8
8
 
9
- import { translations } from '../../translations';
9
+ import { translations } from '#translations';
10
+
10
11
  import { MarkdownSettings } from './MarkdownSettings';
11
12
 
12
13
  const meta = {
@@ -13,7 +13,7 @@ import { Markdown } from '#types';
13
13
 
14
14
  export type MarkdownSettingsProps = AppSurface.SettingsArticleProps<Markdown.Settings>;
15
15
 
16
- const TypewriterField = ({ value, onChange, readonly }: SettingsFieldProps<string>) => (
16
+ const SnippetsField = ({ value, onChange, readonly }: SettingsFieldProps<string | undefined>) => (
17
17
  <Input.TextArea disabled={readonly} rows={5} value={value ?? ''} onChange={(event) => onChange(event.target.value)} />
18
18
  );
19
19
 
@@ -24,8 +24,8 @@ export const MarkdownSettings = ({ settings, onSettingsChange }: MarkdownSetting
24
24
  <SettingsForm.FieldSet
25
25
  readonly={!onSettingsChange}
26
26
  schema={Markdown.Settings}
27
- visible={(path, values) => path !== 'typewriter' || !!values.debug}
28
- fieldMap={{ typewriter: TypewriterField }}
27
+ visible={(path, values) => path !== 'snippets' || !!values.debug}
28
+ fieldMap={{ snippets: SnippetsField }}
29
29
  values={settings}
30
30
  onValuesChanged={(values) => onSettingsChange?.(() => values)}
31
31
  />
@@ -0,0 +1,42 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import React from 'react';
6
+
7
+ import { Obj } from '@dxos/echo';
8
+ import { useObject } from '@dxos/react-client/echo';
9
+ import { Card } from '@dxos/react-ui';
10
+ import { Editor } from '@dxos/react-ui-editor';
11
+ import { Text } from '@dxos/schema';
12
+
13
+ import { MarkdownEditor, MarkdownEditorProvider } from '#components';
14
+ import { Markdown } from '#types';
15
+
16
+ export type EditableMarkdownCardProps = { subject: Markdown.Document | Text.Text };
17
+
18
+ /**
19
+ * Full-bleed editable variant of {@link MarkdownCard}. Activated by the host
20
+ * passing `editable: true` on the card surface data (e.g. plugin-board cells).
21
+ * Renders a plain editor (no app-graph toolbar / file upload / link queries)
22
+ * so it stays self-contained inside the card; the regular MarkdownContainer
23
+ * remains the canonical surface for full article views.
24
+ */
25
+ export const EditableMarkdownCard = ({ subject }: EditableMarkdownCardProps) => {
26
+ const id = Obj.getDXN(subject).toString();
27
+ const [docContent] = useObject(Obj.instanceOf(Markdown.Document, subject) ? subject.content : undefined, 'content');
28
+ const [textContent] = useObject(Obj.instanceOf(Text.Text, subject) ? subject : undefined, 'content');
29
+ const initialValue = docContent ?? textContent;
30
+
31
+ return (
32
+ <Card.Section classNames='overflow-hidden'>
33
+ <MarkdownEditorProvider id={id} object={subject} viewMode='source'>
34
+ {(editorRootProps) => (
35
+ <Editor.Root {...editorRootProps}>
36
+ <MarkdownEditor.Content compact initialValue={initialValue} />
37
+ </Editor.Root>
38
+ )}
39
+ </MarkdownEditorProvider>
40
+ </Card.Section>
41
+ );
42
+ };
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ export { EditableMarkdownCard, type EditableMarkdownCardProps } from './EditableMarkdownCard';
6
+ export { EditableMarkdownCard as default } from './EditableMarkdownCard';
@@ -8,14 +8,15 @@ import React, { useMemo } from 'react';
8
8
  import { OperationPlugin, RuntimePlugin } from '@dxos/app-framework';
9
9
  import { withPluginManager } from '@dxos/app-framework/testing';
10
10
  import { Obj } from '@dxos/echo';
11
- import { ClientPlugin } from '@dxos/plugin-client';
12
- import { Markdown } from '@dxos/plugin-markdown/types';
11
+ import { ClientPlugin } from '@dxos/plugin-client/plugin';
12
+ import { Markdown } from '@dxos/plugin-markdown';
13
13
  import { random } from '@dxos/random';
14
14
  import { Card } from '@dxos/react-ui';
15
15
  import { CardContainer } from '@dxos/react-ui-mosaic/testing';
16
16
  import { withTheme } from '@dxos/react-ui/testing';
17
17
 
18
- import { translations } from '../../translations';
18
+ import { translations } from '#translations';
19
+
19
20
  import { MarkdownCard, type MarkdownCardProps } from './MarkdownCard';
20
21
 
21
22
  random.seed(1234);
@@ -37,7 +37,6 @@ export const MarkdownCard = ({ subject }: MarkdownCardProps) => {
37
37
  )}
38
38
  </MarkdownEditorProvider>
39
39
  <div
40
- role='none'
41
40
  className={mx(
42
41
  'z-10 absolute bottom-0 inset-x-0 h-12 w-full',
43
42
  'bg-gradient-to-b from-transparent to-(--surface-bg) pointer-events-none',
@@ -26,7 +26,9 @@ export const snippet = ({ height, scale = 1 }: SnippetOptions) => {
26
26
  EditorState.readOnly.of(true),
27
27
  EditorView.editable.of(false),
28
28
  EditorState.transactionFilter.of((tr) => {
29
- if (tr.selection) return []; // Drop any selection changes.
29
+ if (tr.selection) {
30
+ return [];
31
+ } // Drop any selection changes.
30
32
  return tr;
31
33
  }),
32
34
  EditorView.theme({
@@ -12,9 +12,9 @@ import { Surface, useOperationInvoker } from '@dxos/app-framework/ui';
12
12
  import { AppActivationEvents, LayoutOperation } from '@dxos/app-toolkit';
13
13
  import { AppSurface } from '@dxos/app-toolkit/ui';
14
14
  import { Obj, Query } from '@dxos/echo';
15
- import { ClientPlugin } from '@dxos/plugin-client';
15
+ import { ClientPlugin } from '@dxos/plugin-client/plugin';
16
16
  import { initializeIdentity } from '@dxos/plugin-client/testing';
17
- import { PreviewPlugin } from '@dxos/plugin-preview';
17
+ import { PreviewPlugin } from '@dxos/plugin-preview/testing';
18
18
  import { StorybookPlugin, corePlugins } from '@dxos/plugin-testing';
19
19
  import { random } from '@dxos/random';
20
20
  import { useQuery, useSpaces } from '@dxos/react-client/echo';
@@ -25,10 +25,10 @@ import { Text } from '@dxos/schema';
25
25
  import { type ValueGenerator, createObjectFactory } from '@dxos/schema/testing';
26
26
  import { Organization, Person } from '@dxos/types';
27
27
 
28
+ import { translations } from '#translations';
28
29
  import { Markdown, MarkdownCapabilities, MarkdownEvents } from '#types';
29
30
 
30
31
  import { MarkdownPlugin } from '../../MarkdownPlugin';
31
- import { translations } from '../../translations';
32
32
 
33
33
  random.seed(1);
34
34
 
@@ -39,7 +39,7 @@ export type MarkdownContainerProps = AppSurface.ObjectArticleProps<
39
39
 
40
40
  export const MarkdownContainer = forwardRef<HTMLDivElement, MarkdownContainerProps>(
41
41
  (
42
- { role, subject: object, id, attendableId, settings, extensionProviders, onSelectObject, ...props },
42
+ { role, subject: object, id, attendableId, settings, extensionProviders, onSelectObject, viewMode, ...props },
43
43
  forwardedRef,
44
44
  ) => {
45
45
  const db = Obj.isObject(object) ? Obj.getDatabase(object) : undefined;
@@ -54,18 +54,18 @@ export const MarkdownContainer = forwardRef<HTMLDivElement, MarkdownContainerPro
54
54
  return [];
55
55
  }
56
56
 
57
+ const document = Obj.instanceOf(Markdown.Document, object) ? object : undefined;
57
58
  return [...(otherExtensionProviders ?? []), ...(extensionProviders ?? [])]
58
59
  .flat()
59
60
  .reduce((acc: Extension[], provider) => {
60
- const extension =
61
- typeof provider === 'function' ? provider({ document: object as Markdown.Document }) : provider;
61
+ const extension = typeof provider === 'function' ? provider({ document, viewMode }) : provider;
62
62
  if (extension) {
63
63
  acc.push(extension);
64
64
  }
65
65
 
66
66
  return acc;
67
67
  }, []);
68
- }, [extensionProviders, otherExtensionProviders, object]);
68
+ }, [extensionProviders, otherExtensionProviders, object, viewMode]);
69
69
 
70
70
  // Toolbar actions from app graph.
71
71
  const { graph } = useAppGraph();
@@ -118,6 +118,7 @@ export const MarkdownContainer = forwardRef<HTMLDivElement, MarkdownContainerPro
118
118
  compact={role !== 'article'}
119
119
  extensions={extensions}
120
120
  settings={settings}
121
+ viewMode={viewMode}
121
122
  onAction={runAction}
122
123
  onFileUpload={handleFileUpload}
123
124
  onLinkQuery={handleLinkQuery}
@@ -7,4 +7,5 @@ import { type ComponentType, lazy } from 'react';
7
7
  export type { MarkdownContainerProps } from './MarkdownContainer';
8
8
 
9
9
  export const MarkdownCard: ComponentType<any> = lazy(() => import('./MarkdownCard'));
10
+ export const EditableMarkdownCard: ComponentType<any> = lazy(() => import('./EditableMarkdownCard'));
10
11
  export const MarkdownContainer: ComponentType<any> = lazy(() => import('./MarkdownContainer'));
@@ -20,11 +20,9 @@ import {
20
20
  Cursor,
21
21
  type EditorStateStore,
22
22
  EditorView,
23
- type EditorViewMode,
24
23
  type Extension,
25
24
  InputModeExtensions,
26
25
  type PreviewOptions,
27
- type RenderCallback,
28
26
  createDataExtensions,
29
27
  decorateMarkdown,
30
28
  documentId,
@@ -35,8 +33,9 @@ import {
35
33
  preview,
36
34
  replacer,
37
35
  selectionState,
38
- typewriter,
36
+ snippets,
39
37
  } from '@dxos/ui-editor';
38
+ import { type EditorViewMode, type RenderCallback } from '@dxos/ui-editor/types';
40
39
  import { isTruthy, safeUrl } from '@dxos/util';
41
40
 
42
41
  import { Markdown } from '#types';
@@ -113,7 +112,6 @@ export const useExtensions = ({
113
112
  settings?.editorInputMode,
114
113
  settings?.folding,
115
114
  settings?.numberedHeadings,
116
- settings?.typewriter,
117
115
  platform,
118
116
  onSelectObject,
119
117
  ],
@@ -188,9 +186,9 @@ const createBaseExtensions = ({
188
186
  }
189
187
 
190
188
  if (settings?.debug) {
191
- const items = settings.typewriter?.split(/[,\n]/) ?? '';
189
+ const items = settings.snippets?.split(/[,\n]/) ?? '';
192
190
  if (items) {
193
- extensions.push(typewriter({ items }));
191
+ extensions.push(snippets({ items }));
194
192
  }
195
193
  }
196
194
 
@@ -5,11 +5,9 @@
5
5
  import * as Option from 'effect/Option';
6
6
  import { useCallback, useMemo } from 'react';
7
7
 
8
- import { usePluginManager } from '@dxos/app-framework/ui';
9
- import { AppCapabilities } from '@dxos/app-toolkit';
10
- import { type Database, Filter, Obj, Query, Type } from '@dxos/echo';
8
+ import { Annotation, type Database, Filter, Obj, Query, Type } from '@dxos/echo';
11
9
  import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from '@dxos/echo/internal';
12
- import { toLocalizedString, useTranslation } from '@dxos/react-ui';
10
+ import { type Label, toLocalizedString, useTranslation } from '@dxos/react-ui';
13
11
  import { type EditorMenuGroup, type EditorMenuItem } from '@dxos/react-ui-editor';
14
12
  import { insertAtCursor, insertAtLineStart } from '@dxos/ui-editor';
15
13
 
@@ -18,13 +16,6 @@ import { Markdown } from '../types';
18
16
  export const useLinkQuery = (db: Database.Database | undefined) => {
19
17
  const { t } = useTranslation();
20
18
 
21
- const manager = usePluginManager();
22
- const resolve = useCallback(
23
- (typename: string) =>
24
- manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},
25
- [manager],
26
- );
27
-
28
19
  const filter = useMemo(
29
20
  () =>
30
21
  Filter.or(
@@ -42,30 +33,22 @@ export const useLinkQuery = (db: Database.Database | undefined) => {
42
33
  const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : (query?.toLowerCase() ?? '');
43
34
  const results = await db?.query(Query.select(filter)).run();
44
35
 
45
- // TODO(wittjosiah): Use `Obj.Unknown` type.
46
- const getLabel = (object: any) => {
47
- const label = Obj.getLabel(object);
48
- if (label) {
49
- return label;
50
- }
51
-
52
- // TODO(wittjosiah): Remove metadata labels.
36
+ const getLabel = (object: Obj.Unknown): Label => {
53
37
  const type = Obj.getTypename(object)!;
54
- const metadata = resolve(type);
55
- return metadata.label?.(object) || ['object-name.placeholder', { ns: type, defaultValue: 'New object' }];
38
+ return Obj.getLabel(object) ?? ['object-name.placeholder', { ns: type, defaultValue: 'New object' }];
56
39
  };
57
40
 
58
41
  const items =
59
42
  results
60
43
  ?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name))
61
- // TODO(wittjosiah): Remove `any` type.
62
- .map((object: any): EditorMenuItem => {
63
- const metadata = resolve(Obj.getTypename(object)!);
44
+ .map((object: Obj.Unknown): EditorMenuItem => {
45
+ const schema = Obj.getSchema(object);
46
+ const icon = schema ? Option.getOrUndefined(Annotation.IconAnnotation.get(schema))?.icon : undefined;
64
47
  const label = toLocalizedString(getLabel(object), t);
65
48
  return {
66
49
  id: object.id,
67
50
  label,
68
- icon: metadata.icon,
51
+ icon,
69
52
  onSelect: ({ view, head }) => {
70
53
  const link = `[${label}](${Obj.getDXN(object)})`;
71
54
  // "@@" inserts a block embed on its own line instead of an inline link.
@@ -101,7 +84,7 @@ export const useLinkQuery = (db: Database.Database | undefined) => {
101
84
  { id: 'create', items: [createItem] },
102
85
  ];
103
86
  },
104
- [db, filter, resolve, t],
87
+ [db, filter, t],
105
88
  );
106
89
 
107
90
  return handleLinkQuery;
package/src/index.ts CHANGED
@@ -2,13 +2,8 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export { MarkdownCapabilities, MarkdownEvents } from './types';
6
-
5
+ export * from './blueprints';
7
6
  export * from './meta';
7
+ export * from './operations';
8
8
  export * from './types';
9
9
  export * from './util';
10
-
11
- export * from './MarkdownPlugin';
12
-
13
- export { MarkdownEditor, MarkdownEditorProvider } from './components';
14
- export type { MarkdownEditorEditorRootProps } from './components';
@@ -4,12 +4,11 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { Operation } from '@dxos/operation';
7
+ import { Operation } from '@dxos/compute';
8
8
 
9
- import { Markdown } from '../types';
10
- import { CreateMarkdown } from './definitions';
9
+ import { Markdown, MarkdownOperation } from '../types';
11
10
 
12
- const handler: Operation.WithHandler<typeof CreateMarkdown> = CreateMarkdown.pipe(
11
+ const handler: Operation.WithHandler<typeof MarkdownOperation.CreateMarkdown> = MarkdownOperation.CreateMarkdown.pipe(
13
12
  Operation.withHandler(({ name, content }) =>
14
13
  Effect.succeed({
15
14
  object: Markdown.make({ name, content }),