@dxos/plugin-markdown 0.8.4-main.72ec0f3 → 0.8.4-main.937b3ca

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/dist/lib/browser/MarkdownCard-HFNNE4B4.mjs +12 -0
  2. package/dist/lib/browser/MarkdownContainer-V7EAADMF.mjs +12 -0
  3. package/dist/lib/browser/{anchor-sort-3HGPGCOO.mjs → anchor-sort-WQ3TL7ZI.mjs} +11 -10
  4. package/dist/lib/browser/anchor-sort-WQ3TL7ZI.mjs.map +7 -0
  5. package/dist/lib/browser/app-graph-serializer-ULZUJKOD.mjs +58 -0
  6. package/dist/lib/browser/app-graph-serializer-ULZUJKOD.mjs.map +7 -0
  7. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs +19 -0
  8. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs.map +7 -0
  9. package/dist/lib/browser/blueprints/index.mjs +8 -0
  10. package/dist/lib/browser/chunk-BX73DASG.mjs +702 -0
  11. package/dist/lib/browser/chunk-BX73DASG.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-CUGDX7KA.mjs +8 -0
  13. package/dist/lib/browser/chunk-CUGDX7KA.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-Y53FQREH.mjs → chunk-FWQQW6KU.mjs} +41 -47
  15. package/dist/lib/browser/chunk-FWQQW6KU.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-22XSSNBS.mjs → chunk-JOXYQLKH.mjs} +5 -6
  17. package/dist/lib/browser/chunk-JOXYQLKH.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-KDKXFKDN.mjs +104 -0
  19. package/dist/lib/browser/chunk-KDKXFKDN.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-LMO5UVKL.mjs +167 -0
  21. package/dist/lib/browser/chunk-LMO5UVKL.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-S45ULIOG.mjs +101 -0
  23. package/dist/lib/browser/chunk-S45ULIOG.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-VQ3WOAB6.mjs +60 -0
  25. package/dist/lib/browser/chunk-VQ3WOAB6.mjs.map +7 -0
  26. package/dist/lib/browser/cli/index.mjs +32 -0
  27. package/dist/lib/browser/cli/index.mjs.map +7 -0
  28. package/dist/lib/browser/index.mjs +121 -143
  29. package/dist/lib/browser/index.mjs.map +4 -4
  30. package/dist/lib/browser/meta.json +1 -1
  31. package/dist/lib/browser/operation-resolver-EGCWOQKJ.mjs +53 -0
  32. package/dist/lib/browser/operation-resolver-EGCWOQKJ.mjs.map +7 -0
  33. package/dist/lib/browser/react-surface-64FZ7T7F.mjs +213 -0
  34. package/dist/lib/browser/react-surface-64FZ7T7F.mjs.map +7 -0
  35. package/dist/lib/browser/settings-JY5JE7MI.mjs +35 -0
  36. package/dist/lib/browser/settings-JY5JE7MI.mjs.map +7 -0
  37. package/dist/lib/browser/state-QE7VSJWJ.mjs +29 -0
  38. package/dist/lib/browser/state-QE7VSJWJ.mjs.map +7 -0
  39. package/dist/lib/browser/types/index.mjs +10 -3
  40. package/dist/lib/node-esm/{MarkdownCard-ZXPJLUYO.mjs → MarkdownCard-GMNXUWWR.mjs} +5 -5
  41. package/dist/lib/node-esm/MarkdownContainer-LUSMORP2.mjs +13 -0
  42. package/dist/lib/node-esm/{anchor-sort-PCDXEBJ2.mjs → anchor-sort-G7D5TAI6.mjs} +11 -10
  43. package/dist/lib/node-esm/anchor-sort-G7D5TAI6.mjs.map +7 -0
  44. package/dist/lib/node-esm/app-graph-serializer-W5YMQP7P.mjs +59 -0
  45. package/dist/lib/node-esm/app-graph-serializer-W5YMQP7P.mjs.map +7 -0
  46. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs +20 -0
  47. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs.map +7 -0
  48. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  49. package/dist/lib/node-esm/chunk-3JYPCC7M.mjs +105 -0
  50. package/dist/lib/node-esm/chunk-3JYPCC7M.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-AMHACOXW.mjs → chunk-44VJC3QF.mjs} +5 -6
  52. package/dist/lib/node-esm/chunk-44VJC3QF.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-D4BCFPKK.mjs +703 -0
  54. package/dist/lib/node-esm/chunk-D4BCFPKK.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-HAIEWPU7.mjs → chunk-EYAFC4N7.mjs} +41 -47
  56. package/dist/lib/node-esm/chunk-EYAFC4N7.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-KXEQCFMB.mjs +61 -0
  58. package/dist/lib/node-esm/chunk-KXEQCFMB.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-PRV35A7Z.mjs +168 -0
  60. package/dist/lib/node-esm/chunk-PRV35A7Z.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-PLZ7EVCT.mjs → chunk-SDTYEGGL.mjs} +56 -6
  62. package/dist/lib/node-esm/chunk-SDTYEGGL.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-W3IIKDV5.mjs +10 -0
  64. package/dist/lib/node-esm/chunk-W3IIKDV5.mjs.map +7 -0
  65. package/dist/lib/node-esm/cli/index.mjs +33 -0
  66. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  67. package/dist/lib/node-esm/index.mjs +121 -143
  68. package/dist/lib/node-esm/index.mjs.map +4 -4
  69. package/dist/lib/node-esm/meta.json +1 -1
  70. package/dist/lib/node-esm/operation-resolver-2HIS2AQZ.mjs +54 -0
  71. package/dist/lib/node-esm/operation-resolver-2HIS2AQZ.mjs.map +7 -0
  72. package/dist/lib/node-esm/react-surface-PKEVHTJK.mjs +214 -0
  73. package/dist/lib/node-esm/react-surface-PKEVHTJK.mjs.map +7 -0
  74. package/dist/lib/node-esm/settings-4UGMPIRY.mjs +36 -0
  75. package/dist/lib/node-esm/settings-4UGMPIRY.mjs.map +7 -0
  76. package/dist/lib/node-esm/state-LXE5XIN4.mjs +30 -0
  77. package/dist/lib/node-esm/state-LXE5XIN4.mjs.map +7 -0
  78. package/dist/lib/node-esm/types/index.mjs +10 -3
  79. package/dist/types/src/MarkdownPlugin.d.ts +2 -1
  80. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  81. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
  82. package/dist/types/src/blueprints/functions/create.test.d.ts.map +1 -0
  83. package/dist/types/src/blueprints/functions/index.d.ts +4 -0
  84. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  85. package/dist/types/src/blueprints/functions/open.d.ts.map +1 -0
  86. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
  87. package/dist/types/src/blueprints/functions/update.test.d.ts.map +1 -0
  88. package/dist/types/src/blueprints/index.d.ts +2 -0
  89. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  90. package/dist/types/src/blueprints/markdown-blueprint.d.ts +21 -0
  91. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -0
  92. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +5 -0
  93. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +1 -0
  94. package/dist/types/src/capabilities/anchor-sort/index.d.ts +3 -0
  95. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +1 -0
  96. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +5 -0
  97. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -0
  98. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +3 -0
  99. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -0
  100. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +5 -0
  101. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  102. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  103. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  104. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +10 -0
  105. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  106. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  107. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  108. package/dist/types/src/capabilities/index.d.ts +6 -13
  109. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  111. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  112. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  113. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  114. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  115. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  117. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/settings/index.d.ts +3 -0
  119. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/settings/settings.d.ts +6 -0
  121. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/state/index.d.ts +3 -0
  123. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  124. package/dist/types/src/capabilities/state/state.d.ts +5 -0
  125. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  126. package/dist/types/src/cli/index.d.ts +2 -0
  127. package/dist/types/src/cli/index.d.ts.map +1 -0
  128. package/dist/types/src/cli/plugin.d.ts +3 -0
  129. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  130. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +4 -3
  131. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  132. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +5 -5
  133. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
  134. package/dist/types/src/components/MarkdownContainer.d.ts +19 -5
  135. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  136. package/dist/types/src/components/MarkdownContainer.stories.d.ts +1 -0
  137. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  138. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +2 -2
  139. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
  140. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +8 -7
  141. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  142. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  143. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +12 -8
  144. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  145. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +4 -4
  146. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  147. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +4 -2
  148. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  149. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  150. package/dist/types/src/components/index.d.ts +5 -2
  151. package/dist/types/src/components/index.d.ts.map +1 -1
  152. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
  153. package/dist/types/src/hooks/useExtensions.d.ts +3 -3
  154. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  155. package/dist/types/src/hooks/useLinkQuery.d.ts +2 -2
  156. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  157. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
  158. package/dist/types/src/index.d.ts +1 -2
  159. package/dist/types/src/index.d.ts.map +1 -1
  160. package/dist/types/src/meta.d.ts +2 -2
  161. package/dist/types/src/meta.d.ts.map +1 -1
  162. package/dist/types/src/testing.d.ts +2 -2
  163. package/dist/types/src/testing.d.ts.map +1 -1
  164. package/dist/types/src/translations.d.ts +1 -0
  165. package/dist/types/src/translations.d.ts.map +1 -1
  166. package/dist/types/src/types/Markdown.d.ts +15 -15
  167. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  168. package/dist/types/src/types/MarkdownAction.d.ts +63 -31
  169. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -1
  170. package/dist/types/src/types/capabilities.d.ts +22 -0
  171. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  172. package/dist/types/src/types/events.d.ts +5 -0
  173. package/dist/types/src/types/events.d.ts.map +1 -0
  174. package/dist/types/src/types/index.d.ts +3 -0
  175. package/dist/types/src/types/index.d.ts.map +1 -1
  176. package/dist/types/src/types/types.d.ts +2 -2
  177. package/dist/types/src/types/types.d.ts.map +1 -1
  178. package/dist/types/src/util.d.ts +3 -0
  179. package/dist/types/src/util.d.ts.map +1 -1
  180. package/dist/types/src/util.test.d.ts +2 -0
  181. package/dist/types/src/util.test.d.ts.map +1 -0
  182. package/dist/types/tsconfig.tsbuildinfo +1 -1
  183. package/package.json +82 -67
  184. package/src/MarkdownPlugin.tsx +60 -89
  185. package/src/blueprints/functions/create.conversations.json +1 -0
  186. package/src/{functions → blueprints/functions}/create.test.ts +22 -25
  187. package/src/{functions → blueprints/functions}/create.ts +1 -1
  188. package/src/blueprints/functions/index.ts +7 -0
  189. package/src/{functions → blueprints/functions}/open.ts +4 -3
  190. package/src/blueprints/functions/update.conversations.json +1 -0
  191. package/src/{functions → blueprints/functions}/update.test.ts +25 -27
  192. package/src/{functions → blueprints/functions}/update.ts +4 -3
  193. package/src/blueprints/index.ts +5 -0
  194. package/src/blueprints/markdown-blueprint.ts +38 -0
  195. package/src/capabilities/anchor-sort/anchor-sort.ts +36 -0
  196. package/src/capabilities/anchor-sort/index.ts +7 -0
  197. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +59 -0
  198. package/src/capabilities/app-graph-serializer/index.ts +7 -0
  199. package/src/capabilities/artifact-definition/artifact-definition.ts +110 -0
  200. package/src/capabilities/artifact-definition/index.ts +7 -0
  201. package/src/capabilities/blueprint-definition/blueprint-definition.ts +25 -0
  202. package/src/capabilities/blueprint-definition/index.ts +7 -0
  203. package/src/capabilities/index.ts +6 -11
  204. package/src/capabilities/operation-resolver/index.ts +7 -0
  205. package/src/capabilities/operation-resolver/operation-resolver.ts +45 -0
  206. package/src/capabilities/react-surface/index.ts +7 -0
  207. package/src/capabilities/react-surface/react-surface.tsx +100 -0
  208. package/src/capabilities/settings/index.ts +7 -0
  209. package/src/capabilities/settings/settings.ts +36 -0
  210. package/src/capabilities/state/index.ts +7 -0
  211. package/src/capabilities/state/state.ts +31 -0
  212. package/src/cli/index.ts +5 -0
  213. package/src/cli/plugin.ts +29 -0
  214. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +25 -43
  215. package/src/components/MarkdownCard/MarkdownCard.tsx +17 -44
  216. package/src/components/MarkdownContainer.stories.tsx +47 -60
  217. package/src/components/MarkdownContainer.tsx +86 -88
  218. package/src/components/MarkdownEditor/FileUpload.tsx +3 -3
  219. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +16 -17
  220. package/src/components/MarkdownEditor/MarkdownEditor.tsx +14 -15
  221. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +44 -18
  222. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +7 -4
  223. package/src/components/MarkdownSettings/MarkdownSettings.tsx +24 -10
  224. package/src/components/Suggestions.stories.tsx +23 -33
  225. package/src/components/index.ts +8 -3
  226. package/src/hooks/useEditorMenuOptions.ts +10 -13
  227. package/src/hooks/useExtensions.tsx +25 -30
  228. package/src/hooks/useLinkQuery.ts +19 -19
  229. package/src/hooks/useSelectCurrentThread.tsx +37 -42
  230. package/src/index.ts +1 -2
  231. package/src/meta.ts +2 -2
  232. package/src/testing.ts +5 -5
  233. package/src/translations.ts +1 -0
  234. package/src/types/Markdown.ts +6 -7
  235. package/src/types/MarkdownAction.ts +48 -18
  236. package/src/types/capabilities.ts +38 -0
  237. package/src/types/events.ts +13 -0
  238. package/src/types/index.ts +3 -0
  239. package/src/types/types.ts +3 -2
  240. package/src/util.test.ts +44 -0
  241. package/src/util.tsx +75 -5
  242. package/dist/lib/browser/MarkdownCard-JYMDPKV5.mjs +0 -12
  243. package/dist/lib/browser/MarkdownContainer-Y75XSVBX.mjs +0 -15
  244. package/dist/lib/browser/anchor-sort-3HGPGCOO.mjs.map +0 -7
  245. package/dist/lib/browser/app-graph-serializer-POZN234F.mjs +0 -51
  246. package/dist/lib/browser/app-graph-serializer-POZN234F.mjs.map +0 -7
  247. package/dist/lib/browser/blueprint-definition-GIPKFDY5.mjs +0 -13
  248. package/dist/lib/browser/chunk-22XSSNBS.mjs.map +0 -7
  249. package/dist/lib/browser/chunk-2MLGSYRN.mjs +0 -20
  250. package/dist/lib/browser/chunk-2MLGSYRN.mjs.map +0 -7
  251. package/dist/lib/browser/chunk-BQTYJOFB.mjs +0 -28
  252. package/dist/lib/browser/chunk-BQTYJOFB.mjs.map +0 -7
  253. package/dist/lib/browser/chunk-GH6GQSBL.mjs +0 -51
  254. package/dist/lib/browser/chunk-GH6GQSBL.mjs.map +0 -7
  255. package/dist/lib/browser/chunk-IBCHVMZW.mjs +0 -16
  256. package/dist/lib/browser/chunk-IBCHVMZW.mjs.map +0 -7
  257. package/dist/lib/browser/chunk-K3LXOU3E.mjs +0 -827
  258. package/dist/lib/browser/chunk-K3LXOU3E.mjs.map +0 -7
  259. package/dist/lib/browser/chunk-PBJLFIOX.mjs +0 -96
  260. package/dist/lib/browser/chunk-PBJLFIOX.mjs.map +0 -7
  261. package/dist/lib/browser/chunk-QYSEJ5GP.mjs +0 -79
  262. package/dist/lib/browser/chunk-QYSEJ5GP.mjs.map +0 -7
  263. package/dist/lib/browser/chunk-Y53FQREH.mjs.map +0 -7
  264. package/dist/lib/browser/intent-resolver-Z5L7TXUK.mjs +0 -62
  265. package/dist/lib/browser/intent-resolver-Z5L7TXUK.mjs.map +0 -7
  266. package/dist/lib/browser/react-surface-GO5ZOKNN.mjs +0 -211
  267. package/dist/lib/browser/react-surface-GO5ZOKNN.mjs.map +0 -7
  268. package/dist/lib/browser/settings-TZUDB5EW.mjs +0 -28
  269. package/dist/lib/browser/settings-TZUDB5EW.mjs.map +0 -7
  270. package/dist/lib/browser/state-BTUKVZHY.mjs +0 -37
  271. package/dist/lib/browser/state-BTUKVZHY.mjs.map +0 -7
  272. package/dist/lib/browser/toolkit.mjs +0 -13
  273. package/dist/lib/node-esm/MarkdownContainer-YRDSRDCS.mjs +0 -16
  274. package/dist/lib/node-esm/anchor-sort-PCDXEBJ2.mjs.map +0 -7
  275. package/dist/lib/node-esm/app-graph-serializer-NF65JYAS.mjs +0 -52
  276. package/dist/lib/node-esm/app-graph-serializer-NF65JYAS.mjs.map +0 -7
  277. package/dist/lib/node-esm/blueprint-definition-ENKJZYQS.mjs +0 -14
  278. package/dist/lib/node-esm/blueprint-definition-ENKJZYQS.mjs.map +0 -7
  279. package/dist/lib/node-esm/chunk-AMHACOXW.mjs.map +0 -7
  280. package/dist/lib/node-esm/chunk-CT7CFX5G.mjs +0 -828
  281. package/dist/lib/node-esm/chunk-CT7CFX5G.mjs.map +0 -7
  282. package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs +0 -17
  283. package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs.map +0 -7
  284. package/dist/lib/node-esm/chunk-HAIEWPU7.mjs.map +0 -7
  285. package/dist/lib/node-esm/chunk-KCHUTL3Q.mjs +0 -22
  286. package/dist/lib/node-esm/chunk-KCHUTL3Q.mjs.map +0 -7
  287. package/dist/lib/node-esm/chunk-NGYJNQ6A.mjs +0 -80
  288. package/dist/lib/node-esm/chunk-NGYJNQ6A.mjs.map +0 -7
  289. package/dist/lib/node-esm/chunk-PIOOG7A5.mjs +0 -97
  290. package/dist/lib/node-esm/chunk-PIOOG7A5.mjs.map +0 -7
  291. package/dist/lib/node-esm/chunk-PLZ7EVCT.mjs.map +0 -7
  292. package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs +0 -29
  293. package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs.map +0 -7
  294. package/dist/lib/node-esm/intent-resolver-6B3PFQ5F.mjs +0 -63
  295. package/dist/lib/node-esm/intent-resolver-6B3PFQ5F.mjs.map +0 -7
  296. package/dist/lib/node-esm/react-surface-I46BPCWT.mjs +0 -212
  297. package/dist/lib/node-esm/react-surface-I46BPCWT.mjs.map +0 -7
  298. package/dist/lib/node-esm/settings-CJ3T5EX4.mjs +0 -29
  299. package/dist/lib/node-esm/settings-CJ3T5EX4.mjs.map +0 -7
  300. package/dist/lib/node-esm/state-K6EH7SRZ.mjs +0 -38
  301. package/dist/lib/node-esm/state-K6EH7SRZ.mjs.map +0 -7
  302. package/dist/lib/node-esm/toolkit.mjs +0 -14
  303. package/dist/lib/node-esm/toolkit.mjs.map +0 -7
  304. package/dist/types/src/capabilities/anchor-sort.d.ts +0 -4
  305. package/dist/types/src/capabilities/anchor-sort.d.ts.map +0 -1
  306. package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -4
  307. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
  308. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -3
  309. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  310. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -7
  311. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  312. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  313. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  314. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  315. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  316. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  317. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  318. package/dist/types/src/capabilities/settings.d.ts +0 -4
  319. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  320. package/dist/types/src/capabilities/state.d.ts +0 -11
  321. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  322. package/dist/types/src/events.d.ts +0 -4
  323. package/dist/types/src/events.d.ts.map +0 -1
  324. package/dist/types/src/functions/create.d.ts.map +0 -1
  325. package/dist/types/src/functions/create.test.d.ts.map +0 -1
  326. package/dist/types/src/functions/index.d.ts +0 -18
  327. package/dist/types/src/functions/index.d.ts.map +0 -1
  328. package/dist/types/src/functions/open.d.ts.map +0 -1
  329. package/dist/types/src/functions/update.d.ts.map +0 -1
  330. package/dist/types/src/functions/update.test.d.ts.map +0 -1
  331. package/dist/types/src/toolkit.d.ts +0 -3
  332. package/dist/types/src/toolkit.d.ts.map +0 -1
  333. package/src/capabilities/anchor-sort.ts +0 -30
  334. package/src/capabilities/app-graph-serializer.ts +0 -54
  335. package/src/capabilities/artifact-definition.ts +0 -112
  336. package/src/capabilities/blueprint-definition.ts +0 -43
  337. package/src/capabilities/capabilities.ts +0 -22
  338. package/src/capabilities/intent-resolver.ts +0 -58
  339. package/src/capabilities/react-surface.tsx +0 -93
  340. package/src/capabilities/settings.ts +0 -25
  341. package/src/capabilities/state.ts +0 -31
  342. package/src/events.ts +0 -11
  343. package/src/functions/create.conversations.json +0 -1
  344. package/src/functions/index.ts +0 -13
  345. package/src/functions/update.conversations.json +0 -1
  346. package/src/toolkit.ts +0 -6
  347. /package/dist/lib/browser/{MarkdownCard-JYMDPKV5.mjs.map → MarkdownCard-HFNNE4B4.mjs.map} +0 -0
  348. /package/dist/lib/browser/{MarkdownContainer-Y75XSVBX.mjs.map → MarkdownContainer-V7EAADMF.mjs.map} +0 -0
  349. /package/dist/lib/browser/{blueprint-definition-GIPKFDY5.mjs.map → blueprints/index.mjs.map} +0 -0
  350. /package/dist/lib/{browser/toolkit.mjs.map → node-esm/MarkdownCard-GMNXUWWR.mjs.map} +0 -0
  351. /package/dist/lib/node-esm/{MarkdownCard-ZXPJLUYO.mjs.map → MarkdownContainer-LUSMORP2.mjs.map} +0 -0
  352. /package/dist/lib/node-esm/{MarkdownContainer-YRDSRDCS.mjs.map → blueprints/index.mjs.map} +0 -0
  353. /package/dist/types/src/{functions → blueprints/functions}/create.d.ts +0 -0
  354. /package/dist/types/src/{functions → blueprints/functions}/create.test.d.ts +0 -0
  355. /package/dist/types/src/{functions → blueprints/functions}/open.d.ts +0 -0
  356. /package/dist/types/src/{functions → blueprints/functions}/update.d.ts +0 -0
  357. /package/dist/types/src/{functions → blueprints/functions}/update.test.d.ts +0 -0
@@ -1,828 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- MarkdownCapabilities
4
- } from "./chunk-GMMVSXQ6.mjs";
5
- import {
6
- setFallbackName
7
- } from "./chunk-PLZ7EVCT.mjs";
8
- import {
9
- Markdown_exports
10
- } from "./chunk-NGYJNQ6A.mjs";
11
- import {
12
- meta
13
- } from "./chunk-SHAMSMKQ.mjs";
14
-
15
- // src/components/MarkdownContainer.tsx
16
- import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
17
- import { Atom } from "@effect-atom/atom-react";
18
- import React6, { useMemo as useMemo7 } from "react";
19
- import { Capabilities as Capabilities2 } from "@dxos/app-framework";
20
- import { useAppGraph, useCapabilities as useCapabilities2 } from "@dxos/app-framework/react";
21
- import { Obj as Obj3 } from "@dxos/echo";
22
- import { getSpace as getSpace2 } from "@dxos/react-client/echo";
23
- import { StackItem } from "@dxos/react-ui-stack";
24
- import { Text as Text2 } from "@dxos/schema";
25
-
26
- // src/hooks/useEditorMenuOptions.ts
27
- import { useCallback, useMemo, useRef } from "react";
28
- import { Domino, toLocalizedString, useTranslation } from "@dxos/react-ui";
29
- import { filterMenuGroups, formattingCommands, linkSlashCommands } from "@dxos/react-ui-editor";
30
- var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) => {
31
- const { t } = useTranslation(meta.id);
32
- const getMenu = useCallback(({ text, trigger }) => {
33
- switch (trigger) {
34
- case "@": {
35
- return onLinkQuery?.(text) ?? [];
36
- }
37
- case "/":
38
- default: {
39
- return filterMenuGroups([
40
- formattingCommands,
41
- linkSlashCommands,
42
- ...slashCommandGroups ?? []
43
- ], (item) => text ? toLocalizedString(item.label, t).toLowerCase().includes(text.toLowerCase()) : true);
44
- }
45
- }
46
- }, [
47
- slashCommandGroups,
48
- onLinkQuery
49
- ]);
50
- const viewRef = useRef(editorView);
51
- return useMemo(() => {
52
- const trigger = onLinkQuery ? [
53
- "/",
54
- "@"
55
- ] : [
56
- "/"
57
- ];
58
- const placeholder = {
59
- delay: 3e3,
60
- content: () => Domino.of("div").children(Domino.of("span").text("Press"), ...trigger.map((text) => Domino.of("span").classNames("mx-1 pli-1.5 pt-[1px] pb-[2px] border border-separator rounded-sm").text(text)), Domino.of("span").text("for commands.")).build()
61
- };
62
- return {
63
- viewRef,
64
- getMenu,
65
- trigger,
66
- placeholder
67
- };
68
- }, [
69
- getMenu,
70
- onLinkQuery
71
- ]);
72
- };
73
-
74
- // src/hooks/useExtensions.tsx
75
- import React, { useMemo as useMemo2 } from "react";
76
- import { createRoot } from "react-dom/client";
77
- import { LayoutAction, createIntent } from "@dxos/app-framework";
78
- import { useIntentDispatcher } from "@dxos/app-framework/react";
79
- import { debounceAndThrottle } from "@dxos/async";
80
- import { Obj } from "@dxos/echo";
81
- import { invariant } from "@dxos/invariant";
82
- import { createDocAccessor } from "@dxos/react-client/echo";
83
- import { getSpace } from "@dxos/react-client/echo";
84
- import { useIdentity } from "@dxos/react-client/halo";
85
- import { Icon, ThemeProvider } from "@dxos/react-ui";
86
- import { Cursor, EditorView, InputModeExtensions, createDataExtensions, decorateMarkdown, documentId, folding, formattingKeymap, linkTooltip, listener, preview, replacer, selectionState, typewriter } from "@dxos/react-ui-editor";
87
- import { defaultTx } from "@dxos/react-ui-theme";
88
- import { Text } from "@dxos/schema";
89
- import { isTruthy } from "@dxos/util";
90
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useExtensions.tsx";
91
- var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
92
- const { dispatchPromise: dispatch } = useIntentDispatcher();
93
- const identity = useIdentity();
94
- const space = getSpace(object);
95
- let target;
96
- if (Obj.instanceOf(Markdown_exports.Document, object)) {
97
- target = object.content.target;
98
- } else if (Obj.instanceOf(Text.Text, object)) {
99
- target = object;
100
- }
101
- const baseExtensions = useMemo2(() => createBaseExtensions({
102
- id,
103
- object,
104
- settings,
105
- selectionManager,
106
- viewMode,
107
- previewOptions,
108
- dispatch
109
- }), [
110
- id,
111
- object,
112
- viewMode,
113
- dispatch,
114
- previewOptions,
115
- settings,
116
- settings?.debug,
117
- settings?.editorInputMode,
118
- settings?.folding,
119
- settings?.numberedHeadings,
120
- settings?.typewriter,
121
- selectionManager
122
- ]);
123
- return useMemo2(() => [
124
- // TODO(burdon): Pass this in?
125
- // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
126
- target && createDataExtensions({
127
- id,
128
- text: createDocAccessor(target, [
129
- "content"
130
- ]),
131
- space,
132
- identity
133
- }),
134
- // TODO(burdon): Reconcile with effect in parent.
135
- Obj.instanceOf(Markdown_exports.Document, object) && listener({
136
- onChange: ({ text }) => {
137
- setFallbackName(object, text);
138
- }
139
- }),
140
- baseExtensions,
141
- selectionState(editorStateStore)
142
- ].filter(isTruthy), [
143
- identity,
144
- space,
145
- id,
146
- object,
147
- target,
148
- baseExtensions
149
- ]);
150
- };
151
- var createBaseExtensions = ({ id, object, dispatch, settings, selectionManager, viewMode, previewOptions }) => {
152
- const extensions = [
153
- selectionManager && selectionChange(selectionManager),
154
- settings?.editorInputMode && InputModeExtensions[settings.editorInputMode],
155
- settings?.folding && folding()
156
- ].filter(isTruthy);
157
- if (viewMode !== "source") {
158
- extensions.push(...[
159
- formattingKeymap(),
160
- decorateMarkdown({
161
- selectionChangeDelay: 100,
162
- numberedHeadings: settings?.numberedHeadings ? {
163
- from: 2
164
- } : void 0,
165
- // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
166
- // TODO(burdon): Create dx-tag.
167
- renderLinkButton: dispatch && (object || id) ? createLinkRenderer((id2) => {
168
- void dispatch(createIntent(LayoutAction.Open, {
169
- part: "main",
170
- subject: [
171
- id2
172
- ],
173
- options: {
174
- pivotId: object && Obj.isObject(object) ? Obj.getDXN(object).toString() : id2
175
- }
176
- }));
177
- }) : void 0
178
- }),
179
- linkTooltip(renderLinkTooltip),
180
- preview(previewOptions),
181
- replacer()
182
- ]);
183
- }
184
- if (settings?.debug) {
185
- const items = settings.typewriter?.split(/[,\n]/) ?? "";
186
- if (items) {
187
- extensions.push(typewriter({
188
- items
189
- }));
190
- }
191
- }
192
- return extensions;
193
- };
194
- var selectionChange = (selectionManager) => {
195
- return EditorView.updateListener.of(debounceAndThrottle((update) => {
196
- if (update.selectionSet) {
197
- const id = update.state.facet(documentId);
198
- const cursorConverter = update.state.facet(Cursor.converter);
199
- const selection = update.state.selection;
200
- const ranges = selection.ranges.map((range) => ({
201
- from: cursorConverter.toCursor(range.from),
202
- to: cursorConverter.toCursor(range.to)
203
- })).filter(({ from, to }) => to > from);
204
- selectionManager.updateMultiRange(id, ranges);
205
- }
206
- }, 100));
207
- };
208
- var style = {
209
- hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
210
- icon: "inline-block leading-none mis-1 cursor-pointer"
211
- };
212
- var createLinkRenderer = (onSelectObject) => (el, { url }) => {
213
- const isInternal = url.startsWith("/") || // TODO(wittjosiah): This should probably be parsed out on paste?
214
- url.startsWith(window.location.origin);
215
- const options = isInternal ? {
216
- onClick: () => {
217
- const qualifiedId = url.split("/").at(-1);
218
- invariant(qualifiedId, "Invalid link format.", {
219
- F: __dxlog_file,
220
- L: 242,
221
- S: void 0,
222
- A: [
223
- "qualifiedId",
224
- "'Invalid link format.'"
225
- ]
226
- });
227
- onSelectObject(qualifiedId);
228
- }
229
- } : {
230
- href: url,
231
- rel: "noreferrer",
232
- target: "_blank"
233
- };
234
- renderRoot(el, /* @__PURE__ */ React.createElement("a", {
235
- ...options,
236
- className: style.hover
237
- }, /* @__PURE__ */ React.createElement(Icon, {
238
- icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
239
- size: 4,
240
- classNames: style.icon
241
- })));
242
- };
243
- var renderLinkTooltip = (el, { url }) => {
244
- const web = new URL(url);
245
- renderRoot(el, /* @__PURE__ */ React.createElement("a", {
246
- href: url,
247
- rel: "noreferrer",
248
- target: "_blank",
249
- className: style.hover
250
- }, web.origin, /* @__PURE__ */ React.createElement(Icon, {
251
- icon: "ph--arrow-square-out--bold",
252
- size: 4,
253
- classNames: style.icon
254
- })));
255
- };
256
- var renderRoot = (root, node) => {
257
- createRoot(root).render(/* @__PURE__ */ React.createElement(ThemeProvider, {
258
- tx: defaultTx
259
- }, node));
260
- return root;
261
- };
262
-
263
- // src/hooks/useLinkQuery.ts
264
- import { useCallback as useCallback2, useMemo as useMemo3 } from "react";
265
- import { Capabilities } from "@dxos/app-framework";
266
- import { useCapabilities, usePluginManager } from "@dxos/app-framework/react";
267
- import { Filter, Obj as Obj2, Query, Type } from "@dxos/echo";
268
- import { ClientCapabilities } from "@dxos/plugin-client";
269
- import { SpaceCapabilities } from "@dxos/plugin-space";
270
- import { toLocalizedString as toLocalizedString2, useTranslation as useTranslation2 } from "@dxos/react-ui";
271
- import { insertAtCursor, insertAtLineStart } from "@dxos/react-ui-editor";
272
- var useLinkQuery = (space) => {
273
- const { t } = useTranslation2();
274
- const manager = usePluginManager();
275
- const resolve = useCallback2((typename) => manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {}, [
276
- manager
277
- ]);
278
- const objectForms = useCapabilities(SpaceCapabilities.ObjectForm);
279
- const schemaWhiteList = useCapabilities(ClientCapabilities.SchemaWhiteList);
280
- const filter = useMemo3(() => Filter.or(...objectForms.map((form) => Filter.type(form.objectSchema)), ...schemaWhiteList.flat().map((schema) => Filter.typename(Type.getTypename(schema)))), [
281
- objectForms,
282
- schemaWhiteList
283
- ]);
284
- const handleLinkQuery = useCallback2(async (query) => {
285
- const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
286
- const results = await space?.db.query(Query.select(filter)).run();
287
- const getLabel = (object) => {
288
- const label = Obj2.getLabel(object);
289
- if (label) {
290
- return label;
291
- }
292
- const type = Obj2.getTypename(object);
293
- const metadata = resolve(type);
294
- return metadata.label?.(object) || [
295
- "object name placeholder",
296
- {
297
- ns: type,
298
- default: "New object"
299
- }
300
- ];
301
- };
302
- const items = results?.objects.filter((object) => toLocalizedString2(getLabel(object), t).toLowerCase().includes(name)).map((object) => {
303
- const metadata = resolve(Obj2.getTypename(object));
304
- const label = toLocalizedString2(getLabel(object), t);
305
- return {
306
- id: object.id,
307
- label,
308
- icon: metadata.icon,
309
- onSelect: ({ view, head }) => {
310
- const link = `[${label}](${Obj2.getDXN(object)})`;
311
- if (query?.startsWith("@")) {
312
- insertAtLineStart(view, head, `!${link}
313
- `);
314
- } else {
315
- insertAtCursor(view, head, `${link} `);
316
- }
317
- }
318
- };
319
- }) ?? [];
320
- return [
321
- {
322
- id: "echo",
323
- items
324
- }
325
- ];
326
- }, [
327
- space,
328
- filter,
329
- resolve
330
- ]);
331
- return handleLinkQuery;
332
- };
333
-
334
- // src/hooks/useSelectCurrentThread.tsx
335
- import { EditorView as EditorView2 } from "@codemirror/view";
336
- import * as Schema from "effect/Schema";
337
- import { useMemo as useMemo4 } from "react";
338
- import { LayoutAction as LayoutAction2, createResolver } from "@dxos/app-framework";
339
- import { useIntentResolver } from "@dxos/app-framework/react";
340
- import { invariant as invariant2 } from "@dxos/invariant";
341
- import { Cursor as Cursor2, setSelection } from "@dxos/react-ui-editor";
342
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
343
- var useSelectCurrentThread = (editorView, documentId2) => {
344
- const scrollIntoViewResolver = useMemo4(() => createResolver({
345
- intent: LayoutAction2.UpdateLayout,
346
- position: "hoist",
347
- filter: (data) => {
348
- if (!Schema.is(LayoutAction2.ScrollIntoView.fields.input)(data)) {
349
- return false;
350
- }
351
- return !!editorView && data.subject === documentId2 && !!data.options?.cursor;
352
- },
353
- resolve: ({ options: { cursor } }) => {
354
- invariant2(editorView, "Editor view is not defined.", {
355
- F: __dxlog_file2,
356
- L: 39,
357
- S: void 0,
358
- A: [
359
- "editorView",
360
- "'Editor view is not defined.'"
361
- ]
362
- });
363
- const range = Cursor2.getRangeFromCursor(editorView.state, cursor);
364
- if (range) {
365
- const selection = editorView.state.selection.main.from !== range.from ? {
366
- anchor: range.from
367
- } : void 0;
368
- const effects = [
369
- // NOTE: This does not use the DOM scrollIntoView function.
370
- EditorView2.scrollIntoView(range.from, {
371
- y: "start",
372
- yMargin: 96
373
- })
374
- ];
375
- if (selection) {
376
- effects.push(setSelection.of({
377
- current: documentId2
378
- }));
379
- }
380
- editorView.dispatch({
381
- effects,
382
- selection: selection ? {
383
- anchor: range.from
384
- } : void 0
385
- });
386
- }
387
- }
388
- }), [
389
- documentId2,
390
- editorView
391
- ]);
392
- useIntentResolver(meta.id, scrollIntoViewResolver);
393
- };
394
-
395
- // src/components/MarkdownEditor/MarkdownEditor.tsx
396
- import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
397
- import { createContext } from "@radix-ui/react-context";
398
- import React5, { useMemo as useMemo6, useState as useState2 } from "react";
399
- import { createPortal as createPortal2 } from "react-dom";
400
- import { Surface } from "@dxos/app-framework/react";
401
- import { DXN } from "@dxos/keys";
402
- import { useClient } from "@dxos/react-client";
403
- import { EditorMenuProvider, useEditorMenu, useEditorToolbar } from "@dxos/react-ui-editor";
404
- import { isNonNullable } from "@dxos/util";
405
-
406
- // src/components/MarkdownEditor/MarkdownEditorContent.tsx
407
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
408
- import React2, { forwardRef, useEffect, useImperativeHandle, useMemo as useMemo5 } from "react";
409
- import { useDynamicRef, useThemeContext, useTranslation as useTranslation3 } from "@dxos/react-ui";
410
- import { createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorGutter, editorSlots, formattingListener, processEditorPayload, stackItemContentEditorClassNames, useTextEditor } from "@dxos/react-ui-editor";
411
- import { isTruthy as isTruthy2 } from "@dxos/util";
412
- var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ id, role, initialValue, editorStateStore, toolbarState, extensions, viewMode, scrollPastEnd, onFileUpload }, forwardedRef) => {
413
- var _effect = _useSignals();
414
- try {
415
- const { t } = useTranslation3(meta.id);
416
- const { themeMode } = useThemeContext();
417
- const toolbarStateRef = useDynamicRef(toolbarState);
418
- const { scrollTo, selection } = useMemo5(() => editorStateStore?.getState(id) ?? {}, [
419
- id
420
- ]);
421
- const { parentRef, view: editorView, focusAttributes } = useTextEditor(() => ({
422
- ...role !== "section" && {
423
- id,
424
- scrollTo,
425
- selection,
426
- // TODO(wittjosiah): Autofocus based on layout is racy.
427
- // autoFocus: layoutPlugin?.provides.layout ? layoutPlugin?.provides.layout.scrollIntoView === id : true,
428
- selectionEnd: true
429
- },
430
- initialValue,
431
- extensions: [
432
- createBasicExtensions({
433
- readOnly: viewMode === "readonly",
434
- placeholder: t("editor placeholder"),
435
- scrollPastEnd: scrollPastEnd && role !== "section",
436
- search: true
437
- }),
438
- createThemeExtensions({
439
- themeMode,
440
- slots: editorSlots,
441
- syntaxHighlighting: true
442
- }),
443
- createMarkdownExtensions(),
444
- formattingListener(() => toolbarStateRef.current),
445
- editorGutter,
446
- role !== "section" && onFileUpload && dropFile({
447
- // TODO(wittjosiah): Factor out to file uploader plugin.
448
- onDrop: async (view, { files }) => {
449
- const file = files[0];
450
- const info = file && onFileUpload ? await onFileUpload(file) : void 0;
451
- if (info) {
452
- processEditorPayload(view, {
453
- type: "image",
454
- data: info.url
455
- });
456
- }
457
- }
458
- }),
459
- extensions
460
- ].filter(isTruthy2)
461
- }), [
462
- id,
463
- viewMode,
464
- themeMode,
465
- extensions
466
- ]);
467
- useImperativeHandle(forwardedRef, () => editorView, [
468
- editorView
469
- ]);
470
- useSelectCurrentThread(editorView, id);
471
- useTest(editorView);
472
- return /* @__PURE__ */ React2.createElement("div", {
473
- role: "none",
474
- ref: parentRef,
475
- "data-testid": "composer.markdownRoot",
476
- className: stackItemContentEditorClassNames(role),
477
- "data-popover-collision-boundary": true,
478
- ...focusAttributes
479
- });
480
- } finally {
481
- _effect.f();
482
- }
483
- });
484
- var useTest = (view) => {
485
- useEffect(() => {
486
- const composer = window.composer;
487
- if (composer) {
488
- composer.editorView = view;
489
- }
490
- }, [
491
- view
492
- ]);
493
- };
494
-
495
- // src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
496
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
497
- import React4, { useCallback as useCallback3, useState } from "react";
498
- import { invariant as invariant3 } from "@dxos/invariant";
499
- import { EditorToolbar } from "@dxos/react-ui-editor";
500
-
501
- // src/components/MarkdownEditor/FileUpload.tsx
502
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
503
- import React3, { forwardRef as forwardRef2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle2 } from "react";
504
- import { createPortal } from "react-dom";
505
- import { useDropzone } from "react-dropzone";
506
- import { addLink } from "@dxos/react-ui-editor";
507
- var IMAGE_FILES = [
508
- ".jpg",
509
- ".jpeg",
510
- ".png",
511
- ".gif"
512
- ];
513
- var FileUpload = /* @__PURE__ */ forwardRef2(({ editorView, onFileUpload }, forwardedRef) => {
514
- var _effect = _useSignals2();
515
- try {
516
- const { acceptedFiles, open, inputRef } = useDropzone({
517
- disabled: !onFileUpload,
518
- multiple: false,
519
- noDrag: true,
520
- accept: {
521
- "image/*": IMAGE_FILES
522
- }
523
- });
524
- useImperativeHandle2(forwardedRef, () => open, []);
525
- useEffect2(() => {
526
- if (editorView && acceptedFiles.length && onFileUpload) {
527
- requestAnimationFrame(async () => {
528
- const f = acceptedFiles[0];
529
- const file = new File([
530
- f
531
- ], f.name, {
532
- type: f.type,
533
- lastModified: f.lastModified
534
- });
535
- const info = await onFileUpload(file);
536
- if (info) {
537
- addLink({
538
- url: info.url,
539
- image: true
540
- })(editorView);
541
- }
542
- });
543
- }
544
- }, [
545
- editorView,
546
- acceptedFiles,
547
- onFileUpload
548
- ]);
549
- if (!onFileUpload) {
550
- return null;
551
- }
552
- return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ createPortal(/* @__PURE__ */ React3.createElement("input", {
553
- ref: inputRef
554
- }), document.body), " ");
555
- } finally {
556
- _effect.f();
557
- }
558
- });
559
-
560
- // src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
561
- var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx";
562
- var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customActions, onFileUpload, onViewModeChange }) => {
563
- var _effect = _useSignals3();
564
- try {
565
- const [upload, setUpload] = useState(null);
566
- const uploadRef = useCallback3((next) => setUpload(() => next), []);
567
- const handleViewModeChange = useCallback3((mode) => onViewModeChange?.(mode), [
568
- onViewModeChange
569
- ]);
570
- const getView = useCallback3(() => {
571
- invariant3(editorView, void 0, {
572
- F: __dxlog_file3,
573
- L: 39,
574
- S: void 0,
575
- A: [
576
- "editorView",
577
- ""
578
- ]
579
- });
580
- return editorView;
581
- }, [
582
- editorView
583
- ]);
584
- if (!editorView) {
585
- return /* @__PURE__ */ React4.createElement("div", null);
586
- }
587
- return /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(EditorToolbar, {
588
- classNames,
589
- attendableId: id,
590
- role,
591
- state,
592
- customActions,
593
- getView,
594
- onImageUpload: upload ?? void 0,
595
- onViewModeChange: handleViewModeChange
596
- }), onFileUpload && /* @__PURE__ */ React4.createElement(FileUpload, {
597
- ref: uploadRef,
598
- editorView,
599
- onFileUpload
600
- }));
601
- } finally {
602
- _effect.f();
603
- }
604
- };
605
-
606
- // src/components/MarkdownEditor/MarkdownEditor.tsx
607
- var [MarkdownEditorContextProvider, useMarkdownEditorContext] = createContext("MarkdownEditor.Context");
608
- var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionManager, settings, viewMode, extensions: extensionsParam, slashCommandGroups, onLinkQuery, ...props }) => {
609
- var _effect = _useSignals4();
610
- try {
611
- const [editorView, setEditorView] = useState2();
612
- const [previewBlocks, setPreviewBlocks] = useState2([]);
613
- const previewOptions = useMemo6(() => ({
614
- addBlockContainer: (block) => {
615
- setPreviewBlocks((prev) => [
616
- ...prev,
617
- block
618
- ]);
619
- },
620
- removeBlockContainer: ({ link }) => {
621
- setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.ref !== link.ref));
622
- }
623
- }), []);
624
- const toolbarState = useEditorToolbar({
625
- viewMode
626
- });
627
- const menuOptions = useEditorMenuOptions({
628
- editorView,
629
- slashCommandGroups,
630
- onLinkQuery
631
- });
632
- const { extension: menuExtension, ...menuProps } = useEditorMenu(menuOptions);
633
- const coreExtensions = useExtensions({
634
- id,
635
- object,
636
- editorStateStore,
637
- previewOptions,
638
- selectionManager,
639
- settings,
640
- viewMode
641
- });
642
- const extensions = useMemo6(() => [
643
- coreExtensions,
644
- menuExtension,
645
- extensionsParam
646
- ].filter(isNonNullable), [
647
- coreExtensions,
648
- menuExtension,
649
- extensionsParam
650
- ]);
651
- return /* @__PURE__ */ React5.createElement(MarkdownEditorContextProvider, {
652
- id,
653
- editorView,
654
- setEditorView,
655
- extensions,
656
- previewBlocks,
657
- toolbarState,
658
- popoverMenu: menuProps,
659
- viewMode,
660
- ...props
661
- }, children);
662
- } finally {
663
- _effect.f();
664
- }
665
- };
666
- MarkdownEditorRoot.displayName = "MarkdownEditor.Root";
667
- var MarkdownEditorContent2 = (props) => {
668
- var _effect = _useSignals4();
669
- try {
670
- const { id, extensions, editorView, setEditorView, toolbarState, viewMode, popoverMenu: { groupsRef, ...menuProps } } = useMarkdownEditorContext(MarkdownEditorContent2.displayName);
671
- return /* @__PURE__ */ React5.createElement(EditorMenuProvider, {
672
- view: editorView,
673
- groups: groupsRef.current,
674
- ...menuProps
675
- }, /* @__PURE__ */ React5.createElement(MarkdownEditorContent, {
676
- ...props,
677
- id,
678
- extensions,
679
- toolbarState,
680
- viewMode,
681
- ref: setEditorView
682
- }));
683
- } finally {
684
- _effect.f();
685
- }
686
- };
687
- MarkdownEditorContent2.displayName = "MarkdownEditor.Content";
688
- var MarkdownEditorToolbar2 = (props) => {
689
- var _effect = _useSignals4();
690
- try {
691
- const { toolbarState, ...rootProps } = useMarkdownEditorContext(MarkdownEditorToolbar2.displayName);
692
- return /* @__PURE__ */ React5.createElement(MarkdownEditorToolbar, {
693
- ...props,
694
- ...rootProps,
695
- state: toolbarState
696
- });
697
- } finally {
698
- _effect.f();
699
- }
700
- };
701
- MarkdownEditorToolbar2.displayName = "MarkdownEditor.Toolbar";
702
- var MarkdownEditorBlocks = (_props) => {
703
- var _effect = _useSignals4();
704
- try {
705
- const { previewBlocks } = useMarkdownEditorContext(MarkdownEditorBlocks.displayName);
706
- return /* @__PURE__ */ React5.createElement(React5.Fragment, null, previewBlocks.map(({ link, el }) => /* @__PURE__ */ React5.createElement(PreviewBlock, {
707
- key: link.ref,
708
- link,
709
- el
710
- })));
711
- } finally {
712
- _effect.f();
713
- }
714
- };
715
- MarkdownEditorBlocks.displayName = "MarkdownEditor.Blocks";
716
- var PreviewBlock = ({ el, link }) => {
717
- var _effect = _useSignals4();
718
- try {
719
- const client = useClient();
720
- const dxn = DXN.parse(link.ref);
721
- const subject = client.graph.ref(dxn).target;
722
- const data = useMemo6(() => ({
723
- subject
724
- }), [
725
- subject
726
- ]);
727
- return /* @__PURE__ */ createPortal2(/* @__PURE__ */ React5.createElement(Surface, {
728
- role: "card--transclusion",
729
- data,
730
- limit: 1
731
- }), el);
732
- } finally {
733
- _effect.f();
734
- }
735
- };
736
- var MarkdownEditor = {
737
- Root: MarkdownEditorRoot,
738
- Content: MarkdownEditorContent2,
739
- Toolbar: MarkdownEditorToolbar2,
740
- Blocks: MarkdownEditorBlocks
741
- };
742
-
743
- // src/components/MarkdownContainer.tsx
744
- var MarkdownContainer = ({ id, role, object, settings, extensionProviders, ...props }) => {
745
- var _effect = _useSignals5();
746
- try {
747
- const space = getSpace2(object);
748
- const isDocument = Obj3.instanceOf(Markdown_exports.Document, object);
749
- const isText = Obj3.instanceOf(Text2.Text, object);
750
- const attendableId = isDocument ? Obj3.getDXN(object).toString() : void 0;
751
- const otherExtensionProviders = useCapabilities2(MarkdownCapabilities.Extensions);
752
- const extensions = useMemo7(() => {
753
- if (!Obj3.instanceOf(Markdown_exports.Document, object)) {
754
- return [];
755
- }
756
- return [
757
- ...otherExtensionProviders ?? [],
758
- ...extensionProviders ?? []
759
- ].flat().reduce((acc, provider) => {
760
- const extension = typeof provider === "function" ? provider({
761
- document: object
762
- }) : provider;
763
- if (extension) {
764
- acc.push(extension);
765
- }
766
- return acc;
767
- }, []);
768
- }, [
769
- extensionProviders,
770
- otherExtensionProviders,
771
- object
772
- ]);
773
- const { graph } = useAppGraph();
774
- const customActions = useMemo7(() => {
775
- return Atom.make((get) => {
776
- const actions = get(graph.actions(id));
777
- const nodes = actions.filter((action) => action.properties.disposition === "toolbar");
778
- const edges = nodes.map((node) => ({
779
- source: "root",
780
- target: node.id
781
- }));
782
- return {
783
- nodes,
784
- edges
785
- };
786
- });
787
- }, [
788
- graph
789
- ]);
790
- const [upload] = useCapabilities2(Capabilities2.FileUploader);
791
- const handleFileUpload = useMemo7(() => {
792
- if (!space || !upload) {
793
- return void 0;
794
- }
795
- return async (file) => upload(space, file);
796
- }, [
797
- space,
798
- upload
799
- ]);
800
- const handleLinkQuery = useLinkQuery(space);
801
- return /* @__PURE__ */ React6.createElement(StackItem.Content, {
802
- toolbar: settings.toolbar
803
- }, /* @__PURE__ */ React6.createElement(MarkdownEditor.Root, {
804
- id: attendableId ?? id,
805
- object,
806
- extensions,
807
- onFileUpload: handleFileUpload,
808
- onLinkQuery: handleLinkQuery,
809
- ...props
810
- }, settings.toolbar && /* @__PURE__ */ React6.createElement(MarkdownEditor.Toolbar, {
811
- id: attendableId ?? id,
812
- role,
813
- customActions
814
- }), /* @__PURE__ */ React6.createElement(MarkdownEditor.Content, {
815
- initialValue: isDocument ? object.content?.target?.content : isText ? object.content : object.text,
816
- scrollPastEnd: role === "article"
817
- }), /* @__PURE__ */ React6.createElement(MarkdownEditor.Blocks, null)));
818
- } finally {
819
- _effect.f();
820
- }
821
- };
822
- var MarkdownContainer_default = MarkdownContainer;
823
-
824
- export {
825
- MarkdownContainer,
826
- MarkdownContainer_default
827
- };
828
- //# sourceMappingURL=chunk-CT7CFX5G.mjs.map