@dxos/plugin-markdown 0.8.3 → 0.8.4-main.1da679c

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 (271) hide show
  1. package/dist/lib/browser/{MarkdownPreview-F4PYFW5L.mjs → MarkdownCard-JLUQITYK.mjs} +18 -18
  2. package/dist/lib/browser/MarkdownCard-JLUQITYK.mjs.map +7 -0
  3. package/dist/lib/browser/{MarkdownContainer-EFWQ6DHD.mjs → MarkdownContainer-OZ5DHEIA.mjs} +282 -302
  4. package/dist/lib/browser/MarkdownContainer-OZ5DHEIA.mjs.map +7 -0
  5. package/dist/lib/browser/{anchor-sort-BMAN2ABT.mjs → anchor-sort-SUD373SW.mjs} +8 -8
  6. package/dist/lib/browser/anchor-sort-SUD373SW.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-EI6TEHRQ.mjs → app-graph-serializer-GH7JJZB7.mjs} +16 -17
  8. package/dist/lib/browser/app-graph-serializer-GH7JJZB7.mjs.map +7 -0
  9. package/dist/lib/browser/blueprint-definition-JSNGFAZB.mjs +11 -0
  10. package/dist/lib/browser/blueprint-definition-JSNGFAZB.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-BEE7VQPU.mjs +78 -0
  12. package/dist/lib/browser/chunk-BEE7VQPU.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-LXSRQPEP.mjs → chunk-LAVZ2W6X.mjs} +9 -10
  14. package/dist/lib/browser/chunk-LAVZ2W6X.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-ODB2PTBP.mjs +28 -0
  16. package/dist/lib/browser/chunk-ODB2PTBP.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-OY6CGPOO.mjs +16 -0
  18. package/dist/lib/browser/chunk-OY6CGPOO.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-SQLSKQRQ.mjs +22 -0
  20. package/dist/lib/browser/chunk-SQLSKQRQ.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-UM2GILLR.mjs +102 -0
  22. package/dist/lib/browser/chunk-UM2GILLR.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-D767LUGU.mjs → chunk-Z7P6JGGW.mjs} +14 -12
  24. package/dist/lib/browser/chunk-Z7P6JGGW.mjs.map +7 -0
  25. package/dist/lib/browser/index.mjs +38 -25
  26. package/dist/lib/browser/index.mjs.map +3 -3
  27. package/dist/lib/browser/intent-resolver-SUBIHVU7.mjs +62 -0
  28. package/dist/lib/browser/intent-resolver-SUBIHVU7.mjs.map +7 -0
  29. package/dist/lib/browser/meta.json +1 -1
  30. package/dist/lib/{node-esm/react-surface-YHFOQTVO.mjs → browser/react-surface-JBQHF4GR.mjs} +64 -55
  31. package/dist/lib/browser/react-surface-JBQHF4GR.mjs.map +7 -0
  32. package/dist/lib/browser/{settings-PLH54VC7.mjs → settings-T5ZMC5TH.mjs} +8 -8
  33. package/dist/lib/browser/settings-T5ZMC5TH.mjs.map +7 -0
  34. package/dist/lib/browser/{state-KI6PJ6DT.mjs → state-6QODXCSZ.mjs} +10 -10
  35. package/dist/lib/browser/state-6QODXCSZ.mjs.map +7 -0
  36. package/dist/lib/browser/toolkit-GNADYSGW.mjs +74 -0
  37. package/dist/lib/browser/toolkit-GNADYSGW.mjs.map +7 -0
  38. package/dist/lib/browser/types/index.mjs +6 -14
  39. package/dist/lib/node-esm/{MarkdownPreview-KFDRV4GC.mjs → MarkdownCard-XL5EVSJ7.mjs} +18 -18
  40. package/dist/lib/node-esm/MarkdownCard-XL5EVSJ7.mjs.map +7 -0
  41. package/dist/lib/node-esm/{MarkdownContainer-O3SGMH4G.mjs → MarkdownContainer-Z4I23DPN.mjs} +282 -302
  42. package/dist/lib/node-esm/MarkdownContainer-Z4I23DPN.mjs.map +7 -0
  43. package/dist/lib/node-esm/{anchor-sort-BXL7BE67.mjs → anchor-sort-J2BK2XLZ.mjs} +8 -8
  44. package/dist/lib/node-esm/anchor-sort-J2BK2XLZ.mjs.map +7 -0
  45. package/dist/lib/node-esm/{app-graph-serializer-F7DGNF3G.mjs → app-graph-serializer-LRYCXG7N.mjs} +16 -17
  46. package/dist/lib/node-esm/app-graph-serializer-LRYCXG7N.mjs.map +7 -0
  47. package/dist/lib/node-esm/blueprint-definition-KX3Y5JHC.mjs +12 -0
  48. package/dist/lib/node-esm/blueprint-definition-KX3Y5JHC.mjs.map +7 -0
  49. package/dist/lib/node-esm/chunk-CB2R4YIY.mjs +17 -0
  50. package/dist/lib/node-esm/chunk-CB2R4YIY.mjs.map +7 -0
  51. package/dist/lib/node-esm/chunk-FXILAQ5F.mjs +79 -0
  52. package/dist/lib/node-esm/chunk-FXILAQ5F.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-BWDDFDJY.mjs → chunk-J7A6TUB2.mjs} +14 -12
  54. package/dist/lib/node-esm/chunk-J7A6TUB2.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-KAXL7TWD.mjs +103 -0
  56. package/dist/lib/node-esm/chunk-KAXL7TWD.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-MJZPYYIH.mjs +24 -0
  58. package/dist/lib/node-esm/chunk-MJZPYYIH.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-K26TX5V4.mjs → chunk-O6EXWGGS.mjs} +9 -10
  60. package/dist/lib/node-esm/chunk-O6EXWGGS.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-VCG2U522.mjs +29 -0
  62. package/dist/lib/node-esm/chunk-VCG2U522.mjs.map +7 -0
  63. package/dist/lib/node-esm/index.mjs +38 -25
  64. package/dist/lib/node-esm/index.mjs.map +3 -3
  65. package/dist/lib/node-esm/intent-resolver-YZEGYWGA.mjs +63 -0
  66. package/dist/lib/node-esm/intent-resolver-YZEGYWGA.mjs.map +7 -0
  67. package/dist/lib/node-esm/meta.json +1 -1
  68. package/dist/lib/{browser/react-surface-4B5ELMEW.mjs → node-esm/react-surface-JOXUHXQJ.mjs} +65 -54
  69. package/dist/lib/node-esm/react-surface-JOXUHXQJ.mjs.map +7 -0
  70. package/dist/lib/node-esm/{settings-SIY33P3F.mjs → settings-LGG22OH4.mjs} +8 -8
  71. package/dist/lib/node-esm/settings-LGG22OH4.mjs.map +7 -0
  72. package/dist/lib/node-esm/{state-LLGVRYKL.mjs → state-W3PECOJX.mjs} +10 -10
  73. package/dist/lib/node-esm/state-W3PECOJX.mjs.map +7 -0
  74. package/dist/lib/node-esm/toolkit-ZCFWOGNH.mjs +75 -0
  75. package/dist/lib/node-esm/toolkit-ZCFWOGNH.mjs.map +7 -0
  76. package/dist/lib/node-esm/types/index.mjs +6 -14
  77. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/anchor-sort.d.ts +2 -2
  79. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  80. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -9
  82. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  84. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  85. package/dist/types/src/capabilities/capabilities.d.ts +1 -1
  86. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/index.d.ts +12 -10
  88. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  90. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  92. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/settings.d.ts +1 -1
  94. package/dist/types/src/capabilities/state.d.ts +2 -2
  95. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/toolkit.d.ts +4 -0
  97. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
  98. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +7 -0
  99. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  100. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +10 -0
  101. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  102. package/dist/types/src/components/MarkdownCard/index.d.ts +4 -0
  103. package/dist/types/src/components/MarkdownCard/index.d.ts.map +1 -0
  104. package/dist/types/src/components/MarkdownContainer.d.ts +5 -5
  105. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  106. package/dist/types/src/components/MarkdownContainer.stories.d.ts +51 -4
  107. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  108. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +2 -2
  109. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  110. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +110 -12
  111. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +2 -2
  113. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  114. package/dist/types/src/components/Suggestions.stories.d.ts +3 -3
  115. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/Toolbar.stories.d.ts +44 -7
  117. package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/index.d.ts +1 -1
  119. package/dist/types/src/components/index.d.ts.map +1 -1
  120. package/dist/types/src/events.d.ts.map +1 -1
  121. package/dist/types/src/extensions.d.ts +3 -5
  122. package/dist/types/src/extensions.d.ts.map +1 -1
  123. package/dist/types/src/functions/diff.d.ts +6 -0
  124. package/dist/types/src/functions/diff.d.ts.map +1 -0
  125. package/dist/types/src/functions/index.d.ts +3 -0
  126. package/dist/types/src/functions/index.d.ts.map +1 -0
  127. package/dist/types/src/functions/open.d.ts +7 -0
  128. package/dist/types/src/functions/open.d.ts.map +1 -0
  129. package/dist/types/src/index.d.ts +2 -1
  130. package/dist/types/src/index.d.ts.map +1 -1
  131. package/dist/types/src/meta.d.ts +0 -1
  132. package/dist/types/src/meta.d.ts.map +1 -1
  133. package/dist/types/src/translations.d.ts +36 -80
  134. package/dist/types/src/translations.d.ts.map +1 -1
  135. package/dist/types/src/types/Markdown.d.ts +43 -0
  136. package/dist/types/src/types/Markdown.d.ts.map +1 -0
  137. package/dist/types/src/types/MarkdownAction.d.ts +33 -0
  138. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -0
  139. package/dist/types/src/types/index.d.ts +2 -1
  140. package/dist/types/src/types/index.d.ts.map +1 -1
  141. package/dist/types/src/types/types.d.ts +4 -59
  142. package/dist/types/src/types/types.d.ts.map +1 -1
  143. package/dist/types/src/util.d.ts +12 -3
  144. package/dist/types/src/util.d.ts.map +1 -1
  145. package/dist/types/tsconfig.tsbuildinfo +1 -1
  146. package/package.json +51 -48
  147. package/src/MarkdownPlugin.tsx +22 -13
  148. package/src/capabilities/anchor-sort.ts +3 -3
  149. package/src/capabilities/app-graph-serializer.ts +10 -8
  150. package/src/capabilities/artifact-definition.ts +19 -24
  151. package/src/capabilities/blueprint-definition.ts +39 -0
  152. package/src/capabilities/capabilities.ts +5 -4
  153. package/src/capabilities/index.ts +3 -1
  154. package/src/capabilities/intent-resolver.ts +15 -21
  155. package/src/capabilities/react-surface.tsx +22 -20
  156. package/src/capabilities/settings.ts +3 -3
  157. package/src/capabilities/state.ts +8 -8
  158. package/src/capabilities/toolkit.ts +47 -0
  159. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +79 -0
  160. package/src/components/{MarkdownPreview/MarkdownPreview.tsx → MarkdownCard/MarkdownCard.tsx} +21 -17
  161. package/src/components/MarkdownCard/index.ts +9 -0
  162. package/src/components/MarkdownContainer.stories.tsx +39 -31
  163. package/src/components/MarkdownContainer.tsx +36 -21
  164. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +10 -7
  165. package/src/components/MarkdownEditor/MarkdownEditor.tsx +28 -30
  166. package/src/components/MarkdownSettings/MarkdownSettings.tsx +81 -78
  167. package/src/components/Suggestions.stories.tsx +36 -33
  168. package/src/components/Toolbar.stories.tsx +19 -14
  169. package/src/components/index.ts +1 -1
  170. package/src/events.ts +2 -2
  171. package/src/extensions.tsx +28 -52
  172. package/src/functions/diff.ts +35 -0
  173. package/src/functions/index.ts +6 -0
  174. package/src/functions/open.ts +30 -0
  175. package/src/hooks/useSelectCurrentThread.tsx +3 -3
  176. package/src/index.ts +4 -1
  177. package/src/meta.ts +7 -8
  178. package/src/translations.ts +10 -7
  179. package/src/types/Markdown.ts +56 -0
  180. package/src/types/MarkdownAction.ts +29 -0
  181. package/src/types/index.ts +2 -1
  182. package/src/types/types.ts +7 -51
  183. package/src/util.tsx +20 -6
  184. package/dist/lib/browser/MarkdownContainer-EFWQ6DHD.mjs.map +0 -7
  185. package/dist/lib/browser/MarkdownPreview-F4PYFW5L.mjs.map +0 -7
  186. package/dist/lib/browser/anchor-sort-BMAN2ABT.mjs.map +0 -7
  187. package/dist/lib/browser/app-graph-serializer-EI6TEHRQ.mjs.map +0 -7
  188. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs +0 -145
  189. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs.map +0 -7
  190. package/dist/lib/browser/chunk-354IBM5X.mjs +0 -20
  191. package/dist/lib/browser/chunk-354IBM5X.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-D767LUGU.mjs.map +0 -7
  193. package/dist/lib/browser/chunk-JX6XNEHE.mjs +0 -22
  194. package/dist/lib/browser/chunk-JX6XNEHE.mjs.map +0 -7
  195. package/dist/lib/browser/chunk-LXSRQPEP.mjs.map +0 -7
  196. package/dist/lib/browser/chunk-N2D26K6W.mjs +0 -79
  197. package/dist/lib/browser/chunk-N2D26K6W.mjs.map +0 -7
  198. package/dist/lib/browser/chunk-QVJETNGS.mjs +0 -16
  199. package/dist/lib/browser/chunk-QVJETNGS.mjs.map +0 -7
  200. package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs +0 -64
  201. package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs.map +0 -7
  202. package/dist/lib/browser/react-surface-4B5ELMEW.mjs.map +0 -7
  203. package/dist/lib/browser/settings-PLH54VC7.mjs.map +0 -7
  204. package/dist/lib/browser/state-KI6PJ6DT.mjs.map +0 -7
  205. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs +0 -783
  206. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs.map +0 -7
  207. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs +0 -103
  208. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs.map +0 -7
  209. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs +0 -48
  210. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs.map +0 -7
  211. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs +0 -65
  212. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs.map +0 -7
  213. package/dist/lib/node/artifact-definition-U27MH5SC.cjs +0 -158
  214. package/dist/lib/node/artifact-definition-U27MH5SC.cjs.map +0 -7
  215. package/dist/lib/node/chunk-3HHV4MM6.cjs +0 -101
  216. package/dist/lib/node/chunk-3HHV4MM6.cjs.map +0 -7
  217. package/dist/lib/node/chunk-CJLYFGPI.cjs +0 -74
  218. package/dist/lib/node/chunk-CJLYFGPI.cjs.map +0 -7
  219. package/dist/lib/node/chunk-FU3XZZCO.cjs +0 -58
  220. package/dist/lib/node/chunk-FU3XZZCO.cjs.map +0 -7
  221. package/dist/lib/node/chunk-IFYSBQE5.cjs +0 -35
  222. package/dist/lib/node/chunk-IFYSBQE5.cjs.map +0 -7
  223. package/dist/lib/node/chunk-LQAC5HL7.cjs +0 -68
  224. package/dist/lib/node/chunk-LQAC5HL7.cjs.map +0 -7
  225. package/dist/lib/node/chunk-ZU5OIHCY.cjs +0 -45
  226. package/dist/lib/node/chunk-ZU5OIHCY.cjs.map +0 -7
  227. package/dist/lib/node/index.cjs +0 -165
  228. package/dist/lib/node/index.cjs.map +0 -7
  229. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs +0 -77
  230. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs.map +0 -7
  231. package/dist/lib/node/meta.json +0 -1
  232. package/dist/lib/node/react-surface-456HQ4KZ.cjs +0 -218
  233. package/dist/lib/node/react-surface-456HQ4KZ.cjs.map +0 -7
  234. package/dist/lib/node/settings-E3NUTXJ4.cjs +0 -42
  235. package/dist/lib/node/settings-E3NUTXJ4.cjs.map +0 -7
  236. package/dist/lib/node/state-KKDRAG7X.cjs +0 -51
  237. package/dist/lib/node/state-KKDRAG7X.cjs.map +0 -7
  238. package/dist/lib/node/types/index.cjs +0 -40
  239. package/dist/lib/node/types/index.cjs.map +0 -7
  240. package/dist/lib/node-esm/MarkdownContainer-O3SGMH4G.mjs.map +0 -7
  241. package/dist/lib/node-esm/MarkdownPreview-KFDRV4GC.mjs.map +0 -7
  242. package/dist/lib/node-esm/anchor-sort-BXL7BE67.mjs.map +0 -7
  243. package/dist/lib/node-esm/app-graph-serializer-F7DGNF3G.mjs.map +0 -7
  244. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs +0 -146
  245. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs.map +0 -7
  246. package/dist/lib/node-esm/chunk-BWDDFDJY.mjs.map +0 -7
  247. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs +0 -17
  248. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs.map +0 -7
  249. package/dist/lib/node-esm/chunk-K26TX5V4.mjs.map +0 -7
  250. package/dist/lib/node-esm/chunk-RX63ZNML.mjs +0 -24
  251. package/dist/lib/node-esm/chunk-RX63ZNML.mjs.map +0 -7
  252. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs +0 -80
  253. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs.map +0 -7
  254. package/dist/lib/node-esm/chunk-YOABAQ7A.mjs +0 -22
  255. package/dist/lib/node-esm/chunk-YOABAQ7A.mjs.map +0 -7
  256. package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs +0 -65
  257. package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs.map +0 -7
  258. package/dist/lib/node-esm/react-surface-YHFOQTVO.mjs.map +0 -7
  259. package/dist/lib/node-esm/settings-SIY33P3F.mjs.map +0 -7
  260. package/dist/lib/node-esm/state-LLGVRYKL.mjs.map +0 -7
  261. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +0 -6
  262. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +0 -1
  263. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -17
  264. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +0 -1
  265. package/dist/types/src/components/MarkdownPreview/index.d.ts +0 -4
  266. package/dist/types/src/components/MarkdownPreview/index.d.ts.map +0 -1
  267. package/dist/types/src/types/schema.d.ts +0 -35
  268. package/dist/types/src/types/schema.d.ts.map +0 -1
  269. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -74
  270. package/src/components/MarkdownPreview/index.ts +0 -9
  271. package/src/types/schema.ts +0 -39
@@ -3,26 +3,26 @@
3
3
  //
4
4
 
5
5
  import { type EditorView } from '@codemirror/view';
6
- import React, { forwardRef, useMemo, useEffect, useCallback, useImperativeHandle, useRef } from 'react';
6
+ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';
7
7
  import { useDropzone } from 'react-dropzone';
8
8
 
9
9
  import { type FileInfo } from '@dxos/app-framework';
10
10
  import { invariant } from '@dxos/invariant';
11
11
  import { toLocalizedString, useThemeContext, useTranslation } from '@dxos/react-ui';
12
12
  import {
13
- CommandMenu,
14
13
  type CommandMenuGroup,
14
+ CommandMenuProvider,
15
15
  type DNDOptions,
16
+ Domino,
16
17
  type EditorInputMode,
17
18
  type EditorSelectionState,
18
19
  type EditorStateStore,
19
20
  EditorToolbar,
20
21
  type EditorToolbarActionGraphProps,
21
22
  type EditorViewMode,
22
- RefPopover,
23
+ type UseCommandMenuOptions,
23
24
  type UseTextEditorProps,
24
25
  addLink,
25
- createElement,
26
26
  coreSlashCommands,
27
27
  createBasicExtensions,
28
28
  createMarkdownExtensions,
@@ -34,26 +34,25 @@ import {
34
34
  linkSlashCommands,
35
35
  processEditorPayload,
36
36
  stackItemContentEditorClassNames,
37
+ useCommandMenu,
37
38
  useEditorToolbarState,
38
39
  useFormattingState,
39
40
  useTextEditor,
40
- useCommandMenu,
41
- type UseCommandMenuOptions,
42
41
  } from '@dxos/react-ui-editor';
43
42
  import { StackItem } from '@dxos/react-ui-stack';
44
- import { isNotFalsy, isNonNullable } from '@dxos/util';
43
+ import { isNonNullable, isNotFalsy } from '@dxos/util';
45
44
 
46
45
  import { useSelectCurrentThread } from '../../hooks';
47
- import { MARKDOWN_PLUGIN } from '../../meta';
46
+ import { meta } from '../../meta';
48
47
  import { type MarkdownPluginState } from '../../types';
49
48
 
50
49
  export type MarkdownEditorProps = {
51
50
  id: string;
52
51
  role?: string;
52
+ toolbar?: boolean;
53
53
  inputMode?: EditorInputMode;
54
54
  scrollPastEnd?: boolean;
55
55
  slashCommandGroups?: CommandMenuGroup[];
56
- toolbar?: boolean;
57
56
  customActions?: EditorToolbarActionGraphProps['customActions'];
58
57
  // TODO(wittjosiah): Generalize custom toolbar actions (e.g. comment, upload, etc.)
59
58
  viewMode?: EditorViewMode;
@@ -70,7 +69,7 @@ export type MarkdownEditorProps = {
70
69
  * This allows it to be used as a common editor for markdown content on arbitrary backends (e.g. files).
71
70
  */
72
71
  export const MarkdownEditor = ({
73
- extensions: _extensions,
72
+ extensions: extensionsParam,
74
73
  slashCommandGroups,
75
74
  onLinkQuery,
76
75
  ...props
@@ -100,32 +99,30 @@ export const MarkdownEditor = ({
100
99
  trigger,
101
100
  placeholder: {
102
101
  delay: 3_000,
103
- content: () => {
104
- return createElement('div', undefined, [
105
- createElement('span', { text: 'Press' }),
106
- ...trigger.map((text) =>
107
- createElement('span', {
108
- className: 'border border-separator rounded-sm mx-1 px-1.5 pt-[1px] pb-[2px]',
109
- text,
110
- }),
111
- ),
112
- createElement('span', { text: 'for commands.' }),
113
- ]);
114
- },
102
+ content: () =>
103
+ Domino.of('div')
104
+ .child(
105
+ Domino.of('span').text('Press'),
106
+ ...trigger.map((text) =>
107
+ Domino.of('span')
108
+ .classNames('border border-separator rounded-sm mx-1 px-1.5 pt-[1px] pb-[2px]')
109
+ .text(text),
110
+ ),
111
+ Domino.of('span').text('for commands.'),
112
+ )
113
+ .build(),
115
114
  },
116
115
  getMenu,
117
116
  };
118
117
  }, [getMenu]);
119
118
 
120
- const { commandMenu, groupsRef, currentItem, onSelect, ...refPopoverProps } = useCommandMenu(options);
121
-
122
- const extensions = useMemo(() => [_extensions, commandMenu].filter(isNotFalsy), [_extensions, commandMenu]);
119
+ const { commandMenu, groupsRef, ...commandMenuProps } = useCommandMenu(options);
120
+ const extensions = useMemo(() => [extensionsParam, commandMenu].filter(isNotFalsy), [extensionsParam, commandMenu]);
123
121
 
124
122
  return (
125
- <RefPopover modal={false} {...refPopoverProps}>
123
+ <CommandMenuProvider groups={groupsRef.current} {...commandMenuProps}>
126
124
  <MarkdownEditorImpl ref={viewRef} {...props} extensions={extensions} />
127
- <CommandMenu groups={groupsRef.current} currentItem={currentItem} onSelect={onSelect} />
128
- </RefPopover>
125
+ </CommandMenuProvider>
129
126
  );
130
127
  };
131
128
 
@@ -147,7 +144,7 @@ const MarkdownEditorImpl = forwardRef<EditorView | undefined, MarkdownEditorProp
147
144
  },
148
145
  forwardedRef,
149
146
  ) => {
150
- const { t } = useTranslation(MARKDOWN_PLUGIN);
147
+ const { t } = useTranslation(meta.id);
151
148
  const { themeMode } = useThemeContext();
152
149
  const toolbarState = useEditorToolbarState({ viewMode });
153
150
  const formattingObserver = useFormattingState(toolbarState);
@@ -185,8 +182,9 @@ const MarkdownEditorImpl = forwardRef<EditorView | undefined, MarkdownEditorProp
185
182
  readOnly: viewMode === 'readonly',
186
183
  placeholder: t('editor placeholder'),
187
184
  scrollPastEnd: role === 'section' ? false : scrollPastEnd,
185
+ search: true,
188
186
  }),
189
- createMarkdownExtensions({ themeMode }),
187
+ createMarkdownExtensions(),
190
188
  createThemeExtensions({ themeMode, syntaxHighlighting: true, slots: editorSlots }),
191
189
  editorGutter,
192
190
  role !== 'section' && onFileUpload && dropFile({ onDrop: handleDrop }),
@@ -6,100 +6,103 @@ import React from 'react';
6
6
 
7
7
  import { Input, Select, useTranslation } from '@dxos/react-ui';
8
8
  import { type EditorInputMode, EditorInputModes, type EditorViewMode, EditorViewModes } from '@dxos/react-ui-editor';
9
- import { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';
9
+ import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';
10
10
 
11
- import { MARKDOWN_PLUGIN } from '../../meta';
12
- import { type MarkdownSettingsProps } from '../../types';
11
+ import { meta } from '../../meta';
12
+ import { type Markdown } from '../../types';
13
13
 
14
- export const MarkdownSettings = ({ settings }: { settings: MarkdownSettingsProps }) => {
15
- const { t } = useTranslation(MARKDOWN_PLUGIN);
14
+ export const MarkdownSettings = ({ settings }: { settings: Markdown.Settings }) => {
15
+ const { t } = useTranslation(meta.id);
16
16
 
17
17
  // TODO(wittjosiah): Add skill test confirmation for entering vim mode.
18
18
  return (
19
- <DeprecatedFormContainer>
20
- <DeprecatedFormInput label={t('default view mode label')}>
21
- <Select.Root
22
- value={settings.defaultViewMode}
23
- onValueChange={(value) => {
24
- settings.defaultViewMode = value as EditorViewMode;
25
- }}
26
- >
27
- <Select.TriggerButton />
28
- <Select.Portal>
29
- <Select.Content>
30
- <Select.Viewport>
31
- {EditorViewModes.map((mode) => (
32
- <Select.Option key={mode} value={mode}>
33
- {t(`${mode} mode label`, { ns: 'react-ui-editor' })}
34
- </Select.Option>
35
- ))}
36
- </Select.Viewport>
37
- </Select.Content>
38
- </Select.Portal>
39
- </Select.Root>
40
- </DeprecatedFormInput>
19
+ <ControlPage>
20
+ <ControlSection title={t('settings title', { ns: meta.id })}>
21
+ <ControlGroup>
22
+ <ControlItemInput title={t('default view mode label')}>
23
+ <Select.Root
24
+ value={settings.defaultViewMode}
25
+ onValueChange={(value) => {
26
+ settings.defaultViewMode = value as EditorViewMode;
27
+ }}
28
+ >
29
+ <Select.TriggerButton />
30
+ <Select.Portal>
31
+ <Select.Content>
32
+ <Select.Viewport>
33
+ {EditorViewModes.map((mode) => (
34
+ <Select.Option key={mode} value={mode}>
35
+ {t(`${mode} mode label`, { ns: 'react-ui-editor' })}
36
+ </Select.Option>
37
+ ))}
38
+ </Select.Viewport>
39
+ <Select.Arrow />
40
+ </Select.Content>
41
+ </Select.Portal>
42
+ </Select.Root>
43
+ </ControlItemInput>
41
44
 
42
- <DeprecatedFormInput label={t('editor input mode label')}>
43
- <Select.Root
44
- value={settings.editorInputMode ?? 'default'}
45
- onValueChange={(value) => {
46
- settings.editorInputMode = value as EditorInputMode;
47
- }}
48
- >
49
- <Select.TriggerButton placeholder={t('select editor input mode placeholder')} />
50
- <Select.Portal>
51
- <Select.Content>
52
- <Select.Viewport>
53
- {EditorInputModes.map((mode) => (
54
- <Select.Option key={mode} value={mode}>
55
- {t(`settings editor input mode ${mode} label`)}
56
- </Select.Option>
57
- ))}
58
- </Select.Viewport>
59
- </Select.Content>
60
- </Select.Portal>
61
- </Select.Root>
62
- </DeprecatedFormInput>
45
+ <ControlItemInput title={t('editor input mode label')}>
46
+ <Select.Root
47
+ value={settings.editorInputMode ?? 'default'}
48
+ onValueChange={(value) => {
49
+ settings.editorInputMode = value as EditorInputMode;
50
+ }}
51
+ >
52
+ <Select.TriggerButton placeholder={t('select editor input mode placeholder')} />
53
+ <Select.Portal>
54
+ <Select.Content>
55
+ <Select.Viewport>
56
+ {EditorInputModes.map((mode) => (
57
+ <Select.Option key={mode} value={mode}>
58
+ {t(`settings editor input mode ${mode} label`)}
59
+ </Select.Option>
60
+ ))}
61
+ </Select.Viewport>
62
+ <Select.Arrow />
63
+ </Select.Content>
64
+ </Select.Portal>
65
+ </Select.Root>
66
+ </ControlItemInput>
63
67
 
64
- <DeprecatedFormInput label={t('settings toolbar label')}>
65
- <Input.Switch checked={settings.toolbar} onCheckedChange={(checked) => (settings.toolbar = !!checked)} />
66
- </DeprecatedFormInput>
68
+ <ControlItemInput title={t('settings toolbar label')}>
69
+ <Input.Switch checked={settings.toolbar} onCheckedChange={(checked) => (settings.toolbar = !!checked)} />
70
+ </ControlItemInput>
67
71
 
68
- <DeprecatedFormInput label={t('settings numbered headings label')}>
69
- <Input.Switch
70
- checked={settings.numberedHeadings}
71
- onCheckedChange={(checked) => (settings.numberedHeadings = !!checked)}
72
- />
73
- </DeprecatedFormInput>
72
+ <ControlItemInput title={t('settings numbered headings label')}>
73
+ <Input.Switch
74
+ checked={settings.numberedHeadings}
75
+ onCheckedChange={(checked) => (settings.numberedHeadings = !!checked)}
76
+ />
77
+ </ControlItemInput>
74
78
 
75
- <DeprecatedFormInput label={t('settings folding label')}>
76
- <Input.Switch checked={settings.folding} onCheckedChange={(checked) => (settings.folding = !!checked)} />
77
- </DeprecatedFormInput>
79
+ <ControlItemInput title={t('settings folding label')}>
80
+ <Input.Switch checked={settings.folding} onCheckedChange={(checked) => (settings.folding = !!checked)} />
81
+ </ControlItemInput>
78
82
 
79
- <DeprecatedFormInput label={t('settings experimental label')}>
80
- <Input.Switch
81
- checked={settings.experimental}
82
- onCheckedChange={(checked) => (settings.experimental = !!checked)}
83
- />
84
- </DeprecatedFormInput>
83
+ <ControlItemInput title={t('settings experimental label')}>
84
+ <Input.Switch
85
+ checked={settings.experimental}
86
+ onCheckedChange={(checked) => (settings.experimental = !!checked)}
87
+ />
88
+ </ControlItemInput>
85
89
 
86
- <DeprecatedFormInput
87
- label={t('settings debug label')}
88
- secondary={
89
- settings.debug ? (
90
- <Input.Root>
90
+ <ControlItemInput title={t('settings debug label')}>
91
+ <Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />
92
+ </ControlItemInput>
93
+
94
+ {settings.debug && (
95
+ <ControlItemInput title={t('settings debug textarea label', { ns: meta.id })}>
91
96
  <Input.TextArea
92
97
  rows={5}
93
98
  value={settings.typewriter}
94
99
  onChange={({ target: { value } }) => (settings.typewriter = value)}
95
100
  placeholder={t('settings debug placeholder')}
96
101
  />
97
- </Input.Root>
98
- ) : undefined
99
- }
100
- >
101
- <Input.Switch checked={settings.debug} onCheckedChange={(checked) => (settings.debug = !!checked)} />
102
- </DeprecatedFormInput>
103
- </DeprecatedFormContainer>
102
+ </ControlItemInput>
103
+ )}
104
+ </ControlGroup>
105
+ </ControlSection>
106
+ </ControlPage>
104
107
  );
105
108
  };
@@ -4,25 +4,21 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta } from '@storybook/react';
8
- import { Match, Option, pipe, Schema } from 'effect';
7
+ import { type Meta } from '@storybook/react-vite';
8
+ import { Match, Option, Schema, pipe } from 'effect';
9
9
  import React, { type FC, useEffect, useMemo, useState } from 'react';
10
10
 
11
- import { Message } from '@dxos/ai';
12
11
  import {
13
12
  Capabilities,
14
- CollaborationActions,
15
13
  IntentPlugin,
16
14
  SettingsPlugin,
17
15
  contributes,
18
- createIntent,
19
16
  useCapability,
20
17
  useIntentDispatcher,
21
18
  } from '@dxos/app-framework';
22
19
  import { withPluginManager } from '@dxos/app-framework/testing';
23
20
  import { Obj, Ref, Type } from '@dxos/echo';
24
21
  import { invariant } from '@dxos/invariant';
25
- import { DXN } from '@dxos/keys';
26
22
  import { ClientPlugin } from '@dxos/plugin-client';
27
23
  import { PreviewPlugin } from '@dxos/plugin-preview';
28
24
  import { SpacePlugin } from '@dxos/plugin-space';
@@ -31,17 +27,19 @@ import { ThemePlugin } from '@dxos/plugin-theme';
31
27
  import { faker } from '@dxos/random';
32
28
  import { createDocAccessor, fullyQualifiedId, toCursorRange, useQueue, useSpace } from '@dxos/react-client/echo';
33
29
  import { IconButton, Toolbar } from '@dxos/react-ui';
34
- import { command, type EditorSelection, type Range, useTextEditor } from '@dxos/react-ui-editor';
30
+ import { type EditorSelection, type Range, command, useTextEditor } from '@dxos/react-ui-editor';
35
31
  import { StackItem } from '@dxos/react-ui-stack';
36
32
  import { defaultTx } from '@dxos/react-ui-theme';
33
+ import { DataType } from '@dxos/schema';
37
34
  import { withLayout } from '@dxos/storybook-utils';
38
35
 
39
- import MarkdownContainer from './MarkdownContainer';
40
- import { MarkdownPlugin } from '../MarkdownPlugin';
41
36
  import { MarkdownCapabilities } from '../capabilities';
42
- import { MARKDOWN_PLUGIN } from '../meta';
43
- import translations from '../translations';
44
- import { createDocument, DocumentType, type MarkdownSettingsProps } from '../types';
37
+ import { MarkdownPlugin } from '../MarkdownPlugin';
38
+ import { meta } from '../meta';
39
+ import { translations } from '../translations';
40
+ import { Markdown } from '../types';
41
+
42
+ import { MarkdownContainer } from './MarkdownContainer';
45
43
 
46
44
  faker.seed(1);
47
45
 
@@ -61,19 +59,25 @@ const TestItem = Schema.Struct({
61
59
  }),
62
60
  );
63
61
 
64
- const TestChat: FC<{ doc: DocumentType; content: string }> = ({ doc, content }) => {
62
+ const TestChat: FC<{ doc: Markdown.Document; content: string }> = ({ doc, content }) => {
65
63
  const { dispatchPromise: dispatch } = useIntentDispatcher();
66
64
  const { parentRef } = useTextEditor({ initialValue: content });
67
65
  const { editorState } = useCapability(MarkdownCapabilities.State);
68
66
 
69
67
  const space = useSpace();
70
68
  const queueDxn = useMemo(() => space && space.queues.create().dxn, [space]);
71
- const queue = useQueue<Message>(queueDxn);
69
+ const queue = useQueue<DataType.Message>(queueDxn);
72
70
 
73
71
  const handleInsert = async () => {
74
72
  invariant(space);
75
73
  invariant(queue);
76
- await queue.append([Obj.make(Message, { role: 'assistant', content: [{ type: 'text', text: 'Hello' }] })]);
74
+ await queue.append([
75
+ Obj.make(DataType.Message, {
76
+ created: new Date().toISOString(),
77
+ sender: { role: 'assistant' },
78
+ blocks: [{ _tag: 'text', text: 'Hello' }],
79
+ }),
80
+ ]);
77
81
  const message = queue.objects.at(-1);
78
82
  invariant(message);
79
83
 
@@ -92,14 +96,14 @@ const TestChat: FC<{ doc: DocumentType; content: string }> = ({ doc, content })
92
96
  // const message = deref(ref);
93
97
  // }
94
98
 
95
- void dispatch(
96
- createIntent(CollaborationActions.InsertContent, {
97
- target: doc as any as Type.Expando,
98
- object: Ref.fromDXN(new DXN(DXN.kind.QUEUE, [...queue.dxn.parts, message.id])),
99
- at: cursor,
100
- label: 'Proposal',
101
- }),
102
- );
99
+ // void dispatch(
100
+ // createIntent(CollaborationActions.InsertContent, {
101
+ // target: doc as any as Type.Expando,
102
+ // object: Ref.fromDXN(new DXN(DXN.kind.QUEUE, [...queue.dxn.parts, message.id])),
103
+ // at: cursor,
104
+ // label: 'Proposal',
105
+ // }),
106
+ // );
103
107
  };
104
108
 
105
109
  return (
@@ -114,8 +118,8 @@ const TestChat: FC<{ doc: DocumentType; content: string }> = ({ doc, content })
114
118
 
115
119
  const DefaultStory = ({ document, chat }: { document: string; chat: string }) => {
116
120
  const space = useSpace();
117
- const [doc, setDoc] = useState<DocumentType>();
118
- const settings = useCapability(Capabilities.SettingsStore).getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;
121
+ const [doc, setDoc] = useState<Markdown.Document>();
122
+ const settings = useCapability(Capabilities.SettingsStore).getStore<Markdown.Settings>(meta.id)!.value;
119
123
  const { editorState } = useCapability(MarkdownCapabilities.State);
120
124
 
121
125
  useEffect(() => {
@@ -124,14 +128,12 @@ const DefaultStory = ({ document, chat }: { document: string; chat: string }) =>
124
128
  }
125
129
 
126
130
  const doc = space.db.add(
127
- createDocument({
131
+ Markdown.makeDocument({
128
132
  name: 'Test',
129
-
130
- // Create links.
131
133
  content: document.replaceAll(/\[(\w+)\]/g, (_, label) => {
132
134
  const obj = space.db.add(Obj.make(TestItem, { title: label, description: faker.lorem.paragraph() }));
133
135
  const dxn = Ref.make(obj).dxn.toString();
134
- return `[${label}][${dxn}]`;
136
+ return `[${label}](${dxn})`;
135
137
  }),
136
138
  }),
137
139
  );
@@ -151,7 +153,8 @@ const DefaultStory = ({ document, chat }: { document: string; chat: string }) =>
151
153
  );
152
154
  };
153
155
 
154
- const meta: Meta<typeof DefaultStory> = {
156
+ // TODO(burdon): Make consistent.
157
+ const storybook: Meta<typeof DefaultStory> = {
155
158
  title: 'plugins/plugin-markdown/Suggestions',
156
159
  render: DefaultStory,
157
160
  decorators: [
@@ -160,8 +163,8 @@ const meta: Meta<typeof DefaultStory> = {
160
163
  ThemePlugin({ tx: defaultTx }),
161
164
  StorybookLayoutPlugin(),
162
165
  ClientPlugin({
163
- types: [DocumentType, TestItem],
164
- onClientInitialized: async (_, client) => {
166
+ types: [Markdown.Document, TestItem],
167
+ onClientInitialized: async ({ client }) => {
165
168
  await client.halo.createIdentity();
166
169
  },
167
170
  }),
@@ -181,7 +184,7 @@ const meta: Meta<typeof DefaultStory> = {
181
184
  },
182
185
  };
183
186
 
184
- export default meta;
187
+ export default storybook;
185
188
 
186
189
  type Story = Meta<typeof DefaultStory>;
187
190
 
@@ -4,18 +4,18 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta } from '@storybook/react';
8
- import React, { type FC, useCallback, useState } from 'react';
7
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
8
+ import React, { useCallback, useState } from 'react';
9
9
 
10
- import { Obj } from '@dxos/echo';
11
10
  import { invariant } from '@dxos/invariant';
12
11
  import { PublicKey } from '@dxos/keys';
13
12
  import { faker } from '@dxos/random';
14
13
  import { createDocAccessor } from '@dxos/react-client/echo';
15
14
  import { useThemeContext } from '@dxos/react-ui';
16
15
  import {
17
- EditorToolbar,
18
16
  type Comment,
17
+ EditorToolbar,
18
+ type EditorViewMode,
19
19
  comments,
20
20
  createBasicExtensions,
21
21
  createDataExtensions,
@@ -26,19 +26,22 @@ import {
26
26
  formattingKeymap,
27
27
  translations,
28
28
  useComments,
29
+ useEditorToolbarState,
29
30
  useFormattingState,
30
31
  useTextEditor,
31
- useEditorToolbarState,
32
- type EditorViewMode,
33
32
  } from '@dxos/react-ui-editor';
34
33
  import { DataType } from '@dxos/schema';
35
34
  import { withLayout, withTheme } from '@dxos/storybook-utils';
36
35
 
37
36
  faker.seed(101);
38
37
 
39
- const DefaultStory: FC<{ content?: string }> = ({ content = '' }) => {
38
+ type StoryProps = {
39
+ content?: string;
40
+ };
41
+
42
+ const DefaultStory = ({ content = '' }: StoryProps) => {
40
43
  const { themeMode } = useThemeContext();
41
- const [text] = useState(Obj.make(DataType.Text, { content }));
44
+ const [text] = useState(DataType.makeText(content));
42
45
  const toolbarState = useEditorToolbarState({ viewMode: 'preview' });
43
46
  const formattingObserver = useFormattingState(toolbarState);
44
47
  const { parentRef, view } = useTextEditor(() => {
@@ -48,7 +51,7 @@ const DefaultStory: FC<{ content?: string }> = ({ content = '' }) => {
48
51
  extensions: [
49
52
  formattingObserver,
50
53
  createBasicExtensions({ readOnly: toolbarState.viewMode === 'readonly' }),
51
- createMarkdownExtensions({ themeMode }),
54
+ createMarkdownExtensions(),
52
55
  createThemeExtensions({ themeMode, syntaxHighlighting: true, slots: editorSlots }),
53
56
  createDataExtensions({ id: text.id, text: createDocAccessor(text, ['content']) }),
54
57
  comments({
@@ -94,19 +97,21 @@ const content = [
94
97
  '',
95
98
  ].join('\n');
96
99
 
97
- const meta: Meta<typeof EditorToolbar> = {
100
+ const meta = {
98
101
  title: 'plugins/plugin-markdown/Toolbar',
99
- component: EditorToolbar,
100
- render: DefaultStory as any,
102
+ component: EditorToolbar as any,
103
+ render: DefaultStory,
101
104
  decorators: [withTheme, withLayout({ fullscreen: true })],
102
105
  parameters: {
103
106
  translations,
104
107
  },
105
- };
108
+ } satisfies Meta<typeof DefaultStory>;
106
109
 
107
110
  export default meta;
108
111
 
109
- export const Default = {
112
+ type Story = StoryObj<typeof meta>;
113
+
114
+ export const Default: Story = {
110
115
  args: {
111
116
  content,
112
117
  },
@@ -7,4 +7,4 @@ import { lazy } from 'react';
7
7
  export * from './MarkdownSettings';
8
8
 
9
9
  export const MarkdownContainer = lazy(() => import('./MarkdownContainer'));
10
- export const MarkdownPreview = lazy(() => import('./MarkdownPreview'));
10
+ export const MarkdownCard = lazy(() => import('./MarkdownCard'));
package/src/events.ts CHANGED
@@ -4,8 +4,8 @@
4
4
 
5
5
  import { Events } from '@dxos/app-framework';
6
6
 
7
- import { MARKDOWN_PLUGIN } from './meta';
7
+ import { meta } from './meta';
8
8
 
9
9
  export namespace MarkdownEvents {
10
- export const SetupExtensions = Events.createStateEvent(`${MARKDOWN_PLUGIN}/setup-extensions`);
10
+ export const SetupExtensions = Events.createStateEvent(`${meta.id}/event/setup-extensions`);
11
11
  }