@dxos/plugin-markdown 0.8.4-main.67995b8 → 0.8.4-main.72ec0f3

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 (265) hide show
  1. package/dist/lib/browser/MarkdownCard-JYMDPKV5.mjs +12 -0
  2. package/dist/lib/browser/MarkdownCard-JYMDPKV5.mjs.map +7 -0
  3. package/dist/lib/browser/MarkdownContainer-Y75XSVBX.mjs +15 -0
  4. package/dist/lib/browser/MarkdownContainer-Y75XSVBX.mjs.map +7 -0
  5. package/dist/lib/browser/{anchor-sort-Z7JQA7RL.mjs → anchor-sort-3HGPGCOO.mjs} +6 -7
  6. package/dist/lib/browser/anchor-sort-3HGPGCOO.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-ZT5OVF5G.mjs → app-graph-serializer-POZN234F.mjs} +11 -12
  8. package/dist/lib/browser/app-graph-serializer-POZN234F.mjs.map +7 -0
  9. package/dist/lib/browser/blueprint-definition-GIPKFDY5.mjs +13 -0
  10. package/dist/lib/browser/blueprint-definition-GIPKFDY5.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-K7ZFMSC4.mjs → chunk-22XSSNBS.mjs} +8 -4
  12. package/dist/lib/browser/chunk-22XSSNBS.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-2MLGSYRN.mjs +20 -0
  14. package/dist/lib/browser/chunk-2MLGSYRN.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-ZGY3DYC2.mjs → chunk-BQTYJOFB.mjs} +5 -7
  16. package/dist/lib/browser/chunk-BQTYJOFB.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-VMX5SDGW.mjs → chunk-GH6GQSBL.mjs} +9 -8
  18. package/dist/lib/browser/chunk-GH6GQSBL.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-CD4E4K7J.mjs → chunk-IBCHVMZW.mjs} +2 -2
  20. package/dist/lib/browser/{chunk-CD4E4K7J.mjs.map → chunk-IBCHVMZW.mjs.map} +2 -2
  21. package/dist/lib/browser/chunk-K3LXOU3E.mjs +827 -0
  22. package/dist/lib/browser/chunk-K3LXOU3E.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-PBJLFIOX.mjs +96 -0
  24. package/dist/lib/browser/chunk-PBJLFIOX.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-YHMGUSO7.mjs → chunk-QYSEJ5GP.mjs} +16 -17
  26. package/dist/lib/browser/chunk-QYSEJ5GP.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-Y53FQREH.mjs +150 -0
  28. package/dist/lib/browser/chunk-Y53FQREH.mjs.map +7 -0
  29. package/dist/lib/browser/index.mjs +35 -23
  30. package/dist/lib/browser/index.mjs.map +3 -3
  31. package/dist/lib/browser/{intent-resolver-EBEF7WEI.mjs → intent-resolver-Z5L7TXUK.mjs} +21 -19
  32. package/dist/lib/browser/intent-resolver-Z5L7TXUK.mjs.map +7 -0
  33. package/dist/lib/browser/meta.json +1 -1
  34. package/dist/lib/browser/{react-surface-ZPMZT4VU.mjs → react-surface-GO5ZOKNN.mjs} +89 -86
  35. package/dist/lib/browser/react-surface-GO5ZOKNN.mjs.map +7 -0
  36. package/dist/lib/browser/{settings-MBDK4TWE.mjs → settings-TZUDB5EW.mjs} +5 -5
  37. package/dist/lib/browser/{settings-MBDK4TWE.mjs.map → settings-TZUDB5EW.mjs.map} +1 -1
  38. package/dist/lib/browser/{state-ZA6PZPUI.mjs → state-BTUKVZHY.mjs} +5 -5
  39. package/dist/lib/browser/state-BTUKVZHY.mjs.map +7 -0
  40. package/dist/lib/browser/toolkit.mjs +13 -0
  41. package/dist/lib/browser/toolkit.mjs.map +7 -0
  42. package/dist/lib/browser/types/index.mjs +2 -2
  43. package/dist/lib/node-esm/MarkdownCard-ZXPJLUYO.mjs +13 -0
  44. package/dist/lib/node-esm/MarkdownCard-ZXPJLUYO.mjs.map +7 -0
  45. package/dist/lib/node-esm/MarkdownContainer-YRDSRDCS.mjs +16 -0
  46. package/dist/lib/node-esm/MarkdownContainer-YRDSRDCS.mjs.map +7 -0
  47. package/dist/lib/node-esm/{anchor-sort-R6AAKYNG.mjs → anchor-sort-PCDXEBJ2.mjs} +6 -7
  48. package/dist/lib/node-esm/anchor-sort-PCDXEBJ2.mjs.map +7 -0
  49. package/dist/lib/node-esm/{app-graph-serializer-X4M5QEI6.mjs → app-graph-serializer-NF65JYAS.mjs} +11 -12
  50. package/dist/lib/node-esm/app-graph-serializer-NF65JYAS.mjs.map +7 -0
  51. package/dist/lib/node-esm/blueprint-definition-ENKJZYQS.mjs +14 -0
  52. package/dist/lib/node-esm/blueprint-definition-ENKJZYQS.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-YGNVDYMB.mjs → chunk-AMHACOXW.mjs} +8 -4
  54. package/dist/lib/node-esm/chunk-AMHACOXW.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-CT7CFX5G.mjs +828 -0
  56. package/dist/lib/node-esm/chunk-CT7CFX5G.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-B3J2M4YL.mjs → chunk-GMMVSXQ6.mjs} +2 -2
  58. package/dist/lib/node-esm/{chunk-B3J2M4YL.mjs.map → chunk-GMMVSXQ6.mjs.map} +2 -2
  59. package/dist/lib/node-esm/chunk-HAIEWPU7.mjs +151 -0
  60. package/dist/lib/node-esm/chunk-HAIEWPU7.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-KCHUTL3Q.mjs +22 -0
  62. package/dist/lib/node-esm/chunk-KCHUTL3Q.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-6GCOJS4Y.mjs → chunk-NGYJNQ6A.mjs} +16 -17
  64. package/dist/lib/node-esm/chunk-NGYJNQ6A.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-PIOOG7A5.mjs +97 -0
  66. package/dist/lib/node-esm/chunk-PIOOG7A5.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-LZK3TLKM.mjs → chunk-PLZ7EVCT.mjs} +9 -8
  68. package/dist/lib/node-esm/chunk-PLZ7EVCT.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-RCIXKCVG.mjs → chunk-SHAMSMKQ.mjs} +5 -7
  70. package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs.map +7 -0
  71. package/dist/lib/node-esm/index.mjs +35 -23
  72. package/dist/lib/node-esm/index.mjs.map +3 -3
  73. package/dist/lib/node-esm/{intent-resolver-L2UGZ72W.mjs → intent-resolver-6B3PFQ5F.mjs} +21 -19
  74. package/dist/lib/node-esm/intent-resolver-6B3PFQ5F.mjs.map +7 -0
  75. package/dist/lib/node-esm/meta.json +1 -1
  76. package/dist/lib/node-esm/{react-surface-3JJSTTQP.mjs → react-surface-I46BPCWT.mjs} +89 -86
  77. package/dist/lib/node-esm/react-surface-I46BPCWT.mjs.map +7 -0
  78. package/dist/lib/node-esm/{settings-LBDWWPZJ.mjs → settings-CJ3T5EX4.mjs} +5 -5
  79. package/dist/lib/node-esm/{settings-LBDWWPZJ.mjs.map → settings-CJ3T5EX4.mjs.map} +1 -1
  80. package/dist/lib/node-esm/{state-UIHO2SFZ.mjs → state-K6EH7SRZ.mjs} +5 -5
  81. package/dist/lib/node-esm/state-K6EH7SRZ.mjs.map +7 -0
  82. package/dist/lib/node-esm/toolkit.mjs +14 -0
  83. package/dist/lib/node-esm/toolkit.mjs.map +7 -0
  84. package/dist/lib/node-esm/types/index.mjs +2 -2
  85. package/dist/types/src/MarkdownPlugin.d.ts +1 -1
  86. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/anchor-sort.d.ts +2 -4
  88. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  90. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -9
  92. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/blueprint-definition.d.ts +7 -0
  94. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/capabilities.d.ts +1 -1
  96. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/index.d.ts +10 -12
  98. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  100. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  102. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/settings.d.ts +1 -1
  104. package/dist/types/src/capabilities/state.d.ts +2 -2
  105. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  106. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +7 -0
  107. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  108. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
  109. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  110. package/dist/types/src/components/MarkdownCard/index.d.ts +4 -0
  111. package/dist/types/src/components/MarkdownCard/index.d.ts.map +1 -0
  112. package/dist/types/src/components/MarkdownContainer.d.ts +8 -12
  113. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  114. package/dist/types/src/components/MarkdownContainer.stories.d.ts +54 -5
  115. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +11 -0
  117. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -0
  118. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +42 -23
  119. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  120. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +8 -15
  121. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  122. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +26 -0
  123. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -0
  124. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +12 -0
  125. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -0
  126. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  127. package/dist/types/src/components/Suggestions.stories.d.ts +1 -2
  128. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  129. package/dist/types/src/components/index.d.ts +4 -2
  130. package/dist/types/src/components/index.d.ts.map +1 -1
  131. package/dist/types/src/functions/create.d.ts +8 -0
  132. package/dist/types/src/functions/create.d.ts.map +1 -0
  133. package/dist/types/src/functions/create.test.d.ts +2 -0
  134. package/dist/types/src/functions/create.test.d.ts.map +1 -0
  135. package/dist/types/src/functions/index.d.ts +18 -0
  136. package/dist/types/src/functions/index.d.ts.map +1 -0
  137. package/dist/types/src/functions/open.d.ts +7 -0
  138. package/dist/types/src/functions/open.d.ts.map +1 -0
  139. package/dist/types/src/functions/update.d.ts +6 -0
  140. package/dist/types/src/functions/update.d.ts.map +1 -0
  141. package/dist/types/src/functions/update.test.d.ts +2 -0
  142. package/dist/types/src/functions/update.test.d.ts.map +1 -0
  143. package/dist/types/src/hooks/index.d.ts +3 -0
  144. package/dist/types/src/hooks/index.d.ts.map +1 -1
  145. package/dist/types/src/hooks/useEditorMenuOptions.d.ts +9 -0
  146. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -0
  147. package/dist/types/src/hooks/useExtensions.d.ts +21 -0
  148. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -0
  149. package/dist/types/src/hooks/useLinkQuery.d.ts +4 -0
  150. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -0
  151. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +1 -1
  152. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
  153. package/dist/types/src/index.d.ts +2 -1
  154. package/dist/types/src/index.d.ts.map +1 -1
  155. package/dist/types/src/meta.d.ts +0 -1
  156. package/dist/types/src/meta.d.ts.map +1 -1
  157. package/dist/types/src/testing.d.ts +6 -0
  158. package/dist/types/src/testing.d.ts.map +1 -0
  159. package/dist/types/src/toolkit.d.ts +3 -0
  160. package/dist/types/src/toolkit.d.ts.map +1 -0
  161. package/dist/types/src/translations.d.ts +4 -0
  162. package/dist/types/src/translations.d.ts.map +1 -1
  163. package/dist/types/src/types/Markdown.d.ts +8 -6
  164. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  165. package/dist/types/src/types/MarkdownAction.d.ts +6 -14
  166. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -1
  167. package/dist/types/src/types/index.d.ts.map +1 -1
  168. package/dist/types/src/types/types.d.ts.map +1 -1
  169. package/dist/types/src/util.d.ts +3 -3
  170. package/dist/types/src/util.d.ts.map +1 -1
  171. package/dist/types/tsconfig.tsbuildinfo +1 -1
  172. package/package.json +76 -57
  173. package/src/MarkdownPlugin.tsx +102 -95
  174. package/src/capabilities/anchor-sort.ts +3 -3
  175. package/src/capabilities/app-graph-serializer.ts +7 -7
  176. package/src/capabilities/artifact-definition.ts +17 -21
  177. package/src/capabilities/blueprint-definition.ts +43 -0
  178. package/src/capabilities/capabilities.ts +2 -1
  179. package/src/capabilities/index.ts +3 -2
  180. package/src/capabilities/intent-resolver.ts +15 -14
  181. package/src/capabilities/react-surface.tsx +46 -67
  182. package/src/capabilities/state.ts +3 -2
  183. package/src/components/{MarkdownPreview/MarkdownPreview.stories.tsx → MarkdownCard/MarkdownCard.stories.tsx} +17 -18
  184. package/src/components/MarkdownCard/MarkdownCard.tsx +89 -0
  185. package/src/components/MarkdownCard/index.ts +9 -0
  186. package/src/components/MarkdownContainer.stories.tsx +79 -43
  187. package/src/components/MarkdownContainer.tsx +79 -220
  188. package/src/components/MarkdownEditor/FileUpload.tsx +63 -0
  189. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +57 -34
  190. package/src/components/MarkdownEditor/MarkdownEditor.tsx +221 -272
  191. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +136 -0
  192. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +63 -0
  193. package/src/components/MarkdownSettings/MarkdownSettings.tsx +77 -74
  194. package/src/components/Suggestions.stories.tsx +53 -48
  195. package/src/components/index.ts +3 -1
  196. package/src/functions/create.conversations.json +1 -0
  197. package/src/functions/create.test.ts +128 -0
  198. package/src/functions/create.ts +34 -0
  199. package/src/functions/index.ts +13 -0
  200. package/src/functions/open.ts +32 -0
  201. package/src/functions/update.conversations.json +1 -0
  202. package/src/functions/update.test.ts +151 -0
  203. package/src/functions/update.ts +37 -0
  204. package/src/hooks/index.ts +3 -0
  205. package/src/hooks/useEditorMenuOptions.ts +71 -0
  206. package/src/{extensions.tsx → hooks/useExtensions.tsx} +65 -114
  207. package/src/hooks/useLinkQuery.ts +83 -0
  208. package/src/hooks/useSelectCurrentThread.tsx +15 -5
  209. package/src/index.ts +3 -1
  210. package/src/meta.ts +3 -6
  211. package/src/testing.ts +27 -0
  212. package/src/toolkit.ts +6 -0
  213. package/src/translations.ts +4 -0
  214. package/src/types/Markdown.ts +10 -7
  215. package/src/types/MarkdownAction.ts +5 -6
  216. package/src/types/index.ts +1 -0
  217. package/src/types/types.ts +1 -0
  218. package/src/util.tsx +10 -5
  219. package/dist/lib/browser/MarkdownContainer-NNBPE6A5.mjs +0 -779
  220. package/dist/lib/browser/MarkdownContainer-NNBPE6A5.mjs.map +0 -7
  221. package/dist/lib/browser/MarkdownPreview-7VG3K24R.mjs +0 -80
  222. package/dist/lib/browser/MarkdownPreview-7VG3K24R.mjs.map +0 -7
  223. package/dist/lib/browser/anchor-sort-Z7JQA7RL.mjs.map +0 -7
  224. package/dist/lib/browser/app-graph-serializer-ZT5OVF5G.mjs.map +0 -7
  225. package/dist/lib/browser/artifact-definition-7VNP5PCP.mjs +0 -145
  226. package/dist/lib/browser/artifact-definition-7VNP5PCP.mjs.map +0 -7
  227. package/dist/lib/browser/chunk-K7ZFMSC4.mjs.map +0 -7
  228. package/dist/lib/browser/chunk-VCUKIILA.mjs +0 -20
  229. package/dist/lib/browser/chunk-VCUKIILA.mjs.map +0 -7
  230. package/dist/lib/browser/chunk-VMX5SDGW.mjs.map +0 -7
  231. package/dist/lib/browser/chunk-YHMGUSO7.mjs.map +0 -7
  232. package/dist/lib/browser/chunk-ZGY3DYC2.mjs.map +0 -7
  233. package/dist/lib/browser/intent-resolver-EBEF7WEI.mjs.map +0 -7
  234. package/dist/lib/browser/react-surface-ZPMZT4VU.mjs.map +0 -7
  235. package/dist/lib/browser/state-ZA6PZPUI.mjs.map +0 -7
  236. package/dist/lib/node-esm/MarkdownContainer-Q6UO7DKT.mjs +0 -780
  237. package/dist/lib/node-esm/MarkdownContainer-Q6UO7DKT.mjs.map +0 -7
  238. package/dist/lib/node-esm/MarkdownPreview-UVWR2YK3.mjs +0 -81
  239. package/dist/lib/node-esm/MarkdownPreview-UVWR2YK3.mjs.map +0 -7
  240. package/dist/lib/node-esm/anchor-sort-R6AAKYNG.mjs.map +0 -7
  241. package/dist/lib/node-esm/app-graph-serializer-X4M5QEI6.mjs.map +0 -7
  242. package/dist/lib/node-esm/artifact-definition-IRIILD7S.mjs +0 -146
  243. package/dist/lib/node-esm/artifact-definition-IRIILD7S.mjs.map +0 -7
  244. package/dist/lib/node-esm/chunk-6GCOJS4Y.mjs.map +0 -7
  245. package/dist/lib/node-esm/chunk-A7LLVI34.mjs +0 -22
  246. package/dist/lib/node-esm/chunk-A7LLVI34.mjs.map +0 -7
  247. package/dist/lib/node-esm/chunk-LZK3TLKM.mjs.map +0 -7
  248. package/dist/lib/node-esm/chunk-RCIXKCVG.mjs.map +0 -7
  249. package/dist/lib/node-esm/chunk-YGNVDYMB.mjs.map +0 -7
  250. package/dist/lib/node-esm/intent-resolver-L2UGZ72W.mjs.map +0 -7
  251. package/dist/lib/node-esm/react-surface-3JJSTTQP.mjs.map +0 -7
  252. package/dist/lib/node-esm/state-UIHO2SFZ.mjs.map +0 -7
  253. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +0 -6
  254. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +0 -1
  255. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -10
  256. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +0 -1
  257. package/dist/types/src/components/MarkdownPreview/index.d.ts +0 -4
  258. package/dist/types/src/components/MarkdownPreview/index.d.ts.map +0 -1
  259. package/dist/types/src/components/Toolbar.stories.d.ts +0 -11
  260. package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
  261. package/dist/types/src/extensions.d.ts +0 -24
  262. package/dist/types/src/extensions.d.ts.map +0 -1
  263. package/src/components/MarkdownPreview/MarkdownPreview.tsx +0 -73
  264. package/src/components/MarkdownPreview/index.ts +0 -9
  265. package/src/components/Toolbar.stories.tsx +0 -112
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/MarkdownCard/MarkdownCard.tsx", "../../../src/components/MarkdownCard/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, chain, createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\nimport { Obj } from '@dxos/echo';\nimport { type CardPreviewProps } from '@dxos/plugin-preview';\nimport { IconButton, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui-stack';\nimport { Text } from '@dxos/schema';\n\nimport { meta } from '../../meta';\nimport { Markdown } from '../../types';\nimport { getContentSnippet, getFallbackName } from '../../util';\n\nexport type MarkdownCardProps = CardPreviewProps<Markdown.Document | Text.Text>;\n\nexport const MarkdownCard = ({ subject, role }: MarkdownCardProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { t } = useTranslation(meta.id);\n const snippet = getSnippet(subject, t('fallback abstract'));\n const info = getInfo(subject);\n\n // TODO(wittjosiah): Factor out so this component isn't dependent on the app framework.\n const handleNavigate = useCallback(\n () =>\n dispatch(\n Function.pipe(\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n subject: null,\n options: { state: false, anchorId: '' },\n }),\n chain(LayoutAction.Open, {\n part: 'main',\n subject: [Obj.getDXN(subject).toString()],\n }),\n ),\n ),\n [dispatch, subject],\n );\n\n return (\n <Card.SurfaceRoot role={role}>\n <Card.Heading classNames='flex items-center'>\n {getTitle(subject, t('fallback title'))}\n <span className='grow' />\n <IconButton\n iconOnly\n icon='ph--arrow-right--regular'\n label={t('navigate to document label')}\n onClick={handleNavigate}\n />\n </Card.Heading>\n {snippet && <Card.Text classNames='line-clamp-3 text-sm text-description'>{snippet}</Card.Text>}\n <Card.Text classNames='text-xs text-description'>\n {info.words} {t('words label', { count: info.words })}\n </Card.Text>\n </Card.SurfaceRoot>\n );\n};\n\nconst getInfo = (subject: Markdown.Document | Text.Text) => {\n const text = (Obj.instanceOf(Markdown.Document, subject) ? subject.content?.target?.content : subject.content) ?? '';\n return { words: text.split(' ').length };\n};\n\n// TODO(burdon): Factor out.\nconst getTitle = (subject: Markdown.Document | Text.Text, fallback: string) => {\n if (Obj.instanceOf(Markdown.Document, subject)) {\n const title = Obj.getLabel(subject);\n return title ?? getFallbackName(subject.content?.target?.content ?? fallback);\n } else if (Obj.instanceOf(Text.Text, subject)) {\n return getFallbackName(subject.content);\n }\n};\n\n// TODO(burdon): Factor out.\nconst getSnippet = (subject: Markdown.Document | Text.Text, fallback: string) => {\n if (Obj.instanceOf(Markdown.Document, subject)) {\n return Obj.getDescription(subject) || getContentSnippet(subject.content?.target?.content ?? fallback);\n } else if (Obj.instanceOf(Text.Text, subject)) {\n return getContentSnippet(subject.content ?? fallback);\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { MarkdownCard } from './MarkdownCard';\n\nexport * from './MarkdownCard';\n\nexport default MarkdownCard;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAIA,YAAYA,cAAc;AAC1B,OAAOC,SAASC,mBAAmB;AAEnC,SAASC,cAAcC,OAAOC,oBAAoB;AAClD,SAASC,2BAA2B;AACpC,SAASC,WAAW;AAEpB,SAASC,YAAYC,sBAAsB;AAC3C,SAASC,YAAY;AACrB,SAASC,YAAY;AAQd,IAAMC,eAAe,CAAC,EAAEC,SAASC,KAAI,MAAqB;;;AAC/D,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AACtC,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,UAAUC,WAAWV,SAASK,EAAE,mBAAA,CAAA;AACtC,UAAMM,OAAOC,QAAQZ,OAAAA;AAGrB,UAAMa,iBAAiBC,YACrB,MACEX,SACWY,cACPC,aAAaC,aAAaC,eAAe;MACvCC,MAAM;MACNnB,SAAS;MACToB,SAAS;QAAEC,OAAO;QAAOC,UAAU;MAAG;IACxC,CAAA,GACAC,MAAMN,aAAaO,MAAM;MACvBL,MAAM;MACNnB,SAAS;QAACyB,IAAIC,OAAO1B,OAAAA,EAAS2B,SAAQ;;IACxC,CAAA,CAAA,CAAA,GAGN;MAACxB;MAAUH;KAAQ;AAGrB,WACE,sBAAA,cAAC4B,KAAKC,aAAW;MAAC5B;OAChB,sBAAA,cAAC2B,KAAKE,SAAO;MAACC,YAAW;OACtBC,SAAShC,SAASK,EAAE,gBAAA,CAAA,GACrB,sBAAA,cAAC4B,QAAAA;MAAKC,WAAU;QAChB,sBAAA,cAACC,YAAAA;MACCC,UAAAA;MACAC,MAAK;MACLC,OAAOjC,EAAE,4BAAA;MACTkC,SAAS1B;SAGZJ,WAAW,sBAAA,cAACmB,KAAKY,MAAI;MAACT,YAAW;OAAyCtB,OAAAA,GAC3E,sBAAA,cAACmB,KAAKY,MAAI;MAACT,YAAW;OACnBpB,KAAK8B,OAAM,KAAEpC,EAAE,eAAe;MAAEqC,OAAO/B,KAAK8B;IAAM,CAAA,CAAA,CAAA;;;;AAI3D;AAEA,IAAM7B,UAAU,CAACZ,YAAAA;AACf,QAAM2C,QAAQlB,IAAImB,WAAWC,iBAASC,UAAU9C,OAAAA,IAAWA,QAAQ+C,SAASC,QAAQD,UAAU/C,QAAQ+C,YAAY;AAClH,SAAO;IAAEN,OAAOE,KAAKM,MAAM,GAAA,EAAKC;EAAO;AACzC;AAGA,IAAMlB,WAAW,CAAChC,SAAwCmD,aAAAA;AACxD,MAAI1B,IAAImB,WAAWC,iBAASC,UAAU9C,OAAAA,GAAU;AAC9C,UAAMoD,QAAQ3B,IAAI4B,SAASrD,OAAAA;AAC3B,WAAOoD,SAASE,gBAAgBtD,QAAQ+C,SAASC,QAAQD,WAAWI,QAAAA;EACtE,WAAW1B,IAAImB,WAAWJ,KAAKA,MAAMxC,OAAAA,GAAU;AAC7C,WAAOsD,gBAAgBtD,QAAQ+C,OAAO;EACxC;AACF;AAGA,IAAMrC,aAAa,CAACV,SAAwCmD,aAAAA;AAC1D,MAAI1B,IAAImB,WAAWC,iBAASC,UAAU9C,OAAAA,GAAU;AAC9C,WAAOyB,IAAI8B,eAAevD,OAAAA,KAAYwD,kBAAkBxD,QAAQ+C,SAASC,QAAQD,WAAWI,QAAAA;EAC9F,WAAW1B,IAAImB,WAAWJ,KAAKA,MAAMxC,OAAAA,GAAU;AAC7C,WAAOwD,kBAAkBxD,QAAQ+C,WAAWI,QAAAA;EAC9C;AACF;;;AChFA,IAAA,uBAAeM;",
6
+ "names": ["Function", "React", "useCallback", "LayoutAction", "chain", "createIntent", "useIntentDispatcher", "Obj", "IconButton", "useTranslation", "Card", "Text", "MarkdownCard", "subject", "role", "dispatchPromise", "dispatch", "useIntentDispatcher", "t", "useTranslation", "meta", "id", "snippet", "getSnippet", "info", "getInfo", "handleNavigate", "useCallback", "pipe", "createIntent", "LayoutAction", "UpdatePopover", "part", "options", "state", "anchorId", "chain", "Open", "Obj", "getDXN", "toString", "Card", "SurfaceRoot", "Heading", "classNames", "getTitle", "span", "className", "IconButton", "iconOnly", "icon", "label", "onClick", "Text", "words", "count", "text", "instanceOf", "Markdown", "Document", "content", "target", "split", "length", "fallback", "title", "getLabel", "getFallbackName", "getDescription", "getContentSnippet", "MarkdownCard"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  Markdown_exports
4
- } from "./chunk-6GCOJS4Y.mjs";
4
+ } from "./chunk-NGYJNQ6A.mjs";
5
5
 
6
6
  // src/util.tsx
7
7
  import { debounce } from "@dxos/async";
@@ -9,13 +9,14 @@ import { Obj } from "@dxos/echo";
9
9
  var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
10
10
  var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
11
11
  var nonTitleChars = /[^\w ]/g;
12
- var getFallbackName = (content) => {
12
+ var getFallbackName = (content = "") => {
13
13
  return content.substring(0, 31).split("\n")[0].replaceAll(nonTitleChars, "").trim();
14
14
  };
15
- var getAbstract = (content) => {
16
- return content.substring(0, 128).split("\n")[0].replaceAll(nonTitleChars, "").trim();
15
+ var getContentSnippet = (content = "") => {
16
+ const abstract = content.split("\n").filter((line) => !line.startsWith("#")).filter((line) => line.trim() !== "");
17
+ return abstract.length > 0 ? abstract[0].replaceAll(nonTitleChars, "").trim() + "..." : "";
17
18
  };
18
- var setFallbackName = debounce((doc, content) => {
19
+ var setFallbackName = debounce((doc, content = "") => {
19
20
  const name = getFallbackName(content);
20
21
  if (doc.fallbackName !== name) {
21
22
  doc.fallbackName = name;
@@ -32,7 +33,7 @@ var serializer = {
32
33
  },
33
34
  deserialize: async ({ content: serialized }) => {
34
35
  const { name, fallbackName, content } = JSON.parse(serialized);
35
- return Markdown_exports.makeDocument({
36
+ return Markdown_exports.make({
36
37
  name,
37
38
  fallbackName,
38
39
  content
@@ -44,8 +45,8 @@ export {
44
45
  isEditorModel,
45
46
  isMarkdownProperties,
46
47
  getFallbackName,
47
- getAbstract,
48
+ getContentSnippet,
48
49
  setFallbackName,
49
50
  serializer
50
51
  };
51
- //# sourceMappingURL=chunk-LZK3TLKM.mjs.map
52
+ //# sourceMappingURL=chunk-PLZ7EVCT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\n\nimport { Markdown } from './types';\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\n * @deprecated Use Schema.instanceOf(Markdown.Document, data)\n */\n// TODO(burdon): Normalize types (from FilesPlugin).\nexport const isEditorModel = (data: any): data is { id: string; text: string } =>\n data &&\n typeof data === 'object' &&\n 'id' in data &&\n typeof data.id === 'string' &&\n 'text' in data &&\n typeof data.text === 'string';\n\nexport type MarkdownProperties = Record<string, any>;\n\nexport const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>\n (Obj.isObject(data) as boolean)\n ? true\n : data && typeof data === 'object'\n ? 'title' in data && typeof data.title === 'string'\n : false;\n\nconst nonTitleChars = /[^\\w ]/g;\n\nexport const getFallbackName = (content = '') => {\n return content.substring(0, 31).split('\\n')[0].replaceAll(nonTitleChars, '').trim();\n};\n\nexport const getContentSnippet = (content = '') => {\n const abstract = content\n .split('\\n')\n .filter((line) => !line.startsWith('#'))\n .filter((line) => line.trim() !== '');\n\n return abstract.length > 0 ? abstract[0].replaceAll(nonTitleChars, '').trim() + '...' : '';\n};\n\nexport const setFallbackName = debounce((doc: Markdown.Document, content = '') => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n doc.fallbackName = name;\n }\n}, 200);\n\nexport const serializer: TypedObjectSerializer<Markdown.Document> = {\n serialize: async ({ object }): Promise<string> => {\n const { content } = await object.content.load();\n return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content });\n },\n\n deserialize: async ({ content: serialized }) => {\n const { name, fallbackName, content } = JSON.parse(serialized);\n return Markdown.make({ name, fallbackName, content });\n },\n};\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,gBAAgB;AACzB,SAASC,WAAW;AAUb,IAAMC,gBAAgB,CAACC,SAC5BA,QACA,OAAOA,SAAS,YAChB,QAAQA,QACR,OAAOA,KAAKC,OAAO,YACnB,UAAUD,QACV,OAAOA,KAAKE,SAAS;AAIhB,IAAMC,uBAAuB,CAACH,SAClCI,IAAIC,SAASL,IAAAA,IACV,OACAA,QAAQ,OAAOA,SAAS,WACtB,WAAWA,QAAQ,OAAOA,KAAKM,UAAU,WACzC;AAER,IAAMC,gBAAgB;AAEf,IAAMC,kBAAkB,CAACC,UAAU,OAAE;AAC1C,SAAOA,QAAQC,UAAU,GAAG,EAAA,EAAIC,MAAM,IAAA,EAAM,CAAA,EAAGC,WAAWL,eAAe,EAAA,EAAIM,KAAI;AACnF;AAEO,IAAMC,oBAAoB,CAACL,UAAU,OAAE;AAC5C,QAAMM,WAAWN,QACdE,MAAM,IAAA,EACNK,OAAO,CAACC,SAAS,CAACA,KAAKC,WAAW,GAAA,CAAA,EAClCF,OAAO,CAACC,SAASA,KAAKJ,KAAI,MAAO,EAAA;AAEpC,SAAOE,SAASI,SAAS,IAAIJ,SAAS,CAAA,EAAGH,WAAWL,eAAe,EAAA,EAAIM,KAAI,IAAK,QAAQ;AAC1F;AAEO,IAAMO,kBAAkBC,SAAS,CAACC,KAAwBb,UAAU,OAAE;AAC3E,QAAMc,OAAOf,gBAAgBC,OAAAA;AAC7B,MAAIa,IAAIE,iBAAiBD,MAAM;AAC7BD,QAAIE,eAAeD;EACrB;AACF,GAAG,GAAA;AAEI,IAAME,aAAuD;EAClEC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAM,EAAElB,QAAO,IAAK,MAAMkB,OAAOlB,QAAQmB,KAAI;AAC7C,WAAOC,KAAKC,UAAU;MAAEP,MAAMI,OAAOJ;MAAMC,cAAcG,OAAOH;MAAcf;IAAQ,CAAA;EACxF;EAEAsB,aAAa,OAAO,EAAEtB,SAASuB,WAAU,MAAE;AACzC,UAAM,EAAET,MAAMC,cAAcf,QAAO,IAAKoB,KAAKI,MAAMD,UAAAA;AACnD,WAAOE,iBAASC,KAAK;MAAEZ;MAAMC;MAAcf;IAAQ,CAAA;EACrD;AACF;",
6
+ "names": ["debounce", "Obj", "isEditorModel", "data", "id", "text", "isMarkdownProperties", "Obj", "isObject", "title", "nonTitleChars", "getFallbackName", "content", "substring", "split", "replaceAll", "trim", "getContentSnippet", "abstract", "filter", "line", "startsWith", "length", "setFallbackName", "debounce", "doc", "name", "fallbackName", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "Markdown", "make"]
7
+ }
@@ -11,21 +11,19 @@ var meta = {
11
11
  id: "dxos.org/plugin/markdown",
12
12
  name: "Markdown",
13
13
  description: trim`
14
- A collaborative and extensible Markdown editor.
15
- In addition to markdown capabilities, the plugin supports collaborative in-line comments.
16
- You can use documents to extend the memory of your personal agents and add context for automated workflows.
14
+ Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
15
+ Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
17
16
  `,
18
17
  icon: "ph--text-aa--regular",
18
+ iconHue: "indigo",
19
19
  source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
20
20
  screenshots: [
21
21
  "https://dxos.network/plugin-details-markdown-dark.png"
22
22
  ]
23
23
  };
24
- var not_meta = meta;
25
24
 
26
25
  export {
27
26
  __export,
28
- meta,
29
- not_meta
27
+ meta
30
28
  };
31
- //# sourceMappingURL=chunk-RCIXKCVG.mjs.map
29
+ //# sourceMappingURL=chunk-SHAMSMKQ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/markdown',\n name: 'Markdown',\n description: trim`\n Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.\n Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.\n `,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],\n};\n"],
5
+ "mappings": ";;;;;;;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,aAAa;IAAC;;AAChB;",
6
+ "names": ["trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots"]
7
+ }
@@ -1,35 +1,37 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- translations
4
- } from "./chunk-YGNVDYMB.mjs";
5
2
  import {
6
3
  AnchorSort,
7
4
  AppGraphSerializer,
8
- ArtifactDefinition,
5
+ BlueprintDefinition,
9
6
  IntentResolver,
10
7
  MarkdownSettings,
11
8
  MarkdownState,
12
9
  ReactSurface
13
- } from "./chunk-A7LLVI34.mjs";
10
+ } from "./chunk-KCHUTL3Q.mjs";
11
+ import {
12
+ MARKDOWN_BLUEPRINT_KEY
13
+ } from "./chunk-HAIEWPU7.mjs";
14
+ import {
15
+ translations
16
+ } from "./chunk-AMHACOXW.mjs";
14
17
  import {
15
18
  MarkdownCapabilities
16
- } from "./chunk-B3J2M4YL.mjs";
19
+ } from "./chunk-GMMVSXQ6.mjs";
17
20
  import {
18
- getAbstract,
21
+ getContentSnippet,
19
22
  getFallbackName,
20
23
  isEditorModel,
21
24
  isMarkdownProperties,
22
25
  serializer,
23
26
  setFallbackName
24
- } from "./chunk-LZK3TLKM.mjs";
27
+ } from "./chunk-PLZ7EVCT.mjs";
25
28
  import {
26
29
  MarkdownAction_exports,
27
30
  Markdown_exports
28
- } from "./chunk-6GCOJS4Y.mjs";
31
+ } from "./chunk-NGYJNQ6A.mjs";
29
32
  import {
30
- meta,
31
- not_meta
32
- } from "./chunk-RCIXKCVG.mjs";
33
+ meta
34
+ } from "./chunk-SHAMSMKQ.mjs";
33
35
 
34
36
  // src/events.ts
35
37
  import { Events } from "@dxos/app-framework";
@@ -39,15 +41,15 @@ import { Events } from "@dxos/app-framework";
39
41
  var MarkdownEvents;
40
42
 
41
43
  // src/MarkdownPlugin.tsx
42
- import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events as Events2 } from "@dxos/app-framework";
44
+ import { Capabilities, Events as Events2, contributes, createIntent, defineModule, definePlugin } from "@dxos/app-framework";
43
45
  import { Ref } from "@dxos/echo";
44
46
  import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
45
47
  import { SpaceCapabilities } from "@dxos/plugin-space";
46
48
  import { defineObjectForm } from "@dxos/plugin-space/types";
47
49
  import { createDocAccessor, getTextInRange } from "@dxos/react-client/echo";
48
50
  import { translations as editorTranslations } from "@dxos/react-ui-editor";
49
- import { DataType } from "@dxos/schema";
50
- var MarkdownPlugin = () => definePlugin(meta, [
51
+ import { Text } from "@dxos/schema";
52
+ var MarkdownPlugin = definePlugin(meta, () => [
51
53
  defineModule({
52
54
  id: `${meta.id}/module/translations`,
53
55
  activatesOn: Events2.SetupTranslations,
@@ -77,6 +79,10 @@ var MarkdownPlugin = () => definePlugin(meta, [
77
79
  metadata: {
78
80
  label: (object) => object.name || object.fallbackName,
79
81
  icon: "ph--text-aa--regular",
82
+ iconHue: "indigo",
83
+ blueprints: [
84
+ MARKDOWN_BLUEPRINT_KEY
85
+ ],
80
86
  graphProps: {
81
87
  managesAutofocus: true
82
88
  },
@@ -104,16 +110,21 @@ var MarkdownPlugin = () => definePlugin(meta, [
104
110
  activatesOn: ClientEvents.SetupSchema,
105
111
  activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
106
112
  objectSchema: Markdown_exports.Document,
107
- getIntent: (_, { space }) => createIntent(MarkdownAction_exports.Create, {
108
- spaceId: space.id
109
- })
113
+ getIntent: () => createIntent(MarkdownAction_exports.Create, {})
110
114
  }))
111
115
  }),
112
116
  defineModule({
113
117
  id: `${meta.id}/module/schema`,
114
118
  activatesOn: ClientEvents.SetupSchema,
115
119
  activate: () => contributes(ClientCapabilities.Schema, [
116
- DataType.Text
120
+ Text.Text
121
+ ])
122
+ }),
123
+ defineModule({
124
+ id: `${meta.id}/module/whitelist-schema`,
125
+ activatesOn: ClientEvents.SetupSchema,
126
+ activate: () => contributes(ClientCapabilities.SchemaWhiteList, [
127
+ Markdown_exports.Document
117
128
  ])
118
129
  }),
119
130
  defineModule({
@@ -142,21 +153,22 @@ var MarkdownPlugin = () => definePlugin(meta, [
142
153
  activate: AnchorSort
143
154
  }),
144
155
  defineModule({
145
- id: `${meta.id}/module/artifact-definition`,
156
+ id: `${meta.id}/module/blueprint`,
146
157
  activatesOn: Events2.SetupArtifactDefinition,
147
- activate: ArtifactDefinition
158
+ activate: BlueprintDefinition
148
159
  })
149
160
  ]);
150
161
  export {
162
+ Markdown_exports as Markdown,
163
+ MarkdownAction_exports as MarkdownAction,
151
164
  MarkdownCapabilities,
152
165
  MarkdownEvents,
153
166
  MarkdownPlugin,
154
- getAbstract,
167
+ getContentSnippet,
155
168
  getFallbackName,
156
169
  isEditorModel,
157
170
  isMarkdownProperties,
158
171
  meta,
159
- not_meta,
160
172
  serializer,
161
173
  setFallbackName
162
174
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/events.ts", "../../../src/MarkdownPlugin.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions = Events.createStateEvent(`${meta.id}/event/setup-extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { type Obj, Ref } from '@dxos/echo';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { createDocAccessor, getTextInRange } from '@dxos/react-client/echo';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\nimport { DataType } from '@dxos/schema';\n\nimport {\n AnchorSort,\n AppGraphSerializer,\n ArtifactDefinition,\n IntentResolver,\n MarkdownState,\n MarkdownSettings,\n ReactSurface,\n} from './capabilities';\nimport { MarkdownEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { Markdown, MarkdownAction } from './types';\nimport { serializer } from './util';\n\nexport const MarkdownPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...editorTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: MarkdownSettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: MarkdownState,\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: Markdown.Document.typename,\n metadata: {\n label: (object: Markdown.Document) => object.name || object.fallbackName,\n icon: 'ph--text-aa--regular',\n graphProps: {\n managesAutofocus: true,\n },\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (doc: Markdown.Document) => await Ref.Array.loadAll<Obj.Any>([doc.content]),\n serializer,\n // TODO(wittjosiah): Consider how to do generic comments without these.\n comments: 'anchored',\n selectionMode: 'multi-range',\n getAnchorLabel: (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n },\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: Markdown.Document,\n getIntent: (_, { space }) => createIntent(MarkdownAction.Create, { spaceId: space.id }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [DataType.Text]),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the editor is loaded when surfaces activation is more granular.\n activatesBefore: [MarkdownEvents.SetupExtensions],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/anchor-sort`,\n // TODO(wittjosiah): More relevant event?\n activatesOn: Events.AppGraphReady,\n activate: AnchorSort,\n }),\n defineModule({\n id: `${meta.id}/module/artifact-definition`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: ArtifactDefinition,\n }),\n ]);\n"],
5
- "mappings": "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",
6
- "names": ["Events", "MarkdownEvents", "SetupExtensions", "Events", "createStateEvent", "meta", "id", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "Ref", "ClientCapabilities", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "createDocAccessor", "getTextInRange", "translations", "editorTranslations", "DataType", "MarkdownPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "editorTranslations", "SetupSettings", "MarkdownSettings", "MarkdownState", "SetupMetadata", "Metadata", "Markdown", "Document", "typename", "metadata", "label", "object", "name", "fallbackName", "icon", "graphProps", "managesAutofocus", "loadReferences", "doc", "Ref", "Array", "loadAll", "content", "serializer", "comments", "selectionMode", "getAnchorLabel", "anchor", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "_", "space", "createIntent", "MarkdownAction", "Create", "spaceId", "ClientCapabilities", "Schema", "DataType", "Text", "SetupReactSurface", "activatesBefore", "MarkdownEvents", "SetupExtensions", "ReactSurface", "SetupIntentResolver", "IntentResolver", "AppGraphReady", "AppGraphSerializer", "AnchorSort", "SetupArtifactDefinition", "ArtifactDefinition"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions = Events.createStateEvent(`${meta.id}/event/setup-extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';\nimport { type Obj, Ref } from '@dxos/echo';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { createDocAccessor, getTextInRange } from '@dxos/react-client/echo';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\nimport { Text } from '@dxos/schema';\n\nimport {\n AnchorSort,\n AppGraphSerializer,\n BlueprintDefinition,\n IntentResolver,\n MARKDOWN_BLUEPRINT_KEY,\n MarkdownSettings,\n MarkdownState,\n ReactSurface,\n} from './capabilities';\nimport { MarkdownEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { Markdown, MarkdownAction } from './types';\nimport { serializer } from './util';\n\nexport const MarkdownPlugin = definePlugin(meta, () => [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...editorTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: MarkdownSettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: MarkdownState,\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: Markdown.Document.typename,\n metadata: {\n label: (object: Markdown.Document) => object.name || object.fallbackName,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n blueprints: [MARKDOWN_BLUEPRINT_KEY],\n graphProps: {\n managesAutofocus: true,\n },\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (doc: Markdown.Document) => await Ref.Array.loadAll<Obj.Any>([doc.content]),\n serializer,\n // TODO(wittjosiah): Consider how to do generic comments without these.\n comments: 'anchored',\n selectionMode: 'multi-range',\n getAnchorLabel: (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n },\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: Markdown.Document,\n getIntent: () => createIntent(MarkdownAction.Create, {}),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [Text.Text]),\n }),\n defineModule({\n id: `${meta.id}/module/whitelist-schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.SchemaWhiteList, [Markdown.Document]),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the editor is loaded when surfaces activation is more granular.\n activatesBefore: [MarkdownEvents.SetupExtensions],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/anchor-sort`,\n // TODO(wittjosiah): More relevant event?\n activatesOn: Events.AppGraphReady,\n activate: AnchorSort,\n }),\n defineModule({\n id: `${meta.id}/module/blueprint`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: BlueprintDefinition,\n }),\n]);\n"],
5
+ "mappings": "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",
6
+ "names": ["Events", "MarkdownEvents", "SetupExtensions", "Events", "createStateEvent", "meta", "id", "Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "Ref", "ClientCapabilities", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "createDocAccessor", "getTextInRange", "translations", "editorTranslations", "Text", "MarkdownPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "editorTranslations", "SetupSettings", "MarkdownSettings", "MarkdownState", "SetupMetadata", "Metadata", "Markdown", "Document", "typename", "metadata", "label", "object", "name", "fallbackName", "icon", "iconHue", "blueprints", "MARKDOWN_BLUEPRINT_KEY", "graphProps", "managesAutofocus", "loadReferences", "doc", "Ref", "Array", "loadAll", "content", "serializer", "comments", "selectionMode", "getAnchorLabel", "anchor", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "createIntent", "MarkdownAction", "Create", "ClientCapabilities", "Schema", "Text", "SchemaWhiteList", "SetupReactSurface", "activatesBefore", "MarkdownEvents", "SetupExtensions", "ReactSurface", "SetupIntentResolver", "IntentResolver", "AppGraphReady", "AppGraphSerializer", "AnchorSort", "SetupArtifactDefinition", "BlueprintDefinition"]
7
7
  }
@@ -1,26 +1,26 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  MarkdownCapabilities
4
- } from "./chunk-B3J2M4YL.mjs";
4
+ } from "./chunk-GMMVSXQ6.mjs";
5
5
  import {
6
6
  MarkdownAction_exports,
7
7
  Markdown_exports
8
- } from "./chunk-6GCOJS4Y.mjs";
9
- import "./chunk-RCIXKCVG.mjs";
8
+ } from "./chunk-NGYJNQ6A.mjs";
9
+ import "./chunk-SHAMSMKQ.mjs";
10
10
 
11
11
  // src/capabilities/intent-resolver.ts
12
12
  import { next as A } from "@automerge/automerge";
13
- import { Option, pipe } from "effect";
13
+ import * as Option from "effect/Option";
14
14
  import { Capabilities, CollaborationActions, contributes, createResolver } from "@dxos/app-framework";
15
15
  import { Obj } from "@dxos/echo";
16
16
  import { createDocAccessor, getRangeFromCursor } from "@dxos/react-client/echo";
17
- var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, [
17
+ var intent_resolver_default = ((context) => contributes(Capabilities.IntentResolver, [
18
18
  createResolver({
19
19
  intent: MarkdownAction_exports.Create,
20
20
  resolve: ({ name, content }) => {
21
21
  return {
22
22
  data: {
23
- object: Markdown_exports.makeDocument({
23
+ object: Markdown_exports.make({
24
24
  name,
25
25
  content
26
26
  })
@@ -36,26 +36,28 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
36
36
  }
37
37
  }),
38
38
  createResolver({
39
- intent: CollaborationActions.InsertContent,
40
- filter: (data) => Obj.instanceOf(Markdown_exports.Document, data.target),
41
- resolve: async ({ target, object: objectRef, at, label }) => {
42
- const text = await target.content.load();
39
+ intent: CollaborationActions.AcceptProposal,
40
+ filter: (data) => Obj.instanceOf(Markdown_exports.Document, data.subject),
41
+ resolve: async ({ subject, anchor, proposal }) => {
42
+ const text = await subject.content.load();
43
43
  const accessor = createDocAccessor(text, [
44
44
  "content"
45
45
  ]);
46
- const { start, end } = pipe(Option.fromNullable(at), Option.flatMap((at2) => Option.fromNullable(getRangeFromCursor(accessor, at2))), Option.getOrElse(() => ({
47
- start: text.content.length - 1,
48
- end: text.content.length - 1
49
- })));
46
+ const { start, end } = Option.fromNullable(anchor).pipe(
47
+ Option.flatMap((at) => Option.fromNullable(getRangeFromCursor(accessor, at))),
48
+ // Fallback to the end of the document.
49
+ Option.getOrElse(() => ({
50
+ start: text.content.length - 1,
51
+ end: text.content.length - 1
52
+ }))
53
+ );
50
54
  accessor.handle.change((doc) => {
51
- const ref = `[${label ?? "Generated content"}]](${objectRef.dxn.toString()})
52
- `;
53
- A.splice(doc, accessor.path.slice(), start, end - start, ref);
55
+ A.splice(doc, accessor.path.slice(), start, end - start, proposal.text);
54
56
  });
55
57
  }
56
58
  })
57
- ]);
59
+ ]));
58
60
  export {
59
61
  intent_resolver_default as default
60
62
  };
61
- //# sourceMappingURL=intent-resolver-L2UGZ72W.mjs.map
63
+ //# sourceMappingURL=intent-resolver-6B3PFQ5F.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { next as A } from '@automerge/automerge';\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\n\nimport {\n Capabilities,\n CollaborationActions,\n type PluginContext,\n contributes,\n createResolver,\n} from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { createDocAccessor, getRangeFromCursor } from '@dxos/react-client/echo';\n\nimport { Markdown, MarkdownAction } from '../types';\n\nimport { MarkdownCapabilities } from './capabilities';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: MarkdownAction.Create,\n resolve: ({ name, content }) => {\n return { data: { object: Markdown.make({ name, content }) } };\n },\n }),\n createResolver({\n intent: MarkdownAction.SetViewMode,\n resolve: ({ id, viewMode }) => {\n const { state } = context.getCapability(MarkdownCapabilities.State);\n state.viewMode[id] = viewMode;\n },\n }),\n createResolver({\n intent: CollaborationActions.AcceptProposal,\n filter: (\n data,\n ): data is Omit<Schema.Schema.Type<typeof CollaborationActions.AcceptProposal.fields.input>, 'subject'> & {\n subject: Markdown.Document;\n } => Obj.instanceOf(Markdown.Document, data.subject),\n resolve: async ({ subject, anchor, proposal }) => {\n const text = await subject.content.load();\n const accessor = createDocAccessor(text, ['content']);\n const { start, end } = Option.fromNullable(anchor).pipe(\n Option.flatMap((at) => Option.fromNullable(getRangeFromCursor(accessor, at))),\n // Fallback to the end of the document.\n Option.getOrElse(() => ({ start: text.content.length - 1, end: text.content.length - 1 })),\n );\n accessor.handle.change((doc) => {\n A.splice(doc, accessor.path.slice(), start, end - start, proposal.text);\n });\n },\n }),\n ]);\n"],
5
+ "mappings": ";;;;;;;;;;;AAIA,SAASA,QAAQC,SAAS;AAC1B,YAAYC,YAAY;AAGxB,SACEC,cACAC,sBAEAC,aACAC,sBACK;AACP,SAASC,WAAW;AACpB,SAASC,mBAAmBC,0BAA0B;AAMtD,IAAA,2BAAe,CAACC,YACdC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,uBAAeC;IACvBC,SAAS,CAAC,EAAEC,MAAMC,QAAO,MAAE;AACzB,aAAO;QAAEC,MAAM;UAAEC,QAAQC,iBAASC,KAAK;YAAEL;YAAMC;UAAQ,CAAA;QAAG;MAAE;IAC9D;EACF,CAAA;EACAN,eAAe;IACbC,QAAQC,uBAAeS;IACvBP,SAAS,CAAC,EAAEQ,IAAIC,SAAQ,MAAE;AACxB,YAAM,EAAEC,MAAK,IAAKlB,QAAQmB,cAAcC,qBAAqBC,KAAK;AAClEH,YAAMD,SAASD,EAAAA,IAAMC;IACvB;EACF,CAAA;EACAb,eAAe;IACbC,QAAQiB,qBAAqBC;IAC7BC,QAAQ,CACNb,SAGGc,IAAIC,WAAWb,iBAASc,UAAUhB,KAAKiB,OAAO;IACnDpB,SAAS,OAAO,EAAEoB,SAASC,QAAQC,SAAQ,MAAE;AAC3C,YAAMC,OAAO,MAAMH,QAAQlB,QAAQsB,KAAI;AACvC,YAAMC,WAAWC,kBAAkBH,MAAM;QAAC;OAAU;AACpD,YAAM,EAAEI,OAAOC,IAAG,IAAYC,oBAAaR,MAAAA,EAAQS;QAC1CC,eAAQ,CAACC,OAAcH,oBAAaI,mBAAmBR,UAAUO,EAAAA,CAAAA,CAAAA;;QAEjEE,iBAAU,OAAO;UAAEP,OAAOJ,KAAKrB,QAAQiC,SAAS;UAAGP,KAAKL,KAAKrB,QAAQiC,SAAS;QAAE,EAAA;MAAA;AAEzFV,eAASW,OAAOC,OAAO,CAACC,QAAAA;AACtBC,UAAEC,OAAOF,KAAKb,SAASgB,KAAKC,MAAK,GAAIf,OAAOC,MAAMD,OAAOL,SAASC,IAAI;MACxE,CAAA;IACF;EACF,CAAA;CACD;",
6
+ "names": ["next", "A", "Option", "Capabilities", "CollaborationActions", "contributes", "createResolver", "Obj", "createDocAccessor", "getRangeFromCursor", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "MarkdownAction", "Create", "resolve", "name", "content", "data", "object", "Markdown", "make", "SetViewMode", "id", "viewMode", "state", "getCapability", "MarkdownCapabilities", "State", "CollaborationActions", "AcceptProposal", "filter", "Obj", "instanceOf", "Document", "subject", "anchor", "proposal", "text", "load", "accessor", "createDocAccessor", "start", "end", "fromNullable", "pipe", "flatMap", "at", "getRangeFromCursor", "getOrElse", "length", "handle", "change", "doc", "A", "splice", "path", "slice"]
7
+ }