@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
@@ -0,0 +1,93 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { describe, expect, it } from '@effect/vitest';
6
+ import * as Effect from 'effect/Effect';
7
+ import * as Layer from 'effect/Layer';
8
+
9
+ import { MemoizedAiService } from '@dxos/ai/testing';
10
+ import { AiContextService, AiConversationService } from '@dxos/assistant';
11
+ import { AssistantTestLayer } from '@dxos/assistant/testing';
12
+ import { Blueprint } from '@dxos/blueprints';
13
+ import { SpaceProperties } from '@dxos/client-protocol';
14
+ import { DXN, Database, Obj, Query, Ref } from '@dxos/echo';
15
+ import { Collection } from '@dxos/echo';
16
+ import { TestHelpers } from '@dxos/effect/testing';
17
+ import { FunctionInvocationService } from '@dxos/functions';
18
+ import { invariant } from '@dxos/invariant';
19
+ import { ObjectId } from '@dxos/keys';
20
+ import { Markdown } from '@dxos/plugin-markdown/types';
21
+ import { HasSubject } from '@dxos/types';
22
+
23
+ import { WithProperties } from '../testing';
24
+ import MarkdownBlueprint from '../blueprints/markdown-blueprint';
25
+
26
+ import { Create } from './definitions';
27
+ import { MarkdownOperationHandlerSet } from './index';
28
+
29
+ ObjectId.dangerouslyDisableRandomness();
30
+
31
+ const TestLayer = AssistantTestLayer({
32
+ operationHandlers: MarkdownOperationHandlerSet,
33
+ types: [SpaceProperties, Collection.Collection, Blueprint.Blueprint, Markdown.Document, HasSubject.HasSubject],
34
+ tracing: 'pretty',
35
+ });
36
+
37
+ describe('create', () => {
38
+ it.effect(
39
+ 'call a function to create a markdown document',
40
+ Effect.fnUntraced(
41
+ function* (_) {
42
+ const name = 'BlueYard';
43
+ const content = 'Founders and portfolio of BlueYard.';
44
+ const result = yield* FunctionInvocationService.invokeFunction(Create, {
45
+ name,
46
+ content,
47
+ });
48
+
49
+ const doc = yield* Database.resolve(DXN.parse(result.id), Markdown.Document);
50
+ expect(doc.name).toBe(name);
51
+ const text = yield* Database.load(doc.content);
52
+ expect(text.content).toBe(content);
53
+ },
54
+ WithProperties,
55
+ Effect.provide(TestLayer),
56
+ TestHelpers.provideTestContext,
57
+ ),
58
+ );
59
+
60
+ it.scoped(
61
+ 'create a markdown document',
62
+ Effect.fnUntraced(
63
+ function* (_) {
64
+ const markdownBlueprint = yield* Database.add(Obj.clone(MarkdownBlueprint.make()));
65
+ yield* AiContextService.bindContext({
66
+ blueprints: [Ref.make(markdownBlueprint)],
67
+ });
68
+
69
+ yield* AiConversationService.run({
70
+ prompt: `Create a document with a cookie recipe.`,
71
+ });
72
+
73
+ {
74
+ const docs = yield* Database.runQuery(Query.type(Markdown.Document));
75
+ if (docs.length !== 1) {
76
+ throw new Error(`Expected 1 document; got ${docs.length}: ${docs.map((_) => _.name)}`);
77
+ }
78
+
79
+ const doc = docs[0];
80
+ invariant(Obj.instanceOf(Markdown.Document, doc));
81
+ console.log({
82
+ name: doc.name,
83
+ content: yield* Database.load(doc.content).pipe(Effect.map((_) => _.content)),
84
+ });
85
+ }
86
+ },
87
+ WithProperties,
88
+ Effect.provide(AiConversationService.layerNewQueue().pipe(Layer.provideMerge(TestLayer))),
89
+ TestHelpers.provideTestContext,
90
+ ),
91
+ MemoizedAiService.isGenerationEnabled() ? 240_000 : 30_000,
92
+ );
93
+ });
@@ -0,0 +1,27 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Obj } from '@dxos/echo';
8
+ import { Operation } from '@dxos/operation';
9
+ import { CollectionModel } from '@dxos/schema';
10
+
11
+ import { Create } from './definitions';
12
+ import { Markdown } from '../types';
13
+
14
+ const handler: Operation.WithHandler<typeof Create> = Create.pipe(
15
+ Operation.withHandler(
16
+ Effect.fn(function* ({ name, content }) {
17
+ const object = Markdown.make({ name, content });
18
+ yield* CollectionModel.add({ object });
19
+
20
+ return {
21
+ id: Obj.getDXN(object).toString(),
22
+ };
23
+ }),
24
+ ),
25
+ );
26
+
27
+ export default handler;
@@ -0,0 +1,119 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { Capability } from '@dxos/app-framework';
8
+ import { Database, Ref } from '@dxos/echo';
9
+ import { Operation } from '@dxos/operation';
10
+ import { EditorViewMode } from '@dxos/ui-editor/types';
11
+ import { trim } from '@dxos/util';
12
+
13
+ import { meta } from '../meta';
14
+ import { Markdown } from '../types';
15
+
16
+ const MARKDOWN_OPERATION = `${meta.id}.operation`;
17
+
18
+ const Edit = Schema.Struct({
19
+ oldString: Schema.String.annotations({
20
+ description: 'The text to find in the document.',
21
+ }),
22
+ newString: Schema.String.annotations({
23
+ description: 'The text to replace it with.',
24
+ }),
25
+ replaceAll: Schema.optional(Schema.Boolean).annotations({
26
+ description: 'If true, replaces all occurrences. Defaults to false (first occurrence only).',
27
+ }),
28
+ });
29
+
30
+ export const Create = Operation.make({
31
+ meta: {
32
+ key: 'org.dxos.function.markdown.create',
33
+ name: 'Create',
34
+ description: 'Creates a new markdown document and adds it to the space.',
35
+ },
36
+ input: Schema.Struct({
37
+ name: Schema.String,
38
+ content: Schema.String,
39
+ }),
40
+ output: Schema.Struct({
41
+ id: Schema.String.annotations({
42
+ description: 'The DXN of the created document.',
43
+ }),
44
+ }),
45
+ services: [Database.Service],
46
+ });
47
+
48
+ export const CreateMarkdown = Operation.make({
49
+ meta: { key: `${MARKDOWN_OPERATION}.create`, name: 'Create Markdown Document' },
50
+ services: [Capability.Service],
51
+ input: Schema.Struct({
52
+ name: Schema.optional(Schema.String),
53
+ content: Schema.optional(Schema.String),
54
+ }),
55
+ output: Schema.Struct({
56
+ object: Markdown.Document,
57
+ }),
58
+ });
59
+
60
+ export const Open = Operation.make({
61
+ meta: {
62
+ key: 'org.dxos.function.markdown.open',
63
+ name: 'Open',
64
+ description: 'Opens and reads the contents of a new markdown document.',
65
+ },
66
+ input: Schema.Struct({
67
+ doc: Ref.Ref(Markdown.Document).annotations({
68
+ description: 'The ID of the markdown document.',
69
+ }),
70
+ }),
71
+ output: Schema.Struct({
72
+ content: Schema.String,
73
+ }),
74
+ services: [Database.Service],
75
+ });
76
+
77
+ export const ScrollToAnchor = Operation.make({
78
+ meta: { key: `${MARKDOWN_OPERATION}.scroll-to-anchor`, name: 'Scroll To Anchor' },
79
+ services: [Capability.Service],
80
+ input: Schema.Struct({
81
+ subject: Schema.String.annotations({ description: 'Attendable ID of the markdown editor.' }),
82
+ cursor: Schema.String.annotations({ description: 'Cursor position to scroll to.' }),
83
+ ref: Schema.optional(Schema.String.annotations({ description: 'Reference ID (e.g. thread ID).' })),
84
+ }),
85
+ output: Schema.Void,
86
+ });
87
+
88
+ // TODO(wittjosiah): This appears to be unused.
89
+ export const SetViewMode = Operation.make({
90
+ meta: { key: `${MARKDOWN_OPERATION}.set-view-mode`, name: 'Set View Mode' },
91
+ services: [Capability.Service],
92
+ input: Schema.Struct({
93
+ id: Schema.String,
94
+ viewMode: EditorViewMode,
95
+ }),
96
+ output: Schema.Void,
97
+ });
98
+
99
+ export const Update = Operation.make({
100
+ meta: {
101
+ key: 'org.dxos.function.markdown.update',
102
+ name: 'Update',
103
+ description: trim`
104
+ Applies a set of edits to the markdown document.
105
+ `,
106
+ },
107
+ input: Schema.Struct({
108
+ doc: Ref.Ref(Markdown.Document).annotations({
109
+ description: 'The ID of the markdown document.',
110
+ }),
111
+ edits: Schema.Array(Edit).annotations({
112
+ description: 'The edits to apply to the document. Each edit finds oldString and replaces it with newString.',
113
+ }),
114
+ }),
115
+ output: Schema.Struct({
116
+ newContent: Schema.String,
117
+ }),
118
+ services: [Database.Service],
119
+ });
@@ -0,0 +1,16 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { OperationHandlerSet } from '@dxos/operation';
6
+
7
+ export * as MarkdownOperation from './definitions';
8
+
9
+ export const MarkdownOperationHandlerSet = OperationHandlerSet.lazy(
10
+ () => import('./create'),
11
+ () => import('./create-markdown'),
12
+ () => import('./open'),
13
+ () => import('./scroll-to-anchor'),
14
+ () => import('./set-view-mode'),
15
+ () => import('./update'),
16
+ );
@@ -0,0 +1,25 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Database } from '@dxos/echo';
8
+ import { Operation } from '@dxos/operation';
9
+
10
+ import { Open } from './definitions';
11
+
12
+ const handler: Operation.WithHandler<typeof Open> = Open.pipe(
13
+ Operation.withHandler(
14
+ Effect.fn(function* ({ doc }) {
15
+ const { content } = yield* doc.pipe(
16
+ Database.load,
17
+ Effect.map((_) => _.content),
18
+ Effect.flatMap(Database.load),
19
+ );
20
+ return { content };
21
+ }),
22
+ ),
23
+ );
24
+
25
+ export default handler;
@@ -0,0 +1,40 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { EditorView } from '@codemirror/view';
6
+ import * as Effect from 'effect/Effect';
7
+
8
+ import { Capability } from '@dxos/app-framework';
9
+ import { Operation } from '@dxos/operation';
10
+ import { Cursor, setSelection } from '@dxos/ui-editor';
11
+
12
+ import { ScrollToAnchor } from './definitions';
13
+
14
+ import { MarkdownCapabilities } from '../types';
15
+
16
+ const handler: Operation.WithHandler<typeof ScrollToAnchor> = ScrollToAnchor.pipe(
17
+ Operation.withHandler(
18
+ Effect.fnUntraced(function* ({ subject, cursor }) {
19
+ const editorViews = yield* Capability.get(MarkdownCapabilities.EditorViews);
20
+ const entry = editorViews.get(subject);
21
+ if (!entry) {
22
+ return;
23
+ }
24
+ const range = Cursor.getRangeFromCursor(entry.view.state, cursor);
25
+ if (range) {
26
+ const selection = entry.view.state.selection.main.from !== range.from ? { anchor: range.from } : undefined;
27
+ const effects: any[] = [EditorView.scrollIntoView(range.from, { y: 'start', yMargin: 96 })];
28
+ if (selection) {
29
+ effects.push(setSelection.of({ current: entry.documentId }));
30
+ }
31
+ entry.view.dispatch({
32
+ effects,
33
+ selection: selection ? { anchor: range.from } : undefined,
34
+ });
35
+ }
36
+ }),
37
+ ),
38
+ );
39
+
40
+ export default handler;
@@ -0,0 +1,25 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Capabilities } from '@dxos/app-framework';
8
+ import { Operation } from '@dxos/operation';
9
+
10
+ import { SetViewMode } from './definitions';
11
+
12
+ import { MarkdownCapabilities } from '../types';
13
+
14
+ const handler: Operation.WithHandler<typeof SetViewMode> = SetViewMode.pipe(
15
+ Operation.withHandler(
16
+ Effect.fnUntraced(function* ({ id, viewMode }) {
17
+ yield* Capabilities.updateAtomValue(MarkdownCapabilities.State, (current) => ({
18
+ ...current,
19
+ viewMode: { ...current.viewMode, [id]: viewMode },
20
+ }));
21
+ }),
22
+ ),
23
+ );
24
+
25
+ export default handler;