@dxos/plugin-markdown 0.8.4-main.7ace549 → 0.8.4-main.9735255

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 (351) hide show
  1. package/dist/lib/browser/MarkdownCard-WHK3ORP7.mjs +12 -0
  2. package/dist/lib/browser/MarkdownContainer-V7EAADMF.mjs +12 -0
  3. package/dist/lib/browser/{anchor-sort-3MYLO74J.mjs → anchor-sort-WQ3TL7ZI.mjs} +7 -7
  4. package/dist/lib/browser/anchor-sort-WQ3TL7ZI.mjs.map +7 -0
  5. package/dist/lib/browser/app-graph-serializer-ULZUJKOD.mjs +58 -0
  6. package/dist/lib/browser/app-graph-serializer-ULZUJKOD.mjs.map +7 -0
  7. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs +19 -0
  8. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs.map +7 -0
  9. package/dist/lib/browser/blueprints/index.mjs +8 -0
  10. package/dist/lib/browser/chunk-BX73DASG.mjs +702 -0
  11. package/dist/lib/browser/chunk-BX73DASG.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-CUGDX7KA.mjs +8 -0
  13. package/dist/lib/browser/chunk-CUGDX7KA.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-BE3IO2CM.mjs → chunk-FWQQW6KU.mjs} +41 -47
  15. package/dist/lib/browser/chunk-FWQQW6KU.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-NXT2E2BG.mjs → chunk-JOXYQLKH.mjs} +3 -5
  17. package/dist/lib/browser/{chunk-NXT2E2BG.mjs.map → chunk-JOXYQLKH.mjs.map} +1 -1
  18. package/dist/lib/browser/chunk-KDKXFKDN.mjs +104 -0
  19. package/dist/lib/browser/chunk-KDKXFKDN.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-LMO5UVKL.mjs +167 -0
  21. package/dist/lib/browser/chunk-LMO5UVKL.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-S45ULIOG.mjs +101 -0
  23. package/dist/lib/browser/chunk-S45ULIOG.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-WIPSLZ6L.mjs +60 -0
  25. package/dist/lib/browser/chunk-WIPSLZ6L.mjs.map +7 -0
  26. package/dist/lib/browser/cli/index.mjs +32 -0
  27. package/dist/lib/browser/cli/index.mjs.map +7 -0
  28. package/dist/lib/browser/index.mjs +121 -129
  29. package/dist/lib/browser/index.mjs.map +4 -4
  30. package/dist/lib/browser/meta.json +1 -1
  31. package/dist/lib/browser/operation-resolver-EGCWOQKJ.mjs +53 -0
  32. package/dist/lib/browser/operation-resolver-EGCWOQKJ.mjs.map +7 -0
  33. package/dist/lib/browser/react-surface-SRPLD3ED.mjs +213 -0
  34. package/dist/lib/browser/react-surface-SRPLD3ED.mjs.map +7 -0
  35. package/dist/lib/browser/settings-JY5JE7MI.mjs +35 -0
  36. package/dist/lib/browser/settings-JY5JE7MI.mjs.map +7 -0
  37. package/dist/lib/browser/state-QE7VSJWJ.mjs +29 -0
  38. package/dist/lib/browser/state-QE7VSJWJ.mjs.map +7 -0
  39. package/dist/lib/browser/types/index.mjs +10 -3
  40. package/dist/lib/node-esm/{MarkdownCard-FTEHVH7P.mjs → MarkdownCard-WJPLQTFS.mjs} +5 -5
  41. package/dist/lib/node-esm/MarkdownContainer-LUSMORP2.mjs +13 -0
  42. package/dist/lib/node-esm/{anchor-sort-W4HCTYUQ.mjs → anchor-sort-G7D5TAI6.mjs} +7 -7
  43. package/dist/lib/node-esm/anchor-sort-G7D5TAI6.mjs.map +7 -0
  44. package/dist/lib/node-esm/app-graph-serializer-W5YMQP7P.mjs +59 -0
  45. package/dist/lib/node-esm/app-graph-serializer-W5YMQP7P.mjs.map +7 -0
  46. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs +20 -0
  47. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs.map +7 -0
  48. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  49. package/dist/lib/node-esm/chunk-3JYPCC7M.mjs +105 -0
  50. package/dist/lib/node-esm/chunk-3JYPCC7M.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-I5JSQBPI.mjs → chunk-44VJC3QF.mjs} +3 -5
  52. package/dist/lib/node-esm/{chunk-I5JSQBPI.mjs.map → chunk-44VJC3QF.mjs.map} +1 -1
  53. package/dist/lib/node-esm/chunk-D4BCFPKK.mjs +703 -0
  54. package/dist/lib/node-esm/chunk-D4BCFPKK.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-3DN4DPVA.mjs → chunk-EYAFC4N7.mjs} +41 -47
  56. package/dist/lib/node-esm/chunk-EYAFC4N7.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-PRV35A7Z.mjs +168 -0
  58. package/dist/lib/node-esm/chunk-PRV35A7Z.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-RQP7G7XW.mjs +61 -0
  60. package/dist/lib/node-esm/chunk-RQP7G7XW.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-7GN66TDQ.mjs → chunk-SDTYEGGL.mjs} +56 -6
  62. package/dist/lib/node-esm/chunk-SDTYEGGL.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-W3IIKDV5.mjs +10 -0
  64. package/dist/lib/node-esm/chunk-W3IIKDV5.mjs.map +7 -0
  65. package/dist/lib/node-esm/cli/index.mjs +33 -0
  66. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  67. package/dist/lib/node-esm/index.mjs +121 -129
  68. package/dist/lib/node-esm/index.mjs.map +4 -4
  69. package/dist/lib/node-esm/meta.json +1 -1
  70. package/dist/lib/node-esm/operation-resolver-2HIS2AQZ.mjs +54 -0
  71. package/dist/lib/node-esm/operation-resolver-2HIS2AQZ.mjs.map +7 -0
  72. package/dist/lib/node-esm/react-surface-RONSOJIQ.mjs +214 -0
  73. package/dist/lib/node-esm/react-surface-RONSOJIQ.mjs.map +7 -0
  74. package/dist/lib/node-esm/settings-4UGMPIRY.mjs +36 -0
  75. package/dist/lib/node-esm/settings-4UGMPIRY.mjs.map +7 -0
  76. package/dist/lib/node-esm/state-LXE5XIN4.mjs +30 -0
  77. package/dist/lib/node-esm/state-LXE5XIN4.mjs.map +7 -0
  78. package/dist/lib/node-esm/types/index.mjs +10 -3
  79. package/dist/types/src/MarkdownPlugin.d.ts +2 -1
  80. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  81. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
  82. package/dist/types/src/blueprints/functions/create.test.d.ts.map +1 -0
  83. package/dist/types/src/blueprints/functions/index.d.ts +4 -0
  84. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  85. package/dist/types/src/blueprints/functions/open.d.ts.map +1 -0
  86. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
  87. package/dist/types/src/blueprints/functions/update.test.d.ts.map +1 -0
  88. package/dist/types/src/blueprints/index.d.ts +2 -0
  89. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  90. package/dist/types/src/blueprints/markdown-blueprint.d.ts +21 -0
  91. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -0
  92. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +5 -0
  93. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +1 -0
  94. package/dist/types/src/capabilities/anchor-sort/index.d.ts +3 -0
  95. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +1 -0
  96. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +5 -0
  97. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -0
  98. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +3 -0
  99. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -0
  100. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +5 -0
  101. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  102. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  103. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  104. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +10 -0
  105. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  106. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  107. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  108. package/dist/types/src/capabilities/index.d.ts +6 -13
  109. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  111. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  112. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  113. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  114. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  115. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  117. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/settings/index.d.ts +3 -0
  119. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/settings/settings.d.ts +6 -0
  121. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/state/index.d.ts +3 -0
  123. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  124. package/dist/types/src/capabilities/state/state.d.ts +5 -0
  125. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  126. package/dist/types/src/cli/index.d.ts +2 -0
  127. package/dist/types/src/cli/index.d.ts.map +1 -0
  128. package/dist/types/src/cli/plugin.d.ts +3 -0
  129. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  130. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +4 -3
  131. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  132. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +5 -5
  133. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
  134. package/dist/types/src/components/MarkdownContainer.d.ts +19 -5
  135. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  136. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  137. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +2 -2
  138. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
  139. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +8 -7
  140. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  141. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  142. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +12 -8
  143. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  144. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +4 -4
  145. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  146. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +4 -2
  147. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  148. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  149. package/dist/types/src/components/index.d.ts +5 -2
  150. package/dist/types/src/components/index.d.ts.map +1 -1
  151. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
  152. package/dist/types/src/hooks/useExtensions.d.ts +3 -3
  153. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  154. package/dist/types/src/hooks/useLinkQuery.d.ts +2 -2
  155. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  156. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
  157. package/dist/types/src/index.d.ts +1 -2
  158. package/dist/types/src/index.d.ts.map +1 -1
  159. package/dist/types/src/meta.d.ts +2 -2
  160. package/dist/types/src/meta.d.ts.map +1 -1
  161. package/dist/types/src/testing.d.ts +2 -2
  162. package/dist/types/src/testing.d.ts.map +1 -1
  163. package/dist/types/src/types/Markdown.d.ts +12 -12
  164. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  165. package/dist/types/src/types/MarkdownAction.d.ts +62 -30
  166. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -1
  167. package/dist/types/src/types/capabilities.d.ts +22 -0
  168. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  169. package/dist/types/src/types/events.d.ts +5 -0
  170. package/dist/types/src/types/events.d.ts.map +1 -0
  171. package/dist/types/src/types/index.d.ts +3 -0
  172. package/dist/types/src/types/index.d.ts.map +1 -1
  173. package/dist/types/src/types/types.d.ts +2 -2
  174. package/dist/types/src/types/types.d.ts.map +1 -1
  175. package/dist/types/src/util.d.ts +3 -0
  176. package/dist/types/src/util.d.ts.map +1 -1
  177. package/dist/types/src/util.test.d.ts +2 -0
  178. package/dist/types/src/util.test.d.ts.map +1 -0
  179. package/dist/types/tsconfig.tsbuildinfo +1 -1
  180. package/package.json +81 -66
  181. package/src/MarkdownPlugin.tsx +61 -74
  182. package/src/blueprints/functions/create.conversations.json +1 -0
  183. package/src/{functions → blueprints/functions}/create.test.ts +20 -23
  184. package/src/{functions → blueprints/functions}/create.ts +1 -1
  185. package/src/blueprints/functions/index.ts +7 -0
  186. package/src/{functions → blueprints/functions}/open.ts +4 -3
  187. package/src/blueprints/functions/update.conversations.json +1 -0
  188. package/src/{functions → blueprints/functions}/update.test.ts +23 -25
  189. package/src/{functions → blueprints/functions}/update.ts +4 -3
  190. package/src/blueprints/index.ts +5 -0
  191. package/src/blueprints/markdown-blueprint.ts +38 -0
  192. package/src/capabilities/anchor-sort/anchor-sort.ts +36 -0
  193. package/src/capabilities/anchor-sort/index.ts +7 -0
  194. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +59 -0
  195. package/src/capabilities/app-graph-serializer/index.ts +7 -0
  196. package/src/capabilities/artifact-definition/artifact-definition.ts +110 -0
  197. package/src/capabilities/artifact-definition/index.ts +7 -0
  198. package/src/capabilities/blueprint-definition/blueprint-definition.ts +25 -0
  199. package/src/capabilities/blueprint-definition/index.ts +7 -0
  200. package/src/capabilities/index.ts +6 -11
  201. package/src/capabilities/operation-resolver/index.ts +7 -0
  202. package/src/capabilities/operation-resolver/operation-resolver.ts +45 -0
  203. package/src/capabilities/react-surface/index.ts +7 -0
  204. package/src/capabilities/react-surface/react-surface.tsx +100 -0
  205. package/src/capabilities/settings/index.ts +7 -0
  206. package/src/capabilities/settings/settings.ts +36 -0
  207. package/src/capabilities/state/index.ts +7 -0
  208. package/src/capabilities/state/state.ts +31 -0
  209. package/src/cli/index.ts +5 -0
  210. package/src/cli/plugin.ts +29 -0
  211. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +25 -43
  212. package/src/components/MarkdownCard/MarkdownCard.tsx +22 -47
  213. package/src/components/MarkdownContainer.stories.tsx +47 -60
  214. package/src/components/MarkdownContainer.tsx +86 -88
  215. package/src/components/MarkdownEditor/FileUpload.tsx +3 -3
  216. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +16 -17
  217. package/src/components/MarkdownEditor/MarkdownEditor.tsx +14 -15
  218. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +44 -18
  219. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +7 -4
  220. package/src/components/MarkdownSettings/MarkdownSettings.tsx +24 -10
  221. package/src/components/Suggestions.stories.tsx +21 -32
  222. package/src/components/index.ts +8 -3
  223. package/src/hooks/useEditorMenuOptions.ts +10 -13
  224. package/src/hooks/useExtensions.tsx +23 -28
  225. package/src/hooks/useLinkQuery.ts +13 -13
  226. package/src/hooks/useSelectCurrentThread.tsx +37 -42
  227. package/src/index.ts +1 -2
  228. package/src/meta.ts +2 -2
  229. package/src/testing.ts +3 -3
  230. package/src/types/Markdown.ts +2 -2
  231. package/src/types/MarkdownAction.ts +48 -18
  232. package/src/types/capabilities.ts +38 -0
  233. package/src/types/events.ts +13 -0
  234. package/src/types/index.ts +3 -0
  235. package/src/types/types.ts +3 -2
  236. package/src/util.test.ts +44 -0
  237. package/src/util.tsx +75 -5
  238. package/dist/lib/browser/MarkdownCard-TC3GGUSX.mjs +0 -12
  239. package/dist/lib/browser/MarkdownContainer-YF22DV4M.mjs +0 -15
  240. package/dist/lib/browser/anchor-sort-3MYLO74J.mjs.map +0 -7
  241. package/dist/lib/browser/app-graph-serializer-BZJ4TQOE.mjs +0 -51
  242. package/dist/lib/browser/app-graph-serializer-BZJ4TQOE.mjs.map +0 -7
  243. package/dist/lib/browser/blueprint-definition-HED54GGW.mjs +0 -13
  244. package/dist/lib/browser/chunk-3IPVL3E4.mjs +0 -20
  245. package/dist/lib/browser/chunk-3IPVL3E4.mjs.map +0 -7
  246. package/dist/lib/browser/chunk-BE3IO2CM.mjs.map +0 -7
  247. package/dist/lib/browser/chunk-BQTYJOFB.mjs +0 -28
  248. package/dist/lib/browser/chunk-BQTYJOFB.mjs.map +0 -7
  249. package/dist/lib/browser/chunk-CN35HEBX.mjs +0 -79
  250. package/dist/lib/browser/chunk-CN35HEBX.mjs.map +0 -7
  251. package/dist/lib/browser/chunk-DLZ5RR3P.mjs +0 -96
  252. package/dist/lib/browser/chunk-DLZ5RR3P.mjs.map +0 -7
  253. package/dist/lib/browser/chunk-IBCHVMZW.mjs +0 -16
  254. package/dist/lib/browser/chunk-IBCHVMZW.mjs.map +0 -7
  255. package/dist/lib/browser/chunk-OKNQ57GF.mjs +0 -51
  256. package/dist/lib/browser/chunk-OKNQ57GF.mjs.map +0 -7
  257. package/dist/lib/browser/chunk-V7P7EIWG.mjs +0 -829
  258. package/dist/lib/browser/chunk-V7P7EIWG.mjs.map +0 -7
  259. package/dist/lib/browser/intent-resolver-55ASQRIW.mjs +0 -62
  260. package/dist/lib/browser/intent-resolver-55ASQRIW.mjs.map +0 -7
  261. package/dist/lib/browser/react-surface-GPD6T435.mjs +0 -211
  262. package/dist/lib/browser/react-surface-GPD6T435.mjs.map +0 -7
  263. package/dist/lib/browser/settings-G3ZOXJQY.mjs +0 -28
  264. package/dist/lib/browser/settings-G3ZOXJQY.mjs.map +0 -7
  265. package/dist/lib/browser/state-BTUKVZHY.mjs +0 -37
  266. package/dist/lib/browser/state-BTUKVZHY.mjs.map +0 -7
  267. package/dist/lib/browser/toolkit.mjs +0 -13
  268. package/dist/lib/node-esm/MarkdownContainer-L75AIJFM.mjs +0 -16
  269. package/dist/lib/node-esm/anchor-sort-W4HCTYUQ.mjs.map +0 -7
  270. package/dist/lib/node-esm/app-graph-serializer-OCTHXWLF.mjs +0 -52
  271. package/dist/lib/node-esm/app-graph-serializer-OCTHXWLF.mjs.map +0 -7
  272. package/dist/lib/node-esm/blueprint-definition-HAQGJOMQ.mjs +0 -14
  273. package/dist/lib/node-esm/blueprint-definition-HAQGJOMQ.mjs.map +0 -7
  274. package/dist/lib/node-esm/chunk-3DN4DPVA.mjs.map +0 -7
  275. package/dist/lib/node-esm/chunk-7GN66TDQ.mjs.map +0 -7
  276. package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs +0 -17
  277. package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs.map +0 -7
  278. package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs +0 -29
  279. package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs.map +0 -7
  280. package/dist/lib/node-esm/chunk-TYUGABTD.mjs +0 -22
  281. package/dist/lib/node-esm/chunk-TYUGABTD.mjs.map +0 -7
  282. package/dist/lib/node-esm/chunk-UVLACSAE.mjs +0 -830
  283. package/dist/lib/node-esm/chunk-UVLACSAE.mjs.map +0 -7
  284. package/dist/lib/node-esm/chunk-YFRTKXTB.mjs +0 -80
  285. package/dist/lib/node-esm/chunk-YFRTKXTB.mjs.map +0 -7
  286. package/dist/lib/node-esm/chunk-ZNS55FS3.mjs +0 -97
  287. package/dist/lib/node-esm/chunk-ZNS55FS3.mjs.map +0 -7
  288. package/dist/lib/node-esm/intent-resolver-DTBVWCNO.mjs +0 -63
  289. package/dist/lib/node-esm/intent-resolver-DTBVWCNO.mjs.map +0 -7
  290. package/dist/lib/node-esm/react-surface-QWG7CJ5U.mjs +0 -212
  291. package/dist/lib/node-esm/react-surface-QWG7CJ5U.mjs.map +0 -7
  292. package/dist/lib/node-esm/settings-IBFFCGNL.mjs +0 -29
  293. package/dist/lib/node-esm/settings-IBFFCGNL.mjs.map +0 -7
  294. package/dist/lib/node-esm/state-K6EH7SRZ.mjs +0 -38
  295. package/dist/lib/node-esm/state-K6EH7SRZ.mjs.map +0 -7
  296. package/dist/lib/node-esm/toolkit.mjs +0 -14
  297. package/dist/lib/node-esm/toolkit.mjs.map +0 -7
  298. package/dist/types/src/capabilities/anchor-sort.d.ts +0 -4
  299. package/dist/types/src/capabilities/anchor-sort.d.ts.map +0 -1
  300. package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -4
  301. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
  302. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -3
  303. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  304. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -7
  305. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  306. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  307. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  308. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  309. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  310. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  311. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  312. package/dist/types/src/capabilities/settings.d.ts +0 -4
  313. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  314. package/dist/types/src/capabilities/state.d.ts +0 -11
  315. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  316. package/dist/types/src/events.d.ts +0 -4
  317. package/dist/types/src/events.d.ts.map +0 -1
  318. package/dist/types/src/functions/create.d.ts.map +0 -1
  319. package/dist/types/src/functions/create.test.d.ts.map +0 -1
  320. package/dist/types/src/functions/index.d.ts +0 -18
  321. package/dist/types/src/functions/index.d.ts.map +0 -1
  322. package/dist/types/src/functions/open.d.ts.map +0 -1
  323. package/dist/types/src/functions/update.d.ts.map +0 -1
  324. package/dist/types/src/functions/update.test.d.ts.map +0 -1
  325. package/dist/types/src/toolkit.d.ts +0 -3
  326. package/dist/types/src/toolkit.d.ts.map +0 -1
  327. package/src/capabilities/anchor-sort.ts +0 -31
  328. package/src/capabilities/app-graph-serializer.ts +0 -54
  329. package/src/capabilities/artifact-definition.ts +0 -112
  330. package/src/capabilities/blueprint-definition.ts +0 -43
  331. package/src/capabilities/capabilities.ts +0 -22
  332. package/src/capabilities/intent-resolver.ts +0 -58
  333. package/src/capabilities/react-surface.tsx +0 -93
  334. package/src/capabilities/settings.ts +0 -25
  335. package/src/capabilities/state.ts +0 -31
  336. package/src/events.ts +0 -11
  337. package/src/functions/create.conversations.json +0 -1
  338. package/src/functions/index.ts +0 -13
  339. package/src/functions/update.conversations.json +0 -1
  340. package/src/toolkit.ts +0 -6
  341. /package/dist/lib/browser/{MarkdownCard-TC3GGUSX.mjs.map → MarkdownCard-WHK3ORP7.mjs.map} +0 -0
  342. /package/dist/lib/browser/{MarkdownContainer-YF22DV4M.mjs.map → MarkdownContainer-V7EAADMF.mjs.map} +0 -0
  343. /package/dist/lib/browser/{blueprint-definition-HED54GGW.mjs.map → blueprints/index.mjs.map} +0 -0
  344. /package/dist/lib/{browser/toolkit.mjs.map → node-esm/MarkdownCard-WJPLQTFS.mjs.map} +0 -0
  345. /package/dist/lib/node-esm/{MarkdownCard-FTEHVH7P.mjs.map → MarkdownContainer-LUSMORP2.mjs.map} +0 -0
  346. /package/dist/lib/node-esm/{MarkdownContainer-L75AIJFM.mjs.map → blueprints/index.mjs.map} +0 -0
  347. /package/dist/types/src/{functions → blueprints/functions}/create.d.ts +0 -0
  348. /package/dist/types/src/{functions → blueprints/functions}/create.test.d.ts +0 -0
  349. /package/dist/types/src/{functions → blueprints/functions}/open.d.ts +0 -0
  350. /package/dist/types/src/{functions → blueprints/functions}/update.d.ts +0 -0
  351. /package/dist/types/src/{functions → blueprints/functions}/update.test.d.ts +0 -0
@@ -3,39 +3,34 @@
3
3
  //
4
4
 
5
5
  import { type Meta } from '@storybook/react-vite';
6
+ import * as Effect from 'effect/Effect';
6
7
  import * as Function from 'effect/Function';
7
8
  import * as Match from 'effect/Match';
8
9
  import * as Option from 'effect/Option';
9
10
  import * as Schema from 'effect/Schema';
10
11
  import React, { type FC, useEffect, useMemo, useState } from 'react';
11
12
 
12
- import { Capabilities, IntentPlugin, SettingsPlugin } from '@dxos/app-framework';
13
- import { useCapability, useIntentDispatcher } from '@dxos/app-framework/react';
13
+ import { useAtomCapability, useCapability } from '@dxos/app-framework/react';
14
14
  import { withPluginManager } from '@dxos/app-framework/testing';
15
15
  import { Obj, Ref, Type } from '@dxos/echo';
16
16
  import { createDocAccessor, toCursorRange } from '@dxos/echo-db';
17
17
  import { invariant } from '@dxos/invariant';
18
18
  import { ClientPlugin } from '@dxos/plugin-client';
19
- import { GraphPlugin } from '@dxos/plugin-graph';
20
19
  import { PreviewPlugin } from '@dxos/plugin-preview';
21
- import { SpacePlugin } from '@dxos/plugin-space';
22
- import { StorybookLayoutPlugin } from '@dxos/plugin-storybook-layout';
23
- import { ThemePlugin } from '@dxos/plugin-theme';
20
+ import { StorybookPlugin, corePlugins } from '@dxos/plugin-testing';
24
21
  import { faker } from '@dxos/random';
25
22
  import { useQueue, useSpace } from '@dxos/react-client/echo';
26
23
  import { IconButton, Toolbar } from '@dxos/react-ui';
27
24
  import { withTheme } from '@dxos/react-ui/testing';
28
- import { type EditorSelection, type Range, useTextEditor } from '@dxos/react-ui-editor';
29
- import { StackItem } from '@dxos/react-ui-stack';
30
- import { defaultTx } from '@dxos/react-ui-theme';
25
+ import { useTextEditor } from '@dxos/react-ui-editor';
26
+ import { Layout } from '@dxos/react-ui-mosaic';
31
27
  import { render } from '@dxos/storybook-utils';
32
28
  import { Message } from '@dxos/types';
29
+ import { type EditorSelection, type Range } from '@dxos/ui-editor';
33
30
 
34
- import { MarkdownCapabilities } from '../capabilities';
35
31
  import { MarkdownPlugin } from '../MarkdownPlugin';
36
- import { meta } from '../meta';
37
32
  import { translations } from '../translations';
38
- import { Markdown } from '../types';
33
+ import { Markdown, MarkdownCapabilities } from '../types';
39
34
 
40
35
  import { MarkdownContainer } from './MarkdownContainer';
41
36
 
@@ -51,16 +46,15 @@ const TestItem = Schema.Struct({
51
46
  description: 'Product description',
52
47
  }),
53
48
  }).pipe(
54
- Type.Obj({
49
+ Type.object({
55
50
  typename: 'dxos.org/type/Test',
56
51
  version: '0.1.0',
57
52
  }),
58
53
  );
59
54
 
60
55
  const TestChat: FC<{ doc: Markdown.Document; content: string }> = ({ doc, content }) => {
61
- const { dispatchPromise: dispatch } = useIntentDispatcher();
62
56
  const { parentRef } = useTextEditor({ initialValue: content });
63
- const { editorState } = useCapability(MarkdownCapabilities.State);
57
+ const editorState = useCapability(MarkdownCapabilities.EditorState);
64
58
 
65
59
  const space = useSpace();
66
60
  const queueDxn = useMemo(() => space && space.queues.create().dxn, [space]);
@@ -96,7 +90,7 @@ const TestChat: FC<{ doc: Markdown.Document; content: string }> = ({ doc, conten
96
90
 
97
91
  // void dispatch(
98
92
  // createIntent(CollaborationActions.InsertContent, {
99
- // target: doc as any as Type.Expando,
93
+ // target: doc as any as TestSchema.Expando,
100
94
  // object: Ref.fromDXN(new DXN(DXN.kind.QUEUE, [...queue.dxn.parts, message.id])),
101
95
  // at: cursor,
102
96
  // label: 'Proposal',
@@ -105,20 +99,20 @@ const TestChat: FC<{ doc: Markdown.Document; content: string }> = ({ doc, conten
105
99
  };
106
100
 
107
101
  return (
108
- <StackItem.Content toolbar>
102
+ <Layout.Main toolbar>
109
103
  <Toolbar.Root>
110
104
  <IconButton icon='ph--plus--regular' disabled={!queue} label='Insert' onClick={handleInsert} />
111
105
  </Toolbar.Root>
112
106
  <div ref={parentRef} className='p-4' />
113
- </StackItem.Content>
107
+ </Layout.Main>
114
108
  );
115
109
  };
116
110
 
117
111
  const DefaultStory = ({ document, chat }: { document: string; chat: string }) => {
118
112
  const space = useSpace();
119
113
  const [doc, setDoc] = useState<Markdown.Document>();
120
- const settings = useCapability(Capabilities.SettingsStore).getStore<Markdown.Settings>(meta.id)!.value;
121
- const { editorState } = useCapability(MarkdownCapabilities.State);
114
+ const settings = useAtomCapability(MarkdownCapabilities.Settings);
115
+ const editorState = useCapability(MarkdownCapabilities.EditorState);
122
116
 
123
117
  useEffect(() => {
124
118
  if (!space) {
@@ -148,10 +142,9 @@ const DefaultStory = ({ document, chat }: { document: string; chat: string }) =>
148
142
  return null;
149
143
  }
150
144
 
151
- // TODO(burdon): Layout issue.
152
145
  return (
153
146
  <div className='grid grid-cols-2 bs-full overflow-hidden'>
154
- <MarkdownContainer id={doc.id} object={doc} settings={settings} editorStateStore={editorState} />
147
+ <MarkdownContainer id={doc.id} subject={doc} settings={settings} editorStateStore={editorState} />
155
148
  <TestChat doc={doc} content={chat} />
156
149
  </div>
157
150
  );
@@ -164,22 +157,18 @@ const storybook: Meta<typeof DefaultStory> = {
164
157
  withTheme,
165
158
  withPluginManager({
166
159
  plugins: [
160
+ ...corePlugins(),
161
+ StorybookPlugin({}),
167
162
  ClientPlugin({
168
163
  types: [Markdown.Document, TestItem],
169
- onClientInitialized: async ({ client }) => {
170
- await client.halo.createIdentity();
171
- },
164
+ onClientInitialized: ({ client }) =>
165
+ Effect.gen(function* () {
166
+ yield* Effect.promise(() => client.halo.createIdentity());
167
+ }),
172
168
  }),
173
- SpacePlugin({}),
174
- GraphPlugin(),
175
- IntentPlugin(),
176
- SettingsPlugin(),
177
169
 
178
- // UI
179
- ThemePlugin({ tx: defaultTx }),
180
170
  MarkdownPlugin(),
181
171
  PreviewPlugin(),
182
- StorybookLayoutPlugin({}),
183
172
  ],
184
173
  }),
185
174
  ],
@@ -2,11 +2,16 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { lazy } from 'react';
5
+ import { type LazyExoticComponent, lazy } from 'react';
6
+
7
+ import { type MarkdownCard as MarkdownCardType } from './MarkdownCard';
8
+ import { type MarkdownContainer as MarkdownContainerType } from './MarkdownContainer';
6
9
 
7
10
  export * from './MarkdownCard';
8
11
  export * from './MarkdownContainer';
9
12
  export * from './MarkdownSettings';
10
13
 
11
- export const MarkdownCard = lazy(() => import('./MarkdownCard'));
12
- export const MarkdownContainer = lazy(() => import('./MarkdownContainer'));
14
+ export const MarkdownCard: LazyExoticComponent<typeof MarkdownCardType> = lazy(() => import('./MarkdownCard'));
15
+ export const MarkdownContainer: LazyExoticComponent<typeof MarkdownContainerType> = lazy(
16
+ () => import('./MarkdownContainer'),
17
+ );
@@ -5,7 +5,7 @@
5
5
  import { type EditorView } from '@codemirror/view';
6
6
  import { useCallback, useMemo, useRef } from 'react';
7
7
 
8
- import { Domino, toLocalizedString, useTranslation } from '@dxos/react-ui';
8
+ import { toLocalizedString, useTranslation } from '@dxos/react-ui';
9
9
  import {
10
10
  type EditorMenuGroup,
11
11
  type UseEditorMenuProps,
@@ -13,6 +13,7 @@ import {
13
13
  formattingCommands,
14
14
  linkSlashCommands,
15
15
  } from '@dxos/react-ui-editor';
16
+ import { Domino } from '@dxos/ui';
16
17
 
17
18
  import { meta } from '../meta';
18
19
 
@@ -52,18 +53,14 @@ export const useEditorMenuOptions = ({
52
53
  const trigger = onLinkQuery ? ['/', '@'] : ['/'];
53
54
  const placeholder = {
54
55
  delay: 3_000,
55
- content: () =>
56
- Domino.of('div')
57
- .children(
58
- Domino.of('span').text('Press'),
59
- ...trigger.map((text) =>
60
- Domino.of('span')
61
- .classNames('mx-1 pli-1.5 pt-[1px] pb-[2px] border border-separator rounded-sm')
62
- .text(text),
63
- ),
64
- Domino.of('span').text('for commands.'),
65
- )
66
- .build(),
56
+ content: () => {
57
+ const pressEl = Domino.of('span').text('Press');
58
+ const triggerEls = trigger.map((text) =>
59
+ Domino.of('span').classNames('mx-1 pli-1.5 pt-[1px] pb-[2px] border border-separator rounded-sm').text(text),
60
+ );
61
+ const forCommandsEl = Domino.of('span').text('for commands.');
62
+ return Domino.of('div').children(pressEl, ...triggerEls, forCommandsEl).root;
63
+ },
67
64
  };
68
65
 
69
66
  return { viewRef, getMenu, trigger, placeholder };
@@ -6,16 +6,17 @@ import { type ViewUpdate } from '@codemirror/view';
6
6
  import React, { type AnchorHTMLAttributes, type ReactNode, useMemo } from 'react';
7
7
  import { createRoot } from 'react-dom/client';
8
8
 
9
- import { LayoutAction, type PromiseIntentDispatcher, createIntent } from '@dxos/app-framework';
10
- import { useIntentDispatcher } from '@dxos/app-framework/react';
9
+ import { Common } from '@dxos/app-framework';
10
+ import { useOperationInvoker } from '@dxos/app-framework/react';
11
11
  import { debounceAndThrottle } from '@dxos/async';
12
12
  import { Obj } from '@dxos/echo';
13
13
  import { createDocAccessor } from '@dxos/echo-db';
14
14
  import { invariant } from '@dxos/invariant';
15
- import { getSpace } from '@dxos/react-client/echo';
15
+ import { getSpace, useObject } from '@dxos/react-client/echo';
16
16
  import { useIdentity } from '@dxos/react-client/halo';
17
17
  import { Icon, ThemeProvider } from '@dxos/react-ui';
18
18
  import { type SelectionManager } from '@dxos/react-ui-attention';
19
+ import { Text } from '@dxos/schema';
19
20
  import {
20
21
  Cursor,
21
22
  type EditorStateStore,
@@ -36,9 +37,8 @@ import {
36
37
  replacer,
37
38
  selectionState,
38
39
  typewriter,
39
- } from '@dxos/react-ui-editor';
40
- import { defaultTx } from '@dxos/react-ui-theme';
41
- import { Text } from '@dxos/schema';
40
+ } from '@dxos/ui-editor';
41
+ import { defaultTx } from '@dxos/ui-theme';
42
42
  import { isTruthy } from '@dxos/util';
43
43
 
44
44
  import { Markdown } from '../types';
@@ -49,7 +49,7 @@ export type DocumentType = Markdown.Document | Text.Text | { id: string; text: s
49
49
  export type ExtensionsOptions = {
50
50
  id: string;
51
51
  object?: DocumentType;
52
- dispatch?: PromiseIntentDispatcher;
52
+ invokePromise?: Common.Capability.OperationInvoker['invokePromise'];
53
53
  settings?: Markdown.Settings;
54
54
  selectionManager?: SelectionManager;
55
55
  viewMode?: EditorViewMode;
@@ -67,16 +67,16 @@ export const useExtensions = ({
67
67
  editorStateStore,
68
68
  previewOptions,
69
69
  }: ExtensionsOptions): Extension[] => {
70
- const { dispatchPromise: dispatch } = useIntentDispatcher();
70
+ const { invokePromise } = useOperationInvoker();
71
71
  const identity = useIdentity();
72
72
  const space = getSpace(object);
73
73
 
74
- let target: Obj.Any | undefined;
75
- if (Obj.instanceOf(Markdown.Document, object)) {
76
- target = (object as Markdown.Document).content.target;
77
- } else if (Obj.instanceOf(Text.Text, object)) {
78
- target = object;
79
- }
74
+ // Get the content reference from Document objects.
75
+ const contentRef = Obj.instanceOf(Markdown.Document, object) ? (object as Markdown.Document).content : undefined;
76
+ // Use useObject to trigger re-render when the reference loads (returns snapshot for reactivity).
77
+ useObject(contentRef);
78
+ // Get the actual live object target via .target (needed for createDocAccessor).
79
+ const target = contentRef?.target ?? (Obj.instanceOf(Text.Text, object) ? object : undefined);
80
80
 
81
81
  // TODO(wittjosiah): Autocomplete is not working and this query is causing performance issues.
82
82
  // TODO(burdon): Unsubscribe.
@@ -92,13 +92,13 @@ export const useExtensions = ({
92
92
  selectionManager,
93
93
  viewMode,
94
94
  previewOptions,
95
- dispatch,
95
+ invokePromise,
96
96
  }),
97
97
  [
98
98
  id,
99
99
  object,
100
100
  viewMode,
101
- dispatch,
101
+ invokePromise,
102
102
  previewOptions,
103
103
  settings,
104
104
  settings?.debug,
@@ -144,7 +144,7 @@ export const useExtensions = ({
144
144
  const createBaseExtensions = ({
145
145
  id,
146
146
  object,
147
- dispatch,
147
+ invokePromise,
148
148
  settings,
149
149
  selectionManager,
150
150
  viewMode,
@@ -169,17 +169,12 @@ const createBaseExtensions = ({
169
169
  // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
170
170
  // TODO(burdon): Create dx-tag.
171
171
  renderLinkButton:
172
- dispatch && (object || id)
173
- ? createLinkRenderer((id: string) => {
174
- void dispatch(
175
- createIntent(LayoutAction.Open, {
176
- part: 'main',
177
- subject: [id],
178
- options: {
179
- pivotId: object && Obj.isObject(object) ? Obj.getDXN(object).toString() : id,
180
- },
181
- }),
182
- );
172
+ invokePromise && (object || id)
173
+ ? createLinkRenderer((targetId: string) => {
174
+ void invokePromise(Common.LayoutOperation.Open, {
175
+ subject: [targetId],
176
+ pivotId: object && Obj.isObject(object) ? Obj.getDXN(object).toString() : id,
177
+ });
183
178
  })
184
179
  : undefined,
185
180
  }),
@@ -5,41 +5,41 @@
5
5
  import * as Option from 'effect/Option';
6
6
  import { useCallback, useMemo } from 'react';
7
7
 
8
- import { Capabilities } from '@dxos/app-framework';
8
+ import { Common } from '@dxos/app-framework';
9
9
  import { usePluginManager } from '@dxos/app-framework/react';
10
- import { Filter, Obj, Query, Type } from '@dxos/echo';
10
+ import { type Database, Filter, Obj, Query, Type } from '@dxos/echo';
11
11
  import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from '@dxos/echo/internal';
12
- import { type Space } from '@dxos/react-client/echo';
13
12
  import { toLocalizedString, useTranslation } from '@dxos/react-ui';
14
- import { type EditorMenuGroup, type EditorMenuItem, insertAtCursor, insertAtLineStart } from '@dxos/react-ui-editor';
13
+ import { type EditorMenuGroup, type EditorMenuItem } from '@dxos/react-ui-editor';
14
+ import { insertAtCursor, insertAtLineStart } from '@dxos/ui-editor';
15
15
 
16
- export const useLinkQuery = (space: Space | undefined) => {
16
+ export const useLinkQuery = (db: Database.Database | undefined) => {
17
17
  const { t } = useTranslation();
18
18
 
19
19
  const manager = usePluginManager();
20
20
  const resolve = useCallback(
21
21
  (typename: string) =>
22
- manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},
22
+ manager.capabilities.getAll(Common.Capability.Metadata).find(({ id }) => id === typename)?.metadata ?? {},
23
23
  [manager],
24
24
  );
25
25
 
26
26
  const filter = useMemo(
27
27
  () =>
28
28
  Filter.or(
29
- ...(space?.db.schemaRegistry.query({ location: ['database', 'runtime'] }).runSync() ?? [])
29
+ ...(db?.schemaRegistry.query({ location: ['database', 'runtime'] }).runSync() ?? [])
30
30
  .filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation)
31
31
  .filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false)))
32
32
  .map((schema) => Filter.typename(Type.getTypename(schema))),
33
33
  ),
34
- [space],
34
+ [db],
35
35
  );
36
36
 
37
37
  const handleLinkQuery = useCallback(
38
38
  async (query?: string): Promise<EditorMenuGroup[]> => {
39
39
  const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : (query?.toLowerCase() ?? '');
40
- const results = await space?.db.query(Query.select(filter)).run();
40
+ const results = await db?.query(Query.select(filter)).run();
41
41
 
42
- // TODO(wittjosiah): Use `Obj.Any` type.
42
+ // TODO(wittjosiah): Use `Obj.Unknown` type.
43
43
  const getLabel = (object: any) => {
44
44
  const label = Obj.getLabel(object);
45
45
  if (label) {
@@ -53,8 +53,8 @@ export const useLinkQuery = (space: Space | undefined) => {
53
53
  };
54
54
 
55
55
  const items =
56
- results?.objects
57
- .filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name))
56
+ results
57
+ ?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name))
58
58
  // TODO(wittjosiah): Remove `any` type.
59
59
  .map((object: any): EditorMenuItem => {
60
60
  const metadata = resolve(Obj.getTypename(object)!);
@@ -76,7 +76,7 @@ export const useLinkQuery = (space: Space | undefined) => {
76
76
 
77
77
  return [{ id: 'echo', items }];
78
78
  },
79
- [space, filter, resolve],
79
+ [db, filter, resolve],
80
80
  );
81
81
 
82
82
  return handleLinkQuery;
@@ -3,13 +3,14 @@
3
3
  //
4
4
 
5
5
  import { EditorView } from '@codemirror/view';
6
- import * as Schema from 'effect/Schema';
6
+ import * as Effect from 'effect/Effect';
7
7
  import { useMemo } from 'react';
8
8
 
9
- import { LayoutAction, createResolver } from '@dxos/app-framework';
10
- import { useIntentResolver } from '@dxos/app-framework/react';
9
+ import { Common } from '@dxos/app-framework';
10
+ import { useOperationResolver } from '@dxos/app-framework/react';
11
11
  import { invariant } from '@dxos/invariant';
12
- import { Cursor, setSelection } from '@dxos/react-ui-editor';
12
+ import { OperationResolver } from '@dxos/operation';
13
+ import { Cursor, setSelection } from '@dxos/ui-editor';
13
14
 
14
15
  import { meta } from '../meta';
15
16
 
@@ -17,50 +18,44 @@ import { meta } from '../meta';
17
18
  * Handle scrolling and selection of the current thread in a markdown editor.
18
19
  */
19
20
  export const useSelectCurrentThread = (editorView: EditorView | null, documentId: string) => {
20
- const scrollIntoViewResolver = useMemo(
21
+ const scrollIntoViewHandler = useMemo(
21
22
  () =>
22
- createResolver({
23
- intent: LayoutAction.UpdateLayout,
23
+ OperationResolver.make({
24
+ operation: Common.LayoutOperation.ScrollIntoView,
24
25
  position: 'hoist',
25
- filter: (
26
- data,
27
- ): data is {
28
- part: 'current';
29
- subject: string;
30
- options: { cursor: string };
31
- } => {
32
- if (!Schema.is(LayoutAction.ScrollIntoView.fields.input)(data)) {
33
- return false;
34
- }
35
-
36
- return !!editorView && data.subject === documentId && !!data.options?.cursor;
37
- },
38
- resolve: ({ options: { cursor } }) => {
39
- invariant(editorView, 'Editor view is not defined.');
40
- const range = Cursor.getRangeFromCursor(editorView.state, cursor!);
41
- if (range) {
42
- const selection = editorView.state.selection.main.from !== range.from ? { anchor: range.from } : undefined;
43
- const effects = [
44
- // NOTE: This does not use the DOM scrollIntoView function.
45
- EditorView.scrollIntoView(range.from, {
46
- y: 'start',
47
- yMargin: 96,
48
- }),
49
- ];
50
- if (selection) {
51
- // Update the editor selection to get bi-directional highlighting.
52
- effects.push(setSelection.of({ current: documentId }));
26
+ filter: (input) => !!editorView && input.subject === documentId && !!input.cursor,
27
+ handler: (input) =>
28
+ Effect.sync(() => {
29
+ invariant(editorView, 'Editor view is not defined.');
30
+ const cursor = input.cursor;
31
+ if (!cursor) {
32
+ return;
53
33
  }
34
+ const range = Cursor.getRangeFromCursor(editorView.state, cursor);
35
+ if (range) {
36
+ const selection =
37
+ editorView.state.selection.main.from !== range.from ? { anchor: range.from } : undefined;
38
+ const effects = [
39
+ // NOTE: This does not use the DOM scrollIntoView function.
40
+ EditorView.scrollIntoView(range.from, {
41
+ y: 'start',
42
+ yMargin: 96,
43
+ }),
44
+ ];
45
+ if (selection) {
46
+ // Update the editor selection to get bi-directional highlighting.
47
+ effects.push(setSelection.of({ current: documentId }));
48
+ }
54
49
 
55
- editorView.dispatch({
56
- effects,
57
- selection: selection ? { anchor: range.from } : undefined,
58
- });
59
- }
60
- },
50
+ editorView.dispatch({
51
+ effects,
52
+ selection: selection ? { anchor: range.from } : undefined,
53
+ });
54
+ }
55
+ }),
61
56
  }),
62
57
  [documentId, editorView],
63
58
  );
64
59
 
65
- useIntentResolver(meta.id, scrollIntoViewResolver);
60
+ useOperationResolver(meta.id, scrollIntoViewHandler);
66
61
  };
package/src/index.ts CHANGED
@@ -2,8 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export { MarkdownCapabilities } from './capabilities';
6
- export { MarkdownEvents } from './events';
5
+ export { MarkdownCapabilities, MarkdownEvents } from './types';
7
6
 
8
7
  export * from './meta';
9
8
  export * from './types';
package/src/meta.ts CHANGED
@@ -2,10 +2,10 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type PluginMeta } from '@dxos/app-framework';
5
+ import { type Plugin } from '@dxos/app-framework';
6
6
  import { trim } from '@dxos/util';
7
7
 
8
- export const meta: PluginMeta = {
8
+ export const meta: Plugin.Meta = {
9
9
  id: 'dxos.org/plugin/markdown',
10
10
  name: 'Markdown',
11
11
  description: trim`
package/src/testing.ts CHANGED
@@ -7,15 +7,15 @@ import * as Effect from 'effect/Effect';
7
7
 
8
8
  import { SpaceProperties } from '@dxos/client-protocol';
9
9
  import { Obj, Ref } from '@dxos/echo';
10
- import { DatabaseService } from '@dxos/functions';
10
+ import { Database } from '@dxos/echo';
11
11
  import { Collection } from '@dxos/schema';
12
12
 
13
13
  // TODO(wittjosiah): Factor out.
14
- export const WithProperties = <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R | DatabaseService> =>
14
+ export const WithProperties = <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R | Database.Service> =>
15
15
  Effect.zipRight(
16
16
  Effect.gen(function* () {
17
17
  // TODO(wittjosiah): Remove cast.
18
- yield* DatabaseService.add(
18
+ yield* Database.Service.add(
19
19
  Obj.make(SpaceProperties, {
20
20
  [Collection.Collection.typename]: Ref.make(Collection.make()),
21
21
  }) as any,
@@ -6,8 +6,8 @@ import * as Schema from 'effect/Schema';
6
6
 
7
7
  import { Obj, Ref, Type } from '@dxos/echo';
8
8
  import { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';
9
- import { EditorInputMode, EditorViewMode } from '@dxos/react-ui-editor/types';
10
9
  import { Text } from '@dxos/schema';
10
+ import { EditorInputMode, EditorViewMode } from '@dxos/ui-editor/types';
11
11
 
12
12
  /**
13
13
  * Document Item type.
@@ -18,7 +18,7 @@ export const Document = Schema.Struct({
18
18
  fallbackName: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),
19
19
  content: Type.Ref(Text.Text).pipe(FormInputAnnotation.set(false)),
20
20
  }).pipe(
21
- Type.Obj({
21
+ Type.object({
22
22
  typename: 'dxos.org/type/Document',
23
23
  version: '0.1.0',
24
24
  }),
@@ -4,26 +4,56 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
- import { EditorViewMode } from '@dxos/react-ui-editor/types';
7
+ import { Capability } from '@dxos/app-framework';
8
+ import { Operation } from '@dxos/operation';
9
+ import { SpaceSchema } from '@dxos/react-client/echo';
10
+ import { Collection } from '@dxos/schema';
11
+ import { EditorViewMode } from '@dxos/ui-editor/types';
8
12
 
9
13
  import { meta } from '../meta';
10
14
 
11
15
  import { Document } from './Markdown';
12
16
 
13
- export class Create extends Schema.TaggedClass<Create>()(`${meta.id}/action/create`, {
14
- input: Schema.Struct({
15
- name: Schema.optional(Schema.String),
16
- content: Schema.optional(Schema.String),
17
- }),
18
- output: Schema.Struct({
19
- object: Document,
20
- }),
21
- }) {}
22
-
23
- export class SetViewMode extends Schema.TaggedClass<SetViewMode>()(`${meta.id}/action/set-view-mode`, {
24
- input: Schema.Struct({
25
- id: Schema.String,
26
- viewMode: EditorViewMode,
27
- }),
28
- output: Schema.Void,
29
- }) {}
17
+ const MARKDOWN_OPERATION = `${meta.id}/operation`;
18
+
19
+ export namespace MarkdownOperation {
20
+ export const OnCreateSpace = Operation.make({
21
+ meta: { key: `${MARKDOWN_OPERATION}/on-create-space`, name: 'On Create Space' },
22
+ services: [Capability.Service],
23
+ schema: {
24
+ input: Schema.Struct({
25
+ space: SpaceSchema,
26
+ rootCollection: Collection.Collection,
27
+ isDefault: Schema.optional(Schema.Boolean),
28
+ }),
29
+ output: Schema.Void,
30
+ },
31
+ });
32
+
33
+ export const Create = Operation.make({
34
+ meta: { key: `${MARKDOWN_OPERATION}/create`, name: 'Create Markdown Document' },
35
+ services: [Capability.Service],
36
+ schema: {
37
+ input: Schema.Struct({
38
+ name: Schema.optional(Schema.String),
39
+ content: Schema.optional(Schema.String),
40
+ }),
41
+ output: Schema.Struct({
42
+ object: Document,
43
+ }),
44
+ },
45
+ });
46
+
47
+ // TODO(wittjosiah): This appears to be unused.
48
+ export const SetViewMode = Operation.make({
49
+ meta: { key: `${MARKDOWN_OPERATION}/set-view-mode`, name: 'Set View Mode' },
50
+ services: [Capability.Service],
51
+ schema: {
52
+ input: Schema.Struct({
53
+ id: Schema.String,
54
+ viewMode: EditorViewMode,
55
+ }),
56
+ output: Schema.Void,
57
+ },
58
+ });
59
+ }