@dxos/plugin-markdown 0.8.4-main.ead640a → 0.8.4-main.effb148878

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 (409) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs +34 -0
  4. package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs.map +7 -0
  5. package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs +126 -0
  6. package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs.map +7 -0
  7. package/dist/lib/neutral/MarkdownCard-36P4AHYL.mjs +107 -0
  8. package/dist/lib/neutral/MarkdownCard-36P4AHYL.mjs.map +7 -0
  9. package/dist/lib/neutral/MarkdownPlugin.mjs +58 -0
  10. package/dist/lib/neutral/MarkdownPlugin.mjs.map +7 -0
  11. package/dist/lib/neutral/MarkdownPlugin.node.mjs +25 -0
  12. package/dist/lib/neutral/MarkdownPlugin.node.mjs.map +7 -0
  13. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs +23 -0
  14. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs.map +7 -0
  15. package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs +32 -0
  16. package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
  17. package/dist/lib/neutral/anchor-sort-37GOHBLW.mjs +32 -0
  18. package/dist/lib/neutral/anchor-sort-37GOHBLW.mjs.map +7 -0
  19. package/dist/lib/neutral/app-graph-serializer-VL5KPM7V.mjs +55 -0
  20. package/dist/lib/neutral/app-graph-serializer-VL5KPM7V.mjs.map +7 -0
  21. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs +15 -0
  22. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs.map +7 -0
  23. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  24. package/dist/lib/neutral/capabilities/index.mjs +25 -0
  25. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  26. package/dist/lib/neutral/capabilities/node.mjs +11 -0
  27. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  28. package/dist/lib/neutral/chunk-5JY7PO7Z.mjs +285 -0
  29. package/dist/lib/neutral/chunk-5JY7PO7Z.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  31. package/dist/lib/neutral/chunk-KDN4GKG2.mjs +98 -0
  32. package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-LXNSKCPD.mjs +44 -0
  34. package/dist/lib/neutral/chunk-LXNSKCPD.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-MGVKW5GN.mjs +8 -0
  36. package/dist/lib/neutral/chunk-MGVKW5GN.mjs.map +7 -0
  37. package/dist/lib/neutral/chunk-N76TRQSY.mjs +28 -0
  38. package/dist/lib/neutral/chunk-N76TRQSY.mjs.map +7 -0
  39. package/dist/lib/neutral/comment-config-ZEA66BUR.mjs +31 -0
  40. package/dist/lib/neutral/comment-config-ZEA66BUR.mjs.map +7 -0
  41. package/dist/lib/neutral/components/index.mjs +370 -0
  42. package/dist/lib/neutral/components/index.mjs.map +7 -0
  43. package/dist/lib/neutral/containers/index.mjs +13 -0
  44. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  45. package/dist/lib/neutral/create-P255GUFG.mjs +28 -0
  46. package/dist/lib/neutral/create-P255GUFG.mjs.map +7 -0
  47. package/dist/lib/neutral/create-markdown-N2DOEZXT.mjs +20 -0
  48. package/dist/lib/neutral/create-markdown-N2DOEZXT.mjs.map +7 -0
  49. package/dist/lib/neutral/create-object-VU3KX663.mjs +28 -0
  50. package/dist/lib/neutral/create-object-VU3KX663.mjs.map +7 -0
  51. package/dist/lib/neutral/hooks/index.mjs +327 -0
  52. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  53. package/dist/lib/neutral/index.mjs +42 -0
  54. package/dist/lib/neutral/meta.json +1 -0
  55. package/dist/lib/neutral/meta.mjs +8 -0
  56. package/dist/lib/neutral/open-4U46EH7F.mjs +20 -0
  57. package/dist/lib/neutral/open-4U46EH7F.mjs.map +7 -0
  58. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs +13 -0
  59. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs.map +7 -0
  60. package/dist/lib/neutral/operations/index.mjs +8 -0
  61. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  62. package/dist/lib/neutral/plugin.mjs +16 -0
  63. package/dist/lib/neutral/plugin.mjs.map +7 -0
  64. package/dist/lib/neutral/react-surface-P2WX2KXA.mjs +119 -0
  65. package/dist/lib/neutral/react-surface-P2WX2KXA.mjs.map +7 -0
  66. package/dist/lib/neutral/scroll-to-anchor-AFFA7YBC.mjs +47 -0
  67. package/dist/lib/neutral/scroll-to-anchor-AFFA7YBC.mjs.map +7 -0
  68. package/dist/lib/neutral/set-view-mode-UERQK6D7.mjs +24 -0
  69. package/dist/lib/neutral/set-view-mode-UERQK6D7.mjs.map +7 -0
  70. package/dist/lib/neutral/settings-TDGDLCUR.mjs +34 -0
  71. package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +7 -0
  72. package/dist/lib/neutral/state-5COCF5PN.mjs +44 -0
  73. package/dist/lib/neutral/state-5COCF5PN.mjs.map +7 -0
  74. package/dist/lib/neutral/testing.mjs +19 -0
  75. package/dist/lib/neutral/testing.mjs.map +7 -0
  76. package/dist/lib/neutral/translations.mjs +44 -0
  77. package/dist/lib/neutral/translations.mjs.map +7 -0
  78. package/dist/lib/neutral/types/index.mjs +16 -0
  79. package/dist/lib/neutral/types/index.mjs.map +7 -0
  80. package/dist/lib/neutral/update-markdown-Q4MT3TW3.mjs +44 -0
  81. package/dist/lib/neutral/update-markdown-Q4MT3TW3.mjs.map +7 -0
  82. package/dist/types/src/MarkdownPlugin.d.ts +3 -1
  83. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  84. package/dist/types/src/MarkdownPlugin.node.d.ts +4 -0
  85. package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -0
  86. package/dist/types/src/MarkdownPlugin.test.d.ts +2 -0
  87. package/dist/types/src/MarkdownPlugin.test.d.ts.map +1 -0
  88. package/dist/types/src/MarkdownPlugin.workerd.d.ts +4 -0
  89. package/dist/types/src/MarkdownPlugin.workerd.d.ts.map +1 -0
  90. package/dist/types/src/blueprints/index.d.ts +2 -0
  91. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  92. package/dist/types/src/blueprints/markdown-blueprint.d.ts +4 -0
  93. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -0
  94. package/dist/types/src/capabilities/anchor-sort.d.ts +4 -4
  95. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/app-graph-serializer.d.ts +3 -2
  97. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/artifact-definition.d.ts +3 -1
  99. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
  101. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/comment-config.d.ts +12 -0
  103. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  104. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  105. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  106. package/dist/types/src/capabilities/index.d.ts +22 -18
  107. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/node.d.ts +10 -0
  109. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  110. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  111. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  112. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  113. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  114. package/dist/types/src/capabilities/settings.d.ts +4 -2
  115. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/state.d.ts +4 -9
  117. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  118. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +11 -0
  119. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -0
  120. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +52 -21
  121. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  122. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +5 -110
  123. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  124. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +33 -0
  125. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -0
  126. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +13 -0
  127. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -0
  128. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +4 -4
  129. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  130. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +94 -0
  131. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -0
  132. package/dist/types/src/components/MarkdownSettings/index.d.ts +1 -1
  133. package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -1
  134. package/dist/types/src/components/index.d.ts +3 -3
  135. package/dist/types/src/components/index.d.ts.map +1 -1
  136. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts +15 -0
  137. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
  138. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts +9 -0
  139. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts.map +1 -0
  140. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
  141. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
  142. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts +40 -0
  143. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts.map +1 -0
  144. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts +97 -0
  145. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts.map +1 -0
  146. package/dist/types/src/containers/MarkdownArticle/index.d.ts +3 -0
  147. package/dist/types/src/containers/MarkdownArticle/index.d.ts.map +1 -0
  148. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts +8 -0
  149. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  150. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
  151. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  152. package/dist/types/src/containers/MarkdownCard/index.d.ts +2 -0
  153. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
  154. package/dist/types/src/containers/MarkdownCard/snippet.d.ts +17 -0
  155. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
  156. package/dist/types/src/containers/index.d.ts +6 -0
  157. package/dist/types/src/containers/index.d.ts.map +1 -0
  158. package/dist/types/src/hooks/index.d.ts +3 -1
  159. package/dist/types/src/hooks/index.d.ts.map +1 -1
  160. package/dist/types/src/hooks/useEditorMenuOptions.d.ts +9 -0
  161. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -0
  162. package/dist/types/src/hooks/useExtensions.d.ts +25 -0
  163. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -0
  164. package/dist/types/src/hooks/useLinkQuery.d.ts +4 -0
  165. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -0
  166. package/dist/types/src/index.d.ts +2 -3
  167. package/dist/types/src/index.d.ts.map +1 -1
  168. package/dist/types/src/meta.d.ts +2 -2
  169. package/dist/types/src/meta.d.ts.map +1 -1
  170. package/dist/types/src/operations/create-markdown.d.ts +5 -0
  171. package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
  172. package/dist/types/src/operations/create.d.ts +5 -0
  173. package/dist/types/src/operations/create.d.ts.map +1 -0
  174. package/dist/types/src/operations/create.test.d.ts +2 -0
  175. package/dist/types/src/operations/create.test.d.ts.map +1 -0
  176. package/dist/types/src/operations/index.d.ts +3 -0
  177. package/dist/types/src/operations/index.d.ts.map +1 -0
  178. package/dist/types/src/operations/open.d.ts +5 -0
  179. package/dist/types/src/operations/open.d.ts.map +1 -0
  180. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  181. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  182. package/dist/types/src/operations/set-view-mode.d.ts +5 -0
  183. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
  184. package/dist/types/src/operations/update-markdown.d.ts +5 -0
  185. package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
  186. package/dist/types/src/operations/update.test.d.ts +2 -0
  187. package/dist/types/src/operations/update.test.d.ts.map +1 -0
  188. package/dist/types/src/plugin.d.ts +4 -0
  189. package/dist/types/src/plugin.d.ts.map +1 -0
  190. package/dist/types/src/testing.d.ts +7 -0
  191. package/dist/types/src/testing.d.ts.map +1 -0
  192. package/dist/types/src/translations.d.ts +74 -33
  193. package/dist/types/src/translations.d.ts.map +1 -1
  194. package/dist/types/src/types/Markdown.d.ts +35 -34
  195. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  196. package/dist/types/src/types/MarkdownCapabilities.d.ts +32 -0
  197. package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -0
  198. package/dist/types/src/types/MarkdownEvents.d.ts +3 -0
  199. package/dist/types/src/types/MarkdownEvents.d.ts.map +1 -0
  200. package/dist/types/src/types/MarkdownOperation.d.ts +64 -0
  201. package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
  202. package/dist/types/src/types/Settings.d.ts +30 -0
  203. package/dist/types/src/types/Settings.d.ts.map +1 -0
  204. package/dist/types/src/types/index.d.ts +5 -2
  205. package/dist/types/src/types/index.d.ts.map +1 -1
  206. package/dist/types/src/types/types.d.ts +3 -2
  207. package/dist/types/src/types/types.d.ts.map +1 -1
  208. package/dist/types/src/util.d.ts +8 -5
  209. package/dist/types/src/util.d.ts.map +1 -1
  210. package/dist/types/src/util.test.d.ts +2 -0
  211. package/dist/types/src/util.test.d.ts.map +1 -0
  212. package/dist/types/tsconfig.tsbuildinfo +1 -1
  213. package/package.json +154 -74
  214. package/src/MarkdownPlugin.node.ts +20 -0
  215. package/src/MarkdownPlugin.test.ts +26 -0
  216. package/src/MarkdownPlugin.tsx +34 -104
  217. package/src/MarkdownPlugin.workerd.ts +19 -0
  218. package/src/blueprints/index.ts +5 -0
  219. package/src/blueprints/markdown-blueprint.ts +43 -0
  220. package/src/capabilities/anchor-sort.ts +29 -22
  221. package/src/capabilities/app-graph-serializer.ts +52 -43
  222. package/src/capabilities/artifact-definition.ts +83 -86
  223. package/src/capabilities/blueprint-definition.ts +11 -31
  224. package/src/capabilities/comment-config.ts +33 -0
  225. package/src/capabilities/create-object.ts +31 -0
  226. package/src/capabilities/index.ts +15 -12
  227. package/src/capabilities/node.ts +13 -0
  228. package/src/capabilities/operation-handler.ts +16 -0
  229. package/src/capabilities/react-surface.tsx +116 -103
  230. package/src/capabilities/settings.ts +30 -18
  231. package/src/capabilities/state.ts +41 -25
  232. package/src/components/MarkdownEditor/FileUpload.tsx +63 -0
  233. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +63 -40
  234. package/src/components/MarkdownEditor/MarkdownEditor.tsx +248 -256
  235. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +169 -0
  236. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +47 -0
  237. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +40 -0
  238. package/src/components/MarkdownSettings/MarkdownSettings.tsx +23 -96
  239. package/src/components/MarkdownSettings/index.ts +1 -1
  240. package/src/components/index.ts +4 -5
  241. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.tsx +86 -0
  242. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.tsx +44 -0
  243. package/src/containers/EditableMarkdownCard/index.ts +6 -0
  244. package/src/containers/MarkdownArticle/MarkdownArticle.stories.tsx +135 -0
  245. package/src/containers/MarkdownArticle/MarkdownArticle.tsx +146 -0
  246. package/src/containers/MarkdownArticle/index.ts +6 -0
  247. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +68 -0
  248. package/src/containers/MarkdownCard/MarkdownCard.tsx +75 -0
  249. package/src/containers/MarkdownCard/index.ts +5 -0
  250. package/src/containers/MarkdownCard/snippet.ts +54 -0
  251. package/src/containers/index.ts +11 -0
  252. package/src/hooks/index.ts +3 -1
  253. package/src/hooks/useEditorMenuOptions.ts +68 -0
  254. package/src/hooks/useExtensions.tsx +268 -0
  255. package/src/hooks/useLinkQuery.ts +99 -0
  256. package/src/index.ts +2 -5
  257. package/src/meta.ts +16 -7
  258. package/src/operations/create-markdown.ts +19 -0
  259. package/src/operations/create.conversations.json +1 -0
  260. package/src/operations/create.test.ts +96 -0
  261. package/src/operations/create.ts +26 -0
  262. package/src/operations/index.ts +14 -0
  263. package/src/operations/open.ts +25 -0
  264. package/src/operations/scroll-to-anchor.ts +38 -0
  265. package/src/operations/set-view-mode.ts +23 -0
  266. package/src/operations/update-markdown.ts +51 -0
  267. package/src/operations/update.conversations.json +1 -0
  268. package/src/operations/update.test.ts +213 -0
  269. package/src/plugin.ts +11 -0
  270. package/src/testing.ts +32 -0
  271. package/src/translations.ts +28 -33
  272. package/src/types/Markdown.ts +28 -34
  273. package/src/types/MarkdownCapabilities.ts +51 -0
  274. package/src/types/MarkdownEvents.ts +14 -0
  275. package/src/types/MarkdownOperation.ts +125 -0
  276. package/src/types/Settings.ts +85 -0
  277. package/src/types/index.ts +6 -2
  278. package/src/types/types.ts +7 -3
  279. package/src/util.test.ts +44 -0
  280. package/src/util.tsx +82 -13
  281. package/dist/lib/browser/MarkdownCard-AGWOTODZ.mjs +0 -83
  282. package/dist/lib/browser/MarkdownCard-AGWOTODZ.mjs.map +0 -7
  283. package/dist/lib/browser/MarkdownContainer-MV2UNAUV.mjs +0 -751
  284. package/dist/lib/browser/MarkdownContainer-MV2UNAUV.mjs.map +0 -7
  285. package/dist/lib/browser/anchor-sort-YWJI3BKT.mjs +0 -32
  286. package/dist/lib/browser/anchor-sort-YWJI3BKT.mjs.map +0 -7
  287. package/dist/lib/browser/app-graph-serializer-KYDFCUOW.mjs +0 -51
  288. package/dist/lib/browser/app-graph-serializer-KYDFCUOW.mjs.map +0 -7
  289. package/dist/lib/browser/blueprint-definition-BHRMFZAC.mjs +0 -11
  290. package/dist/lib/browser/chunk-6KU5DKP7.mjs +0 -51
  291. package/dist/lib/browser/chunk-6KU5DKP7.mjs.map +0 -7
  292. package/dist/lib/browser/chunk-HBBEHOP3.mjs +0 -106
  293. package/dist/lib/browser/chunk-HBBEHOP3.mjs.map +0 -7
  294. package/dist/lib/browser/chunk-O6XUPW6S.mjs +0 -53
  295. package/dist/lib/browser/chunk-O6XUPW6S.mjs.map +0 -7
  296. package/dist/lib/browser/chunk-ODB2PTBP.mjs +0 -28
  297. package/dist/lib/browser/chunk-ODB2PTBP.mjs.map +0 -7
  298. package/dist/lib/browser/chunk-OY6CGPOO.mjs +0 -16
  299. package/dist/lib/browser/chunk-OY6CGPOO.mjs.map +0 -7
  300. package/dist/lib/browser/chunk-XMT6PMU5.mjs +0 -79
  301. package/dist/lib/browser/chunk-XMT6PMU5.mjs.map +0 -7
  302. package/dist/lib/browser/chunk-Z5PDJNBV.mjs +0 -22
  303. package/dist/lib/browser/chunk-Z5PDJNBV.mjs.map +0 -7
  304. package/dist/lib/browser/index.mjs +0 -174
  305. package/dist/lib/browser/index.mjs.map +0 -7
  306. package/dist/lib/browser/intent-resolver-XHVCZZHU.mjs +0 -62
  307. package/dist/lib/browser/intent-resolver-XHVCZZHU.mjs.map +0 -7
  308. package/dist/lib/browser/meta.json +0 -1
  309. package/dist/lib/browser/react-surface-3A2GO3BN.mjs +0 -215
  310. package/dist/lib/browser/react-surface-3A2GO3BN.mjs.map +0 -7
  311. package/dist/lib/browser/settings-XY265Y2Q.mjs +0 -28
  312. package/dist/lib/browser/settings-XY265Y2Q.mjs.map +0 -7
  313. package/dist/lib/browser/state-6QODXCSZ.mjs +0 -37
  314. package/dist/lib/browser/state-6QODXCSZ.mjs.map +0 -7
  315. package/dist/lib/browser/toolkit-YA65QX2S.mjs +0 -76
  316. package/dist/lib/browser/toolkit-YA65QX2S.mjs.map +0 -7
  317. package/dist/lib/browser/types/index.mjs +0 -10
  318. package/dist/lib/node-esm/MarkdownCard-B2IWTFOC.mjs +0 -84
  319. package/dist/lib/node-esm/MarkdownCard-B2IWTFOC.mjs.map +0 -7
  320. package/dist/lib/node-esm/MarkdownContainer-J2R3DLCQ.mjs +0 -752
  321. package/dist/lib/node-esm/MarkdownContainer-J2R3DLCQ.mjs.map +0 -7
  322. package/dist/lib/node-esm/anchor-sort-FCRYL2FX.mjs +0 -33
  323. package/dist/lib/node-esm/anchor-sort-FCRYL2FX.mjs.map +0 -7
  324. package/dist/lib/node-esm/app-graph-serializer-FAUQM3BH.mjs +0 -52
  325. package/dist/lib/node-esm/app-graph-serializer-FAUQM3BH.mjs.map +0 -7
  326. package/dist/lib/node-esm/blueprint-definition-XYFKMIDR.mjs +0 -12
  327. package/dist/lib/node-esm/chunk-7RDNIMTF.mjs +0 -24
  328. package/dist/lib/node-esm/chunk-7RDNIMTF.mjs.map +0 -7
  329. package/dist/lib/node-esm/chunk-CB2R4YIY.mjs +0 -17
  330. package/dist/lib/node-esm/chunk-CB2R4YIY.mjs.map +0 -7
  331. package/dist/lib/node-esm/chunk-FVI7LPC3.mjs +0 -107
  332. package/dist/lib/node-esm/chunk-FVI7LPC3.mjs.map +0 -7
  333. package/dist/lib/node-esm/chunk-FWZKC6X5.mjs +0 -80
  334. package/dist/lib/node-esm/chunk-FWZKC6X5.mjs.map +0 -7
  335. package/dist/lib/node-esm/chunk-VCG2U522.mjs +0 -29
  336. package/dist/lib/node-esm/chunk-VCG2U522.mjs.map +0 -7
  337. package/dist/lib/node-esm/chunk-XO3IEQJE.mjs +0 -54
  338. package/dist/lib/node-esm/chunk-XO3IEQJE.mjs.map +0 -7
  339. package/dist/lib/node-esm/chunk-ZBXV4ON7.mjs +0 -52
  340. package/dist/lib/node-esm/chunk-ZBXV4ON7.mjs.map +0 -7
  341. package/dist/lib/node-esm/index.mjs +0 -175
  342. package/dist/lib/node-esm/index.mjs.map +0 -7
  343. package/dist/lib/node-esm/intent-resolver-7A2EXGZQ.mjs +0 -63
  344. package/dist/lib/node-esm/intent-resolver-7A2EXGZQ.mjs.map +0 -7
  345. package/dist/lib/node-esm/meta.json +0 -1
  346. package/dist/lib/node-esm/react-surface-RCLL5WVQ.mjs +0 -216
  347. package/dist/lib/node-esm/react-surface-RCLL5WVQ.mjs.map +0 -7
  348. package/dist/lib/node-esm/settings-H3UDD3KO.mjs +0 -29
  349. package/dist/lib/node-esm/settings-H3UDD3KO.mjs.map +0 -7
  350. package/dist/lib/node-esm/state-W3PECOJX.mjs +0 -38
  351. package/dist/lib/node-esm/state-W3PECOJX.mjs.map +0 -7
  352. package/dist/lib/node-esm/toolkit-HSIKUGNK.mjs +0 -77
  353. package/dist/lib/node-esm/toolkit-HSIKUGNK.mjs.map +0 -7
  354. package/dist/lib/node-esm/types/index.mjs +0 -11
  355. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  356. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  357. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  358. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  359. package/dist/types/src/capabilities/toolkit.d.ts +0 -4
  360. package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
  361. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +0 -7
  362. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +0 -1
  363. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +0 -9
  364. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +0 -1
  365. package/dist/types/src/components/MarkdownCard/index.d.ts +0 -4
  366. package/dist/types/src/components/MarkdownCard/index.d.ts.map +0 -1
  367. package/dist/types/src/components/MarkdownContainer.d.ts +0 -18
  368. package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
  369. package/dist/types/src/components/MarkdownContainer.stories.d.ts +0 -55
  370. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
  371. package/dist/types/src/components/Suggestions.stories.d.ts +0 -11
  372. package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
  373. package/dist/types/src/components/Toolbar.stories.d.ts +0 -48
  374. package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
  375. package/dist/types/src/events.d.ts +0 -4
  376. package/dist/types/src/events.d.ts.map +0 -1
  377. package/dist/types/src/extensions.d.ts +0 -22
  378. package/dist/types/src/extensions.d.ts.map +0 -1
  379. package/dist/types/src/functions/diff.d.ts +0 -6
  380. package/dist/types/src/functions/diff.d.ts.map +0 -1
  381. package/dist/types/src/functions/index.d.ts +0 -3
  382. package/dist/types/src/functions/index.d.ts.map +0 -1
  383. package/dist/types/src/functions/open.d.ts +0 -7
  384. package/dist/types/src/functions/open.d.ts.map +0 -1
  385. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
  386. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
  387. package/dist/types/src/types/MarkdownAction.d.ts +0 -34
  388. package/dist/types/src/types/MarkdownAction.d.ts.map +0 -1
  389. package/src/capabilities/capabilities.ts +0 -21
  390. package/src/capabilities/intent-resolver.ts +0 -58
  391. package/src/capabilities/toolkit.ts +0 -49
  392. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +0 -76
  393. package/src/components/MarkdownCard/MarkdownCard.tsx +0 -76
  394. package/src/components/MarkdownCard/index.ts +0 -9
  395. package/src/components/MarkdownContainer.stories.tsx +0 -109
  396. package/src/components/MarkdownContainer.tsx +0 -257
  397. package/src/components/Suggestions.stories.tsx +0 -219
  398. package/src/components/Toolbar.stories.tsx +0 -118
  399. package/src/events.ts +0 -11
  400. package/src/extensions.tsx +0 -300
  401. package/src/functions/diff.ts +0 -37
  402. package/src/functions/index.ts +0 -6
  403. package/src/functions/open.ts +0 -32
  404. package/src/hooks/useSelectCurrentThread.tsx +0 -56
  405. package/src/types/MarkdownAction.ts +0 -29
  406. /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  407. /package/dist/lib/{browser/blueprint-definition-BHRMFZAC.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  408. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  409. /package/dist/lib/{node-esm/blueprint-definition-XYFKMIDR.mjs.map → neutral/meta.mjs.map} +0 -0
@@ -0,0 +1,85 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import * as Schema from 'effect/Schema';
8
+
9
+ import { EditorInputMode, EditorViewMode } from '@dxos/ui-editor/types';
10
+
11
+ /**
12
+ * Determines how new comment threads on markdown documents are wired up to
13
+ * the comment-thread AI agent (plugin-thread). The agent's identity (name,
14
+ * DID) is resolved at runtime via the AgentIdentity capability — this
15
+ * setting only controls whether and when the agent fires.
16
+ *
17
+ * - `off`: comments are plain user-only threads (no agent).
18
+ * - `auto`: every user message in a thread triggers an agent response.
19
+ * - `mention`: agent only responds when the message contains `@{agentName}`.
20
+ */
21
+ export const CommentAgentMode = Schema.Union(Schema.Literal('off'), Schema.Literal('auto'), Schema.Literal('mention'));
22
+ export type CommentAgentMode = Schema.Schema.Type<typeof CommentAgentMode>;
23
+
24
+ /**
25
+ * Plugin settings.
26
+ */
27
+ export const Settings = Schema.mutable(
28
+ Schema.Struct({
29
+ defaultViewMode: EditorViewMode.annotations({
30
+ title: 'Default view mode',
31
+ description: 'Set whether documents open in editing or read-only mode.',
32
+ }),
33
+ commentAgentMode: Schema.optional(
34
+ CommentAgentMode.annotations({
35
+ title: 'Comment agent mode',
36
+ description:
37
+ "How new comment threads on markdown documents are processed: 'off' (no AI), 'auto' (AI responds to every user message), or 'mention' (AI responds only on @mention).",
38
+ }),
39
+ ),
40
+ editorInputMode: Schema.optional(
41
+ EditorInputMode.annotations({
42
+ title: 'Editor input mode',
43
+ description: 'Choose keyboard bindings for the editor.',
44
+ }),
45
+ ),
46
+ toolbar: Schema.optional(
47
+ Schema.Boolean.annotations({
48
+ title: 'Show toolbar',
49
+ description: 'Display a formatting toolbar above the editor.',
50
+ }),
51
+ ),
52
+ numberedHeadings: Schema.optional(
53
+ Schema.Boolean.annotations({
54
+ title: 'Numbered headings',
55
+ description: 'Automatically number heading levels in the document.',
56
+ }),
57
+ ),
58
+ folding: Schema.optional(
59
+ Schema.Boolean.annotations({
60
+ title: 'Folding',
61
+ description: 'Allow collapsing and expanding sections by heading.',
62
+ }),
63
+ ),
64
+ experimental: Schema.optional(
65
+ Schema.Boolean.annotations({
66
+ title: 'Enable experimental features',
67
+ description: 'Turn on features that are still in development.',
68
+ }),
69
+ ),
70
+ debug: Schema.optional(
71
+ Schema.Boolean.annotations({
72
+ title: 'Enable debugging features',
73
+ description: 'Show developer tools and diagnostics for the editor.',
74
+ }),
75
+ ),
76
+ snippets: Schema.optional(
77
+ Schema.String.annotations({
78
+ title: 'Snippets',
79
+ description: 'Input snippets to replay for testing purposes.',
80
+ }),
81
+ ),
82
+ }),
83
+ );
84
+
85
+ export interface Settings extends Schema.Schema.Type<typeof Settings> {}
@@ -2,6 +2,10 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- export * as MarkdownAction from './MarkdownAction';
6
- export * as Markdown from './Markdown';
7
5
  export * from './types';
6
+
7
+ export * as Markdown from './Markdown';
8
+ export * as MarkdownCapabilities from './MarkdownCapabilities';
9
+ export * as MarkdownEvents from './MarkdownEvents';
10
+ export * as MarkdownOperation from './MarkdownOperation';
11
+ export * as Settings from './Settings';
@@ -2,8 +2,9 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type Extension } from '@dxos/react-ui-editor';
6
- import { type EditorViewMode } from '@dxos/react-ui-editor/types';
5
+ import { type Extension } from '@codemirror/state';
6
+
7
+ import { type EditorViewMode } from '@dxos/ui-editor/types';
7
8
 
8
9
  import { type Document } from './Markdown';
9
10
 
@@ -11,7 +12,10 @@ import { type Document } from './Markdown';
11
12
  // TODO(wittjosiah): MarkdownExtensionProvider is a part of the MarkdownCapabilities api which should be in ./types.
12
13
 
13
14
  // TODO(burdon): Async?
14
- export type MarkdownExtensionProvider = (props: { document?: Document }) => Extension | undefined;
15
+ export type MarkdownExtensionProvider = (props: {
16
+ document?: Document;
17
+ viewMode?: EditorViewMode;
18
+ }) => Extension | undefined;
15
19
 
16
20
  export type MarkdownPluginState = {
17
21
  // Codemirror extensions provided by other plugins.
@@ -0,0 +1,44 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { describe, expect, it } from 'vitest';
6
+
7
+ import { trim } from '@dxos/util';
8
+
9
+ import { getFallbackName } from './util';
10
+
11
+ describe('markdown utils', () => {
12
+ it('getFallbackName', () => {
13
+ const tests = [
14
+ {
15
+ content: '',
16
+ expected: '',
17
+ },
18
+ {
19
+ content: trim`
20
+ ![img](https://dxos.network/dxos-logotype-blue.png)
21
+
22
+ # Welcome to Composer by DXOS
23
+
24
+ ## What is Composer?
25
+ `,
26
+ expected: 'Welcome to Composer by DXOS',
27
+ },
28
+ {
29
+ content: trim`
30
+ ![img](https://dxos.network/dxos-logotype-blue.png)
31
+
32
+ ---
33
+
34
+ This document is about the decetralized platform DXOS.
35
+ `,
36
+ expected: 'This document is about the…',
37
+ },
38
+ ];
39
+
40
+ tests.forEach(({ content, expected }) => {
41
+ expect(getFallbackName(content)).toBe(expected);
42
+ });
43
+ });
44
+ });
package/src/util.tsx CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  import { debounce } from '@dxos/async';
6
6
  import { Obj } from '@dxos/echo';
7
- import { type TypedObjectSerializer } from '@dxos/plugin-space/types';
7
+ import { type TypedObjectSerializer } from '@dxos/plugin-space';
8
8
 
9
- import { Markdown } from './types';
9
+ import { Markdown } from '#types';
10
10
 
11
11
  /**
12
12
  * Checks if an object conforms to the interface needed to render an editor.
@@ -32,24 +32,93 @@ export const isMarkdownProperties = (data: unknown): data is MarkdownProperties
32
32
 
33
33
  const nonTitleChars = /[^\w ]/g;
34
34
 
35
- export const getFallbackName = (content: string) => {
36
- return content.substring(0, 31).split('\n')[0].replaceAll(nonTitleChars, '').trim();
35
+ // Lines matching these patterns are skipped.
36
+ const skipPatterns = [
37
+ /^!\[/, // Image.
38
+ /^---\s*$/, // Horizontal rule.
39
+ /^```/, // Code block fence.
40
+ /^\s*$/, // Empty or whitespace-only.
41
+ ];
42
+
43
+ // Patterns to extract title text (first capture group is used).
44
+ const titlePatterns = [
45
+ /^#{1,6}\s+(.+)/, // Heading.
46
+ ];
47
+
48
+ /**
49
+ * Extracts a fallback name by scanning lines for the first heading or text fragment.
50
+ */
51
+ export const getFallbackName = (content = ''): string => {
52
+ const len = content.length;
53
+
54
+ let i = 0;
55
+ while (i < len) {
56
+ // Find end of line.
57
+ let lineEnd = i;
58
+ while (lineEnd < len && content[lineEnd] !== '\n') {
59
+ lineEnd++;
60
+ }
61
+
62
+ const line = content.slice(i, lineEnd).trim();
63
+ i = lineEnd + 1;
64
+
65
+ // Skip lines matching skip patterns.
66
+ if (skipPatterns.some((pattern) => pattern.test(line))) {
67
+ continue;
68
+ }
69
+
70
+ // Check for title patterns.
71
+ for (const pattern of titlePatterns) {
72
+ const match = pattern.exec(line);
73
+ if (match) {
74
+ const text = match[1].replaceAll(nonTitleChars, '').trim();
75
+ if (text.length > 0) {
76
+ return text;
77
+ }
78
+ }
79
+ }
80
+
81
+ // Use line as plain text fallback.
82
+ const maxLen = 32;
83
+ const text = line.replaceAll(nonTitleChars, '').trim();
84
+ if (text.length > 0) {
85
+ if (text.length > maxLen) {
86
+ const words = text.split(/\s+/);
87
+ let result = '';
88
+ for (const word of words) {
89
+ const next = result.length === 0 ? word : result + ' ' + word;
90
+ if (next.length > maxLen) {
91
+ break;
92
+ }
93
+ result = next;
94
+ }
95
+
96
+ return result + '…';
97
+ }
98
+
99
+ return text;
100
+ }
101
+ }
102
+
103
+ return '';
37
104
  };
38
105
 
39
- export const getContentSnippet = (content: string) => {
106
+ // TODO(burdon): Option to strip Markdown.
107
+ export const getContentSnippet = (content = '', maxLines = 3) => {
40
108
  const abstract = content
41
109
  .split('\n')
42
- .filter((line) => !line.startsWith('#'))
43
- .filter((line) => line.trim() !== '')[0]
44
- .replaceAll(nonTitleChars, '')
45
- .trim();
46
- return abstract;
110
+ .filter((line) => !line.startsWith('!'))
111
+ .filter((line) => line.trim() !== '');
112
+
113
+ return abstract.slice(0, maxLines).join('\n') ?? '';
47
114
  };
48
115
 
49
- export const setFallbackName = debounce((doc: Markdown.Document, content: string) => {
116
+ export const setFallbackName = debounce((doc: Markdown.Document, content = '') => {
50
117
  const name = getFallbackName(content);
51
118
  if (doc.fallbackName !== name) {
52
- doc.fallbackName = name;
119
+ Obj.update(doc, (doc) => {
120
+ doc.fallbackName = name;
121
+ });
53
122
  }
54
123
  }, 200);
55
124
 
@@ -61,6 +130,6 @@ export const serializer: TypedObjectSerializer<Markdown.Document> = {
61
130
 
62
131
  deserialize: async ({ content: serialized }) => {
63
132
  const { name, fallbackName, content } = JSON.parse(serialized);
64
- return Markdown.makeDocument({ name, fallbackName, content });
133
+ return Markdown.make({ name, fallbackName, content });
65
134
  },
66
135
  };
@@ -1,83 +0,0 @@
1
- import {
2
- getContentSnippet,
3
- getFallbackName
4
- } from "./chunk-6KU5DKP7.mjs";
5
- import {
6
- Markdown_exports
7
- } from "./chunk-XMT6PMU5.mjs";
8
- import {
9
- meta
10
- } from "./chunk-ODB2PTBP.mjs";
11
-
12
- // src/components/MarkdownCard/MarkdownCard.tsx
13
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
14
- import * as Function from "effect/Function";
15
- import React, { useCallback } from "react";
16
- import { LayoutAction, chain, createIntent, useIntentDispatcher } from "@dxos/app-framework";
17
- import { Obj } from "@dxos/echo";
18
- import { fullyQualifiedId } from "@dxos/react-client/echo";
19
- import { IconButton, useTranslation } from "@dxos/react-ui";
20
- import { Card } from "@dxos/react-ui-stack";
21
- import { DataType } from "@dxos/schema";
22
- var getTitle = (subject, fallback) => {
23
- if (Obj.instanceOf(Markdown_exports.Document, subject)) {
24
- return subject.name ?? subject.fallbackName ?? getFallbackName(subject.content?.target?.content ?? fallback);
25
- } else if (Obj.instanceOf(DataType.Text, subject)) {
26
- return getFallbackName(subject.content);
27
- }
28
- };
29
- var getSnippet = (subject, fallback) => {
30
- if (Obj.instanceOf(Markdown_exports.Document, subject)) {
31
- return Obj.getDescription(subject) || getContentSnippet(subject.content?.target?.content ?? fallback);
32
- } else if (Obj.instanceOf(DataType.Text, subject)) {
33
- return getContentSnippet(subject.content ?? fallback);
34
- }
35
- };
36
- var MarkdownCard = ({ subject, role }) => {
37
- var _effect = _useSignals();
38
- try {
39
- const { dispatchPromise: dispatch } = useIntentDispatcher();
40
- const { t } = useTranslation(meta.id);
41
- const snippet = getSnippet(subject, t("fallback abstract"));
42
- const handleNavigate = useCallback(() => dispatch(Function.pipe(createIntent(LayoutAction.UpdatePopover, {
43
- part: "popover",
44
- subject: null,
45
- options: {
46
- state: false,
47
- anchorId: ""
48
- }
49
- }), chain(LayoutAction.Open, {
50
- part: "main",
51
- subject: [
52
- fullyQualifiedId(subject)
53
- ]
54
- }))), [
55
- dispatch,
56
- subject
57
- ]);
58
- return /* @__PURE__ */ React.createElement(Card.SurfaceRoot, {
59
- role
60
- }, /* @__PURE__ */ React.createElement(Card.Heading, {
61
- classNames: "flex items-center"
62
- }, getTitle(subject, t("fallback title")), /* @__PURE__ */ React.createElement("span", {
63
- className: "grow"
64
- }), /* @__PURE__ */ React.createElement(IconButton, {
65
- iconOnly: true,
66
- icon: "ph--arrow-right--regular",
67
- label: t("navigate to document label"),
68
- onClick: handleNavigate
69
- })), snippet && /* @__PURE__ */ React.createElement(Card.Text, {
70
- classNames: "line-clamp-3 text-sm text-description"
71
- }, snippet));
72
- } finally {
73
- _effect.f();
74
- }
75
- };
76
-
77
- // src/components/MarkdownCard/index.ts
78
- var MarkdownCard_default = MarkdownCard;
79
- export {
80
- MarkdownCard,
81
- MarkdownCard_default as default
82
- };
83
- //# sourceMappingURL=MarkdownCard-AGWOTODZ.mjs.map
@@ -1,7 +0,0 @@
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, useIntentDispatcher } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { type PreviewProps } from '@dxos/plugin-preview';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { IconButton, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\n\nimport { meta } from '../../meta';\nimport { Markdown } from '../../types';\nimport { getContentSnippet, getFallbackName } from '../../util';\n\n// TODO(burdon): Factor out.\nconst getTitle = (subject: Markdown.Document | DataType.Text, fallback: string) => {\n if (Obj.instanceOf(Markdown.Document, subject)) {\n return subject.name ?? subject.fallbackName ?? getFallbackName(subject.content?.target?.content ?? fallback);\n } else if (Obj.instanceOf(DataType.Text, subject)) {\n return getFallbackName(subject.content);\n }\n};\n\n// TODO(burdon): Factor out.\nconst getSnippet = (subject: Markdown.Document | DataType.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(DataType.Text, subject)) {\n return getContentSnippet(subject.content ?? fallback);\n }\n};\n\nexport type MarkdownCardProps = PreviewProps<Markdown.Document | DataType.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\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, { part: 'main', subject: [fullyQualifiedId(subject)] }),\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.SurfaceRoot>\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,cAAcC,2BAA2B;AACvE,SAASC,WAAW;AAEpB,SAASC,wBAAwB;AACjC,SAASC,YAAYC,sBAAsB;AAC3C,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAOzB,IAAMC,WAAW,CAACC,SAA4CC,aAAAA;AAC5D,MAAIC,IAAIC,WAAWC,iBAASC,UAAUL,OAAAA,GAAU;AAC9C,WAAOA,QAAQM,QAAQN,QAAQO,gBAAgBC,gBAAgBR,QAAQS,SAASC,QAAQD,WAAWR,QAAAA;EACrG,WAAWC,IAAIC,WAAWQ,SAASC,MAAMZ,OAAAA,GAAU;AACjD,WAAOQ,gBAAgBR,QAAQS,OAAO;EACxC;AACF;AAGA,IAAMI,aAAa,CAACb,SAA4CC,aAAAA;AAC9D,MAAIC,IAAIC,WAAWC,iBAASC,UAAUL,OAAAA,GAAU;AAC9C,WAAOE,IAAIY,eAAed,OAAAA,KAAYe,kBAAkBf,QAAQS,SAASC,QAAQD,WAAWR,QAAAA;EAC9F,WAAWC,IAAIC,WAAWQ,SAASC,MAAMZ,OAAAA,GAAU;AACjD,WAAOe,kBAAkBf,QAAQS,WAAWR,QAAAA;EAC9C;AACF;AAIO,IAAMe,eAAe,CAAC,EAAEhB,SAASiB,KAAI,MAAqB;;;AAC/D,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AACtC,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,UAAUZ,WAAWb,SAASqB,EAAE,mBAAA,CAAA;AAGtC,UAAMK,iBAAiBC,YACrB,MACER,SACWS,cACPC,aAAaC,aAAaC,eAAe;MACvCC,MAAM;MACNhC,SAAS;MACTiC,SAAS;QAAEC,OAAO;QAAOC,UAAU;MAAG;IACxC,CAAA,GACAC,MAAMN,aAAaO,MAAM;MAAEL,MAAM;MAAQhC,SAAS;QAACsC,iBAAiBtC,OAAAA;;IAAU,CAAA,CAAA,CAAA,GAGpF;MAACmB;MAAUnB;KAAQ;AAGrB,WACE,sBAAA,cAACuC,KAAKC,aAAW;MAACvB;OAChB,sBAAA,cAACsB,KAAKE,SAAO;MAACC,YAAW;OACtB3C,SAASC,SAASqB,EAAE,gBAAA,CAAA,GACrB,sBAAA,cAACsB,QAAAA;MAAKC,WAAU;QAChB,sBAAA,cAACC,YAAAA;MACCC,UAAAA;MACAC,MAAK;MACLC,OAAO3B,EAAE,4BAAA;MACT4B,SAASvB;SAGZD,WAAW,sBAAA,cAACc,KAAK3B,MAAI;MAAC8B,YAAW;OAAyCjB,OAAAA,CAAAA;;;;AAGjF;;;ACnEA,IAAA,uBAAeyB;",
6
- "names": ["Function", "React", "useCallback", "LayoutAction", "chain", "createIntent", "useIntentDispatcher", "Obj", "fullyQualifiedId", "IconButton", "useTranslation", "Card", "DataType", "getTitle", "subject", "fallback", "Obj", "instanceOf", "Markdown", "Document", "name", "fallbackName", "getFallbackName", "content", "target", "DataType", "Text", "getSnippet", "getDescription", "getContentSnippet", "MarkdownCard", "role", "dispatchPromise", "dispatch", "useIntentDispatcher", "t", "useTranslation", "meta", "id", "snippet", "handleNavigate", "useCallback", "pipe", "createIntent", "LayoutAction", "UpdatePopover", "part", "options", "state", "anchorId", "chain", "Open", "fullyQualifiedId", "Card", "SurfaceRoot", "Heading", "classNames", "span", "className", "IconButton", "iconOnly", "icon", "label", "onClick", "MarkdownCard"]
7
- }