@dxos/plugin-markdown 0.8.4-main.2e9d522 → 0.8.4-main.548089c

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 (288) hide show
  1. package/dist/lib/browser/MarkdownCard-L3BS2SED.mjs +12 -0
  2. package/dist/lib/browser/MarkdownCard-L3BS2SED.mjs.map +7 -0
  3. package/dist/lib/browser/MarkdownContainer-KF3YL6CI.mjs +15 -0
  4. package/dist/lib/browser/MarkdownContainer-KF3YL6CI.mjs.map +7 -0
  5. package/dist/lib/browser/{anchor-sort-UKJJ7ZNP.mjs → anchor-sort-3HGPGCOO.mjs} +7 -8
  6. package/dist/lib/browser/anchor-sort-3HGPGCOO.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-ICLAF662.mjs → app-graph-serializer-POZN234F.mjs} +15 -16
  8. package/dist/lib/browser/app-graph-serializer-POZN234F.mjs.map +7 -0
  9. package/dist/lib/browser/blueprint-definition-GIPKFDY5.mjs +13 -0
  10. package/dist/lib/browser/blueprint-definition-GIPKFDY5.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-LHDCHDBW.mjs → chunk-22XSSNBS.mjs} +10 -6
  12. package/dist/lib/browser/chunk-22XSSNBS.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-2YCH7AOL.mjs +827 -0
  14. package/dist/lib/browser/chunk-2YCH7AOL.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-BQTYJOFB.mjs +28 -0
  16. package/dist/lib/browser/chunk-BQTYJOFB.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-BU7S64EA.mjs +95 -0
  18. package/dist/lib/browser/chunk-BU7S64EA.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-LFML7LC6.mjs → chunk-GH6GQSBL.mjs} +14 -14
  20. package/dist/lib/browser/chunk-GH6GQSBL.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-IBCHVMZW.mjs +16 -0
  22. package/dist/lib/browser/chunk-IBCHVMZW.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-IGS3RCFE.mjs +20 -0
  24. package/dist/lib/browser/chunk-IGS3RCFE.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-QYSEJ5GP.mjs +79 -0
  26. package/dist/lib/browser/chunk-QYSEJ5GP.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-Y53FQREH.mjs +150 -0
  28. package/dist/lib/browser/chunk-Y53FQREH.mjs.map +7 -0
  29. package/dist/lib/browser/index.mjs +41 -27
  30. package/dist/lib/browser/index.mjs.map +3 -3
  31. package/dist/lib/browser/intent-resolver-Z5L7TXUK.mjs +62 -0
  32. package/dist/lib/browser/intent-resolver-Z5L7TXUK.mjs.map +7 -0
  33. package/dist/lib/browser/meta.json +1 -1
  34. package/dist/lib/browser/react-surface-45NYBFCG.mjs +217 -0
  35. package/dist/lib/browser/react-surface-45NYBFCG.mjs.map +7 -0
  36. package/dist/lib/browser/{settings-KN75ZQY6.mjs → settings-TZUDB5EW.mjs} +7 -7
  37. package/dist/lib/browser/settings-TZUDB5EW.mjs.map +7 -0
  38. package/dist/lib/browser/{state-LZWTAS65.mjs → state-BTUKVZHY.mjs} +9 -9
  39. package/dist/lib/browser/state-BTUKVZHY.mjs.map +7 -0
  40. package/dist/lib/browser/toolkit.mjs +13 -0
  41. package/dist/lib/browser/toolkit.mjs.map +7 -0
  42. package/dist/lib/browser/types/index.mjs +6 -14
  43. package/dist/lib/node-esm/MarkdownCard-UUQLN6XK.mjs +13 -0
  44. package/dist/lib/node-esm/MarkdownCard-UUQLN6XK.mjs.map +7 -0
  45. package/dist/lib/node-esm/MarkdownContainer-PQBLVUW4.mjs +16 -0
  46. package/dist/lib/node-esm/MarkdownContainer-PQBLVUW4.mjs.map +7 -0
  47. package/dist/lib/node-esm/{anchor-sort-IPIS5D5B.mjs → anchor-sort-PCDXEBJ2.mjs} +7 -8
  48. package/dist/lib/node-esm/anchor-sort-PCDXEBJ2.mjs.map +7 -0
  49. package/dist/lib/node-esm/{app-graph-serializer-FLBXQKKR.mjs → app-graph-serializer-NF65JYAS.mjs} +15 -16
  50. package/dist/lib/node-esm/app-graph-serializer-NF65JYAS.mjs.map +7 -0
  51. package/dist/lib/node-esm/blueprint-definition-ENKJZYQS.mjs +14 -0
  52. package/dist/lib/node-esm/blueprint-definition-ENKJZYQS.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-2PYNDVNK.mjs +828 -0
  54. package/dist/lib/node-esm/chunk-2PYNDVNK.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-6XVGFGRW.mjs +96 -0
  56. package/dist/lib/node-esm/chunk-6XVGFGRW.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-VIR2ABYE.mjs → chunk-AMHACOXW.mjs} +10 -6
  58. package/dist/lib/node-esm/chunk-AMHACOXW.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-ENYE7TQ5.mjs +22 -0
  60. package/dist/lib/node-esm/chunk-ENYE7TQ5.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-ACFGXH2K.mjs → chunk-GMMVSXQ6.mjs} +5 -5
  62. package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-HAIEWPU7.mjs +151 -0
  64. package/dist/lib/node-esm/chunk-HAIEWPU7.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-NGYJNQ6A.mjs +80 -0
  66. package/dist/lib/node-esm/chunk-NGYJNQ6A.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-CWTFQSN7.mjs → chunk-PLZ7EVCT.mjs} +14 -14
  68. package/dist/lib/node-esm/chunk-PLZ7EVCT.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs +29 -0
  70. package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs.map +7 -0
  71. package/dist/lib/node-esm/index.mjs +41 -27
  72. package/dist/lib/node-esm/index.mjs.map +3 -3
  73. package/dist/lib/node-esm/intent-resolver-6B3PFQ5F.mjs +63 -0
  74. package/dist/lib/node-esm/intent-resolver-6B3PFQ5F.mjs.map +7 -0
  75. package/dist/lib/node-esm/meta.json +1 -1
  76. package/dist/lib/node-esm/react-surface-CPMCARNW.mjs +218 -0
  77. package/dist/lib/node-esm/react-surface-CPMCARNW.mjs.map +7 -0
  78. package/dist/lib/node-esm/{settings-KVP7TVX7.mjs → settings-CJ3T5EX4.mjs} +7 -7
  79. package/dist/lib/node-esm/settings-CJ3T5EX4.mjs.map +7 -0
  80. package/dist/lib/node-esm/{state-NW3W4JCQ.mjs → state-K6EH7SRZ.mjs} +9 -9
  81. package/dist/lib/node-esm/state-K6EH7SRZ.mjs.map +7 -0
  82. package/dist/lib/node-esm/toolkit.mjs +14 -0
  83. package/dist/lib/node-esm/toolkit.mjs.map +7 -0
  84. package/dist/lib/node-esm/types/index.mjs +6 -14
  85. package/dist/types/src/MarkdownPlugin.d.ts +1 -1
  86. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/anchor-sort.d.ts +2 -4
  88. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  90. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -9
  92. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/blueprint-definition.d.ts +7 -0
  94. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/capabilities.d.ts +1 -1
  96. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/index.d.ts +10 -12
  98. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  100. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  102. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/settings.d.ts +1 -1
  104. package/dist/types/src/capabilities/state.d.ts +2 -2
  105. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  106. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +7 -0
  107. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  108. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
  109. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  110. package/dist/types/src/components/MarkdownCard/index.d.ts +4 -0
  111. package/dist/types/src/components/MarkdownCard/index.d.ts.map +1 -0
  112. package/dist/types/src/components/MarkdownContainer.d.ts +9 -13
  113. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  114. package/dist/types/src/components/MarkdownContainer.stories.d.ts +54 -5
  115. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +11 -0
  117. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -0
  118. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +42 -23
  119. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  120. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +8 -15
  121. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  122. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +26 -0
  123. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -0
  124. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +12 -0
  125. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -0
  126. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +2 -2
  127. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  128. package/dist/types/src/components/Suggestions.stories.d.ts +3 -4
  129. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  130. package/dist/types/src/components/index.d.ts +4 -2
  131. package/dist/types/src/components/index.d.ts.map +1 -1
  132. package/dist/types/src/events.d.ts.map +1 -1
  133. package/dist/types/src/functions/create.d.ts +8 -0
  134. package/dist/types/src/functions/create.d.ts.map +1 -0
  135. package/dist/types/src/functions/create.test.d.ts +2 -0
  136. package/dist/types/src/functions/create.test.d.ts.map +1 -0
  137. package/dist/types/src/functions/index.d.ts +18 -0
  138. package/dist/types/src/functions/index.d.ts.map +1 -0
  139. package/dist/types/src/functions/open.d.ts +7 -0
  140. package/dist/types/src/functions/open.d.ts.map +1 -0
  141. package/dist/types/src/functions/update.d.ts +6 -0
  142. package/dist/types/src/functions/update.d.ts.map +1 -0
  143. package/dist/types/src/functions/update.test.d.ts +2 -0
  144. package/dist/types/src/functions/update.test.d.ts.map +1 -0
  145. package/dist/types/src/hooks/index.d.ts +3 -0
  146. package/dist/types/src/hooks/index.d.ts.map +1 -1
  147. package/dist/types/src/hooks/useExtensions.d.ts +21 -0
  148. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -0
  149. package/dist/types/src/hooks/useLinkQuery.d.ts +4 -0
  150. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -0
  151. package/dist/types/src/hooks/usePopoverMenuOptions.d.ts +9 -0
  152. package/dist/types/src/hooks/usePopoverMenuOptions.d.ts.map +1 -0
  153. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +1 -1
  154. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
  155. package/dist/types/src/index.d.ts +2 -1
  156. package/dist/types/src/index.d.ts.map +1 -1
  157. package/dist/types/src/meta.d.ts +0 -1
  158. package/dist/types/src/meta.d.ts.map +1 -1
  159. package/dist/types/src/testing.d.ts +6 -0
  160. package/dist/types/src/testing.d.ts.map +1 -0
  161. package/dist/types/src/toolkit.d.ts +3 -0
  162. package/dist/types/src/toolkit.d.ts.map +1 -0
  163. package/dist/types/src/translations.d.ts +6 -2
  164. package/dist/types/src/translations.d.ts.map +1 -1
  165. package/dist/types/src/types/Markdown.d.ts +45 -0
  166. package/dist/types/src/types/Markdown.d.ts.map +1 -0
  167. package/dist/types/src/types/MarkdownAction.d.ts +34 -0
  168. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -0
  169. package/dist/types/src/types/index.d.ts +2 -1
  170. package/dist/types/src/types/index.d.ts.map +1 -1
  171. package/dist/types/src/types/types.d.ts +3 -59
  172. package/dist/types/src/types/types.d.ts.map +1 -1
  173. package/dist/types/src/util.d.ts +14 -5
  174. package/dist/types/src/util.d.ts.map +1 -1
  175. package/dist/types/tsconfig.tsbuildinfo +1 -1
  176. package/package.json +74 -53
  177. package/src/MarkdownPlugin.tsx +103 -96
  178. package/src/capabilities/anchor-sort.ts +5 -5
  179. package/src/capabilities/app-graph-serializer.ts +12 -10
  180. package/src/capabilities/artifact-definition.ts +22 -26
  181. package/src/capabilities/blueprint-definition.ts +43 -0
  182. package/src/capabilities/capabilities.ts +6 -4
  183. package/src/capabilities/index.ts +3 -2
  184. package/src/capabilities/intent-resolver.ts +16 -21
  185. package/src/capabilities/react-surface.tsx +56 -76
  186. package/src/capabilities/settings.ts +3 -3
  187. package/src/capabilities/state.ts +8 -8
  188. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +76 -0
  189. package/src/components/MarkdownCard/MarkdownCard.tsx +88 -0
  190. package/src/components/MarkdownCard/index.ts +9 -0
  191. package/src/components/MarkdownContainer.stories.tsx +81 -48
  192. package/src/components/MarkdownContainer.tsx +81 -222
  193. package/src/components/MarkdownEditor/FileUpload.tsx +63 -0
  194. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +58 -34
  195. package/src/components/MarkdownEditor/MarkdownEditor.tsx +220 -271
  196. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +134 -0
  197. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +63 -0
  198. package/src/components/MarkdownSettings/MarkdownSettings.tsx +81 -78
  199. package/src/components/Suggestions.stories.tsx +61 -57
  200. package/src/components/index.ts +3 -1
  201. package/src/events.ts +2 -2
  202. package/src/functions/create.conversations.json +1 -0
  203. package/src/functions/create.test.ts +128 -0
  204. package/src/functions/create.ts +34 -0
  205. package/src/functions/index.ts +13 -0
  206. package/src/functions/open.ts +32 -0
  207. package/src/functions/update.conversations.json +1 -0
  208. package/src/functions/update.test.ts +151 -0
  209. package/src/functions/update.ts +37 -0
  210. package/src/hooks/index.ts +3 -0
  211. package/src/{extensions.tsx → hooks/useExtensions.tsx} +65 -114
  212. package/src/hooks/useLinkQuery.ts +83 -0
  213. package/src/hooks/usePopoverMenuOptions.ts +71 -0
  214. package/src/hooks/useSelectCurrentThread.tsx +17 -7
  215. package/src/index.ts +4 -1
  216. package/src/meta.ts +7 -8
  217. package/src/testing.ts +27 -0
  218. package/src/toolkit.ts +6 -0
  219. package/src/translations.ts +6 -2
  220. package/src/types/Markdown.ts +58 -0
  221. package/src/types/MarkdownAction.ts +29 -0
  222. package/src/types/index.ts +3 -1
  223. package/src/types/types.ts +6 -50
  224. package/src/util.tsx +28 -9
  225. package/dist/lib/browser/MarkdownContainer-F3WEEIBX.mjs +0 -778
  226. package/dist/lib/browser/MarkdownContainer-F3WEEIBX.mjs.map +0 -7
  227. package/dist/lib/browser/MarkdownPreview-S3C7CGAV.mjs +0 -80
  228. package/dist/lib/browser/MarkdownPreview-S3C7CGAV.mjs.map +0 -7
  229. package/dist/lib/browser/anchor-sort-UKJJ7ZNP.mjs.map +0 -7
  230. package/dist/lib/browser/app-graph-serializer-ICLAF662.mjs.map +0 -7
  231. package/dist/lib/browser/artifact-definition-R2YYWOPN.mjs +0 -145
  232. package/dist/lib/browser/artifact-definition-R2YYWOPN.mjs.map +0 -7
  233. package/dist/lib/browser/chunk-777RIED6.mjs +0 -16
  234. package/dist/lib/browser/chunk-777RIED6.mjs.map +0 -7
  235. package/dist/lib/browser/chunk-EPTSAJZM.mjs +0 -22
  236. package/dist/lib/browser/chunk-EPTSAJZM.mjs.map +0 -7
  237. package/dist/lib/browser/chunk-LFML7LC6.mjs.map +0 -7
  238. package/dist/lib/browser/chunk-LHDCHDBW.mjs.map +0 -7
  239. package/dist/lib/browser/chunk-PHTD5DTR.mjs +0 -20
  240. package/dist/lib/browser/chunk-PHTD5DTR.mjs.map +0 -7
  241. package/dist/lib/browser/chunk-UANWRJZU.mjs +0 -79
  242. package/dist/lib/browser/chunk-UANWRJZU.mjs.map +0 -7
  243. package/dist/lib/browser/intent-resolver-3MXYO3MW.mjs +0 -64
  244. package/dist/lib/browser/intent-resolver-3MXYO3MW.mjs.map +0 -7
  245. package/dist/lib/browser/react-surface-C3Z423TV.mjs +0 -206
  246. package/dist/lib/browser/react-surface-C3Z423TV.mjs.map +0 -7
  247. package/dist/lib/browser/settings-KN75ZQY6.mjs.map +0 -7
  248. package/dist/lib/browser/state-LZWTAS65.mjs.map +0 -7
  249. package/dist/lib/node-esm/MarkdownContainer-VOUHL6IU.mjs +0 -779
  250. package/dist/lib/node-esm/MarkdownContainer-VOUHL6IU.mjs.map +0 -7
  251. package/dist/lib/node-esm/MarkdownPreview-77UFEWXT.mjs +0 -81
  252. package/dist/lib/node-esm/MarkdownPreview-77UFEWXT.mjs.map +0 -7
  253. package/dist/lib/node-esm/anchor-sort-IPIS5D5B.mjs.map +0 -7
  254. package/dist/lib/node-esm/app-graph-serializer-FLBXQKKR.mjs.map +0 -7
  255. package/dist/lib/node-esm/artifact-definition-MLTAY4LK.mjs +0 -146
  256. package/dist/lib/node-esm/artifact-definition-MLTAY4LK.mjs.map +0 -7
  257. package/dist/lib/node-esm/chunk-7X6TPTJK.mjs +0 -22
  258. package/dist/lib/node-esm/chunk-7X6TPTJK.mjs.map +0 -7
  259. package/dist/lib/node-esm/chunk-ACFGXH2K.mjs.map +0 -7
  260. package/dist/lib/node-esm/chunk-CWTFQSN7.mjs.map +0 -7
  261. package/dist/lib/node-esm/chunk-CXG7GMYP.mjs +0 -24
  262. package/dist/lib/node-esm/chunk-CXG7GMYP.mjs.map +0 -7
  263. package/dist/lib/node-esm/chunk-JEEQLO7C.mjs +0 -80
  264. package/dist/lib/node-esm/chunk-JEEQLO7C.mjs.map +0 -7
  265. package/dist/lib/node-esm/chunk-VIR2ABYE.mjs.map +0 -7
  266. package/dist/lib/node-esm/intent-resolver-BZYWV53A.mjs +0 -65
  267. package/dist/lib/node-esm/intent-resolver-BZYWV53A.mjs.map +0 -7
  268. package/dist/lib/node-esm/react-surface-TTTBYNI2.mjs +0 -207
  269. package/dist/lib/node-esm/react-surface-TTTBYNI2.mjs.map +0 -7
  270. package/dist/lib/node-esm/settings-KVP7TVX7.mjs.map +0 -7
  271. package/dist/lib/node-esm/state-NW3W4JCQ.mjs.map +0 -7
  272. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +0 -6
  273. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +0 -1
  274. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -42
  275. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +0 -1
  276. package/dist/types/src/components/MarkdownPreview/index.d.ts +0 -4
  277. package/dist/types/src/components/MarkdownPreview/index.d.ts.map +0 -1
  278. package/dist/types/src/components/Toolbar.stories.d.ts +0 -11
  279. package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
  280. package/dist/types/src/extensions.d.ts +0 -24
  281. package/dist/types/src/extensions.d.ts.map +0 -1
  282. package/dist/types/src/types/schema.d.ts +0 -35
  283. package/dist/types/src/types/schema.d.ts.map +0 -1
  284. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -81
  285. package/src/components/MarkdownPreview/MarkdownPreview.tsx +0 -73
  286. package/src/components/MarkdownPreview/index.ts +0 -9
  287. package/src/components/Toolbar.stories.tsx +0 -113
  288. package/src/types/schema.ts +0 -39
@@ -3,25 +3,32 @@
3
3
  //
4
4
 
5
5
  import { EditorView } from '@codemirror/view';
6
- import { Schema } from 'effect';
6
+ import * as Schema from 'effect/Schema';
7
7
  import { useMemo } from 'react';
8
8
 
9
- import { createResolver, LayoutAction, useIntentResolver } from '@dxos/app-framework';
9
+ import { LayoutAction, createResolver } from '@dxos/app-framework';
10
+ import { useIntentResolver } from '@dxos/app-framework/react';
10
11
  import { invariant } from '@dxos/invariant';
11
12
  import { Cursor, setSelection } from '@dxos/react-ui-editor';
12
13
 
13
- import { MARKDOWN_PLUGIN } from '../meta';
14
+ import { meta } from '../meta';
14
15
 
15
16
  /**
16
17
  * Handle scrolling and selection of the current thread in a markdown editor.
17
18
  */
18
- export const useSelectCurrentThread = (editorView: EditorView | undefined, documentId: string) => {
19
+ export const useSelectCurrentThread = (editorView: EditorView | null, documentId: string) => {
19
20
  const scrollIntoViewResolver = useMemo(
20
21
  () =>
21
22
  createResolver({
22
23
  intent: LayoutAction.UpdateLayout,
23
24
  position: 'hoist',
24
- filter: (data): data is { part: 'current'; subject: string; options: { cursor: string } } => {
25
+ filter: (
26
+ data,
27
+ ): data is {
28
+ part: 'current';
29
+ subject: string;
30
+ options: { cursor: string };
31
+ } => {
25
32
  if (!Schema.is(LayoutAction.ScrollIntoView.fields.input)(data)) {
26
33
  return false;
27
34
  }
@@ -35,7 +42,10 @@ export const useSelectCurrentThread = (editorView: EditorView | undefined, docum
35
42
  const selection = editorView.state.selection.main.from !== range.from ? { anchor: range.from } : undefined;
36
43
  const effects = [
37
44
  // NOTE: This does not use the DOM scrollIntoView function.
38
- EditorView.scrollIntoView(range.from, { y: 'start', yMargin: 96 }),
45
+ EditorView.scrollIntoView(range.from, {
46
+ y: 'start',
47
+ yMargin: 96,
48
+ }),
39
49
  ];
40
50
  if (selection) {
41
51
  // Update the editor selection to get bi-directional highlighting.
@@ -52,5 +62,5 @@ export const useSelectCurrentThread = (editorView: EditorView | undefined, docum
52
62
  [documentId, editorView],
53
63
  );
54
64
 
55
- useIntentResolver(MARKDOWN_PLUGIN, scrollIntoViewResolver);
65
+ useIntentResolver(meta.id, scrollIntoViewResolver);
56
66
  };
package/src/index.ts CHANGED
@@ -4,6 +4,9 @@
4
4
 
5
5
  export { MarkdownCapabilities } from './capabilities';
6
6
  export { MarkdownEvents } from './events';
7
- export * from './MarkdownPlugin';
7
+
8
8
  export * from './meta';
9
+ export * from './types';
9
10
  export * from './util';
11
+
12
+ export * from './MarkdownPlugin';
package/src/meta.ts CHANGED
@@ -3,18 +3,17 @@
3
3
  //
4
4
 
5
5
  import { type PluginMeta } from '@dxos/app-framework';
6
-
7
- export const MARKDOWN_PLUGIN = 'dxos.org/plugin/markdown';
6
+ import { trim } from '@dxos/util';
8
7
 
9
8
  export const meta: PluginMeta = {
10
- id: MARKDOWN_PLUGIN,
9
+ id: 'dxos.org/plugin/markdown',
11
10
  name: 'Markdown',
12
- description: `
13
- A Markdown editor that is collaborative and fully extensible. It provides rich text editing as well as read only and markdown view.
14
- In addition to markdown capabilities, it also support threaded in-line comments which can be accessed from the right hand sidebar at any times inside the document.
15
- Your AI agent will have access to all markdown docs in your Space which means you can use them to extend the memory of your personal agent and add long term context for automated workflows.
11
+ description: trim`
12
+ Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
13
+ Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
16
14
  `,
17
- source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',
18
15
  icon: 'ph--text-aa--regular',
16
+ iconHue: 'indigo',
17
+ source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',
19
18
  screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],
20
19
  };
package/src/testing.ts ADDED
@@ -0,0 +1,27 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Toolkit from '@effect/ai/Toolkit';
6
+ import * as Effect from 'effect/Effect';
7
+
8
+ import { PropertiesType } from '@dxos/client-protocol';
9
+ import { Obj, Ref } from '@dxos/echo';
10
+ import { DatabaseService } from '@dxos/functions';
11
+ import { Collection } from '@dxos/schema';
12
+
13
+ // TODO(wittjosiah): Factor out.
14
+ export const WithProperties = <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R | DatabaseService> =>
15
+ Effect.zipRight(
16
+ Effect.gen(function* () {
17
+ // TODO(wittjosiah): Remove cast.
18
+ yield* DatabaseService.add(
19
+ Obj.make(PropertiesType as any, {
20
+ [Collection.Collection.typename]: Ref.make(Collection.make()),
21
+ }) as any,
22
+ );
23
+ }),
24
+ effect,
25
+ );
26
+
27
+ export const testToolkit = Toolkit.empty as Toolkit.Toolkit<any>;
package/src/toolkit.ts ADDED
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export { MarkdownBlueprint, MARKDOWN_BLUEPRINT_KEY } from './capabilities/blueprint-definition';
6
+ export { MarkdownFunction } from './functions';
@@ -5,12 +5,12 @@
5
5
  import { type Resource } from '@dxos/react-ui';
6
6
 
7
7
  import { meta } from './meta';
8
- import { DocumentType } from './types';
8
+ import { Markdown } from './types';
9
9
 
10
10
  export const translations = [
11
11
  {
12
12
  'en-US': {
13
- [DocumentType.typename]: {
13
+ [Markdown.Document.typename]: {
14
14
  'typename label': 'Document',
15
15
  'typename label_zero': 'Documents',
16
16
  'typename label_one': 'Document',
@@ -21,6 +21,7 @@ export const translations = [
21
21
  },
22
22
  [meta.id]: {
23
23
  'plugin name': 'Editor',
24
+ 'settings title': 'Editor settings',
24
25
  'choose markdown from space dialog title': 'Choose one or more documents to add',
25
26
  // TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)
26
27
  'empty choose markdown from space message': 'None available; try creating a new one instead?',
@@ -42,6 +43,9 @@ export const translations = [
42
43
  'upload image label': 'Upload image',
43
44
  'fallback title': 'Untitled',
44
45
  'navigate to document label': 'Open document',
46
+ 'words label_zero': 'words',
47
+ 'words label_one': 'word',
48
+ 'words label_other': 'words',
45
49
  },
46
50
  },
47
51
  },
@@ -0,0 +1,58 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { Obj, Ref, Type } from '@dxos/echo';
8
+ import { DescriptionAnnotation, FormAnnotation, LabelAnnotation } from '@dxos/echo/internal';
9
+ import { EditorInputMode, EditorViewMode } from '@dxos/react-ui-editor/types';
10
+ import { ItemAnnotation, Text } from '@dxos/schema';
11
+
12
+ /**
13
+ * Document Item type.
14
+ */
15
+ export const Document = Schema.Struct({
16
+ name: Schema.optional(Schema.String),
17
+ description: Schema.optional(Schema.String),
18
+ fallbackName: Schema.String.pipe(FormAnnotation.set(false), Schema.optional),
19
+ content: Type.Ref(Text.Text).pipe(FormAnnotation.set(false)),
20
+ }).pipe(
21
+ Type.Obj({
22
+ typename: 'dxos.org/type/Document',
23
+ version: '0.1.0',
24
+ }),
25
+ LabelAnnotation.set(['name', 'fallbackName']),
26
+ DescriptionAnnotation.set('description'),
27
+ ItemAnnotation.set(true),
28
+ );
29
+
30
+ export type Document = Schema.Schema.Type<typeof Document>;
31
+
32
+ /**
33
+ * Document factory.
34
+ */
35
+ export const make = ({
36
+ content = '',
37
+ ...props
38
+ }: Partial<{ name: string; fallbackName: string; content: string }> = {}) =>
39
+ Obj.make(Document, { ...props, content: Ref.make(Text.make(content)) });
40
+
41
+ /**
42
+ * Plugin settings.
43
+ */
44
+ export const Settings = Schema.mutable(
45
+ Schema.Struct({
46
+ defaultViewMode: EditorViewMode,
47
+ editorInputMode: Schema.optional(EditorInputMode),
48
+ experimental: Schema.optional(Schema.Boolean),
49
+ debug: Schema.optional(Schema.Boolean),
50
+ toolbar: Schema.optional(Schema.Boolean),
51
+ typewriter: Schema.optional(Schema.String),
52
+ // TODO(burdon): Per document settings.
53
+ numberedHeadings: Schema.optional(Schema.Boolean),
54
+ folding: Schema.optional(Schema.Boolean),
55
+ }),
56
+ );
57
+
58
+ export interface Settings extends Schema.Schema.Type<typeof Settings> {}
@@ -0,0 +1,29 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { EditorViewMode } from '@dxos/react-ui-editor/types';
8
+
9
+ import { meta } from '../meta';
10
+
11
+ import { Document } from './Markdown';
12
+
13
+ export class Create extends Schema.TaggedClass<Create>()(`${meta.id}/action/create`, {
14
+ input: Schema.Struct({
15
+ name: Schema.optional(Schema.String),
16
+ content: Schema.optional(Schema.String),
17
+ }),
18
+ output: Schema.Struct({
19
+ object: Document,
20
+ }),
21
+ }) {}
22
+
23
+ export class SetViewMode extends Schema.TaggedClass<SetViewMode>()(`${meta.id}/action/set-view-mode`, {
24
+ input: Schema.Struct({
25
+ id: Schema.String,
26
+ viewMode: EditorViewMode,
27
+ }),
28
+ output: Schema.Void,
29
+ }) {}
@@ -2,5 +2,7 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- export * from './schema';
5
+ export * as MarkdownAction from './MarkdownAction';
6
+ export * as Markdown from './Markdown';
7
+
6
8
  export * from './types';
@@ -2,44 +2,16 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
6
-
7
- import { Type } from '@dxos/echo';
8
5
  import { type Extension } from '@dxos/react-ui-editor';
9
- import { EditorInputMode, EditorViewMode } from '@dxos/react-ui-editor/types';
10
-
11
- import { DocumentType } from './schema';
12
- import { MARKDOWN_PLUGIN } from '../meta';
13
-
14
- const MARKDOWN_ACTION = `${MARKDOWN_PLUGIN}/action`;
15
-
16
- export namespace MarkdownAction {
17
- export class Create extends Schema.TaggedClass<Create>()(MARKDOWN_ACTION, {
18
- input: Schema.Struct({
19
- spaceId: Type.SpaceId,
20
- name: Schema.optional(Schema.String),
21
- content: Schema.optional(Schema.String),
22
- }),
23
- output: Schema.Struct({
24
- object: DocumentType,
25
- }),
26
- }) {}
6
+ import { type EditorViewMode } from '@dxos/react-ui-editor/types';
27
7
 
28
- export class SetViewMode extends Schema.TaggedClass<SetViewMode>()(`${MARKDOWN_ACTION}/set-view-mode`, {
29
- input: Schema.Struct({
30
- id: Schema.String,
31
- viewMode: EditorViewMode,
32
- }),
33
- output: Schema.Void,
34
- }) {}
35
- }
8
+ import { type Document } from './Markdown';
36
9
 
37
- export type MarkdownProperties = Record<string, any>;
10
+ // TODO(burdon): Remove these from ./types since not part of plugin-markdown API?
11
+ // TODO(wittjosiah): MarkdownExtensionProvider is a part of the MarkdownCapabilities api which should be in ./types.
38
12
 
39
- // TODO(burdon): Async.
40
- export type MarkdownExtensionProvider = (props: { document?: DocumentType }) => Extension | undefined;
41
-
42
- export type OnChange = (text: string) => void;
13
+ // TODO(burdon): Async?
14
+ export type MarkdownExtensionProvider = (props: { document?: Document }) => Extension | undefined;
43
15
 
44
16
  export type MarkdownPluginState = {
45
17
  // Codemirror extensions provided by other plugins.
@@ -49,19 +21,3 @@ export type MarkdownPluginState = {
49
21
  // View mode per document.
50
22
  viewMode: Record<string, EditorViewMode>;
51
23
  };
52
-
53
- export const MarkdownSettingsSchema = Schema.mutable(
54
- Schema.Struct({
55
- defaultViewMode: EditorViewMode,
56
- editorInputMode: Schema.optional(EditorInputMode),
57
- experimental: Schema.optional(Schema.Boolean),
58
- debug: Schema.optional(Schema.Boolean),
59
- toolbar: Schema.optional(Schema.Boolean),
60
- typewriter: Schema.optional(Schema.String),
61
- // TODO(burdon): Per document settings.
62
- numberedHeadings: Schema.optional(Schema.Boolean),
63
- folding: Schema.optional(Schema.Boolean),
64
- }),
65
- );
66
-
67
- export type MarkdownSettingsProps = Schema.Schema.Type<typeof MarkdownSettingsSchema>;
package/src/util.tsx CHANGED
@@ -3,11 +3,25 @@
3
3
  //
4
4
 
5
5
  import { debounce } from '@dxos/async';
6
- import { Obj, Ref } from '@dxos/echo';
6
+ import { Obj } from '@dxos/echo';
7
7
  import { type TypedObjectSerializer } from '@dxos/plugin-space/types';
8
- import { DataType } from '@dxos/schema';
9
8
 
10
- import { DocumentType, type MarkdownProperties } from './types';
9
+ import { Markdown } from './types';
10
+
11
+ /**
12
+ * Checks if an object conforms to the interface needed to render an editor.
13
+ * @deprecated Use Schema.instanceOf(Markdown.Document, data)
14
+ */
15
+ // TODO(burdon): Normalize types (from FilesPlugin).
16
+ export const isEditorModel = (data: any): data is { id: string; text: string } =>
17
+ data &&
18
+ typeof data === 'object' &&
19
+ 'id' in data &&
20
+ typeof data.id === 'string' &&
21
+ 'text' in data &&
22
+ typeof data.text === 'string';
23
+
24
+ export type MarkdownProperties = Record<string, any>;
11
25
 
12
26
  export const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>
13
27
  (Obj.isObject(data) as boolean)
@@ -18,22 +32,27 @@ export const isMarkdownProperties = (data: unknown): data is MarkdownProperties
18
32
 
19
33
  const nonTitleChars = /[^\w ]/g;
20
34
 
21
- export const getFallbackName = (content: string) => {
35
+ export const getFallbackName = (content = '') => {
22
36
  return content.substring(0, 31).split('\n')[0].replaceAll(nonTitleChars, '').trim();
23
37
  };
24
38
 
25
- export const getAbstract = (content: string) => {
26
- return content.substring(0, 128).split('\n')[0].replaceAll(nonTitleChars, '').trim();
39
+ export const getContentSnippet = (content = '') => {
40
+ const abstract = content
41
+ .split('\n')
42
+ .filter((line) => !line.startsWith('#'))
43
+ .filter((line) => line.trim() !== '');
44
+
45
+ return abstract.length > 0 ? abstract[0].replaceAll(nonTitleChars, '').trim() + '...' : '';
27
46
  };
28
47
 
29
- export const setFallbackName = debounce((doc: DocumentType, content: string) => {
48
+ export const setFallbackName = debounce((doc: Markdown.Document, content = '') => {
30
49
  const name = getFallbackName(content);
31
50
  if (doc.fallbackName !== name) {
32
51
  doc.fallbackName = name;
33
52
  }
34
53
  }, 200);
35
54
 
36
- export const serializer: TypedObjectSerializer<DocumentType> = {
55
+ export const serializer: TypedObjectSerializer<Markdown.Document> = {
37
56
  serialize: async ({ object }): Promise<string> => {
38
57
  const { content } = await object.content.load();
39
58
  return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content });
@@ -41,6 +60,6 @@ export const serializer: TypedObjectSerializer<DocumentType> = {
41
60
 
42
61
  deserialize: async ({ content: serialized }) => {
43
62
  const { name, fallbackName, content } = JSON.parse(serialized);
44
- return Obj.make(DocumentType, { name, fallbackName, content: Ref.make(Obj.make(DataType.Text, { content })) });
63
+ return Markdown.make({ name, fallbackName, content });
45
64
  },
46
65
  };