@dxos/plugin-markdown 0.8.4-main.f9ba587 → 0.8.4-main.fcfe5033a5

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 (337) hide show
  1. package/dist/lib/browser/MarkdownSettings-62YSRY7L.mjs +32 -0
  2. package/dist/lib/browser/MarkdownSettings-62YSRY7L.mjs.map +7 -0
  3. package/dist/lib/browser/blueprints/index.mjs +51 -0
  4. package/dist/lib/browser/blueprints/index.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-4KOZEH2H.mjs +121 -0
  6. package/dist/lib/browser/chunk-4KOZEH2H.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  8. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-QFPZONKP.mjs +158 -0
  10. package/dist/lib/browser/chunk-QFPZONKP.mjs.map +7 -0
  11. package/dist/lib/browser/cli/index.mjs +39 -0
  12. package/dist/lib/browser/cli/index.mjs.map +7 -0
  13. package/dist/lib/browser/create-YL5ELZWP.mjs +30 -0
  14. package/dist/lib/browser/create-YL5ELZWP.mjs.map +7 -0
  15. package/dist/lib/browser/create-markdown-LU5IDKMH.mjs +22 -0
  16. package/dist/lib/browser/create-markdown-LU5IDKMH.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +614 -142
  18. package/dist/lib/browser/index.mjs.map +4 -4
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/open-AFSOZZ6G.mjs +21 -0
  21. package/dist/lib/browser/open-AFSOZZ6G.mjs.map +7 -0
  22. package/dist/lib/browser/operations/index.mjs +14 -0
  23. package/dist/lib/browser/operations/index.mjs.map +7 -0
  24. package/dist/lib/browser/scroll-to-anchor-IPXV32A6.mjs +49 -0
  25. package/dist/lib/browser/scroll-to-anchor-IPXV32A6.mjs.map +7 -0
  26. package/dist/lib/browser/set-view-mode-2QWB24RR.mjs +26 -0
  27. package/dist/lib/browser/set-view-mode-2QWB24RR.mjs.map +7 -0
  28. package/dist/lib/browser/types/index.mjs +12 -14
  29. package/dist/lib/browser/update-HZNVYBMO.mjs +45 -0
  30. package/dist/lib/browser/update-HZNVYBMO.mjs.map +7 -0
  31. package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs +33 -0
  32. package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs.map +7 -0
  33. package/dist/lib/node-esm/blueprints/index.mjs +52 -0
  34. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  35. package/dist/lib/node-esm/chunk-3OPDJJJH.mjs +122 -0
  36. package/dist/lib/node-esm/chunk-3OPDJJJH.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  38. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  39. package/dist/lib/node-esm/chunk-JUGS6RKO.mjs +159 -0
  40. package/dist/lib/node-esm/chunk-JUGS6RKO.mjs.map +7 -0
  41. package/dist/lib/node-esm/cli/index.mjs +40 -0
  42. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  43. package/dist/lib/node-esm/create-SMQAIM3V.mjs +31 -0
  44. package/dist/lib/node-esm/create-SMQAIM3V.mjs.map +7 -0
  45. package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs +23 -0
  46. package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs.map +7 -0
  47. package/dist/lib/node-esm/index.mjs +614 -142
  48. package/dist/lib/node-esm/index.mjs.map +4 -4
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/open-SRWLLOKE.mjs +22 -0
  51. package/dist/lib/node-esm/open-SRWLLOKE.mjs.map +7 -0
  52. package/dist/lib/node-esm/operations/index.mjs +15 -0
  53. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  54. package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs +50 -0
  55. package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs.map +7 -0
  56. package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs +27 -0
  57. package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs.map +7 -0
  58. package/dist/lib/node-esm/types/index.mjs +12 -14
  59. package/dist/lib/node-esm/update-4CELTLXK.mjs +46 -0
  60. package/dist/lib/node-esm/update-4CELTLXK.mjs.map +7 -0
  61. package/dist/types/src/MarkdownPlugin.d.ts +2 -1
  62. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  63. package/dist/types/src/blueprints/index.d.ts +2 -0
  64. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  65. package/dist/types/src/blueprints/markdown-blueprint.d.ts +4 -0
  66. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/anchor-sort.d.ts +4 -4
  68. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/app-graph-serializer.d.ts +3 -2
  70. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/artifact-definition.d.ts +3 -9
  72. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  74. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/index.d.ts +9 -16
  76. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/node.d.ts +4 -0
  78. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  80. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  82. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/settings.d.ts +4 -2
  84. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/state.d.ts +4 -9
  86. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  87. package/dist/types/src/cli/index.d.ts +2 -0
  88. package/dist/types/src/cli/index.d.ts.map +1 -0
  89. package/dist/types/src/cli/plugin.d.ts +3 -0
  90. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  91. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +11 -0
  92. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -0
  93. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +44 -21
  94. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  95. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +8 -15
  96. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  97. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +32 -0
  98. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -0
  99. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +13 -0
  100. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -0
  101. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +4 -4
  102. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  103. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +94 -0
  104. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -0
  105. package/dist/types/src/components/MarkdownSettings/index.d.ts +1 -1
  106. package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -1
  107. package/dist/types/src/components/index.d.ts +3 -3
  108. package/dist/types/src/components/index.d.ts.map +1 -1
  109. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts +8 -0
  110. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  111. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
  112. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  113. package/dist/types/src/containers/MarkdownCard/index.d.ts +2 -0
  114. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
  115. package/dist/types/src/containers/MarkdownCard/snippet.d.ts +17 -0
  116. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
  117. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts +36 -0
  118. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -0
  119. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +77 -0
  120. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -0
  121. package/dist/types/src/containers/MarkdownContainer/index.d.ts +3 -0
  122. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -0
  123. package/dist/types/src/containers/index.d.ts +5 -0
  124. package/dist/types/src/containers/index.d.ts.map +1 -0
  125. package/dist/types/src/hooks/index.d.ts +3 -1
  126. package/dist/types/src/hooks/index.d.ts.map +1 -1
  127. package/dist/types/src/hooks/useEditorMenuOptions.d.ts +9 -0
  128. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -0
  129. package/dist/types/src/hooks/useExtensions.d.ts +24 -0
  130. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -0
  131. package/dist/types/src/hooks/useLinkQuery.d.ts +4 -0
  132. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -0
  133. package/dist/types/src/index.d.ts +5 -3
  134. package/dist/types/src/index.d.ts.map +1 -1
  135. package/dist/types/src/meta.d.ts +2 -3
  136. package/dist/types/src/meta.d.ts.map +1 -1
  137. package/dist/types/src/operations/create-markdown.d.ts +5 -0
  138. package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
  139. package/dist/types/src/operations/create.d.ts +5 -0
  140. package/dist/types/src/operations/create.d.ts.map +1 -0
  141. package/dist/types/src/operations/create.test.d.ts +2 -0
  142. package/dist/types/src/operations/create.test.d.ts.map +1 -0
  143. package/dist/types/src/operations/definitions.d.ts +64 -0
  144. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  145. package/dist/types/src/operations/index.d.ts +4 -0
  146. package/dist/types/src/operations/index.d.ts.map +1 -0
  147. package/dist/types/src/operations/open.d.ts +5 -0
  148. package/dist/types/src/operations/open.d.ts.map +1 -0
  149. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  150. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  151. package/dist/types/src/operations/set-view-mode.d.ts +5 -0
  152. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
  153. package/dist/types/src/operations/update.d.ts +5 -0
  154. package/dist/types/src/operations/update.d.ts.map +1 -0
  155. package/dist/types/src/operations/update.test.d.ts +2 -0
  156. package/dist/types/src/operations/update.test.d.ts.map +1 -0
  157. package/dist/types/src/testing.d.ts +6 -0
  158. package/dist/types/src/testing.d.ts.map +1 -0
  159. package/dist/types/src/translations.d.ts +54 -29
  160. package/dist/types/src/translations.d.ts.map +1 -1
  161. package/dist/types/src/types/Markdown.d.ts +44 -0
  162. package/dist/types/src/types/Markdown.d.ts.map +1 -0
  163. package/dist/types/src/types/Settings.d.ts +17 -0
  164. package/dist/types/src/types/Settings.d.ts.map +1 -0
  165. package/dist/types/src/types/capabilities.d.ts +33 -0
  166. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  167. package/dist/types/src/types/events.d.ts +5 -0
  168. package/dist/types/src/types/events.d.ts.map +1 -0
  169. package/dist/types/src/types/index.d.ts +4 -1
  170. package/dist/types/src/types/index.d.ts.map +1 -1
  171. package/dist/types/src/types/types.d.ts +4 -60
  172. package/dist/types/src/types/types.d.ts.map +1 -1
  173. package/dist/types/src/util.d.ts +17 -5
  174. package/dist/types/src/util.d.ts.map +1 -1
  175. package/dist/types/src/util.test.d.ts +2 -0
  176. package/dist/types/src/util.test.d.ts.map +1 -0
  177. package/dist/types/tsconfig.tsbuildinfo +1 -1
  178. package/package.json +124 -56
  179. package/src/MarkdownPlugin.tsx +90 -107
  180. package/src/blueprints/index.ts +5 -0
  181. package/src/blueprints/markdown-blueprint.ts +44 -0
  182. package/src/capabilities/anchor-sort.ts +29 -22
  183. package/src/capabilities/app-graph-serializer.ts +55 -42
  184. package/src/capabilities/artifact-definition.ts +93 -99
  185. package/src/capabilities/blueprint-definition.ts +17 -0
  186. package/src/capabilities/index.ts +12 -10
  187. package/src/capabilities/node.ts +11 -0
  188. package/src/capabilities/operation-handler.ts +16 -0
  189. package/src/capabilities/react-surface.tsx +110 -102
  190. package/src/capabilities/settings.ts +30 -18
  191. package/src/capabilities/state.ts +40 -24
  192. package/src/cli/index.ts +5 -0
  193. package/src/cli/plugin.ts +39 -0
  194. package/src/components/MarkdownEditor/FileUpload.tsx +63 -0
  195. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +63 -37
  196. package/src/components/MarkdownEditor/MarkdownEditor.tsx +251 -266
  197. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +170 -0
  198. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +47 -0
  199. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +39 -0
  200. package/src/components/MarkdownSettings/MarkdownSettings.tsx +22 -92
  201. package/src/components/MarkdownSettings/index.ts +1 -1
  202. package/src/components/index.ts +4 -5
  203. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +67 -0
  204. package/src/containers/MarkdownCard/MarkdownCard.tsx +68 -0
  205. package/src/containers/MarkdownCard/index.ts +5 -0
  206. package/src/containers/MarkdownCard/snippet.ts +52 -0
  207. package/src/containers/MarkdownContainer/MarkdownContainer.stories.tsx +135 -0
  208. package/src/containers/MarkdownContainer/MarkdownContainer.tsx +145 -0
  209. package/src/containers/MarkdownContainer/index.ts +6 -0
  210. package/src/containers/index.ts +10 -0
  211. package/src/hooks/index.ts +3 -1
  212. package/src/hooks/useEditorMenuOptions.ts +68 -0
  213. package/src/hooks/useExtensions.tsx +264 -0
  214. package/src/hooks/useLinkQuery.ts +108 -0
  215. package/src/index.ts +8 -3
  216. package/src/meta.ts +9 -10
  217. package/src/operations/create-markdown.ts +20 -0
  218. package/src/operations/create.conversations.json +1 -0
  219. package/src/operations/create.test.ts +98 -0
  220. package/src/operations/create.ts +27 -0
  221. package/src/operations/definitions.ts +120 -0
  222. package/src/operations/index.ts +16 -0
  223. package/src/operations/open.ts +25 -0
  224. package/src/operations/scroll-to-anchor.ts +39 -0
  225. package/src/operations/set-view-mode.ts +24 -0
  226. package/src/operations/update.conversations.json +1 -0
  227. package/src/operations/update.test.ts +215 -0
  228. package/src/operations/update.ts +51 -0
  229. package/src/testing.ts +27 -0
  230. package/src/translations.ts +27 -30
  231. package/src/types/Markdown.ts +50 -0
  232. package/src/types/Settings.ts +65 -0
  233. package/src/types/capabilities.ts +50 -0
  234. package/src/types/events.ts +14 -0
  235. package/src/types/index.ts +5 -1
  236. package/src/types/types.ts +7 -50
  237. package/src/util.test.ts +44 -0
  238. package/src/util.tsx +100 -11
  239. package/dist/lib/browser/MarkdownContainer-BO5MZWA4.mjs +0 -771
  240. package/dist/lib/browser/MarkdownContainer-BO5MZWA4.mjs.map +0 -7
  241. package/dist/lib/browser/MarkdownPreview-XYP2VXI2.mjs +0 -80
  242. package/dist/lib/browser/MarkdownPreview-XYP2VXI2.mjs.map +0 -7
  243. package/dist/lib/browser/anchor-sort-UKJJ7ZNP.mjs +0 -32
  244. package/dist/lib/browser/anchor-sort-UKJJ7ZNP.mjs.map +0 -7
  245. package/dist/lib/browser/app-graph-serializer-7DKUUZSJ.mjs +0 -52
  246. package/dist/lib/browser/app-graph-serializer-7DKUUZSJ.mjs.map +0 -7
  247. package/dist/lib/browser/artifact-definition-JSUG6XPF.mjs +0 -145
  248. package/dist/lib/browser/artifact-definition-JSUG6XPF.mjs.map +0 -7
  249. package/dist/lib/browser/chunk-5JRBJCZM.mjs +0 -50
  250. package/dist/lib/browser/chunk-5JRBJCZM.mjs.map +0 -7
  251. package/dist/lib/browser/chunk-777RIED6.mjs +0 -16
  252. package/dist/lib/browser/chunk-777RIED6.mjs.map +0 -7
  253. package/dist/lib/browser/chunk-EPTSAJZM.mjs +0 -22
  254. package/dist/lib/browser/chunk-EPTSAJZM.mjs.map +0 -7
  255. package/dist/lib/browser/chunk-IZLATPXQ.mjs +0 -20
  256. package/dist/lib/browser/chunk-IZLATPXQ.mjs.map +0 -7
  257. package/dist/lib/browser/chunk-LFML7LC6.mjs +0 -51
  258. package/dist/lib/browser/chunk-LFML7LC6.mjs.map +0 -7
  259. package/dist/lib/browser/chunk-UANWRJZU.mjs +0 -79
  260. package/dist/lib/browser/chunk-UANWRJZU.mjs.map +0 -7
  261. package/dist/lib/browser/intent-resolver-3MXYO3MW.mjs +0 -64
  262. package/dist/lib/browser/intent-resolver-3MXYO3MW.mjs.map +0 -7
  263. package/dist/lib/browser/react-surface-NAXBGUR3.mjs +0 -205
  264. package/dist/lib/browser/react-surface-NAXBGUR3.mjs.map +0 -7
  265. package/dist/lib/browser/settings-KN75ZQY6.mjs +0 -28
  266. package/dist/lib/browser/settings-KN75ZQY6.mjs.map +0 -7
  267. package/dist/lib/browser/state-LZWTAS65.mjs +0 -37
  268. package/dist/lib/browser/state-LZWTAS65.mjs.map +0 -7
  269. package/dist/lib/node-esm/MarkdownContainer-J2NVCX2H.mjs +0 -772
  270. package/dist/lib/node-esm/MarkdownContainer-J2NVCX2H.mjs.map +0 -7
  271. package/dist/lib/node-esm/MarkdownPreview-JEXD3KSQ.mjs +0 -81
  272. package/dist/lib/node-esm/MarkdownPreview-JEXD3KSQ.mjs.map +0 -7
  273. package/dist/lib/node-esm/anchor-sort-IPIS5D5B.mjs +0 -33
  274. package/dist/lib/node-esm/anchor-sort-IPIS5D5B.mjs.map +0 -7
  275. package/dist/lib/node-esm/app-graph-serializer-YRMRPW7A.mjs +0 -53
  276. package/dist/lib/node-esm/app-graph-serializer-YRMRPW7A.mjs.map +0 -7
  277. package/dist/lib/node-esm/artifact-definition-6C2MOHGP.mjs +0 -146
  278. package/dist/lib/node-esm/artifact-definition-6C2MOHGP.mjs.map +0 -7
  279. package/dist/lib/node-esm/chunk-ACFGXH2K.mjs +0 -17
  280. package/dist/lib/node-esm/chunk-ACFGXH2K.mjs.map +0 -7
  281. package/dist/lib/node-esm/chunk-CWTFQSN7.mjs +0 -52
  282. package/dist/lib/node-esm/chunk-CWTFQSN7.mjs.map +0 -7
  283. package/dist/lib/node-esm/chunk-CXG7GMYP.mjs +0 -24
  284. package/dist/lib/node-esm/chunk-CXG7GMYP.mjs.map +0 -7
  285. package/dist/lib/node-esm/chunk-FWKOJW6J.mjs +0 -22
  286. package/dist/lib/node-esm/chunk-FWKOJW6J.mjs.map +0 -7
  287. package/dist/lib/node-esm/chunk-JEEQLO7C.mjs +0 -80
  288. package/dist/lib/node-esm/chunk-JEEQLO7C.mjs.map +0 -7
  289. package/dist/lib/node-esm/chunk-Q5DIKLN5.mjs +0 -51
  290. package/dist/lib/node-esm/chunk-Q5DIKLN5.mjs.map +0 -7
  291. package/dist/lib/node-esm/intent-resolver-BZYWV53A.mjs +0 -65
  292. package/dist/lib/node-esm/intent-resolver-BZYWV53A.mjs.map +0 -7
  293. package/dist/lib/node-esm/react-surface-BSAGEIN6.mjs +0 -206
  294. package/dist/lib/node-esm/react-surface-BSAGEIN6.mjs.map +0 -7
  295. package/dist/lib/node-esm/settings-KVP7TVX7.mjs +0 -29
  296. package/dist/lib/node-esm/settings-KVP7TVX7.mjs.map +0 -7
  297. package/dist/lib/node-esm/state-NW3W4JCQ.mjs +0 -38
  298. package/dist/lib/node-esm/state-NW3W4JCQ.mjs.map +0 -7
  299. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  300. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  301. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  302. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  303. package/dist/types/src/components/MarkdownContainer.d.ts +0 -18
  304. package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
  305. package/dist/types/src/components/MarkdownContainer.stories.d.ts +0 -9
  306. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
  307. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +0 -6
  308. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +0 -1
  309. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -17
  310. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +0 -1
  311. package/dist/types/src/components/MarkdownPreview/index.d.ts +0 -4
  312. package/dist/types/src/components/MarkdownPreview/index.d.ts.map +0 -1
  313. package/dist/types/src/components/Suggestions.stories.d.ts +0 -12
  314. package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
  315. package/dist/types/src/components/Toolbar.stories.d.ts +0 -11
  316. package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
  317. package/dist/types/src/events.d.ts +0 -4
  318. package/dist/types/src/events.d.ts.map +0 -1
  319. package/dist/types/src/extensions.d.ts +0 -24
  320. package/dist/types/src/extensions.d.ts.map +0 -1
  321. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
  322. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
  323. package/dist/types/src/types/schema.d.ts +0 -35
  324. package/dist/types/src/types/schema.d.ts.map +0 -1
  325. package/src/capabilities/capabilities.ts +0 -20
  326. package/src/capabilities/intent-resolver.ts +0 -63
  327. package/src/components/MarkdownContainer.stories.tsx +0 -103
  328. package/src/components/MarkdownContainer.tsx +0 -241
  329. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -74
  330. package/src/components/MarkdownPreview/MarkdownPreview.tsx +0 -71
  331. package/src/components/MarkdownPreview/index.ts +0 -9
  332. package/src/components/Suggestions.stories.tsx +0 -215
  333. package/src/components/Toolbar.stories.tsx +0 -113
  334. package/src/events.ts +0 -11
  335. package/src/extensions.tsx +0 -328
  336. package/src/hooks/useSelectCurrentThread.tsx +0 -56
  337. package/src/types/schema.ts +0 -39
@@ -1,241 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { Rx } from '@effect-rx/rx-react';
6
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
7
- import { createPortal } from 'react-dom';
8
-
9
- import { Capabilities, Surface, useAppGraph, useCapabilities, usePluginManager } from '@dxos/app-framework';
10
- import { DXN, Filter, Obj, Query } from '@dxos/echo';
11
- import { SpaceCapabilities } from '@dxos/plugin-space';
12
- import { fullyQualifiedId, getSpace, useQuery, useSpace } from '@dxos/react-client/echo';
13
- import { toLocalizedString, useTranslation } from '@dxos/react-ui';
14
- import { type SelectionManager } from '@dxos/react-ui-attention';
15
- import {
16
- type CommandMenuGroup,
17
- type CommandMenuItem,
18
- insertAtCursor,
19
- insertAtLineStart,
20
- type PreviewLinkRef,
21
- type PreviewOptions,
22
- } from '@dxos/react-ui-editor';
23
- import { DataType } from '@dxos/schema';
24
-
25
- import { MarkdownEditor, type MarkdownEditorProps } from './MarkdownEditor';
26
- import { useExtensions } from '../extensions';
27
- import { DocumentType, type MarkdownSettingsProps } from '../types';
28
- import { getFallbackName } from '../util';
29
-
30
- export type MarkdownContainerProps = Pick<
31
- MarkdownEditorProps,
32
- 'role' | 'extensionProviders' | 'viewMode' | 'editorStateStore' | 'onViewModeChange'
33
- > & {
34
- id: string;
35
- object: DocumentType | DataType.Text | any;
36
- settings: MarkdownSettingsProps;
37
- selectionManager?: SelectionManager;
38
- };
39
-
40
- const MarkdownContainer = ({
41
- id,
42
- role,
43
- object,
44
- settings,
45
- selectionManager,
46
- viewMode,
47
- editorStateStore,
48
- onViewModeChange,
49
- }: MarkdownContainerProps) => {
50
- const { t } = useTranslation();
51
- const scrollPastEnd = role === 'article';
52
- const doc = Obj.instanceOf(DocumentType, object) ? object : undefined;
53
- const text = Obj.instanceOf(DataType.Text, object) ? object : undefined;
54
- const [previewBlocks, setPreviewBlocks] = useState<{ link: PreviewLinkRef; el: HTMLElement }[]>([]);
55
- const previewOptions = useMemo(
56
- (): PreviewOptions => ({
57
- addBlockContainer: (link, el) => {
58
- setPreviewBlocks((prev) => [...prev, { link, el }]);
59
- },
60
- removeBlockContainer: (link) => {
61
- setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.ref !== link.ref));
62
- },
63
- }),
64
- [],
65
- );
66
- const extensions = useExtensions({
67
- document: doc,
68
- text,
69
- id,
70
- settings,
71
- selectionManager,
72
- viewMode,
73
- editorStateStore,
74
- previewOptions,
75
- });
76
-
77
- // TODO(wittjosiah): Factor out.
78
- const manager = usePluginManager();
79
- const resolve = useCallback(
80
- (typename: string) =>
81
- manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},
82
- [manager],
83
- );
84
- const space = getSpace(object);
85
- const objectForms = useCapabilities(SpaceCapabilities.ObjectForm);
86
- const filter = useMemo(() => Filter.or(...objectForms.map((form) => Filter.type(form.objectSchema))), [objectForms]);
87
- const onLinkQuery = useCallback(
88
- async (query?: string): Promise<CommandMenuGroup[]> => {
89
- const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? '';
90
- const results = await space?.db.query(Query.select(filter)).run();
91
- // TODO(wittjosiah): Use `Obj.Any` type.
92
- const getLabel = (object: any) => {
93
- const type = Obj.getTypename(object)!;
94
- const metadata = resolve(type);
95
- return (
96
- metadata.label?.(object) || object.name || ['object name placeholder', { ns: type, default: 'New object' }]
97
- );
98
- };
99
- const items =
100
- results?.objects
101
- .filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name))
102
- // TODO(wittjosiah): Remove `any` type.
103
- .map((object: any): CommandMenuItem => {
104
- const metadata = resolve(Obj.getTypename(object)!);
105
- const label = toLocalizedString(getLabel(object), t);
106
- return {
107
- id: object.id,
108
- label,
109
- icon: metadata.icon,
110
- onSelect: (view, head) => {
111
- const link = `[${label}][${Obj.getDXN(object)}]`;
112
- if (query?.startsWith('@')) {
113
- insertAtLineStart(view, head, `!${link}\n`);
114
- } else {
115
- insertAtCursor(view, head, `${link} `);
116
- }
117
- },
118
- };
119
- }) ?? [];
120
- return [{ id: 'echo', items }];
121
- },
122
- [filter, resolve, space],
123
- );
124
-
125
- const editor = doc ? (
126
- <DocumentEditor
127
- id={fullyQualifiedId(object)}
128
- role={role}
129
- document={doc}
130
- extensions={extensions}
131
- viewMode={viewMode}
132
- settings={settings}
133
- scrollPastEnd={scrollPastEnd}
134
- onViewModeChange={onViewModeChange}
135
- onLinkQuery={space ? onLinkQuery : undefined}
136
- />
137
- ) : text ? (
138
- <MarkdownEditor
139
- id={id}
140
- role={role}
141
- initialValue={text.content}
142
- extensions={extensions}
143
- viewMode={viewMode}
144
- toolbar={settings.toolbar}
145
- inputMode={settings.editorInputMode}
146
- scrollPastEnd={scrollPastEnd}
147
- onViewModeChange={onViewModeChange}
148
- onLinkQuery={space ? onLinkQuery : undefined}
149
- />
150
- ) : (
151
- // TODO(burdon): Normalize with above.
152
- <MarkdownEditor
153
- id={id}
154
- role={role}
155
- initialValue={object.text}
156
- extensions={extensions}
157
- viewMode={viewMode}
158
- toolbar={settings.toolbar}
159
- inputMode={settings.editorInputMode}
160
- scrollPastEnd={scrollPastEnd}
161
- onViewModeChange={onViewModeChange}
162
- onLinkQuery={space ? onLinkQuery : undefined}
163
- />
164
- );
165
-
166
- return (
167
- <>
168
- {editor}
169
- {previewBlocks.map(({ link, el }) => (
170
- <PreviewBlock key={link.ref} link={link} el={el} />
171
- ))}
172
- </>
173
- );
174
- };
175
-
176
- // TODO(wittjosiah): This shouldn't be "card" but "block".
177
- // It's not a preview card but an interactive embedded object.
178
- const PreviewBlock = ({ link, el }: { link: PreviewLinkRef; el: HTMLElement }) => {
179
- const echoDXN = useMemo(() => DXN.parse(link.ref).asEchoDXN(), [link.ref]);
180
- const space = useSpace(echoDXN?.spaceId);
181
- const [subject] = useQuery(space, Query.select(Filter.ids(echoDXN?.echoId ?? '')));
182
- const data = useMemo(() => ({ subject }), [subject]);
183
-
184
- return createPortal(<Surface role='card--document' data={data} limit={1} />, el);
185
- };
186
-
187
- type DocumentEditorProps = Omit<MarkdownContainerProps, 'object' | 'extensionProviders' | 'editorStateStore'> &
188
- Pick<MarkdownEditorProps, 'id' | 'scrollPastEnd' | 'extensions' | 'onLinkQuery'> & {
189
- document: DocumentType;
190
- };
191
-
192
- export const DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }: DocumentEditorProps) => {
193
- const space = getSpace(doc);
194
-
195
- // Migrate gradually to `fallbackName`.
196
- useEffect(() => {
197
- if (typeof doc.fallbackName === 'string') {
198
- return;
199
- }
200
-
201
- const fallbackName = doc.content?.target?.content ? getFallbackName(doc.content.target.content) : undefined;
202
- if (fallbackName) {
203
- doc.fallbackName = fallbackName;
204
- }
205
- }, [doc, doc.content]);
206
-
207
- // File dragging.
208
- const [upload] = useCapabilities(Capabilities.FileUploader);
209
- const handleFileUpload = useMemo(() => {
210
- if (space === undefined || upload === undefined) {
211
- return undefined;
212
- }
213
-
214
- // TODO(burdon): Re-order props: space, file.
215
- return async (file: File) => upload!(file, space);
216
- }, [space, upload]);
217
-
218
- const { graph } = useAppGraph();
219
- const customActions = useMemo(() => {
220
- return Rx.make((get) => {
221
- const actions = get(graph.actions(id));
222
- const nodes = actions.filter((action) => action.properties.disposition === 'toolbar');
223
- return { nodes, edges: nodes.map((node) => ({ source: 'root', target: node.id })) };
224
- });
225
- }, [graph]);
226
-
227
- return (
228
- <MarkdownEditor
229
- id={id}
230
- initialValue={doc.content?.target?.content}
231
- viewMode={viewMode}
232
- toolbar={settings.toolbar}
233
- customActions={customActions}
234
- inputMode={settings.editorInputMode}
235
- onFileUpload={handleFileUpload}
236
- {...props}
237
- />
238
- );
239
- };
240
-
241
- export default MarkdownContainer;
@@ -1,74 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { type Meta } from '@storybook/react-vite';
8
- import React from 'react';
9
-
10
- import { IntentPlugin } from '@dxos/app-framework';
11
- import { withPluginManager } from '@dxos/app-framework/testing';
12
- import { Obj, Ref } from '@dxos/echo';
13
- import { DocumentType } from '@dxos/plugin-markdown/types';
14
- import { faker } from '@dxos/random';
15
- import { Icon, Popover } from '@dxos/react-ui';
16
- import { DataType } from '@dxos/schema';
17
- import { withTheme, withLayout } from '@dxos/storybook-utils';
18
-
19
- import { MarkdownPreview } from './MarkdownPreview';
20
- import { translations } from '../../translations';
21
-
22
- faker.seed(1234);
23
-
24
- const meta: Meta<typeof MarkdownPreview> = {
25
- title: 'plugins/plugin-markdown/MarkdownPreview',
26
- component: MarkdownPreview,
27
- render: ({ subject }) => {
28
- return (
29
- <Popover.Root open>
30
- <Popover.Content>
31
- <Popover.Viewport>
32
- <MarkdownPreview subject={subject} role='popover' />
33
- </Popover.Viewport>
34
- <Popover.Arrow />
35
- </Popover.Content>
36
- <Popover.Trigger>
37
- <Icon icon='ph--text-aa--regular' size={5} />
38
- </Popover.Trigger>
39
- </Popover.Root>
40
- );
41
- },
42
- decorators: [
43
- withPluginManager({
44
- plugins: [IntentPlugin()],
45
- }),
46
- withTheme,
47
- withLayout(),
48
- ],
49
- parameters: {
50
- layout: 'centered',
51
- translations,
52
- },
53
- };
54
-
55
- export default meta;
56
-
57
- const data = (() => {
58
- const document = Obj.make(DocumentType, {
59
- name: faker.lorem.words(3),
60
- content: Ref.make(
61
- Obj.make(DataType.Text, {
62
- content: faker.lorem.paragraphs(3),
63
- }),
64
- ),
65
- });
66
-
67
- return { document };
68
- })();
69
-
70
- export const Default = {
71
- args: {
72
- subject: Obj.make(DocumentType, data.document),
73
- },
74
- };
@@ -1,71 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { pipe } from 'effect';
6
- import React, { useCallback } from 'react';
7
-
8
- import { chain, createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';
9
- import { Obj } from '@dxos/echo';
10
- import { type PreviewProps } from '@dxos/plugin-preview';
11
- import { fullyQualifiedId } from '@dxos/react-client/echo';
12
- import { Button, Icon, useTranslation } from '@dxos/react-ui';
13
- import { Card } from '@dxos/react-ui-stack';
14
- import { DataType } from '@dxos/schema';
15
-
16
- import { MARKDOWN_PLUGIN } from '../../meta';
17
- import { DocumentType } from '../../types';
18
- import { getAbstract, getFallbackName } from '../../util';
19
-
20
- // TODO(burdon): Factor out.
21
- const getTitle = (subject: DocumentType | DataType.Text, fallback: string) => {
22
- if (Obj.instanceOf(DocumentType, subject)) {
23
- return subject.name ?? subject.fallbackName ?? getFallbackName(subject.content?.target?.content ?? fallback);
24
- } else if (Obj.instanceOf(DataType.Text, subject)) {
25
- return getFallbackName(subject.content);
26
- }
27
- };
28
-
29
- // TODO(burdon): Factor out.
30
- const getSnippet = (subject: DocumentType | DataType.Text, fallback: string) => {
31
- if (Obj.instanceOf(DocumentType, subject)) {
32
- return getAbstract(subject.content?.target?.content ?? fallback);
33
- } else if (Obj.instanceOf(DataType.Text, subject)) {
34
- return getAbstract(subject.content);
35
- }
36
- };
37
-
38
- export const MarkdownPreview = ({ subject, role }: PreviewProps<DocumentType | DataType.Text>) => {
39
- const { dispatchPromise: dispatch } = useIntentDispatcher();
40
- const { t } = useTranslation(MARKDOWN_PLUGIN);
41
- const snippet = getSnippet(subject, t('fallback abstract'));
42
-
43
- // TODO(wittjosiah): Factor out so this component isn't dependent on the app framework.
44
- const handleNavigate = useCallback(
45
- () =>
46
- dispatch(
47
- pipe(
48
- createIntent(LayoutAction.UpdatePopover, {
49
- part: 'popover',
50
- subject: null,
51
- options: { state: false, anchorId: '' },
52
- }),
53
- chain(LayoutAction.Open, { part: 'main', subject: [fullyQualifiedId(subject)] }),
54
- ),
55
- ),
56
- [dispatch, subject],
57
- );
58
-
59
- return (
60
- <Card.SurfaceRoot role={role}>
61
- <Card.Heading>{getTitle(subject, t('fallback title'))}</Card.Heading>
62
- {snippet && <Card.Text classNames='line-clamp-3 break-words col-span-2'>{snippet}</Card.Text>}
63
- <Card.Chrome>
64
- <Button onClick={handleNavigate}>
65
- <span className='grow'>{t('navigate to document label')}</span>
66
- <Icon icon='ph--arrow-right--regular' />
67
- </Button>
68
- </Card.Chrome>
69
- </Card.SurfaceRoot>
70
- );
71
- };
@@ -1,9 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { MarkdownPreview } from './MarkdownPreview';
6
-
7
- export * from './MarkdownPreview';
8
-
9
- export default MarkdownPreview;
@@ -1,215 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { type Meta } from '@storybook/react-vite';
8
- import { Match, Option, pipe, Schema } from 'effect';
9
- import React, { type FC, useEffect, useMemo, useState } from 'react';
10
-
11
- import { Message } from '@dxos/ai';
12
- import {
13
- Capabilities,
14
- CollaborationActions,
15
- IntentPlugin,
16
- SettingsPlugin,
17
- contributes,
18
- createIntent,
19
- useCapability,
20
- useIntentDispatcher,
21
- } from '@dxos/app-framework';
22
- import { withPluginManager } from '@dxos/app-framework/testing';
23
- import { Obj, Ref, Type } from '@dxos/echo';
24
- import { invariant } from '@dxos/invariant';
25
- import { DXN } from '@dxos/keys';
26
- import { ClientPlugin } from '@dxos/plugin-client';
27
- import { PreviewPlugin } from '@dxos/plugin-preview';
28
- import { SpacePlugin } from '@dxos/plugin-space';
29
- import { StorybookLayoutPlugin } from '@dxos/plugin-storybook-layout';
30
- import { ThemePlugin } from '@dxos/plugin-theme';
31
- import { faker } from '@dxos/random';
32
- import { createDocAccessor, fullyQualifiedId, toCursorRange, useQueue, useSpace } from '@dxos/react-client/echo';
33
- import { IconButton, Toolbar } from '@dxos/react-ui';
34
- import { command, type EditorSelection, type Range, useTextEditor } from '@dxos/react-ui-editor';
35
- import { StackItem } from '@dxos/react-ui-stack';
36
- import { defaultTx } from '@dxos/react-ui-theme';
37
- import { withLayout } from '@dxos/storybook-utils';
38
-
39
- import MarkdownContainer from './MarkdownContainer';
40
- import { MarkdownPlugin } from '../MarkdownPlugin';
41
- import { MarkdownCapabilities } from '../capabilities';
42
- import { MARKDOWN_PLUGIN } from '../meta';
43
- import { translations } from '../translations';
44
- import { createDocument, DocumentType, type MarkdownSettingsProps } from '../types';
45
-
46
- faker.seed(1);
47
-
48
- const TestItem = Schema.Struct({
49
- title: Schema.String.annotations({
50
- title: 'Title',
51
- description: 'Product title',
52
- }),
53
- description: Schema.String.annotations({
54
- title: 'Description',
55
- description: 'Product description',
56
- }),
57
- }).pipe(
58
- Type.Obj({
59
- typename: 'dxos.org/type/Test',
60
- version: '0.1.0',
61
- }),
62
- );
63
-
64
- const TestChat: FC<{ doc: DocumentType; content: string }> = ({ doc, content }) => {
65
- const { dispatchPromise: dispatch } = useIntentDispatcher();
66
- const { parentRef } = useTextEditor({ initialValue: content });
67
- const { editorState } = useCapability(MarkdownCapabilities.State);
68
-
69
- const space = useSpace();
70
- const queueDxn = useMemo(() => space && space.queues.create().dxn, [space]);
71
- const queue = useQueue<Message>(queueDxn);
72
-
73
- const handleInsert = async () => {
74
- invariant(space);
75
- invariant(queue);
76
- await queue.append([Obj.make(Message, { role: 'assistant', content: [{ type: 'text', text: 'Hello' }] })]);
77
- const message = queue.objects.at(-1);
78
- invariant(message);
79
-
80
- const text = await doc.content.load();
81
- const accessor = createDocAccessor(text, ['content']);
82
- const cursor = pipe(
83
- editorState.getState(fullyQualifiedId(doc))?.selection,
84
- Option.fromNullable,
85
- Option.map(selectionToRange),
86
- Option.map((range) => toCursorRange(accessor, range.from, range.to)),
87
- Option.getOrUndefined,
88
- );
89
-
90
- // {
91
- // const ref = refFromDXN(new DXN(DXN.kind.QUEUE, [...queue.dxn.parts, message.id]));
92
- // const message = deref(ref);
93
- // }
94
-
95
- void dispatch(
96
- createIntent(CollaborationActions.InsertContent, {
97
- target: doc as any as Type.Expando,
98
- object: Ref.fromDXN(new DXN(DXN.kind.QUEUE, [...queue.dxn.parts, message.id])),
99
- at: cursor,
100
- label: 'Proposal',
101
- }),
102
- );
103
- };
104
-
105
- return (
106
- <StackItem.Content toolbar>
107
- <Toolbar.Root>
108
- <IconButton icon='ph--plus--regular' disabled={!queue} label='Insert' onClick={handleInsert} />
109
- </Toolbar.Root>
110
- <div ref={parentRef} className='p-4' />
111
- </StackItem.Content>
112
- );
113
- };
114
-
115
- const DefaultStory = ({ document, chat }: { document: string; chat: string }) => {
116
- const space = useSpace();
117
- const [doc, setDoc] = useState<DocumentType>();
118
- const settings = useCapability(Capabilities.SettingsStore).getStore<MarkdownSettingsProps>(MARKDOWN_PLUGIN)!.value;
119
- const { editorState } = useCapability(MarkdownCapabilities.State);
120
-
121
- useEffect(() => {
122
- if (!space) {
123
- return undefined;
124
- }
125
-
126
- const doc = space.db.add(
127
- createDocument({
128
- name: 'Test',
129
-
130
- // Create links.
131
- content: document.replaceAll(/\[(\w+)\]/g, (_, label) => {
132
- const obj = space.db.add(Obj.make(TestItem, { title: label, description: faker.lorem.paragraph() }));
133
- const dxn = Ref.make(obj).dxn.toString();
134
- return `[${label}][${dxn}]`;
135
- }),
136
- }),
137
- );
138
-
139
- setDoc(doc);
140
- }, [space]);
141
-
142
- if (!space || !doc) {
143
- return <></>;
144
- }
145
-
146
- return (
147
- <>
148
- <MarkdownContainer id={doc.id} object={doc} settings={settings} editorStateStore={editorState} />
149
- <TestChat doc={doc} content={chat} />
150
- </>
151
- );
152
- };
153
-
154
- const meta: Meta<typeof DefaultStory> = {
155
- title: 'plugins/plugin-markdown/Suggestions',
156
- render: DefaultStory,
157
- decorators: [
158
- withPluginManager({
159
- plugins: [
160
- ThemePlugin({ tx: defaultTx }),
161
- StorybookLayoutPlugin(),
162
- ClientPlugin({
163
- types: [DocumentType, TestItem],
164
- onClientInitialized: async (_, client) => {
165
- await client.halo.createIdentity();
166
- },
167
- }),
168
- SpacePlugin(),
169
- SettingsPlugin(),
170
- IntentPlugin(),
171
- MarkdownPlugin(),
172
- PreviewPlugin(),
173
- ],
174
- capabilities: [contributes(MarkdownCapabilities.Extensions, [() => command()])],
175
- }),
176
- withLayout({ fullscreen: true, classNames: 'grid grid-cols-2' }),
177
- ],
178
- parameters: {
179
- translations,
180
- controls: { disable: true },
181
- },
182
- };
183
-
184
- export default meta;
185
-
186
- type Story = Meta<typeof DefaultStory>;
187
-
188
- export const Default: Story = {
189
- args: {
190
- chat: 'Hello\n',
191
- document: [
192
- '# Test',
193
- '',
194
- faker.lorem.paragraph(1),
195
- '',
196
- 'This is a [DXOS] story that tests [ECHO] references inside the Markdown plugin.',
197
- '',
198
- faker.lorem.paragraph(3),
199
- '',
200
- ].join('\n'),
201
- },
202
- };
203
-
204
- // TODO(wittjosiah): Factor out.
205
- const selectionToRange = Match.type<EditorSelection>().pipe(
206
- Match.when(
207
- ({ head, anchor }) => (head ? head > anchor : false),
208
- ({ head, anchor }) => ({ from: anchor, to: head! }) as Range,
209
- ),
210
- Match.when(
211
- ({ head, anchor }) => (head ? head < anchor : false),
212
- ({ head, anchor }) => ({ from: head!, to: anchor }) as Range,
213
- ),
214
- Match.orElse(({ anchor }) => ({ from: anchor, to: anchor }) as Range),
215
- );