@dxos/plugin-markdown 0.8.4-main.9735255 → 0.8.4-main.abd8ff62ef

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 (379) hide show
  1. package/dist/lib/browser/blueprints/index.mjs +46 -4
  2. package/dist/lib/browser/blueprints/index.mjs.map +4 -4
  3. package/dist/lib/browser/chunk-DNSKDWUL.mjs +156 -0
  4. package/dist/lib/browser/chunk-DNSKDWUL.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-SW6IK2GJ.mjs +124 -0
  6. package/dist/lib/browser/chunk-SW6IK2GJ.mjs.map +7 -0
  7. package/dist/lib/browser/create-SRADQOTE.mjs +29 -0
  8. package/dist/lib/browser/create-SRADQOTE.mjs.map +7 -0
  9. package/dist/lib/browser/create-markdown-A2ERCEOZ.mjs +21 -0
  10. package/dist/lib/browser/create-markdown-A2ERCEOZ.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +109 -126
  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-ANTKMST5.mjs +20 -0
  15. package/dist/lib/browser/open-ANTKMST5.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-4RJ6MQ7I.mjs +48 -0
  19. package/dist/lib/browser/scroll-to-anchor-4RJ6MQ7I.mjs.map +7 -0
  20. package/dist/lib/browser/set-view-mode-2S7KKY7C.mjs +25 -0
  21. package/dist/lib/browser/set-view-mode-2S7KKY7C.mjs.map +7 -0
  22. package/dist/lib/browser/types/index.mjs +5 -7
  23. package/dist/lib/browser/update-markdown-CPM5KOQW.mjs +44 -0
  24. package/dist/lib/browser/update-markdown-CPM5KOQW.mjs.map +7 -0
  25. package/dist/lib/node-esm/blueprints/index.mjs +46 -4
  26. package/dist/lib/node-esm/blueprints/index.mjs.map +4 -4
  27. package/dist/lib/node-esm/chunk-MWYFGI2J.mjs +157 -0
  28. package/dist/lib/node-esm/chunk-MWYFGI2J.mjs.map +7 -0
  29. package/dist/lib/node-esm/chunk-ZE6QJ4S5.mjs +125 -0
  30. package/dist/lib/node-esm/chunk-ZE6QJ4S5.mjs.map +7 -0
  31. package/dist/lib/node-esm/create-6JGQPPQ6.mjs +30 -0
  32. package/dist/lib/node-esm/create-6JGQPPQ6.mjs.map +7 -0
  33. package/dist/lib/node-esm/create-markdown-KXSM2I2M.mjs +22 -0
  34. package/dist/lib/node-esm/create-markdown-KXSM2I2M.mjs.map +7 -0
  35. package/dist/lib/node-esm/index.mjs +109 -126
  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-GB6HNBHS.mjs +21 -0
  39. package/dist/lib/node-esm/open-GB6HNBHS.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-UABP74RR.mjs +49 -0
  43. package/dist/lib/node-esm/scroll-to-anchor-UABP74RR.mjs.map +7 -0
  44. package/dist/lib/node-esm/set-view-mode-JEDC5ZL7.mjs +26 -0
  45. package/dist/lib/node-esm/set-view-mode-JEDC5ZL7.mjs.map +7 -0
  46. package/dist/lib/node-esm/types/index.mjs +5 -7
  47. package/dist/lib/node-esm/update-markdown-AXLYHK6S.mjs +45 -0
  48. package/dist/lib/node-esm/update-markdown-AXLYHK6S.mjs.map +7 -0
  49. package/dist/types/src/MarkdownPlugin.d.ts +1 -0
  50. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  51. package/dist/types/src/{cli/plugin.d.ts → MarkdownPlugin.node.d.ts} +2 -1
  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 +1 -1
  56. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  57. package/dist/types/src/blueprints/markdown-blueprint.d.ts +3 -20
  58. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
  59. package/dist/types/src/capabilities/anchor-sort.d.ts +6 -0
  60. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
  61. package/dist/types/src/capabilities/app-graph-serializer.d.ts +5 -0
  62. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -0
  63. package/dist/types/src/capabilities/artifact-definition.d.ts +5 -0
  64. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  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/index.d.ts +9 -7
  68. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/node.d.ts +4 -0
  70. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  72. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  74. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/settings.d.ts +6 -0
  76. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/state.d.ts +6 -0
  78. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  79. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +2 -2
  80. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
  81. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +33 -22
  82. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  83. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +3 -3
  84. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  85. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +6 -3
  86. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  87. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +7 -6
  88. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  89. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +4 -6
  90. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  91. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +94 -0
  92. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -0
  93. package/dist/types/src/components/MarkdownSettings/index.d.ts +1 -1
  94. package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -1
  95. package/dist/types/src/components/index.d.ts +3 -8
  96. package/dist/types/src/components/index.d.ts.map +1 -1
  97. package/dist/types/src/{components → containers}/MarkdownCard/MarkdownCard.d.ts +1 -1
  98. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  99. package/dist/types/src/{components → containers}/MarkdownCard/MarkdownCard.stories.d.ts +1 -1
  100. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  101. package/dist/types/src/containers/MarkdownCard/MarkdownEditableCard.d.ts +15 -0
  102. package/dist/types/src/containers/MarkdownCard/MarkdownEditableCard.d.ts.map +1 -0
  103. package/dist/types/src/containers/MarkdownCard/index.d.ts +3 -0
  104. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
  105. package/dist/types/src/containers/MarkdownCard/snippet.d.ts +17 -0
  106. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
  107. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts +36 -0
  108. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -0
  109. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +97 -0
  110. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -0
  111. package/dist/types/src/containers/MarkdownContainer/index.d.ts +3 -0
  112. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -0
  113. package/dist/types/src/containers/index.d.ts +6 -0
  114. package/dist/types/src/containers/index.d.ts.map +1 -0
  115. package/dist/types/src/hooks/index.d.ts +0 -1
  116. package/dist/types/src/hooks/index.d.ts.map +1 -1
  117. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
  118. package/dist/types/src/hooks/useExtensions.d.ts +10 -6
  119. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  120. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  121. package/dist/types/src/index.d.ts +2 -1
  122. package/dist/types/src/index.d.ts.map +1 -1
  123. package/dist/types/src/operations/create-markdown.d.ts +5 -0
  124. package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
  125. package/dist/types/src/operations/create.d.ts +5 -0
  126. package/dist/types/src/operations/create.d.ts.map +1 -0
  127. package/dist/types/src/operations/create.test.d.ts.map +1 -0
  128. package/dist/types/src/operations/definitions.d.ts +64 -0
  129. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  130. package/dist/types/src/operations/index.d.ts +4 -0
  131. package/dist/types/src/operations/index.d.ts.map +1 -0
  132. package/dist/types/src/operations/open.d.ts +5 -0
  133. package/dist/types/src/operations/open.d.ts.map +1 -0
  134. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  135. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  136. package/dist/types/src/operations/set-view-mode.d.ts +5 -0
  137. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
  138. package/dist/types/src/operations/update-markdown.d.ts +5 -0
  139. package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
  140. package/dist/types/src/operations/update.test.d.ts.map +1 -0
  141. package/dist/types/src/testing.d.ts.map +1 -1
  142. package/dist/types/src/translations.d.ts +74 -37
  143. package/dist/types/src/translations.d.ts.map +1 -1
  144. package/dist/types/src/types/Markdown.d.ts +15 -16
  145. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  146. package/dist/types/src/types/Settings.d.ts +17 -0
  147. package/dist/types/src/types/Settings.d.ts.map +1 -0
  148. package/dist/types/src/types/capabilities.d.ts +15 -3
  149. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  150. package/dist/types/src/types/events.d.ts.map +1 -1
  151. package/dist/types/src/types/index.d.ts +2 -3
  152. package/dist/types/src/types/index.d.ts.map +1 -1
  153. package/dist/types/src/types/types.d.ts +1 -0
  154. package/dist/types/src/types/types.d.ts.map +1 -1
  155. package/dist/types/src/util.d.ts +2 -2
  156. package/dist/types/src/util.d.ts.map +1 -1
  157. package/dist/types/tsconfig.tsbuildinfo +1 -1
  158. package/package.json +94 -75
  159. package/src/MarkdownPlugin.node.ts +41 -0
  160. package/src/MarkdownPlugin.test.ts +26 -0
  161. package/src/MarkdownPlugin.tsx +52 -45
  162. package/src/blueprints/index.ts +1 -1
  163. package/src/blueprints/markdown-blueprint.ts +14 -9
  164. package/src/capabilities/{anchor-sort/anchor-sort.ts → anchor-sort.ts} +4 -3
  165. package/src/capabilities/{app-graph-serializer/app-graph-serializer.ts → app-graph-serializer.ts} +14 -9
  166. package/src/capabilities/{artifact-definition/artifact-definition.ts → artifact-definition.ts} +6 -6
  167. package/src/capabilities/blueprint-definition.ts +19 -0
  168. package/src/capabilities/index.ts +14 -7
  169. package/src/capabilities/node.ts +11 -0
  170. package/src/capabilities/operation-handler.ts +16 -0
  171. package/src/capabilities/react-surface.tsx +127 -0
  172. package/src/capabilities/{settings/settings.ts → settings.ts} +5 -4
  173. package/src/capabilities/state.ts +47 -0
  174. package/src/components/MarkdownEditor/FileUpload.tsx +2 -2
  175. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +39 -34
  176. package/src/components/MarkdownEditor/MarkdownEditor.tsx +139 -102
  177. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +26 -18
  178. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +37 -56
  179. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +40 -0
  180. package/src/components/MarkdownSettings/MarkdownSettings.tsx +22 -109
  181. package/src/components/MarkdownSettings/index.ts +1 -1
  182. package/src/components/index.ts +4 -12
  183. package/src/{components → containers}/MarkdownCard/MarkdownCard.stories.tsx +22 -12
  184. package/src/containers/MarkdownCard/MarkdownCard.tsx +68 -0
  185. package/src/containers/MarkdownCard/MarkdownEditableCard.tsx +42 -0
  186. package/src/containers/MarkdownCard/index.ts +6 -0
  187. package/src/containers/MarkdownCard/snippet.ts +54 -0
  188. package/src/{components → containers/MarkdownContainer}/MarkdownContainer.stories.tsx +36 -24
  189. package/src/containers/MarkdownContainer/MarkdownContainer.tsx +146 -0
  190. package/src/containers/MarkdownContainer/index.ts +6 -0
  191. package/src/containers/index.ts +13 -0
  192. package/src/hooks/index.ts +0 -1
  193. package/src/hooks/useEditorMenuOptions.ts +3 -3
  194. package/src/hooks/useExtensions.tsx +86 -98
  195. package/src/hooks/useLinkQuery.ts +31 -6
  196. package/src/index.ts +5 -1
  197. package/src/meta.ts +1 -1
  198. package/src/operations/create-markdown.ts +20 -0
  199. package/src/operations/create.conversations.json +1 -0
  200. package/src/operations/create.test.ts +97 -0
  201. package/src/operations/create.ts +27 -0
  202. package/src/operations/definitions.ts +120 -0
  203. package/src/operations/index.ts +16 -0
  204. package/src/operations/open.ts +25 -0
  205. package/src/operations/scroll-to-anchor.ts +39 -0
  206. package/src/operations/set-view-mode.ts +24 -0
  207. package/src/operations/update-markdown.ts +51 -0
  208. package/src/operations/update.conversations.json +1 -0
  209. package/src/operations/update.test.ts +214 -0
  210. package/src/testing.ts +2 -2
  211. package/src/translations.ts +26 -36
  212. package/src/types/Markdown.ts +18 -25
  213. package/src/types/Settings.ts +65 -0
  214. package/src/types/capabilities.ts +19 -6
  215. package/src/types/events.ts +5 -4
  216. package/src/types/index.ts +3 -4
  217. package/src/types/types.ts +4 -1
  218. package/src/util.tsx +5 -5
  219. package/dist/lib/browser/MarkdownCard-WHK3ORP7.mjs +0 -12
  220. package/dist/lib/browser/MarkdownCard-WHK3ORP7.mjs.map +0 -7
  221. package/dist/lib/browser/MarkdownContainer-V7EAADMF.mjs +0 -12
  222. package/dist/lib/browser/MarkdownContainer-V7EAADMF.mjs.map +0 -7
  223. package/dist/lib/browser/anchor-sort-WQ3TL7ZI.mjs +0 -32
  224. package/dist/lib/browser/anchor-sort-WQ3TL7ZI.mjs.map +0 -7
  225. package/dist/lib/browser/app-graph-serializer-ULZUJKOD.mjs +0 -58
  226. package/dist/lib/browser/app-graph-serializer-ULZUJKOD.mjs.map +0 -7
  227. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs +0 -19
  228. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs.map +0 -7
  229. package/dist/lib/browser/chunk-BX73DASG.mjs +0 -702
  230. package/dist/lib/browser/chunk-BX73DASG.mjs.map +0 -7
  231. package/dist/lib/browser/chunk-CUGDX7KA.mjs +0 -8
  232. package/dist/lib/browser/chunk-CUGDX7KA.mjs.map +0 -7
  233. package/dist/lib/browser/chunk-FWQQW6KU.mjs +0 -144
  234. package/dist/lib/browser/chunk-FWQQW6KU.mjs.map +0 -7
  235. package/dist/lib/browser/chunk-JOXYQLKH.mjs +0 -55
  236. package/dist/lib/browser/chunk-JOXYQLKH.mjs.map +0 -7
  237. package/dist/lib/browser/chunk-KDKXFKDN.mjs +0 -104
  238. package/dist/lib/browser/chunk-KDKXFKDN.mjs.map +0 -7
  239. package/dist/lib/browser/chunk-LMO5UVKL.mjs +0 -167
  240. package/dist/lib/browser/chunk-LMO5UVKL.mjs.map +0 -7
  241. package/dist/lib/browser/chunk-S45ULIOG.mjs +0 -101
  242. package/dist/lib/browser/chunk-S45ULIOG.mjs.map +0 -7
  243. package/dist/lib/browser/chunk-WIPSLZ6L.mjs +0 -60
  244. package/dist/lib/browser/chunk-WIPSLZ6L.mjs.map +0 -7
  245. package/dist/lib/browser/cli/index.mjs +0 -32
  246. package/dist/lib/browser/cli/index.mjs.map +0 -7
  247. package/dist/lib/browser/operation-resolver-EGCWOQKJ.mjs +0 -53
  248. package/dist/lib/browser/operation-resolver-EGCWOQKJ.mjs.map +0 -7
  249. package/dist/lib/browser/react-surface-SRPLD3ED.mjs +0 -213
  250. package/dist/lib/browser/react-surface-SRPLD3ED.mjs.map +0 -7
  251. package/dist/lib/browser/settings-JY5JE7MI.mjs +0 -35
  252. package/dist/lib/browser/settings-JY5JE7MI.mjs.map +0 -7
  253. package/dist/lib/browser/state-QE7VSJWJ.mjs +0 -29
  254. package/dist/lib/browser/state-QE7VSJWJ.mjs.map +0 -7
  255. package/dist/lib/node-esm/MarkdownCard-WJPLQTFS.mjs +0 -13
  256. package/dist/lib/node-esm/MarkdownCard-WJPLQTFS.mjs.map +0 -7
  257. package/dist/lib/node-esm/MarkdownContainer-LUSMORP2.mjs +0 -13
  258. package/dist/lib/node-esm/MarkdownContainer-LUSMORP2.mjs.map +0 -7
  259. package/dist/lib/node-esm/anchor-sort-G7D5TAI6.mjs +0 -33
  260. package/dist/lib/node-esm/anchor-sort-G7D5TAI6.mjs.map +0 -7
  261. package/dist/lib/node-esm/app-graph-serializer-W5YMQP7P.mjs +0 -59
  262. package/dist/lib/node-esm/app-graph-serializer-W5YMQP7P.mjs.map +0 -7
  263. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs +0 -20
  264. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs.map +0 -7
  265. package/dist/lib/node-esm/chunk-3JYPCC7M.mjs +0 -105
  266. package/dist/lib/node-esm/chunk-3JYPCC7M.mjs.map +0 -7
  267. package/dist/lib/node-esm/chunk-44VJC3QF.mjs +0 -56
  268. package/dist/lib/node-esm/chunk-44VJC3QF.mjs.map +0 -7
  269. package/dist/lib/node-esm/chunk-D4BCFPKK.mjs +0 -703
  270. package/dist/lib/node-esm/chunk-D4BCFPKK.mjs.map +0 -7
  271. package/dist/lib/node-esm/chunk-EYAFC4N7.mjs +0 -145
  272. package/dist/lib/node-esm/chunk-EYAFC4N7.mjs.map +0 -7
  273. package/dist/lib/node-esm/chunk-PRV35A7Z.mjs +0 -168
  274. package/dist/lib/node-esm/chunk-PRV35A7Z.mjs.map +0 -7
  275. package/dist/lib/node-esm/chunk-RQP7G7XW.mjs +0 -61
  276. package/dist/lib/node-esm/chunk-RQP7G7XW.mjs.map +0 -7
  277. package/dist/lib/node-esm/chunk-SDTYEGGL.mjs +0 -102
  278. package/dist/lib/node-esm/chunk-SDTYEGGL.mjs.map +0 -7
  279. package/dist/lib/node-esm/chunk-W3IIKDV5.mjs +0 -10
  280. package/dist/lib/node-esm/chunk-W3IIKDV5.mjs.map +0 -7
  281. package/dist/lib/node-esm/cli/index.mjs +0 -33
  282. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  283. package/dist/lib/node-esm/operation-resolver-2HIS2AQZ.mjs +0 -54
  284. package/dist/lib/node-esm/operation-resolver-2HIS2AQZ.mjs.map +0 -7
  285. package/dist/lib/node-esm/react-surface-RONSOJIQ.mjs +0 -214
  286. package/dist/lib/node-esm/react-surface-RONSOJIQ.mjs.map +0 -7
  287. package/dist/lib/node-esm/settings-4UGMPIRY.mjs +0 -36
  288. package/dist/lib/node-esm/settings-4UGMPIRY.mjs.map +0 -7
  289. package/dist/lib/node-esm/state-LXE5XIN4.mjs +0 -30
  290. package/dist/lib/node-esm/state-LXE5XIN4.mjs.map +0 -7
  291. package/dist/types/src/blueprints/functions/create.d.ts +0 -8
  292. package/dist/types/src/blueprints/functions/create.d.ts.map +0 -1
  293. package/dist/types/src/blueprints/functions/create.test.d.ts.map +0 -1
  294. package/dist/types/src/blueprints/functions/index.d.ts +0 -4
  295. package/dist/types/src/blueprints/functions/index.d.ts.map +0 -1
  296. package/dist/types/src/blueprints/functions/open.d.ts +0 -7
  297. package/dist/types/src/blueprints/functions/open.d.ts.map +0 -1
  298. package/dist/types/src/blueprints/functions/update.d.ts +0 -6
  299. package/dist/types/src/blueprints/functions/update.d.ts.map +0 -1
  300. package/dist/types/src/blueprints/functions/update.test.d.ts.map +0 -1
  301. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +0 -5
  302. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +0 -1
  303. package/dist/types/src/capabilities/anchor-sort/index.d.ts +0 -3
  304. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +0 -1
  305. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +0 -5
  306. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +0 -1
  307. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +0 -3
  308. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +0 -1
  309. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +0 -5
  310. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +0 -1
  311. package/dist/types/src/capabilities/artifact-definition/index.d.ts +0 -3
  312. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +0 -1
  313. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -10
  314. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
  315. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -3
  316. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
  317. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  318. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  319. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  320. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  321. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  322. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  323. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  324. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  325. package/dist/types/src/capabilities/settings/index.d.ts +0 -3
  326. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  327. package/dist/types/src/capabilities/settings/settings.d.ts +0 -6
  328. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  329. package/dist/types/src/capabilities/state/index.d.ts +0 -3
  330. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  331. package/dist/types/src/capabilities/state/state.d.ts +0 -5
  332. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  333. package/dist/types/src/cli/index.d.ts +0 -2
  334. package/dist/types/src/cli/index.d.ts.map +0 -1
  335. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  336. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +0 -1
  337. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +0 -1
  338. package/dist/types/src/components/MarkdownCard/index.d.ts +0 -4
  339. package/dist/types/src/components/MarkdownCard/index.d.ts.map +0 -1
  340. package/dist/types/src/components/MarkdownContainer.d.ts +0 -28
  341. package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
  342. package/dist/types/src/components/MarkdownContainer.stories.d.ts +0 -59
  343. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
  344. package/dist/types/src/components/Suggestions.stories.d.ts +0 -11
  345. package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
  346. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
  347. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
  348. package/dist/types/src/types/MarkdownAction.d.ts +0 -66
  349. package/dist/types/src/types/MarkdownAction.d.ts.map +0 -1
  350. package/src/blueprints/functions/create.conversations.json +0 -1
  351. package/src/blueprints/functions/create.test.ts +0 -125
  352. package/src/blueprints/functions/create.ts +0 -34
  353. package/src/blueprints/functions/index.ts +0 -7
  354. package/src/blueprints/functions/open.ts +0 -33
  355. package/src/blueprints/functions/update.conversations.json +0 -1
  356. package/src/blueprints/functions/update.test.ts +0 -149
  357. package/src/blueprints/functions/update.ts +0 -38
  358. package/src/capabilities/anchor-sort/index.ts +0 -7
  359. package/src/capabilities/app-graph-serializer/index.ts +0 -7
  360. package/src/capabilities/artifact-definition/index.ts +0 -7
  361. package/src/capabilities/blueprint-definition/blueprint-definition.ts +0 -25
  362. package/src/capabilities/blueprint-definition/index.ts +0 -7
  363. package/src/capabilities/operation-resolver/index.ts +0 -7
  364. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -45
  365. package/src/capabilities/react-surface/index.ts +0 -7
  366. package/src/capabilities/react-surface/react-surface.tsx +0 -100
  367. package/src/capabilities/settings/index.ts +0 -7
  368. package/src/capabilities/state/index.ts +0 -7
  369. package/src/capabilities/state/state.ts +0 -31
  370. package/src/cli/index.ts +0 -5
  371. package/src/cli/plugin.ts +0 -29
  372. package/src/components/MarkdownCard/MarkdownCard.tsx +0 -64
  373. package/src/components/MarkdownCard/index.ts +0 -9
  374. package/src/components/MarkdownContainer.tsx +0 -111
  375. package/src/components/Suggestions.stories.tsx +0 -215
  376. package/src/hooks/useSelectCurrentThread.tsx +0 -61
  377. package/src/types/MarkdownAction.ts +0 -59
  378. /package/dist/types/src/{blueprints/functions → operations}/create.test.d.ts +0 -0
  379. /package/dist/types/src/{blueprints/functions → operations}/update.test.d.ts +0 -0
@@ -0,0 +1,30 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ Create
4
+ } from "./chunk-MWYFGI2J.mjs";
5
+ import {
6
+ Markdown_exports
7
+ } from "./chunk-ZE6QJ4S5.mjs";
8
+
9
+ // src/operations/create.ts
10
+ import * as Effect from "effect/Effect";
11
+ import { Operation } from "@dxos/compute";
12
+ import { Obj } from "@dxos/echo";
13
+ import { CollectionModel } from "@dxos/schema";
14
+ var handler = Create.pipe(Operation.withHandler(Effect.fn(function* ({ name, content }) {
15
+ const object = Markdown_exports.make({
16
+ name,
17
+ content
18
+ });
19
+ yield* CollectionModel.add({
20
+ object
21
+ });
22
+ return {
23
+ id: Obj.getDXN(object).toString()
24
+ };
25
+ })));
26
+ var create_default = handler;
27
+ export {
28
+ create_default as default
29
+ };
30
+ //# sourceMappingURL=create-6JGQPPQ6.mjs.map
@@ -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-MWYFGI2J.mjs";
5
+ import {
6
+ Markdown_exports
7
+ } from "./chunk-ZE6QJ4S5.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-KXSM2I2M.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,147 +1,130 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- getContentSnippet,
4
- getFallbackName,
5
- isEditorModel,
6
- isMarkdownProperties,
7
- serializer,
8
- setFallbackName
9
- } from "./chunk-SDTYEGGL.mjs";
10
- import {
11
- OperationResolver
12
- } from "./chunk-W3IIKDV5.mjs";
13
- import {
14
- translations
15
- } from "./chunk-44VJC3QF.mjs";
16
- import {
17
- markdown_blueprint_exports
18
- } from "./chunk-EYAFC4N7.mjs";
19
- import {
20
- MarkdownAction_exports,
21
3
  MarkdownCapabilities,
22
4
  MarkdownEvents,
23
- MarkdownOperation,
24
5
  MarkdownStateSchema,
25
6
  Markdown_exports,
26
- meta
27
- } from "./chunk-PRV35A7Z.mjs";
28
-
29
- // src/MarkdownPlugin.tsx
30
- import * as Effect from "effect/Effect";
31
- import { Capability as Capability7, Common, Plugin } from "@dxos/app-framework";
32
- import { Ref } from "@dxos/echo";
33
- import { createDocAccessor, getTextInRange } from "@dxos/echo-db";
34
- import { Operation } from "@dxos/operation";
35
- import { SpaceCapabilities, SpaceEvents } from "@dxos/plugin-space";
36
- import { translations as editorTranslations } from "@dxos/react-ui-editor";
37
- import { Text } from "@dxos/schema";
38
-
39
- // src/capabilities/anchor-sort/index.ts
40
- import { Capability } from "@dxos/app-framework";
41
- var AnchorSort = Capability.lazy("AnchorSort", () => import("./anchor-sort-G7D5TAI6.mjs"));
42
-
43
- // src/capabilities/app-graph-serializer/index.ts
44
- import { Capability as Capability2 } from "@dxos/app-framework";
45
- var AppGraphSerializer = Capability2.lazy("AppGraphSerializer", () => import("./app-graph-serializer-W5YMQP7P.mjs"));
46
-
47
- // src/capabilities/blueprint-definition/index.ts
48
- import { Capability as Capability3 } from "@dxos/app-framework";
49
- var BlueprintDefinition = Capability3.lazy("BlueprintDefinition", () => import("./blueprint-definition-HYFA7BKQ.mjs"));
50
-
51
- // src/capabilities/react-surface/index.ts
52
- import { Capability as Capability4 } from "@dxos/app-framework";
53
- var ReactSurface = Capability4.lazy("ReactSurface", () => import("./react-surface-RONSOJIQ.mjs"));
7
+ Settings_exports
8
+ } from "./chunk-ZE6QJ4S5.mjs";
54
9
 
55
- // src/capabilities/settings/index.ts
56
- import { Capability as Capability5 } from "@dxos/app-framework";
57
- var MarkdownSettings = Capability5.lazy("MarkdownSettings", () => import("./settings-4UGMPIRY.mjs"));
10
+ // src/index.ts
11
+ import { Plugin } from "@dxos/app-framework";
58
12
 
59
- // src/capabilities/state/index.ts
60
- import { Capability as Capability6 } from "@dxos/app-framework";
61
- var MarkdownState = Capability6.lazy("MarkdownState", () => import("./state-LXE5XIN4.mjs"));
62
-
63
- // src/MarkdownPlugin.tsx
64
- var MarkdownPlugin = Plugin.define(meta).pipe(Common.Plugin.addTranslationsModule({
65
- translations: [
66
- ...translations,
67
- ...editorTranslations
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"
68
27
  ]
69
- }), Plugin.addModule({
70
- activatesOn: Common.ActivationEvent.SetupSettings,
71
- activate: MarkdownSettings
72
- }), Plugin.addModule({
73
- id: "state",
74
- // TODO(wittjosiah): Does not integrate with settings store.
75
- // Should this be a different event?
76
- // Should settings store be renamed to be more generic?
77
- activatesOn: Common.ActivationEvent.SetupSettings,
78
- activate: MarkdownState
79
- }), Common.Plugin.addMetadataModule({
80
- metadata: {
81
- id: Markdown_exports.Document.typename,
82
- metadata: {
83
- label: (object) => object.name || object.fallbackName,
84
- icon: "ph--text-aa--regular",
85
- iconHue: "indigo",
86
- blueprints: [
87
- markdown_blueprint_exports.Key
88
- ],
89
- graphProps: {
90
- managesAutofocus: true
91
- },
92
- // TODO(wittjosiah): Move out of metadata.
93
- loadReferences: async (doc) => await Ref.Array.loadAll([
94
- doc.content
95
- ]),
96
- serializer,
97
- // TODO(wittjosiah): Consider how to do generic comments without these.
98
- comments: "anchored",
99
- selectionMode: "multi-range",
100
- getAnchorLabel: (doc, anchor) => {
101
- if (doc.content) {
102
- const [start, end] = anchor.split(":");
103
- return getTextInRange(createDocAccessor(doc.content.target, [
104
- "content"
105
- ]), start, end);
28
+ };
29
+
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;
78
+ }
79
+ result = next;
106
80
  }
107
- },
108
- createObject: (props) => Effect.sync(() => Markdown_exports.make(props))
81
+ return result + "\u2026";
82
+ }
83
+ return text;
109
84
  }
110
85
  }
111
- }), Common.Plugin.addSchemaModule({
112
- schema: [
113
- Markdown_exports.Document,
114
- Text.Text
115
- ]
116
- }), Plugin.addModule({
117
- id: "on-space-created",
118
- activatesOn: SpaceEvents.SpaceCreated,
119
- activate: () => Effect.succeed(Capability7.contributes(SpaceCapabilities.OnCreateSpace, (params) => Operation.invoke(MarkdownOperation.OnCreateSpace, params)))
120
- }), Common.Plugin.addSurfaceModule({
121
- activate: ReactSurface,
122
- activatesBefore: [
123
- MarkdownEvents.SetupExtensions
124
- ]
125
- }), Common.Plugin.addOperationResolverModule({
126
- activate: OperationResolver
127
- }), Plugin.addModule({
128
- activatesOn: Common.ActivationEvent.AppGraphReady,
129
- activate: AppGraphSerializer
130
- }), Plugin.addModule({
131
- // TODO(wittjosiah): More relevant event?
132
- activatesOn: Common.ActivationEvent.AppGraphReady,
133
- activate: AnchorSort
134
- }), Common.Plugin.addBlueprintDefinitionModule({
135
- activate: BlueprintDefinition
136
- }), Plugin.make);
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"));
137
121
  export {
138
122
  Markdown_exports as Markdown,
139
- MarkdownAction_exports as MarkdownAction,
140
123
  MarkdownCapabilities,
141
124
  MarkdownEvents,
142
- MarkdownOperation,
143
125
  MarkdownPlugin,
144
126
  MarkdownStateSchema,
127
+ Settings_exports as Settings,
145
128
  getContentSnippet,
146
129
  getFallbackName,
147
130
  isEditorModel,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/MarkdownPlugin.tsx", "../../../src/capabilities/anchor-sort/index.ts", "../../../src/capabilities/app-graph-serializer/index.ts", "../../../src/capabilities/blueprint-definition/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/capabilities/settings/index.ts", "../../../src/capabilities/state/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Common, Plugin } from '@dxos/app-framework';\nimport { type Obj, Ref } from '@dxos/echo';\nimport { createDocAccessor, getTextInRange } from '@dxos/echo-db';\nimport { Operation } from '@dxos/operation';\nimport { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\nimport { Text } from '@dxos/schema';\n\nimport { MarkdownBlueprint } from './blueprints';\nimport {\n AnchorSort,\n AppGraphSerializer,\n BlueprintDefinition,\n MarkdownSettings,\n MarkdownState,\n OperationResolver,\n ReactSurface,\n} from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { Markdown, MarkdownEvents, MarkdownOperation } from './types';\nimport { serializer } from './util';\n\nexport const MarkdownPlugin = Plugin.define(meta).pipe(\n Common.Plugin.addTranslationsModule({ translations: [...translations, ...editorTranslations] }),\n Plugin.addModule({\n activatesOn: Common.ActivationEvent.SetupSettings,\n activate: MarkdownSettings,\n }),\n Plugin.addModule({\n id: '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: Common.ActivationEvent.SetupSettings,\n activate: MarkdownState,\n }),\n Common.Plugin.addMetadataModule({\n metadata: {\n id: Markdown.Document.typename,\n metadata: {\n label: (object: Markdown.Document) => object.name || object.fallbackName,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n blueprints: [MarkdownBlueprint.Key],\n graphProps: {\n managesAutofocus: true,\n },\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (doc: Markdown.Document) => await Ref.Array.loadAll<Obj.Unknown>([doc.content]),\n serializer,\n // TODO(wittjosiah): Consider how to do generic comments without these.\n comments: 'anchored',\n selectionMode: 'multi-range',\n getAnchorLabel: (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n },\n createObject: ((props) => Effect.sync(() => Markdown.make(props))) satisfies CreateObject,\n },\n },\n }),\n Common.Plugin.addSchemaModule({ schema: [Markdown.Document, Text.Text] }),\n Plugin.addModule({\n id: 'on-space-created',\n activatesOn: SpaceEvents.SpaceCreated,\n activate: () =>\n Effect.succeed(\n Capability.contributes(SpaceCapabilities.OnCreateSpace, (params) =>\n Operation.invoke(MarkdownOperation.OnCreateSpace, params),\n ),\n ),\n }),\n Common.Plugin.addSurfaceModule({\n activate: ReactSurface,\n activatesBefore: [MarkdownEvents.SetupExtensions],\n }),\n Common.Plugin.addOperationResolverModule({ activate: OperationResolver }),\n Plugin.addModule({\n activatesOn: Common.ActivationEvent.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n Plugin.addModule({\n // TODO(wittjosiah): More relevant event?\n activatesOn: Common.ActivationEvent.AppGraphReady,\n activate: AnchorSort,\n }),\n Common.Plugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AnchorSort = Capability.lazy('AnchorSort', () => import('./anchor-sort'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphSerializer = Capability.lazy('AppGraphSerializer', () => import('./app-graph-serializer'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const MarkdownSettings = Capability.lazy('MarkdownSettings', () => import('./settings'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const MarkdownState = Capability.lazy('MarkdownState', () => import('./state'));\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Capability", "Common", "Plugin", "Ref", "createDocAccessor", "getTextInRange", "Operation", "SpaceCapabilities", "SpaceEvents", "translations", "editorTranslations", "Text", "Capability", "AnchorSort", "Capability", "lazy", "Capability", "AppGraphSerializer", "Capability", "lazy", "Capability", "BlueprintDefinition", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Capability", "MarkdownSettings", "Capability", "lazy", "Capability", "MarkdownState", "Capability", "lazy", "MarkdownPlugin", "Plugin", "define", "meta", "pipe", "Common", "addTranslationsModule", "translations", "editorTranslations", "addModule", "activatesOn", "ActivationEvent", "SetupSettings", "activate", "MarkdownSettings", "id", "MarkdownState", "addMetadataModule", "metadata", "Markdown", "Document", "typename", "label", "object", "name", "fallbackName", "icon", "iconHue", "blueprints", "MarkdownBlueprint", "Key", "graphProps", "managesAutofocus", "loadReferences", "doc", "Ref", "Array", "loadAll", "content", "serializer", "comments", "selectionMode", "getAnchorLabel", "anchor", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "createObject", "props", "sync", "make", "addSchemaModule", "schema", "Text", "SpaceEvents", "SpaceCreated", "succeed", "Capability", "contributes", "SpaceCapabilities", "OnCreateSpace", "params", "Operation", "invoke", "MarkdownOperation", "addSurfaceModule", "ReactSurface", "activatesBefore", "MarkdownEvents", "SetupExtensions", "addOperationResolverModule", "OperationResolver", "AppGraphReady", "AppGraphSerializer", "AnchorSort", "addBlueprintDefinitionModule", "BlueprintDefinition"]
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
  }