@dxos/plugin-markdown 0.8.4-main.bc674ce → 0.8.4-main.bcb3aa67d6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/dist/lib/browser/MarkdownSettings-5AD3X3II.mjs +124 -0
  2. package/dist/lib/browser/MarkdownSettings-5AD3X3II.mjs.map +7 -0
  3. package/dist/lib/browser/blueprints/index.mjs +47 -4
  4. package/dist/lib/browser/blueprints/index.mjs.map +4 -4
  5. package/dist/lib/browser/chunk-46WIDM4R.mjs +98 -0
  6. package/dist/lib/browser/chunk-46WIDM4R.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-GQKARRJU.mjs +158 -0
  8. package/dist/lib/browser/chunk-GQKARRJU.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  10. package/dist/lib/browser/cli/index.mjs +26 -19
  11. package/dist/lib/browser/cli/index.mjs.map +3 -3
  12. package/dist/lib/browser/create-I7QWPBMS.mjs +30 -0
  13. package/dist/lib/browser/create-I7QWPBMS.mjs.map +7 -0
  14. package/dist/lib/browser/create-markdown-6QQXSF3Q.mjs +22 -0
  15. package/dist/lib/browser/create-markdown-6QQXSF3Q.mjs.map +7 -0
  16. package/dist/lib/browser/index.mjs +586 -85
  17. package/dist/lib/browser/index.mjs.map +4 -4
  18. package/dist/lib/browser/meta.json +1 -1
  19. package/dist/lib/browser/open-NSBN4NKR.mjs +21 -0
  20. package/dist/lib/browser/open-NSBN4NKR.mjs.map +7 -0
  21. package/dist/lib/browser/operations/index.mjs +14 -0
  22. package/dist/lib/browser/operations/index.mjs.map +7 -0
  23. package/dist/lib/browser/scroll-to-anchor-RA5OMQCP.mjs +49 -0
  24. package/dist/lib/browser/scroll-to-anchor-RA5OMQCP.mjs.map +7 -0
  25. package/dist/lib/browser/set-view-mode-75MBU6CB.mjs +26 -0
  26. package/dist/lib/browser/set-view-mode-75MBU6CB.mjs.map +7 -0
  27. package/dist/lib/browser/types/index.mjs +6 -7
  28. package/dist/lib/browser/update-QQJYONAC.mjs +45 -0
  29. package/dist/lib/browser/update-QQJYONAC.mjs.map +7 -0
  30. package/dist/lib/node-esm/MarkdownSettings-ODDM67XG.mjs +125 -0
  31. package/dist/lib/node-esm/MarkdownSettings-ODDM67XG.mjs.map +7 -0
  32. package/dist/lib/node-esm/blueprints/index.mjs +47 -4
  33. package/dist/lib/node-esm/blueprints/index.mjs.map +4 -4
  34. package/dist/lib/node-esm/chunk-4MSJO6IJ.mjs +99 -0
  35. package/dist/lib/node-esm/chunk-4MSJO6IJ.mjs.map +7 -0
  36. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  37. package/dist/lib/node-esm/chunk-QRCQ55W7.mjs +159 -0
  38. package/dist/lib/node-esm/chunk-QRCQ55W7.mjs.map +7 -0
  39. package/dist/lib/node-esm/cli/index.mjs +26 -19
  40. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  41. package/dist/lib/node-esm/create-VJ5SIKYF.mjs +31 -0
  42. package/dist/lib/node-esm/create-VJ5SIKYF.mjs.map +7 -0
  43. package/dist/lib/node-esm/create-markdown-P5KNGLZ5.mjs +23 -0
  44. package/dist/lib/node-esm/create-markdown-P5KNGLZ5.mjs.map +7 -0
  45. package/dist/lib/node-esm/index.mjs +586 -85
  46. package/dist/lib/node-esm/index.mjs.map +4 -4
  47. package/dist/lib/node-esm/meta.json +1 -1
  48. package/dist/lib/node-esm/open-U3T6IVHN.mjs +22 -0
  49. package/dist/lib/node-esm/open-U3T6IVHN.mjs.map +7 -0
  50. package/dist/lib/node-esm/operations/index.mjs +15 -0
  51. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  52. package/dist/lib/node-esm/scroll-to-anchor-CVM3LVSQ.mjs +50 -0
  53. package/dist/lib/node-esm/scroll-to-anchor-CVM3LVSQ.mjs.map +7 -0
  54. package/dist/lib/node-esm/set-view-mode-WQJBCUXY.mjs +27 -0
  55. package/dist/lib/node-esm/set-view-mode-WQJBCUXY.mjs.map +7 -0
  56. package/dist/lib/node-esm/types/index.mjs +6 -7
  57. package/dist/lib/node-esm/update-24CQM75C.mjs +46 -0
  58. package/dist/lib/node-esm/update-24CQM75C.mjs.map +7 -0
  59. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  60. package/dist/types/src/blueprints/index.d.ts +1 -1
  61. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  62. package/dist/types/src/blueprints/markdown-blueprint.d.ts +3 -20
  63. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/anchor-sort.d.ts +6 -0
  65. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
  66. package/dist/types/src/capabilities/app-graph-serializer.d.ts +5 -0
  67. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -0
  68. package/dist/types/src/capabilities/artifact-definition.d.ts +5 -0
  69. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  70. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  71. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  72. package/dist/types/src/capabilities/index.d.ts +27 -7
  73. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/node.d.ts +4 -0
  75. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  76. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  77. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  78. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  79. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/settings.d.ts +24 -0
  81. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  82. package/dist/types/src/capabilities/state.d.ts +6 -0
  83. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  84. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  85. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +2 -2
  86. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
  87. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +14 -9
  88. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  89. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +2 -2
  90. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  91. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +4 -2
  92. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  93. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +11 -6
  94. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  95. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +4 -6
  96. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  97. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +138 -0
  98. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -0
  99. package/dist/types/src/components/MarkdownSettings/index.d.ts +2 -1
  100. package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -1
  101. package/dist/types/src/components/index.d.ts +3 -8
  102. package/dist/types/src/components/index.d.ts.map +1 -1
  103. package/dist/types/src/{components → containers}/MarkdownCard/MarkdownCard.d.ts +1 -1
  104. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  105. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  106. package/dist/types/src/{components → containers}/MarkdownCard/index.d.ts +0 -1
  107. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
  108. package/dist/types/src/containers/MarkdownCard/snippet.d.ts +15 -0
  109. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
  110. package/dist/types/src/{components → containers/MarkdownContainer}/MarkdownContainer.d.ts +10 -7
  111. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -0
  112. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +99 -0
  113. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -0
  114. package/dist/types/src/containers/MarkdownContainer/index.d.ts +3 -0
  115. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -0
  116. package/dist/types/src/containers/index.d.ts +5 -0
  117. package/dist/types/src/containers/index.d.ts.map +1 -0
  118. package/dist/types/src/hooks/index.d.ts +0 -1
  119. package/dist/types/src/hooks/index.d.ts.map +1 -1
  120. package/dist/types/src/hooks/useExtensions.d.ts +7 -5
  121. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  122. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  123. package/dist/types/src/index.d.ts +1 -0
  124. package/dist/types/src/index.d.ts.map +1 -1
  125. package/dist/types/src/operations/create-markdown.d.ts +5 -0
  126. package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
  127. package/dist/types/src/operations/create.d.ts +5 -0
  128. package/dist/types/src/operations/create.d.ts.map +1 -0
  129. package/dist/types/src/operations/create.test.d.ts.map +1 -0
  130. package/dist/types/src/operations/definitions.d.ts +64 -0
  131. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  132. package/dist/types/src/operations/index.d.ts +4 -0
  133. package/dist/types/src/operations/index.d.ts.map +1 -0
  134. package/dist/types/src/operations/open.d.ts +5 -0
  135. package/dist/types/src/operations/open.d.ts.map +1 -0
  136. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  137. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  138. package/dist/types/src/operations/set-view-mode.d.ts +5 -0
  139. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
  140. package/dist/types/src/operations/update.d.ts +5 -0
  141. package/dist/types/src/operations/update.d.ts.map +1 -0
  142. package/dist/types/src/operations/update.test.d.ts.map +1 -0
  143. package/dist/types/src/translations.d.ts +75 -35
  144. package/dist/types/src/translations.d.ts.map +1 -1
  145. package/dist/types/src/types/Markdown.d.ts +15 -16
  146. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  147. package/dist/types/src/types/Settings.d.ts +16 -0
  148. package/dist/types/src/types/Settings.d.ts.map +1 -0
  149. package/dist/types/src/types/capabilities.d.ts +31 -2
  150. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  151. package/dist/types/src/types/events.d.ts.map +1 -1
  152. package/dist/types/src/types/index.d.ts +2 -3
  153. package/dist/types/src/types/index.d.ts.map +1 -1
  154. package/dist/types/src/util.d.ts +2 -2
  155. package/dist/types/src/util.d.ts.map +1 -1
  156. package/dist/types/tsconfig.tsbuildinfo +1 -1
  157. package/package.json +89 -57
  158. package/src/MarkdownPlugin.tsx +49 -44
  159. package/src/blueprints/index.ts +1 -1
  160. package/src/blueprints/markdown-blueprint.ts +14 -8
  161. package/src/capabilities/{anchor-sort/anchor-sort.ts → anchor-sort.ts} +4 -3
  162. package/src/capabilities/{app-graph-serializer/app-graph-serializer.ts → app-graph-serializer.ts} +14 -9
  163. package/src/capabilities/{artifact-definition/artifact-definition.ts → artifact-definition.ts} +5 -5
  164. package/src/capabilities/blueprint-definition.ts +17 -0
  165. package/src/capabilities/index.ts +13 -7
  166. package/src/capabilities/node.ts +11 -0
  167. package/src/capabilities/operation-handler.ts +16 -0
  168. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +48 -27
  169. package/src/capabilities/{settings/settings.ts → settings.ts} +5 -4
  170. package/src/capabilities/state.ts +47 -0
  171. package/src/cli/plugin.ts +21 -10
  172. package/src/components/MarkdownEditor/FileUpload.tsx +2 -2
  173. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +29 -29
  174. package/src/components/MarkdownEditor/MarkdownEditor.tsx +63 -32
  175. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +24 -17
  176. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +47 -55
  177. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +40 -0
  178. package/src/components/MarkdownSettings/MarkdownSettings.tsx +114 -98
  179. package/src/components/MarkdownSettings/index.ts +3 -1
  180. package/src/components/index.ts +4 -12
  181. package/src/{components → containers}/MarkdownCard/MarkdownCard.stories.tsx +17 -7
  182. package/src/{components → containers}/MarkdownCard/MarkdownCard.tsx +23 -30
  183. package/src/{components → containers}/MarkdownCard/index.ts +0 -2
  184. package/src/containers/MarkdownCard/snippet.ts +75 -0
  185. package/src/{components → containers/MarkdownContainer}/MarkdownContainer.stories.tsx +28 -18
  186. package/src/{components → containers/MarkdownContainer}/MarkdownContainer.tsx +59 -36
  187. package/src/containers/MarkdownContainer/index.ts +6 -0
  188. package/src/containers/index.ts +10 -0
  189. package/src/hooks/index.ts +0 -1
  190. package/src/hooks/useEditorMenuOptions.ts +2 -2
  191. package/src/hooks/useExtensions.tsx +80 -93
  192. package/src/hooks/useLinkQuery.ts +31 -6
  193. package/src/index.ts +2 -0
  194. package/src/meta.ts +1 -1
  195. package/src/operations/create-markdown.ts +21 -0
  196. package/src/operations/create.conversations.json +1 -0
  197. package/src/operations/create.test.ts +98 -0
  198. package/src/operations/create.ts +27 -0
  199. package/src/operations/definitions.ts +119 -0
  200. package/src/operations/index.ts +16 -0
  201. package/src/operations/open.ts +25 -0
  202. package/src/operations/scroll-to-anchor.ts +40 -0
  203. package/src/operations/set-view-mode.ts +25 -0
  204. package/src/operations/update.conversations.json +1 -0
  205. package/src/operations/update.test.ts +215 -0
  206. package/src/operations/update.ts +51 -0
  207. package/src/testing.ts +2 -2
  208. package/src/translations.ts +49 -35
  209. package/src/types/Markdown.ts +18 -25
  210. package/src/types/Settings.ts +28 -0
  211. package/src/types/capabilities.ts +17 -5
  212. package/src/types/events.ts +5 -4
  213. package/src/types/index.ts +3 -4
  214. package/src/util.tsx +5 -5
  215. package/dist/lib/browser/MarkdownCard-WHK3ORP7.mjs +0 -12
  216. package/dist/lib/browser/MarkdownContainer-V7EAADMF.mjs +0 -12
  217. package/dist/lib/browser/anchor-sort-WQ3TL7ZI.mjs +0 -32
  218. package/dist/lib/browser/anchor-sort-WQ3TL7ZI.mjs.map +0 -7
  219. package/dist/lib/browser/app-graph-serializer-ULZUJKOD.mjs +0 -58
  220. package/dist/lib/browser/app-graph-serializer-ULZUJKOD.mjs.map +0 -7
  221. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs +0 -19
  222. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs.map +0 -7
  223. package/dist/lib/browser/chunk-BX73DASG.mjs +0 -702
  224. package/dist/lib/browser/chunk-BX73DASG.mjs.map +0 -7
  225. package/dist/lib/browser/chunk-CUGDX7KA.mjs +0 -8
  226. package/dist/lib/browser/chunk-CUGDX7KA.mjs.map +0 -7
  227. package/dist/lib/browser/chunk-FWQQW6KU.mjs +0 -144
  228. package/dist/lib/browser/chunk-FWQQW6KU.mjs.map +0 -7
  229. package/dist/lib/browser/chunk-JOXYQLKH.mjs +0 -55
  230. package/dist/lib/browser/chunk-JOXYQLKH.mjs.map +0 -7
  231. package/dist/lib/browser/chunk-KDKXFKDN.mjs +0 -104
  232. package/dist/lib/browser/chunk-KDKXFKDN.mjs.map +0 -7
  233. package/dist/lib/browser/chunk-LMO5UVKL.mjs +0 -167
  234. package/dist/lib/browser/chunk-LMO5UVKL.mjs.map +0 -7
  235. package/dist/lib/browser/chunk-S45ULIOG.mjs +0 -101
  236. package/dist/lib/browser/chunk-S45ULIOG.mjs.map +0 -7
  237. package/dist/lib/browser/chunk-WIPSLZ6L.mjs +0 -60
  238. package/dist/lib/browser/chunk-WIPSLZ6L.mjs.map +0 -7
  239. package/dist/lib/browser/operation-resolver-EGCWOQKJ.mjs +0 -53
  240. package/dist/lib/browser/operation-resolver-EGCWOQKJ.mjs.map +0 -7
  241. package/dist/lib/browser/react-surface-SRPLD3ED.mjs +0 -213
  242. package/dist/lib/browser/react-surface-SRPLD3ED.mjs.map +0 -7
  243. package/dist/lib/browser/settings-JY5JE7MI.mjs +0 -35
  244. package/dist/lib/browser/settings-JY5JE7MI.mjs.map +0 -7
  245. package/dist/lib/browser/state-QE7VSJWJ.mjs +0 -29
  246. package/dist/lib/browser/state-QE7VSJWJ.mjs.map +0 -7
  247. package/dist/lib/node-esm/MarkdownCard-WJPLQTFS.mjs +0 -13
  248. package/dist/lib/node-esm/MarkdownCard-WJPLQTFS.mjs.map +0 -7
  249. package/dist/lib/node-esm/MarkdownContainer-LUSMORP2.mjs +0 -13
  250. package/dist/lib/node-esm/MarkdownContainer-LUSMORP2.mjs.map +0 -7
  251. package/dist/lib/node-esm/anchor-sort-G7D5TAI6.mjs +0 -33
  252. package/dist/lib/node-esm/anchor-sort-G7D5TAI6.mjs.map +0 -7
  253. package/dist/lib/node-esm/app-graph-serializer-W5YMQP7P.mjs +0 -59
  254. package/dist/lib/node-esm/app-graph-serializer-W5YMQP7P.mjs.map +0 -7
  255. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs +0 -20
  256. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs.map +0 -7
  257. package/dist/lib/node-esm/chunk-3JYPCC7M.mjs +0 -105
  258. package/dist/lib/node-esm/chunk-3JYPCC7M.mjs.map +0 -7
  259. package/dist/lib/node-esm/chunk-44VJC3QF.mjs +0 -56
  260. package/dist/lib/node-esm/chunk-44VJC3QF.mjs.map +0 -7
  261. package/dist/lib/node-esm/chunk-D4BCFPKK.mjs +0 -703
  262. package/dist/lib/node-esm/chunk-D4BCFPKK.mjs.map +0 -7
  263. package/dist/lib/node-esm/chunk-EYAFC4N7.mjs +0 -145
  264. package/dist/lib/node-esm/chunk-EYAFC4N7.mjs.map +0 -7
  265. package/dist/lib/node-esm/chunk-PRV35A7Z.mjs +0 -168
  266. package/dist/lib/node-esm/chunk-PRV35A7Z.mjs.map +0 -7
  267. package/dist/lib/node-esm/chunk-RQP7G7XW.mjs +0 -61
  268. package/dist/lib/node-esm/chunk-RQP7G7XW.mjs.map +0 -7
  269. package/dist/lib/node-esm/chunk-SDTYEGGL.mjs +0 -102
  270. package/dist/lib/node-esm/chunk-SDTYEGGL.mjs.map +0 -7
  271. package/dist/lib/node-esm/chunk-W3IIKDV5.mjs +0 -10
  272. package/dist/lib/node-esm/chunk-W3IIKDV5.mjs.map +0 -7
  273. package/dist/lib/node-esm/operation-resolver-2HIS2AQZ.mjs +0 -54
  274. package/dist/lib/node-esm/operation-resolver-2HIS2AQZ.mjs.map +0 -7
  275. package/dist/lib/node-esm/react-surface-RONSOJIQ.mjs +0 -214
  276. package/dist/lib/node-esm/react-surface-RONSOJIQ.mjs.map +0 -7
  277. package/dist/lib/node-esm/settings-4UGMPIRY.mjs +0 -36
  278. package/dist/lib/node-esm/settings-4UGMPIRY.mjs.map +0 -7
  279. package/dist/lib/node-esm/state-LXE5XIN4.mjs +0 -30
  280. package/dist/lib/node-esm/state-LXE5XIN4.mjs.map +0 -7
  281. package/dist/types/src/blueprints/functions/create.d.ts +0 -8
  282. package/dist/types/src/blueprints/functions/create.d.ts.map +0 -1
  283. package/dist/types/src/blueprints/functions/create.test.d.ts.map +0 -1
  284. package/dist/types/src/blueprints/functions/index.d.ts +0 -4
  285. package/dist/types/src/blueprints/functions/index.d.ts.map +0 -1
  286. package/dist/types/src/blueprints/functions/open.d.ts +0 -7
  287. package/dist/types/src/blueprints/functions/open.d.ts.map +0 -1
  288. package/dist/types/src/blueprints/functions/update.d.ts +0 -6
  289. package/dist/types/src/blueprints/functions/update.d.ts.map +0 -1
  290. package/dist/types/src/blueprints/functions/update.test.d.ts.map +0 -1
  291. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +0 -5
  292. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +0 -1
  293. package/dist/types/src/capabilities/anchor-sort/index.d.ts +0 -3
  294. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +0 -1
  295. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +0 -5
  296. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +0 -1
  297. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +0 -3
  298. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +0 -1
  299. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +0 -5
  300. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +0 -1
  301. package/dist/types/src/capabilities/artifact-definition/index.d.ts +0 -3
  302. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +0 -1
  303. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -10
  304. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
  305. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -3
  306. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
  307. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  308. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  309. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  310. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  311. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  312. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  313. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  314. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  315. package/dist/types/src/capabilities/settings/index.d.ts +0 -3
  316. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  317. package/dist/types/src/capabilities/settings/settings.d.ts +0 -6
  318. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  319. package/dist/types/src/capabilities/state/index.d.ts +0 -3
  320. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  321. package/dist/types/src/capabilities/state/state.d.ts +0 -5
  322. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  323. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +0 -1
  324. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +0 -1
  325. package/dist/types/src/components/MarkdownCard/index.d.ts.map +0 -1
  326. package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
  327. package/dist/types/src/components/MarkdownContainer.stories.d.ts +0 -59
  328. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
  329. package/dist/types/src/components/Suggestions.stories.d.ts +0 -11
  330. package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
  331. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
  332. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
  333. package/dist/types/src/types/MarkdownAction.d.ts +0 -66
  334. package/dist/types/src/types/MarkdownAction.d.ts.map +0 -1
  335. package/src/blueprints/functions/create.conversations.json +0 -1
  336. package/src/blueprints/functions/create.test.ts +0 -125
  337. package/src/blueprints/functions/create.ts +0 -34
  338. package/src/blueprints/functions/index.ts +0 -7
  339. package/src/blueprints/functions/open.ts +0 -33
  340. package/src/blueprints/functions/update.conversations.json +0 -1
  341. package/src/blueprints/functions/update.test.ts +0 -149
  342. package/src/blueprints/functions/update.ts +0 -38
  343. package/src/capabilities/anchor-sort/index.ts +0 -7
  344. package/src/capabilities/app-graph-serializer/index.ts +0 -7
  345. package/src/capabilities/artifact-definition/index.ts +0 -7
  346. package/src/capabilities/blueprint-definition/blueprint-definition.ts +0 -25
  347. package/src/capabilities/blueprint-definition/index.ts +0 -7
  348. package/src/capabilities/operation-resolver/index.ts +0 -7
  349. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -45
  350. package/src/capabilities/react-surface/index.ts +0 -7
  351. package/src/capabilities/settings/index.ts +0 -7
  352. package/src/capabilities/state/index.ts +0 -7
  353. package/src/capabilities/state/state.ts +0 -31
  354. package/src/components/Suggestions.stories.tsx +0 -215
  355. package/src/hooks/useSelectCurrentThread.tsx +0 -61
  356. package/src/types/MarkdownAction.ts +0 -59
  357. /package/dist/lib/browser/{MarkdownCard-WHK3ORP7.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  358. /package/dist/lib/{browser/MarkdownContainer-V7EAADMF.mjs.map → node-esm/chunk-HSLMI22Q.mjs.map} +0 -0
  359. /package/dist/types/src/{components → containers}/MarkdownCard/MarkdownCard.stories.d.ts +0 -0
  360. /package/dist/types/src/{blueprints/functions → operations}/create.test.d.ts +0 -0
  361. /package/dist/types/src/{blueprints/functions → operations}/update.test.d.ts +0 -0
@@ -5,60 +5,53 @@
5
5
  import React, { useMemo } from 'react';
6
6
 
7
7
  import { Obj } from '@dxos/echo';
8
- import { useTranslation } from '@dxos/react-ui';
9
- import { Card } from '@dxos/react-ui-mosaic';
8
+ import { Card, useTranslation } from '@dxos/react-ui';
10
9
  import { Text } from '@dxos/schema';
11
10
 
12
- import { meta } from '../../meta';
13
- import { Markdown } from '../../types';
14
- import { getContentSnippet, getFallbackName } from '../../util';
15
- import { MarkdownEditor } from '../MarkdownEditor';
11
+ import { MarkdownEditor } from '#components';
12
+ import { meta } from '#meta';
13
+ import { Markdown } from '#types';
14
+ import { getContentSnippet } from '../../util';
15
+
16
+ import { snippet as snippetExtension } from './snippet';
16
17
 
17
18
  export type MarkdownCardProps = { subject: Markdown.Document | Text.Text };
18
19
 
19
20
  export const MarkdownCard = ({ subject }: MarkdownCardProps) => {
20
21
  const { t } = useTranslation(meta.id);
21
22
  const snippet = useMemo(() => getSnippet(subject), [subject]);
23
+ const extensions = useMemo(() => [snippetExtension({ height: 240, scale: 0.8 })], []);
22
24
  const info = getInfo(subject);
23
25
 
24
26
  return (
25
27
  <Card.Content>
26
28
  {snippet && (
27
- <Card.Row className='max-h-[300px] overflow-hidden'>
28
- <MarkdownEditor.Root id={subject.id} viewMode='readonly'>
29
- <MarkdownEditor.Content initialValue={snippet} slots={{}} classNames='!bg-transparent' />
29
+ <Card.Section className='px-1'>
30
+ <MarkdownEditor.Root id={subject.id} viewMode='readonly' extensions={extensions}>
31
+ <MarkdownEditor.Content initialValue={snippet} slots={{ content: { className: 'm-0' } }} />
30
32
  </MarkdownEditor.Root>
31
- </Card.Row>
33
+ </Card.Section>
32
34
  )}
33
- <Card.Row>
34
- <Card.Text classNames='text-xs text-description'>
35
- {info.words} {t('words label', { count: info.words })}
35
+ <Card.Section>
36
+ <Card.Text classNames='px-1.5 text-xs text-description'>
37
+ {info.words} {t('words.label', { count: info.words })}
36
38
  </Card.Text>
37
- </Card.Row>
39
+ </Card.Section>
38
40
  </Card.Content>
39
41
  );
40
42
  };
41
43
 
42
- const getInfo = (subject: Markdown.Document | Text.Text) => {
43
- const text = (Obj.instanceOf(Markdown.Document, subject) ? subject.content?.target?.content : subject.content) ?? '';
44
- return { words: text.split(' ').length };
45
- };
44
+ const MAX_LINES = 5;
46
45
 
47
- // TODO(burdon): Factor out.
48
- const getTitle = (subject: Markdown.Document | Text.Text, fallback: string) => {
46
+ const getSnippet = (subject: Markdown.Document | Text.Text, fallback?: string) => {
49
47
  if (Obj.instanceOf(Markdown.Document, subject)) {
50
- const title = Obj.getLabel(subject);
51
- return title ?? getFallbackName(subject.content?.target?.content ?? fallback);
48
+ return Obj.getDescription(subject) || getContentSnippet(subject.content?.target?.content ?? fallback, MAX_LINES);
52
49
  } else if (Obj.instanceOf(Text.Text, subject)) {
53
- return getFallbackName(subject.content);
50
+ return getContentSnippet(subject.content ?? fallback, MAX_LINES);
54
51
  }
55
52
  };
56
53
 
57
- // TODO(burdon): Factor out.
58
- const getSnippet = (subject: Markdown.Document | Text.Text, fallback?: string) => {
59
- if (Obj.instanceOf(Markdown.Document, subject)) {
60
- return Obj.getDescription(subject) || getContentSnippet(subject.content?.target?.content ?? fallback);
61
- } else if (Obj.instanceOf(Text.Text, subject)) {
62
- return getContentSnippet(subject.content ?? fallback);
63
- }
54
+ const getInfo = (subject: Markdown.Document | Text.Text) => {
55
+ const text = (Obj.instanceOf(Markdown.Document, subject) ? subject.content?.target?.content : subject.content) ?? '';
56
+ return { words: text.split(' ').length };
64
57
  };
@@ -4,6 +4,4 @@
4
4
 
5
5
  import { MarkdownCard } from './MarkdownCard';
6
6
 
7
- export * from './MarkdownCard';
8
-
9
7
  export default MarkdownCard;
@@ -0,0 +1,75 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type PluginValue, EditorView, ViewPlugin, type ViewUpdate } from '@codemirror/view';
6
+
7
+ export type SnippetOptions = {
8
+ /** Maximum height of the editor in pixels. Content is clipped to whole lines within this height. */
9
+ height: number;
10
+ /** Zoom factor applied to the editor (e.g. 0.5 renders at 50%). @default 1 */
11
+ scale?: number;
12
+ };
13
+
14
+ /**
15
+ * CodeMirror extension for rendering a non-scrollable snippet of editor content.
16
+ * Constrains the editor to the given height, clips to whole line boundaries,
17
+ * and disables scrolling entirely.
18
+ * Uses requestMeasure to read post-layout heights and lineBlockAtHeight to handle
19
+ * varying line heights from headings and other decorated blocks.
20
+ */
21
+ export const snippet = ({ height, scale = 1 }: SnippetOptions) => {
22
+ // Internal height is divided by scale so the visible area matches the requested height.
23
+ const internalHeight = Math.round(height / scale);
24
+
25
+ const clipPlugin = ViewPlugin.fromClass(
26
+ class SnippetPlugin implements PluginValue {
27
+ private clipHeight = 0;
28
+
29
+ update(update: ViewUpdate) {
30
+ update.view.requestMeasure({
31
+ // key dedupliactes concurrent requests within the same animation frame.
32
+ key: this,
33
+ read: (view) => {
34
+ const containerHeight = view.dom.clientHeight;
35
+ if (containerHeight === 0) {
36
+ return 0;
37
+ }
38
+ // Find the block (line) at the very bottom of the visible area.
39
+ const block = view.lineBlockAtHeight(containerHeight - 1);
40
+ // If the block overflows the container, clip at the block's top edge.
41
+ return block.top + block.height > containerHeight ? block.top : containerHeight;
42
+ },
43
+ write: (clipHeight, view) => {
44
+ if (clipHeight > 0 && clipHeight !== this.clipHeight) {
45
+ this.clipHeight = clipHeight;
46
+ view.dom.style.maxHeight = `${clipHeight}px`;
47
+ }
48
+ },
49
+ });
50
+ }
51
+ },
52
+ );
53
+
54
+ return [
55
+ clipPlugin,
56
+ EditorView.theme({
57
+ '&': {
58
+ maxHeight: `${internalHeight}px`,
59
+ overflow: 'hidden',
60
+ ...(scale !== 1 && { zoom: `${scale}` }),
61
+ },
62
+ '.cm-content': {
63
+ whiteSpace: 'pre',
64
+ margin: '0',
65
+ padding: '0',
66
+ },
67
+ '.cm-line': {
68
+ padding: '0',
69
+ },
70
+ '.cm-scroller': {
71
+ overflow: 'hidden !important',
72
+ },
73
+ }),
74
+ ];
75
+ };
@@ -6,30 +6,42 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import * as Effect from 'effect/Effect';
7
7
  import React, { useMemo } from 'react';
8
8
 
9
- import { Common } from '@dxos/app-framework';
10
- import { Surface, useOperationInvoker } from '@dxos/app-framework/react';
9
+ import { Capability, Plugin } from '@dxos/app-framework';
11
10
  import { withPluginManager } from '@dxos/app-framework/testing';
11
+ import { Surface, useOperationInvoker } from '@dxos/app-framework/ui';
12
+ import { AppActivationEvents, LayoutOperation } from '@dxos/app-toolkit';
12
13
  import { Obj, Query } from '@dxos/echo';
13
14
  import { ClientPlugin } from '@dxos/plugin-client';
15
+ import { initializeIdentity } from '@dxos/plugin-client/testing';
14
16
  import { PreviewPlugin } from '@dxos/plugin-preview';
15
17
  import { StorybookPlugin, corePlugins } from '@dxos/plugin-testing';
16
18
  import { faker } from '@dxos/random';
17
19
  import { useQuery, useSpace } from '@dxos/react-client/echo';
18
20
  import { useAsyncEffect } from '@dxos/react-ui';
19
- import { withLayout, withTheme } from '@dxos/react-ui/testing';
21
+ import { withLayout } from '@dxos/react-ui/testing';
20
22
  import { useAttentionAttributes } from '@dxos/react-ui-attention';
21
23
  import { Text } from '@dxos/schema';
22
24
  import { type ValueGenerator, createObjectFactory } from '@dxos/schema/testing';
23
25
  import { Organization, Person } from '@dxos/types';
24
26
 
25
- import { MarkdownPlugin } from '../MarkdownPlugin';
26
- import { translations } from '../translations';
27
- import { Markdown } from '../types';
27
+ import { MarkdownPlugin } from '../../MarkdownPlugin';
28
+ import { translations } from '../../translations';
29
+ import { Markdown, MarkdownCapabilities, MarkdownEvents } from '#types';
28
30
 
29
31
  faker.seed(1);
30
32
 
31
33
  const generator: ValueGenerator = faker as any;
32
34
 
35
+ /** Minimal plugin that contributes an empty Extensions capability for stories. */
36
+ const MarkdownExtensionsPlugin = Plugin.define({ id: 'story-markdown-extensions', name: 'Story Extensions' }).pipe(
37
+ Plugin.addModule({
38
+ id: 'extensions',
39
+ activatesOn: MarkdownEvents.SetupExtensions,
40
+ activate: () => Effect.succeed(Capability.contributes(MarkdownCapabilities.Extensions, [])),
41
+ }),
42
+ Plugin.make,
43
+ );
44
+
33
45
  const DefaultStory = () => {
34
46
  const { invokePromise } = useOperationInvoker();
35
47
  const space = useSpace();
@@ -40,45 +52,43 @@ const DefaultStory = () => {
40
52
 
41
53
  useAsyncEffect(async () => {
42
54
  if (space) {
43
- await invokePromise(Common.LayoutOperation.SwitchWorkspace, { subject: space.id });
55
+ await invokePromise(LayoutOperation.SwitchWorkspace, { subject: space.id });
44
56
  }
45
57
  }, [space, invokePromise]);
46
58
 
47
59
  return (
48
60
  <div className='contents' {...attentionAttrs}>
49
- <Surface role='article' data={data} limit={1} />
61
+ <Surface.Surface role='article' data={data} limit={1} />
50
62
  </div>
51
63
  );
52
64
  };
53
65
 
54
66
  const meta = {
55
- title: 'plugins/plugin-markdown/MarkdownContainer',
67
+ title: 'plugins/plugin-markdown/containers/MarkdownContainer',
56
68
  render: DefaultStory,
57
69
  decorators: [
58
- withTheme,
59
70
  withLayout({ layout: 'column' }),
60
71
  withPluginManager<{ title?: string; content?: string }>((context) => ({
72
+ setupEvents: [AppActivationEvents.SetupSettings, MarkdownEvents.SetupExtensions],
61
73
  plugins: [
62
74
  ...corePlugins(),
63
75
  StorybookPlugin({}),
76
+ MarkdownExtensionsPlugin(),
64
77
  ClientPlugin({
65
78
  types: [Markdown.Document, Text.Text, Person.Person, Organization.Organization],
66
79
  onClientInitialized: ({ client }) =>
67
80
  Effect.gen(function* () {
68
- yield* Effect.promise(() => client.halo.createIdentity());
69
- yield* Effect.promise(() => client.spaces.waitUntilReady());
70
- yield* Effect.promise(() => client.spaces.default.waitUntilReady());
81
+ const { personalSpace } = yield* initializeIdentity(client);
71
82
 
72
- const space = client.spaces.default;
73
- const createObjects = createObjectFactory(space.db, generator);
83
+ const createObjects = createObjectFactory(personalSpace.db, generator);
74
84
  yield* Effect.promise(() => createObjects([{ type: Organization.Organization, count: 10 }]));
75
85
 
76
- const queue = space.queues.create();
86
+ const queue = personalSpace.queues.create();
77
87
  const kai = Obj.make(Person.Person, { fullName: 'Kai' });
78
88
  const dxos = Obj.make(Organization.Organization, { name: 'DXOS' });
79
89
  yield* Effect.promise(() => queue.append([kai, dxos]));
80
90
 
81
- space.db.add(
91
+ personalSpace.db.add(
82
92
  Markdown.make({
83
93
  name: context.args.title ?? 'Testing',
84
94
  content: [
@@ -95,7 +105,7 @@ const meta = {
95
105
  }),
96
106
  );
97
107
 
98
- yield* Effect.promise(() => space.db.flush({ indexes: true }));
108
+ yield* Effect.promise(() => personalSpace.db.flush({ indexes: true }));
99
109
  }),
100
110
  }),
101
111
 
@@ -4,43 +4,45 @@
4
4
 
5
5
  import { type Extension } from '@codemirror/state';
6
6
  import { Atom } from '@effect-atom/atom-react';
7
- import React, { forwardRef, useMemo } from 'react';
7
+ import React, { forwardRef, useCallback, useMemo } from 'react';
8
8
 
9
- import { Common } from '@dxos/app-framework';
10
- import { type SurfaceComponentProps, useAppGraph, useCapabilities } from '@dxos/app-framework/react';
9
+ import { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';
10
+ import { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';
11
+ import { type ObjectSurfaceProps } from '@dxos/app-toolkit/ui';
12
+ import { useAppGraph } from '@dxos/app-toolkit/ui';
11
13
  import { Obj } from '@dxos/echo';
12
14
  import { useActionRunner } from '@dxos/plugin-graph';
13
15
  import { useObject } from '@dxos/react-client/echo';
16
+ import { Panel } from '@dxos/react-ui';
14
17
  import { type SelectionManager } from '@dxos/react-ui-attention';
15
- import { Layout } from '@dxos/react-ui-mosaic';
16
18
  import { Text } from '@dxos/schema';
17
19
 
18
- import { useLinkQuery } from '../hooks';
19
- import { Markdown, MarkdownCapabilities, type MarkdownPluginState } from '../types';
20
+ import { MarkdownEditor, type MarkdownEditorContentProps, type MarkdownEditorRootProps } from '#components';
21
+ import { useLinkQuery } from '#hooks';
22
+ import { Markdown, MarkdownCapabilities, type MarkdownPluginState } from '#types';
20
23
 
21
- import { MarkdownEditor, type MarkdownEditorContentProps, type MarkdownEditorRootProps } from './MarkdownEditor';
22
-
23
- export type MarkdownContainerProps = SurfaceComponentProps<
24
+ export type MarkdownContainerProps = ObjectSurfaceProps<
24
25
  Markdown.Document | Text.Text,
25
26
  {
26
27
  id: string;
27
28
  settings: Markdown.Settings;
28
29
  selectionManager?: SelectionManager;
29
- } & Pick<MarkdownEditorRootProps, 'viewMode' | 'onViewModeChange'> &
30
- Pick<MarkdownEditorContentProps, 'editorStateStore'> &
31
- Pick<MarkdownPluginState, 'extensionProviders'>
30
+ } & Pick<MarkdownPluginState, 'extensionProviders'> &
31
+ Pick<MarkdownEditorRootProps, 'viewMode' | 'onSelectObject' | 'onViewModeChange'> &
32
+ Pick<MarkdownEditorContentProps, 'editorStateStore'>
32
33
  >;
33
34
 
34
35
  export const MarkdownContainer = forwardRef<HTMLDivElement, MarkdownContainerProps>(
35
- ({ role, subject: object, id, settings, extensionProviders, ...props }, forwardedRef) => {
36
+ (
37
+ { role, subject: object, id, attendableId, settings, extensionProviders, onSelectObject, ...props },
38
+ forwardedRef,
39
+ ) => {
36
40
  const db = Obj.isObject(object) ? Obj.getDatabase(object) : undefined;
37
- const attendableId = Obj.instanceOf(Markdown.Document, object) ? Obj.getDXN(object).toString() : undefined;
38
41
  const [docContent] = useObject(Obj.instanceOf(Markdown.Document, object) ? object.content : undefined, 'content');
39
42
  const [textContent] = useObject(Obj.instanceOf(Text.Text, object) ? object : undefined, 'content');
40
43
  const initialValue = docContent ?? textContent;
41
44
 
42
45
  // Extensions from other plugins.
43
- // TODO(burdon): Document MarkdownPluginState.extensionProviders
44
46
  const otherExtensionProviders = useCapabilities(MarkdownCapabilities.Extensions);
45
47
  const extensions = useMemo<Extension[]>(() => {
46
48
  if (!Obj.instanceOf(Markdown.Document, object) && !Obj.instanceOf(Text.Text, object)) {
@@ -65,15 +67,15 @@ export const MarkdownContainer = forwardRef<HTMLDivElement, MarkdownContainerPro
65
67
  const runAction = useActionRunner();
66
68
  const customActions = useMemo(() => {
67
69
  return Atom.make((get) => {
68
- const actions = get(graph.actions(id));
70
+ const actions = get(graph.actions(attendableId ?? id));
69
71
  const nodes = actions.filter((action) => action.properties.disposition === 'toolbar');
70
- const edges = nodes.map((node) => ({ source: 'root', target: node.id }));
72
+ const edges = nodes.map((node) => ({ source: 'root', target: node.id, relation: 'child' }));
71
73
  return { nodes, edges };
72
74
  });
73
75
  }, [graph]);
74
76
 
75
77
  // File upload.
76
- const [upload] = useCapabilities(Common.Capability.FileUploader);
78
+ const [upload] = useCapabilities(AppCapabilities.FileUploader);
77
79
  const handleFileUpload = useMemo(() => {
78
80
  if (!db || !upload) {
79
81
  return undefined;
@@ -85,27 +87,48 @@ export const MarkdownContainer = forwardRef<HTMLDivElement, MarkdownContainerPro
85
87
  // Query for @ refs.
86
88
  const handleLinkQuery = useLinkQuery(db);
87
89
 
90
+ // Open linked objects.
91
+ const { invokePromise } = useOperationInvoker();
92
+ const handleSelectObject = useCallback(
93
+ (targetId: string) => {
94
+ if (onSelectObject) {
95
+ onSelectObject(targetId);
96
+ } else {
97
+ void invokePromise?.(LayoutOperation.Open, {
98
+ subject: [targetId],
99
+ pivotId: attendableId,
100
+ });
101
+ }
102
+ },
103
+ [onSelectObject, invokePromise, object, id],
104
+ );
105
+
88
106
  return (
89
- <Layout.Main toolbar={settings.toolbar} ref={forwardedRef}>
90
- <MarkdownEditor.Root
91
- id={attendableId ?? id}
92
- object={object}
93
- extensions={extensions}
94
- settings={settings}
95
- onAction={runAction}
96
- onFileUpload={handleFileUpload}
97
- onLinkQuery={handleLinkQuery}
98
- {...props}
99
- >
107
+ <MarkdownEditor.Root
108
+ id={id}
109
+ attendableId={attendableId}
110
+ object={object}
111
+ compact={role !== 'article'}
112
+ extensions={extensions}
113
+ settings={settings}
114
+ onAction={runAction}
115
+ onFileUpload={handleFileUpload}
116
+ onLinkQuery={handleLinkQuery}
117
+ onSelectObject={handleSelectObject}
118
+ {...props}
119
+ >
120
+ <Panel.Root role={role} ref={forwardedRef}>
100
121
  {settings.toolbar && (
101
- <MarkdownEditor.Toolbar id={attendableId ?? id} role={role} customActions={customActions} />
122
+ <Panel.Toolbar classNames='bg-toolbar-surface'>
123
+ <MarkdownEditor.Toolbar classNames='dx-document' customActions={customActions} />
124
+ </Panel.Toolbar>
102
125
  )}
103
- <MarkdownEditor.Content initialValue={initialValue} scrollPastEnd={role === 'article'} />
104
- <MarkdownEditor.Blocks />
105
- </MarkdownEditor.Root>
106
- </Layout.Main>
126
+ <Panel.Content>
127
+ <MarkdownEditor.Content initialValue={initialValue} />
128
+ <MarkdownEditor.Blocks />
129
+ </Panel.Content>
130
+ </Panel.Root>
131
+ </MarkdownEditor.Root>
107
132
  );
108
133
  },
109
134
  );
110
-
111
- export default MarkdownContainer;
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export { MarkdownContainer, type MarkdownContainerProps } from './MarkdownContainer';
6
+ export { MarkdownContainer as default } from './MarkdownContainer';
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type ComponentType, lazy } from 'react';
6
+
7
+ export type { MarkdownContainerProps } from './MarkdownContainer';
8
+
9
+ export const MarkdownCard: ComponentType<any> = lazy(() => import('./MarkdownCard'));
10
+ export const MarkdownContainer: ComponentType<any> = lazy(() => import('./MarkdownContainer'));
@@ -5,4 +5,3 @@
5
5
  export * from './useEditorMenuOptions';
6
6
  export * from './useExtensions';
7
7
  export * from './useLinkQuery';
8
- export * from './useSelectCurrentThread';
@@ -15,7 +15,7 @@ import {
15
15
  } from '@dxos/react-ui-editor';
16
16
  import { Domino } from '@dxos/ui';
17
17
 
18
- import { meta } from '../meta';
18
+ import { meta } from '#meta';
19
19
 
20
20
  export type UseEditorMenuOptionsProps = {
21
21
  editorView?: EditorView;
@@ -56,7 +56,7 @@ export const useEditorMenuOptions = ({
56
56
  content: () => {
57
57
  const pressEl = Domino.of('span').text('Press');
58
58
  const triggerEls = trigger.map((text) =>
59
- Domino.of('span').classNames('mx-1 pli-1.5 pt-[1px] pb-[2px] border border-separator rounded-sm').text(text),
59
+ Domino.of('span').classNames('mx-1 px-1.5 pt-[1px] pb-[2px] border border-separator rounded-xs').text(text),
60
60
  );
61
61
  const forCommandsEl = Domino.of('span').text('for commands.');
62
62
  return Domino.of('div').children(pressEl, ...triggerEls, forCommandsEl).root;