@dxos/plugin-markdown 0.8.4-main.ae835ea → 0.8.4-main.bcb3aa67d6

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 (357) hide show
  1. package/dist/lib/browser/MarkdownSettings-5AD3X3II.mjs +124 -0
  2. package/dist/lib/browser/MarkdownSettings-5AD3X3II.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-46WIDM4R.mjs +98 -0
  6. package/dist/lib/browser/chunk-46WIDM4R.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-GQKARRJU.mjs +158 -0
  8. package/dist/lib/browser/chunk-GQKARRJU.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  10. package/dist/lib/browser/cli/index.mjs +39 -0
  11. package/dist/lib/browser/cli/index.mjs.map +7 -0
  12. package/dist/lib/browser/create-I7QWPBMS.mjs +30 -0
  13. package/dist/lib/browser/create-I7QWPBMS.mjs.map +7 -0
  14. package/dist/lib/browser/create-markdown-6QQXSF3Q.mjs +22 -0
  15. package/dist/lib/browser/create-markdown-6QQXSF3Q.mjs.map +7 -0
  16. package/dist/lib/browser/index.mjs +632 -153
  17. package/dist/lib/browser/index.mjs.map +4 -4
  18. package/dist/lib/browser/meta.json +1 -1
  19. package/dist/lib/browser/open-NSBN4NKR.mjs +21 -0
  20. package/dist/lib/browser/open-NSBN4NKR.mjs.map +7 -0
  21. package/dist/lib/browser/operations/index.mjs +14 -0
  22. package/dist/lib/browser/operations/index.mjs.map +7 -0
  23. package/dist/lib/browser/scroll-to-anchor-RA5OMQCP.mjs +49 -0
  24. package/dist/lib/browser/scroll-to-anchor-RA5OMQCP.mjs.map +7 -0
  25. package/dist/lib/browser/set-view-mode-75MBU6CB.mjs +26 -0
  26. package/dist/lib/browser/set-view-mode-75MBU6CB.mjs.map +7 -0
  27. package/dist/lib/browser/types/index.mjs +11 -5
  28. package/dist/lib/browser/update-QQJYONAC.mjs +45 -0
  29. package/dist/lib/browser/update-QQJYONAC.mjs.map +7 -0
  30. package/dist/lib/node-esm/MarkdownSettings-ODDM67XG.mjs +125 -0
  31. package/dist/lib/node-esm/MarkdownSettings-ODDM67XG.mjs.map +7 -0
  32. package/dist/lib/node-esm/blueprints/index.mjs +52 -0
  33. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  34. package/dist/lib/node-esm/chunk-4MSJO6IJ.mjs +99 -0
  35. package/dist/lib/node-esm/chunk-4MSJO6IJ.mjs.map +7 -0
  36. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  37. package/dist/lib/node-esm/chunk-QRCQ55W7.mjs +159 -0
  38. package/dist/lib/node-esm/chunk-QRCQ55W7.mjs.map +7 -0
  39. package/dist/lib/node-esm/cli/index.mjs +40 -0
  40. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  41. package/dist/lib/node-esm/create-VJ5SIKYF.mjs +31 -0
  42. package/dist/lib/node-esm/create-VJ5SIKYF.mjs.map +7 -0
  43. package/dist/lib/node-esm/create-markdown-P5KNGLZ5.mjs +23 -0
  44. package/dist/lib/node-esm/create-markdown-P5KNGLZ5.mjs.map +7 -0
  45. package/dist/lib/node-esm/index.mjs +632 -153
  46. package/dist/lib/node-esm/index.mjs.map +4 -4
  47. package/dist/lib/node-esm/meta.json +1 -1
  48. package/dist/lib/node-esm/open-U3T6IVHN.mjs +22 -0
  49. package/dist/lib/node-esm/open-U3T6IVHN.mjs.map +7 -0
  50. package/dist/lib/node-esm/operations/index.mjs +15 -0
  51. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  52. package/dist/lib/node-esm/scroll-to-anchor-CVM3LVSQ.mjs +50 -0
  53. package/dist/lib/node-esm/scroll-to-anchor-CVM3LVSQ.mjs.map +7 -0
  54. package/dist/lib/node-esm/set-view-mode-WQJBCUXY.mjs +27 -0
  55. package/dist/lib/node-esm/set-view-mode-WQJBCUXY.mjs.map +7 -0
  56. package/dist/lib/node-esm/types/index.mjs +11 -5
  57. package/dist/lib/node-esm/update-24CQM75C.mjs +46 -0
  58. package/dist/lib/node-esm/update-24CQM75C.mjs.map +7 -0
  59. package/dist/types/src/MarkdownPlugin.d.ts +2 -1
  60. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  61. package/dist/types/src/blueprints/index.d.ts +2 -0
  62. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  63. package/dist/types/src/blueprints/markdown-blueprint.d.ts +4 -0
  64. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -0
  65. package/dist/types/src/capabilities/anchor-sort.d.ts +4 -4
  66. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  67. package/dist/types/src/capabilities/app-graph-serializer.d.ts +3 -2
  68. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/artifact-definition.d.ts +3 -1
  70. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
  72. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/index.d.ts +27 -18
  74. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/node.d.ts +4 -0
  76. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  78. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  80. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/settings.d.ts +22 -2
  82. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/state.d.ts +4 -9
  84. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  85. package/dist/types/src/cli/index.d.ts +2 -0
  86. package/dist/types/src/cli/index.d.ts.map +1 -0
  87. package/dist/types/src/cli/plugin.d.ts +3 -0
  88. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  89. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +1 -1
  90. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
  91. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +19 -13
  92. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  93. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +2 -2
  94. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  95. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +20 -14
  96. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  97. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +10 -5
  98. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  99. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +4 -4
  100. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  101. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +138 -0
  102. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -0
  103. package/dist/types/src/components/MarkdownSettings/index.d.ts +2 -1
  104. package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -1
  105. package/dist/types/src/components/index.d.ts +3 -5
  106. package/dist/types/src/components/index.d.ts.map +1 -1
  107. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts +8 -0
  108. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  109. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
  110. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  111. package/dist/types/src/{components → containers}/MarkdownCard/index.d.ts +0 -1
  112. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
  113. package/dist/types/src/containers/MarkdownCard/snippet.d.ts +15 -0
  114. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
  115. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts +31 -0
  116. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -0
  117. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +99 -0
  118. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -0
  119. package/dist/types/src/containers/MarkdownContainer/index.d.ts +3 -0
  120. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -0
  121. package/dist/types/src/containers/index.d.ts +5 -0
  122. package/dist/types/src/containers/index.d.ts.map +1 -0
  123. package/dist/types/src/hooks/index.d.ts +1 -2
  124. package/dist/types/src/hooks/index.d.ts.map +1 -1
  125. package/dist/types/src/hooks/useEditorMenuOptions.d.ts +9 -0
  126. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -0
  127. package/dist/types/src/hooks/useExtensions.d.ts +10 -8
  128. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  129. package/dist/types/src/hooks/useLinkQuery.d.ts +3 -3
  130. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  131. package/dist/types/src/index.d.ts +2 -2
  132. package/dist/types/src/index.d.ts.map +1 -1
  133. package/dist/types/src/meta.d.ts +2 -2
  134. package/dist/types/src/meta.d.ts.map +1 -1
  135. package/dist/types/src/operations/create-markdown.d.ts +5 -0
  136. package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
  137. package/dist/types/src/operations/create.d.ts +5 -0
  138. package/dist/types/src/operations/create.d.ts.map +1 -0
  139. package/dist/types/src/operations/create.test.d.ts +2 -0
  140. package/dist/types/src/operations/create.test.d.ts.map +1 -0
  141. package/dist/types/src/operations/definitions.d.ts +64 -0
  142. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  143. package/dist/types/src/operations/index.d.ts +4 -0
  144. package/dist/types/src/operations/index.d.ts.map +1 -0
  145. package/dist/types/src/operations/open.d.ts +5 -0
  146. package/dist/types/src/operations/open.d.ts.map +1 -0
  147. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  148. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  149. package/dist/types/src/operations/set-view-mode.d.ts +5 -0
  150. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
  151. package/dist/types/src/operations/update.d.ts +5 -0
  152. package/dist/types/src/operations/update.d.ts.map +1 -0
  153. package/dist/types/src/operations/update.test.d.ts +2 -0
  154. package/dist/types/src/operations/update.test.d.ts.map +1 -0
  155. package/dist/types/src/testing.d.ts +6 -0
  156. package/dist/types/src/testing.d.ts.map +1 -0
  157. package/dist/types/src/translations.d.ts +75 -34
  158. package/dist/types/src/translations.d.ts.map +1 -1
  159. package/dist/types/src/types/Markdown.d.ts +30 -31
  160. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  161. package/dist/types/src/types/Settings.d.ts +16 -0
  162. package/dist/types/src/types/Settings.d.ts.map +1 -0
  163. package/dist/types/src/types/capabilities.d.ts +51 -0
  164. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  165. package/dist/types/src/types/events.d.ts +5 -0
  166. package/dist/types/src/types/events.d.ts.map +1 -0
  167. package/dist/types/src/types/index.d.ts +4 -2
  168. package/dist/types/src/types/index.d.ts.map +1 -1
  169. package/dist/types/src/types/types.d.ts +2 -2
  170. package/dist/types/src/types/types.d.ts.map +1 -1
  171. package/dist/types/src/util.d.ts +7 -4
  172. package/dist/types/src/util.d.ts.map +1 -1
  173. package/dist/types/src/util.test.d.ts +2 -0
  174. package/dist/types/src/util.test.d.ts.map +1 -0
  175. package/dist/types/tsconfig.tsbuildinfo +1 -1
  176. package/package.json +119 -59
  177. package/src/MarkdownPlugin.tsx +77 -103
  178. package/src/blueprints/index.ts +5 -0
  179. package/src/blueprints/markdown-blueprint.ts +44 -0
  180. package/src/capabilities/anchor-sort.ts +29 -22
  181. package/src/capabilities/app-graph-serializer.ts +51 -41
  182. package/src/capabilities/artifact-definition.ts +82 -84
  183. package/src/capabilities/blueprint-definition.ts +9 -31
  184. package/src/capabilities/index.ts +12 -12
  185. package/src/capabilities/node.ts +11 -0
  186. package/src/capabilities/operation-handler.ts +16 -0
  187. package/src/capabilities/react-surface.tsx +108 -80
  188. package/src/capabilities/settings.ts +30 -18
  189. package/src/capabilities/state.ts +41 -25
  190. package/src/cli/index.ts +5 -0
  191. package/src/cli/plugin.ts +40 -0
  192. package/src/components/MarkdownEditor/FileUpload.tsx +2 -2
  193. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +39 -41
  194. package/src/components/MarkdownEditor/MarkdownEditor.tsx +87 -57
  195. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +69 -34
  196. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +48 -53
  197. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +40 -0
  198. package/src/components/MarkdownSettings/MarkdownSettings.tsx +116 -86
  199. package/src/components/MarkdownSettings/index.ts +3 -1
  200. package/src/components/index.ts +4 -7
  201. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +68 -0
  202. package/src/containers/MarkdownCard/MarkdownCard.tsx +57 -0
  203. package/src/{components → containers}/MarkdownCard/index.ts +0 -2
  204. package/src/containers/MarkdownCard/snippet.ts +75 -0
  205. package/src/containers/MarkdownContainer/MarkdownContainer.stories.tsx +133 -0
  206. package/src/containers/MarkdownContainer/MarkdownContainer.tsx +134 -0
  207. package/src/containers/MarkdownContainer/index.ts +6 -0
  208. package/src/containers/index.ts +10 -0
  209. package/src/hooks/index.ts +1 -2
  210. package/src/hooks/{usePopoverMenuOptions.ts → useEditorMenuOptions.ts} +20 -23
  211. package/src/hooks/useExtensions.tsx +100 -109
  212. package/src/hooks/useLinkQuery.ts +49 -23
  213. package/src/index.ts +3 -2
  214. package/src/meta.ts +3 -3
  215. package/src/operations/create-markdown.ts +21 -0
  216. package/src/operations/create.conversations.json +1 -0
  217. package/src/operations/create.test.ts +98 -0
  218. package/src/operations/create.ts +27 -0
  219. package/src/operations/definitions.ts +119 -0
  220. package/src/operations/index.ts +16 -0
  221. package/src/operations/open.ts +25 -0
  222. package/src/operations/scroll-to-anchor.ts +40 -0
  223. package/src/operations/set-view-mode.ts +25 -0
  224. package/src/operations/update.conversations.json +1 -0
  225. package/src/operations/update.test.ts +215 -0
  226. package/src/operations/update.ts +51 -0
  227. package/src/testing.ts +27 -0
  228. package/src/translations.ts +49 -34
  229. package/src/types/Markdown.ts +23 -31
  230. package/src/types/Settings.ts +28 -0
  231. package/src/types/capabilities.ts +50 -0
  232. package/src/types/events.ts +14 -0
  233. package/src/types/index.ts +5 -2
  234. package/src/types/types.ts +3 -2
  235. package/src/util.test.ts +44 -0
  236. package/src/util.tsx +80 -12
  237. package/dist/lib/browser/MarkdownCard-SLM6QZYC.mjs +0 -12
  238. package/dist/lib/browser/MarkdownContainer-UZFQC6XY.mjs +0 -15
  239. package/dist/lib/browser/anchor-sort-4XPPLMZS.mjs +0 -32
  240. package/dist/lib/browser/anchor-sort-4XPPLMZS.mjs.map +0 -7
  241. package/dist/lib/browser/app-graph-serializer-QQFV4K6P.mjs +0 -51
  242. package/dist/lib/browser/app-graph-serializer-QQFV4K6P.mjs.map +0 -7
  243. package/dist/lib/browser/blueprint-definition-BC5R3T72.mjs +0 -11
  244. package/dist/lib/browser/blueprint-definition-BC5R3T72.mjs.map +0 -7
  245. package/dist/lib/browser/chunk-2LLVTQCK.mjs +0 -51
  246. package/dist/lib/browser/chunk-2LLVTQCK.mjs.map +0 -7
  247. package/dist/lib/browser/chunk-3VILQLA4.mjs +0 -95
  248. package/dist/lib/browser/chunk-3VILQLA4.mjs.map +0 -7
  249. package/dist/lib/browser/chunk-5AYTOIUF.mjs +0 -822
  250. package/dist/lib/browser/chunk-5AYTOIUF.mjs.map +0 -7
  251. package/dist/lib/browser/chunk-A3CQYGCN.mjs +0 -56
  252. package/dist/lib/browser/chunk-A3CQYGCN.mjs.map +0 -7
  253. package/dist/lib/browser/chunk-BQTYJOFB.mjs +0 -28
  254. package/dist/lib/browser/chunk-BQTYJOFB.mjs.map +0 -7
  255. package/dist/lib/browser/chunk-GLEYXJX3.mjs +0 -22
  256. package/dist/lib/browser/chunk-GLEYXJX3.mjs.map +0 -7
  257. package/dist/lib/browser/chunk-IBCHVMZW.mjs +0 -16
  258. package/dist/lib/browser/chunk-IBCHVMZW.mjs.map +0 -7
  259. package/dist/lib/browser/chunk-JAETS5LE.mjs +0 -106
  260. package/dist/lib/browser/chunk-JAETS5LE.mjs.map +0 -7
  261. package/dist/lib/browser/chunk-UKTCPHLI.mjs +0 -79
  262. package/dist/lib/browser/chunk-UKTCPHLI.mjs.map +0 -7
  263. package/dist/lib/browser/intent-resolver-VQGMBNXZ.mjs +0 -62
  264. package/dist/lib/browser/intent-resolver-VQGMBNXZ.mjs.map +0 -7
  265. package/dist/lib/browser/react-surface-WOMJOPJE.mjs +0 -217
  266. package/dist/lib/browser/react-surface-WOMJOPJE.mjs.map +0 -7
  267. package/dist/lib/browser/settings-LBXJHVBU.mjs +0 -28
  268. package/dist/lib/browser/settings-LBXJHVBU.mjs.map +0 -7
  269. package/dist/lib/browser/state-BTUKVZHY.mjs +0 -37
  270. package/dist/lib/browser/state-BTUKVZHY.mjs.map +0 -7
  271. package/dist/lib/browser/toolkit-YPIVDB4A.mjs +0 -66
  272. package/dist/lib/browser/toolkit-YPIVDB4A.mjs.map +0 -7
  273. package/dist/lib/node-esm/MarkdownCard-MCWEFW4F.mjs +0 -13
  274. package/dist/lib/node-esm/MarkdownCard-MCWEFW4F.mjs.map +0 -7
  275. package/dist/lib/node-esm/MarkdownContainer-KAQOK7K5.mjs +0 -16
  276. package/dist/lib/node-esm/MarkdownContainer-KAQOK7K5.mjs.map +0 -7
  277. package/dist/lib/node-esm/anchor-sort-4SXYVYXT.mjs +0 -33
  278. package/dist/lib/node-esm/anchor-sort-4SXYVYXT.mjs.map +0 -7
  279. package/dist/lib/node-esm/app-graph-serializer-KBVRLQN2.mjs +0 -52
  280. package/dist/lib/node-esm/app-graph-serializer-KBVRLQN2.mjs.map +0 -7
  281. package/dist/lib/node-esm/blueprint-definition-FPNOTEYC.mjs +0 -12
  282. package/dist/lib/node-esm/blueprint-definition-FPNOTEYC.mjs.map +0 -7
  283. package/dist/lib/node-esm/chunk-2Q4WCKWT.mjs +0 -823
  284. package/dist/lib/node-esm/chunk-2Q4WCKWT.mjs.map +0 -7
  285. package/dist/lib/node-esm/chunk-DOB2MJAX.mjs +0 -107
  286. package/dist/lib/node-esm/chunk-DOB2MJAX.mjs.map +0 -7
  287. package/dist/lib/node-esm/chunk-GGKPPGWA.mjs +0 -24
  288. package/dist/lib/node-esm/chunk-GGKPPGWA.mjs.map +0 -7
  289. package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs +0 -17
  290. package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs.map +0 -7
  291. package/dist/lib/node-esm/chunk-JELROKGD.mjs +0 -80
  292. package/dist/lib/node-esm/chunk-JELROKGD.mjs.map +0 -7
  293. package/dist/lib/node-esm/chunk-QH4MC5BE.mjs +0 -52
  294. package/dist/lib/node-esm/chunk-QH4MC5BE.mjs.map +0 -7
  295. package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs +0 -29
  296. package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs.map +0 -7
  297. package/dist/lib/node-esm/chunk-SJ2QRGPM.mjs +0 -57
  298. package/dist/lib/node-esm/chunk-SJ2QRGPM.mjs.map +0 -7
  299. package/dist/lib/node-esm/chunk-YYSASY7X.mjs +0 -96
  300. package/dist/lib/node-esm/chunk-YYSASY7X.mjs.map +0 -7
  301. package/dist/lib/node-esm/intent-resolver-Q4XVI5EX.mjs +0 -63
  302. package/dist/lib/node-esm/intent-resolver-Q4XVI5EX.mjs.map +0 -7
  303. package/dist/lib/node-esm/react-surface-FAMZTAXK.mjs +0 -218
  304. package/dist/lib/node-esm/react-surface-FAMZTAXK.mjs.map +0 -7
  305. package/dist/lib/node-esm/settings-2YRA67H6.mjs +0 -29
  306. package/dist/lib/node-esm/settings-2YRA67H6.mjs.map +0 -7
  307. package/dist/lib/node-esm/state-K6EH7SRZ.mjs +0 -38
  308. package/dist/lib/node-esm/state-K6EH7SRZ.mjs.map +0 -7
  309. package/dist/lib/node-esm/toolkit-36BFLIR3.mjs +0 -67
  310. package/dist/lib/node-esm/toolkit-36BFLIR3.mjs.map +0 -7
  311. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  312. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  313. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  314. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  315. package/dist/types/src/capabilities/toolkit.d.ts +0 -20
  316. package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
  317. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +0 -7
  318. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +0 -1
  319. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +0 -9
  320. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +0 -1
  321. package/dist/types/src/components/MarkdownCard/index.d.ts.map +0 -1
  322. package/dist/types/src/components/MarkdownContainer.d.ts +0 -14
  323. package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
  324. package/dist/types/src/components/MarkdownContainer.stories.d.ts +0 -58
  325. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
  326. package/dist/types/src/components/Suggestions.stories.d.ts +0 -11
  327. package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
  328. package/dist/types/src/events.d.ts +0 -4
  329. package/dist/types/src/events.d.ts.map +0 -1
  330. package/dist/types/src/functions/diff.d.ts +0 -6
  331. package/dist/types/src/functions/diff.d.ts.map +0 -1
  332. package/dist/types/src/functions/index.d.ts +0 -3
  333. package/dist/types/src/functions/index.d.ts.map +0 -1
  334. package/dist/types/src/functions/open.d.ts +0 -7
  335. package/dist/types/src/functions/open.d.ts.map +0 -1
  336. package/dist/types/src/hooks/usePopoverMenuOptions.d.ts +0 -9
  337. package/dist/types/src/hooks/usePopoverMenuOptions.d.ts.map +0 -1
  338. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
  339. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
  340. package/dist/types/src/types/MarkdownAction.d.ts +0 -34
  341. package/dist/types/src/types/MarkdownAction.d.ts.map +0 -1
  342. package/src/capabilities/capabilities.ts +0 -22
  343. package/src/capabilities/intent-resolver.ts +0 -58
  344. package/src/capabilities/toolkit.ts +0 -53
  345. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +0 -76
  346. package/src/components/MarkdownCard/MarkdownCard.tsx +0 -85
  347. package/src/components/MarkdownContainer.stories.tsx +0 -137
  348. package/src/components/MarkdownContainer.tsx +0 -121
  349. package/src/components/Suggestions.stories.tsx +0 -219
  350. package/src/events.ts +0 -11
  351. package/src/functions/diff.ts +0 -37
  352. package/src/functions/index.ts +0 -6
  353. package/src/functions/open.ts +0 -32
  354. package/src/hooks/useSelectCurrentThread.tsx +0 -56
  355. package/src/types/MarkdownAction.ts +0 -29
  356. /package/dist/lib/browser/{MarkdownCard-SLM6QZYC.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  357. /package/dist/lib/{browser/MarkdownContainer-UZFQC6XY.mjs.map → node-esm/chunk-HSLMI22Q.mjs.map} +0 -0
@@ -3,18 +3,16 @@
3
3
  //
4
4
 
5
5
  import { type ViewUpdate } from '@codemirror/view';
6
- import React, { type AnchorHTMLAttributes, type ReactNode, useMemo } from 'react';
7
- import { createRoot } from 'react-dom/client';
8
-
9
- import { LayoutAction, type PromiseIntentDispatcher, createIntent, useIntentDispatcher } from '@dxos/app-framework';
6
+ import { useMemo } from 'react';
10
7
  import { debounceAndThrottle } from '@dxos/async';
11
8
  import { Obj } from '@dxos/echo';
9
+ import { createDocAccessor } from '@dxos/echo-db';
12
10
  import { invariant } from '@dxos/invariant';
13
- import { createDocAccessor, fullyQualifiedId } from '@dxos/react-client/echo';
14
- import { getSpace } from '@dxos/react-client/echo';
11
+ import { getSpace, useObject } from '@dxos/react-client/echo';
15
12
  import { useIdentity } from '@dxos/react-client/halo';
16
- import { Icon, ThemeProvider } from '@dxos/react-ui';
17
13
  import { type SelectionManager } from '@dxos/react-ui-attention';
14
+ import { Text } from '@dxos/schema';
15
+ import { Domino } from '@dxos/ui';
18
16
  import {
19
17
  Cursor,
20
18
  type EditorStateStore,
@@ -32,27 +30,31 @@ import {
32
30
  linkTooltip,
33
31
  listener,
34
32
  preview,
33
+ replacer,
35
34
  selectionState,
36
35
  typewriter,
37
- } from '@dxos/react-ui-editor';
38
- import { defaultTx } from '@dxos/react-ui-theme';
39
- import { DataType } from '@dxos/schema';
40
- import { isTruthy } from '@dxos/util';
36
+ } from '@dxos/ui-editor';
37
+ import { useThemeContext } from '@dxos/react-ui';
38
+ import { isTruthy, safeUrl } from '@dxos/util';
41
39
 
42
- import { Markdown } from '../types';
40
+ import { Markdown } from '#types';
43
41
  import { setFallbackName } from '../util';
42
+ import { fromUrlPath } from '@dxos/app-toolkit';
44
43
 
45
- export type DocumentType = Markdown.Document | DataType.Text | { id: string; text: string };
44
+ export type DocumentType = Markdown.Document | Text.Text | { id: string; text: string };
46
45
 
47
46
  export type ExtensionsOptions = {
48
47
  id: string;
49
48
  object?: DocumentType;
50
- dispatch?: PromiseIntentDispatcher;
51
49
  settings?: Markdown.Settings;
52
- selectionManager?: SelectionManager;
50
+ compact?: boolean;
53
51
  viewMode?: EditorViewMode;
52
+ selectionManager?: SelectionManager;
54
53
  editorStateStore?: EditorStateStore;
55
54
  previewOptions?: PreviewOptions;
55
+ platform?: 'mobile' | 'desktop';
56
+ /** Callback when an internal link is clicked. */
57
+ onSelectObject?: (objectId: string) => void;
56
58
  };
57
59
 
58
60
  // TODO(burdon): Merge with createBaseExtensions below.
@@ -60,21 +62,23 @@ export const useExtensions = ({
60
62
  id,
61
63
  object,
62
64
  settings,
63
- selectionManager,
65
+ compact,
64
66
  viewMode,
67
+ selectionManager,
65
68
  editorStateStore,
66
69
  previewOptions,
70
+ onSelectObject,
67
71
  }: ExtensionsOptions): Extension[] => {
68
- const { dispatchPromise: dispatch } = useIntentDispatcher();
72
+ const { platform } = useThemeContext();
69
73
  const identity = useIdentity();
70
74
  const space = getSpace(object);
71
75
 
72
- let target: Obj.Any | undefined;
73
- if (Obj.instanceOf(Markdown.Document, object)) {
74
- target = (object as Markdown.Document).content.target;
75
- } else if (Obj.instanceOf(DataType.Text, object)) {
76
- target = object;
77
- }
76
+ // Get the content reference from Document objects.
77
+ const contentRef = Obj.instanceOf(Markdown.Document, object) ? (object as Markdown.Document).content : undefined;
78
+ // Use useObject to trigger re-render when the reference loads (returns snapshot for reactivity).
79
+ useObject(contentRef);
80
+ // Get the actual live object target via .target (needed for createDocAccessor).
81
+ const target = contentRef?.target ?? (Obj.instanceOf(Text.Text, object) ? object : undefined);
78
82
 
79
83
  // TODO(wittjosiah): Autocomplete is not working and this query is causing performance issues.
80
84
  // TODO(burdon): Unsubscribe.
@@ -87,24 +91,28 @@ export const useExtensions = ({
87
91
  id,
88
92
  object,
89
93
  settings,
90
- selectionManager,
94
+ compact,
91
95
  viewMode,
96
+ selectionManager,
92
97
  previewOptions,
93
- dispatch,
98
+ onSelectObject,
99
+ platform,
94
100
  }),
95
101
  [
96
102
  id,
97
103
  object,
104
+ compact,
98
105
  viewMode,
99
- dispatch,
106
+ selectionManager,
100
107
  previewOptions,
108
+ onSelectObject,
101
109
  settings,
102
110
  settings?.debug,
103
111
  settings?.editorInputMode,
104
112
  settings?.folding,
105
113
  settings?.numberedHeadings,
114
+ platform,
106
115
  settings?.typewriter,
107
- selectionManager,
108
116
  ],
109
117
  );
110
118
 
@@ -113,7 +121,13 @@ export const useExtensions = ({
113
121
  [
114
122
  // TODO(burdon): Pass this in?
115
123
  // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
116
- target && createDataExtensions({ id, text: createDocAccessor(target, ['content']), space, identity }),
124
+ target &&
125
+ createDataExtensions({
126
+ id,
127
+ text: createDocAccessor(target, ['content']),
128
+ messenger: space,
129
+ identity,
130
+ }),
117
131
 
118
132
  // TODO(burdon): Reconcile with effect in parent.
119
133
  Obj.instanceOf(Markdown.Document, object) &&
@@ -136,16 +150,18 @@ export const useExtensions = ({
136
150
  const createBaseExtensions = ({
137
151
  id,
138
152
  object,
139
- dispatch,
153
+ onSelectObject,
140
154
  settings,
141
- selectionManager,
155
+ compact,
142
156
  viewMode,
157
+ selectionManager,
143
158
  previewOptions,
159
+ platform,
144
160
  }: ExtensionsOptions): Extension[] => {
145
161
  const extensions: Extension[] = [
146
162
  selectionManager && selectionChange(selectionManager),
147
163
  settings?.editorInputMode && InputModeExtensions[settings.editorInputMode],
148
- settings?.folding && folding(),
164
+ settings?.folding && !compact && platform !== 'mobile' && folding(),
149
165
  ].filter(isTruthy);
150
166
 
151
167
  //
@@ -158,25 +174,12 @@ const createBaseExtensions = ({
158
174
  decorateMarkdown({
159
175
  selectionChangeDelay: 100,
160
176
  numberedHeadings: settings?.numberedHeadings ? { from: 2 } : undefined,
161
- // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
162
- // TODO(burdon): Create dx-tag.
163
- renderLinkButton:
164
- dispatch && (object || id)
165
- ? createLinkRenderer((id: string) => {
166
- void dispatch(
167
- createIntent(LayoutAction.Open, {
168
- part: 'main',
169
- subject: [id],
170
- options: {
171
- pivotId: object ? fullyQualifiedId(object) : id,
172
- },
173
- }),
174
- );
175
- })
176
- : undefined,
177
+ // TODO(wittjosiah): For internal links render the label of the object.
178
+ renderLinkButton: onSelectObject && createRenderLink(onSelectObject),
177
179
  }),
178
180
  linkTooltip(renderLinkTooltip),
179
181
  preview(previewOptions),
182
+ replacer(),
180
183
  ],
181
184
  );
182
185
  }
@@ -192,79 +195,67 @@ const createBaseExtensions = ({
192
195
  };
193
196
 
194
197
  const selectionChange = (selectionManager: SelectionManager) => {
195
- return EditorView.updateListener.of(
196
- debounceAndThrottle((update: ViewUpdate) => {
197
- if (update.selectionSet) {
198
- const id = update.state.facet(documentId);
199
- const cursorConverter = update.state.facet(Cursor.converter);
200
- const selection = update.state.selection;
201
- const ranges = selection.ranges
202
- .map((range) => ({
203
- from: cursorConverter.toCursor(range.from),
204
- to: cursorConverter.toCursor(range.to),
205
- }))
206
- .filter(({ from, to }) => to > from);
198
+ const debouncedHandler = debounceAndThrottle((update: ViewUpdate) => {
199
+ const id = update.state.facet(documentId);
200
+ const cursorConverter = update.state.facet(Cursor.converter);
201
+ const selection = update.state.selection;
202
+ const ranges = selection.ranges
203
+ .map((range) => ({
204
+ from: cursorConverter.toCursor(range.from),
205
+ to: cursorConverter.toCursor(range.to),
206
+ }))
207
+ .filter(({ from, to }) => to > from);
207
208
 
208
- selectionManager.updateMultiRange(id, ranges);
209
- }
210
- }, 100),
211
- );
212
- };
209
+ selectionManager.updateMultiRange(id, ranges);
210
+ }, 100);
213
211
 
214
- // TODO(burdon): Factor out styles.
215
- const style = {
216
- hover: 'rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400',
217
- icon: 'inline-block leading-none mis-1 cursor-pointer',
212
+ return EditorView.updateListener.of((update: ViewUpdate) => {
213
+ if (update.selectionSet) {
214
+ debouncedHandler(update);
215
+ }
216
+ });
218
217
  };
219
218
 
220
- const createLinkRenderer =
219
+ const createRenderLink =
221
220
  (onSelectObject: (id: string) => void): RenderCallback<{ url: string }> =>
222
221
  (el, { url }) => {
223
222
  // TODO(burdon): Formalize/document internal link format.
224
- const isInternal =
225
- url.startsWith('/') ||
226
- // TODO(wittjosiah): This should probably be parsed out on paste?
227
- url.startsWith(window.location.origin);
223
+ const isInternal = url.startsWith('/') || url.startsWith(window.location.origin);
224
+ const qualifiedId = isInternal ? fromUrlPath(new URL(url, window.location.origin).pathname) : undefined;
225
+ const icon = Domino.of('span')
226
+ .classNames('dx-link ms-1 inline-block align-[-0.125em]')
227
+ .children(Domino.svg(isInternal ? 'ph--arrow-square-down--regular' : 'ph--arrow-square-out--regular'));
228
228
 
229
- const options: AnchorHTMLAttributes<any> = isInternal
230
- ? {
231
- onClick: () => {
232
- const qualifiedId = url.split('/').at(-1);
233
- invariant(qualifiedId, 'Invalid link format.');
234
- onSelectObject(qualifiedId);
235
- },
236
- }
237
- : {
238
- href: url,
239
- rel: 'noreferrer',
240
- target: '_blank',
241
- };
229
+ if (isInternal) {
230
+ invariant(qualifiedId, 'Invalid link format.');
231
+ icon
232
+ .attributes({ role: 'button', tabindex: '0' })
233
+ .on('click', (event) => {
234
+ event.preventDefault();
235
+ event.stopPropagation();
236
+ onSelectObject(qualifiedId);
237
+ })
238
+ .on('keydown', (event) => {
239
+ const keyboardEvent = event as KeyboardEvent;
240
+ if (keyboardEvent.key !== 'Enter' && keyboardEvent.key !== ' ') {
241
+ return;
242
+ }
242
243
 
243
- renderRoot(
244
- el,
245
- <a {...options} className={style.hover}>
246
- <Icon
247
- icon={isInternal ? 'ph--arrow-square-down--bold' : 'ph--arrow-square-out--bold'}
248
- size={4}
249
- classNames={style.icon}
250
- />
251
- </a>,
252
- );
244
+ keyboardEvent.preventDefault();
245
+ keyboardEvent.stopPropagation();
246
+ onSelectObject(qualifiedId);
247
+ });
248
+ }
249
+
250
+ el.appendChild(icon.root);
253
251
  };
254
252
 
255
253
  const renderLinkTooltip: RenderCallback<{ url: string }> = (el, { url }) => {
256
- const web = new URL(url);
257
- renderRoot(
258
- el,
259
- <a href={url} rel='noreferrer' target='_blank' className={style.hover}>
260
- {web.origin}
261
- <Icon icon='ph--arrow-square-out--bold' size={4} classNames={style.icon} />
262
- </a>,
254
+ el.appendChild(
255
+ Domino.of('a')
256
+ .attributes({ href: url, target: '_blank', rel: 'noreferrer' })
257
+ .classNames('dx-link flex items-center gap-2')
258
+ .text(safeUrl(url)?.toString() ?? url)
259
+ .children(Domino.svg('ph--arrow-square-out--regular')).root,
263
260
  );
264
261
  };
265
-
266
- // TODO(burdon): REMOVE.
267
- const renderRoot = <T extends Element>(root: T, node: ReactNode): T => {
268
- createRoot(root).render(<ThemeProvider tx={defaultTx}>{node}</ThemeProvider>);
269
- return root;
270
- };
@@ -2,43 +2,47 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ import * as Option from 'effect/Option';
5
6
  import { useCallback, useMemo } from 'react';
6
7
 
7
- import { Capabilities, useCapabilities, usePluginManager } from '@dxos/app-framework';
8
- import { Filter, Obj, Query, Type } from '@dxos/echo';
9
- import { ClientCapabilities } from '@dxos/plugin-client';
10
- import { SpaceCapabilities } from '@dxos/plugin-space';
11
- import { type Space } from '@dxos/react-client/echo';
8
+ import { usePluginManager } from '@dxos/app-framework/ui';
9
+ import { AppCapabilities } from '@dxos/app-toolkit';
10
+ import { type Database, Filter, Obj, Query, Type } from '@dxos/echo';
11
+ import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from '@dxos/echo/internal';
12
12
  import { toLocalizedString, useTranslation } from '@dxos/react-ui';
13
- import { type PopoverMenuGroup, type PopoverMenuItem, 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';
14
15
 
15
- export const useLinkQuery = (space: Space | undefined) => {
16
+ import { Markdown } from '../types';
17
+
18
+ export const useLinkQuery = (db: Database.Database | undefined) => {
16
19
  const { t } = useTranslation();
17
20
 
18
21
  const manager = usePluginManager();
19
22
  const resolve = useCallback(
20
23
  (typename: string) =>
21
- manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},
24
+ manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},
22
25
  [manager],
23
26
  );
24
27
 
25
- const objectForms = useCapabilities(SpaceCapabilities.ObjectForm);
26
- const schemaWhiteList = useCapabilities(ClientCapabilities.SchemaWhiteList);
27
28
  const filter = useMemo(
28
29
  () =>
29
30
  Filter.or(
30
- ...objectForms.map((form) => Filter.type(form.objectSchema)),
31
- ...schemaWhiteList.flat().map((schema) => Filter.typename(Type.getTypename(schema))),
31
+ ...(db?.schemaRegistry.query({ location: ['database', 'runtime'] }).runSync() ?? [])
32
+ .filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation)
33
+ .filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false)))
34
+ .map((schema) => Filter.typename(Type.getTypename(schema))),
32
35
  ),
33
- [objectForms, schemaWhiteList],
36
+ [db],
34
37
  );
35
38
 
36
39
  const handleLinkQuery = useCallback(
37
- async (query?: string): Promise<PopoverMenuGroup[]> => {
40
+ async (query?: string): Promise<EditorMenuGroup[]> => {
41
+ // A second "@" switches the link query into block-embed mode, so "@@foo" searches for "foo".
38
42
  const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : (query?.toLowerCase() ?? '');
39
- const results = await space?.db.query(Query.select(filter)).run();
43
+ const results = await db?.query(Query.select(filter)).run();
40
44
 
41
- // TODO(wittjosiah): Use `Obj.Any` type.
45
+ // TODO(wittjosiah): Use `Obj.Unknown` type.
42
46
  const getLabel = (object: any) => {
43
47
  const label = Obj.getLabel(object);
44
48
  if (label) {
@@ -48,22 +52,23 @@ export const useLinkQuery = (space: Space | undefined) => {
48
52
  // TODO(wittjosiah): Remove metadata labels.
49
53
  const type = Obj.getTypename(object)!;
50
54
  const metadata = resolve(type);
51
- return metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New object' }];
55
+ return metadata.label?.(object) || ['object-name.placeholder', { ns: type, defaultValue: 'New object' }];
52
56
  };
53
57
 
54
58
  const items =
55
- results?.objects
56
- .filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name))
59
+ results
60
+ ?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name))
57
61
  // TODO(wittjosiah): Remove `any` type.
58
- .map((object: any): PopoverMenuItem => {
62
+ .map((object: any): EditorMenuItem => {
59
63
  const metadata = resolve(Obj.getTypename(object)!);
60
64
  const label = toLocalizedString(getLabel(object), t);
61
65
  return {
62
66
  id: object.id,
63
67
  label,
64
68
  icon: metadata.icon,
65
- onSelect: (view, head) => {
69
+ onSelect: ({ view, head }) => {
66
70
  const link = `[${label}](${Obj.getDXN(object)})`;
71
+ // "@@" inserts a block embed on its own line instead of an inline link.
67
72
  if (query?.startsWith('@')) {
68
73
  insertAtLineStart(view, head, `!${link}\n`);
69
74
  } else {
@@ -73,9 +78,30 @@ export const useLinkQuery = (space: Space | undefined) => {
73
78
  };
74
79
  }) ?? [];
75
80
 
76
- return [{ id: 'echo', items }];
81
+ // Add "Create new document" option at the end.
82
+ const createItem: EditorMenuItem = {
83
+ id: 'create-document',
84
+ label: ['add-object.label', { ns: Markdown.Document.typename }],
85
+ icon: 'ph--plus--regular',
86
+ onSelect: ({ view, head }) => {
87
+ const doc = Markdown.make({ name: name || undefined });
88
+ db?.add(doc);
89
+ const label = name || t('object-name.placeholder', { ns: Markdown.Document.typename });
90
+ const link = `[${label}](${Obj.getDXN(doc)})`;
91
+ if (query?.startsWith('@')) {
92
+ insertAtLineStart(view, head, `!${link}\n`);
93
+ } else {
94
+ insertAtCursor(view, head, `${link} `);
95
+ }
96
+ },
97
+ };
98
+
99
+ return [
100
+ { id: 'echo', items },
101
+ { id: 'create', items: [createItem] },
102
+ ];
77
103
  },
78
- [space, filter, resolve],
104
+ [db, filter, resolve, t],
79
105
  );
80
106
 
81
107
  return handleLinkQuery;
package/src/index.ts CHANGED
@@ -2,11 +2,12 @@
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';
10
9
  export * from './util';
11
10
 
12
11
  export * from './MarkdownPlugin';
12
+
13
+ export { MarkdownEditor } from './components';
package/src/meta.ts CHANGED
@@ -2,11 +2,11 @@
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 = {
9
- id: 'dxos.org/plugin/markdown',
8
+ export const meta: Plugin.Meta = {
9
+ id: 'org.dxos.plugin.markdown',
10
10
  name: 'Markdown',
11
11
  description: trim`
12
12
  Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
@@ -0,0 +1,21 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Operation } from '@dxos/operation';
8
+
9
+ import { CreateMarkdown } from './definitions';
10
+
11
+ import { Markdown } from '../types';
12
+
13
+ const handler: Operation.WithHandler<typeof CreateMarkdown> = CreateMarkdown.pipe(
14
+ Operation.withHandler(({ name, content }) =>
15
+ Effect.succeed({
16
+ object: Markdown.make({ name, content }),
17
+ }),
18
+ ),
19
+ );
20
+
21
+ export default handler;