@dxos/plugin-markdown 0.8.4-main.fcfe5033a5 → 0.8.4-staging.60fe92afc8

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 (336) 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-LWT5RFFJ.mjs +126 -0
  6. package/dist/lib/neutral/MarkdownArticle-LWT5RFFJ.mjs.map +7 -0
  7. package/dist/lib/neutral/MarkdownCard-TBLIRDBO.mjs +108 -0
  8. package/dist/lib/neutral/MarkdownCard-TBLIRDBO.mjs.map +7 -0
  9. package/dist/lib/neutral/MarkdownPlugin.mjs +62 -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-UXN4RHFX.mjs +32 -0
  18. package/dist/lib/neutral/anchor-sort-UXN4RHFX.mjs.map +7 -0
  19. package/dist/lib/neutral/app-graph-builder-BWBA23FF.mjs +67 -0
  20. package/dist/lib/neutral/app-graph-builder-BWBA23FF.mjs.map +7 -0
  21. package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs +56 -0
  22. package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs.map +7 -0
  23. package/dist/lib/neutral/blueprint-definition-DSPXK77L.mjs +15 -0
  24. package/dist/lib/neutral/blueprint-definition-DSPXK77L.mjs.map +7 -0
  25. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  26. package/dist/lib/neutral/capabilities/index.mjs +29 -0
  27. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  28. package/dist/lib/neutral/capabilities/node.mjs +11 -0
  29. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-36QFEVOZ.mjs +30 -0
  31. package/dist/lib/neutral/chunk-36QFEVOZ.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-67DKWOKF.mjs +10 -0
  33. package/dist/lib/neutral/chunk-67DKWOKF.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-CIJD7P6X.mjs +8 -0
  35. package/dist/lib/neutral/chunk-CIJD7P6X.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-KDN4GKG2.mjs +98 -0
  37. package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
  38. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-LXNSKCPD.mjs} +10 -17
  39. package/dist/lib/neutral/chunk-LXNSKCPD.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-Y2LQRUU7.mjs +285 -0
  41. package/dist/lib/neutral/chunk-Y2LQRUU7.mjs.map +7 -0
  42. package/dist/lib/neutral/comment-config-EGY7RPPW.mjs +32 -0
  43. package/dist/lib/neutral/comment-config-EGY7RPPW.mjs.map +7 -0
  44. package/dist/lib/{browser → neutral/components}/index.mjs +33 -287
  45. package/dist/lib/neutral/components/index.mjs.map +7 -0
  46. package/dist/lib/neutral/containers/index.mjs +13 -0
  47. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  48. package/dist/lib/neutral/create-JK35XC4R.mjs +29 -0
  49. package/dist/lib/neutral/create-JK35XC4R.mjs.map +7 -0
  50. package/dist/lib/{browser/create-markdown-LU5IDKMH.mjs → neutral/create-markdown-7MLE625M.mjs} +5 -7
  51. package/dist/lib/neutral/create-markdown-7MLE625M.mjs.map +7 -0
  52. package/dist/lib/neutral/create-object-MU2LGXG6.mjs +31 -0
  53. package/dist/lib/neutral/create-object-MU2LGXG6.mjs.map +7 -0
  54. package/dist/lib/neutral/hooks/index.mjs +317 -0
  55. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  56. package/dist/lib/neutral/index.mjs +48 -0
  57. package/dist/lib/neutral/meta.json +1 -0
  58. package/dist/lib/neutral/meta.mjs +8 -0
  59. package/dist/lib/neutral/navigation-resolver-3KBOMN4U.mjs +14 -0
  60. package/dist/lib/neutral/navigation-resolver-3KBOMN4U.mjs.map +7 -0
  61. package/dist/lib/{browser/open-AFSOZZ6G.mjs → neutral/open-5YC77C4O.mjs} +5 -6
  62. package/dist/lib/neutral/open-5YC77C4O.mjs.map +7 -0
  63. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs +13 -0
  64. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs.map +7 -0
  65. package/dist/lib/neutral/operations/index.mjs +8 -0
  66. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  67. package/dist/lib/neutral/plugin.mjs +16 -0
  68. package/dist/lib/neutral/plugin.mjs.map +7 -0
  69. package/dist/lib/neutral/react-surface-XYZJBKHZ.mjs +119 -0
  70. package/dist/lib/neutral/react-surface-XYZJBKHZ.mjs.map +7 -0
  71. package/dist/lib/neutral/scroll-to-anchor-GAFB7W55.mjs +38 -0
  72. package/dist/lib/neutral/scroll-to-anchor-GAFB7W55.mjs.map +7 -0
  73. package/dist/lib/neutral/set-view-mode-N7UHYMPG.mjs +24 -0
  74. package/dist/lib/neutral/set-view-mode-N7UHYMPG.mjs.map +7 -0
  75. package/dist/lib/neutral/settings-TDGDLCUR.mjs +34 -0
  76. package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +7 -0
  77. package/dist/lib/neutral/state-5COCF5PN.mjs +44 -0
  78. package/dist/lib/neutral/state-5COCF5PN.mjs.map +7 -0
  79. package/dist/lib/neutral/testing.mjs +30 -0
  80. package/dist/lib/neutral/testing.mjs.map +7 -0
  81. package/dist/lib/neutral/translations.mjs +44 -0
  82. package/dist/lib/neutral/translations.mjs.map +7 -0
  83. package/dist/lib/neutral/types/index.mjs +16 -0
  84. package/dist/lib/neutral/types/index.mjs.map +7 -0
  85. package/dist/lib/{browser/update-HZNVYBMO.mjs → neutral/update-markdown-NNINDDV5.mjs} +9 -10
  86. package/dist/lib/neutral/update-markdown-NNINDDV5.mjs.map +7 -0
  87. package/dist/types/src/MarkdownPlugin.d.ts +1 -0
  88. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  89. package/dist/types/src/{cli/plugin.d.ts → MarkdownPlugin.node.d.ts} +2 -1
  90. package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -0
  91. package/dist/types/src/MarkdownPlugin.test.d.ts +2 -0
  92. package/dist/types/src/MarkdownPlugin.test.d.ts.map +1 -0
  93. package/dist/types/src/MarkdownPlugin.workerd.d.ts +4 -0
  94. package/dist/types/src/MarkdownPlugin.workerd.d.ts.map +1 -0
  95. package/dist/types/src/blueprints/markdown-blueprint.d.ts +2 -2
  96. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  99. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  100. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/blueprint-definition.d.ts +1 -1
  102. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/comment-config.d.ts +6 -0
  104. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  106. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/index.d.ts +15 -5
  108. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/navigation-resolver.d.ts +6 -0
  110. package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/node.d.ts +7 -1
  112. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  114. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/state.d.ts +2 -2
  118. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  119. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +1 -1
  120. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
  121. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +14 -6
  122. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  123. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  124. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +2 -1
  125. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  126. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +2 -2
  127. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  128. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  129. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +46 -46
  130. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -1
  131. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts +15 -0
  132. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
  133. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts +9 -0
  134. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts.map +1 -0
  135. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
  136. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
  137. package/dist/types/src/containers/{MarkdownContainer/MarkdownContainer.d.ts → MarkdownArticle/MarkdownArticle.d.ts} +14 -10
  138. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts.map +1 -0
  139. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts +97 -0
  140. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts.map +1 -0
  141. package/dist/types/src/containers/MarkdownArticle/index.d.ts +3 -0
  142. package/dist/types/src/containers/MarkdownArticle/index.d.ts.map +1 -0
  143. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  144. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +1 -1
  145. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
  146. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -1
  147. package/dist/types/src/containers/index.d.ts +3 -2
  148. package/dist/types/src/containers/index.d.ts.map +1 -1
  149. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
  150. package/dist/types/src/hooks/useExtensions.d.ts +2 -1
  151. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  152. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  153. package/dist/types/src/index.d.ts +3 -4
  154. package/dist/types/src/index.d.ts.map +1 -1
  155. package/dist/types/src/meta.d.ts +1 -1
  156. package/dist/types/src/meta.d.ts.map +1 -1
  157. package/dist/types/src/operations/create-markdown.d.ts +3 -3
  158. package/dist/types/src/operations/create-markdown.d.ts.map +1 -1
  159. package/dist/types/src/operations/create.d.ts +3 -3
  160. package/dist/types/src/operations/create.d.ts.map +1 -1
  161. package/dist/types/src/operations/index.d.ts +1 -2
  162. package/dist/types/src/operations/index.d.ts.map +1 -1
  163. package/dist/types/src/operations/open.d.ts +3 -3
  164. package/dist/types/src/operations/open.d.ts.map +1 -1
  165. package/dist/types/src/operations/scroll-to-anchor.d.ts +3 -3
  166. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -1
  167. package/dist/types/src/operations/set-view-mode.d.ts +3 -3
  168. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -1
  169. package/dist/types/src/operations/update-markdown.d.ts +5 -0
  170. package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
  171. package/dist/types/src/paths.d.ts +3 -0
  172. package/dist/types/src/paths.d.ts.map +1 -0
  173. package/dist/types/src/plugin.d.ts +4 -0
  174. package/dist/types/src/plugin.d.ts.map +1 -0
  175. package/dist/types/src/testing.d.ts +1 -0
  176. package/dist/types/src/testing.d.ts.map +1 -1
  177. package/dist/types/src/translations.d.ts +70 -51
  178. package/dist/types/src/translations.d.ts.map +1 -1
  179. package/dist/types/src/types/Markdown.d.ts +12 -10
  180. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  181. package/dist/types/src/types/MarkdownCapabilities.d.ts +32 -0
  182. package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -0
  183. package/dist/types/src/types/MarkdownEvents.d.ts +3 -0
  184. package/dist/types/src/types/MarkdownEvents.d.ts.map +1 -0
  185. package/dist/types/src/{operations/definitions.d.ts → types/MarkdownOperation.d.ts} +17 -17
  186. package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
  187. package/dist/types/src/types/Settings.d.ts +14 -1
  188. package/dist/types/src/types/Settings.d.ts.map +1 -1
  189. package/dist/types/src/types/index.d.ts +3 -2
  190. package/dist/types/src/types/index.d.ts.map +1 -1
  191. package/dist/types/src/types/types.d.ts +1 -0
  192. package/dist/types/src/types/types.d.ts.map +1 -1
  193. package/dist/types/src/util.d.ts +1 -1
  194. package/dist/types/src/util.d.ts.map +1 -1
  195. package/dist/types/tsconfig.tsbuildinfo +1 -1
  196. package/package.json +127 -107
  197. package/src/MarkdownPlugin.node.ts +20 -0
  198. package/src/MarkdownPlugin.test.ts +26 -0
  199. package/src/MarkdownPlugin.tsx +12 -52
  200. package/src/MarkdownPlugin.workerd.ts +19 -0
  201. package/src/blueprints/markdown-blueprint.ts +8 -9
  202. package/src/capabilities/anchor-sort.ts +3 -3
  203. package/src/capabilities/app-graph-builder.ts +63 -0
  204. package/src/capabilities/app-graph-serializer.ts +9 -10
  205. package/src/capabilities/blueprint-definition.ts +6 -4
  206. package/src/capabilities/comment-config.ts +36 -0
  207. package/src/capabilities/create-object.ts +33 -0
  208. package/src/capabilities/index.ts +17 -2
  209. package/src/capabilities/navigation-resolver.ts +19 -0
  210. package/src/capabilities/node.ts +3 -1
  211. package/src/capabilities/operation-handler.ts +1 -1
  212. package/src/capabilities/react-surface.tsx +17 -10
  213. package/src/capabilities/state.ts +4 -4
  214. package/src/components/MarkdownEditor/FileUpload.tsx +42 -37
  215. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +5 -4
  216. package/src/components/MarkdownEditor/MarkdownEditor.tsx +41 -30
  217. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +4 -3
  218. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +9 -6
  219. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +2 -1
  220. package/src/components/MarkdownSettings/MarkdownSettings.tsx +3 -3
  221. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.tsx +86 -0
  222. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.tsx +44 -0
  223. package/src/containers/EditableMarkdownCard/index.ts +6 -0
  224. package/src/containers/{MarkdownContainer/MarkdownContainer.stories.tsx → MarkdownArticle/MarkdownArticle.stories.tsx} +15 -9
  225. package/src/containers/{MarkdownContainer/MarkdownContainer.tsx → MarkdownArticle/MarkdownArticle.tsx} +8 -7
  226. package/src/containers/MarkdownArticle/index.ts +6 -0
  227. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +8 -7
  228. package/src/containers/MarkdownCard/MarkdownCard.tsx +29 -21
  229. package/src/containers/MarkdownCard/snippet.ts +3 -1
  230. package/src/containers/index.ts +3 -2
  231. package/src/hooks/useExtensions.tsx +13 -9
  232. package/src/hooks/useLinkQuery.ts +21 -35
  233. package/src/index.ts +3 -7
  234. package/src/meta.ts +17 -7
  235. package/src/operations/create-markdown.ts +3 -4
  236. package/src/operations/create.conversations.json +1 -1
  237. package/src/operations/create.test.ts +11 -13
  238. package/src/operations/create.ts +22 -9
  239. package/src/operations/index.ts +2 -4
  240. package/src/operations/open.ts +3 -3
  241. package/src/operations/scroll-to-anchor.ts +18 -16
  242. package/src/operations/set-view-mode.ts +3 -4
  243. package/src/operations/{update.ts → update-markdown.ts} +4 -4
  244. package/src/operations/update.conversations.json +1 -1
  245. package/src/operations/update.test.ts +14 -16
  246. package/src/paths.ts +11 -0
  247. package/src/plugin.ts +11 -0
  248. package/src/testing.ts +22 -9
  249. package/src/translations.ts +4 -3
  250. package/src/types/Markdown.ts +10 -11
  251. package/src/types/MarkdownCapabilities.ts +51 -0
  252. package/src/types/MarkdownEvents.ts +14 -0
  253. package/src/{operations/definitions.ts → types/MarkdownOperation.ts} +24 -11
  254. package/src/types/Settings.ts +23 -3
  255. package/src/types/index.ts +3 -2
  256. package/src/types/types.ts +4 -1
  257. package/src/util.tsx +2 -2
  258. package/dist/lib/browser/MarkdownSettings-62YSRY7L.mjs.map +0 -7
  259. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  260. package/dist/lib/browser/chunk-4KOZEH2H.mjs +0 -121
  261. package/dist/lib/browser/chunk-4KOZEH2H.mjs.map +0 -7
  262. package/dist/lib/browser/chunk-QFPZONKP.mjs +0 -158
  263. package/dist/lib/browser/chunk-QFPZONKP.mjs.map +0 -7
  264. package/dist/lib/browser/cli/index.mjs +0 -39
  265. package/dist/lib/browser/cli/index.mjs.map +0 -7
  266. package/dist/lib/browser/create-YL5ELZWP.mjs +0 -30
  267. package/dist/lib/browser/create-YL5ELZWP.mjs.map +0 -7
  268. package/dist/lib/browser/create-markdown-LU5IDKMH.mjs.map +0 -7
  269. package/dist/lib/browser/index.mjs.map +0 -7
  270. package/dist/lib/browser/meta.json +0 -1
  271. package/dist/lib/browser/open-AFSOZZ6G.mjs.map +0 -7
  272. package/dist/lib/browser/operations/index.mjs +0 -14
  273. package/dist/lib/browser/operations/index.mjs.map +0 -7
  274. package/dist/lib/browser/scroll-to-anchor-IPXV32A6.mjs +0 -49
  275. package/dist/lib/browser/scroll-to-anchor-IPXV32A6.mjs.map +0 -7
  276. package/dist/lib/browser/set-view-mode-2QWB24RR.mjs +0 -26
  277. package/dist/lib/browser/set-view-mode-2QWB24RR.mjs.map +0 -7
  278. package/dist/lib/browser/types/index.mjs +0 -16
  279. package/dist/lib/browser/update-HZNVYBMO.mjs.map +0 -7
  280. package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs +0 -33
  281. package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs.map +0 -7
  282. package/dist/lib/node-esm/blueprints/index.mjs +0 -52
  283. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  284. package/dist/lib/node-esm/chunk-3OPDJJJH.mjs +0 -122
  285. package/dist/lib/node-esm/chunk-3OPDJJJH.mjs.map +0 -7
  286. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  287. package/dist/lib/node-esm/chunk-JUGS6RKO.mjs +0 -159
  288. package/dist/lib/node-esm/chunk-JUGS6RKO.mjs.map +0 -7
  289. package/dist/lib/node-esm/cli/index.mjs +0 -40
  290. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  291. package/dist/lib/node-esm/create-SMQAIM3V.mjs +0 -31
  292. package/dist/lib/node-esm/create-SMQAIM3V.mjs.map +0 -7
  293. package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs +0 -23
  294. package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs.map +0 -7
  295. package/dist/lib/node-esm/index.mjs +0 -633
  296. package/dist/lib/node-esm/index.mjs.map +0 -7
  297. package/dist/lib/node-esm/meta.json +0 -1
  298. package/dist/lib/node-esm/open-SRWLLOKE.mjs +0 -22
  299. package/dist/lib/node-esm/open-SRWLLOKE.mjs.map +0 -7
  300. package/dist/lib/node-esm/operations/index.mjs +0 -15
  301. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  302. package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs +0 -50
  303. package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs.map +0 -7
  304. package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs +0 -27
  305. package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs.map +0 -7
  306. package/dist/lib/node-esm/types/index.mjs +0 -17
  307. package/dist/lib/node-esm/update-4CELTLXK.mjs +0 -46
  308. package/dist/lib/node-esm/update-4CELTLXK.mjs.map +0 -7
  309. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -5
  310. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  311. package/dist/types/src/cli/index.d.ts +0 -2
  312. package/dist/types/src/cli/index.d.ts.map +0 -1
  313. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  314. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +0 -1
  315. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +0 -77
  316. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +0 -1
  317. package/dist/types/src/containers/MarkdownContainer/index.d.ts +0 -3
  318. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +0 -1
  319. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  320. package/dist/types/src/operations/update.d.ts +0 -5
  321. package/dist/types/src/operations/update.d.ts.map +0 -1
  322. package/dist/types/src/types/capabilities.d.ts +0 -33
  323. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  324. package/dist/types/src/types/events.d.ts +0 -5
  325. package/dist/types/src/types/events.d.ts.map +0 -1
  326. package/src/capabilities/artifact-definition.ts +0 -110
  327. package/src/cli/index.ts +0 -5
  328. package/src/cli/plugin.ts +0 -39
  329. package/src/containers/MarkdownContainer/index.ts +0 -6
  330. package/src/types/capabilities.ts +0 -50
  331. package/src/types/events.ts +0 -14
  332. /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  333. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  334. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  335. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  336. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
@@ -1,253 +1,4 @@
1
- import {
2
- MarkdownCapabilities,
3
- MarkdownEvents,
4
- MarkdownStateSchema,
5
- Markdown_exports,
6
- Settings_exports
7
- } from "./chunk-4KOZEH2H.mjs";
8
- import "./chunk-J5LGTIGS.mjs";
9
-
10
- // src/meta.ts
11
- import { trim } from "@dxos/util";
12
- var meta = {
13
- id: "org.dxos.plugin.markdown",
14
- name: "Markdown",
15
- description: trim`
16
- Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
17
- Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
18
- `,
19
- icon: "ph--text-aa--regular",
20
- iconHue: "indigo",
21
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
22
- screenshots: [
23
- "https://dxos.network/plugin-details-markdown-dark.png"
24
- ]
25
- };
26
-
27
- // src/util.tsx
28
- import { debounce } from "@dxos/async";
29
- import { Obj } from "@dxos/echo";
30
- import { Markdown } from "#types";
31
- var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
32
- var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
33
- var nonTitleChars = /[^\w ]/g;
34
- var skipPatterns = [
35
- /^!\[/,
36
- /^---\s*$/,
37
- /^```/,
38
- /^\s*$/
39
- ];
40
- var titlePatterns = [
41
- /^#{1,6}\s+(.+)/
42
- ];
43
- var getFallbackName = (content = "") => {
44
- const len = content.length;
45
- let i = 0;
46
- while (i < len) {
47
- let lineEnd = i;
48
- while (lineEnd < len && content[lineEnd] !== "\n") {
49
- lineEnd++;
50
- }
51
- const line = content.slice(i, lineEnd).trim();
52
- i = lineEnd + 1;
53
- if (skipPatterns.some((pattern) => pattern.test(line))) {
54
- continue;
55
- }
56
- for (const pattern of titlePatterns) {
57
- const match = pattern.exec(line);
58
- if (match) {
59
- const text2 = match[1].replaceAll(nonTitleChars, "").trim();
60
- if (text2.length > 0) {
61
- return text2;
62
- }
63
- }
64
- }
65
- const maxLen = 32;
66
- const text = line.replaceAll(nonTitleChars, "").trim();
67
- if (text.length > 0) {
68
- if (text.length > maxLen) {
69
- const words = text.split(/\s+/);
70
- let result = "";
71
- for (const word of words) {
72
- const next = result.length === 0 ? word : result + " " + word;
73
- if (next.length > maxLen) {
74
- break;
75
- }
76
- result = next;
77
- }
78
- return result + "\u2026";
79
- }
80
- return text;
81
- }
82
- }
83
- return "";
84
- };
85
- var getContentSnippet = (content = "", maxLines = 3) => {
86
- const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
87
- return abstract.slice(0, maxLines).join("\n") ?? "";
88
- };
89
- var setFallbackName = debounce((doc, content = "") => {
90
- const name = getFallbackName(content);
91
- if (doc.fallbackName !== name) {
92
- Obj.change(doc, (doc2) => {
93
- doc2.fallbackName = name;
94
- });
95
- }
96
- }, 200);
97
- var serializer = {
98
- serialize: async ({ object }) => {
99
- const { content } = await object.content.load();
100
- return JSON.stringify({
101
- name: object.name,
102
- fallbackName: object.fallbackName,
103
- content
104
- });
105
- },
106
- deserialize: async ({ content: serialized }) => {
107
- const { name, fallbackName, content } = JSON.parse(serialized);
108
- return Markdown.make({
109
- name,
110
- fallbackName,
111
- content
112
- });
113
- }
114
- };
115
-
116
- // src/MarkdownPlugin.tsx
117
- import * as Effect from "effect/Effect";
118
- import * as Option from "effect/Option";
119
- import { Plugin } from "@dxos/app-framework";
120
- import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
121
- import { Annotation, Ref } from "@dxos/echo";
122
- import { createDocAccessor, getTextInRange } from "@dxos/echo-db";
123
- import { Operation } from "@dxos/operation";
124
- import { SpaceOperation } from "@dxos/plugin-space/operations";
125
- import { translations as editorTranslations2 } from "@dxos/react-ui-editor";
126
- import { Text } from "@dxos/schema";
127
- import { MarkdownBlueprint } from "#blueprints";
128
- import { AnchorSort, AppGraphSerializer, BlueprintDefinition, MarkdownSettings, MarkdownState, OperationHandler, ReactSurface } from "#capabilities";
129
- import { meta as meta3 } from "#meta";
130
- import { MarkdownOperation } from "#operations";
131
- import { Markdown as Markdown3, MarkdownEvents as MarkdownEvents2 } from "#types";
132
-
133
- // src/translations.ts
134
- import { translations as editorTranslations } from "@dxos/react-ui-editor";
135
- import { meta as meta2 } from "#meta";
136
- import { Markdown as Markdown2 } from "#types";
137
- var translations = [
138
- {
139
- "en-US": {
140
- [Markdown2.Document.typename]: {
141
- "typename.label": "Document",
142
- "typename.label_zero": "Documents",
143
- "typename.label_one": "Document",
144
- "typename.label_other": "Documents",
145
- "object-name.placeholder": "New document",
146
- "add-object.label": "Add document",
147
- "rename-object.label": "Rename document",
148
- "delete-object.label": "Delete document",
149
- "object-deleted.label": "Document deleted"
150
- },
151
- [meta2.id]: {
152
- "plugin.name": "Editor",
153
- "choose-markdown-from-space-dialog.title": "Choose one or more documents to add",
154
- "empty-choose-markdown-from-space.message": "None available; try creating a new one instead?",
155
- "chooser-done.label": "Add selected",
156
- "editor.placeholder": "Start typing\u2026",
157
- "toggle-view-mode.label": "Toggle read-only",
158
- "upload-image.label": "Upload image",
159
- "fallback.title": "Untitled",
160
- "navigate-to-document.label": "Open document",
161
- "words.label": "words",
162
- "words.label_zero": "words",
163
- "words.label_one": "word",
164
- "words.label_other": "words"
165
- }
166
- }
167
- },
168
- ...editorTranslations
169
- ];
170
-
171
- // src/MarkdownPlugin.tsx
172
- var MarkdownPlugin = Plugin.define(meta3).pipe(AppPlugin.addBlueprintDefinitionModule({
173
- activate: BlueprintDefinition
174
- }), AppPlugin.addMetadataModule({
175
- metadata: {
176
- id: Markdown3.Document.typename,
177
- metadata: {
178
- // TODO(dmaretskyi): Remove label, icon and iconHue and query them of schema.
179
- label: (object) => object.name || object.fallbackName,
180
- icon: Annotation.IconAnnotation.get(Markdown3.Document).pipe(Option.getOrThrow).icon,
181
- iconHue: Annotation.IconAnnotation.get(Markdown3.Document).pipe(Option.getOrThrow).hue ?? "white",
182
- blueprints: [
183
- MarkdownBlueprint.key
184
- ],
185
- graphProps: {
186
- managesAutofocus: true
187
- },
188
- // TODO(wittjosiah): Move out of metadata.
189
- loadReferences: async (doc) => await Ref.Array.loadAll([
190
- doc.content
191
- ]),
192
- serializer,
193
- // TODO(wittjosiah): Consider how to do generic comments without these.
194
- comments: "anchored",
195
- selectionMode: "multi-range",
196
- getAnchorLabel: (doc, anchor) => {
197
- if (doc.content) {
198
- const [start, end] = anchor.split(":");
199
- return getTextInRange(createDocAccessor(doc.content.target, [
200
- "content"
201
- ]), start, end);
202
- }
203
- },
204
- createObject: (props, options) => Effect.gen(function* () {
205
- const object = Markdown3.make(props);
206
- return yield* Operation.invoke(SpaceOperation.AddObject, {
207
- object,
208
- target: options.target,
209
- hidden: true,
210
- targetNodeId: options.targetNodeId
211
- });
212
- }),
213
- scrollToAnchor: MarkdownOperation.ScrollToAnchor
214
- }
215
- }
216
- }), AppPlugin.addOperationHandlerModule({
217
- activate: OperationHandler
218
- }), AppPlugin.addSchemaModule({
219
- schema: [
220
- Markdown3.Document,
221
- Text.Text
222
- ]
223
- }), AppPlugin.addSurfaceModule({
224
- activate: ReactSurface,
225
- firesBeforeActivation: [
226
- MarkdownEvents2.SetupExtensions
227
- ]
228
- }), AppPlugin.addTranslationsModule({
229
- translations: [
230
- ...translations,
231
- ...editorTranslations2
232
- ]
233
- }), Plugin.addModule({
234
- activatesOn: AppActivationEvents.SetupSettings,
235
- activate: MarkdownSettings
236
- }), Plugin.addModule({
237
- id: "state",
238
- // TODO(wittjosiah): Does not integrate with settings store.
239
- // Should this be a different event?
240
- // Should settings store be renamed to be more generic?
241
- activatesOn: AppActivationEvents.SetupSettings,
242
- activate: MarkdownState
243
- }), Plugin.addModule({
244
- activatesOn: AppActivationEvents.AppGraphReady,
245
- activate: AppGraphSerializer
246
- }), Plugin.addModule({
247
- // TODO(wittjosiah): More relevant event?
248
- activatesOn: AppActivationEvents.AppGraphReady,
249
- activate: AnchorSort
250
- }), Plugin.make);
1
+ import "../chunk-J5LGTIGS.mjs";
251
2
 
252
3
  // src/components/index.ts
253
4
  import { lazy } from "react";
@@ -258,11 +9,11 @@ import React4, { useCallback as useCallback3, useMemo as useMemo2, useState as u
258
9
  import { createPortal as createPortal2 } from "react-dom";
259
10
  import { Surface } from "@dxos/app-framework/ui";
260
11
  import { AppSurface } from "@dxos/app-toolkit/ui";
261
- import { Obj as Obj2 } from "@dxos/echo";
262
- import { DXN } from "@dxos/keys";
12
+ import { Obj } from "@dxos/echo";
13
+ import { URI } from "@dxos/keys";
263
14
  import { useClient } from "@dxos/react-client";
15
+ import { composable as composable2, composableProps as composableProps2 } from "@dxos/react-ui";
264
16
  import { createEditorController, useEditorContext } from "@dxos/react-ui-editor";
265
- import { composable as composable2, composableProps as composableProps2 } from "@dxos/ui-theme";
266
17
  import { isNonNullable } from "@dxos/util";
267
18
  import { useEditorMenuOptions, useExtensions } from "#hooks";
268
19
 
@@ -272,13 +23,13 @@ import React, { forwardRef, useCallback, useContext, useEffect, useImperativeHan
272
23
  import { useCapabilities } from "@dxos/app-framework/ui";
273
24
  import { useThemeContext, useTranslation } from "@dxos/react-ui";
274
25
  import { useTextEditor } from "@dxos/react-ui-editor";
275
- import { mobileSlots, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, documentSlots, formattingListener, processEditorPayload, editorClassNames } from "@dxos/ui-editor";
26
+ import { mobileSlots, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, documentSlots, formattingListener, processEditorPayload, editorClassNames, scrollbarAutohide } from "@dxos/ui-editor";
276
27
  import { mx } from "@dxos/ui-theme";
277
28
  import { isTruthy } from "@dxos/util";
278
- import { meta as meta4 } from "#meta";
279
- import { MarkdownCapabilities as MarkdownCapabilities2 } from "#types";
29
+ import { meta } from "#meta";
30
+ import { MarkdownCapabilities } from "#types";
280
31
  var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attendableId, role, compact, viewMode, initialValue, editorStateStore, toolbarState, extensions, slots, onFileUpload }, forwardedRef) => {
281
- const { t } = useTranslation(meta4.id);
32
+ const { t } = useTranslation(meta.id);
282
33
  const { themeMode } = useThemeContext();
283
34
  const registry = useContext(RegistryContext);
284
35
  const updateToolbarState = useCallback((formatting) => {
@@ -316,6 +67,7 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attend
316
67
  syntaxHighlighting: true
317
68
  }),
318
69
  createMarkdownExtensions(),
70
+ scrollbarAutohide(),
319
71
  toolbarState && formattingListener(updateToolbarState),
320
72
  role !== "section" && onFileUpload && dropFile({
321
73
  // TODO(wittjosiah): Factor out to file uploader plugin.
@@ -336,12 +88,13 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attend
336
88
  id,
337
89
  viewMode,
338
90
  themeMode,
339
- extensions
91
+ extensions,
92
+ compact
340
93
  ]);
341
94
  useImperativeHandle(forwardedRef, () => editorView, [
342
95
  editorView
343
96
  ]);
344
- const [editorViewRegistry] = useCapabilities(MarkdownCapabilities2.EditorViews);
97
+ const [editorViewRegistry] = useCapabilities(MarkdownCapabilities.EditorViews);
345
98
  useEffect(() => {
346
99
  if (editorView && editorViewRegistry) {
347
100
  editorViewRegistry.register(attendableId ?? id, editorView, id);
@@ -357,7 +110,6 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attend
357
110
  return /* @__PURE__ */ React.createElement("div", {
358
111
  ...focusAttributes,
359
112
  className: mx(editorClassNames(role), classNames),
360
- role: "none",
361
113
  "data-testid": "composer.markdownRoot",
362
114
  "data-popover-collision-boundary": true,
363
115
  ref: parentRef
@@ -376,8 +128,8 @@ var useTest = (view) => {
376
128
 
377
129
  // src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
378
130
  import React3, { useCallback as useCallback2, useState } from "react";
131
+ import { composable, composableProps } from "@dxos/react-ui";
379
132
  import { Editor } from "@dxos/react-ui-editor";
380
- import { composable, composableProps } from "@dxos/ui-theme";
381
133
 
382
134
  // src/components/MarkdownEditor/FileUpload.tsx
383
135
  import React2, { forwardRef as forwardRef2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle2 } from "react";
@@ -390,7 +142,7 @@ var IMAGE_FILES = [
390
142
  ".png",
391
143
  ".gif"
392
144
  ];
393
- var FileUpload = /* @__PURE__ */ forwardRef2(({ editorView, onFileUpload }, forwardedRef) => {
145
+ var FileUpload = /* @__PURE__ */ forwardRef2(({ getView, onFileUpload }, forwardedRef) => {
394
146
  const { acceptedFiles, open, inputRef } = useDropzone({
395
147
  disabled: !onFileUpload,
396
148
  multiple: false,
@@ -401,8 +153,12 @@ var FileUpload = /* @__PURE__ */ forwardRef2(({ editorView, onFileUpload }, forw
401
153
  });
402
154
  useImperativeHandle2(forwardedRef, () => open, []);
403
155
  useEffect2(() => {
404
- if (editorView && acceptedFiles.length && onFileUpload) {
156
+ if (acceptedFiles.length && onFileUpload) {
405
157
  requestAnimationFrame(async () => {
158
+ const editorView = getView?.();
159
+ if (!editorView) {
160
+ return;
161
+ }
406
162
  const f = acceptedFiles[0];
407
163
  const file = new File([
408
164
  f
@@ -420,7 +176,7 @@ var FileUpload = /* @__PURE__ */ forwardRef2(({ editorView, onFileUpload }, forw
420
176
  });
421
177
  }
422
178
  }, [
423
- editorView,
179
+ getView,
424
180
  acceptedFiles,
425
181
  onFileUpload
426
182
  ]);
@@ -433,11 +189,11 @@ var FileUpload = /* @__PURE__ */ forwardRef2(({ editorView, onFileUpload }, forw
433
189
  });
434
190
 
435
191
  // src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
436
- var MarkdownEditorToolbar = composable(({ id, role, editorView, customActions, onAction, onFileUpload, onViewModeChange, ...props }, forwardedRef) => {
192
+ var MarkdownEditorToolbar = composable(({ id, role, getView, customActions, onAction, onFileUpload, onViewModeChange, ...props }, forwardedRef) => {
437
193
  const { className, ...rest } = composableProps(props);
438
194
  const [upload, setUpload] = useState(null);
439
195
  const uploadRef = useCallback2((next) => setUpload(() => next), []);
440
- if (!editorView) {
196
+ if (!getView?.()) {
441
197
  return /* @__PURE__ */ React3.createElement("div", {
442
198
  className,
443
199
  ...rest,
@@ -445,7 +201,6 @@ var MarkdownEditorToolbar = composable(({ id, role, editorView, customActions, o
445
201
  });
446
202
  }
447
203
  return /* @__PURE__ */ React3.createElement("div", {
448
- role: "none",
449
204
  className: "contents",
450
205
  ref: forwardedRef
451
206
  }, /* @__PURE__ */ React3.createElement(Editor.Toolbar, {
@@ -459,7 +214,7 @@ var MarkdownEditorToolbar = composable(({ id, role, editorView, customActions, o
459
214
  onViewModeChange
460
215
  }), onFileUpload && /* @__PURE__ */ React3.createElement(FileUpload, {
461
216
  ref: uploadRef,
462
- editorView,
217
+ getView,
463
218
  onFileUpload
464
219
  }));
465
220
  });
@@ -469,7 +224,7 @@ var [MarkdownEditorContextProvider, useMarkdownEditorContext] = createContext("M
469
224
  var MarkdownEditorProvider = ({ children, id, attendableId, object, settings, compact, viewMode, selectionManager, editorStateStore, extensions: extensionsProp, slashCommandGroups, onLinkQuery, onSelectObject, onAction, onFileUpload, onViewModeChange }) => {
470
225
  const [previewBlocks, setPreviewBlocks] = useState2([]);
471
226
  const previewOptions = useMemo2(() => ({
472
- db: Obj2.isObject(object) ? Obj2.getDatabase(object) : void 0,
227
+ db: Obj.isObject(object) ? Obj.getDatabase(object) : void 0,
473
228
  addBlockContainer: (block) => {
474
229
  setPreviewBlocks((prev) => [
475
230
  ...prev,
@@ -544,8 +299,8 @@ var MarkdownEditorProvider = ({ children, id, attendableId, object, settings, co
544
299
  };
545
300
  MarkdownEditorProvider.displayName = "MarkdownEditor.Provider";
546
301
  var MARKDOWN_EDITOR_CONTENT_NAME = "MarkdownEditor.Content";
547
- var MarkdownEditorContent2 = composable2(({ ...props }, _forwardedRef) => {
548
- const { id, attendableId, compact, viewMode, onFileUpload } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
302
+ var MarkdownEditorContent2 = composable2(({ compact: compactProp, ...props }, _forwardedRef) => {
303
+ const { id, attendableId, compact = compactProp, viewMode, onFileUpload } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
549
304
  const { extensions, setController, state } = useEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
550
305
  const handleRef = useCallback3((view) => {
551
306
  setController(createEditorController(view));
@@ -569,10 +324,13 @@ var MARKDOWN_EDITOR_TOOLBAR_NAME = "MarkdownEditor.Toolbar";
569
324
  var MarkdownEditorToolbar2 = (props) => {
570
325
  const { id, attendableId, onAction, onFileUpload, onViewModeChange } = useMarkdownEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);
571
326
  const { controller } = useEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);
327
+ const getView = useCallback3(() => controller?.view ?? null, [
328
+ controller
329
+ ]);
572
330
  return /* @__PURE__ */ React4.createElement(MarkdownEditorToolbar, {
573
331
  ...props,
574
332
  id: attendableId ?? id,
575
- editorView: controller?.view ?? void 0,
333
+ getView,
576
334
  onAction,
577
335
  onFileUpload,
578
336
  onViewModeChange
@@ -591,7 +349,7 @@ var MarkdownEditorBlocks = (_props) => {
591
349
  MarkdownEditorBlocks.displayName = MARKDOWN_EDITOR_BLOCKS_NAME;
592
350
  var PreviewBlock = ({ el, link }) => {
593
351
  const client = useClient();
594
- const dxn = DXN.parse(link.dxn);
352
+ const dxn = URI.make(link.dxn);
595
353
  const subject = client.graph.makeRef(dxn).target;
596
354
  const data = useMemo2(() => ({
597
355
  subject
@@ -611,22 +369,10 @@ var MarkdownEditor = {
611
369
  };
612
370
 
613
371
  // src/components/index.ts
614
- var MarkdownSettings2 = lazy(() => import("./MarkdownSettings-62YSRY7L.mjs"));
372
+ var MarkdownSettings = lazy(() => import("../MarkdownSettings-YCTZJL5V.mjs"));
615
373
  export {
616
- Markdown_exports as Markdown,
617
- MarkdownCapabilities,
618
374
  MarkdownEditor,
619
375
  MarkdownEditorProvider,
620
- MarkdownEvents,
621
- MarkdownPlugin,
622
- MarkdownStateSchema,
623
- Settings_exports as Settings,
624
- getContentSnippet,
625
- getFallbackName,
626
- isEditorModel,
627
- isMarkdownProperties,
628
- meta,
629
- serializer,
630
- setFallbackName
376
+ MarkdownSettings
631
377
  };
632
378
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/index.ts", "../../../../src/components/MarkdownEditor/MarkdownEditor.tsx", "../../../../src/components/MarkdownEditor/MarkdownEditorContent.tsx", "../../../../src/components/MarkdownEditor/MarkdownEditorToolbar.tsx", "../../../../src/components/MarkdownEditor/FileUpload.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport * from './MarkdownEditor';\n\nexport const MarkdownSettings: ComponentType<any> = lazy(() => import('./MarkdownSettings'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Extension } from '@codemirror/state';\nimport { type EditorView } from '@codemirror/view';\nimport { type Atom } from '@effect-atom/atom-react';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type ReactNode, useCallback, useMemo, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { URI } from '@dxos/keys';\nimport { useClient } from '@dxos/react-client';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport {\n type EditorRootProps,\n type EditorToolbarState,\n createEditorController,\n useEditorContext,\n} from '@dxos/react-ui-editor';\nimport { type PreviewBlock, type PreviewOptions } from '@dxos/ui-editor';\nimport { isNonNullable } from '@dxos/util';\n\nimport {\n type DocumentType,\n type ExtensionsOptions,\n type UseEditorMenuOptionsProps,\n useEditorMenuOptions,\n useExtensions,\n} from '#hooks';\n\nimport {\n MarkdownEditorContent as NaturalMarkdownEditorContent,\n type MarkdownEditorContentProps as NaturalMarkdownEditorContentProps,\n} from './MarkdownEditorContent';\nimport {\n MarkdownEditorToolbar as NaturalMarkdownToolbar,\n type MarkdownEditorToolbarProps as NaturalMarkdownToolbarProps,\n} from './MarkdownEditorToolbar';\n\n//\n// Context\n//\n\ntype MarkdownEditorContextValue = {\n id: string;\n attendableId?: string;\n previewBlocks: PreviewBlock[];\n} & Pick<ExtensionsOptions, 'compact' | 'viewMode'> &\n Pick<NaturalMarkdownToolbarProps, 'onAction' | 'onFileUpload' | 'onViewModeChange'>;\n\nconst [MarkdownEditorContextProvider, useMarkdownEditorContext] =\n createContext<MarkdownEditorContextValue>('MarkdownEditor.Context');\n\n/**\n * Props to spread onto `Editor.Root` from `MarkdownEditorProvider`'s render callback.\n */\nexport type MarkdownEditorEditorRootProps = Omit<EditorRootProps, 'children'>;\n\n//\n// MarkdownEditorProvider\n//\n\nexport type MarkdownEditorProviderProps = {\n object?: DocumentType;\n extensions?: Extension[];\n children: (editorRootProps: MarkdownEditorEditorRootProps) => ReactNode;\n} & Pick<\n MarkdownEditorContextValue,\n 'id' | 'attendableId' | 'viewMode' | 'compact' | 'onAction' | 'onFileUpload' | 'onViewModeChange'\n> &\n Pick<UseEditorMenuOptionsProps, 'slashCommandGroups' | 'onLinkQuery'> &\n Pick<ExtensionsOptions, 'editorStateStore' | 'selectionManager' | 'settings' | 'onSelectObject'>;\n\nexport const MarkdownEditorProvider = ({\n children,\n id,\n attendableId,\n object,\n settings,\n compact,\n viewMode,\n selectionManager,\n editorStateStore,\n extensions: extensionsProp,\n slashCommandGroups,\n onLinkQuery,\n onSelectObject,\n onAction,\n onFileUpload,\n onViewModeChange,\n}: MarkdownEditorProviderProps) => {\n // Preview blocks.\n const [previewBlocks, setPreviewBlocks] = useState<PreviewBlock[]>([]);\n const previewOptions = useMemo<PreviewOptions>(\n () => ({\n db: Obj.isObject(object) ? Obj.getDatabase(object) : undefined,\n addBlockContainer: (block) => {\n setPreviewBlocks((prev) => [...prev, block]);\n },\n removeBlockContainer: ({ link }) => {\n setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.dxn !== link.dxn));\n },\n }),\n [object],\n );\n\n // Context menu options (Editor.Root calls useEditorMenu with these props).\n const menuOptions = useEditorMenuOptions({ slashCommandGroups, onLinkQuery });\n\n // Core markdown extensions (popover/menu extension is added by Editor.Root).\n const coreExtensions = useExtensions({\n id,\n object,\n compact,\n viewMode,\n selectionManager,\n editorStateStore,\n previewOptions,\n settings,\n onSelectObject,\n });\n\n const extensions = useMemo(\n () => [coreExtensions, extensionsProp].filter(isNonNullable).flat(),\n [coreExtensions, extensionsProp],\n );\n\n const editorRootProps = useMemo<MarkdownEditorEditorRootProps>(\n () => ({\n extensions,\n viewMode,\n getMenu: menuOptions.getMenu,\n trigger: menuOptions.trigger,\n placeholder: menuOptions.placeholder,\n ...(menuOptions.filter !== undefined ? { filter: menuOptions.filter } : {}),\n ...(menuOptions.triggerKey !== undefined ? { triggerKey: menuOptions.triggerKey } : {}),\n }),\n [extensions, viewMode, menuOptions],\n );\n\n const markdownContextValue = useMemo<MarkdownEditorContextValue>(\n () => ({\n id,\n attendableId,\n compact,\n viewMode,\n previewBlocks,\n onAction,\n onFileUpload,\n onViewModeChange,\n }),\n [id, attendableId, compact, viewMode, previewBlocks, onAction, onFileUpload, onViewModeChange],\n );\n\n return (\n <MarkdownEditorContextProvider {...markdownContextValue}>{children(editorRootProps)}</MarkdownEditorContextProvider>\n );\n};\n\nMarkdownEditorProvider.displayName = 'MarkdownEditor.Provider';\n\n//\n// MarkdownEditor.Content\n//\n\nconst MARKDOWN_EDITOR_CONTENT_NAME = 'MarkdownEditor.Content';\n\ntype MarkdownEditorContentProps = Omit<NaturalMarkdownEditorContentProps, 'id' | 'extensions' | 'toolbarState'>;\n\nconst MarkdownEditorContent = composable<HTMLDivElement, MarkdownEditorContentProps>(\n ({ compact: compactProp, ...props }, _forwardedRef) => {\n const {\n id,\n attendableId,\n compact = compactProp,\n viewMode,\n onFileUpload,\n } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);\n const { extensions, setController, state } = useEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);\n\n const handleRef = useCallback(\n (view: EditorView | null) => {\n setController(createEditorController(view));\n },\n [setController],\n );\n\n return (\n <NaturalMarkdownEditorContent\n {...composableProps(props)}\n id={id}\n attendableId={attendableId}\n compact={compact}\n viewMode={viewMode}\n toolbarState={state as Atom.Writable<EditorToolbarState>}\n extensions={extensions}\n onFileUpload={onFileUpload}\n ref={handleRef}\n />\n );\n },\n);\n\nMarkdownEditorContent.displayName = MARKDOWN_EDITOR_CONTENT_NAME;\n\n//\n// MarkdownEditor.Toolbar\n//\n\nconst MARKDOWN_EDITOR_TOOLBAR_NAME = 'MarkdownEditor.Toolbar';\n\ntype MarkdownEditorToolbarProps = ThemedClassName<\n Omit<NaturalMarkdownToolbarProps, 'getView' | 'onAction' | 'onFileUpload' | 'onViewModeChange' | 'id'>\n>;\n\nconst MarkdownEditorToolbar = (props: MarkdownEditorToolbarProps) => {\n const { id, attendableId, onAction, onFileUpload, onViewModeChange } =\n useMarkdownEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);\n\n const { controller } = useEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);\n\n // Stable getter identity (changes only when the controller does) so the FileUpload effect, whose\n // deps include `getView`, does not re-run every render and re-upload the same file.\n const getView = useCallback(() => controller?.view ?? null, [controller]);\n\n return (\n <NaturalMarkdownToolbar\n {...props}\n id={attendableId ?? id}\n getView={getView}\n onAction={onAction}\n onFileUpload={onFileUpload}\n onViewModeChange={onViewModeChange}\n />\n );\n};\n\nMarkdownEditorToolbar.displayName = MARKDOWN_EDITOR_TOOLBAR_NAME;\n\n//\n// MarkdownEditor.Blocks (embedded objects)\n//\n\nconst MARKDOWN_EDITOR_BLOCKS_NAME = 'MarkdownEditor.Blocks';\n\ntype MarkdownEditorBlocksProps = {};\n\nconst MarkdownEditorBlocks = (_props: MarkdownEditorBlocksProps) => {\n const { previewBlocks } = useMarkdownEditorContext(MARKDOWN_EDITOR_BLOCKS_NAME);\n\n return (\n <>\n {previewBlocks.map(({ link, el }) => (\n <PreviewBlock key={link.dxn} link={link} el={el} />\n ))}\n </>\n );\n};\n\nMarkdownEditorBlocks.displayName = MARKDOWN_EDITOR_BLOCKS_NAME;\n\nconst PreviewBlock = ({ el, link }: PreviewBlock) => {\n const client = useClient();\n const dxn = URI.make(link.dxn);\n const subject = client.graph.makeRef(dxn).target;\n const data = useMemo(() => ({ subject }), [subject]);\n\n return createPortal(<Surface.Surface type={AppSurface.Card} data={data} limit={1} />, el);\n};\n\n//\n// MarkdownEditor\n//\n\n/** @private */\nexport const MarkdownEditor = {\n Content: MarkdownEditorContent,\n Toolbar: MarkdownEditorToolbar,\n Blocks: MarkdownEditorBlocks,\n};\n\nexport type { MarkdownEditorContentProps, MarkdownEditorToolbarProps, MarkdownEditorBlocksProps };\n\n/** @deprecated Use `MarkdownEditorProviderProps`. */\nexport type MarkdownEditorRootProps = MarkdownEditorProviderProps;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport { type Atom, RegistryContext } from '@effect-atom/atom-react';\nimport React, { forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useMemo } from 'react';\n\nimport { useCapabilities } from '@dxos/app-framework/ui';\nimport { type ThemedClassName, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n type EditorMenuGroup,\n type EditorToolbarState,\n type UseTextEditorProps,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport {\n type EditorSelectionState,\n type EditorStateStore,\n type ThemeExtensionsOptions,\n mobileSlots,\n createBasicExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n dropFile,\n documentSlots,\n formattingListener,\n processEditorPayload,\n editorClassNames,\n scrollbarAutohide,\n} from '@dxos/ui-editor';\nimport { type EditorViewMode } from '@dxos/ui-editor/types';\nimport { mx } from '@dxos/ui-theme';\nimport { isTruthy } from '@dxos/util';\n\nimport { meta } from '#meta';\nimport { MarkdownCapabilities } from '#types';\n\nimport { type MarkdownEditorToolbarProps } from './MarkdownEditorToolbar';\n\nexport type MarkdownEditorContentProps = ThemedClassName<{\n id: string;\n attendableId?: string;\n role?: string;\n compact?: boolean;\n viewMode?: EditorViewMode;\n slashCommandGroups?: EditorMenuGroup[];\n editorStateStore?: EditorStateStore;\n toolbarState?: Atom.Writable<EditorToolbarState>;\n onLinkQuery?: (query?: string) => Promise<EditorMenuGroup[]>;\n}> &\n Pick<UseTextEditorProps, 'initialValue' | 'extensions'> &\n Pick<MarkdownEditorToolbarProps, 'onFileUpload'> &\n Pick<ThemeExtensionsOptions, 'slots'>;\n\n// TODO(burdon): Move controller to Root.\nexport const MarkdownEditorContent = forwardRef<EditorView | null, MarkdownEditorContentProps>(\n (\n {\n classNames,\n id,\n attendableId,\n role,\n compact,\n viewMode,\n initialValue,\n editorStateStore,\n toolbarState,\n extensions,\n slots,\n onFileUpload,\n },\n forwardedRef,\n ) => {\n const { t } = useTranslation(meta.id);\n const { themeMode } = useThemeContext();\n const registry = useContext(RegistryContext);\n\n // Callback to update toolbar state atom.\n const updateToolbarState = useCallback(\n (formatting: EditorToolbarState) => {\n if (toolbarState) {\n registry.set(toolbarState, { ...registry.get(toolbarState), ...formatting });\n }\n },\n [registry, toolbarState],\n );\n\n // Restore last selection and scroll point.\n const { scrollTo, selection } = useMemo<EditorSelectionState>(() => editorStateStore?.getState(id) ?? {}, [id]);\n\n const {\n parentRef,\n view: editorView,\n focusAttributes,\n } = useTextEditor(\n () => ({\n ...(role !== 'section' && {\n id,\n scrollTo,\n selection,\n selectionEnd: true,\n }),\n initialValue,\n extensions: [\n createBasicExtensions({\n readOnly: viewMode === 'readonly',\n placeholder: t('editor.placeholder'),\n scrollPastEnd: !compact,\n search: true,\n }),\n createThemeExtensions({\n themeMode,\n slots: slots ?? (compact ? mobileSlots : documentSlots),\n syntaxHighlighting: true,\n }),\n createMarkdownExtensions(),\n scrollbarAutohide(),\n toolbarState && formattingListener(updateToolbarState),\n role !== 'section' &&\n onFileUpload &&\n dropFile({\n // TODO(wittjosiah): Factor out to file uploader plugin.\n onDrop: async (view, { files }) => {\n const file = files[0];\n const info = file && onFileUpload ? await onFileUpload(file) : undefined;\n if (info) {\n processEditorPayload(view, { type: 'image', data: info.url });\n }\n },\n }),\n extensions,\n ].filter(isTruthy),\n }),\n [id, viewMode, themeMode, extensions, compact],\n );\n\n useImperativeHandle<EditorView | null, EditorView | null>(forwardedRef, () => editorView, [editorView]);\n\n const [editorViewRegistry] = useCapabilities(MarkdownCapabilities.EditorViews);\n useEffect(() => {\n if (editorView && editorViewRegistry) {\n editorViewRegistry.register(attendableId ?? id, editorView, id);\n return () => editorViewRegistry.unregister(attendableId ?? id);\n }\n }, [editorView, editorViewRegistry, attendableId, id]);\n\n useTest(editorView);\n\n return (\n <div\n {...focusAttributes}\n className={mx(editorClassNames(role), classNames)}\n data-testid='composer.markdownRoot'\n data-popover-collision-boundary={true}\n ref={parentRef}\n />\n );\n },\n);\n\n// Expose editor view for playwright tests.\n// TODO(wittjosiah): Find a better way to expose this or find a way to limit it to test runs.\nconst useTest = (view: EditorView | null) => {\n useEffect(() => {\n const composer = (window as any).composer;\n if (composer) {\n composer.editorView = view;\n }\n }, [view]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport React, { useCallback, useState } from 'react';\n\nimport { type FileInfo } from '@dxos/app-toolkit';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { Editor, type EditorToolbarProps } from '@dxos/react-ui-editor';\n\nimport { FileUpload, type FileUploadAction } from './FileUpload';\n\nexport type MarkdownEditorToolbarProps = {\n id: string;\n // Provided as a getter (not a value prop) so the live `EditorView` is never carried in a React prop\n // that React 19.2's dev render-logger would walk into a cross-origin frame. See\n // `react-ui-editor/.../controller.ts` for the full rationale.\n getView?: () => EditorView | null;\n onFileUpload?: (file: File) => Promise<FileInfo | undefined>;\n} & Pick<EditorToolbarProps, 'role' | 'customActions' | 'onAction' | 'onViewModeChange'>;\n\nexport const MarkdownEditorToolbar = composable<HTMLDivElement, MarkdownEditorToolbarProps>(\n ({ id, role, getView, customActions, onAction, onFileUpload, onViewModeChange, ...props }, forwardedRef) => {\n const { className, ...rest } = composableProps(props);\n const [upload, setUpload] = useState<FileUploadAction | null>(null);\n const uploadRef = useCallback((next: FileUploadAction) => setUpload(() => next), []);\n\n if (!getView?.()) {\n return <div className={className} {...rest} ref={forwardedRef} />;\n }\n\n return (\n <div className='contents' ref={forwardedRef}>\n <Editor.Toolbar\n {...rest}\n classNames={className}\n attendableId={id}\n role={role}\n customActions={customActions}\n onAction={onAction}\n onImageUpload={upload ?? undefined}\n onViewModeChange={onViewModeChange}\n />\n\n {onFileUpload && <FileUpload ref={uploadRef} getView={getView} onFileUpload={onFileUpload} />}\n </div>\n );\n },\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport React, { forwardRef, useEffect, useImperativeHandle } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useDropzone } from 'react-dropzone';\n\nimport { type FileInfo } from '@dxos/app-toolkit';\nimport { addLink } from '@dxos/ui-editor';\n\nexport const IMAGE_FILES = ['.jpg', '.jpeg', '.png', '.gif'];\n\nexport type FileUploadAction = () => void;\n\nexport type FileUploadProps = {\n // Provided as a getter (not a value prop) so the live `EditorView` is never carried in a React prop\n // that React 19.2's dev render-logger would walk into a cross-origin frame. See\n // `react-ui-editor/.../controller.ts` for the full rationale.\n getView?: () => EditorView | null;\n onFileUpload?: (file: File) => Promise<FileInfo | undefined>;\n};\n\n// TODO(burdon): Factor out.\n// TODO(burdon): Move to root? (support drag into document via dropzone).\nexport const FileUpload = forwardRef<FileUploadAction, FileUploadProps>(({ getView, onFileUpload }, forwardedRef) => {\n // https://react-dropzone.js.org\n const { acceptedFiles, open, inputRef } = useDropzone({\n disabled: !onFileUpload,\n multiple: false,\n noDrag: true,\n accept: {\n 'image/*': IMAGE_FILES,\n },\n });\n\n useImperativeHandle(forwardedRef, () => open, []);\n\n useEffect(() => {\n if (acceptedFiles.length && onFileUpload) {\n requestAnimationFrame(async () => {\n const editorView = getView?.();\n if (!editorView) {\n return;\n }\n // NOTE: Clone file since react-dropzone patches in a non-standard `path` property, which confuses IPFS.\n const f = acceptedFiles[0];\n const file = new File([f], f.name, {\n type: f.type,\n lastModified: f.lastModified,\n });\n\n // TODO(burdon): Factor out.\n const info = await onFileUpload(file);\n if (info) {\n addLink({ url: info.url, image: true })(editorView);\n }\n });\n }\n }, [getView, acceptedFiles, onFileUpload]);\n\n if (!onFileUpload) {\n return null;\n }\n\n return <>{createPortal(<input ref={inputRef} />, document.body)} </>;\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["lazy", "createContext", "React", "useCallback", "useMemo", "useState", "createPortal", "Surface", "AppSurface", "Obj", "URI", "useClient", "composable", "composableProps", "createEditorController", "useEditorContext", "isNonNullable", "useEditorMenuOptions", "useExtensions", "RegistryContext", "React", "forwardRef", "useCallback", "useContext", "useEffect", "useImperativeHandle", "useMemo", "useCapabilities", "useThemeContext", "useTranslation", "useTextEditor", "mobileSlots", "createBasicExtensions", "createMarkdownExtensions", "createThemeExtensions", "dropFile", "documentSlots", "formattingListener", "processEditorPayload", "editorClassNames", "scrollbarAutohide", "mx", "isTruthy", "meta", "MarkdownCapabilities", "MarkdownEditorContent", "classNames", "id", "attendableId", "role", "compact", "viewMode", "initialValue", "editorStateStore", "toolbarState", "extensions", "slots", "onFileUpload", "forwardedRef", "t", "themeMode", "registry", "updateToolbarState", "formatting", "set", "get", "scrollTo", "selection", "getState", "parentRef", "view", "editorView", "focusAttributes", "selectionEnd", "readOnly", "placeholder", "scrollPastEnd", "search", "syntaxHighlighting", "onDrop", "files", "file", "info", "undefined", "type", "data", "url", "filter", "editorViewRegistry", "EditorViews", "register", "unregister", "useTest", "div", "className", "data-testid", "data-popover-collision-boundary", "ref", "composer", "window", "React", "useCallback", "useState", "composable", "composableProps", "Editor", "React", "forwardRef", "useEffect", "useImperativeHandle", "createPortal", "useDropzone", "addLink", "IMAGE_FILES", "FileUpload", "getView", "onFileUpload", "forwardedRef", "acceptedFiles", "open", "inputRef", "disabled", "multiple", "noDrag", "accept", "length", "requestAnimationFrame", "editorView", "f", "file", "File", "name", "type", "lastModified", "info", "url", "image", "input", "ref", "document", "body", "MarkdownEditorToolbar", "composable", "id", "role", "getView", "customActions", "onAction", "onFileUpload", "onViewModeChange", "props", "forwardedRef", "className", "rest", "composableProps", "upload", "setUpload", "useState", "uploadRef", "useCallback", "next", "React", "div", "ref", "Editor", "Toolbar", "classNames", "attendableId", "onImageUpload", "undefined", "FileUpload", "MarkdownEditorContextProvider", "useMarkdownEditorContext", "createContext", "MarkdownEditorProvider", "children", "id", "attendableId", "object", "settings", "compact", "viewMode", "selectionManager", "editorStateStore", "extensions", "extensionsProp", "slashCommandGroups", "onLinkQuery", "onSelectObject", "onAction", "onFileUpload", "onViewModeChange", "previewBlocks", "setPreviewBlocks", "useState", "previewOptions", "useMemo", "db", "Obj", "isObject", "getDatabase", "undefined", "addBlockContainer", "block", "prev", "removeBlockContainer", "link", "filter", "prevLink", "dxn", "menuOptions", "useEditorMenuOptions", "coreExtensions", "useExtensions", "isNonNullable", "flat", "editorRootProps", "getMenu", "trigger", "placeholder", "triggerKey", "markdownContextValue", "React", "displayName", "MARKDOWN_EDITOR_CONTENT_NAME", "MarkdownEditorContent", "composable", "compactProp", "props", "_forwardedRef", "setController", "state", "useEditorContext", "handleRef", "useCallback", "view", "createEditorController", "NaturalMarkdownEditorContent", "composableProps", "toolbarState", "ref", "MARKDOWN_EDITOR_TOOLBAR_NAME", "MarkdownEditorToolbar", "controller", "getView", "NaturalMarkdownToolbar", "MARKDOWN_EDITOR_BLOCKS_NAME", "MarkdownEditorBlocks", "_props", "map", "el", "PreviewBlock", "key", "client", "useClient", "URI", "make", "subject", "graph", "makeRef", "target", "data", "createPortal", "Surface", "type", "AppSurface", "Card", "limit", "MarkdownEditor", "Content", "Toolbar", "Blocks", "MarkdownSettings", "lazy"]
7
+ }
@@ -0,0 +1,13 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/index.ts
4
+ import { lazy } from "react";
5
+ var MarkdownCard = lazy(() => import("../MarkdownCard-TBLIRDBO.mjs"));
6
+ var EditableMarkdownCard = lazy(() => import("../EditableMarkdownCard-AW7MD35U.mjs"));
7
+ var MarkdownArticle = lazy(() => import("../MarkdownArticle-LWT5RFFJ.mjs"));
8
+ export {
9
+ EditableMarkdownCard,
10
+ MarkdownArticle,
11
+ MarkdownCard
12
+ };
13
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/containers/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport type { MarkdownArticleProps } from './MarkdownArticle';\n\nexport const MarkdownCard: ComponentType<any> = lazy(() => import('./MarkdownCard'));\nexport const EditableMarkdownCard: ComponentType<any> = lazy(() => import('./EditableMarkdownCard'));\nexport const MarkdownArticle: ComponentType<any> = lazy(() => import('./MarkdownArticle'));\n"],
5
+ "mappings": ";;;AAIA,SAA6BA,YAAY;AAIlC,IAAMC,eAAmCD,KAAK,MAAM,OAAO,8BAAA,CAAA;AAC3D,IAAME,uBAA2CF,KAAK,MAAM,OAAO,sCAAA,CAAA;AACnE,IAAMG,kBAAsCH,KAAK,MAAM,OAAO,iCAAA,CAAA;",
6
+ "names": ["lazy", "MarkdownCard", "EditableMarkdownCard", "MarkdownArticle"]
7
+ }
@@ -0,0 +1,29 @@
1
+ import {
2
+ MarkdownOperation_exports,
3
+ Markdown_exports
4
+ } from "./chunk-Y2LQRUU7.mjs";
5
+ import "./chunk-J5LGTIGS.mjs";
6
+
7
+ // src/operations/create.ts
8
+ import * as Effect from "effect/Effect";
9
+ import { CollectionModel } from "@dxos/app-toolkit";
10
+ import { Operation } from "@dxos/compute";
11
+ import { Database, Obj } from "@dxos/echo";
12
+ var handler = MarkdownOperation_exports.Create.pipe(Operation.withHandler(Effect.fn(function* ({ name, content }) {
13
+ const object = yield* Database.add(Markdown_exports.make({
14
+ name,
15
+ content
16
+ }));
17
+ yield* CollectionModel.add({
18
+ object
19
+ }).pipe(Effect.catchTag("EntityNotFoundError", () => Effect.void));
20
+ yield* Database.flush();
21
+ return {
22
+ id: Obj.getURI(object)
23
+ };
24
+ })));
25
+ var create_default = handler;
26
+ export {
27
+ create_default as default
28
+ };
29
+ //# sourceMappingURL=create-JK35XC4R.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { CollectionModel } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { Database, Obj } from '@dxos/echo';\n\nimport { Markdown, MarkdownOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof MarkdownOperation.Create> = MarkdownOperation.Create.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ name, content }) {\n // Add the object to the database directly so it is persisted with a space-qualified URI and is\n // resolvable by id. `CollectionModel.add` only pushes a `Ref` into the space root collection;\n // when that collection does not yet exist (e.g. a freshly-created space in a headless/agent\n // flow) it builds a detached collection that never triggers the transitive ref-save, leaving\n // the object unattached — so a returned `echo:/<id>` never resolves.\n const object = yield* Database.add(Markdown.make({ name, content }));\n\n // Best-effort: add to the space root collection for navigation. Concurrent sub-agents both\n // materializing the root collection can throw EntityNotFoundError while loading a\n // not-yet-flushed collection ref; the document itself is already persisted above, so swallow\n // ONLY that transient case and let any other (non-race) failure surface.\n yield* CollectionModel.add({ object }).pipe(Effect.catchTag('EntityNotFoundError', () => Effect.void));\n\n // Persist before returning the id so other tools/processes (e.g. an agent's add-artifact, run\n // as a separate invocation) can resolve the freshly-created document.\n yield* Database.flush();\n\n return {\n id: Obj.getURI(object),\n };\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,WAAW;AAI9B,IAAMC,UAAkEC,0BAAkBC,OAAOC,KAC/FC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAMC,QAAO,GAAE;AAMpC,QAAMC,SAAS,OAAOC,SAASC,IAAIC,iBAASC,KAAK;IAAEN;IAAMC;EAAQ,CAAA,CAAA;AAMjE,SAAOM,gBAAgBH,IAAI;IAAEF;EAAO,CAAA,EAAGN,KAAYY,gBAAS,uBAAuB,MAAaC,WAAI,CAAA;AAIpG,SAAON,SAASO,MAAK;AAErB,SAAO;IACLC,IAAIC,IAAIC,OAAOX,MAAAA;EACjB;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,iBAAeT;",
6
+ "names": ["Effect", "CollectionModel", "Operation", "Database", "Obj", "handler", "MarkdownOperation", "Create", "pipe", "Operation", "withHandler", "fn", "name", "content", "object", "Database", "add", "Markdown", "make", "CollectionModel", "catchTag", "void", "flush", "id", "Obj", "getURI"]
7
+ }
@@ -1,15 +1,13 @@
1
1
  import {
2
- CreateMarkdown
3
- } from "./chunk-QFPZONKP.mjs";
4
- import {
2
+ MarkdownOperation_exports,
5
3
  Markdown_exports
6
- } from "./chunk-4KOZEH2H.mjs";
4
+ } from "./chunk-Y2LQRUU7.mjs";
7
5
  import "./chunk-J5LGTIGS.mjs";
8
6
 
9
7
  // src/operations/create-markdown.ts
10
8
  import * as Effect from "effect/Effect";
11
- import { Operation } from "@dxos/operation";
12
- var handler = CreateMarkdown.pipe(Operation.withHandler(({ name, content }) => Effect.succeed({
9
+ import { Operation } from "@dxos/compute";
10
+ var handler = MarkdownOperation_exports.CreateMarkdown.pipe(Operation.withHandler(({ name, content }) => Effect.succeed({
13
11
  object: Markdown_exports.make({
14
12
  name,
15
13
  content
@@ -19,4 +17,4 @@ var create_markdown_default = handler;
19
17
  export {
20
18
  create_markdown_default as default
21
19
  };
22
- //# sourceMappingURL=create-markdown-LU5IDKMH.mjs.map
20
+ //# sourceMappingURL=create-markdown-7MLE625M.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create-markdown.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\n\nimport { Markdown, MarkdownOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof MarkdownOperation.CreateMarkdown> = MarkdownOperation.CreateMarkdown.pipe(\n Operation.withHandler(({ name, content }) =>\n Effect.succeed({\n object: Markdown.make({ name, content }),\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAI1B,IAAMC,UAA0EC,0BAAkBC,eAAeC,KAC/GC,UAAUC,YAAY,CAAC,EAAEC,MAAMC,QAAO,MAC7BC,eAAQ;EACbC,QAAQC,iBAASC,KAAK;IAAEL;IAAMC;EAAQ,CAAA;AACxC,CAAA,CAAA,CAAA;AAIJ,IAAA,0BAAeP;",
6
+ "names": ["Effect", "Operation", "handler", "MarkdownOperation", "CreateMarkdown", "pipe", "Operation", "withHandler", "name", "content", "succeed", "object", "Markdown", "make"]
7
+ }