@dxos/plugin-markdown 0.8.4-main.422d1c7879 → 0.8.4-main.43cb759274

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 (316) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs +34 -0
  4. package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs.map +7 -0
  5. package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs +126 -0
  6. package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs.map +7 -0
  7. package/dist/lib/neutral/MarkdownCard-36P4AHYL.mjs +107 -0
  8. package/dist/lib/neutral/MarkdownCard-36P4AHYL.mjs.map +7 -0
  9. package/dist/lib/neutral/MarkdownPlugin.mjs +58 -0
  10. package/dist/lib/neutral/MarkdownPlugin.mjs.map +7 -0
  11. package/dist/lib/neutral/MarkdownPlugin.node.mjs +25 -0
  12. package/dist/lib/neutral/MarkdownPlugin.node.mjs.map +7 -0
  13. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs +23 -0
  14. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs.map +7 -0
  15. package/dist/lib/{browser/MarkdownSettings-62YSRY7L.mjs → neutral/MarkdownSettings-YCTZJL5V.mjs} +4 -4
  16. package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
  17. package/dist/lib/neutral/anchor-sort-37GOHBLW.mjs +32 -0
  18. package/dist/lib/neutral/anchor-sort-37GOHBLW.mjs.map +7 -0
  19. package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs +56 -0
  20. package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs.map +7 -0
  21. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs +15 -0
  22. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs.map +7 -0
  23. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  24. package/dist/lib/neutral/capabilities/index.mjs +25 -0
  25. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  26. package/dist/lib/neutral/capabilities/node.mjs +11 -0
  27. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  28. package/dist/lib/neutral/chunk-36QFEVOZ.mjs +30 -0
  29. package/dist/lib/neutral/chunk-36QFEVOZ.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-A45UVZEH.mjs +285 -0
  31. package/dist/lib/neutral/chunk-A45UVZEH.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-E5NVTEKQ.mjs +8 -0
  33. package/dist/lib/neutral/chunk-E5NVTEKQ.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-KDN4GKG2.mjs +98 -0
  35. package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
  36. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-LXNSKCPD.mjs} +10 -17
  37. package/dist/lib/neutral/chunk-LXNSKCPD.mjs.map +7 -0
  38. package/dist/lib/neutral/comment-config-ZEA66BUR.mjs +31 -0
  39. package/dist/lib/neutral/comment-config-ZEA66BUR.mjs.map +7 -0
  40. package/dist/lib/{browser → neutral/components}/index.mjs +19 -280
  41. package/dist/lib/neutral/components/index.mjs.map +7 -0
  42. package/dist/lib/neutral/containers/index.mjs +13 -0
  43. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  44. package/dist/lib/{browser/create-YL5ELZWP.mjs → neutral/create-HONLDBVT.mjs} +7 -9
  45. package/dist/lib/neutral/create-HONLDBVT.mjs.map +7 -0
  46. package/dist/lib/{browser/create-markdown-LU5IDKMH.mjs → neutral/create-markdown-UCPD2Z3V.mjs} +5 -7
  47. package/dist/lib/neutral/create-markdown-UCPD2Z3V.mjs.map +7 -0
  48. package/dist/lib/neutral/create-object-VU3KX663.mjs +28 -0
  49. package/dist/lib/neutral/create-object-VU3KX663.mjs.map +7 -0
  50. package/dist/lib/neutral/hooks/index.mjs +316 -0
  51. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  52. package/dist/lib/neutral/index.mjs +42 -0
  53. package/dist/lib/neutral/meta.json +1 -0
  54. package/dist/lib/neutral/meta.mjs +8 -0
  55. package/dist/lib/{browser/open-AFSOZZ6G.mjs → neutral/open-VVDMNJ7J.mjs} +5 -6
  56. package/dist/lib/neutral/open-VVDMNJ7J.mjs.map +7 -0
  57. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs +13 -0
  58. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs.map +7 -0
  59. package/dist/lib/neutral/operations/index.mjs +8 -0
  60. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  61. package/dist/lib/neutral/plugin.mjs +16 -0
  62. package/dist/lib/neutral/plugin.mjs.map +7 -0
  63. package/dist/lib/neutral/react-surface-EMYFM37T.mjs +119 -0
  64. package/dist/lib/neutral/react-surface-EMYFM37T.mjs.map +7 -0
  65. package/dist/lib/{browser/scroll-to-anchor-IPXV32A6.mjs → neutral/scroll-to-anchor-Y3P676QG.mjs} +7 -9
  66. package/dist/lib/neutral/scroll-to-anchor-Y3P676QG.mjs.map +7 -0
  67. package/dist/lib/neutral/set-view-mode-JZB7UXIF.mjs +24 -0
  68. package/dist/lib/neutral/set-view-mode-JZB7UXIF.mjs.map +7 -0
  69. package/dist/lib/neutral/settings-TDGDLCUR.mjs +34 -0
  70. package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +7 -0
  71. package/dist/lib/neutral/state-5COCF5PN.mjs +44 -0
  72. package/dist/lib/neutral/state-5COCF5PN.mjs.map +7 -0
  73. package/dist/lib/neutral/testing.mjs +30 -0
  74. package/dist/lib/neutral/testing.mjs.map +7 -0
  75. package/dist/lib/neutral/translations.mjs +44 -0
  76. package/dist/lib/neutral/translations.mjs.map +7 -0
  77. package/dist/lib/neutral/types/index.mjs +16 -0
  78. package/dist/lib/neutral/types/index.mjs.map +7 -0
  79. package/dist/lib/{browser/update-HZNVYBMO.mjs → neutral/update-markdown-F25F4EPF.mjs} +8 -9
  80. package/dist/lib/neutral/update-markdown-F25F4EPF.mjs.map +7 -0
  81. package/dist/types/src/MarkdownPlugin.d.ts +1 -0
  82. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  83. package/dist/types/src/{cli/plugin.d.ts → MarkdownPlugin.node.d.ts} +2 -1
  84. package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -0
  85. package/dist/types/src/MarkdownPlugin.test.d.ts +2 -0
  86. package/dist/types/src/MarkdownPlugin.test.d.ts.map +1 -0
  87. package/dist/types/src/MarkdownPlugin.workerd.d.ts +4 -0
  88. package/dist/types/src/MarkdownPlugin.workerd.d.ts.map +1 -0
  89. package/dist/types/src/blueprints/markdown-blueprint.d.ts +2 -2
  90. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/blueprint-definition.d.ts +2 -2
  94. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/comment-config.d.ts +12 -0
  96. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  98. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/index.d.ts +16 -3
  100. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/node.d.ts +7 -1
  102. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  104. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/state.d.ts +2 -2
  108. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  109. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +13 -5
  110. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  111. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +2 -1
  113. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  114. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +1 -1
  115. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  116. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  117. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +46 -46
  118. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -1
  119. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts +15 -0
  120. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
  121. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts +9 -0
  122. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts.map +1 -0
  123. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
  124. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
  125. package/dist/types/src/containers/{MarkdownContainer/MarkdownContainer.d.ts → MarkdownArticle/MarkdownArticle.d.ts} +14 -10
  126. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts.map +1 -0
  127. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts +97 -0
  128. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts.map +1 -0
  129. package/dist/types/src/containers/MarkdownArticle/index.d.ts +3 -0
  130. package/dist/types/src/containers/MarkdownArticle/index.d.ts.map +1 -0
  131. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  132. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +1 -1
  133. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
  134. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -1
  135. package/dist/types/src/containers/index.d.ts +3 -2
  136. package/dist/types/src/containers/index.d.ts.map +1 -1
  137. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
  138. package/dist/types/src/hooks/useExtensions.d.ts +2 -1
  139. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  140. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  141. package/dist/types/src/index.d.ts +2 -4
  142. package/dist/types/src/index.d.ts.map +1 -1
  143. package/dist/types/src/meta.d.ts +1 -1
  144. package/dist/types/src/meta.d.ts.map +1 -1
  145. package/dist/types/src/operations/create-markdown.d.ts +3 -3
  146. package/dist/types/src/operations/create-markdown.d.ts.map +1 -1
  147. package/dist/types/src/operations/create.d.ts +3 -3
  148. package/dist/types/src/operations/create.d.ts.map +1 -1
  149. package/dist/types/src/operations/index.d.ts +1 -2
  150. package/dist/types/src/operations/index.d.ts.map +1 -1
  151. package/dist/types/src/operations/open.d.ts +3 -3
  152. package/dist/types/src/operations/open.d.ts.map +1 -1
  153. package/dist/types/src/operations/scroll-to-anchor.d.ts +3 -3
  154. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -1
  155. package/dist/types/src/operations/set-view-mode.d.ts +3 -3
  156. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -1
  157. package/dist/types/src/operations/update-markdown.d.ts +5 -0
  158. package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
  159. package/dist/types/src/plugin.d.ts +4 -0
  160. package/dist/types/src/plugin.d.ts.map +1 -0
  161. package/dist/types/src/testing.d.ts +1 -0
  162. package/dist/types/src/testing.d.ts.map +1 -1
  163. package/dist/types/src/translations.d.ts +70 -51
  164. package/dist/types/src/translations.d.ts.map +1 -1
  165. package/dist/types/src/types/Markdown.d.ts +12 -10
  166. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  167. package/dist/types/src/types/MarkdownCapabilities.d.ts +32 -0
  168. package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -0
  169. package/dist/types/src/types/MarkdownEvents.d.ts +3 -0
  170. package/dist/types/src/types/MarkdownEvents.d.ts.map +1 -0
  171. package/dist/types/src/{operations/definitions.d.ts → types/MarkdownOperation.d.ts} +17 -17
  172. package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
  173. package/dist/types/src/types/Settings.d.ts +14 -1
  174. package/dist/types/src/types/Settings.d.ts.map +1 -1
  175. package/dist/types/src/types/index.d.ts +3 -2
  176. package/dist/types/src/types/index.d.ts.map +1 -1
  177. package/dist/types/src/types/types.d.ts +1 -0
  178. package/dist/types/src/types/types.d.ts.map +1 -1
  179. package/dist/types/src/util.d.ts +1 -1
  180. package/dist/types/src/util.d.ts.map +1 -1
  181. package/dist/types/tsconfig.tsbuildinfo +1 -1
  182. package/package.json +125 -91
  183. package/src/MarkdownPlugin.node.ts +20 -0
  184. package/src/MarkdownPlugin.test.ts +26 -0
  185. package/src/MarkdownPlugin.tsx +8 -52
  186. package/src/MarkdownPlugin.workerd.ts +19 -0
  187. package/src/blueprints/markdown-blueprint.ts +8 -9
  188. package/src/capabilities/anchor-sort.ts +2 -2
  189. package/src/capabilities/app-graph-serializer.ts +9 -10
  190. package/src/capabilities/blueprint-definition.ts +2 -0
  191. package/src/capabilities/comment-config.ts +33 -0
  192. package/src/capabilities/create-object.ts +31 -0
  193. package/src/capabilities/index.ts +4 -1
  194. package/src/capabilities/node.ts +3 -1
  195. package/src/capabilities/operation-handler.ts +1 -1
  196. package/src/capabilities/react-surface.tsx +17 -10
  197. package/src/capabilities/state.ts +4 -4
  198. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +5 -4
  199. package/src/components/MarkdownEditor/MarkdownEditor.tsx +35 -28
  200. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +4 -3
  201. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +2 -2
  202. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +2 -1
  203. package/src/components/MarkdownSettings/MarkdownSettings.tsx +3 -3
  204. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.tsx +86 -0
  205. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.tsx +44 -0
  206. package/src/containers/EditableMarkdownCard/index.ts +6 -0
  207. package/src/containers/{MarkdownContainer/MarkdownContainer.stories.tsx → MarkdownArticle/MarkdownArticle.stories.tsx} +14 -8
  208. package/src/containers/{MarkdownContainer/MarkdownContainer.tsx → MarkdownArticle/MarkdownArticle.tsx} +7 -6
  209. package/src/containers/MarkdownArticle/index.ts +6 -0
  210. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +8 -7
  211. package/src/containers/MarkdownCard/MarkdownCard.tsx +27 -20
  212. package/src/containers/MarkdownCard/snippet.ts +3 -1
  213. package/src/containers/index.ts +3 -2
  214. package/src/hooks/useExtensions.tsx +12 -8
  215. package/src/hooks/useLinkQuery.ts +19 -34
  216. package/src/index.ts +2 -7
  217. package/src/meta.ts +17 -7
  218. package/src/operations/create-markdown.ts +3 -4
  219. package/src/operations/create.conversations.json +1 -1
  220. package/src/operations/create.test.ts +10 -12
  221. package/src/operations/create.ts +5 -6
  222. package/src/operations/index.ts +2 -4
  223. package/src/operations/open.ts +3 -3
  224. package/src/operations/scroll-to-anchor.ts +3 -4
  225. package/src/operations/set-view-mode.ts +3 -4
  226. package/src/operations/{update.ts → update-markdown.ts} +3 -3
  227. package/src/operations/update.conversations.json +1 -1
  228. package/src/operations/update.test.ts +10 -12
  229. package/src/plugin.ts +11 -0
  230. package/src/testing.ts +22 -9
  231. package/src/translations.ts +4 -3
  232. package/src/types/Markdown.ts +9 -10
  233. package/src/types/MarkdownCapabilities.ts +51 -0
  234. package/src/types/MarkdownEvents.ts +14 -0
  235. package/src/{operations/definitions.ts → types/MarkdownOperation.ts} +24 -11
  236. package/src/types/Settings.ts +23 -3
  237. package/src/types/index.ts +3 -2
  238. package/src/types/types.ts +4 -1
  239. package/src/util.tsx +2 -2
  240. package/dist/lib/browser/MarkdownSettings-62YSRY7L.mjs.map +0 -7
  241. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  242. package/dist/lib/browser/chunk-4KOZEH2H.mjs +0 -121
  243. package/dist/lib/browser/chunk-4KOZEH2H.mjs.map +0 -7
  244. package/dist/lib/browser/chunk-QFPZONKP.mjs +0 -158
  245. package/dist/lib/browser/chunk-QFPZONKP.mjs.map +0 -7
  246. package/dist/lib/browser/cli/index.mjs +0 -39
  247. package/dist/lib/browser/cli/index.mjs.map +0 -7
  248. package/dist/lib/browser/create-YL5ELZWP.mjs.map +0 -7
  249. package/dist/lib/browser/create-markdown-LU5IDKMH.mjs.map +0 -7
  250. package/dist/lib/browser/index.mjs.map +0 -7
  251. package/dist/lib/browser/meta.json +0 -1
  252. package/dist/lib/browser/open-AFSOZZ6G.mjs.map +0 -7
  253. package/dist/lib/browser/operations/index.mjs +0 -14
  254. package/dist/lib/browser/operations/index.mjs.map +0 -7
  255. package/dist/lib/browser/scroll-to-anchor-IPXV32A6.mjs.map +0 -7
  256. package/dist/lib/browser/set-view-mode-2QWB24RR.mjs +0 -26
  257. package/dist/lib/browser/set-view-mode-2QWB24RR.mjs.map +0 -7
  258. package/dist/lib/browser/types/index.mjs +0 -16
  259. package/dist/lib/browser/update-HZNVYBMO.mjs.map +0 -7
  260. package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs +0 -33
  261. package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs.map +0 -7
  262. package/dist/lib/node-esm/blueprints/index.mjs +0 -52
  263. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  264. package/dist/lib/node-esm/chunk-3OPDJJJH.mjs +0 -122
  265. package/dist/lib/node-esm/chunk-3OPDJJJH.mjs.map +0 -7
  266. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  267. package/dist/lib/node-esm/chunk-JUGS6RKO.mjs +0 -159
  268. package/dist/lib/node-esm/chunk-JUGS6RKO.mjs.map +0 -7
  269. package/dist/lib/node-esm/cli/index.mjs +0 -40
  270. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  271. package/dist/lib/node-esm/create-SMQAIM3V.mjs +0 -31
  272. package/dist/lib/node-esm/create-SMQAIM3V.mjs.map +0 -7
  273. package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs +0 -23
  274. package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs.map +0 -7
  275. package/dist/lib/node-esm/index.mjs +0 -633
  276. package/dist/lib/node-esm/index.mjs.map +0 -7
  277. package/dist/lib/node-esm/meta.json +0 -1
  278. package/dist/lib/node-esm/open-SRWLLOKE.mjs +0 -22
  279. package/dist/lib/node-esm/open-SRWLLOKE.mjs.map +0 -7
  280. package/dist/lib/node-esm/operations/index.mjs +0 -15
  281. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  282. package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs +0 -50
  283. package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs.map +0 -7
  284. package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs +0 -27
  285. package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs.map +0 -7
  286. package/dist/lib/node-esm/types/index.mjs +0 -17
  287. package/dist/lib/node-esm/update-4CELTLXK.mjs +0 -46
  288. package/dist/lib/node-esm/update-4CELTLXK.mjs.map +0 -7
  289. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -5
  290. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  291. package/dist/types/src/cli/index.d.ts +0 -2
  292. package/dist/types/src/cli/index.d.ts.map +0 -1
  293. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  294. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +0 -1
  295. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +0 -77
  296. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +0 -1
  297. package/dist/types/src/containers/MarkdownContainer/index.d.ts +0 -3
  298. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +0 -1
  299. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  300. package/dist/types/src/operations/update.d.ts +0 -5
  301. package/dist/types/src/operations/update.d.ts.map +0 -1
  302. package/dist/types/src/types/capabilities.d.ts +0 -33
  303. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  304. package/dist/types/src/types/events.d.ts +0 -5
  305. package/dist/types/src/types/events.d.ts.map +0 -1
  306. package/src/capabilities/artifact-definition.ts +0 -110
  307. package/src/cli/index.ts +0 -5
  308. package/src/cli/plugin.ts +0 -39
  309. package/src/containers/MarkdownContainer/index.ts +0 -6
  310. package/src/types/capabilities.ts +0 -50
  311. package/src/types/events.ts +0 -14
  312. /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  313. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  314. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  315. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  316. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
@@ -26,34 +26,41 @@ export const MarkdownCard = ({ subject }: MarkdownCardProps) => {
26
26
  const info = getInfo(subject);
27
27
 
28
28
  return (
29
- <Card.Content>
29
+ <Card.Body>
30
30
  {snippet && (
31
- <Card.Section className='relative px-1'>
32
- <MarkdownEditorProvider id={subject.id} viewMode='readonly' extensions={extensions}>
33
- {(editorRootProps) => (
34
- <Editor.Root {...editorRootProps}>
35
- <MarkdownEditor.Content initialValue={snippet} slots={{ content: { className: 'm-0' } }} />
36
- </Editor.Root>
37
- )}
38
- </MarkdownEditorProvider>
39
- <div
40
- role='none'
41
- className={mx(
42
- 'z-10 absolute bottom-0 inset-x-0 h-12 w-full',
43
- 'bg-gradient-to-b from-transparent to-(--surface-bg) pointer-events-none',
44
- )}
45
- />
31
+ <Card.Section className='relative'>
32
+ <Card.Row fullWidth>
33
+ <MarkdownEditorProvider id={subject.id} viewMode='readonly' extensions={extensions}>
34
+ {(editorRootProps) => (
35
+ <Editor.Root {...editorRootProps}>
36
+ <MarkdownEditor.Content initialValue={snippet} slots={{ content: { className: 'px-2!' } }} />
37
+ </Editor.Root>
38
+ )}
39
+ </MarkdownEditorProvider>
40
+ <Fade />
41
+ </Card.Row>
46
42
  </Card.Section>
47
43
  )}
48
44
  <Card.Section>
49
- <Card.Text classNames='px-1.5 text-xs text-description'>
50
- {info.words} {t('words.label', { count: info.words })}
51
- </Card.Text>
45
+ <Card.Row fullWidth>
46
+ <Card.Text classNames='px-2 text-xs text-description'>
47
+ {info.words} {t('words.label', { count: info.words })}
48
+ </Card.Text>
49
+ </Card.Row>
52
50
  </Card.Section>
53
- </Card.Content>
51
+ </Card.Body>
54
52
  );
55
53
  };
56
54
 
55
+ const Fade = () => (
56
+ <div
57
+ className={mx(
58
+ 'z-10 absolute bottom-0 inset-x-0 h-12 w-full',
59
+ 'bg-gradient-to-b from-transparent to-(--surface-bg) pointer-events-none',
60
+ )}
61
+ />
62
+ );
63
+
57
64
  const getSnippet = (subject: Markdown.Document | Text.Text, fallback?: string, maxLines = 16) => {
58
65
  if (Obj.instanceOf(Markdown.Document, subject)) {
59
66
  return Obj.getDescription(subject) || getContentSnippet(subject.content?.target?.content ?? fallback, maxLines);
@@ -26,7 +26,9 @@ export const snippet = ({ height, scale = 1 }: SnippetOptions) => {
26
26
  EditorState.readOnly.of(true),
27
27
  EditorView.editable.of(false),
28
28
  EditorState.transactionFilter.of((tr) => {
29
- if (tr.selection) return []; // Drop any selection changes.
29
+ if (tr.selection) {
30
+ return [];
31
+ } // Drop any selection changes.
30
32
  return tr;
31
33
  }),
32
34
  EditorView.theme({
@@ -4,7 +4,8 @@
4
4
 
5
5
  import { type ComponentType, lazy } from 'react';
6
6
 
7
- export type { MarkdownContainerProps } from './MarkdownContainer';
7
+ export type { MarkdownArticleProps } from './MarkdownArticle';
8
8
 
9
9
  export const MarkdownCard: ComponentType<any> = lazy(() => import('./MarkdownCard'));
10
- export const MarkdownContainer: ComponentType<any> = lazy(() => import('./MarkdownContainer'));
10
+ export const EditableMarkdownCard: ComponentType<any> = lazy(() => import('./EditableMarkdownCard'));
11
+ export const MarkdownArticle: ComponentType<any> = lazy(() => import('./MarkdownArticle'));
@@ -20,11 +20,9 @@ import {
20
20
  Cursor,
21
21
  type EditorStateStore,
22
22
  EditorView,
23
- type EditorViewMode,
24
23
  type Extension,
25
24
  InputModeExtensions,
26
25
  type PreviewOptions,
27
- type RenderCallback,
28
26
  createDataExtensions,
29
27
  decorateMarkdown,
30
28
  documentId,
@@ -35,8 +33,9 @@ import {
35
33
  preview,
36
34
  replacer,
37
35
  selectionState,
38
- typewriter,
36
+ snippets,
39
37
  } from '@dxos/ui-editor';
38
+ import { type EditorViewMode, type RenderCallback } from '@dxos/ui-editor/types';
40
39
  import { isTruthy, safeUrl } from '@dxos/util';
41
40
 
42
41
  import { Markdown } from '#types';
@@ -113,7 +112,6 @@ export const useExtensions = ({
113
112
  settings?.editorInputMode,
114
113
  settings?.folding,
115
114
  settings?.numberedHeadings,
116
- settings?.typewriter,
117
115
  platform,
118
116
  onSelectObject,
119
117
  ],
@@ -188,9 +186,9 @@ const createBaseExtensions = ({
188
186
  }
189
187
 
190
188
  if (settings?.debug) {
191
- const items = settings.typewriter?.split(/[,\n]/) ?? '';
189
+ const items = settings.snippets?.split(/[,\n]/) ?? '';
192
190
  if (items) {
193
- extensions.push(typewriter({ items }));
191
+ extensions.push(snippets({ items }));
194
192
  }
195
193
  }
196
194
 
@@ -202,12 +200,18 @@ const selectionChange = (selectionManager: SelectionManager) => {
202
200
  const id = update.state.facet(documentId);
203
201
  const cursorConverter = update.state.facet(Cursor.converter);
204
202
  const selection = update.state.selection;
203
+ // NOTE: Filter on numeric offsets BEFORE converting to cursor strings.
204
+ // Cursors are opaque (Automerge-encoded), so a lexicographic `to > from`
205
+ // comparison is nondeterministic — it would let some cursor-placements
206
+ // (where from === to numerically) through and reject genuine selections
207
+ // depending on encoding, which made the comment button's enabled state
208
+ // appear random across different lines.
205
209
  const ranges = selection.ranges
210
+ .filter((range) => range.to > range.from)
206
211
  .map((range) => ({
207
212
  from: cursorConverter.toCursor(range.from),
208
213
  to: cursorConverter.toCursor(range.to),
209
- }))
210
- .filter(({ from, to }) => to > from);
214
+ }));
211
215
 
212
216
  selectionManager.updateMultiRange(id, ranges);
213
217
  }, 100);
@@ -5,11 +5,9 @@
5
5
  import * as Option from 'effect/Option';
6
6
  import { useCallback, useMemo } from 'react';
7
7
 
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
- import { toLocalizedString, useTranslation } from '@dxos/react-ui';
8
+ import { Annotation, type Database, Filter, Obj, Query, Type } from '@dxos/echo';
9
+ import { EntityKind, HiddenAnnotation, getTypeAnnotation } from '@dxos/echo/internal';
10
+ import { type Label, toLocalizedString, useTranslation } from '@dxos/react-ui';
13
11
  import { type EditorMenuGroup, type EditorMenuItem } from '@dxos/react-ui-editor';
14
12
  import { insertAtCursor, insertAtLineStart } from '@dxos/ui-editor';
15
13
 
@@ -18,19 +16,12 @@ import { Markdown } from '../types';
18
16
  export const useLinkQuery = (db: Database.Database | undefined) => {
19
17
  const { t } = useTranslation();
20
18
 
21
- const manager = usePluginManager();
22
- const resolve = useCallback(
23
- (typename: string) =>
24
- manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},
25
- [manager],
26
- );
27
-
28
19
  const filter = useMemo(
29
20
  () =>
30
21
  Filter.or(
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)))
22
+ ...(db ? db.graph.registry.list().filter(Type.isType) : [])
23
+ .filter((schema) => getTypeAnnotation(Type.getSchema(schema))?.kind !== EntityKind.Relation)
24
+ .filter((schema) => !HiddenAnnotation.get(Type.getSchema(schema)).pipe(Option.getOrElse(() => false)))
34
25
  .map((schema) => Filter.typename(Type.getTypename(schema))),
35
26
  ),
36
27
  [db],
@@ -42,32 +33,26 @@ export const useLinkQuery = (db: Database.Database | undefined) => {
42
33
  const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : (query?.toLowerCase() ?? '');
43
34
  const results = await db?.query(Query.select(filter)).run();
44
35
 
45
- // TODO(wittjosiah): Use `Obj.Unknown` type.
46
- const getLabel = (object: any) => {
47
- const label = Obj.getLabel(object);
48
- if (label) {
49
- return label;
50
- }
51
-
52
- // TODO(wittjosiah): Remove metadata labels.
36
+ const getLabel = (object: Obj.Unknown): Label => {
53
37
  const type = Obj.getTypename(object)!;
54
- const metadata = resolve(type);
55
- return metadata.label?.(object) || ['object-name.placeholder', { ns: type, defaultValue: 'New object' }];
38
+ return Obj.getLabel(object) ?? ['object-name.placeholder', { ns: type, defaultValue: 'New object' }];
56
39
  };
57
40
 
58
41
  const items =
59
42
  results
60
43
  ?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name))
61
- // TODO(wittjosiah): Remove `any` type.
62
- .map((object: any): EditorMenuItem => {
63
- const metadata = resolve(Obj.getTypename(object)!);
44
+ .map((object: Obj.Unknown): EditorMenuItem => {
45
+ const type = Obj.getType(object);
46
+ const icon = type
47
+ ? Option.getOrUndefined(Annotation.IconAnnotation.get(Type.getSchema(type)))?.icon
48
+ : undefined;
64
49
  const label = toLocalizedString(getLabel(object), t);
65
50
  return {
66
51
  id: object.id,
67
52
  label,
68
- icon: metadata.icon,
53
+ icon,
69
54
  onSelect: ({ view, head }) => {
70
- const link = `[${label}](${Obj.getDXN(object)})`;
55
+ const link = `[${label}](${Obj.getURI(object)})`;
71
56
  // "@@" inserts a block embed on its own line instead of an inline link.
72
57
  if (query?.startsWith('@')) {
73
58
  insertAtLineStart(view, head, `!${link}\n`);
@@ -81,13 +66,13 @@ export const useLinkQuery = (db: Database.Database | undefined) => {
81
66
  // Add "Create new document" option at the end.
82
67
  const createItem: EditorMenuItem = {
83
68
  id: 'create-document',
84
- label: ['add-object.label', { ns: Markdown.Document.typename }],
69
+ label: ['add-object.label', { ns: Type.getTypename(Markdown.Document) }],
85
70
  icon: 'ph--plus--regular',
86
71
  onSelect: ({ view, head }) => {
87
72
  const doc = Markdown.make({ name: name || undefined });
88
73
  db?.add(doc);
89
- const label = name || t('object-name.placeholder', { ns: Markdown.Document.typename });
90
- const link = `[${label}](${Obj.getDXN(doc)})`;
74
+ const label = name || t('object-name.placeholder', { ns: Type.getTypename(Markdown.Document) });
75
+ const link = `[${label}](${Obj.getURI(doc)})`;
91
76
  if (query?.startsWith('@')) {
92
77
  insertAtLineStart(view, head, `!${link}\n`);
93
78
  } else {
@@ -101,7 +86,7 @@ export const useLinkQuery = (db: Database.Database | undefined) => {
101
86
  { id: 'create', items: [createItem] },
102
87
  ];
103
88
  },
104
- [db, filter, resolve, t],
89
+ [db, filter, t],
105
90
  );
106
91
 
107
92
  return handleLinkQuery;
package/src/index.ts CHANGED
@@ -2,13 +2,8 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export { MarkdownCapabilities, MarkdownEvents } from './types';
6
-
5
+ export * from './blueprints';
7
6
  export * from './meta';
7
+ export * from './operations';
8
8
  export * from './types';
9
9
  export * from './util';
10
-
11
- export * from './MarkdownPlugin';
12
-
13
- export { MarkdownEditor, MarkdownEditorProvider } from './components';
14
- export type { MarkdownEditorEditorRootProps } from './components';
package/src/meta.ts CHANGED
@@ -2,18 +2,28 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type Plugin } from '@dxos/app-framework';
5
+ import { Plugin } from '@dxos/app-framework';
6
+ import { DXN } from '@dxos/keys';
6
7
  import { trim } from '@dxos/util';
7
8
 
8
- export const meta: Plugin.Meta = {
9
- id: 'org.dxos.plugin.markdown',
9
+ export const meta = Plugin.makeMeta({
10
+ key: DXN.make('org.dxos.plugin.markdown'),
10
11
  name: 'Markdown',
12
+ author: 'DXOS',
11
13
  description: trim`
12
- Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
13
- Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
14
+ A full-featured markdown editor for authoring documents in your space. Edits flow through a collaborative CodeMirror surface backed by ECHO Text, so every keystroke replicates to other peers in real time without merge conflicts or lost work.
15
+
16
+ Documents can be opened in source, preview, or read-only mode and rendered as a full-surface article or as embeddable cards. An optional formatting toolbar exposes headings, lists, links, and other common markdown actions, and dispositional toolbar actions contributed by other plugins are surfaced inline alongside it.
17
+
18
+ The editor integrates with the rest of the workspace through @ references that link to any ECHO object, image and file uploads stored in the active space, and anchored comment threads on text ranges. Comments can optionally be routed to an AI agent on every message or only on @mention.
19
+
20
+ A built-in blueprint exposes create, open, and update operations as tools for AI agents. Updates are applied as compact find-and-replace diffs against the document, making it safe for agents to edit large documents incrementally while you continue collaborating.
14
21
  `,
15
22
  icon: 'ph--text-aa--regular',
16
23
  iconHue: 'indigo',
17
24
  source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',
18
- screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],
19
- };
25
+ screenshots: [
26
+ 'https://customer-5rxcjpyab08avpmn.cloudflarestream.com/cdf2656365bb1fd327c1fc2105d75e5a/iframe?poster=https%3A%2F%2Fcustomer-5rxcjpyab08avpmn.cloudflarestream.com%2Fcdf2656365bb1fd327c1fc2105d75e5a%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600',
27
+ 'https://dxos.network/plugin-details-markdown-dark.png',
28
+ ],
29
+ });
@@ -4,12 +4,11 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { Operation } from '@dxos/operation';
7
+ import { Operation } from '@dxos/compute';
8
8
 
9
- import { Markdown } from '../types';
10
- import { CreateMarkdown } from './definitions';
9
+ import { Markdown, MarkdownOperation } from '../types';
11
10
 
12
- const handler: Operation.WithHandler<typeof CreateMarkdown> = CreateMarkdown.pipe(
11
+ const handler: Operation.WithHandler<typeof MarkdownOperation.CreateMarkdown> = MarkdownOperation.CreateMarkdown.pipe(
13
12
  Operation.withHandler(({ name, content }) =>
14
13
  Effect.succeed({
15
14
  object: Markdown.make({ name, content }),