@dxos/plugin-markdown 0.8.4-main.fd6878d → 0.9.0

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 (402) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs +34 -0
  4. package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs.map +7 -0
  5. package/dist/lib/neutral/MarkdownArticle-LWT5RFFJ.mjs +126 -0
  6. package/dist/lib/neutral/MarkdownArticle-LWT5RFFJ.mjs.map +7 -0
  7. package/dist/lib/neutral/MarkdownCard-TBLIRDBO.mjs +108 -0
  8. package/dist/lib/neutral/MarkdownCard-TBLIRDBO.mjs.map +7 -0
  9. package/dist/lib/neutral/MarkdownPlugin.mjs +62 -0
  10. package/dist/lib/neutral/MarkdownPlugin.mjs.map +7 -0
  11. package/dist/lib/neutral/MarkdownPlugin.node.mjs +25 -0
  12. package/dist/lib/neutral/MarkdownPlugin.node.mjs.map +7 -0
  13. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs +23 -0
  14. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs.map +7 -0
  15. package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs +32 -0
  16. package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
  17. package/dist/lib/neutral/anchor-sort-UXN4RHFX.mjs +32 -0
  18. package/dist/lib/neutral/anchor-sort-UXN4RHFX.mjs.map +7 -0
  19. package/dist/lib/neutral/app-graph-builder-BWBA23FF.mjs +67 -0
  20. package/dist/lib/neutral/app-graph-builder-BWBA23FF.mjs.map +7 -0
  21. package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs +56 -0
  22. package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs.map +7 -0
  23. package/dist/lib/neutral/blueprint-definition-DSPXK77L.mjs +15 -0
  24. package/dist/lib/neutral/blueprint-definition-DSPXK77L.mjs.map +7 -0
  25. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  26. package/dist/lib/neutral/capabilities/index.mjs +29 -0
  27. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  28. package/dist/lib/neutral/capabilities/node.mjs +11 -0
  29. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-36QFEVOZ.mjs +30 -0
  31. package/dist/lib/neutral/chunk-36QFEVOZ.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-67DKWOKF.mjs +10 -0
  33. package/dist/lib/neutral/chunk-67DKWOKF.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-CIJD7P6X.mjs +8 -0
  35. package/dist/lib/neutral/chunk-CIJD7P6X.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  37. package/dist/lib/neutral/chunk-KDN4GKG2.mjs +98 -0
  38. package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-LXNSKCPD.mjs +44 -0
  40. package/dist/lib/neutral/chunk-LXNSKCPD.mjs.map +7 -0
  41. package/dist/lib/neutral/chunk-Y2LQRUU7.mjs +285 -0
  42. package/dist/lib/neutral/chunk-Y2LQRUU7.mjs.map +7 -0
  43. package/dist/lib/neutral/comment-config-EGY7RPPW.mjs +32 -0
  44. package/dist/lib/neutral/comment-config-EGY7RPPW.mjs.map +7 -0
  45. package/dist/lib/neutral/components/index.mjs +378 -0
  46. package/dist/lib/neutral/components/index.mjs.map +7 -0
  47. package/dist/lib/neutral/containers/index.mjs +13 -0
  48. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  49. package/dist/lib/neutral/create-JK35XC4R.mjs +29 -0
  50. package/dist/lib/neutral/create-JK35XC4R.mjs.map +7 -0
  51. package/dist/lib/neutral/create-markdown-7MLE625M.mjs +20 -0
  52. package/dist/lib/neutral/create-markdown-7MLE625M.mjs.map +7 -0
  53. package/dist/lib/neutral/create-object-MU2LGXG6.mjs +31 -0
  54. package/dist/lib/neutral/create-object-MU2LGXG6.mjs.map +7 -0
  55. package/dist/lib/neutral/hooks/index.mjs +317 -0
  56. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  57. package/dist/lib/neutral/index.mjs +48 -0
  58. package/dist/lib/neutral/index.mjs.map +7 -0
  59. package/dist/lib/neutral/meta.json +1 -0
  60. package/dist/lib/neutral/meta.mjs +8 -0
  61. package/dist/lib/neutral/meta.mjs.map +7 -0
  62. package/dist/lib/neutral/navigation-resolver-3KBOMN4U.mjs +14 -0
  63. package/dist/lib/neutral/navigation-resolver-3KBOMN4U.mjs.map +7 -0
  64. package/dist/lib/neutral/open-5YC77C4O.mjs +20 -0
  65. package/dist/lib/neutral/open-5YC77C4O.mjs.map +7 -0
  66. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs +13 -0
  67. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs.map +7 -0
  68. package/dist/lib/neutral/operations/index.mjs +8 -0
  69. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  70. package/dist/lib/neutral/plugin.mjs +16 -0
  71. package/dist/lib/neutral/plugin.mjs.map +7 -0
  72. package/dist/lib/neutral/react-surface-XYZJBKHZ.mjs +119 -0
  73. package/dist/lib/neutral/react-surface-XYZJBKHZ.mjs.map +7 -0
  74. package/dist/lib/neutral/scroll-to-anchor-GAFB7W55.mjs +38 -0
  75. package/dist/lib/neutral/scroll-to-anchor-GAFB7W55.mjs.map +7 -0
  76. package/dist/lib/neutral/set-view-mode-N7UHYMPG.mjs +24 -0
  77. package/dist/lib/neutral/set-view-mode-N7UHYMPG.mjs.map +7 -0
  78. package/dist/lib/neutral/settings-TDGDLCUR.mjs +34 -0
  79. package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +7 -0
  80. package/dist/lib/neutral/state-5COCF5PN.mjs +44 -0
  81. package/dist/lib/neutral/state-5COCF5PN.mjs.map +7 -0
  82. package/dist/lib/neutral/testing.mjs +30 -0
  83. package/dist/lib/neutral/testing.mjs.map +7 -0
  84. package/dist/lib/neutral/translations.mjs +44 -0
  85. package/dist/lib/neutral/translations.mjs.map +7 -0
  86. package/dist/lib/neutral/types/index.mjs +16 -0
  87. package/dist/lib/neutral/types/index.mjs.map +7 -0
  88. package/dist/lib/neutral/update-markdown-NNINDDV5.mjs +44 -0
  89. package/dist/lib/neutral/update-markdown-NNINDDV5.mjs.map +7 -0
  90. package/dist/types/src/MarkdownPlugin.d.ts +3 -1
  91. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  92. package/dist/types/src/MarkdownPlugin.node.d.ts +4 -0
  93. package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -0
  94. package/dist/types/src/MarkdownPlugin.test.d.ts +2 -0
  95. package/dist/types/src/MarkdownPlugin.test.d.ts.map +1 -0
  96. package/dist/types/src/MarkdownPlugin.workerd.d.ts +4 -0
  97. package/dist/types/src/MarkdownPlugin.workerd.d.ts.map +1 -0
  98. package/dist/types/src/blueprints/index.d.ts +2 -0
  99. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  100. package/dist/types/src/blueprints/markdown-blueprint.d.ts +4 -0
  101. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -0
  102. package/dist/types/src/capabilities/anchor-sort.d.ts +4 -4
  103. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  105. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  106. package/dist/types/src/capabilities/app-graph-serializer.d.ts +3 -2
  107. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  109. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  110. package/dist/types/src/capabilities/comment-config.d.ts +6 -0
  111. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  112. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  113. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  114. package/dist/types/src/capabilities/index.d.ts +19 -15
  115. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/navigation-resolver.d.ts +6 -0
  117. package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/node.d.ts +10 -0
  119. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  121. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  123. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  124. package/dist/types/src/capabilities/settings.d.ts +4 -2
  125. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  126. package/dist/types/src/capabilities/state.d.ts +4 -9
  127. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  128. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +11 -0
  129. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -0
  130. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +52 -21
  131. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  132. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +8 -15
  133. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  134. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +33 -0
  135. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -0
  136. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +13 -0
  137. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -0
  138. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +4 -4
  139. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  140. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +94 -0
  141. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -0
  142. package/dist/types/src/components/MarkdownSettings/index.d.ts +1 -1
  143. package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -1
  144. package/dist/types/src/components/index.d.ts +3 -3
  145. package/dist/types/src/components/index.d.ts.map +1 -1
  146. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts +15 -0
  147. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
  148. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts +9 -0
  149. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts.map +1 -0
  150. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
  151. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
  152. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts +40 -0
  153. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts.map +1 -0
  154. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts +97 -0
  155. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts.map +1 -0
  156. package/dist/types/src/containers/MarkdownArticle/index.d.ts +3 -0
  157. package/dist/types/src/containers/MarkdownArticle/index.d.ts.map +1 -0
  158. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts +8 -0
  159. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  160. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
  161. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  162. package/dist/types/src/containers/MarkdownCard/index.d.ts +2 -0
  163. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
  164. package/dist/types/src/containers/MarkdownCard/snippet.d.ts +17 -0
  165. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
  166. package/dist/types/src/containers/index.d.ts +6 -0
  167. package/dist/types/src/containers/index.d.ts.map +1 -0
  168. package/dist/types/src/hooks/index.d.ts +3 -1
  169. package/dist/types/src/hooks/index.d.ts.map +1 -1
  170. package/dist/types/src/hooks/useEditorMenuOptions.d.ts +9 -0
  171. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -0
  172. package/dist/types/src/hooks/useExtensions.d.ts +25 -0
  173. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -0
  174. package/dist/types/src/hooks/useLinkQuery.d.ts +4 -0
  175. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -0
  176. package/dist/types/src/index.d.ts +3 -3
  177. package/dist/types/src/index.d.ts.map +1 -1
  178. package/dist/types/src/meta.d.ts +2 -3
  179. package/dist/types/src/meta.d.ts.map +1 -1
  180. package/dist/types/src/operations/create-markdown.d.ts +5 -0
  181. package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
  182. package/dist/types/src/operations/create.d.ts +5 -0
  183. package/dist/types/src/operations/create.d.ts.map +1 -0
  184. package/dist/types/src/operations/create.test.d.ts +2 -0
  185. package/dist/types/src/operations/create.test.d.ts.map +1 -0
  186. package/dist/types/src/operations/index.d.ts +3 -0
  187. package/dist/types/src/operations/index.d.ts.map +1 -0
  188. package/dist/types/src/operations/open.d.ts +5 -0
  189. package/dist/types/src/operations/open.d.ts.map +1 -0
  190. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  191. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  192. package/dist/types/src/operations/set-view-mode.d.ts +5 -0
  193. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
  194. package/dist/types/src/operations/update-markdown.d.ts +5 -0
  195. package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
  196. package/dist/types/src/operations/update.test.d.ts +2 -0
  197. package/dist/types/src/operations/update.test.d.ts.map +1 -0
  198. package/dist/types/src/paths.d.ts +3 -0
  199. package/dist/types/src/paths.d.ts.map +1 -0
  200. package/dist/types/src/plugin.d.ts +4 -0
  201. package/dist/types/src/plugin.d.ts.map +1 -0
  202. package/dist/types/src/testing.d.ts +7 -0
  203. package/dist/types/src/testing.d.ts.map +1 -0
  204. package/dist/types/src/translations.d.ts +74 -32
  205. package/dist/types/src/translations.d.ts.map +1 -1
  206. package/dist/types/src/types/Markdown.d.ts +36 -33
  207. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  208. package/dist/types/src/types/MarkdownCapabilities.d.ts +32 -0
  209. package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -0
  210. package/dist/types/src/types/MarkdownEvents.d.ts +3 -0
  211. package/dist/types/src/types/MarkdownEvents.d.ts.map +1 -0
  212. package/dist/types/src/types/MarkdownOperation.d.ts +64 -0
  213. package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
  214. package/dist/types/src/types/Settings.d.ts +30 -0
  215. package/dist/types/src/types/Settings.d.ts.map +1 -0
  216. package/dist/types/src/types/index.d.ts +5 -2
  217. package/dist/types/src/types/index.d.ts.map +1 -1
  218. package/dist/types/src/types/types.d.ts +3 -2
  219. package/dist/types/src/types/types.d.ts.map +1 -1
  220. package/dist/types/src/util.d.ts +8 -5
  221. package/dist/types/src/util.d.ts.map +1 -1
  222. package/dist/types/src/util.test.d.ts +2 -0
  223. package/dist/types/src/util.test.d.ts.map +1 -0
  224. package/dist/types/tsconfig.tsbuildinfo +1 -1
  225. package/package.json +154 -68
  226. package/src/MarkdownPlugin.node.ts +20 -0
  227. package/src/MarkdownPlugin.test.ts +26 -0
  228. package/src/MarkdownPlugin.tsx +52 -103
  229. package/src/MarkdownPlugin.workerd.ts +19 -0
  230. package/src/blueprints/index.ts +5 -0
  231. package/src/blueprints/markdown-blueprint.ts +43 -0
  232. package/src/capabilities/anchor-sort.ts +29 -22
  233. package/src/capabilities/app-graph-builder.ts +63 -0
  234. package/src/capabilities/app-graph-serializer.ts +53 -43
  235. package/src/capabilities/blueprint-definition.ts +19 -0
  236. package/src/capabilities/comment-config.ts +36 -0
  237. package/src/capabilities/create-object.ts +33 -0
  238. package/src/capabilities/index.ts +27 -9
  239. package/src/capabilities/navigation-resolver.ts +19 -0
  240. package/src/capabilities/node.ts +13 -0
  241. package/src/capabilities/operation-handler.ts +16 -0
  242. package/src/capabilities/react-surface.tsx +116 -103
  243. package/src/capabilities/settings.ts +30 -18
  244. package/src/capabilities/state.ts +41 -25
  245. package/src/components/MarkdownEditor/FileUpload.tsx +68 -0
  246. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +64 -38
  247. package/src/components/MarkdownEditor/MarkdownEditor.tsx +251 -256
  248. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +171 -0
  249. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +50 -0
  250. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +40 -0
  251. package/src/components/MarkdownSettings/MarkdownSettings.tsx +22 -92
  252. package/src/components/MarkdownSettings/index.ts +1 -1
  253. package/src/components/index.ts +4 -5
  254. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.tsx +86 -0
  255. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.tsx +44 -0
  256. package/src/containers/EditableMarkdownCard/index.ts +6 -0
  257. package/src/containers/MarkdownArticle/MarkdownArticle.stories.tsx +141 -0
  258. package/src/containers/MarkdownArticle/MarkdownArticle.tsx +146 -0
  259. package/src/containers/MarkdownArticle/index.ts +6 -0
  260. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +68 -0
  261. package/src/containers/MarkdownCard/MarkdownCard.tsx +76 -0
  262. package/src/containers/MarkdownCard/index.ts +5 -0
  263. package/src/containers/MarkdownCard/snippet.ts +54 -0
  264. package/src/containers/index.ts +11 -0
  265. package/src/hooks/index.ts +3 -1
  266. package/src/hooks/useEditorMenuOptions.ts +68 -0
  267. package/src/hooks/useExtensions.tsx +268 -0
  268. package/src/hooks/useLinkQuery.ts +94 -0
  269. package/src/index.ts +3 -5
  270. package/src/meta.ts +18 -11
  271. package/src/operations/create-markdown.ts +19 -0
  272. package/src/operations/create.conversations.json +1 -0
  273. package/src/operations/create.test.ts +96 -0
  274. package/src/operations/create.ts +40 -0
  275. package/src/operations/index.ts +14 -0
  276. package/src/operations/open.ts +25 -0
  277. package/src/operations/scroll-to-anchor.ts +41 -0
  278. package/src/operations/set-view-mode.ts +23 -0
  279. package/src/operations/update-markdown.ts +51 -0
  280. package/src/operations/update.conversations.json +1 -0
  281. package/src/operations/update.test.ts +213 -0
  282. package/src/paths.ts +11 -0
  283. package/src/plugin.ts +11 -0
  284. package/src/testing.ts +40 -0
  285. package/src/translations.ts +28 -32
  286. package/src/types/Markdown.ts +28 -34
  287. package/src/types/MarkdownCapabilities.ts +51 -0
  288. package/src/types/MarkdownEvents.ts +14 -0
  289. package/src/types/MarkdownOperation.ts +133 -0
  290. package/src/types/Settings.ts +85 -0
  291. package/src/types/index.ts +6 -2
  292. package/src/types/types.ts +8 -3
  293. package/src/util.test.ts +44 -0
  294. package/src/util.tsx +84 -9
  295. package/dist/lib/browser/MarkdownCard-IMCR4A4V.mjs +0 -80
  296. package/dist/lib/browser/MarkdownCard-IMCR4A4V.mjs.map +0 -7
  297. package/dist/lib/browser/MarkdownContainer-VGJPHMVG.mjs +0 -780
  298. package/dist/lib/browser/MarkdownContainer-VGJPHMVG.mjs.map +0 -7
  299. package/dist/lib/browser/anchor-sort-AJKRIWFD.mjs +0 -32
  300. package/dist/lib/browser/anchor-sort-AJKRIWFD.mjs.map +0 -7
  301. package/dist/lib/browser/app-graph-serializer-OIS3MZX2.mjs +0 -52
  302. package/dist/lib/browser/app-graph-serializer-OIS3MZX2.mjs.map +0 -7
  303. package/dist/lib/browser/chunk-IKPZHFTW.mjs +0 -30
  304. package/dist/lib/browser/chunk-IKPZHFTW.mjs.map +0 -7
  305. package/dist/lib/browser/chunk-JHH7VL52.mjs +0 -18
  306. package/dist/lib/browser/chunk-JHH7VL52.mjs.map +0 -7
  307. package/dist/lib/browser/chunk-JMBQG2ZC.mjs +0 -50
  308. package/dist/lib/browser/chunk-JMBQG2ZC.mjs.map +0 -7
  309. package/dist/lib/browser/chunk-JTIGSUMB.mjs +0 -80
  310. package/dist/lib/browser/chunk-JTIGSUMB.mjs.map +0 -7
  311. package/dist/lib/browser/chunk-LMJPXTPL.mjs +0 -16
  312. package/dist/lib/browser/chunk-LMJPXTPL.mjs.map +0 -7
  313. package/dist/lib/browser/chunk-MVL4K3OD.mjs +0 -52
  314. package/dist/lib/browser/chunk-MVL4K3OD.mjs.map +0 -7
  315. package/dist/lib/browser/index.mjs +0 -158
  316. package/dist/lib/browser/index.mjs.map +0 -7
  317. package/dist/lib/browser/intent-resolver-BLLHRSTQ.mjs +0 -60
  318. package/dist/lib/browser/intent-resolver-BLLHRSTQ.mjs.map +0 -7
  319. package/dist/lib/browser/meta.json +0 -1
  320. package/dist/lib/browser/react-surface-NL3BZR6H.mjs +0 -208
  321. package/dist/lib/browser/react-surface-NL3BZR6H.mjs.map +0 -7
  322. package/dist/lib/browser/settings-Z7ZV7SLC.mjs +0 -28
  323. package/dist/lib/browser/settings-Z7ZV7SLC.mjs.map +0 -7
  324. package/dist/lib/browser/state-ORTZIEJU.mjs +0 -37
  325. package/dist/lib/browser/state-ORTZIEJU.mjs.map +0 -7
  326. package/dist/lib/browser/types/index.mjs +0 -10
  327. package/dist/lib/node-esm/MarkdownCard-JV2YDV3M.mjs +0 -81
  328. package/dist/lib/node-esm/MarkdownCard-JV2YDV3M.mjs.map +0 -7
  329. package/dist/lib/node-esm/MarkdownContainer-BJRNCXJZ.mjs +0 -781
  330. package/dist/lib/node-esm/MarkdownContainer-BJRNCXJZ.mjs.map +0 -7
  331. package/dist/lib/node-esm/anchor-sort-N7WEA5E3.mjs +0 -33
  332. package/dist/lib/node-esm/anchor-sort-N7WEA5E3.mjs.map +0 -7
  333. package/dist/lib/node-esm/app-graph-serializer-Q3B44VFB.mjs +0 -53
  334. package/dist/lib/node-esm/app-graph-serializer-Q3B44VFB.mjs.map +0 -7
  335. package/dist/lib/node-esm/chunk-AYWAYBAY.mjs +0 -17
  336. package/dist/lib/node-esm/chunk-AYWAYBAY.mjs.map +0 -7
  337. package/dist/lib/node-esm/chunk-H4I2FGDZ.mjs +0 -31
  338. package/dist/lib/node-esm/chunk-H4I2FGDZ.mjs.map +0 -7
  339. package/dist/lib/node-esm/chunk-H6TITL7A.mjs +0 -20
  340. package/dist/lib/node-esm/chunk-H6TITL7A.mjs.map +0 -7
  341. package/dist/lib/node-esm/chunk-JDMMLOB6.mjs +0 -51
  342. package/dist/lib/node-esm/chunk-JDMMLOB6.mjs.map +0 -7
  343. package/dist/lib/node-esm/chunk-KIRZFVX5.mjs +0 -81
  344. package/dist/lib/node-esm/chunk-KIRZFVX5.mjs.map +0 -7
  345. package/dist/lib/node-esm/chunk-Z4XQ6C3D.mjs +0 -53
  346. package/dist/lib/node-esm/chunk-Z4XQ6C3D.mjs.map +0 -7
  347. package/dist/lib/node-esm/index.mjs +0 -159
  348. package/dist/lib/node-esm/index.mjs.map +0 -7
  349. package/dist/lib/node-esm/intent-resolver-NHPUPSWK.mjs +0 -61
  350. package/dist/lib/node-esm/intent-resolver-NHPUPSWK.mjs.map +0 -7
  351. package/dist/lib/node-esm/meta.json +0 -1
  352. package/dist/lib/node-esm/react-surface-XJ6ODCBE.mjs +0 -209
  353. package/dist/lib/node-esm/react-surface-XJ6ODCBE.mjs.map +0 -7
  354. package/dist/lib/node-esm/settings-UCXEWBCT.mjs +0 -29
  355. package/dist/lib/node-esm/settings-UCXEWBCT.mjs.map +0 -7
  356. package/dist/lib/node-esm/state-47WSZG54.mjs +0 -38
  357. package/dist/lib/node-esm/state-47WSZG54.mjs.map +0 -7
  358. package/dist/lib/node-esm/types/index.mjs +0 -11
  359. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  360. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  361. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  362. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  363. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  364. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  365. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +0 -7
  366. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +0 -1
  367. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +0 -42
  368. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +0 -1
  369. package/dist/types/src/components/MarkdownCard/index.d.ts +0 -4
  370. package/dist/types/src/components/MarkdownCard/index.d.ts.map +0 -1
  371. package/dist/types/src/components/MarkdownContainer.d.ts +0 -18
  372. package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
  373. package/dist/types/src/components/MarkdownContainer.stories.d.ts +0 -9
  374. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
  375. package/dist/types/src/components/Suggestions.stories.d.ts +0 -12
  376. package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
  377. package/dist/types/src/components/Toolbar.stories.d.ts +0 -11
  378. package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
  379. package/dist/types/src/events.d.ts +0 -4
  380. package/dist/types/src/events.d.ts.map +0 -1
  381. package/dist/types/src/extensions.d.ts +0 -24
  382. package/dist/types/src/extensions.d.ts.map +0 -1
  383. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
  384. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
  385. package/dist/types/src/types/MarkdownAction.d.ts +0 -42
  386. package/dist/types/src/types/MarkdownAction.d.ts.map +0 -1
  387. package/src/capabilities/artifact-definition.ts +0 -119
  388. package/src/capabilities/capabilities.ts +0 -21
  389. package/src/capabilities/intent-resolver.ts +0 -58
  390. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +0 -79
  391. package/src/components/MarkdownCard/MarkdownCard.tsx +0 -75
  392. package/src/components/MarkdownCard/index.ts +0 -9
  393. package/src/components/MarkdownContainer.stories.tsx +0 -100
  394. package/src/components/MarkdownContainer.tsx +0 -255
  395. package/src/components/Suggestions.stories.tsx +0 -221
  396. package/src/components/Toolbar.stories.tsx +0 -112
  397. package/src/events.ts +0 -11
  398. package/src/extensions.tsx +0 -328
  399. package/src/hooks/useSelectCurrentThread.tsx +0 -56
  400. package/src/types/MarkdownAction.ts +0 -31
  401. /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  402. /package/dist/lib/{node-esm/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/MarkdownSettings/MarkdownSettings.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { Input } from '@dxos/react-ui';\nimport { Settings as SettingsForm, type SettingsFieldProps } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\nimport { Markdown } from '#types';\n\nexport type MarkdownSettingsProps = AppSurface.SettingsArticleProps<Markdown.Settings>;\n\nconst SnippetsField = ({ value, onChange, readonly }: SettingsFieldProps<string | undefined>) => (\n <Input.TextArea disabled={readonly} rows={5} value={value ?? ''} onChange={(event) => onChange(event.target.value)} />\n);\n\nexport const MarkdownSettings = ({ settings, onSettingsChange }: MarkdownSettingsProps) => {\n return (\n <SettingsForm.Viewport>\n <SettingsForm.Section title={meta.name ?? 'Editor'}>\n <SettingsForm.FieldSet\n readonly={!onSettingsChange}\n schema={Markdown.Settings}\n visible={(path, values) => path !== 'snippets' || !!values.debug}\n fieldMap={{ snippets: SnippetsField }}\n values={settings}\n onValuesChanged={(values) => onSettingsChange?.(() => values)}\n />\n </SettingsForm.Section>\n </SettingsForm.Viewport>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,WAAW;AAGlB,SAASC,aAAa;AACtB,SAASC,YAAYC,oBAA6C;AAElE,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAIzB,IAAMC,gBAAgB,CAAC,EAAEC,OAAOC,UAAUC,SAAQ,MAChD,sBAAA,cAACR,MAAMS,UAAQ;EAACC,UAAUF;EAAUG,MAAM;EAAGL,OAAOA,SAAS;EAAIC,UAAU,CAACK,UAAUL,SAASK,MAAMC,OAAOP,KAAK;;AAG5G,IAAMQ,mBAAmB,CAAC,EAAEC,UAAUC,iBAAgB,MAAyB;AACpF,SACE,sBAAA,cAACd,aAAae,UAAQ,MACpB,sBAAA,cAACf,aAAagB,SAAO;IAACC,OAAOhB,KAAKiB,QAAQ;KACxC,sBAAA,cAAClB,aAAamB,UAAQ;IACpBb,UAAU,CAACQ;IACXM,QAAQlB,SAASH;IACjBsB,SAAS,CAACC,MAAMC,WAAWD,SAAS,cAAc,CAAC,CAACC,OAAOC;IAC3DC,UAAU;MAAEC,UAAUvB;IAAc;IACpCoB,QAAQV;IACRc,iBAAiB,CAACJ,WAAWT,mBAAmB,MAAMS,MAAAA;;AAKhE;",
6
+ "names": ["React", "Input", "Settings", "SettingsForm", "meta", "Markdown", "SnippetsField", "value", "onChange", "readonly", "TextArea", "disabled", "rows", "event", "target", "MarkdownSettings", "settings", "onSettingsChange", "Viewport", "Section", "title", "name", "FieldSet", "schema", "visible", "path", "values", "debug", "fieldMap", "snippets", "onValuesChanged"]
7
+ }
@@ -0,0 +1,32 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/anchor-sort.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capability } from "@dxos/app-framework";
6
+ import { AppCapabilities } from "@dxos/app-toolkit";
7
+ import { Relation, Type } from "@dxos/echo";
8
+ import { createDocAccessor, getRangeFromCursor } from "@dxos/echo-client";
9
+ import { Markdown } from "#types";
10
+ var anchor_sort_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(AppCapabilities.AnchorSort, {
11
+ key: Type.getTypename(Markdown.Document),
12
+ sort: (anchorA, anchorB) => {
13
+ const doc = Relation.getTarget(anchorA);
14
+ const accessor = doc.content.target ? createDocAccessor(doc.content.target, [
15
+ "content"
16
+ ]) : void 0;
17
+ if (doc !== Relation.getTarget(anchorB) || !accessor) {
18
+ return 0;
19
+ }
20
+ const getStartPosition = (cursor) => {
21
+ const range = cursor ? getRangeFromCursor(accessor, cursor) : void 0;
22
+ return range?.start ?? Number.MAX_SAFE_INTEGER;
23
+ };
24
+ const posA = getStartPosition(anchorA.anchor);
25
+ const posB = getStartPosition(anchorB.anchor);
26
+ return posA - posB;
27
+ }
28
+ })));
29
+ export {
30
+ anchor_sort_default as default
31
+ };
32
+ //# sourceMappingURL=anchor-sort-UXN4RHFX.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/anchor-sort.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Relation, Type } from '@dxos/echo';\nimport { createDocAccessor, getRangeFromCursor } from '@dxos/echo-client';\nimport { type AnchoredTo } from '@dxos/types';\n\nimport { Markdown } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(AppCapabilities.AnchorSort, {\n key: Type.getTypename(Markdown.Document),\n sort: (anchorA: AnchoredTo.AnchoredTo, anchorB: AnchoredTo.AnchoredTo) => {\n const doc = Relation.getTarget(anchorA) as Markdown.Document;\n const accessor = doc.content.target ? createDocAccessor(doc.content.target, ['content']) : undefined;\n if (doc !== Relation.getTarget(anchorB) || !accessor) {\n return 0;\n }\n\n const getStartPosition = (cursor: string | undefined) => {\n const range = cursor ? getRangeFromCursor(accessor, cursor) : undefined;\n return range?.start ?? Number.MAX_SAFE_INTEGER;\n };\n\n const posA = getStartPosition(anchorA.anchor);\n const posB = getStartPosition(anchorB.anchor);\n return posA - posB;\n },\n }),\n ),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,UAAUC,YAAY;AAC/B,SAASC,mBAAmBC,0BAA0B;AAGtD,SAASC,gBAAgB;AAEzB,IAAA,sBAAeN,WAAWO,WAAW,MAC5BC,eACLR,WAAWS,YAAYR,gBAAgBS,YAAY;EACjDC,KAAKR,KAAKS,YAAYN,SAASO,QAAQ;EACvCC,MAAM,CAACC,SAAgCC,YAAAA;AACrC,UAAMC,MAAMf,SAASgB,UAAUH,OAAAA;AAC/B,UAAMI,WAAWF,IAAIG,QAAQC,SAASjB,kBAAkBa,IAAIG,QAAQC,QAAQ;MAAC;KAAU,IAAIC;AAC3F,QAAIL,QAAQf,SAASgB,UAAUF,OAAAA,KAAY,CAACG,UAAU;AACpD,aAAO;IACT;AAEA,UAAMI,mBAAmB,CAACC,WAAAA;AACxB,YAAMC,QAAQD,SAASnB,mBAAmBc,UAAUK,MAAAA,IAAUF;AAC9D,aAAOG,OAAOC,SAASC,OAAOC;IAChC;AAEA,UAAMC,OAAON,iBAAiBR,QAAQe,MAAM;AAC5C,UAAMC,OAAOR,iBAAiBP,QAAQc,MAAM;AAC5C,WAAOD,OAAOE;EAChB;AACF,CAAA,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "Relation", "Type", "createDocAccessor", "getRangeFromCursor", "Markdown", "makeModule", "succeed", "contributes", "AnchorSort", "key", "getTypename", "Document", "sort", "anchorA", "anchorB", "doc", "getTarget", "accessor", "content", "target", "undefined", "getStartPosition", "cursor", "range", "start", "Number", "MAX_SAFE_INTEGER", "posA", "anchor", "posB"]
7
+ }
@@ -0,0 +1,67 @@
1
+ import {
2
+ getDocumentsPath
3
+ } from "./chunk-67DKWOKF.mjs";
4
+ import "./chunk-J5LGTIGS.mjs";
5
+
6
+ // src/capabilities/app-graph-builder.ts
7
+ import * as Effect from "effect/Effect";
8
+ import * as Option from "effect/Option";
9
+ import { Capability } from "@dxos/app-framework";
10
+ import { AppCapabilities, LayoutOperation, createTypeSectionExtension } from "@dxos/app-toolkit";
11
+ import { isSpace } from "@dxos/client/echo";
12
+ import { Operation } from "@dxos/compute";
13
+ import { Type } from "@dxos/echo";
14
+ import { GraphBuilder, Node } from "@dxos/plugin-graph";
15
+ import { SpaceOperation } from "@dxos/plugin-space";
16
+ import { Markdown } from "#types";
17
+ var documentTypename = Type.getTypename(Markdown.Document);
18
+ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
19
+ const extensions = yield* Effect.all([
20
+ createTypeSectionExtension(Markdown.Document),
21
+ GraphBuilder.createExtension({
22
+ id: "documentsSectionActions",
23
+ match: (node) => {
24
+ const space = isSpace(node.properties.space) ? node.properties.space : void 0;
25
+ return node.type === documentTypename && space ? Option.some(space) : Option.none();
26
+ },
27
+ actions: (space) => Effect.succeed([
28
+ Node.makeAction({
29
+ id: "create-document",
30
+ data: () => Effect.gen(function* () {
31
+ const doc = Markdown.make({});
32
+ const { subject } = yield* Operation.invoke(SpaceOperation.AddObject, {
33
+ object: doc,
34
+ target: space.db,
35
+ hidden: true,
36
+ targetNodeId: getDocumentsPath(space.db.spaceId)
37
+ }, {
38
+ spaceId: space.db.spaceId
39
+ });
40
+ yield* Operation.invoke(LayoutOperation.Open, {
41
+ subject: [
42
+ ...subject
43
+ ]
44
+ }, {
45
+ spaceId: space.db.spaceId
46
+ });
47
+ }),
48
+ properties: {
49
+ label: [
50
+ "add-object.label",
51
+ {
52
+ ns: documentTypename
53
+ }
54
+ ],
55
+ icon: "ph--plus--regular",
56
+ disposition: "list-item-primary"
57
+ }
58
+ })
59
+ ])
60
+ })
61
+ ]);
62
+ return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
63
+ }));
64
+ export {
65
+ app_graph_builder_default as default
66
+ };
67
+ //# sourceMappingURL=app-graph-builder-BWBA23FF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation, createTypeSectionExtension } from '@dxos/app-toolkit';\nimport { isSpace } from '@dxos/client/echo';\nimport { Operation } from '@dxos/compute';\nimport { Type } from '@dxos/echo';\nimport { GraphBuilder, Node } from '@dxos/plugin-graph';\nimport { SpaceOperation } from '@dxos/plugin-space';\n\nimport { Markdown } from '#types';\n\nimport { getDocumentsPath } from '../paths';\n\nconst documentTypename = Type.getTypename(Markdown.Document);\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* Effect.all([\n createTypeSectionExtension(Markdown.Document),\n\n GraphBuilder.createExtension({\n id: 'documentsSectionActions',\n match: (node) => {\n const space = isSpace(node.properties.space) ? node.properties.space : undefined;\n return node.type === documentTypename && space ? Option.some(space) : Option.none();\n },\n actions: (space) =>\n Effect.succeed([\n Node.makeAction({\n id: 'create-document',\n data: () =>\n Effect.gen(function* () {\n const doc = Markdown.make({});\n const { subject } = yield* Operation.invoke(\n SpaceOperation.AddObject,\n { object: doc, target: space.db, hidden: true, targetNodeId: getDocumentsPath(space.db.spaceId) },\n { spaceId: space.db.spaceId },\n );\n yield* Operation.invoke(\n LayoutOperation.Open,\n { subject: [...subject] },\n { spaceId: space.db.spaceId },\n );\n }),\n properties: {\n label: ['add-object.label', { ns: documentTypename }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n },\n }),\n ]),\n }),\n ]);\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiBC,iBAAiBC,kCAAkC;AAC7E,SAASC,eAAe;AACxB,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AACrB,SAASC,cAAcC,YAAY;AACnC,SAASC,sBAAsB;AAE/B,SAASC,gBAAgB;AAIzB,IAAMC,mBAAmBC,KAAKC,YAAYC,SAASC,QAAQ;AAE3D,IAAA,4BAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAcC,WAAI;IACnCC,2BAA2BP,SAASC,QAAQ;IAE5CO,aAAaC,gBAAgB;MAC3BC,IAAI;MACJC,OAAO,CAACC,SAAAA;AACN,cAAMC,QAAQC,QAAQF,KAAKG,WAAWF,KAAK,IAAID,KAAKG,WAAWF,QAAQG;AACvE,eAAOJ,KAAKK,SAASpB,oBAAoBgB,QAAeK,YAAKL,KAAAA,IAAgBM,YAAI;MACnF;MACAC,SAAS,CAACP,UACDQ,eAAQ;QACbC,KAAKC,WAAW;UACdb,IAAI;UACJc,MAAM,MACGC,WAAI,aAAA;AACT,kBAAMC,MAAM1B,SAAS2B,KAAK,CAAC,CAAA;AAC3B,kBAAM,EAAEC,QAAO,IAAK,OAAOC,UAAUC,OACnCC,eAAeC,WACf;cAAEC,QAAQP;cAAKQ,QAAQrB,MAAMsB;cAAIC,QAAQ;cAAMC,cAAcC,iBAAiBzB,MAAMsB,GAAGI,OAAO;YAAE,GAChG;cAAEA,SAAS1B,MAAMsB,GAAGI;YAAQ,CAAA;AAE9B,mBAAOV,UAAUC,OACfU,gBAAgBC,MAChB;cAAEb,SAAS;mBAAIA;;YAAS,GACxB;cAAEW,SAAS1B,MAAMsB,GAAGI;YAAQ,CAAA;UAEhC,CAAA;UACFxB,YAAY;YACV2B,OAAO;cAAC;cAAoB;gBAAEC,IAAI9C;cAAiB;;YACnD+C,MAAM;YACNC,aAAa;UACf;QACF,CAAA;OACD;IACL,CAAA;GACD;AAED,SAAO3C,WAAW4C,YAAYC,gBAAgBC,iBAAiB3C,UAAAA;AACjE,CAAA,CAAA;",
6
+ "names": ["Effect", "Option", "Capability", "AppCapabilities", "LayoutOperation", "createTypeSectionExtension", "isSpace", "Operation", "Type", "GraphBuilder", "Node", "SpaceOperation", "Markdown", "documentTypename", "Type", "getTypename", "Markdown", "Document", "Capability", "makeModule", "fnUntraced", "extensions", "all", "createTypeSectionExtension", "GraphBuilder", "createExtension", "id", "match", "node", "space", "isSpace", "properties", "undefined", "type", "some", "none", "actions", "succeed", "Node", "makeAction", "data", "gen", "doc", "make", "subject", "Operation", "invoke", "SpaceOperation", "AddObject", "object", "target", "db", "hidden", "targetNodeId", "getDocumentsPath", "spaceId", "LayoutOperation", "Open", "label", "ns", "icon", "disposition", "contributes", "AppCapabilities", "AppGraphBuilder"]
7
+ }
@@ -0,0 +1,56 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/app-graph-serializer.ts
4
+ import * as Effect from "effect/Effect";
5
+ import * as Option from "effect/Option";
6
+ import { Capabilities, Capability } from "@dxos/app-framework";
7
+ import { AppCapabilities, RootCollectionAnnotation } from "@dxos/app-toolkit";
8
+ import { Annotation, Collection, Obj, Type } from "@dxos/echo";
9
+ import { SpaceOperation } from "@dxos/plugin-space";
10
+ import { isSpace } from "@dxos/react-client/echo";
11
+ import { translations } from "#translations";
12
+ import { MarkdownOperation } from "#types";
13
+ import { Markdown } from "#types";
14
+ var app_graph_serializer_default = Capability.makeModule(Effect.fnUntraced(function* () {
15
+ const capabilities = yield* Capability.Service;
16
+ return Capability.contributes(AppCapabilities.AppGraphSerializer, [
17
+ {
18
+ inputType: Type.getTypename(Markdown.Document),
19
+ outputType: "text/markdown",
20
+ // Reconcile with metadata serializers.
21
+ serialize: async (node) => {
22
+ const doc = node.data;
23
+ const content = await doc.content.load();
24
+ return {
25
+ name: doc.name || doc.fallbackName || translations[0]["en-US"][Type.getTypename(Markdown.Document)]["object-name.placeholder"],
26
+ data: content.content,
27
+ type: "text/markdown"
28
+ };
29
+ },
30
+ deserialize: async (data, ancestors) => {
31
+ const space = ancestors.find(isSpace);
32
+ const target = ancestors.findLast((ancestor) => Obj.instanceOf(Collection.Collection, ancestor)) ?? (space && Annotation.get(space.properties, RootCollectionAnnotation).pipe(Option.getOrUndefined)?.target);
33
+ if (!space || !target) {
34
+ return;
35
+ }
36
+ const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
37
+ const createResult = await invokePromise(MarkdownOperation.CreateMarkdown, {
38
+ name: data.name,
39
+ content: data.data
40
+ });
41
+ if (!createResult.data?.object) {
42
+ return void 0;
43
+ }
44
+ await invokePromise(SpaceOperation.AddObject, {
45
+ target,
46
+ object: createResult.data.object
47
+ });
48
+ return createResult.data.object;
49
+ }
50
+ }
51
+ ]);
52
+ }));
53
+ export {
54
+ app_graph_serializer_default as default
55
+ };
56
+ //# sourceMappingURL=app-graph-serializer-EN5E3BMG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-serializer.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities, RootCollectionAnnotation } from '@dxos/app-toolkit';\nimport { Annotation, Collection, Obj, Type } from '@dxos/echo';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { isSpace } from '@dxos/react-client/echo';\n\nimport { translations } from '#translations';\nimport { MarkdownOperation } from '#types';\nimport { Markdown } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n // Get context for lazy capability access in callbacks.\n const capabilities = yield* Capability.Service;\n\n return Capability.contributes(AppCapabilities.AppGraphSerializer, [\n {\n inputType: Type.getTypename(Markdown.Document),\n outputType: 'text/markdown',\n // Reconcile with metadata serializers.\n serialize: async (node) => {\n const doc = node.data;\n const content = await doc.content.load();\n return {\n name:\n doc.name ||\n doc.fallbackName ||\n translations[0]['en-US'][Type.getTypename(Markdown.Document)]['object-name.placeholder'],\n data: content.content,\n type: 'text/markdown',\n };\n },\n deserialize: async (data, ancestors) => {\n const space = ancestors.find(isSpace);\n const target =\n ancestors.findLast((ancestor) => Obj.instanceOf(Collection.Collection, ancestor)) ??\n (space && Annotation.get(space.properties, RootCollectionAnnotation).pipe(Option.getOrUndefined)?.target);\n if (!space || !target) {\n return;\n }\n\n const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);\n const createResult = await invokePromise(MarkdownOperation.CreateMarkdown, {\n name: data.name,\n content: data.data,\n });\n if (!createResult.data?.object) {\n return undefined;\n }\n await invokePromise(SpaceOperation.AddObject, { target, object: createResult.data.object });\n\n return createResult.data.object;\n },\n },\n ]);\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,iBAAiBC,gCAAgC;AAC1D,SAASC,YAAYC,YAAYC,KAAKC,YAAY;AAClD,SAASC,sBAAsB;AAC/B,SAASC,eAAe;AAExB,SAASC,oBAAoB;AAC7B,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AAEzB,IAAA,+BAAeX,WAAWY,WACjBC,kBAAW,aAAA;AAEhB,QAAMC,eAAe,OAAOd,WAAWe;AAEvC,SAAOf,WAAWgB,YAAYf,gBAAgBgB,oBAAoB;IAChE;MACEC,WAAWZ,KAAKa,YAAYR,SAASS,QAAQ;MAC7CC,YAAY;;MAEZC,WAAW,OAAOC,SAAAA;AAChB,cAAMC,MAAMD,KAAKE;AACjB,cAAMC,UAAU,MAAMF,IAAIE,QAAQC,KAAI;AACtC,eAAO;UACLC,MACEJ,IAAII,QACJJ,IAAIK,gBACJpB,aAAa,CAAA,EAAG,OAAA,EAASH,KAAKa,YAAYR,SAASS,QAAQ,CAAA,EAAG,yBAAA;UAChEK,MAAMC,QAAQA;UACdI,MAAM;QACR;MACF;MACAC,aAAa,OAAON,MAAMO,cAAAA;AACxB,cAAMC,QAAQD,UAAUE,KAAK1B,OAAAA;AAC7B,cAAM2B,SACJH,UAAUI,SAAS,CAACC,aAAahC,IAAIiC,WAAWlC,WAAWA,YAAYiC,QAAAA,CAAAA,MACtEJ,SAAS9B,WAAWoC,IAAIN,MAAMO,YAAYtC,wBAAAA,EAA0BuC,KAAYC,qBAAc,GAAGP;AACpG,YAAI,CAACF,SAAS,CAACE,QAAQ;AACrB;QACF;AAEA,cAAM,EAAEQ,cAAa,IAAK7B,aAAayB,IAAIxC,aAAa6C,gBAAgB;AACxE,cAAMC,eAAe,MAAMF,cAAcjC,kBAAkBoC,gBAAgB;UACzElB,MAAMH,KAAKG;UACXF,SAASD,KAAKA;QAChB,CAAA;AACA,YAAI,CAACoB,aAAapB,MAAMsB,QAAQ;AAC9B,iBAAOC;QACT;AACA,cAAML,cAAcpC,eAAe0C,WAAW;UAAEd;UAAQY,QAAQF,aAAapB,KAAKsB;QAAO,CAAA;AAEzF,eAAOF,aAAapB,KAAKsB;MAC3B;IACF;GACD;AACH,CAAA,CAAA;",
6
+ "names": ["Effect", "Option", "Capabilities", "Capability", "AppCapabilities", "RootCollectionAnnotation", "Annotation", "Collection", "Obj", "Type", "SpaceOperation", "isSpace", "translations", "MarkdownOperation", "Markdown", "makeModule", "fnUntraced", "capabilities", "Service", "contributes", "AppGraphSerializer", "inputType", "getTypename", "Document", "outputType", "serialize", "node", "doc", "data", "content", "load", "name", "fallbackName", "type", "deserialize", "ancestors", "space", "find", "target", "findLast", "ancestor", "instanceOf", "get", "properties", "pipe", "getOrUndefined", "invokePromise", "OperationInvoker", "createResult", "CreateMarkdown", "object", "undefined", "AddObject"]
7
+ }
@@ -0,0 +1,15 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/blueprint-definition.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capability } from "@dxos/app-framework";
6
+ import { AppCapabilities } from "@dxos/app-toolkit";
7
+ import { MarkdownBlueprint } from "#blueprints";
8
+ var blueprintDefinition = () => Effect.succeed([
9
+ Capability.contributes(AppCapabilities.BlueprintDefinition, MarkdownBlueprint)
10
+ ]);
11
+ var blueprint_definition_default = blueprintDefinition;
12
+ export {
13
+ blueprint_definition_default as default
14
+ };
15
+ //# sourceMappingURL=blueprint-definition-DSPXK77L.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/blueprint-definition.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n\nimport { MarkdownBlueprint } from '#blueprints';\n\n// NOTE: Explicit annotation required: d.ts emit cannot portably name the inferred @dxos/compute types (TS2883).\nconst blueprintDefinition: () => Effect.Effect<\n Capability.Capability<typeof AppCapabilities.BlueprintDefinition>[],\n never,\n Capability.Service\n> = () => Effect.succeed([Capability.contributes(AppCapabilities.BlueprintDefinition, MarkdownBlueprint)]);\n\nexport default blueprintDefinition;\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAEhC,SAASC,yBAAyB;AAGlC,IAAMC,sBAIF,MAAaC,eAAQ;EAACJ,WAAWK,YAAYJ,gBAAgBK,qBAAqBJ,iBAAAA;CAAmB;AAEzG,IAAA,+BAAeC;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "MarkdownBlueprint", "blueprintDefinition", "succeed", "contributes", "BlueprintDefinition"]
7
+ }
@@ -0,0 +1,8 @@
1
+ import {
2
+ markdown_blueprint_default
3
+ } from "../chunk-LXNSKCPD.mjs";
4
+ import "../chunk-J5LGTIGS.mjs";
5
+ export {
6
+ markdown_blueprint_default as MarkdownBlueprint
7
+ };
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,29 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/index.ts
4
+ import { Capability } from "@dxos/app-framework";
5
+ var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("../app-graph-builder-BWBA23FF.mjs"));
6
+ var NavigationResolver = Capability.lazy("NavigationResolver", () => import("../navigation-resolver-3KBOMN4U.mjs"));
7
+ var AnchorSort = Capability.lazy("AnchorSort", () => import("../anchor-sort-UXN4RHFX.mjs"));
8
+ var AppGraphSerializer = Capability.lazy("AppGraphSerializer", () => import("../app-graph-serializer-EN5E3BMG.mjs"));
9
+ var CommentConfig = Capability.lazy("CommentConfig", () => import("../comment-config-EGY7RPPW.mjs"));
10
+ var CreateObject = Capability.lazy("CreateObject", () => import("../create-object-MU2LGXG6.mjs"));
11
+ var BlueprintDefinition = Capability.lazy("BlueprintDefinition", () => import("../blueprint-definition-DSPXK77L.mjs"));
12
+ var OperationHandler = Capability.lazy("OperationHandler", () => import("../operation-handler-2ARMPBGZ.mjs"));
13
+ var ReactSurface = Capability.lazy("ReactSurface", () => import("../react-surface-XYZJBKHZ.mjs"));
14
+ var MarkdownSettings = Capability.lazy("MarkdownSettings", () => import("../settings-TDGDLCUR.mjs"));
15
+ var MarkdownState = Capability.lazy("MarkdownState", () => import("../state-5COCF5PN.mjs"));
16
+ export {
17
+ AnchorSort,
18
+ AppGraphBuilder,
19
+ AppGraphSerializer,
20
+ BlueprintDefinition,
21
+ CommentConfig,
22
+ CreateObject,
23
+ MarkdownSettings,
24
+ MarkdownState,
25
+ NavigationResolver,
26
+ OperationHandler,
27
+ ReactSurface
28
+ };
29
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { type AppCapabilities } from '@dxos/app-toolkit';\nimport type { OperationHandlerSet } from '@dxos/compute';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\nexport const NavigationResolver = Capability.lazy('NavigationResolver', () => import('./navigation-resolver'));\nexport const AnchorSort = Capability.lazy('AnchorSort', () => import('./anchor-sort'));\nexport const AppGraphSerializer = Capability.lazy('AppGraphSerializer', () => import('./app-graph-serializer'));\n// The contributed capability type references Operation types from @dxos/compute, so the lazy\n// wrapper needs an explicit annotation to keep the inferred type portable (TS2883).\nexport const CommentConfig: Capability.LazyCapability<\n void,\n Capability.Capability<typeof AppCapabilities.CommentConfig>\n> = Capability.lazy('CommentConfig', () => import('./comment-config'));\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\n// The contributed capability type references Blueprint types from @dxos/compute, so the lazy\n// wrapper needs an explicit annotation to keep the inferred type portable (TS2883).\nexport const BlueprintDefinition: Capability.LazyCapability<\n void,\n Capability.Capability<typeof AppCapabilities.BlueprintDefinition>[]\n> = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\nexport const MarkdownSettings = Capability.lazy('MarkdownSettings', () => import('./settings'));\nexport const MarkdownState = Capability.lazy('MarkdownState', () => import('./state'));\n"],
5
+ "mappings": ";;;AAIA,SAASA,kBAAkB;AAIpB,IAAMC,kBAAkBD,WAAWE,KAAK,mBAAmB,MAAM,OAAO,mCAAA,CAAA;AACxE,IAAMC,qBAAqBH,WAAWE,KAAK,sBAAsB,MAAM,OAAO,qCAAA,CAAA;AAC9E,IAAME,aAAaJ,WAAWE,KAAK,cAAc,MAAM,OAAO,6BAAA,CAAA;AAC9D,IAAMG,qBAAqBL,WAAWE,KAAK,sBAAsB,MAAM,OAAO,sCAAA,CAAA;AAG9E,IAAMI,gBAGTN,WAAWE,KAAK,iBAAiB,MAAM,OAAO,gCAAA,CAAA;AAC3C,IAAMK,eAAeP,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAGlE,IAAMM,sBAGTR,WAAWE,KAAK,uBAAuB,MAAM,OAAO,sCAAA,CAAA;AACjD,IAAMO,mBAAmBT,WAAWE,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;AAER,IAAMQ,eAAeV,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMS,mBAAmBX,WAAWE,KAAK,oBAAoB,MAAM,OAAO,0BAAA,CAAA;AAC1E,IAAMU,gBAAgBZ,WAAWE,KAAK,iBAAiB,MAAM,OAAO,uBAAA,CAAA;",
6
+ "names": ["Capability", "AppGraphBuilder", "lazy", "NavigationResolver", "AnchorSort", "AppGraphSerializer", "CommentConfig", "CreateObject", "BlueprintDefinition", "OperationHandler", "ReactSurface", "MarkdownSettings", "MarkdownState"]
7
+ }
@@ -0,0 +1,11 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/node.ts
4
+ import { Capability } from "@dxos/app-framework";
5
+ var CreateObject = Capability.lazy("CreateObject", () => import("../create-object-MU2LGXG6.mjs"));
6
+ var OperationHandler = Capability.lazy("OperationHandler", () => import("../operation-handler-2ARMPBGZ.mjs"));
7
+ export {
8
+ CreateObject,
9
+ OperationHandler
10
+ };
11
+ //# sourceMappingURL=node.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/capabilities/node.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\n\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\n"],
5
+ "mappings": ";;;AAIA,SAASA,kBAAkB;AAGpB,IAAMC,eAAeD,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAElE,IAAMC,mBAAmBH,WAAWE,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;",
6
+ "names": ["Capability", "CreateObject", "lazy", "OperationHandler"]
7
+ }
@@ -0,0 +1,30 @@
1
+ // src/meta.ts
2
+ import { Plugin } from "@dxos/app-framework";
3
+ import { DXN } from "@dxos/keys";
4
+ import { trim } from "@dxos/util";
5
+ var meta = Plugin.makeMeta({
6
+ key: DXN.make("org.dxos.plugin.markdown"),
7
+ name: "Markdown",
8
+ author: "DXOS",
9
+ description: trim`
10
+ A full-featured markdown editor for authoring documents in your space. Edits flow through a collaborative CodeMirror surface backed by ECHO Text, so every keystroke replicates to other peers in real time without merge conflicts or lost work.
11
+
12
+ Documents can be opened in source, preview, or read-only mode and rendered as a full-surface article or as embeddable cards. An optional formatting toolbar exposes headings, lists, links, and other common markdown actions, and dispositional toolbar actions contributed by other plugins are surfaced inline alongside it.
13
+
14
+ The editor integrates with the rest of the workspace through @ references that link to any ECHO object, image and file uploads stored in the active space, and anchored comment threads on text ranges. Comments can optionally be routed to an AI agent on every message or only on @mention.
15
+
16
+ A built-in blueprint exposes create, open, and update operations as tools for AI agents. Updates are applied as compact find-and-replace diffs against the document, making it safe for agents to edit large documents incrementally while you continue collaborating.
17
+ `,
18
+ icon: "ph--text-aa--regular",
19
+ iconHue: "indigo",
20
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
21
+ screenshots: [
22
+ "https://customer-5rxcjpyab08avpmn.cloudflarestream.com/cdf2656365bb1fd327c1fc2105d75e5a/iframe?poster=https%3A%2F%2Fcustomer-5rxcjpyab08avpmn.cloudflarestream.com%2Fcdf2656365bb1fd327c1fc2105d75e5a%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600",
23
+ "https://dxos.network/plugin-details-markdown-dark.png"
24
+ ]
25
+ });
26
+
27
+ export {
28
+ meta
29
+ };
30
+ //# sourceMappingURL=chunk-36QFEVOZ.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 { Plugin } from '@dxos/app-framework';\nimport { DXN } from '@dxos/keys';\nimport { trim } from '@dxos/util';\n\nexport const meta = Plugin.makeMeta({\n key: DXN.make('org.dxos.plugin.markdown'),\n name: 'Markdown',\n author: 'DXOS',\n description: trim`\n A full-featured markdown editor for authoring documents in your space. Edits flow through a collaborative CodeMirror surface backed by ECHO Text, so every keystroke replicates to other peers in real time without merge conflicts or lost work.\n\n Documents can be opened in source, preview, or read-only mode and rendered as a full-surface article or as embeddable cards. An optional formatting toolbar exposes headings, lists, links, and other common markdown actions, and dispositional toolbar actions contributed by other plugins are surfaced inline alongside it.\n\n The editor integrates with the rest of the workspace through @ references that link to any ECHO object, image and file uploads stored in the active space, and anchored comment threads on text ranges. Comments can optionally be routed to an AI agent on every message or only on @mention.\n\n A built-in blueprint exposes create, open, and update operations as tools for AI agents. Updates are applied as compact find-and-replace diffs against the document, making it safe for agents to edit large documents incrementally while you continue collaborating.\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: [\n 'https://customer-5rxcjpyab08avpmn.cloudflarestream.com/cdf2656365bb1fd327c1fc2105d75e5a/iframe?poster=https%3A%2F%2Fcustomer-5rxcjpyab08avpmn.cloudflarestream.com%2Fcdf2656365bb1fd327c1fc2105d75e5a%2Fthumbnails%2Fthumbnail.jpg%3Ftime%3D%26height%3D600',\n 'https://dxos.network/plugin-details-markdown-dark.png',\n ],\n});\n"],
5
+ "mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,WAAW;AACpB,SAASC,YAAY;AAEd,IAAMC,OAAOH,OAAOI,SAAS;EAClCC,KAAKJ,IAAIK,KAAK,0BAAA;EACdC,MAAM;EACNC,QAAQ;EACRC,aAAaP;;;;;;;;;EASbQ,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,aAAa;IACX;IACA;;AAEJ,CAAA;",
6
+ "names": ["Plugin", "DXN", "trim", "meta", "makeMeta", "key", "make", "name", "author", "description", "icon", "iconHue", "source", "screenshots"]
7
+ }
@@ -0,0 +1,10 @@
1
+ // src/paths.ts
2
+ import { createTypeSectionPaths } from "@dxos/app-toolkit";
3
+ import { Markdown } from "#types";
4
+ var { getSectionPath: getDocumentsPath, getObjectPath: getDocumentPath } = createTypeSectionPaths(Markdown.Document);
5
+
6
+ export {
7
+ getDocumentsPath,
8
+ getDocumentPath
9
+ };
10
+ //# sourceMappingURL=chunk-67DKWOKF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/paths.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { createTypeSectionPaths } from '@dxos/app-toolkit';\n\nimport { Markdown } from '#types';\n\nconst { getSectionPath: getDocumentsPath, getObjectPath: getDocumentPath } = createTypeSectionPaths(Markdown.Document);\n\nexport { getDocumentsPath, getDocumentPath };\n"],
5
+ "mappings": ";AAIA,SAASA,8BAA8B;AAEvC,SAASC,gBAAgB;AAEzB,IAAM,EAAEC,gBAAgBC,kBAAkBC,eAAeC,gBAAe,IAAKL,uBAAuBC,SAASK,QAAQ;",
6
+ "names": ["createTypeSectionPaths", "Markdown", "getSectionPath", "getDocumentsPath", "getObjectPath", "getDocumentPath", "Document"]
7
+ }
@@ -0,0 +1,8 @@
1
+ // src/operations/index.ts
2
+ import { OperationHandlerSet } from "@dxos/compute";
3
+ var MarkdownOperationHandlerSet = OperationHandlerSet.lazy(() => import("./create-JK35XC4R.mjs"), () => import("./create-markdown-7MLE625M.mjs"), () => import("./open-5YC77C4O.mjs"), () => import("./scroll-to-anchor-GAFB7W55.mjs"), () => import("./set-view-mode-N7UHYMPG.mjs"), () => import("./update-markdown-NNINDDV5.mjs"));
4
+
5
+ export {
6
+ MarkdownOperationHandlerSet
7
+ };
8
+ //# sourceMappingURL=chunk-CIJD7P6X.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const MarkdownOperationHandlerSet = OperationHandlerSet.lazy(\n () => import('./create'),\n () => import('./create-markdown'),\n () => import('./open'),\n () => import('./scroll-to-anchor'),\n () => import('./set-view-mode'),\n () => import('./update-markdown'),\n);\n"],
5
+ "mappings": ";AAIA,SAASA,2BAA2B;AAE7B,IAAMC,8BAA8BD,oBAAoBE,KAC7D,MAAM,OAAO,uBAAA,GACb,MAAM,OAAO,gCAAA,GACb,MAAM,OAAO,qBAAA,GACb,MAAM,OAAO,iCAAA,GACb,MAAM,OAAO,8BAAA,GACb,MAAM,OAAO,gCAAA,CAAA;",
6
+ "names": ["OperationHandlerSet", "MarkdownOperationHandlerSet", "lazy"]
7
+ }
@@ -0,0 +1,10 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export {
8
+ __export
9
+ };
10
+ //# sourceMappingURL=chunk-J5LGTIGS.mjs.map
@@ -0,0 +1,98 @@
1
+ // src/util.tsx
2
+ import { debounce } from "@dxos/async";
3
+ import { Obj } from "@dxos/echo";
4
+ import { Markdown } from "#types";
5
+ var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
6
+ var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
7
+ var nonTitleChars = /[^\w ]/g;
8
+ var skipPatterns = [
9
+ /^!\[/,
10
+ /^---\s*$/,
11
+ /^```/,
12
+ /^\s*$/
13
+ ];
14
+ var titlePatterns = [
15
+ /^#{1,6}\s+(.+)/
16
+ ];
17
+ var getFallbackName = (content = "") => {
18
+ const len = content.length;
19
+ let i = 0;
20
+ while (i < len) {
21
+ let lineEnd = i;
22
+ while (lineEnd < len && content[lineEnd] !== "\n") {
23
+ lineEnd++;
24
+ }
25
+ const line = content.slice(i, lineEnd).trim();
26
+ i = lineEnd + 1;
27
+ if (skipPatterns.some((pattern) => pattern.test(line))) {
28
+ continue;
29
+ }
30
+ for (const pattern of titlePatterns) {
31
+ const match = pattern.exec(line);
32
+ if (match) {
33
+ const text2 = match[1].replaceAll(nonTitleChars, "").trim();
34
+ if (text2.length > 0) {
35
+ return text2;
36
+ }
37
+ }
38
+ }
39
+ const maxLen = 32;
40
+ const text = line.replaceAll(nonTitleChars, "").trim();
41
+ if (text.length > 0) {
42
+ if (text.length > maxLen) {
43
+ const words = text.split(/\s+/);
44
+ let result = "";
45
+ for (const word of words) {
46
+ const next = result.length === 0 ? word : result + " " + word;
47
+ if (next.length > maxLen) {
48
+ break;
49
+ }
50
+ result = next;
51
+ }
52
+ return result + "\u2026";
53
+ }
54
+ return text;
55
+ }
56
+ }
57
+ return "";
58
+ };
59
+ var getContentSnippet = (content = "", maxLines = 3) => {
60
+ const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
61
+ return abstract.slice(0, maxLines).join("\n") ?? "";
62
+ };
63
+ var setFallbackName = debounce((doc, content = "") => {
64
+ const name = getFallbackName(content);
65
+ if (doc.fallbackName !== name) {
66
+ Obj.update(doc, (doc2) => {
67
+ doc2.fallbackName = name;
68
+ });
69
+ }
70
+ }, 200);
71
+ var serializer = {
72
+ serialize: async ({ object }) => {
73
+ const { content } = await object.content.load();
74
+ return JSON.stringify({
75
+ name: object.name,
76
+ fallbackName: object.fallbackName,
77
+ content
78
+ });
79
+ },
80
+ deserialize: async ({ content: serialized }) => {
81
+ const { name, fallbackName, content } = JSON.parse(serialized);
82
+ return Markdown.make({
83
+ name,
84
+ fallbackName,
85
+ content
86
+ });
87
+ }
88
+ };
89
+
90
+ export {
91
+ isEditorModel,
92
+ isMarkdownProperties,
93
+ getFallbackName,
94
+ getContentSnippet,
95
+ setFallbackName,
96
+ serializer
97
+ };
98
+ //# sourceMappingURL=chunk-KDN4GKG2.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';\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\n// Lines matching these patterns are skipped.\nconst skipPatterns = [\n /^!\\[/, // Image.\n /^---\\s*$/, // Horizontal rule.\n /^```/, // Code block fence.\n /^\\s*$/, // Empty or whitespace-only.\n];\n\n// Patterns to extract title text (first capture group is used).\nconst titlePatterns = [\n /^#{1,6}\\s+(.+)/, // Heading.\n];\n\n/**\n * Extracts a fallback name by scanning lines for the first heading or text fragment.\n */\nexport const getFallbackName = (content = ''): string => {\n const len = content.length;\n\n let i = 0;\n while (i < len) {\n // Find end of line.\n let lineEnd = i;\n while (lineEnd < len && content[lineEnd] !== '\\n') {\n lineEnd++;\n }\n\n const line = content.slice(i, lineEnd).trim();\n i = lineEnd + 1;\n\n // Skip lines matching skip patterns.\n if (skipPatterns.some((pattern) => pattern.test(line))) {\n continue;\n }\n\n // Check for title patterns.\n for (const pattern of titlePatterns) {\n const match = pattern.exec(line);\n if (match) {\n const text = match[1].replaceAll(nonTitleChars, '').trim();\n if (text.length > 0) {\n return text;\n }\n }\n }\n\n // Use line as plain text fallback.\n const maxLen = 32;\n const text = line.replaceAll(nonTitleChars, '').trim();\n if (text.length > 0) {\n if (text.length > maxLen) {\n const words = text.split(/\\s+/);\n let result = '';\n for (const word of words) {\n const next = result.length === 0 ? word : result + ' ' + word;\n if (next.length > maxLen) {\n break;\n }\n result = next;\n }\n\n return result + '…';\n }\n\n return text;\n }\n }\n\n return '';\n};\n\n// TODO(burdon): Option to strip Markdown.\nexport const getContentSnippet = (content = '', maxLines = 3) => {\n const abstract = content\n .split('\\n')\n .filter((line) => !line.startsWith('!'))\n .filter((line) => line.trim() !== '');\n\n return abstract.slice(0, maxLines).join('\\n') ?? '';\n};\n\nexport const setFallbackName = debounce((doc: Markdown.Document, content = '') => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n Obj.update(doc, (doc) => {\n doc.fallbackName = name;\n });\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;AAGpB,SAASC,gBAAgB;AAOlB,IAAMC,gBAAgB,CAACC,SAC5BA,QACA,OAAOA,SAAS,YAChB,QAAQA,QACR,OAAOA,KAAKC,OAAO,YACnB,UAAUD,QACV,OAAOA,KAAKE,SAAS;AAIhB,IAAMC,uBAAuB,CAACH,SAClCH,IAAIO,SAASJ,IAAAA,IACV,OACAA,QAAQ,OAAOA,SAAS,WACtB,WAAWA,QAAQ,OAAOA,KAAKK,UAAU,WACzC;AAER,IAAMC,gBAAgB;AAGtB,IAAMC,eAAe;EACnB;EACA;EACA;EACA;;AAIF,IAAMC,gBAAgB;EACpB;;AAMK,IAAMC,kBAAkB,CAACC,UAAU,OAAE;AAC1C,QAAMC,MAAMD,QAAQE;AAEpB,MAAIC,IAAI;AACR,SAAOA,IAAIF,KAAK;AAEd,QAAIG,UAAUD;AACd,WAAOC,UAAUH,OAAOD,QAAQI,OAAAA,MAAa,MAAM;AACjDA;IACF;AAEA,UAAMC,OAAOL,QAAQM,MAAMH,GAAGC,OAAAA,EAASG,KAAI;AAC3CJ,QAAIC,UAAU;AAGd,QAAIP,aAAaW,KAAK,CAACC,YAAYA,QAAQC,KAAKL,IAAAA,CAAAA,GAAQ;AACtD;IACF;AAGA,eAAWI,WAAWX,eAAe;AACnC,YAAMa,QAAQF,QAAQG,KAAKP,IAAAA;AAC3B,UAAIM,OAAO;AACT,cAAMnB,QAAOmB,MAAM,CAAA,EAAGE,WAAWjB,eAAe,EAAA,EAAIW,KAAI;AACxD,YAAIf,MAAKU,SAAS,GAAG;AACnB,iBAAOV;QACT;MACF;IACF;AAGA,UAAMsB,SAAS;AACf,UAAMtB,OAAOa,KAAKQ,WAAWjB,eAAe,EAAA,EAAIW,KAAI;AACpD,QAAIf,KAAKU,SAAS,GAAG;AACnB,UAAIV,KAAKU,SAASY,QAAQ;AACxB,cAAMC,QAAQvB,KAAKwB,MAAM,KAAA;AACzB,YAAIC,SAAS;AACb,mBAAWC,QAAQH,OAAO;AACxB,gBAAMI,OAAOF,OAAOf,WAAW,IAAIgB,OAAOD,SAAS,MAAMC;AACzD,cAAIC,KAAKjB,SAASY,QAAQ;AACxB;UACF;AACAG,mBAASE;QACX;AAEA,eAAOF,SAAS;MAClB;AAEA,aAAOzB;IACT;EACF;AAEA,SAAO;AACT;AAGO,IAAM4B,oBAAoB,CAACpB,UAAU,IAAIqB,WAAW,MAAC;AAC1D,QAAMC,WAAWtB,QACdgB,MAAM,IAAA,EACNO,OAAO,CAAClB,SAAS,CAACA,KAAKmB,WAAW,GAAA,CAAA,EAClCD,OAAO,CAAClB,SAASA,KAAKE,KAAI,MAAO,EAAA;AAEpC,SAAOe,SAAShB,MAAM,GAAGe,QAAAA,EAAUI,KAAK,IAAA,KAAS;AACnD;AAEO,IAAMC,kBAAkBxC,SAAS,CAACyC,KAAwB3B,UAAU,OAAE;AAC3E,QAAM4B,OAAO7B,gBAAgBC,OAAAA;AAC7B,MAAI2B,IAAIE,iBAAiBD,MAAM;AAC7BzC,QAAI2C,OAAOH,KAAK,CAACA,SAAAA;AACfA,MAAAA,KAAIE,eAAeD;IACrB,CAAA;EACF;AACF,GAAG,GAAA;AAEI,IAAMG,aAAuD;EAClEC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAM,EAAEjC,QAAO,IAAK,MAAMiC,OAAOjC,QAAQkC,KAAI;AAC7C,WAAOC,KAAKC,UAAU;MAAER,MAAMK,OAAOL;MAAMC,cAAcI,OAAOJ;MAAc7B;IAAQ,CAAA;EACxF;EAEAqC,aAAa,OAAO,EAAErC,SAASsC,WAAU,MAAE;AACzC,UAAM,EAAEV,MAAMC,cAAc7B,QAAO,IAAKmC,KAAKI,MAAMD,UAAAA;AACnD,WAAOlD,SAASoD,KAAK;MAAEZ;MAAMC;MAAc7B;IAAQ,CAAA;EACrD;AACF;",
6
+ "names": ["debounce", "Obj", "Markdown", "isEditorModel", "data", "id", "text", "isMarkdownProperties", "isObject", "title", "nonTitleChars", "skipPatterns", "titlePatterns", "getFallbackName", "content", "len", "length", "i", "lineEnd", "line", "slice", "trim", "some", "pattern", "test", "match", "exec", "replaceAll", "maxLen", "words", "split", "result", "word", "next", "getContentSnippet", "maxLines", "abstract", "filter", "startsWith", "join", "setFallbackName", "doc", "name", "fallbackName", "update", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "make"]
7
+ }
@@ -0,0 +1,44 @@
1
+ // src/blueprints/markdown-blueprint.ts
2
+ import { Blueprint, Template } from "@dxos/compute";
3
+ import { trim } from "@dxos/util";
4
+ import { Markdown, MarkdownOperation } from "#types";
5
+ var make = () => Blueprint.make({
6
+ key: Markdown.BLUEPRINT_KEY,
7
+ name: "Markdown",
8
+ description: "Work with markdown documents. Preferred over raw database operations.",
9
+ tools: Blueprint.toolDefinitions({
10
+ operations: [
11
+ MarkdownOperation.Create,
12
+ MarkdownOperation.Open,
13
+ MarkdownOperation.Update
14
+ ]
15
+ }),
16
+ instructions: Template.make({
17
+ // TODO(wittjosiah): Move example to function input schema annotation.
18
+ source: trim`
19
+ {{! Markdown }}
20
+
21
+ You can create, read and update markdown documents.
22
+ When asked to edit or update documents return updates as a set of compact diff string pairs.
23
+ For each diff, respond with the smallest possible matching span.
24
+
25
+ Example:
26
+ ${"```"}diff
27
+ - "There is a tyop in this sentence."
28
+ + "There is a typo in this sentence."
29
+ - "This id good."
30
+ + "This sentence is really good."
31
+ ${"```"}
32
+ `
33
+ })
34
+ });
35
+ var blueprint = {
36
+ key: Markdown.BLUEPRINT_KEY,
37
+ make
38
+ };
39
+ var markdown_blueprint_default = blueprint;
40
+
41
+ export {
42
+ markdown_blueprint_default
43
+ };
44
+ //# sourceMappingURL=chunk-LXNSKCPD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/markdown-blueprint.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint, Template } from '@dxos/compute';\nimport { trim } from '@dxos/util';\n\nimport { Markdown, MarkdownOperation } from '#types';\n\nconst make = () =>\n Blueprint.make({\n key: Markdown.BLUEPRINT_KEY,\n name: 'Markdown',\n description: 'Work with markdown documents. Preferred over raw database operations.',\n tools: Blueprint.toolDefinitions({\n operations: [MarkdownOperation.Create, MarkdownOperation.Open, MarkdownOperation.Update],\n }),\n instructions: Template.make({\n // TODO(wittjosiah): Move example to function input schema annotation.\n source: trim`\n {{! Markdown }}\n\n You can create, read and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n\n Example:\n ${'```'}diff\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id good.\"\n + \"This sentence is really good.\"\n ${'```'}\n `,\n }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: Markdown.BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n"],
5
+ "mappings": ";AAIA,SAASA,WAAWC,gBAAgB;AACpC,SAASC,YAAY;AAErB,SAASC,UAAUC,yBAAyB;AAE5C,IAAMC,OAAO,MACXL,UAAUK,KAAK;EACbC,KAAKH,SAASI;EACdC,MAAM;EACNC,aAAa;EACbC,OAAOV,UAAUW,gBAAgB;IAC/BC,YAAY;MAACR,kBAAkBS;MAAQT,kBAAkBU;MAAMV,kBAAkBW;;EACnF,CAAA;EACAC,cAAcf,SAASI,KAAK;;IAE1BY,QAAQf;;;;;;;;UAQJ,KAAA;;;;;UAKA,KAAA;;EAEN,CAAA;AACF,CAAA;AAEF,IAAMgB,YAAkC;EACtCZ,KAAKH,SAASI;EACdF;AACF;AAEA,IAAA,6BAAea;",
6
+ "names": ["Blueprint", "Template", "trim", "Markdown", "MarkdownOperation", "make", "key", "BLUEPRINT_KEY", "name", "description", "tools", "toolDefinitions", "operations", "Create", "Open", "Update", "instructions", "source", "blueprint"]
7
+ }