@dxos/plugin-markdown 0.8.3 → 0.8.4-main.1c7ec43d41

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 (372) hide show
  1. package/dist/lib/browser/blueprints/index.mjs +50 -0
  2. package/dist/lib/browser/blueprints/index.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-KPSXHN3Q.mjs +131 -0
  4. package/dist/lib/browser/chunk-KPSXHN3Q.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-VO2ZBC6U.mjs +156 -0
  6. package/dist/lib/browser/chunk-VO2ZBC6U.mjs.map +7 -0
  7. package/dist/lib/browser/create-UL2TEFR3.mjs +29 -0
  8. package/dist/lib/browser/create-UL2TEFR3.mjs.map +7 -0
  9. package/dist/lib/browser/create-markdown-PQDTYLLI.mjs +21 -0
  10. package/dist/lib/browser/create-markdown-PQDTYLLI.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +118 -143
  12. package/dist/lib/browser/index.mjs.map +4 -4
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/open-IPZXTNKG.mjs +20 -0
  15. package/dist/lib/browser/open-IPZXTNKG.mjs.map +7 -0
  16. package/dist/lib/browser/operations/index.mjs +13 -0
  17. package/dist/lib/browser/operations/index.mjs.map +7 -0
  18. package/dist/lib/browser/scroll-to-anchor-Q3RYPZHW.mjs +48 -0
  19. package/dist/lib/browser/scroll-to-anchor-Q3RYPZHW.mjs.map +7 -0
  20. package/dist/lib/browser/set-view-mode-RJT2TPIO.mjs +25 -0
  21. package/dist/lib/browser/set-view-mode-RJT2TPIO.mjs.map +7 -0
  22. package/dist/lib/browser/types/index.mjs +11 -14
  23. package/dist/lib/browser/update-markdown-OIYNGDIJ.mjs +44 -0
  24. package/dist/lib/browser/update-markdown-OIYNGDIJ.mjs.map +7 -0
  25. package/dist/lib/node-esm/blueprints/index.mjs +51 -0
  26. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  27. package/dist/lib/node-esm/chunk-AQ23MN27.mjs +132 -0
  28. package/dist/lib/node-esm/chunk-AQ23MN27.mjs.map +7 -0
  29. package/dist/lib/node-esm/chunk-YPHNZRTP.mjs +157 -0
  30. package/dist/lib/node-esm/chunk-YPHNZRTP.mjs.map +7 -0
  31. package/dist/lib/node-esm/create-FCUAPHJL.mjs +30 -0
  32. package/dist/lib/node-esm/create-FCUAPHJL.mjs.map +7 -0
  33. package/dist/lib/node-esm/create-markdown-M4A3ZO4B.mjs +22 -0
  34. package/dist/lib/node-esm/create-markdown-M4A3ZO4B.mjs.map +7 -0
  35. package/dist/lib/node-esm/index.mjs +118 -143
  36. package/dist/lib/node-esm/index.mjs.map +4 -4
  37. package/dist/lib/node-esm/meta.json +1 -1
  38. package/dist/lib/node-esm/open-RTIMPR45.mjs +21 -0
  39. package/dist/lib/node-esm/open-RTIMPR45.mjs.map +7 -0
  40. package/dist/lib/node-esm/operations/index.mjs +14 -0
  41. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  42. package/dist/lib/node-esm/scroll-to-anchor-Y3SPOWK7.mjs +49 -0
  43. package/dist/lib/node-esm/scroll-to-anchor-Y3SPOWK7.mjs.map +7 -0
  44. package/dist/lib/node-esm/set-view-mode-EMUZJWSD.mjs +26 -0
  45. package/dist/lib/node-esm/set-view-mode-EMUZJWSD.mjs.map +7 -0
  46. package/dist/lib/node-esm/types/index.mjs +11 -14
  47. package/dist/lib/node-esm/update-markdown-EA4IMU4Z.mjs +45 -0
  48. package/dist/lib/node-esm/update-markdown-EA4IMU4Z.mjs.map +7 -0
  49. package/dist/types/src/MarkdownPlugin.d.ts +3 -1
  50. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  51. package/dist/types/src/MarkdownPlugin.node.d.ts +4 -0
  52. package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -0
  53. package/dist/types/src/MarkdownPlugin.test.d.ts +2 -0
  54. package/dist/types/src/MarkdownPlugin.test.d.ts.map +1 -0
  55. package/dist/types/src/blueprints/index.d.ts +2 -0
  56. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  57. package/dist/types/src/blueprints/markdown-blueprint.d.ts +4 -0
  58. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/anchor-sort.d.ts +4 -4
  60. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  61. package/dist/types/src/capabilities/app-graph-serializer.d.ts +3 -2
  62. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/artifact-definition.d.ts +3 -9
  64. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  66. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/comment-config.d.ts +12 -0
  68. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  70. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/index.d.ts +22 -16
  72. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/node.d.ts +10 -0
  74. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  76. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  78. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/settings.d.ts +4 -2
  80. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/state.d.ts +4 -9
  82. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  83. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +11 -0
  84. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -0
  85. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +52 -21
  86. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  87. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +8 -15
  88. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +33 -0
  90. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -0
  91. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +13 -0
  92. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -0
  93. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +4 -4
  94. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  95. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +94 -0
  96. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -0
  97. package/dist/types/src/components/MarkdownSettings/index.d.ts +1 -1
  98. package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -1
  99. package/dist/types/src/components/index.d.ts +3 -3
  100. package/dist/types/src/components/index.d.ts.map +1 -1
  101. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts +15 -0
  102. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
  103. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
  104. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
  105. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts +8 -0
  106. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  107. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
  108. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  109. package/dist/types/src/containers/MarkdownCard/index.d.ts +2 -0
  110. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
  111. package/dist/types/src/containers/MarkdownCard/snippet.d.ts +17 -0
  112. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
  113. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts +36 -0
  114. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -0
  115. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +97 -0
  116. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -0
  117. package/dist/types/src/containers/MarkdownContainer/index.d.ts +3 -0
  118. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -0
  119. package/dist/types/src/containers/index.d.ts +6 -0
  120. package/dist/types/src/containers/index.d.ts.map +1 -0
  121. package/dist/types/src/hooks/index.d.ts +3 -1
  122. package/dist/types/src/hooks/index.d.ts.map +1 -1
  123. package/dist/types/src/hooks/useEditorMenuOptions.d.ts +9 -0
  124. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -0
  125. package/dist/types/src/hooks/useExtensions.d.ts +25 -0
  126. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -0
  127. package/dist/types/src/hooks/useLinkQuery.d.ts +4 -0
  128. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -0
  129. package/dist/types/src/index.d.ts +4 -3
  130. package/dist/types/src/index.d.ts.map +1 -1
  131. package/dist/types/src/meta.d.ts +2 -3
  132. package/dist/types/src/meta.d.ts.map +1 -1
  133. package/dist/types/src/operations/create-markdown.d.ts +5 -0
  134. package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
  135. package/dist/types/src/operations/create.d.ts +5 -0
  136. package/dist/types/src/operations/create.d.ts.map +1 -0
  137. package/dist/types/src/operations/create.test.d.ts +2 -0
  138. package/dist/types/src/operations/create.test.d.ts.map +1 -0
  139. package/dist/types/src/operations/definitions.d.ts +64 -0
  140. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  141. package/dist/types/src/operations/index.d.ts +4 -0
  142. package/dist/types/src/operations/index.d.ts.map +1 -0
  143. package/dist/types/src/operations/open.d.ts +5 -0
  144. package/dist/types/src/operations/open.d.ts.map +1 -0
  145. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  146. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  147. package/dist/types/src/operations/set-view-mode.d.ts +5 -0
  148. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
  149. package/dist/types/src/operations/update-markdown.d.ts +5 -0
  150. package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
  151. package/dist/types/src/operations/update.test.d.ts +2 -0
  152. package/dist/types/src/operations/update.test.d.ts.map +1 -0
  153. package/dist/types/src/testing.d.ts +6 -0
  154. package/dist/types/src/testing.d.ts.map +1 -0
  155. package/dist/types/src/translations.d.ts +76 -79
  156. package/dist/types/src/translations.d.ts.map +1 -1
  157. package/dist/types/src/types/Markdown.d.ts +45 -0
  158. package/dist/types/src/types/Markdown.d.ts.map +1 -0
  159. package/dist/types/src/types/Settings.d.ts +17 -0
  160. package/dist/types/src/types/Settings.d.ts.map +1 -0
  161. package/dist/types/src/types/capabilities.d.ts +34 -0
  162. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  163. package/dist/types/src/types/events.d.ts +5 -0
  164. package/dist/types/src/types/events.d.ts.map +1 -0
  165. package/dist/types/src/types/index.d.ts +4 -1
  166. package/dist/types/src/types/index.d.ts.map +1 -1
  167. package/dist/types/src/types/types.d.ts +5 -59
  168. package/dist/types/src/types/types.d.ts.map +1 -1
  169. package/dist/types/src/util.d.ts +17 -5
  170. package/dist/types/src/util.d.ts.map +1 -1
  171. package/dist/types/src/util.test.d.ts +2 -0
  172. package/dist/types/src/util.test.d.ts.map +1 -0
  173. package/dist/types/tsconfig.tsbuildinfo +1 -1
  174. package/package.json +118 -65
  175. package/src/MarkdownPlugin.node.ts +20 -0
  176. package/src/MarkdownPlugin.test.ts +26 -0
  177. package/src/MarkdownPlugin.tsx +49 -110
  178. package/src/blueprints/index.ts +5 -0
  179. package/src/blueprints/markdown-blueprint.ts +43 -0
  180. package/src/capabilities/anchor-sort.ts +29 -22
  181. package/src/capabilities/app-graph-serializer.ts +53 -41
  182. package/src/capabilities/artifact-definition.ts +93 -99
  183. package/src/capabilities/blueprint-definition.ts +19 -0
  184. package/src/capabilities/comment-config.ts +32 -0
  185. package/src/capabilities/create-object.ts +30 -0
  186. package/src/capabilities/index.ts +15 -10
  187. package/src/capabilities/node.ts +13 -0
  188. package/src/capabilities/operation-handler.ts +16 -0
  189. package/src/capabilities/react-surface.tsx +116 -102
  190. package/src/capabilities/settings.ts +30 -18
  191. package/src/capabilities/state.ts +40 -24
  192. package/src/components/MarkdownEditor/FileUpload.tsx +63 -0
  193. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +65 -38
  194. package/src/components/MarkdownEditor/MarkdownEditor.tsx +247 -255
  195. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +170 -0
  196. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +47 -0
  197. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +40 -0
  198. package/src/components/MarkdownSettings/MarkdownSettings.tsx +22 -92
  199. package/src/components/MarkdownSettings/index.ts +1 -1
  200. package/src/components/index.ts +4 -5
  201. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.tsx +42 -0
  202. package/src/containers/EditableMarkdownCard/index.ts +6 -0
  203. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +68 -0
  204. package/src/containers/MarkdownCard/MarkdownCard.tsx +68 -0
  205. package/src/containers/MarkdownCard/index.ts +5 -0
  206. package/src/containers/MarkdownCard/snippet.ts +54 -0
  207. package/src/containers/MarkdownContainer/MarkdownContainer.stories.tsx +135 -0
  208. package/src/containers/MarkdownContainer/MarkdownContainer.tsx +146 -0
  209. package/src/containers/MarkdownContainer/index.ts +6 -0
  210. package/src/containers/index.ts +11 -0
  211. package/src/hooks/index.ts +3 -1
  212. package/src/hooks/useEditorMenuOptions.ts +68 -0
  213. package/src/hooks/useExtensions.tsx +262 -0
  214. package/src/hooks/useLinkQuery.ts +92 -0
  215. package/src/index.ts +9 -3
  216. package/src/meta.ts +9 -10
  217. package/src/operations/create-markdown.ts +20 -0
  218. package/src/operations/create.conversations.json +1 -0
  219. package/src/operations/create.test.ts +97 -0
  220. package/src/operations/create.ts +27 -0
  221. package/src/operations/definitions.ts +120 -0
  222. package/src/operations/index.ts +16 -0
  223. package/src/operations/open.ts +25 -0
  224. package/src/operations/scroll-to-anchor.ts +39 -0
  225. package/src/operations/set-view-mode.ts +24 -0
  226. package/src/operations/update-markdown.ts +51 -0
  227. package/src/operations/update.conversations.json +1 -0
  228. package/src/operations/update.test.ts +214 -0
  229. package/src/testing.ts +27 -0
  230. package/src/translations.ts +31 -34
  231. package/src/types/Markdown.ts +55 -0
  232. package/src/types/Settings.ts +65 -0
  233. package/src/types/capabilities.ts +51 -0
  234. package/src/types/events.ts +14 -0
  235. package/src/types/index.ts +5 -1
  236. package/src/types/types.ts +10 -50
  237. package/src/util.test.ts +44 -0
  238. package/src/util.tsx +100 -11
  239. package/dist/lib/browser/MarkdownContainer-EFWQ6DHD.mjs +0 -770
  240. package/dist/lib/browser/MarkdownContainer-EFWQ6DHD.mjs.map +0 -7
  241. package/dist/lib/browser/MarkdownPreview-F4PYFW5L.mjs +0 -80
  242. package/dist/lib/browser/MarkdownPreview-F4PYFW5L.mjs.map +0 -7
  243. package/dist/lib/browser/anchor-sort-BMAN2ABT.mjs +0 -32
  244. package/dist/lib/browser/anchor-sort-BMAN2ABT.mjs.map +0 -7
  245. package/dist/lib/browser/app-graph-serializer-EI6TEHRQ.mjs +0 -52
  246. package/dist/lib/browser/app-graph-serializer-EI6TEHRQ.mjs.map +0 -7
  247. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs +0 -145
  248. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs.map +0 -7
  249. package/dist/lib/browser/chunk-354IBM5X.mjs +0 -20
  250. package/dist/lib/browser/chunk-354IBM5X.mjs.map +0 -7
  251. package/dist/lib/browser/chunk-D767LUGU.mjs +0 -51
  252. package/dist/lib/browser/chunk-D767LUGU.mjs.map +0 -7
  253. package/dist/lib/browser/chunk-JX6XNEHE.mjs +0 -22
  254. package/dist/lib/browser/chunk-JX6XNEHE.mjs.map +0 -7
  255. package/dist/lib/browser/chunk-LXSRQPEP.mjs +0 -51
  256. package/dist/lib/browser/chunk-LXSRQPEP.mjs.map +0 -7
  257. package/dist/lib/browser/chunk-N2D26K6W.mjs +0 -79
  258. package/dist/lib/browser/chunk-N2D26K6W.mjs.map +0 -7
  259. package/dist/lib/browser/chunk-QVJETNGS.mjs +0 -16
  260. package/dist/lib/browser/chunk-QVJETNGS.mjs.map +0 -7
  261. package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs +0 -64
  262. package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs.map +0 -7
  263. package/dist/lib/browser/react-surface-4B5ELMEW.mjs +0 -205
  264. package/dist/lib/browser/react-surface-4B5ELMEW.mjs.map +0 -7
  265. package/dist/lib/browser/settings-PLH54VC7.mjs +0 -28
  266. package/dist/lib/browser/settings-PLH54VC7.mjs.map +0 -7
  267. package/dist/lib/browser/state-KI6PJ6DT.mjs +0 -37
  268. package/dist/lib/browser/state-KI6PJ6DT.mjs.map +0 -7
  269. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs +0 -783
  270. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs.map +0 -7
  271. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs +0 -103
  272. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs.map +0 -7
  273. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs +0 -48
  274. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs.map +0 -7
  275. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs +0 -65
  276. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs.map +0 -7
  277. package/dist/lib/node/artifact-definition-U27MH5SC.cjs +0 -158
  278. package/dist/lib/node/artifact-definition-U27MH5SC.cjs.map +0 -7
  279. package/dist/lib/node/chunk-3HHV4MM6.cjs +0 -101
  280. package/dist/lib/node/chunk-3HHV4MM6.cjs.map +0 -7
  281. package/dist/lib/node/chunk-CJLYFGPI.cjs +0 -74
  282. package/dist/lib/node/chunk-CJLYFGPI.cjs.map +0 -7
  283. package/dist/lib/node/chunk-FU3XZZCO.cjs +0 -58
  284. package/dist/lib/node/chunk-FU3XZZCO.cjs.map +0 -7
  285. package/dist/lib/node/chunk-IFYSBQE5.cjs +0 -35
  286. package/dist/lib/node/chunk-IFYSBQE5.cjs.map +0 -7
  287. package/dist/lib/node/chunk-LQAC5HL7.cjs +0 -68
  288. package/dist/lib/node/chunk-LQAC5HL7.cjs.map +0 -7
  289. package/dist/lib/node/chunk-ZU5OIHCY.cjs +0 -45
  290. package/dist/lib/node/chunk-ZU5OIHCY.cjs.map +0 -7
  291. package/dist/lib/node/index.cjs +0 -165
  292. package/dist/lib/node/index.cjs.map +0 -7
  293. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs +0 -77
  294. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs.map +0 -7
  295. package/dist/lib/node/meta.json +0 -1
  296. package/dist/lib/node/react-surface-456HQ4KZ.cjs +0 -218
  297. package/dist/lib/node/react-surface-456HQ4KZ.cjs.map +0 -7
  298. package/dist/lib/node/settings-E3NUTXJ4.cjs +0 -42
  299. package/dist/lib/node/settings-E3NUTXJ4.cjs.map +0 -7
  300. package/dist/lib/node/state-KKDRAG7X.cjs +0 -51
  301. package/dist/lib/node/state-KKDRAG7X.cjs.map +0 -7
  302. package/dist/lib/node/types/index.cjs +0 -40
  303. package/dist/lib/node/types/index.cjs.map +0 -7
  304. package/dist/lib/node-esm/MarkdownContainer-O3SGMH4G.mjs +0 -771
  305. package/dist/lib/node-esm/MarkdownContainer-O3SGMH4G.mjs.map +0 -7
  306. package/dist/lib/node-esm/MarkdownPreview-KFDRV4GC.mjs +0 -81
  307. package/dist/lib/node-esm/MarkdownPreview-KFDRV4GC.mjs.map +0 -7
  308. package/dist/lib/node-esm/anchor-sort-BXL7BE67.mjs +0 -33
  309. package/dist/lib/node-esm/anchor-sort-BXL7BE67.mjs.map +0 -7
  310. package/dist/lib/node-esm/app-graph-serializer-F7DGNF3G.mjs +0 -53
  311. package/dist/lib/node-esm/app-graph-serializer-F7DGNF3G.mjs.map +0 -7
  312. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs +0 -146
  313. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs.map +0 -7
  314. package/dist/lib/node-esm/chunk-BWDDFDJY.mjs +0 -52
  315. package/dist/lib/node-esm/chunk-BWDDFDJY.mjs.map +0 -7
  316. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs +0 -17
  317. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs.map +0 -7
  318. package/dist/lib/node-esm/chunk-K26TX5V4.mjs +0 -52
  319. package/dist/lib/node-esm/chunk-K26TX5V4.mjs.map +0 -7
  320. package/dist/lib/node-esm/chunk-RX63ZNML.mjs +0 -24
  321. package/dist/lib/node-esm/chunk-RX63ZNML.mjs.map +0 -7
  322. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs +0 -80
  323. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs.map +0 -7
  324. package/dist/lib/node-esm/chunk-YOABAQ7A.mjs +0 -22
  325. package/dist/lib/node-esm/chunk-YOABAQ7A.mjs.map +0 -7
  326. package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs +0 -65
  327. package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs.map +0 -7
  328. package/dist/lib/node-esm/react-surface-YHFOQTVO.mjs +0 -206
  329. package/dist/lib/node-esm/react-surface-YHFOQTVO.mjs.map +0 -7
  330. package/dist/lib/node-esm/settings-SIY33P3F.mjs +0 -29
  331. package/dist/lib/node-esm/settings-SIY33P3F.mjs.map +0 -7
  332. package/dist/lib/node-esm/state-LLGVRYKL.mjs +0 -38
  333. package/dist/lib/node-esm/state-LLGVRYKL.mjs.map +0 -7
  334. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  335. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  336. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  337. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  338. package/dist/types/src/components/MarkdownContainer.d.ts +0 -18
  339. package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
  340. package/dist/types/src/components/MarkdownContainer.stories.d.ts +0 -9
  341. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
  342. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +0 -6
  343. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +0 -1
  344. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -17
  345. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +0 -1
  346. package/dist/types/src/components/MarkdownPreview/index.d.ts +0 -4
  347. package/dist/types/src/components/MarkdownPreview/index.d.ts.map +0 -1
  348. package/dist/types/src/components/Suggestions.stories.d.ts +0 -12
  349. package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
  350. package/dist/types/src/components/Toolbar.stories.d.ts +0 -11
  351. package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
  352. package/dist/types/src/events.d.ts +0 -4
  353. package/dist/types/src/events.d.ts.map +0 -1
  354. package/dist/types/src/extensions.d.ts +0 -24
  355. package/dist/types/src/extensions.d.ts.map +0 -1
  356. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
  357. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
  358. package/dist/types/src/types/schema.d.ts +0 -35
  359. package/dist/types/src/types/schema.d.ts.map +0 -1
  360. package/src/capabilities/capabilities.ts +0 -20
  361. package/src/capabilities/intent-resolver.ts +0 -63
  362. package/src/components/MarkdownContainer.stories.tsx +0 -103
  363. package/src/components/MarkdownContainer.tsx +0 -241
  364. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -74
  365. package/src/components/MarkdownPreview/MarkdownPreview.tsx +0 -71
  366. package/src/components/MarkdownPreview/index.ts +0 -9
  367. package/src/components/Suggestions.stories.tsx +0 -215
  368. package/src/components/Toolbar.stories.tsx +0 -113
  369. package/src/events.ts +0 -11
  370. package/src/extensions.tsx +0 -324
  371. package/src/hooks/useSelectCurrentThread.tsx +0 -56
  372. package/src/types/schema.ts +0 -39
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Obj } from '@dxos/echo';\nimport { CollectionModel } from '@dxos/schema';\n\nimport { Markdown } from '../types';\nimport { Create } from './definitions';\n\nconst handler: Operation.WithHandler<typeof Create> = Create.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ name, content }) {\n const object = Markdown.make({ name, content });\n yield* CollectionModel.add({ object });\n\n return {\n id: Obj.getDXN(object).toString(),\n };\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,WAAW;AACpB,SAASC,uBAAuB;AAKhC,IAAMC,UAAgDC,OAAOC,KAC3DC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAMC,QAAO,GAAE;AACpC,QAAMC,SAASC,iBAASC,KAAK;IAAEJ;IAAMC;EAAQ,CAAA;AAC7C,SAAOI,gBAAgBC,IAAI;IAAEJ;EAAO,CAAA;AAEpC,SAAO;IACLK,IAAIC,IAAIC,OAAOP,MAAAA,EAAQQ,SAAQ;EACjC;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,iBAAehB;",
6
+ "names": ["Effect", "Operation", "Obj", "CollectionModel", "handler", "Create", "pipe", "Operation", "withHandler", "fn", "name", "content", "object", "Markdown", "make", "CollectionModel", "add", "id", "Obj", "getDXN", "toString"]
7
+ }
@@ -0,0 +1,22 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ CreateMarkdown
4
+ } from "./chunk-YPHNZRTP.mjs";
5
+ import {
6
+ Markdown_exports
7
+ } from "./chunk-AQ23MN27.mjs";
8
+
9
+ // src/operations/create-markdown.ts
10
+ import * as Effect from "effect/Effect";
11
+ import { Operation } from "@dxos/compute";
12
+ var handler = CreateMarkdown.pipe(Operation.withHandler(({ name, content }) => Effect.succeed({
13
+ object: Markdown_exports.make({
14
+ name,
15
+ content
16
+ })
17
+ })));
18
+ var create_markdown_default = handler;
19
+ export {
20
+ create_markdown_default as default
21
+ };
22
+ //# sourceMappingURL=create-markdown-M4A3ZO4B.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create-markdown.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\n\nimport { Markdown } from '../types';\nimport { CreateMarkdown } from './definitions';\n\nconst handler: Operation.WithHandler<typeof CreateMarkdown> = CreateMarkdown.pipe(\n Operation.withHandler(({ name, content }) =>\n Effect.succeed({\n object: Markdown.make({ name, content }),\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAK1B,IAAMC,UAAwDC,eAAeC,KAC3EC,UAAUC,YAAY,CAAC,EAAEC,MAAMC,QAAO,MAC7BC,eAAQ;EACbC,QAAQC,iBAASC,KAAK;IAAEL;IAAMC;EAAQ,CAAA;AACxC,CAAA,CAAA,CAAA;AAIJ,IAAA,0BAAeN;",
6
+ "names": ["Effect", "Operation", "handler", "CreateMarkdown", "pipe", "Operation", "withHandler", "name", "content", "succeed", "object", "Markdown", "make"]
7
+ }
@@ -1,158 +1,133 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- translations_default
4
- } from "./chunk-BWDDFDJY.mjs";
5
- import {
6
- AnchorSort,
7
- AppGraphSerializer,
8
- ArtifactDefinition,
9
- IntentResolver,
10
- MarkdownSettings,
11
- MarkdownState,
12
- ReactSurface
13
- } from "./chunk-YOABAQ7A.mjs";
14
- import {
15
- MarkdownCapabilities
16
- } from "./chunk-JXXDCSMW.mjs";
17
- import {
18
- getAbstract,
19
- getFallbackName,
20
- isMarkdownProperties,
21
- serializer,
22
- setFallbackName
23
- } from "./chunk-K26TX5V4.mjs";
24
- import {
25
- DocumentType,
26
- MarkdownAction
27
- } from "./chunk-T2Y2BT53.mjs";
28
- import {
29
- MARKDOWN_PLUGIN,
30
- meta
31
- } from "./chunk-RX63ZNML.mjs";
3
+ MarkdownCapabilities,
4
+ MarkdownEvents,
5
+ MarkdownStateSchema,
6
+ Markdown_exports,
7
+ Settings_exports
8
+ } from "./chunk-AQ23MN27.mjs";
9
+
10
+ // src/index.ts
11
+ import { Plugin } from "@dxos/app-framework";
32
12
 
33
- // packages/plugins/plugin-markdown/src/events.ts
34
- import { Events } from "@dxos/app-framework";
35
- (function(MarkdownEvents2) {
36
- MarkdownEvents2.SetupExtensions = Events.createStateEvent(`${MARKDOWN_PLUGIN}/setup-extensions`);
37
- })(MarkdownEvents || (MarkdownEvents = {}));
38
- var MarkdownEvents;
13
+ // src/meta.ts
14
+ import { trim } from "@dxos/util";
15
+ var meta = {
16
+ id: "org.dxos.plugin.markdown",
17
+ name: "Markdown",
18
+ description: trim`
19
+ Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
20
+ Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
21
+ `,
22
+ icon: "ph--text-aa--regular",
23
+ iconHue: "indigo",
24
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
25
+ screenshots: [
26
+ "https://dxos.network/plugin-details-markdown-dark.png"
27
+ ]
28
+ };
39
29
 
40
- // packages/plugins/plugin-markdown/src/MarkdownPlugin.tsx
41
- import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events as Events2 } from "@dxos/app-framework";
42
- import { Ref } from "@dxos/echo";
43
- import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
44
- import { SpaceCapabilities } from "@dxos/plugin-space";
45
- import { defineObjectForm } from "@dxos/plugin-space/types";
46
- import { createDocAccessor, getTextInRange } from "@dxos/react-client/echo";
47
- import { translations as editorTranslations } from "@dxos/react-ui-editor";
48
- import { DataType } from "@dxos/schema";
49
- var MarkdownPlugin = () => definePlugin(meta, [
50
- defineModule({
51
- id: `${meta.id}/module/translations`,
52
- activatesOn: Events2.SetupTranslations,
53
- activate: () => contributes(Capabilities.Translations, [
54
- ...translations_default,
55
- ...editorTranslations
56
- ])
57
- }),
58
- defineModule({
59
- id: `${meta.id}/module/settings`,
60
- activatesOn: Events2.SetupSettings,
61
- activate: MarkdownSettings
62
- }),
63
- defineModule({
64
- id: `${meta.id}/module/state`,
65
- // TODO(wittjosiah): Does not integrate with settings store.
66
- // Should this be a different event?
67
- // Should settings store be renamed to be more generic?
68
- activatesOn: Events2.SetupSettings,
69
- activate: MarkdownState
70
- }),
71
- defineModule({
72
- id: `${meta.id}/module/metadata`,
73
- activatesOn: Events2.SetupMetadata,
74
- activate: () => contributes(Capabilities.Metadata, {
75
- id: DocumentType.typename,
76
- metadata: {
77
- label: (object) => object.name || object.fallbackName,
78
- icon: "ph--text-aa--regular",
79
- graphProps: {
80
- managesAutofocus: true
81
- },
82
- // TODO(wittjosiah): Move out of metadata.
83
- loadReferences: async (doc) => await Ref.Array.loadAll([
84
- doc.content
85
- ]),
86
- serializer,
87
- // TODO(wittjosiah): Consider how to do generic comments without these.
88
- comments: "anchored",
89
- selectionMode: "multi-range",
90
- getAnchorLabel: (doc, anchor) => {
91
- if (doc.content) {
92
- const [start, end] = anchor.split(":");
93
- return getTextInRange(createDocAccessor(doc.content.target, [
94
- "content"
95
- ]), start, end);
30
+ // src/util.tsx
31
+ import { debounce } from "@dxos/async";
32
+ import { Obj } from "@dxos/echo";
33
+ import { Markdown } from "#types";
34
+ var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
35
+ var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
36
+ var nonTitleChars = /[^\w ]/g;
37
+ var skipPatterns = [
38
+ /^!\[/,
39
+ /^---\s*$/,
40
+ /^```/,
41
+ /^\s*$/
42
+ ];
43
+ var titlePatterns = [
44
+ /^#{1,6}\s+(.+)/
45
+ ];
46
+ var getFallbackName = (content = "") => {
47
+ const len = content.length;
48
+ let i = 0;
49
+ while (i < len) {
50
+ let lineEnd = i;
51
+ while (lineEnd < len && content[lineEnd] !== "\n") {
52
+ lineEnd++;
53
+ }
54
+ const line = content.slice(i, lineEnd).trim();
55
+ i = lineEnd + 1;
56
+ if (skipPatterns.some((pattern) => pattern.test(line))) {
57
+ continue;
58
+ }
59
+ for (const pattern of titlePatterns) {
60
+ const match = pattern.exec(line);
61
+ if (match) {
62
+ const text2 = match[1].replaceAll(nonTitleChars, "").trim();
63
+ if (text2.length > 0) {
64
+ return text2;
65
+ }
66
+ }
67
+ }
68
+ const maxLen = 32;
69
+ const text = line.replaceAll(nonTitleChars, "").trim();
70
+ if (text.length > 0) {
71
+ if (text.length > maxLen) {
72
+ const words = text.split(/\s+/);
73
+ let result = "";
74
+ for (const word of words) {
75
+ const next = result.length === 0 ? word : result + " " + word;
76
+ if (next.length > maxLen) {
77
+ break;
96
78
  }
79
+ result = next;
97
80
  }
81
+ return result + "\u2026";
98
82
  }
99
- })
100
- }),
101
- defineModule({
102
- id: `${meta.id}/module/object-form`,
103
- activatesOn: ClientEvents.SetupSchema,
104
- activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
105
- objectSchema: DocumentType,
106
- getIntent: (_, { space }) => createIntent(MarkdownAction.Create, {
107
- spaceId: space.id
108
- })
109
- }))
110
- }),
111
- defineModule({
112
- id: `${meta.id}/module/schema`,
113
- activatesOn: ClientEvents.SetupSchema,
114
- activate: () => contributes(ClientCapabilities.Schema, [
115
- DataType.Text
116
- ])
117
- }),
118
- defineModule({
119
- id: `${meta.id}/module/react-surface`,
120
- activatesOn: Events2.SetupReactSurface,
121
- // TODO(wittjosiah): Should occur before the editor is loaded when surfaces activation is more granular.
122
- activatesBefore: [
123
- MarkdownEvents.SetupExtensions
124
- ],
125
- activate: ReactSurface
126
- }),
127
- defineModule({
128
- id: `${meta.id}/module/intent-resolver`,
129
- activatesOn: Events2.SetupIntentResolver,
130
- activate: IntentResolver
131
- }),
132
- defineModule({
133
- id: `${meta.id}/module/app-graph-serializer`,
134
- activatesOn: Events2.AppGraphReady,
135
- activate: AppGraphSerializer
136
- }),
137
- defineModule({
138
- id: `${meta.id}/module/anchor-sort`,
139
- // TODO(wittjosiah): More relevant event?
140
- activatesOn: Events2.AppGraphReady,
141
- activate: AnchorSort
142
- }),
143
- defineModule({
144
- id: `${meta.id}/module/artifact-definition`,
145
- activatesOn: Events2.SetupArtifactDefinition,
146
- activate: ArtifactDefinition
147
- })
148
- ]);
83
+ return text;
84
+ }
85
+ }
86
+ return "";
87
+ };
88
+ var getContentSnippet = (content = "", maxLines = 3) => {
89
+ const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
90
+ return abstract.slice(0, maxLines).join("\n") ?? "";
91
+ };
92
+ var setFallbackName = debounce((doc, content = "") => {
93
+ const name = getFallbackName(content);
94
+ if (doc.fallbackName !== name) {
95
+ Obj.update(doc, (doc2) => {
96
+ doc2.fallbackName = name;
97
+ });
98
+ }
99
+ }, 200);
100
+ var serializer = {
101
+ serialize: async ({ object }) => {
102
+ const { content } = await object.content.load();
103
+ return JSON.stringify({
104
+ name: object.name,
105
+ fallbackName: object.fallbackName,
106
+ content
107
+ });
108
+ },
109
+ deserialize: async ({ content: serialized }) => {
110
+ const { name, fallbackName, content } = JSON.parse(serialized);
111
+ return Markdown.make({
112
+ name,
113
+ fallbackName,
114
+ content
115
+ });
116
+ }
117
+ };
118
+
119
+ // src/index.ts
120
+ var MarkdownPlugin = Plugin.lazy(meta, () => import("#plugin"));
149
121
  export {
150
- MARKDOWN_PLUGIN,
122
+ Markdown_exports as Markdown,
151
123
  MarkdownCapabilities,
152
124
  MarkdownEvents,
153
125
  MarkdownPlugin,
154
- getAbstract,
126
+ MarkdownStateSchema,
127
+ Settings_exports as Settings,
128
+ getContentSnippet,
155
129
  getFallbackName,
130
+ isEditorModel,
156
131
  isMarkdownProperties,
157
132
  meta,
158
133
  serializer,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/events.ts", "../../../src/MarkdownPlugin.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { MARKDOWN_PLUGIN } from './meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions = Events.createStateEvent(`${MARKDOWN_PLUGIN}/setup-extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { type Obj, Ref } from '@dxos/echo';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { createDocAccessor, getTextInRange } from '@dxos/react-client/echo';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\nimport { DataType } from '@dxos/schema';\n\nimport {\n AnchorSort,\n AppGraphSerializer,\n ArtifactDefinition,\n IntentResolver,\n MarkdownState,\n MarkdownSettings,\n ReactSurface,\n} from './capabilities';\nimport { MarkdownEvents } from './events';\nimport { meta } from './meta';\nimport translations from './translations';\nimport { DocumentType, MarkdownAction } from './types';\nimport { serializer } from './util';\n\nexport const MarkdownPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...editorTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: MarkdownSettings,\n }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: MarkdownState,\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: DocumentType.typename,\n metadata: {\n label: (object: DocumentType) => object.name || object.fallbackName,\n icon: 'ph--text-aa--regular',\n graphProps: {\n managesAutofocus: true,\n },\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (doc: DocumentType) => await Ref.Array.loadAll<Obj.Any>([doc.content]),\n serializer,\n // TODO(wittjosiah): Consider how to do generic comments without these.\n comments: 'anchored',\n selectionMode: 'multi-range',\n getAnchorLabel: (doc: DocumentType, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n },\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: DocumentType,\n getIntent: (_, { space }) => createIntent(MarkdownAction.Create, { spaceId: space.id }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [DataType.Text]),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the editor is loaded when surfaces activation is more granular.\n activatesBefore: [MarkdownEvents.SetupExtensions],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/anchor-sort`,\n // TODO(wittjosiah): More relevant event?\n activatesOn: Events.AppGraphReady,\n activate: AnchorSort,\n }),\n defineModule({\n id: `${meta.id}/module/artifact-definition`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: ArtifactDefinition,\n }),\n ]);\n"],
5
- "mappings": "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",
6
- "names": ["Events", "MarkdownEvents", "SetupExtensions", "Events", "createStateEvent", "MARKDOWN_PLUGIN", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "Ref", "ClientCapabilities", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "createDocAccessor", "getTextInRange", "translations", "editorTranslations", "DataType", "MarkdownPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "editorTranslations", "SetupSettings", "MarkdownSettings", "MarkdownState", "SetupMetadata", "Metadata", "DocumentType", "typename", "metadata", "label", "object", "name", "fallbackName", "icon", "graphProps", "managesAutofocus", "loadReferences", "doc", "Ref", "Array", "loadAll", "content", "serializer", "comments", "selectionMode", "getAnchorLabel", "anchor", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "_", "space", "createIntent", "MarkdownAction", "Create", "spaceId", "ClientCapabilities", "Schema", "DataType", "Text", "SetupReactSurface", "activatesBefore", "MarkdownEvents", "SetupExtensions", "ReactSurface", "SetupIntentResolver", "IntentResolver", "AppGraphReady", "AppGraphSerializer", "AnchorSort", "SetupArtifactDefinition", "ArtifactDefinition"]
3
+ "sources": ["../../../src/index.ts", "../../../src/meta.ts", "../../../src/util.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport { MarkdownCapabilities, MarkdownEvents } from './types';\n\nexport * from './meta';\nexport * from './types';\nexport * from './util';\n\nexport const MarkdownPlugin = Plugin.lazy(meta, () => import('#plugin'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.markdown',\n name: 'Markdown',\n description: trim`\n Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.\n Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.\n `,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\n\nimport { Markdown } from '#types';\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\n * @deprecated Use Schema.instanceOf(Markdown.Document, data)\n */\n// TODO(burdon): Normalize types (from FilesPlugin).\nexport const isEditorModel = (data: any): data is { id: string; text: string } =>\n data &&\n typeof data === 'object' &&\n 'id' in data &&\n typeof data.id === 'string' &&\n 'text' in data &&\n typeof data.text === 'string';\n\nexport type MarkdownProperties = Record<string, any>;\n\nexport const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>\n (Obj.isObject(data) as boolean)\n ? true\n : data && typeof data === 'object'\n ? 'title' in data && typeof data.title === 'string'\n : false;\n\nconst nonTitleChars = /[^\\w ]/g;\n\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,cAAc;;;ACCvB,SAASC,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaJ;;;;EAIbK,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,aAAa;IAAC;;AAChB;;;ACdA,SAASC,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;;;AFxHO,IAAMyC,iBAAiBC,OAAOC,KAAKC,MAAM,MAAM,OAAO,SAAA,CAAA;",
6
+ "names": ["Plugin", "trim", "meta", "id", "name", "description", "icon", "iconHue", "source", "screenshots", "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", "MarkdownPlugin", "Plugin", "lazy", "meta"]
7
7
  }