@dxos/plugin-markdown 0.8.4-main.abd8ff62ef → 0.8.4-main.bc2380dfbc

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 (254) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/EditableMarkdownCard-LXBXN3OW.mjs +32 -0
  4. package/dist/lib/neutral/EditableMarkdownCard-LXBXN3OW.mjs.map +7 -0
  5. package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs +126 -0
  6. package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs.map +7 -0
  7. package/dist/lib/neutral/MarkdownCard-INMBLUL4.mjs +102 -0
  8. package/dist/lib/neutral/MarkdownCard-INMBLUL4.mjs.map +7 -0
  9. package/dist/lib/neutral/MarkdownPlugin.mjs +10 -0
  10. package/dist/lib/neutral/MarkdownPlugin.node.mjs +25 -0
  11. package/dist/lib/neutral/MarkdownPlugin.node.mjs.map +7 -0
  12. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs +23 -0
  13. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs.map +7 -0
  14. package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs +32 -0
  15. package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
  16. package/dist/lib/neutral/anchor-sort-L4VCKDO6.mjs +32 -0
  17. package/dist/lib/neutral/anchor-sort-L4VCKDO6.mjs.map +7 -0
  18. package/dist/lib/neutral/app-graph-serializer-YI72EEVM.mjs +55 -0
  19. package/dist/lib/neutral/app-graph-serializer-YI72EEVM.mjs.map +7 -0
  20. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs +15 -0
  21. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs.map +7 -0
  22. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  23. package/dist/lib/neutral/capabilities/index.mjs +25 -0
  24. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  25. package/dist/lib/neutral/capabilities/node.mjs +11 -0
  26. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-5JWFZVBC.mjs +8 -0
  28. package/dist/lib/neutral/chunk-5JWFZVBC.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  30. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  31. package/dist/lib/{browser/index.mjs → neutral/chunk-KDN4GKG2.mjs} +5 -42
  32. package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
  33. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-LXNSKCPD.mjs} +9 -15
  34. package/dist/lib/neutral/chunk-LXNSKCPD.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-LYUELXJH.mjs +57 -0
  36. package/dist/lib/neutral/chunk-LYUELXJH.mjs.map +7 -0
  37. package/dist/lib/neutral/chunk-SOLAMEK3.mjs +276 -0
  38. package/dist/lib/neutral/chunk-SOLAMEK3.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-YC2OAUM7.mjs +22 -0
  40. package/dist/lib/neutral/chunk-YC2OAUM7.mjs.map +7 -0
  41. package/dist/lib/neutral/comment-config-7VTHRUIZ.mjs +30 -0
  42. package/dist/lib/neutral/comment-config-7VTHRUIZ.mjs.map +7 -0
  43. package/dist/lib/neutral/components/index.mjs +370 -0
  44. package/dist/lib/neutral/components/index.mjs.map +7 -0
  45. package/dist/lib/neutral/containers/index.mjs +13 -0
  46. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  47. package/dist/lib/{browser/create-SRADQOTE.mjs → neutral/create-3PGJ2NEK.mjs} +5 -6
  48. package/dist/lib/neutral/create-3PGJ2NEK.mjs.map +7 -0
  49. package/dist/lib/{browser/create-markdown-A2ERCEOZ.mjs → neutral/create-markdown-5LS46GMH.mjs} +5 -6
  50. package/dist/lib/neutral/create-markdown-5LS46GMH.mjs.map +7 -0
  51. package/dist/lib/neutral/create-object-ZA6VXLJJ.mjs +27 -0
  52. package/dist/lib/neutral/create-object-ZA6VXLJJ.mjs.map +7 -0
  53. package/dist/lib/neutral/hooks/index.mjs +321 -0
  54. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  55. package/dist/lib/neutral/index.mjs +42 -0
  56. package/dist/lib/neutral/index.mjs.map +7 -0
  57. package/dist/lib/neutral/meta.json +1 -0
  58. package/dist/lib/neutral/meta.mjs +8 -0
  59. package/dist/lib/neutral/meta.mjs.map +7 -0
  60. package/dist/lib/{browser/open-ANTKMST5.mjs → neutral/open-WCYGBLAG.mjs} +5 -5
  61. package/dist/lib/neutral/open-WCYGBLAG.mjs.map +7 -0
  62. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs +13 -0
  63. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs.map +7 -0
  64. package/dist/lib/neutral/operations/index.mjs +8 -0
  65. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  66. package/dist/lib/neutral/plugin.mjs +16 -0
  67. package/dist/lib/neutral/plugin.mjs.map +7 -0
  68. package/dist/lib/neutral/react-surface-SCIL76V5.mjs +119 -0
  69. package/dist/lib/neutral/react-surface-SCIL76V5.mjs.map +7 -0
  70. package/dist/lib/{browser/scroll-to-anchor-4RJ6MQ7I.mjs → neutral/scroll-to-anchor-6FIOKVKT.mjs} +7 -8
  71. package/dist/lib/neutral/scroll-to-anchor-6FIOKVKT.mjs.map +7 -0
  72. package/dist/lib/neutral/set-view-mode-37RSPFEN.mjs +24 -0
  73. package/dist/lib/neutral/set-view-mode-37RSPFEN.mjs.map +7 -0
  74. package/dist/lib/neutral/settings-TDGDLCUR.mjs +34 -0
  75. package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +7 -0
  76. package/dist/lib/neutral/state-5COCF5PN.mjs +44 -0
  77. package/dist/lib/neutral/state-5COCF5PN.mjs.map +7 -0
  78. package/dist/lib/neutral/testing.mjs +22 -0
  79. package/dist/lib/neutral/testing.mjs.map +7 -0
  80. package/dist/lib/neutral/translations.mjs +43 -0
  81. package/dist/lib/neutral/translations.mjs.map +7 -0
  82. package/dist/lib/neutral/types/index.mjs +16 -0
  83. package/dist/lib/neutral/types/index.mjs.map +7 -0
  84. package/dist/lib/{browser/update-markdown-CPM5KOQW.mjs → neutral/update-markdown-5EDRD3SH.mjs} +5 -5
  85. package/dist/lib/neutral/update-markdown-5EDRD3SH.mjs.map +7 -0
  86. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  87. package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -1
  88. package/dist/types/src/MarkdownPlugin.workerd.d.ts +4 -0
  89. package/dist/types/src/MarkdownPlugin.workerd.d.ts.map +1 -0
  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 +15 -2
  95. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/node.d.ts +6 -0
  97. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/state.d.ts +2 -2
  99. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  100. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  101. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  102. package/dist/types/src/containers/{MarkdownCard/MarkdownEditableCard.d.ts → EditableMarkdownCard/EditableMarkdownCard.d.ts} +4 -4
  103. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
  104. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
  105. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
  106. package/dist/types/src/containers/{MarkdownContainer/MarkdownContainer.d.ts → MarkdownArticle/MarkdownArticle.d.ts} +3 -3
  107. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts.map +1 -0
  108. package/dist/types/src/containers/{MarkdownContainer/MarkdownContainer.stories.d.ts → MarkdownArticle/MarkdownArticle.stories.d.ts} +1 -1
  109. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts.map +1 -0
  110. package/dist/types/src/containers/MarkdownArticle/index.d.ts +3 -0
  111. package/dist/types/src/containers/MarkdownArticle/index.d.ts.map +1 -0
  112. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  113. package/dist/types/src/containers/MarkdownCard/index.d.ts +0 -1
  114. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -1
  115. package/dist/types/src/containers/index.d.ts +3 -3
  116. package/dist/types/src/containers/index.d.ts.map +1 -1
  117. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  118. package/dist/types/src/index.d.ts +2 -3
  119. package/dist/types/src/index.d.ts.map +1 -1
  120. package/dist/types/src/meta.d.ts.map +1 -1
  121. package/dist/types/src/operations/create-markdown.d.ts +2 -2
  122. package/dist/types/src/operations/create-markdown.d.ts.map +1 -1
  123. package/dist/types/src/operations/create.d.ts +2 -2
  124. package/dist/types/src/operations/create.d.ts.map +1 -1
  125. package/dist/types/src/operations/index.d.ts +0 -1
  126. package/dist/types/src/operations/index.d.ts.map +1 -1
  127. package/dist/types/src/operations/open.d.ts +2 -2
  128. package/dist/types/src/operations/open.d.ts.map +1 -1
  129. package/dist/types/src/operations/scroll-to-anchor.d.ts +2 -2
  130. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -1
  131. package/dist/types/src/operations/set-view-mode.d.ts +2 -2
  132. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -1
  133. package/dist/types/src/operations/update-markdown.d.ts +2 -2
  134. package/dist/types/src/operations/update-markdown.d.ts.map +1 -1
  135. package/dist/types/src/plugin.d.ts +4 -0
  136. package/dist/types/src/plugin.d.ts.map +1 -0
  137. package/dist/types/src/testing.d.ts +1 -0
  138. package/dist/types/src/testing.d.ts.map +1 -1
  139. package/dist/types/src/types/Markdown.d.ts +1 -0
  140. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  141. package/dist/types/src/types/{capabilities.d.ts → MarkdownCapabilities.d.ts} +10 -12
  142. package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -0
  143. package/dist/types/src/types/MarkdownEvents.d.ts +3 -0
  144. package/dist/types/src/types/MarkdownEvents.d.ts.map +1 -0
  145. package/dist/types/src/{operations/definitions.d.ts → types/MarkdownOperation.d.ts} +1 -1
  146. package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
  147. package/dist/types/src/types/index.d.ts +3 -2
  148. package/dist/types/src/types/index.d.ts.map +1 -1
  149. package/dist/types/src/util.d.ts +1 -1
  150. package/dist/types/src/util.d.ts.map +1 -1
  151. package/dist/types/tsconfig.tsbuildinfo +1 -1
  152. package/package.json +117 -87
  153. package/src/MarkdownPlugin.node.ts +2 -23
  154. package/src/MarkdownPlugin.test.ts +2 -2
  155. package/src/MarkdownPlugin.tsx +4 -50
  156. package/src/MarkdownPlugin.workerd.ts +19 -0
  157. package/src/blueprints/markdown-blueprint.ts +6 -6
  158. package/src/capabilities/app-graph-serializer.ts +3 -4
  159. package/src/capabilities/artifact-definition.ts +2 -3
  160. package/src/capabilities/comment-config.ts +32 -0
  161. package/src/capabilities/create-object.ts +30 -0
  162. package/src/capabilities/index.ts +3 -1
  163. package/src/capabilities/node.ts +2 -0
  164. package/src/capabilities/react-surface.tsx +5 -5
  165. package/src/capabilities/state.ts +4 -4
  166. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +1 -1
  167. package/src/components/MarkdownEditor/MarkdownEditor.tsx +32 -25
  168. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +1 -2
  169. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +1 -1
  170. package/src/containers/{MarkdownCard/MarkdownEditableCard.tsx → EditableMarkdownCard/EditableMarkdownCard.tsx} +5 -5
  171. package/src/containers/EditableMarkdownCard/index.ts +6 -0
  172. package/src/containers/{MarkdownContainer/MarkdownContainer.stories.tsx → MarkdownArticle/MarkdownArticle.stories.tsx} +3 -3
  173. package/src/containers/{MarkdownContainer/MarkdownContainer.tsx → MarkdownArticle/MarkdownArticle.tsx} +2 -2
  174. package/src/containers/MarkdownArticle/index.ts +6 -0
  175. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +2 -2
  176. package/src/containers/MarkdownCard/MarkdownCard.tsx +0 -1
  177. package/src/containers/MarkdownCard/index.ts +0 -1
  178. package/src/containers/index.ts +3 -5
  179. package/src/hooks/useLinkQuery.ts +9 -26
  180. package/src/index.ts +2 -8
  181. package/src/meta.ts +4 -1
  182. package/src/operations/create-markdown.ts +2 -3
  183. package/src/operations/create.conversations.json +1 -1
  184. package/src/operations/create.test.ts +4 -5
  185. package/src/operations/create.ts +2 -3
  186. package/src/operations/index.ts +0 -2
  187. package/src/operations/open.ts +2 -2
  188. package/src/operations/scroll-to-anchor.ts +2 -3
  189. package/src/operations/set-view-mode.ts +2 -3
  190. package/src/operations/update-markdown.ts +2 -2
  191. package/src/operations/update.conversations.json +1 -1
  192. package/src/operations/update.test.ts +4 -5
  193. package/src/plugin.ts +11 -0
  194. package/src/testing.ts +5 -3
  195. package/src/types/Markdown.ts +5 -0
  196. package/src/types/{capabilities.ts → MarkdownCapabilities.ts} +12 -12
  197. package/src/types/MarkdownEvents.ts +14 -0
  198. package/src/{operations/definitions.ts → types/MarkdownOperation.ts} +3 -1
  199. package/src/types/index.ts +3 -2
  200. package/src/util.tsx +1 -1
  201. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  202. package/dist/lib/browser/chunk-DNSKDWUL.mjs +0 -156
  203. package/dist/lib/browser/chunk-DNSKDWUL.mjs.map +0 -7
  204. package/dist/lib/browser/chunk-SW6IK2GJ.mjs +0 -124
  205. package/dist/lib/browser/chunk-SW6IK2GJ.mjs.map +0 -7
  206. package/dist/lib/browser/create-SRADQOTE.mjs.map +0 -7
  207. package/dist/lib/browser/create-markdown-A2ERCEOZ.mjs.map +0 -7
  208. package/dist/lib/browser/index.mjs.map +0 -7
  209. package/dist/lib/browser/meta.json +0 -1
  210. package/dist/lib/browser/open-ANTKMST5.mjs.map +0 -7
  211. package/dist/lib/browser/operations/index.mjs +0 -13
  212. package/dist/lib/browser/operations/index.mjs.map +0 -7
  213. package/dist/lib/browser/scroll-to-anchor-4RJ6MQ7I.mjs.map +0 -7
  214. package/dist/lib/browser/set-view-mode-2S7KKY7C.mjs +0 -25
  215. package/dist/lib/browser/set-view-mode-2S7KKY7C.mjs.map +0 -7
  216. package/dist/lib/browser/types/index.mjs +0 -15
  217. package/dist/lib/browser/update-markdown-CPM5KOQW.mjs.map +0 -7
  218. package/dist/lib/node-esm/blueprints/index.mjs +0 -51
  219. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  220. package/dist/lib/node-esm/chunk-MWYFGI2J.mjs +0 -157
  221. package/dist/lib/node-esm/chunk-MWYFGI2J.mjs.map +0 -7
  222. package/dist/lib/node-esm/chunk-ZE6QJ4S5.mjs +0 -125
  223. package/dist/lib/node-esm/chunk-ZE6QJ4S5.mjs.map +0 -7
  224. package/dist/lib/node-esm/create-6JGQPPQ6.mjs +0 -30
  225. package/dist/lib/node-esm/create-6JGQPPQ6.mjs.map +0 -7
  226. package/dist/lib/node-esm/create-markdown-KXSM2I2M.mjs +0 -22
  227. package/dist/lib/node-esm/create-markdown-KXSM2I2M.mjs.map +0 -7
  228. package/dist/lib/node-esm/index.mjs +0 -136
  229. package/dist/lib/node-esm/index.mjs.map +0 -7
  230. package/dist/lib/node-esm/meta.json +0 -1
  231. package/dist/lib/node-esm/open-GB6HNBHS.mjs +0 -21
  232. package/dist/lib/node-esm/open-GB6HNBHS.mjs.map +0 -7
  233. package/dist/lib/node-esm/operations/index.mjs +0 -14
  234. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  235. package/dist/lib/node-esm/scroll-to-anchor-UABP74RR.mjs +0 -49
  236. package/dist/lib/node-esm/scroll-to-anchor-UABP74RR.mjs.map +0 -7
  237. package/dist/lib/node-esm/set-view-mode-JEDC5ZL7.mjs +0 -26
  238. package/dist/lib/node-esm/set-view-mode-JEDC5ZL7.mjs.map +0 -7
  239. package/dist/lib/node-esm/types/index.mjs +0 -16
  240. package/dist/lib/node-esm/update-markdown-AXLYHK6S.mjs +0 -45
  241. package/dist/lib/node-esm/update-markdown-AXLYHK6S.mjs.map +0 -7
  242. package/dist/types/src/containers/MarkdownCard/MarkdownEditableCard.d.ts.map +0 -1
  243. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +0 -1
  244. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +0 -1
  245. package/dist/types/src/containers/MarkdownContainer/index.d.ts +0 -3
  246. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +0 -1
  247. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  248. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  249. package/dist/types/src/types/events.d.ts +0 -5
  250. package/dist/types/src/types/events.d.ts.map +0 -1
  251. package/src/containers/MarkdownContainer/index.ts +0 -6
  252. package/src/types/events.ts +0 -14
  253. /package/dist/lib/{browser/types/index.mjs.map → neutral/MarkdownPlugin.mjs.map} +0 -0
  254. /package/dist/lib/{node-esm/types → neutral/blueprints}/index.mjs.map +0 -0
@@ -8,7 +8,7 @@ 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/testing';
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';
@@ -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
 
@@ -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}
@@ -13,27 +13,27 @@ import { Text } from '@dxos/schema';
13
13
  import { MarkdownEditor, MarkdownEditorProvider } from '#components';
14
14
  import { Markdown } from '#types';
15
15
 
16
- export type MarkdownEditableCardProps = { subject: Markdown.Document | Text.Text };
16
+ export type EditableMarkdownCardProps = { subject: Markdown.Document | Text.Text };
17
17
 
18
18
  /**
19
19
  * Full-bleed editable variant of {@link MarkdownCard}. Activated by the host
20
20
  * passing `editable: true` on the card surface data (e.g. plugin-board cells).
21
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
22
+ * so it stays self-contained inside the card; the regular MarkdownArticle
23
23
  * remains the canonical surface for full article views.
24
24
  */
25
- export const MarkdownEditableCard = ({ subject }: MarkdownEditableCardProps) => {
25
+ export const EditableMarkdownCard = ({ subject }: EditableMarkdownCardProps) => {
26
26
  const id = Obj.getDXN(subject).toString();
27
27
  const [docContent] = useObject(Obj.instanceOf(Markdown.Document, subject) ? subject.content : undefined, 'content');
28
28
  const [textContent] = useObject(Obj.instanceOf(Text.Text, subject) ? subject : undefined, 'content');
29
29
  const initialValue = docContent ?? textContent;
30
30
 
31
31
  return (
32
- <Card.Section classNames='col-span-3 min-h-0'>
32
+ <Card.Section classNames='overflow-hidden'>
33
33
  <MarkdownEditorProvider id={id} object={subject} viewMode='source'>
34
34
  {(editorRootProps) => (
35
35
  <Editor.Root {...editorRootProps}>
36
- <MarkdownEditor.Content initialValue={initialValue} />
36
+ <MarkdownEditor.Content compact initialValue={initialValue} />
37
37
  </Editor.Root>
38
38
  )}
39
39
  </MarkdownEditorProvider>
@@ -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';
@@ -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/testing';
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';
@@ -66,7 +66,7 @@ const DefaultStory = () => {
66
66
  };
67
67
 
68
68
  const meta = {
69
- title: 'plugins/plugin-markdown/containers/MarkdownContainer',
69
+ title: 'plugins/plugin-markdown/containers/MarkdownArticle',
70
70
  render: DefaultStory,
71
71
  decorators: [
72
72
  withLayout({ layout: 'column' }),
@@ -26,7 +26,7 @@ import {
26
26
  import { useLinkQuery } from '#hooks';
27
27
  import { Markdown, MarkdownCapabilities, type MarkdownPluginState } from '#types';
28
28
 
29
- export type MarkdownContainerProps = AppSurface.ObjectArticleProps<
29
+ export type MarkdownArticleProps = AppSurface.ObjectArticleProps<
30
30
  Markdown.Document | Text.Text,
31
31
  {
32
32
  id: string;
@@ -37,7 +37,7 @@ export type MarkdownContainerProps = AppSurface.ObjectArticleProps<
37
37
  Pick<MarkdownEditorContentProps, 'editorStateStore'>
38
38
  >;
39
39
 
40
- export const MarkdownContainer = forwardRef<HTMLDivElement, MarkdownContainerProps>(
40
+ export const MarkdownArticle = forwardRef<HTMLDivElement, MarkdownArticleProps>(
41
41
  (
42
42
  { role, subject: object, id, attendableId, settings, extensionProviders, onSelectObject, viewMode, ...props },
43
43
  forwardedRef,
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export { MarkdownArticle, type MarkdownArticleProps } from './MarkdownArticle';
6
+ export { MarkdownArticle as default } from './MarkdownArticle';
@@ -8,8 +8,8 @@ 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/testing';
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';
@@ -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',
@@ -3,4 +3,3 @@
3
3
  //
4
4
 
5
5
  export { MarkdownCard as default } from './MarkdownCard';
6
- export { MarkdownEditableCard } from './MarkdownEditableCard';
@@ -4,10 +4,8 @@
4
4
 
5
5
  import { type ComponentType, lazy } from 'react';
6
6
 
7
- export type { MarkdownContainerProps } from './MarkdownContainer';
7
+ export type { MarkdownArticleProps } from './MarkdownArticle';
8
8
 
9
9
  export const MarkdownCard: ComponentType<any> = lazy(() => import('./MarkdownCard'));
10
- export const MarkdownEditableCard: ComponentType<any> = lazy(() =>
11
- import('./MarkdownCard').then((m) => ({ default: m.MarkdownEditableCard })),
12
- );
13
- export const MarkdownContainer: ComponentType<any> = lazy(() => import('./MarkdownContainer'));
10
+ export const EditableMarkdownCard: ComponentType<any> = lazy(() => import('./EditableMarkdownCard'));
11
+ export const MarkdownArticle: ComponentType<any> = lazy(() => import('./MarkdownArticle'));
@@ -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,14 +2,8 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Plugin } from '@dxos/app-framework';
6
-
7
- import { meta } from './meta';
8
-
9
- export { MarkdownCapabilities, MarkdownEvents } from './types';
10
-
5
+ export * from './blueprints';
11
6
  export * from './meta';
7
+ export * from './operations';
12
8
  export * from './types';
13
9
  export * from './util';
14
-
15
- export const MarkdownPlugin = Plugin.lazy(meta, () => import('#plugin'));
package/src/meta.ts CHANGED
@@ -15,5 +15,8 @@ export const meta: Plugin.Meta = {
15
15
  icon: 'ph--text-aa--regular',
16
16
  iconHue: 'indigo',
17
17
  source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',
18
- screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],
18
+ screenshots: [
19
+ 'https://customer-5rxcjpyab08avpmn.cloudflarestream.com/cdf2656365bb1fd327c1fc2105d75e5a/iframe?poster=https%3A%2F%2Fcustomer-5rxcjpyab08avpmn.cloudflarestream.com%2Fcdf2656365bb1fd327c1fc2105d75e5a%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600',
20
+ 'https://dxos.network/plugin-details-markdown-dark.png',
21
+ ],
19
22
  };
@@ -6,10 +6,9 @@ import * as Effect from 'effect/Effect';
6
6
 
7
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 }),