@dxos/plugin-markdown 0.8.4-main.70d3990 → 0.8.4-main.7996785055

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 (452) hide show
  1. package/dist/lib/browser/MarkdownCard-ZHQBD4AV.mjs +122 -0
  2. package/dist/lib/browser/MarkdownCard-ZHQBD4AV.mjs.map +7 -0
  3. package/dist/lib/browser/MarkdownContainer-XEUOYBPA.mjs +125 -0
  4. package/dist/lib/browser/MarkdownContainer-XEUOYBPA.mjs.map +7 -0
  5. package/dist/lib/browser/MarkdownSettings-OD7AJSSJ.mjs +106 -0
  6. package/dist/lib/browser/MarkdownSettings-OD7AJSSJ.mjs.map +7 -0
  7. package/dist/lib/browser/{anchor-sort-3MYLO74J.mjs → anchor-sort-PSCEA6EJ.mjs} +9 -7
  8. package/dist/lib/browser/anchor-sort-PSCEA6EJ.mjs.map +7 -0
  9. package/dist/lib/browser/app-graph-serializer-DAVFEX7R.mjs +63 -0
  10. package/dist/lib/browser/app-graph-serializer-DAVFEX7R.mjs.map +7 -0
  11. package/dist/lib/browser/blueprint-definition-LHVNOMJT.mjs +19 -0
  12. package/dist/lib/browser/blueprint-definition-LHVNOMJT.mjs.map +7 -0
  13. package/dist/lib/browser/blueprints/index.mjs +10 -0
  14. package/dist/lib/browser/chunk-5VT6IW5B.mjs +84 -0
  15. package/dist/lib/browser/chunk-5VT6IW5B.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-NXT2E2BG.mjs → chunk-CJSWKCKU.mjs} +7 -4
  17. package/dist/lib/browser/chunk-CJSWKCKU.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-G6BRWY3G.mjs +158 -0
  19. package/dist/lib/browser/chunk-G6BRWY3G.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-M2XFCKXA.mjs +8 -0
  21. package/dist/lib/browser/chunk-M2XFCKXA.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-BQTYJOFB.mjs → chunk-RYZHVXZ5.mjs} +2 -2
  23. package/dist/lib/browser/chunk-RYZHVXZ5.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-XWYF5LFE.mjs +8 -0
  25. package/dist/lib/browser/chunk-XWYF5LFE.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-YALLVET2.mjs +757 -0
  27. package/dist/lib/browser/chunk-YALLVET2.mjs.map +7 -0
  28. package/dist/lib/browser/chunk-ZN75YHSV.mjs +50 -0
  29. package/dist/lib/browser/chunk-ZN75YHSV.mjs.map +7 -0
  30. package/dist/lib/browser/cli/index.mjs +44 -0
  31. package/dist/lib/browser/cli/index.mjs.map +7 -0
  32. package/dist/lib/browser/create-QD27F6E7.mjs +30 -0
  33. package/dist/lib/browser/create-QD27F6E7.mjs.map +7 -0
  34. package/dist/lib/browser/create-markdown-LEAJPLHT.mjs +22 -0
  35. package/dist/lib/browser/create-markdown-LEAJPLHT.mjs.map +7 -0
  36. package/dist/lib/browser/index.mjs +132 -128
  37. package/dist/lib/browser/index.mjs.map +4 -4
  38. package/dist/lib/browser/meta.json +1 -1
  39. package/dist/lib/browser/open-YDABYPCA.mjs +21 -0
  40. package/dist/lib/browser/open-YDABYPCA.mjs.map +7 -0
  41. package/dist/lib/browser/operation-handler-W3QXMMMQ.mjs +17 -0
  42. package/dist/lib/browser/operation-handler-W3QXMMMQ.mjs.map +7 -0
  43. package/dist/lib/browser/operations/index.mjs +13 -0
  44. package/dist/lib/browser/react-surface-N7FV3PXH.mjs +120 -0
  45. package/dist/lib/browser/react-surface-N7FV3PXH.mjs.map +7 -0
  46. package/dist/lib/browser/scroll-to-anchor-3CGV3XI7.mjs +49 -0
  47. package/dist/lib/browser/scroll-to-anchor-3CGV3XI7.mjs.map +7 -0
  48. package/dist/lib/browser/set-view-mode-XLD3RXW4.mjs +26 -0
  49. package/dist/lib/browser/set-view-mode-XLD3RXW4.mjs.map +7 -0
  50. package/dist/lib/browser/settings-3UMXG4TP.mjs +38 -0
  51. package/dist/lib/browser/settings-3UMXG4TP.mjs.map +7 -0
  52. package/dist/lib/browser/state-IYKJ6EV3.mjs +48 -0
  53. package/dist/lib/browser/state-IYKJ6EV3.mjs.map +7 -0
  54. package/dist/lib/browser/types/index.mjs +8 -4
  55. package/dist/lib/browser/update-WKAMI4AD.mjs +45 -0
  56. package/dist/lib/browser/update-WKAMI4AD.mjs.map +7 -0
  57. package/dist/lib/node-esm/MarkdownCard-VB3NHVX4.mjs +123 -0
  58. package/dist/lib/node-esm/MarkdownCard-VB3NHVX4.mjs.map +7 -0
  59. package/dist/lib/node-esm/MarkdownContainer-25WFZLCC.mjs +126 -0
  60. package/dist/lib/node-esm/MarkdownContainer-25WFZLCC.mjs.map +7 -0
  61. package/dist/lib/node-esm/MarkdownSettings-U7GJ4OP3.mjs +107 -0
  62. package/dist/lib/node-esm/MarkdownSettings-U7GJ4OP3.mjs.map +7 -0
  63. package/dist/lib/node-esm/{anchor-sort-W4HCTYUQ.mjs → anchor-sort-6GD4SGQL.mjs} +9 -7
  64. package/dist/lib/node-esm/anchor-sort-6GD4SGQL.mjs.map +7 -0
  65. package/dist/lib/node-esm/app-graph-serializer-JURUUUBI.mjs +64 -0
  66. package/dist/lib/node-esm/app-graph-serializer-JURUUUBI.mjs.map +7 -0
  67. package/dist/lib/node-esm/blueprint-definition-3LUZEJ4Z.mjs +20 -0
  68. package/dist/lib/node-esm/blueprint-definition-3LUZEJ4Z.mjs.map +7 -0
  69. package/dist/lib/node-esm/blueprints/index.mjs +11 -0
  70. package/dist/lib/node-esm/chunk-6LHNAAMP.mjs +159 -0
  71. package/dist/lib/node-esm/chunk-6LHNAAMP.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-CRUJMQR2.mjs +758 -0
  73. package/dist/lib/node-esm/chunk-CRUJMQR2.mjs.map +7 -0
  74. package/dist/lib/node-esm/{chunk-SHAMSMKQ.mjs → chunk-CW4FZNMZ.mjs} +2 -2
  75. package/dist/lib/node-esm/chunk-CW4FZNMZ.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-EPNCYA73.mjs +85 -0
  77. package/dist/lib/node-esm/chunk-EPNCYA73.mjs.map +7 -0
  78. package/dist/lib/node-esm/{chunk-I5JSQBPI.mjs → chunk-FC3GPLJG.mjs} +7 -4
  79. package/dist/lib/node-esm/chunk-FC3GPLJG.mjs.map +7 -0
  80. package/dist/lib/node-esm/chunk-G6W4DJBM.mjs +51 -0
  81. package/dist/lib/node-esm/chunk-G6W4DJBM.mjs.map +7 -0
  82. package/dist/lib/node-esm/chunk-JLOCBILO.mjs +10 -0
  83. package/dist/lib/node-esm/chunk-JLOCBILO.mjs.map +7 -0
  84. package/dist/lib/node-esm/chunk-YWQQYV76.mjs +10 -0
  85. package/dist/lib/node-esm/chunk-YWQQYV76.mjs.map +7 -0
  86. package/dist/lib/node-esm/cli/index.mjs +45 -0
  87. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  88. package/dist/lib/node-esm/create-X7H4LYI5.mjs +31 -0
  89. package/dist/lib/node-esm/create-X7H4LYI5.mjs.map +7 -0
  90. package/dist/lib/node-esm/create-markdown-7POKQDVQ.mjs +23 -0
  91. package/dist/lib/node-esm/create-markdown-7POKQDVQ.mjs.map +7 -0
  92. package/dist/lib/node-esm/index.mjs +132 -128
  93. package/dist/lib/node-esm/index.mjs.map +4 -4
  94. package/dist/lib/node-esm/meta.json +1 -1
  95. package/dist/lib/node-esm/open-FZVFWXC7.mjs +22 -0
  96. package/dist/lib/node-esm/open-FZVFWXC7.mjs.map +7 -0
  97. package/dist/lib/node-esm/operation-handler-TP26H7QE.mjs +18 -0
  98. package/dist/lib/node-esm/operation-handler-TP26H7QE.mjs.map +7 -0
  99. package/dist/lib/node-esm/operations/index.mjs +14 -0
  100. package/dist/lib/node-esm/react-surface-XSKLSF6A.mjs +121 -0
  101. package/dist/lib/node-esm/react-surface-XSKLSF6A.mjs.map +7 -0
  102. package/dist/lib/node-esm/scroll-to-anchor-KWBJLM5Q.mjs +50 -0
  103. package/dist/lib/node-esm/scroll-to-anchor-KWBJLM5Q.mjs.map +7 -0
  104. package/dist/lib/node-esm/set-view-mode-FFEKYLU3.mjs +27 -0
  105. package/dist/lib/node-esm/set-view-mode-FFEKYLU3.mjs.map +7 -0
  106. package/dist/lib/node-esm/settings-UAN22O42.mjs +39 -0
  107. package/dist/lib/node-esm/settings-UAN22O42.mjs.map +7 -0
  108. package/dist/lib/node-esm/state-62IBFPTK.mjs +49 -0
  109. package/dist/lib/node-esm/state-62IBFPTK.mjs.map +7 -0
  110. package/dist/lib/node-esm/types/index.mjs +8 -4
  111. package/dist/lib/node-esm/update-WPEFBY4M.mjs +46 -0
  112. package/dist/lib/node-esm/update-WPEFBY4M.mjs.map +7 -0
  113. package/dist/types/src/MarkdownPlugin.d.ts +2 -1
  114. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  115. package/dist/types/src/blueprints/index.d.ts +2 -0
  116. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  117. package/dist/types/src/blueprints/markdown-blueprint.d.ts +4 -0
  118. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +6 -0
  120. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/anchor-sort/index.d.ts +3 -0
  122. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +1 -0
  123. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +5 -0
  124. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -0
  125. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +3 -0
  126. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +5 -0
  128. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  129. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  130. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  131. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
  132. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  134. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  135. package/dist/types/src/capabilities/index.d.ts +6 -13
  136. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  137. package/dist/types/src/capabilities/operation-handler/index.d.ts +4 -0
  138. package/dist/types/src/capabilities/operation-handler/index.d.ts.map +1 -0
  139. package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts +6 -0
  140. package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts.map +1 -0
  141. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  142. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  143. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  144. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  145. package/dist/types/src/capabilities/settings/index.d.ts +3 -0
  146. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  147. package/dist/types/src/capabilities/settings/settings.d.ts +7 -0
  148. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  149. package/dist/types/src/capabilities/state/index.d.ts +3 -0
  150. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  151. package/dist/types/src/capabilities/state/state.d.ts +6 -0
  152. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  153. package/dist/types/src/cli/index.d.ts +2 -0
  154. package/dist/types/src/cli/index.d.ts.map +1 -0
  155. package/dist/types/src/cli/plugin.d.ts +3 -0
  156. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  157. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +1 -1
  158. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
  159. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +17 -11
  160. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  161. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +2 -2
  162. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  163. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +16 -10
  164. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  165. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +10 -5
  166. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  167. package/dist/types/src/components/index.d.ts +1 -5
  168. package/dist/types/src/components/index.d.ts.map +1 -1
  169. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts +8 -0
  170. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  171. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
  172. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  173. package/dist/types/src/{components → containers}/MarkdownCard/index.d.ts +0 -1
  174. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
  175. package/dist/types/src/containers/MarkdownCard/snippet.d.ts +15 -0
  176. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
  177. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts +30 -0
  178. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -0
  179. package/dist/types/src/{components → containers/MarkdownContainer}/MarkdownContainer.stories.d.ts +31 -1
  180. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -0
  181. package/dist/types/src/containers/MarkdownContainer/index.d.ts +3 -0
  182. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -0
  183. package/dist/types/src/containers/MarkdownSettings/MarkdownSettings.d.ts +8 -0
  184. package/dist/types/src/containers/MarkdownSettings/MarkdownSettings.d.ts.map +1 -0
  185. package/dist/types/src/containers/MarkdownSettings/index.d.ts +3 -0
  186. package/dist/types/src/containers/MarkdownSettings/index.d.ts.map +1 -0
  187. package/dist/types/src/containers/index.d.ts +6 -0
  188. package/dist/types/src/containers/index.d.ts.map +1 -0
  189. package/dist/types/src/hooks/index.d.ts +0 -1
  190. package/dist/types/src/hooks/index.d.ts.map +1 -1
  191. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
  192. package/dist/types/src/hooks/useExtensions.d.ts +7 -5
  193. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  194. package/dist/types/src/hooks/useLinkQuery.d.ts +2 -2
  195. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  196. package/dist/types/src/index.d.ts +2 -2
  197. package/dist/types/src/index.d.ts.map +1 -1
  198. package/dist/types/src/meta.d.ts +2 -2
  199. package/dist/types/src/meta.d.ts.map +1 -1
  200. package/dist/types/src/operations/create-markdown.d.ts +5 -0
  201. package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
  202. package/dist/types/src/operations/create.d.ts +5 -0
  203. package/dist/types/src/operations/create.d.ts.map +1 -0
  204. package/dist/types/src/operations/create.test.d.ts.map +1 -0
  205. package/dist/types/src/operations/definitions.d.ts +61 -0
  206. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  207. package/dist/types/src/operations/index.d.ts +4 -0
  208. package/dist/types/src/operations/index.d.ts.map +1 -0
  209. package/dist/types/src/operations/open.d.ts +5 -0
  210. package/dist/types/src/operations/open.d.ts.map +1 -0
  211. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  212. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  213. package/dist/types/src/operations/set-view-mode.d.ts +5 -0
  214. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
  215. package/dist/types/src/operations/update.d.ts +5 -0
  216. package/dist/types/src/operations/update.d.ts.map +1 -0
  217. package/dist/types/src/operations/update.test.d.ts.map +1 -0
  218. package/dist/types/src/testing.d.ts +2 -2
  219. package/dist/types/src/testing.d.ts.map +1 -1
  220. package/dist/types/src/translations.d.ts +30 -0
  221. package/dist/types/src/translations.d.ts.map +1 -1
  222. package/dist/types/src/types/Markdown.d.ts +13 -13
  223. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  224. package/dist/types/src/types/capabilities.d.ts +34 -0
  225. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  226. package/dist/types/src/types/events.d.ts +5 -0
  227. package/dist/types/src/types/events.d.ts.map +1 -0
  228. package/dist/types/src/types/index.d.ts +2 -1
  229. package/dist/types/src/types/index.d.ts.map +1 -1
  230. package/dist/types/src/types/types.d.ts +2 -2
  231. package/dist/types/src/types/types.d.ts.map +1 -1
  232. package/dist/types/src/util.d.ts +4 -1
  233. package/dist/types/src/util.d.ts.map +1 -1
  234. package/dist/types/src/util.test.d.ts +2 -0
  235. package/dist/types/src/util.test.d.ts.map +1 -0
  236. package/dist/types/tsconfig.tsbuildinfo +1 -1
  237. package/package.json +98 -67
  238. package/src/MarkdownPlugin.tsx +70 -79
  239. package/src/blueprints/index.ts +5 -0
  240. package/src/blueprints/markdown-blueprint.ts +44 -0
  241. package/src/capabilities/anchor-sort/anchor-sort.ts +37 -0
  242. package/src/capabilities/anchor-sort/index.ts +7 -0
  243. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +64 -0
  244. package/src/capabilities/app-graph-serializer/index.ts +7 -0
  245. package/src/capabilities/artifact-definition/artifact-definition.ts +110 -0
  246. package/src/capabilities/artifact-definition/index.ts +7 -0
  247. package/src/capabilities/blueprint-definition/blueprint-definition.ts +17 -0
  248. package/src/capabilities/blueprint-definition/index.ts +7 -0
  249. package/src/capabilities/index.ts +6 -11
  250. package/src/capabilities/operation-handler/index.ts +11 -0
  251. package/src/capabilities/operation-handler/operation-handler.ts +16 -0
  252. package/src/capabilities/react-surface/index.ts +7 -0
  253. package/src/capabilities/react-surface/react-surface.tsx +120 -0
  254. package/src/capabilities/settings/index.ts +7 -0
  255. package/src/capabilities/settings/settings.ts +37 -0
  256. package/src/capabilities/state/index.ts +7 -0
  257. package/src/capabilities/state/state.ts +47 -0
  258. package/src/cli/index.ts +5 -0
  259. package/src/cli/plugin.ts +40 -0
  260. package/src/components/MarkdownEditor/FileUpload.tsx +2 -2
  261. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +35 -36
  262. package/src/components/MarkdownEditor/MarkdownEditor.tsx +74 -44
  263. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +62 -25
  264. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +48 -53
  265. package/src/components/index.ts +2 -9
  266. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +68 -0
  267. package/src/containers/MarkdownCard/MarkdownCard.tsx +57 -0
  268. package/src/{components → containers}/MarkdownCard/index.ts +0 -2
  269. package/src/containers/MarkdownCard/snippet.ts +75 -0
  270. package/src/containers/MarkdownContainer/MarkdownContainer.stories.tsx +133 -0
  271. package/src/containers/MarkdownContainer/MarkdownContainer.tsx +134 -0
  272. package/src/containers/MarkdownContainer/index.ts +6 -0
  273. package/src/containers/MarkdownSettings/MarkdownSettings.tsx +122 -0
  274. package/src/containers/MarkdownSettings/index.ts +7 -0
  275. package/src/containers/index.ts +11 -0
  276. package/src/hooks/index.ts +0 -1
  277. package/src/hooks/useEditorMenuOptions.ts +10 -13
  278. package/src/hooks/useExtensions.tsx +88 -106
  279. package/src/hooks/useLinkQuery.ts +16 -14
  280. package/src/index.ts +3 -2
  281. package/src/meta.ts +3 -3
  282. package/src/operations/create-markdown.ts +21 -0
  283. package/src/operations/create.conversations.json +1 -0
  284. package/src/operations/create.test.ts +93 -0
  285. package/src/operations/create.ts +27 -0
  286. package/src/operations/definitions.ts +119 -0
  287. package/src/operations/index.ts +16 -0
  288. package/src/operations/open.ts +25 -0
  289. package/src/operations/scroll-to-anchor.ts +40 -0
  290. package/src/operations/set-view-mode.ts +25 -0
  291. package/src/operations/update.conversations.json +1 -0
  292. package/src/operations/update.test.ts +216 -0
  293. package/src/operations/update.ts +51 -0
  294. package/src/testing.ts +4 -4
  295. package/src/translations.ts +3 -0
  296. package/src/types/Markdown.ts +15 -7
  297. package/src/types/capabilities.ts +50 -0
  298. package/src/types/events.ts +14 -0
  299. package/src/types/index.ts +2 -1
  300. package/src/types/types.ts +3 -2
  301. package/src/util.test.ts +44 -0
  302. package/src/util.tsx +76 -6
  303. package/dist/lib/browser/MarkdownCard-TC3GGUSX.mjs +0 -12
  304. package/dist/lib/browser/MarkdownContainer-YF22DV4M.mjs +0 -15
  305. package/dist/lib/browser/anchor-sort-3MYLO74J.mjs.map +0 -7
  306. package/dist/lib/browser/app-graph-serializer-BZJ4TQOE.mjs +0 -51
  307. package/dist/lib/browser/app-graph-serializer-BZJ4TQOE.mjs.map +0 -7
  308. package/dist/lib/browser/blueprint-definition-HED54GGW.mjs +0 -13
  309. package/dist/lib/browser/chunk-3IPVL3E4.mjs +0 -20
  310. package/dist/lib/browser/chunk-3IPVL3E4.mjs.map +0 -7
  311. package/dist/lib/browser/chunk-BE3IO2CM.mjs +0 -150
  312. package/dist/lib/browser/chunk-BE3IO2CM.mjs.map +0 -7
  313. package/dist/lib/browser/chunk-BQTYJOFB.mjs.map +0 -7
  314. package/dist/lib/browser/chunk-CN35HEBX.mjs +0 -79
  315. package/dist/lib/browser/chunk-CN35HEBX.mjs.map +0 -7
  316. package/dist/lib/browser/chunk-DLZ5RR3P.mjs +0 -96
  317. package/dist/lib/browser/chunk-DLZ5RR3P.mjs.map +0 -7
  318. package/dist/lib/browser/chunk-IBCHVMZW.mjs +0 -16
  319. package/dist/lib/browser/chunk-IBCHVMZW.mjs.map +0 -7
  320. package/dist/lib/browser/chunk-NXT2E2BG.mjs.map +0 -7
  321. package/dist/lib/browser/chunk-OKNQ57GF.mjs +0 -51
  322. package/dist/lib/browser/chunk-OKNQ57GF.mjs.map +0 -7
  323. package/dist/lib/browser/chunk-V7P7EIWG.mjs +0 -829
  324. package/dist/lib/browser/chunk-V7P7EIWG.mjs.map +0 -7
  325. package/dist/lib/browser/intent-resolver-55ASQRIW.mjs +0 -62
  326. package/dist/lib/browser/intent-resolver-55ASQRIW.mjs.map +0 -7
  327. package/dist/lib/browser/react-surface-GPD6T435.mjs +0 -211
  328. package/dist/lib/browser/react-surface-GPD6T435.mjs.map +0 -7
  329. package/dist/lib/browser/settings-G3ZOXJQY.mjs +0 -28
  330. package/dist/lib/browser/settings-G3ZOXJQY.mjs.map +0 -7
  331. package/dist/lib/browser/state-BTUKVZHY.mjs +0 -37
  332. package/dist/lib/browser/state-BTUKVZHY.mjs.map +0 -7
  333. package/dist/lib/browser/toolkit.mjs +0 -13
  334. package/dist/lib/node-esm/MarkdownCard-FTEHVH7P.mjs +0 -13
  335. package/dist/lib/node-esm/MarkdownCard-FTEHVH7P.mjs.map +0 -7
  336. package/dist/lib/node-esm/MarkdownContainer-L75AIJFM.mjs +0 -16
  337. package/dist/lib/node-esm/MarkdownContainer-L75AIJFM.mjs.map +0 -7
  338. package/dist/lib/node-esm/anchor-sort-W4HCTYUQ.mjs.map +0 -7
  339. package/dist/lib/node-esm/app-graph-serializer-OCTHXWLF.mjs +0 -52
  340. package/dist/lib/node-esm/app-graph-serializer-OCTHXWLF.mjs.map +0 -7
  341. package/dist/lib/node-esm/blueprint-definition-HAQGJOMQ.mjs +0 -14
  342. package/dist/lib/node-esm/blueprint-definition-HAQGJOMQ.mjs.map +0 -7
  343. package/dist/lib/node-esm/chunk-3DN4DPVA.mjs +0 -151
  344. package/dist/lib/node-esm/chunk-3DN4DPVA.mjs.map +0 -7
  345. package/dist/lib/node-esm/chunk-7GN66TDQ.mjs +0 -52
  346. package/dist/lib/node-esm/chunk-7GN66TDQ.mjs.map +0 -7
  347. package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs +0 -17
  348. package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs.map +0 -7
  349. package/dist/lib/node-esm/chunk-I5JSQBPI.mjs.map +0 -7
  350. package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs.map +0 -7
  351. package/dist/lib/node-esm/chunk-TYUGABTD.mjs +0 -22
  352. package/dist/lib/node-esm/chunk-TYUGABTD.mjs.map +0 -7
  353. package/dist/lib/node-esm/chunk-UVLACSAE.mjs +0 -830
  354. package/dist/lib/node-esm/chunk-UVLACSAE.mjs.map +0 -7
  355. package/dist/lib/node-esm/chunk-YFRTKXTB.mjs +0 -80
  356. package/dist/lib/node-esm/chunk-YFRTKXTB.mjs.map +0 -7
  357. package/dist/lib/node-esm/chunk-ZNS55FS3.mjs +0 -97
  358. package/dist/lib/node-esm/chunk-ZNS55FS3.mjs.map +0 -7
  359. package/dist/lib/node-esm/intent-resolver-DTBVWCNO.mjs +0 -63
  360. package/dist/lib/node-esm/intent-resolver-DTBVWCNO.mjs.map +0 -7
  361. package/dist/lib/node-esm/react-surface-QWG7CJ5U.mjs +0 -212
  362. package/dist/lib/node-esm/react-surface-QWG7CJ5U.mjs.map +0 -7
  363. package/dist/lib/node-esm/settings-IBFFCGNL.mjs +0 -29
  364. package/dist/lib/node-esm/settings-IBFFCGNL.mjs.map +0 -7
  365. package/dist/lib/node-esm/state-K6EH7SRZ.mjs +0 -38
  366. package/dist/lib/node-esm/state-K6EH7SRZ.mjs.map +0 -7
  367. package/dist/lib/node-esm/toolkit.mjs +0 -14
  368. package/dist/lib/node-esm/toolkit.mjs.map +0 -7
  369. package/dist/types/src/capabilities/anchor-sort.d.ts +0 -4
  370. package/dist/types/src/capabilities/anchor-sort.d.ts.map +0 -1
  371. package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -4
  372. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
  373. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -3
  374. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  375. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -7
  376. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  377. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  378. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  379. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  380. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  381. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  382. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  383. package/dist/types/src/capabilities/settings.d.ts +0 -4
  384. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  385. package/dist/types/src/capabilities/state.d.ts +0 -11
  386. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  387. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +0 -7
  388. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +0 -1
  389. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +0 -9
  390. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +0 -1
  391. package/dist/types/src/components/MarkdownCard/index.d.ts.map +0 -1
  392. package/dist/types/src/components/MarkdownContainer.d.ts +0 -14
  393. package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
  394. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
  395. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +0 -6
  396. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +0 -1
  397. package/dist/types/src/components/MarkdownSettings/index.d.ts +0 -2
  398. package/dist/types/src/components/MarkdownSettings/index.d.ts.map +0 -1
  399. package/dist/types/src/components/Suggestions.stories.d.ts +0 -11
  400. package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
  401. package/dist/types/src/events.d.ts +0 -4
  402. package/dist/types/src/events.d.ts.map +0 -1
  403. package/dist/types/src/functions/create.d.ts +0 -8
  404. package/dist/types/src/functions/create.d.ts.map +0 -1
  405. package/dist/types/src/functions/create.test.d.ts.map +0 -1
  406. package/dist/types/src/functions/index.d.ts +0 -18
  407. package/dist/types/src/functions/index.d.ts.map +0 -1
  408. package/dist/types/src/functions/open.d.ts +0 -7
  409. package/dist/types/src/functions/open.d.ts.map +0 -1
  410. package/dist/types/src/functions/update.d.ts +0 -6
  411. package/dist/types/src/functions/update.d.ts.map +0 -1
  412. package/dist/types/src/functions/update.test.d.ts.map +0 -1
  413. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
  414. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
  415. package/dist/types/src/toolkit.d.ts +0 -3
  416. package/dist/types/src/toolkit.d.ts.map +0 -1
  417. package/dist/types/src/types/MarkdownAction.d.ts +0 -34
  418. package/dist/types/src/types/MarkdownAction.d.ts.map +0 -1
  419. package/src/capabilities/anchor-sort.ts +0 -31
  420. package/src/capabilities/app-graph-serializer.ts +0 -54
  421. package/src/capabilities/artifact-definition.ts +0 -112
  422. package/src/capabilities/blueprint-definition.ts +0 -43
  423. package/src/capabilities/capabilities.ts +0 -22
  424. package/src/capabilities/intent-resolver.ts +0 -58
  425. package/src/capabilities/react-surface.tsx +0 -93
  426. package/src/capabilities/settings.ts +0 -25
  427. package/src/capabilities/state.ts +0 -31
  428. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +0 -76
  429. package/src/components/MarkdownCard/MarkdownCard.tsx +0 -89
  430. package/src/components/MarkdownContainer.stories.tsx +0 -136
  431. package/src/components/MarkdownContainer.tsx +0 -113
  432. package/src/components/MarkdownSettings/MarkdownSettings.tsx +0 -108
  433. package/src/components/MarkdownSettings/index.ts +0 -5
  434. package/src/components/Suggestions.stories.tsx +0 -226
  435. package/src/events.ts +0 -11
  436. package/src/functions/create.conversations.json +0 -1
  437. package/src/functions/create.test.ts +0 -128
  438. package/src/functions/create.ts +0 -34
  439. package/src/functions/index.ts +0 -13
  440. package/src/functions/open.ts +0 -32
  441. package/src/functions/update.conversations.json +0 -1
  442. package/src/functions/update.test.ts +0 -151
  443. package/src/functions/update.ts +0 -37
  444. package/src/hooks/useSelectCurrentThread.tsx +0 -66
  445. package/src/toolkit.ts +0 -6
  446. package/src/types/MarkdownAction.ts +0 -29
  447. /package/dist/lib/browser/{MarkdownCard-TC3GGUSX.mjs.map → blueprints/index.mjs.map} +0 -0
  448. /package/dist/lib/browser/{MarkdownContainer-YF22DV4M.mjs.map → operations/index.mjs.map} +0 -0
  449. /package/dist/lib/{browser/blueprint-definition-HED54GGW.mjs.map → node-esm/blueprints/index.mjs.map} +0 -0
  450. /package/dist/lib/{browser/toolkit.mjs.map → node-esm/operations/index.mjs.map} +0 -0
  451. /package/dist/types/src/{functions → operations}/create.test.d.ts +0 -0
  452. /package/dist/types/src/{functions → operations}/update.test.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/functions/index.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;CAI5B,CAAC"}
@@ -1,7 +0,0 @@
1
- declare const _default: import("@dxos/functions").FunctionDefinition<{
2
- readonly id: string;
3
- }, {
4
- readonly content: string;
5
- }, import("@dxos/functions").FunctionServices>;
6
- export default _default;
7
- //# sourceMappingURL=open.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../../src/functions/open.ts"],"names":[],"mappings":";;;;;AAYA,wBAmBG"}
@@ -1,6 +0,0 @@
1
- declare const _default: import("@dxos/functions").FunctionDefinition<{
2
- readonly id: string;
3
- readonly diffs: readonly string[];
4
- }, void, import("@dxos/functions").FunctionServices>;
5
- export default _default;
6
- //# sourceMappingURL=update.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/functions/update.ts"],"names":[],"mappings":";;;;AAeA,wBAqBG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.test.d.ts","sourceRoot":"","sources":["../../../../src/functions/update.test.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import { EditorView } from '@codemirror/view';
2
- /**
3
- * Handle scrolling and selection of the current thread in a markdown editor.
4
- */
5
- export declare const useSelectCurrentThread: (editorView: EditorView | null, documentId: string) => void;
6
- //# sourceMappingURL=useSelectCurrentThread.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSelectCurrentThread.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useSelectCurrentThread.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAW9C;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,YAAY,UAAU,GAAG,IAAI,EAAE,YAAY,MAAM,SA+CvF,CAAC"}
@@ -1,3 +0,0 @@
1
- export { MarkdownBlueprint, MARKDOWN_BLUEPRINT_KEY } from './capabilities/blueprint-definition';
2
- export { MarkdownFunction } from './functions';
3
- //# sourceMappingURL=toolkit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolkit.d.ts","sourceRoot":"","sources":["../../../src/toolkit.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,34 +0,0 @@
1
- import * as Schema from 'effect/Schema';
2
- declare const Create_base: Schema.TaggedClass<Create, `${string}/action/create`, {
3
- readonly _tag: Schema.tag<`${string}/action/create`>;
4
- } & {
5
- input: Schema.Struct<{
6
- name: Schema.optional<typeof Schema.String>;
7
- content: Schema.optional<typeof Schema.String>;
8
- }>;
9
- output: Schema.Struct<{
10
- object: import("@dxos/echo/Type").obj<Schema.Struct<{
11
- name: Schema.optional<typeof Schema.String>;
12
- description: Schema.optional<typeof Schema.String>;
13
- fallbackName: Schema.optional<typeof Schema.String>;
14
- content: import("@dxos/echo/internal").RefSchema<import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & {
15
- content: string;
16
- }>;
17
- }>>;
18
- }>;
19
- }>;
20
- export declare class Create extends Create_base {
21
- }
22
- declare const SetViewMode_base: Schema.TaggedClass<SetViewMode, `${string}/action/set-view-mode`, {
23
- readonly _tag: Schema.tag<`${string}/action/set-view-mode`>;
24
- } & {
25
- input: Schema.Struct<{
26
- id: typeof Schema.String;
27
- viewMode: Schema.Schema<"source" | "preview" | "readonly", "source" | "preview" | "readonly", never>;
28
- }>;
29
- output: typeof Schema.Void;
30
- }>;
31
- export declare class SetViewMode extends SetViewMode_base {
32
- }
33
- export {};
34
- //# sourceMappingURL=MarkdownAction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownAction.d.ts","sourceRoot":"","sources":["../../../../src/types/MarkdownAction.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;;;;;;;;;;;;;;;;;;;AAQxC,qBAAa,MAAO,SAAQ,WAQ1B;CAAG;;;;;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAM/B;CAAG"}
@@ -1,31 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capabilities, contributes } from '@dxos/app-framework';
6
- import { Relation } from '@dxos/echo';
7
- import { createDocAccessor, getRangeFromCursor } from '@dxos/echo-db';
8
- import { type AnchoredTo } from '@dxos/types';
9
-
10
- import { Markdown } from '../types';
11
-
12
- export default () =>
13
- contributes(Capabilities.AnchorSort, {
14
- key: Markdown.Document.typename,
15
- sort: (anchorA: AnchoredTo.AnchoredTo, anchorB: AnchoredTo.AnchoredTo) => {
16
- const doc = Relation.getTarget(anchorA) as Markdown.Document;
17
- const accessor = doc.content.target ? createDocAccessor(doc.content.target, ['content']) : undefined;
18
- if (doc !== Relation.getTarget(anchorB) || !accessor) {
19
- return 0;
20
- }
21
-
22
- const getStartPosition = (cursor: string | undefined) => {
23
- const range = cursor ? getRangeFromCursor(accessor, cursor) : undefined;
24
- return range?.start ?? Number.MAX_SAFE_INTEGER;
25
- };
26
-
27
- const posA = getStartPosition(anchorA.anchor);
28
- const posB = getStartPosition(anchorB.anchor);
29
- return posA - posB;
30
- },
31
- });
@@ -1,54 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Function from 'effect/Function';
6
-
7
- import { Capabilities, type PluginContext, chain, contributes, createIntent } from '@dxos/app-framework';
8
- import { Obj } from '@dxos/echo';
9
- import { SpaceAction } from '@dxos/plugin-space/types';
10
- import { isSpace } from '@dxos/react-client/echo';
11
- import { Collection } from '@dxos/schema';
12
-
13
- import { translations } from '../translations';
14
- import { Markdown, MarkdownAction } from '../types';
15
-
16
- export default (context: PluginContext) =>
17
- contributes(Capabilities.AppGraphSerializer, [
18
- {
19
- inputType: Markdown.Document.typename,
20
- outputType: 'text/markdown',
21
- // Reconcile with metadata serializers.
22
- serialize: async (node) => {
23
- const doc = node.data;
24
- const content = await doc.content.load();
25
- return {
26
- name:
27
- doc.name ||
28
- doc.fallbackName ||
29
- translations[0]['en-US'][Markdown.Document.typename]['object name placeholder'],
30
- data: content.content,
31
- type: 'text/markdown',
32
- };
33
- },
34
- deserialize: async (data, ancestors) => {
35
- const space = ancestors.find(isSpace);
36
- const target =
37
- ancestors.findLast((ancestor) => Obj.instanceOf(Collection.Collection, ancestor)) ??
38
- space?.properties[Collection.Collection.typename]?.target;
39
- if (!space || !target) {
40
- return;
41
- }
42
-
43
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
44
- const result = await dispatch(
45
- Function.pipe(
46
- createIntent(MarkdownAction.Create, { name: data.name, content: data.data }),
47
- chain(SpaceAction.AddObject, { target }),
48
- ),
49
- );
50
-
51
- return result.data?.object;
52
- },
53
- },
54
- ]);
@@ -1,112 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- // ISSUE(burdon): defineArtifact
6
- // @ts-nocheck
7
-
8
- import * as Function from 'effect/Function';
9
- import * as Schema from 'effect/Schema';
10
-
11
- import { ToolResult, createTool } from '@dxos/ai';
12
- import { Capabilities, chain, contributes, createIntent } from '@dxos/app-framework';
13
- import { ArtifactId, createArtifactElement } from '@dxos/assistant';
14
- import { defineArtifact } from '@dxos/blueprints';
15
- import { Obj } from '@dxos/echo';
16
- import { assertArgument, invariant } from '@dxos/invariant';
17
- import { SpaceAction } from '@dxos/plugin-space/types';
18
- import { Filter } from '@dxos/react-client/echo';
19
-
20
- import { meta } from '../meta';
21
- import { Markdown, MarkdownAction } from '../types';
22
-
23
- export default () => {
24
- const definition = defineArtifact({
25
- id: `artifact:${meta.id}`, // TODO(burdon): meta.id/artifact?
26
- name: meta.name,
27
- instructions: `
28
- The markdown plugin allows you to work with text documents in the current space.
29
- Use these tools to interact with documents, including listing available documents and retrieving their content.
30
- Documents are stored in Markdown format.
31
- `,
32
- schema: Markdown.Document,
33
- tools: [
34
- createTool(meta.id, {
35
- name: 'create',
36
- description: 'Create a new markdown document',
37
- caption: 'Creating document...',
38
- schema: Schema.Struct({
39
- name: Schema.optional(Schema.String).annotations({
40
- description: 'Optional name for the document.',
41
- }),
42
- content: Schema.String.annotations({
43
- description: 'The content of the document.',
44
- }),
45
- }),
46
- execute: async ({ name, content }, { extensions }) => {
47
- invariant(extensions?.space, 'No space');
48
- invariant(extensions?.dispatch, 'No intent dispatcher');
49
-
50
- const intent = Function.pipe(
51
- createIntent(MarkdownAction.Create, {
52
- spaceId: extensions.space.id,
53
- name,
54
- content,
55
- }),
56
- chain(SpaceAction.AddObject, { target: extensions.space }),
57
- );
58
-
59
- const { data, error } = await extensions.dispatch(intent);
60
- if (!data || error) {
61
- return ToolResult.Error(error?.message ?? 'Failed to create document');
62
- }
63
-
64
- return ToolResult.Success(createArtifactElement(data.id));
65
- },
66
- }),
67
- createTool(meta.id, {
68
- name: 'list',
69
- description: 'List all markdown documents in the current space.',
70
- caption: 'Listing markdown documents...',
71
- schema: Schema.Struct({}),
72
- execute: async (_input, { extensions }) => {
73
- invariant(extensions?.space, 'No space');
74
- const space = extensions.space;
75
- const { objects: documents } = await space.db.query(Filter.type(Markdown.Document)).run();
76
- const documentInfo = documents.map((doc) => {
77
- invariant(Obj.instanceOf(Markdown.Document, doc));
78
- return {
79
- id: Obj.getDXN(doc).toString(),
80
- name: doc.name || doc.fallbackName || 'Unnamed Document',
81
- // TODO(ZaymonFC): Include updatedAt?
82
- };
83
- });
84
-
85
- return ToolResult.Success(documentInfo);
86
- },
87
- }),
88
- createTool(meta.id, {
89
- name: 'inspect',
90
- description: 'Read the content of a markdown document.',
91
- caption: 'Inspecting markdown document...',
92
- schema: Schema.Struct({
93
- id: ArtifactId,
94
- }),
95
- execute: async ({ id }, { extensions }) => {
96
- invariant(extensions?.space, 'No space');
97
- const document = await extensions.space.db.query(Filter.ids(ArtifactId.toDXN(id).toString())).first();
98
- assertArgument(Obj.instanceOf(Markdown.Document, document), 'document', 'Invalid type');
99
-
100
- const { content } = await document.content?.load();
101
- return ToolResult.Success({
102
- id: Obj.getDXN(document).toString(),
103
- name: document.name || document.fallbackName || 'Unnamed Document',
104
- content,
105
- });
106
- },
107
- }),
108
- ],
109
- });
110
-
111
- return contributes(Capabilities.ArtifactDefinition, definition);
112
- };
@@ -1,43 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capabilities, contributes } from '@dxos/app-framework';
6
- import { Blueprint, Template } from '@dxos/blueprints';
7
- import { type FunctionDefinition } from '@dxos/functions';
8
- import { trim } from '@dxos/util';
9
-
10
- import { MarkdownFunction } from '../functions';
11
-
12
- const functions: FunctionDefinition[] = [MarkdownFunction.create, MarkdownFunction.open, MarkdownFunction.update];
13
-
14
- export const MARKDOWN_BLUEPRINT_KEY = 'dxos.org/blueprint/markdown';
15
-
16
- export const MarkdownBlueprint: Blueprint.Blueprint = Blueprint.make({
17
- key: MARKDOWN_BLUEPRINT_KEY,
18
- name: 'Markdown',
19
- tools: Blueprint.toolDefinitions({ functions }),
20
- instructions: Template.make({
21
- // TODO(wittjosiah): Move example to function input schema annotation.
22
- source: trim`
23
- {{! Markdown }}
24
-
25
- You can create, read and update markdown documents.
26
- When asked to edit or update documents return updates as a set of compact diff string pairs.
27
- For each diff, respond with the smallest possible matching span.
28
-
29
- Example:
30
- ${'```'}diff
31
- - "There is a tyop in this sentence."
32
- + "There is a typo in this sentence."
33
- - "This id good."
34
- + "This sentence is really good."
35
- ${'```'}
36
- `,
37
- }),
38
- });
39
-
40
- export default () => [
41
- contributes(Capabilities.Functions, functions),
42
- contributes(Capabilities.BlueprintDefinition, MarkdownBlueprint),
43
- ];
@@ -1,22 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { defineCapability } from '@dxos/app-framework';
6
- import { type EditorStateStore, type EditorViewMode } from '@dxos/react-ui-editor';
7
-
8
- import { meta } from '../meta';
9
- import { type MarkdownExtensionProvider, type MarkdownPluginState } from '../types';
10
-
11
- export namespace MarkdownCapabilities {
12
- export const State = defineCapability<{
13
- state: MarkdownPluginState;
14
- editorState: EditorStateStore;
15
- getViewMode: (id: string) => EditorViewMode;
16
- // TODO(burdon): Event object.
17
- setViewMode: (id: string, viewMode: EditorViewMode) => void;
18
- }>(`${meta.id}/capability/state`);
19
-
20
- // TODO(burdon): Move to ./types (external API)?
21
- export const Extensions = defineCapability<MarkdownExtensionProvider[]>(`${meta.id}/capability/extensions`);
22
- }
@@ -1,58 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { next as A } from '@automerge/automerge';
6
- import * as Option from 'effect/Option';
7
- import type * as Schema from 'effect/Schema';
8
-
9
- import {
10
- Capabilities,
11
- CollaborationActions,
12
- type PluginContext,
13
- contributes,
14
- createResolver,
15
- } from '@dxos/app-framework';
16
- import { Obj } from '@dxos/echo';
17
- import { createDocAccessor, getRangeFromCursor } from '@dxos/echo-db';
18
-
19
- import { Markdown, MarkdownAction } from '../types';
20
-
21
- import { MarkdownCapabilities } from './capabilities';
22
-
23
- export default (context: PluginContext) =>
24
- contributes(Capabilities.IntentResolver, [
25
- createResolver({
26
- intent: MarkdownAction.Create,
27
- resolve: ({ name, content }) => {
28
- return { data: { object: Markdown.make({ name, content }) } };
29
- },
30
- }),
31
- createResolver({
32
- intent: MarkdownAction.SetViewMode,
33
- resolve: ({ id, viewMode }) => {
34
- const { state } = context.getCapability(MarkdownCapabilities.State);
35
- state.viewMode[id] = viewMode;
36
- },
37
- }),
38
- createResolver({
39
- intent: CollaborationActions.AcceptProposal,
40
- filter: (
41
- data,
42
- ): data is Omit<Schema.Schema.Type<typeof CollaborationActions.AcceptProposal.fields.input>, 'subject'> & {
43
- subject: Markdown.Document;
44
- } => Obj.instanceOf(Markdown.Document, data.subject),
45
- resolve: async ({ subject, anchor, proposal }) => {
46
- const text = await subject.content.load();
47
- const accessor = createDocAccessor(text, ['content']);
48
- const { start, end } = Option.fromNullable(anchor).pipe(
49
- Option.flatMap((at) => Option.fromNullable(getRangeFromCursor(accessor, at))),
50
- // Fallback to the end of the document.
51
- Option.getOrElse(() => ({ start: text.content.length - 1, end: text.content.length - 1 })),
52
- );
53
- accessor.handle.change((doc) => {
54
- A.splice(doc, accessor.path.slice(), start, end - start, proposal.text);
55
- });
56
- },
57
- }),
58
- ]);
@@ -1,93 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import React, { useCallback } from 'react';
6
-
7
- import { Capabilities, contributes, createSurface } from '@dxos/app-framework';
8
- import { SurfaceCardRole, useCapability } from '@dxos/app-framework/react';
9
- import { Obj } from '@dxos/echo';
10
- import { SettingsStore } from '@dxos/local-storage';
11
- import { AttentionCapabilities } from '@dxos/plugin-attention';
12
- import { Text } from '@dxos/schema';
13
-
14
- import { MarkdownCard, MarkdownContainer, type MarkdownContainerProps, MarkdownSettings } from '../components';
15
- import { meta } from '../meta';
16
- import { Markdown } from '../types';
17
- import { isEditorModel } from '../util';
18
-
19
- import { MarkdownCapabilities } from './capabilities';
20
-
21
- export default () =>
22
- contributes(Capabilities.ReactSurface, [
23
- createSurface({
24
- id: `${meta.id}/surface/document`,
25
- role: ['article', 'section', 'tabpanel'],
26
- filter: (data): data is { subject: Markdown.Document; variant: undefined } =>
27
- Obj.instanceOf(Markdown.Document, data.subject) && !data.variant,
28
- component: ({ data, role }) => {
29
- return <Container id={Obj.getDXN(data.subject).toString()} subject={data.subject} role={role} />;
30
- },
31
- }),
32
- createSurface({
33
- id: `${meta.id}/surface/text`,
34
- role: ['article', 'section', 'tabpanel'],
35
- filter: (data): data is { id: string; subject: Text.Text } =>
36
- typeof data.id === 'string' && Obj.instanceOf(Text.Text, data.subject),
37
- component: ({ data, role }) => {
38
- return <Container id={data.id} subject={data.subject} role={role} />;
39
- },
40
- }),
41
- // TODO(burdon): Remove this variant and conform to Text.
42
- createSurface({
43
- id: `${meta.id}/surface/editor`,
44
- role: ['article', 'section'],
45
- filter: (data): data is { subject: { id: string; text: string } } => isEditorModel(data.subject),
46
- component: ({ data, role }) => {
47
- return <Container id={data.subject.id} subject={data.subject} role={role} />;
48
- },
49
- }),
50
- createSurface({
51
- id: `${meta.id}/surface/plugin-settings`,
52
- role: 'article',
53
- filter: (data): data is { subject: SettingsStore<Markdown.Settings> } =>
54
- data.subject instanceof SettingsStore && data.subject.prefix === meta.id,
55
- component: ({ data: { subject } }) => <MarkdownSettings settings={subject.value} />,
56
- }),
57
- createSurface({
58
- id: `${meta.id}/surface/preview`,
59
- role: SurfaceCardRole.literals as any,
60
- filter: (data): data is { subject: Markdown.Document | Text.Text } =>
61
- Obj.instanceOf(Markdown.Document, data.subject) || Obj.instanceOf(Text.Text, data.subject),
62
- component: ({ data, role }) => <MarkdownCard {...data} role={role as SurfaceCardRole} />,
63
- }),
64
- ]);
65
-
66
- /**
67
- * Common wrapper.
68
- */
69
- const Container = ({ id, subject, role }: { id: string; subject: MarkdownContainerProps['object']; role: string }) => {
70
- const selectionManager = useCapability(AttentionCapabilities.Selection);
71
- const settingsStore = useCapability(Capabilities.SettingsStore);
72
- const settings = settingsStore.getStore<Markdown.Settings>(meta.id)!.value;
73
- const { state, editorState, getViewMode, setViewMode } = useCapability(MarkdownCapabilities.State);
74
- const viewMode = getViewMode(id);
75
- const handleViewModeChange = useCallback<NonNullable<MarkdownContainerProps['onViewModeChange']>>(
76
- (mode) => setViewMode(id, mode),
77
- [id, setViewMode],
78
- );
79
-
80
- return (
81
- <MarkdownContainer
82
- id={id}
83
- object={subject}
84
- role={role}
85
- settings={settings}
86
- selectionManager={selectionManager}
87
- extensionProviders={state.extensionProviders}
88
- editorStateStore={editorState}
89
- viewMode={viewMode}
90
- onViewModeChange={handleViewModeChange}
91
- />
92
- );
93
- };
@@ -1,25 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capabilities, contributes } from '@dxos/app-framework';
6
- import { live } from '@dxos/live-object';
7
-
8
- import { meta } from '../meta';
9
- import { Markdown } from '../types';
10
-
11
- export default () => {
12
- const settings = live<Markdown.Settings>({
13
- defaultViewMode: 'preview',
14
- toolbar: true,
15
- numberedHeadings: true,
16
- folding: true,
17
- experimental: false,
18
- });
19
-
20
- return contributes(Capabilities.Settings, {
21
- prefix: meta.id,
22
- schema: Markdown.Settings,
23
- value: settings,
24
- });
25
- };
@@ -1,31 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';
6
- import { LocalStorageStore } from '@dxos/local-storage';
7
- import { type EditorViewMode, createEditorStateStore } from '@dxos/react-ui-editor';
8
-
9
- import { meta } from '../meta';
10
- import { type Markdown, type MarkdownPluginState } from '../types';
11
-
12
- import { MarkdownCapabilities } from './capabilities';
13
-
14
- export default (context: PluginContext) => {
15
- const state = new LocalStorageStore<MarkdownPluginState>(meta.id, { extensionProviders: [], viewMode: {} });
16
- state.prop({ key: 'viewMode', type: LocalStorageStore.json<{ [key: string]: EditorViewMode }>() });
17
-
18
- // TODO(wittjosiah): Fold into state.
19
- const editorState = createEditorStateStore(`${meta.id}/editor`);
20
-
21
- const getViewMode = (id: string) => {
22
- const defaultViewMode = context.getCapability(Capabilities.SettingsStore).getStore<Markdown.Settings>(meta.id)!
23
- .value.defaultViewMode;
24
- return (id && state.values.viewMode[id]) || defaultViewMode;
25
- };
26
-
27
- const setViewMode = (id: string, viewMode: EditorViewMode) => (state.values.viewMode[id] = viewMode);
28
-
29
- // Return object with methods.
30
- return contributes(MarkdownCapabilities.State, { state: state.values, editorState, getViewMode, setViewMode });
31
- };
@@ -1,76 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type Meta, type StoryObj } from '@storybook/react-vite';
6
- import React from 'react';
7
-
8
- import { IntentPlugin } from '@dxos/app-framework';
9
- import { withPluginManager } from '@dxos/app-framework/testing';
10
- import { Markdown } from '@dxos/plugin-markdown/types';
11
- import { faker } from '@dxos/random';
12
- import { withTheme } from '@dxos/react-ui/testing';
13
- import { CardContainer } from '@dxos/react-ui-stack/testing';
14
-
15
- import { translations } from '../../translations';
16
-
17
- import { MarkdownCard } from './MarkdownCard';
18
-
19
- faker.seed(1234);
20
-
21
- const meta: Meta<typeof MarkdownCard> = {
22
- title: 'plugins/plugin-markdown/Card',
23
- component: MarkdownCard,
24
- render: ({ role, subject, ...args }) => {
25
- return (
26
- <CardContainer icon='ph--text-aa--regular' role={role}>
27
- <MarkdownCard role={role} subject={subject} {...args} />
28
- </CardContainer>
29
- );
30
- },
31
- decorators: [
32
- withTheme,
33
- withPluginManager({
34
- plugins: [IntentPlugin()],
35
- }),
36
- ],
37
- parameters: {
38
- layout: 'centered',
39
- translations,
40
- },
41
- tags: ['cards'],
42
- };
43
-
44
- export default meta;
45
-
46
- type Story = StoryObj<typeof meta>;
47
-
48
- export const Popover: Story = {
49
- args: {
50
- role: 'card--popover',
51
- subject: Markdown.make({
52
- name: faker.lorem.words(3),
53
- content: faker.lorem.paragraphs(3),
54
- }),
55
- },
56
- };
57
-
58
- export const Intrinsic: Story = {
59
- args: {
60
- role: 'card--intrinsic',
61
- subject: Markdown.make({
62
- name: faker.lorem.words(3),
63
- content: faker.lorem.paragraphs(3),
64
- }),
65
- },
66
- };
67
-
68
- export const Extrinsic: Story = {
69
- args: {
70
- role: 'card--extrinsic',
71
- subject: Markdown.make({
72
- name: faker.lorem.words(3),
73
- content: faker.lorem.paragraphs(3),
74
- }),
75
- },
76
- };