@dxos/plugin-markdown 0.8.4-main.422d1c7879 → 0.8.4-main.4668b7de9b

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 (316) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs +34 -0
  4. package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs.map +7 -0
  5. package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs +126 -0
  6. package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs.map +7 -0
  7. package/dist/lib/neutral/MarkdownCard-36P4AHYL.mjs +107 -0
  8. package/dist/lib/neutral/MarkdownCard-36P4AHYL.mjs.map +7 -0
  9. package/dist/lib/neutral/MarkdownPlugin.mjs +58 -0
  10. package/dist/lib/neutral/MarkdownPlugin.mjs.map +7 -0
  11. package/dist/lib/neutral/MarkdownPlugin.node.mjs +25 -0
  12. package/dist/lib/neutral/MarkdownPlugin.node.mjs.map +7 -0
  13. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs +23 -0
  14. package/dist/lib/neutral/MarkdownPlugin.workerd.mjs.map +7 -0
  15. package/dist/lib/{browser/MarkdownSettings-62YSRY7L.mjs → neutral/MarkdownSettings-YCTZJL5V.mjs} +4 -4
  16. package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
  17. package/dist/lib/neutral/anchor-sort-37GOHBLW.mjs +32 -0
  18. package/dist/lib/neutral/anchor-sort-37GOHBLW.mjs.map +7 -0
  19. package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs +56 -0
  20. package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs.map +7 -0
  21. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs +15 -0
  22. package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs.map +7 -0
  23. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  24. package/dist/lib/neutral/capabilities/index.mjs +25 -0
  25. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  26. package/dist/lib/neutral/capabilities/node.mjs +11 -0
  27. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  28. package/dist/lib/neutral/chunk-36QFEVOZ.mjs +30 -0
  29. package/dist/lib/neutral/chunk-36QFEVOZ.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-A45UVZEH.mjs +285 -0
  31. package/dist/lib/neutral/chunk-A45UVZEH.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-E5NVTEKQ.mjs +8 -0
  33. package/dist/lib/neutral/chunk-E5NVTEKQ.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-KDN4GKG2.mjs +98 -0
  35. package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
  36. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-LXNSKCPD.mjs} +10 -17
  37. package/dist/lib/neutral/chunk-LXNSKCPD.mjs.map +7 -0
  38. package/dist/lib/neutral/comment-config-ZEA66BUR.mjs +31 -0
  39. package/dist/lib/neutral/comment-config-ZEA66BUR.mjs.map +7 -0
  40. package/dist/lib/{browser → neutral/components}/index.mjs +19 -280
  41. package/dist/lib/neutral/components/index.mjs.map +7 -0
  42. package/dist/lib/neutral/containers/index.mjs +13 -0
  43. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  44. package/dist/lib/{browser/create-YL5ELZWP.mjs → neutral/create-HONLDBVT.mjs} +7 -9
  45. package/dist/lib/neutral/create-HONLDBVT.mjs.map +7 -0
  46. package/dist/lib/{browser/create-markdown-LU5IDKMH.mjs → neutral/create-markdown-UCPD2Z3V.mjs} +5 -7
  47. package/dist/lib/neutral/create-markdown-UCPD2Z3V.mjs.map +7 -0
  48. package/dist/lib/neutral/create-object-VU3KX663.mjs +28 -0
  49. package/dist/lib/neutral/create-object-VU3KX663.mjs.map +7 -0
  50. package/dist/lib/neutral/hooks/index.mjs +316 -0
  51. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  52. package/dist/lib/neutral/index.mjs +42 -0
  53. package/dist/lib/neutral/meta.json +1 -0
  54. package/dist/lib/neutral/meta.mjs +8 -0
  55. package/dist/lib/{browser/open-AFSOZZ6G.mjs → neutral/open-VVDMNJ7J.mjs} +5 -6
  56. package/dist/lib/neutral/open-VVDMNJ7J.mjs.map +7 -0
  57. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs +13 -0
  58. package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs.map +7 -0
  59. package/dist/lib/neutral/operations/index.mjs +8 -0
  60. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  61. package/dist/lib/neutral/plugin.mjs +16 -0
  62. package/dist/lib/neutral/plugin.mjs.map +7 -0
  63. package/dist/lib/neutral/react-surface-EMYFM37T.mjs +119 -0
  64. package/dist/lib/neutral/react-surface-EMYFM37T.mjs.map +7 -0
  65. package/dist/lib/{browser/scroll-to-anchor-IPXV32A6.mjs → neutral/scroll-to-anchor-Y3P676QG.mjs} +7 -9
  66. package/dist/lib/neutral/scroll-to-anchor-Y3P676QG.mjs.map +7 -0
  67. package/dist/lib/neutral/set-view-mode-JZB7UXIF.mjs +24 -0
  68. package/dist/lib/neutral/set-view-mode-JZB7UXIF.mjs.map +7 -0
  69. package/dist/lib/neutral/settings-TDGDLCUR.mjs +34 -0
  70. package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +7 -0
  71. package/dist/lib/neutral/state-5COCF5PN.mjs +44 -0
  72. package/dist/lib/neutral/state-5COCF5PN.mjs.map +7 -0
  73. package/dist/lib/neutral/testing.mjs +30 -0
  74. package/dist/lib/neutral/testing.mjs.map +7 -0
  75. package/dist/lib/neutral/translations.mjs +44 -0
  76. package/dist/lib/neutral/translations.mjs.map +7 -0
  77. package/dist/lib/neutral/types/index.mjs +16 -0
  78. package/dist/lib/neutral/types/index.mjs.map +7 -0
  79. package/dist/lib/{browser/update-HZNVYBMO.mjs → neutral/update-markdown-F25F4EPF.mjs} +8 -9
  80. package/dist/lib/neutral/update-markdown-F25F4EPF.mjs.map +7 -0
  81. package/dist/types/src/MarkdownPlugin.d.ts +1 -0
  82. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  83. package/dist/types/src/{cli/plugin.d.ts → MarkdownPlugin.node.d.ts} +2 -1
  84. package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -0
  85. package/dist/types/src/MarkdownPlugin.test.d.ts +2 -0
  86. package/dist/types/src/MarkdownPlugin.test.d.ts.map +1 -0
  87. package/dist/types/src/MarkdownPlugin.workerd.d.ts +4 -0
  88. package/dist/types/src/MarkdownPlugin.workerd.d.ts.map +1 -0
  89. package/dist/types/src/blueprints/markdown-blueprint.d.ts +2 -2
  90. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/blueprint-definition.d.ts +2 -2
  94. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/comment-config.d.ts +12 -0
  96. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  98. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/index.d.ts +16 -3
  100. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/node.d.ts +7 -1
  102. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  104. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/state.d.ts +2 -2
  108. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  109. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +13 -5
  110. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  111. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +2 -1
  113. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  114. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +1 -1
  115. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  116. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  117. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +46 -46
  118. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -1
  119. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts +15 -0
  120. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
  121. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts +9 -0
  122. package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts.map +1 -0
  123. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
  124. package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
  125. package/dist/types/src/containers/{MarkdownContainer/MarkdownContainer.d.ts → MarkdownArticle/MarkdownArticle.d.ts} +14 -10
  126. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts.map +1 -0
  127. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts +97 -0
  128. package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts.map +1 -0
  129. package/dist/types/src/containers/MarkdownArticle/index.d.ts +3 -0
  130. package/dist/types/src/containers/MarkdownArticle/index.d.ts.map +1 -0
  131. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  132. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +1 -1
  133. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
  134. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -1
  135. package/dist/types/src/containers/index.d.ts +3 -2
  136. package/dist/types/src/containers/index.d.ts.map +1 -1
  137. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
  138. package/dist/types/src/hooks/useExtensions.d.ts +2 -1
  139. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  140. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  141. package/dist/types/src/index.d.ts +2 -4
  142. package/dist/types/src/index.d.ts.map +1 -1
  143. package/dist/types/src/meta.d.ts +1 -1
  144. package/dist/types/src/meta.d.ts.map +1 -1
  145. package/dist/types/src/operations/create-markdown.d.ts +3 -3
  146. package/dist/types/src/operations/create-markdown.d.ts.map +1 -1
  147. package/dist/types/src/operations/create.d.ts +3 -3
  148. package/dist/types/src/operations/create.d.ts.map +1 -1
  149. package/dist/types/src/operations/index.d.ts +1 -2
  150. package/dist/types/src/operations/index.d.ts.map +1 -1
  151. package/dist/types/src/operations/open.d.ts +3 -3
  152. package/dist/types/src/operations/open.d.ts.map +1 -1
  153. package/dist/types/src/operations/scroll-to-anchor.d.ts +3 -3
  154. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -1
  155. package/dist/types/src/operations/set-view-mode.d.ts +3 -3
  156. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -1
  157. package/dist/types/src/operations/update-markdown.d.ts +5 -0
  158. package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
  159. package/dist/types/src/plugin.d.ts +4 -0
  160. package/dist/types/src/plugin.d.ts.map +1 -0
  161. package/dist/types/src/testing.d.ts +1 -0
  162. package/dist/types/src/testing.d.ts.map +1 -1
  163. package/dist/types/src/translations.d.ts +70 -51
  164. package/dist/types/src/translations.d.ts.map +1 -1
  165. package/dist/types/src/types/Markdown.d.ts +12 -10
  166. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  167. package/dist/types/src/types/MarkdownCapabilities.d.ts +32 -0
  168. package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -0
  169. package/dist/types/src/types/MarkdownEvents.d.ts +3 -0
  170. package/dist/types/src/types/MarkdownEvents.d.ts.map +1 -0
  171. package/dist/types/src/{operations/definitions.d.ts → types/MarkdownOperation.d.ts} +17 -17
  172. package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
  173. package/dist/types/src/types/Settings.d.ts +14 -1
  174. package/dist/types/src/types/Settings.d.ts.map +1 -1
  175. package/dist/types/src/types/index.d.ts +3 -2
  176. package/dist/types/src/types/index.d.ts.map +1 -1
  177. package/dist/types/src/types/types.d.ts +1 -0
  178. package/dist/types/src/types/types.d.ts.map +1 -1
  179. package/dist/types/src/util.d.ts +1 -1
  180. package/dist/types/src/util.d.ts.map +1 -1
  181. package/dist/types/tsconfig.tsbuildinfo +1 -1
  182. package/package.json +119 -85
  183. package/src/MarkdownPlugin.node.ts +20 -0
  184. package/src/MarkdownPlugin.test.ts +26 -0
  185. package/src/MarkdownPlugin.tsx +8 -52
  186. package/src/MarkdownPlugin.workerd.ts +19 -0
  187. package/src/blueprints/markdown-blueprint.ts +8 -9
  188. package/src/capabilities/anchor-sort.ts +2 -2
  189. package/src/capabilities/app-graph-serializer.ts +9 -10
  190. package/src/capabilities/blueprint-definition.ts +2 -0
  191. package/src/capabilities/comment-config.ts +33 -0
  192. package/src/capabilities/create-object.ts +31 -0
  193. package/src/capabilities/index.ts +4 -1
  194. package/src/capabilities/node.ts +3 -1
  195. package/src/capabilities/operation-handler.ts +1 -1
  196. package/src/capabilities/react-surface.tsx +17 -10
  197. package/src/capabilities/state.ts +4 -4
  198. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +5 -4
  199. package/src/components/MarkdownEditor/MarkdownEditor.tsx +35 -28
  200. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +4 -3
  201. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +2 -2
  202. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +2 -1
  203. package/src/components/MarkdownSettings/MarkdownSettings.tsx +3 -3
  204. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.tsx +86 -0
  205. package/src/containers/EditableMarkdownCard/EditableMarkdownCard.tsx +44 -0
  206. package/src/containers/EditableMarkdownCard/index.ts +6 -0
  207. package/src/containers/{MarkdownContainer/MarkdownContainer.stories.tsx → MarkdownArticle/MarkdownArticle.stories.tsx} +14 -8
  208. package/src/containers/{MarkdownContainer/MarkdownContainer.tsx → MarkdownArticle/MarkdownArticle.tsx} +7 -6
  209. package/src/containers/MarkdownArticle/index.ts +6 -0
  210. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +8 -7
  211. package/src/containers/MarkdownCard/MarkdownCard.tsx +27 -20
  212. package/src/containers/MarkdownCard/snippet.ts +3 -1
  213. package/src/containers/index.ts +3 -2
  214. package/src/hooks/useExtensions.tsx +12 -8
  215. package/src/hooks/useLinkQuery.ts +19 -34
  216. package/src/index.ts +2 -7
  217. package/src/meta.ts +17 -7
  218. package/src/operations/create-markdown.ts +3 -4
  219. package/src/operations/create.conversations.json +1 -1
  220. package/src/operations/create.test.ts +10 -12
  221. package/src/operations/create.ts +5 -6
  222. package/src/operations/index.ts +2 -4
  223. package/src/operations/open.ts +3 -3
  224. package/src/operations/scroll-to-anchor.ts +3 -4
  225. package/src/operations/set-view-mode.ts +3 -4
  226. package/src/operations/{update.ts → update-markdown.ts} +3 -3
  227. package/src/operations/update.conversations.json +1 -1
  228. package/src/operations/update.test.ts +10 -12
  229. package/src/plugin.ts +11 -0
  230. package/src/testing.ts +22 -9
  231. package/src/translations.ts +4 -3
  232. package/src/types/Markdown.ts +9 -10
  233. package/src/types/MarkdownCapabilities.ts +51 -0
  234. package/src/types/MarkdownEvents.ts +14 -0
  235. package/src/{operations/definitions.ts → types/MarkdownOperation.ts} +24 -11
  236. package/src/types/Settings.ts +23 -3
  237. package/src/types/index.ts +3 -2
  238. package/src/types/types.ts +4 -1
  239. package/src/util.tsx +2 -2
  240. package/dist/lib/browser/MarkdownSettings-62YSRY7L.mjs.map +0 -7
  241. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  242. package/dist/lib/browser/chunk-4KOZEH2H.mjs +0 -121
  243. package/dist/lib/browser/chunk-4KOZEH2H.mjs.map +0 -7
  244. package/dist/lib/browser/chunk-QFPZONKP.mjs +0 -158
  245. package/dist/lib/browser/chunk-QFPZONKP.mjs.map +0 -7
  246. package/dist/lib/browser/cli/index.mjs +0 -39
  247. package/dist/lib/browser/cli/index.mjs.map +0 -7
  248. package/dist/lib/browser/create-YL5ELZWP.mjs.map +0 -7
  249. package/dist/lib/browser/create-markdown-LU5IDKMH.mjs.map +0 -7
  250. package/dist/lib/browser/index.mjs.map +0 -7
  251. package/dist/lib/browser/meta.json +0 -1
  252. package/dist/lib/browser/open-AFSOZZ6G.mjs.map +0 -7
  253. package/dist/lib/browser/operations/index.mjs +0 -14
  254. package/dist/lib/browser/operations/index.mjs.map +0 -7
  255. package/dist/lib/browser/scroll-to-anchor-IPXV32A6.mjs.map +0 -7
  256. package/dist/lib/browser/set-view-mode-2QWB24RR.mjs +0 -26
  257. package/dist/lib/browser/set-view-mode-2QWB24RR.mjs.map +0 -7
  258. package/dist/lib/browser/types/index.mjs +0 -16
  259. package/dist/lib/browser/update-HZNVYBMO.mjs.map +0 -7
  260. package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs +0 -33
  261. package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs.map +0 -7
  262. package/dist/lib/node-esm/blueprints/index.mjs +0 -52
  263. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  264. package/dist/lib/node-esm/chunk-3OPDJJJH.mjs +0 -122
  265. package/dist/lib/node-esm/chunk-3OPDJJJH.mjs.map +0 -7
  266. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  267. package/dist/lib/node-esm/chunk-JUGS6RKO.mjs +0 -159
  268. package/dist/lib/node-esm/chunk-JUGS6RKO.mjs.map +0 -7
  269. package/dist/lib/node-esm/cli/index.mjs +0 -40
  270. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  271. package/dist/lib/node-esm/create-SMQAIM3V.mjs +0 -31
  272. package/dist/lib/node-esm/create-SMQAIM3V.mjs.map +0 -7
  273. package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs +0 -23
  274. package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs.map +0 -7
  275. package/dist/lib/node-esm/index.mjs +0 -633
  276. package/dist/lib/node-esm/index.mjs.map +0 -7
  277. package/dist/lib/node-esm/meta.json +0 -1
  278. package/dist/lib/node-esm/open-SRWLLOKE.mjs +0 -22
  279. package/dist/lib/node-esm/open-SRWLLOKE.mjs.map +0 -7
  280. package/dist/lib/node-esm/operations/index.mjs +0 -15
  281. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  282. package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs +0 -50
  283. package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs.map +0 -7
  284. package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs +0 -27
  285. package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs.map +0 -7
  286. package/dist/lib/node-esm/types/index.mjs +0 -17
  287. package/dist/lib/node-esm/update-4CELTLXK.mjs +0 -46
  288. package/dist/lib/node-esm/update-4CELTLXK.mjs.map +0 -7
  289. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -5
  290. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  291. package/dist/types/src/cli/index.d.ts +0 -2
  292. package/dist/types/src/cli/index.d.ts.map +0 -1
  293. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  294. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +0 -1
  295. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +0 -77
  296. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +0 -1
  297. package/dist/types/src/containers/MarkdownContainer/index.d.ts +0 -3
  298. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +0 -1
  299. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  300. package/dist/types/src/operations/update.d.ts +0 -5
  301. package/dist/types/src/operations/update.d.ts.map +0 -1
  302. package/dist/types/src/types/capabilities.d.ts +0 -33
  303. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  304. package/dist/types/src/types/events.d.ts +0 -5
  305. package/dist/types/src/types/events.d.ts.map +0 -1
  306. package/src/capabilities/artifact-definition.ts +0 -110
  307. package/src/cli/index.ts +0 -5
  308. package/src/cli/plugin.ts +0 -39
  309. package/src/containers/MarkdownContainer/index.ts +0 -6
  310. package/src/types/capabilities.ts +0 -50
  311. package/src/types/events.ts +0 -14
  312. /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  313. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  314. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  315. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  316. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
@@ -0,0 +1,98 @@
1
+ // src/util.tsx
2
+ import { debounce } from "@dxos/async";
3
+ import { Obj } from "@dxos/echo";
4
+ import { Markdown } from "#types";
5
+ var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
6
+ var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
7
+ var nonTitleChars = /[^\w ]/g;
8
+ var skipPatterns = [
9
+ /^!\[/,
10
+ /^---\s*$/,
11
+ /^```/,
12
+ /^\s*$/
13
+ ];
14
+ var titlePatterns = [
15
+ /^#{1,6}\s+(.+)/
16
+ ];
17
+ var getFallbackName = (content = "") => {
18
+ const len = content.length;
19
+ let i = 0;
20
+ while (i < len) {
21
+ let lineEnd = i;
22
+ while (lineEnd < len && content[lineEnd] !== "\n") {
23
+ lineEnd++;
24
+ }
25
+ const line = content.slice(i, lineEnd).trim();
26
+ i = lineEnd + 1;
27
+ if (skipPatterns.some((pattern) => pattern.test(line))) {
28
+ continue;
29
+ }
30
+ for (const pattern of titlePatterns) {
31
+ const match = pattern.exec(line);
32
+ if (match) {
33
+ const text2 = match[1].replaceAll(nonTitleChars, "").trim();
34
+ if (text2.length > 0) {
35
+ return text2;
36
+ }
37
+ }
38
+ }
39
+ const maxLen = 32;
40
+ const text = line.replaceAll(nonTitleChars, "").trim();
41
+ if (text.length > 0) {
42
+ if (text.length > maxLen) {
43
+ const words = text.split(/\s+/);
44
+ let result = "";
45
+ for (const word of words) {
46
+ const next = result.length === 0 ? word : result + " " + word;
47
+ if (next.length > maxLen) {
48
+ break;
49
+ }
50
+ result = next;
51
+ }
52
+ return result + "\u2026";
53
+ }
54
+ return text;
55
+ }
56
+ }
57
+ return "";
58
+ };
59
+ var getContentSnippet = (content = "", maxLines = 3) => {
60
+ const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
61
+ return abstract.slice(0, maxLines).join("\n") ?? "";
62
+ };
63
+ var setFallbackName = debounce((doc, content = "") => {
64
+ const name = getFallbackName(content);
65
+ if (doc.fallbackName !== name) {
66
+ Obj.update(doc, (doc2) => {
67
+ doc2.fallbackName = name;
68
+ });
69
+ }
70
+ }, 200);
71
+ var serializer = {
72
+ serialize: async ({ object }) => {
73
+ const { content } = await object.content.load();
74
+ return JSON.stringify({
75
+ name: object.name,
76
+ fallbackName: object.fallbackName,
77
+ content
78
+ });
79
+ },
80
+ deserialize: async ({ content: serialized }) => {
81
+ const { name, fallbackName, content } = JSON.parse(serialized);
82
+ return Markdown.make({
83
+ name,
84
+ fallbackName,
85
+ content
86
+ });
87
+ }
88
+ };
89
+
90
+ export {
91
+ isEditorModel,
92
+ isMarkdownProperties,
93
+ getFallbackName,
94
+ getContentSnippet,
95
+ setFallbackName,
96
+ serializer
97
+ };
98
+ //# sourceMappingURL=chunk-KDN4GKG2.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space';\n\nimport { Markdown } from '#types';\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\n * @deprecated Use Schema.instanceOf(Markdown.Document, data)\n */\n// TODO(burdon): Normalize types (from FilesPlugin).\nexport const isEditorModel = (data: any): data is { id: string; text: string } =>\n data &&\n typeof data === 'object' &&\n 'id' in data &&\n typeof data.id === 'string' &&\n 'text' in data &&\n typeof data.text === 'string';\n\nexport type MarkdownProperties = Record<string, any>;\n\nexport const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>\n (Obj.isObject(data) as boolean)\n ? true\n : data && typeof data === 'object'\n ? 'title' in data && typeof data.title === 'string'\n : false;\n\nconst nonTitleChars = /[^\\w ]/g;\n\n// Lines matching these patterns are skipped.\nconst skipPatterns = [\n /^!\\[/, // Image.\n /^---\\s*$/, // Horizontal rule.\n /^```/, // Code block fence.\n /^\\s*$/, // Empty or whitespace-only.\n];\n\n// Patterns to extract title text (first capture group is used).\nconst titlePatterns = [\n /^#{1,6}\\s+(.+)/, // Heading.\n];\n\n/**\n * Extracts a fallback name by scanning lines for the first heading or text fragment.\n */\nexport const getFallbackName = (content = ''): string => {\n const len = content.length;\n\n let i = 0;\n while (i < len) {\n // Find end of line.\n let lineEnd = i;\n while (lineEnd < len && content[lineEnd] !== '\\n') {\n lineEnd++;\n }\n\n const line = content.slice(i, lineEnd).trim();\n i = lineEnd + 1;\n\n // Skip lines matching skip patterns.\n if (skipPatterns.some((pattern) => pattern.test(line))) {\n continue;\n }\n\n // Check for title patterns.\n for (const pattern of titlePatterns) {\n const match = pattern.exec(line);\n if (match) {\n const text = match[1].replaceAll(nonTitleChars, '').trim();\n if (text.length > 0) {\n return text;\n }\n }\n }\n\n // Use line as plain text fallback.\n const maxLen = 32;\n const text = line.replaceAll(nonTitleChars, '').trim();\n if (text.length > 0) {\n if (text.length > maxLen) {\n const words = text.split(/\\s+/);\n let result = '';\n for (const word of words) {\n const next = result.length === 0 ? word : result + ' ' + word;\n if (next.length > maxLen) {\n break;\n }\n result = next;\n }\n\n return result + '…';\n }\n\n return text;\n }\n }\n\n return '';\n};\n\n// TODO(burdon): Option to strip Markdown.\nexport const getContentSnippet = (content = '', maxLines = 3) => {\n const abstract = content\n .split('\\n')\n .filter((line) => !line.startsWith('!'))\n .filter((line) => line.trim() !== '');\n\n return abstract.slice(0, maxLines).join('\\n') ?? '';\n};\n\nexport const setFallbackName = debounce((doc: Markdown.Document, content = '') => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n Obj.update(doc, (doc) => {\n doc.fallbackName = name;\n });\n }\n}, 200);\n\nexport const serializer: TypedObjectSerializer<Markdown.Document> = {\n serialize: async ({ object }): Promise<string> => {\n const { content } = await object.content.load();\n return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content });\n },\n\n deserialize: async ({ content: serialized }) => {\n const { name, fallbackName, content } = JSON.parse(serialized);\n return Markdown.make({ name, fallbackName, content });\n },\n};\n"],
5
+ "mappings": ";AAIA,SAASA,gBAAgB;AACzB,SAASC,WAAW;AAGpB,SAASC,gBAAgB;AAOlB,IAAMC,gBAAgB,CAACC,SAC5BA,QACA,OAAOA,SAAS,YAChB,QAAQA,QACR,OAAOA,KAAKC,OAAO,YACnB,UAAUD,QACV,OAAOA,KAAKE,SAAS;AAIhB,IAAMC,uBAAuB,CAACH,SAClCH,IAAIO,SAASJ,IAAAA,IACV,OACAA,QAAQ,OAAOA,SAAS,WACtB,WAAWA,QAAQ,OAAOA,KAAKK,UAAU,WACzC;AAER,IAAMC,gBAAgB;AAGtB,IAAMC,eAAe;EACnB;EACA;EACA;EACA;;AAIF,IAAMC,gBAAgB;EACpB;;AAMK,IAAMC,kBAAkB,CAACC,UAAU,OAAE;AAC1C,QAAMC,MAAMD,QAAQE;AAEpB,MAAIC,IAAI;AACR,SAAOA,IAAIF,KAAK;AAEd,QAAIG,UAAUD;AACd,WAAOC,UAAUH,OAAOD,QAAQI,OAAAA,MAAa,MAAM;AACjDA;IACF;AAEA,UAAMC,OAAOL,QAAQM,MAAMH,GAAGC,OAAAA,EAASG,KAAI;AAC3CJ,QAAIC,UAAU;AAGd,QAAIP,aAAaW,KAAK,CAACC,YAAYA,QAAQC,KAAKL,IAAAA,CAAAA,GAAQ;AACtD;IACF;AAGA,eAAWI,WAAWX,eAAe;AACnC,YAAMa,QAAQF,QAAQG,KAAKP,IAAAA;AAC3B,UAAIM,OAAO;AACT,cAAMnB,QAAOmB,MAAM,CAAA,EAAGE,WAAWjB,eAAe,EAAA,EAAIW,KAAI;AACxD,YAAIf,MAAKU,SAAS,GAAG;AACnB,iBAAOV;QACT;MACF;IACF;AAGA,UAAMsB,SAAS;AACf,UAAMtB,OAAOa,KAAKQ,WAAWjB,eAAe,EAAA,EAAIW,KAAI;AACpD,QAAIf,KAAKU,SAAS,GAAG;AACnB,UAAIV,KAAKU,SAASY,QAAQ;AACxB,cAAMC,QAAQvB,KAAKwB,MAAM,KAAA;AACzB,YAAIC,SAAS;AACb,mBAAWC,QAAQH,OAAO;AACxB,gBAAMI,OAAOF,OAAOf,WAAW,IAAIgB,OAAOD,SAAS,MAAMC;AACzD,cAAIC,KAAKjB,SAASY,QAAQ;AACxB;UACF;AACAG,mBAASE;QACX;AAEA,eAAOF,SAAS;MAClB;AAEA,aAAOzB;IACT;EACF;AAEA,SAAO;AACT;AAGO,IAAM4B,oBAAoB,CAACpB,UAAU,IAAIqB,WAAW,MAAC;AAC1D,QAAMC,WAAWtB,QACdgB,MAAM,IAAA,EACNO,OAAO,CAAClB,SAAS,CAACA,KAAKmB,WAAW,GAAA,CAAA,EAClCD,OAAO,CAAClB,SAASA,KAAKE,KAAI,MAAO,EAAA;AAEpC,SAAOe,SAAShB,MAAM,GAAGe,QAAAA,EAAUI,KAAK,IAAA,KAAS;AACnD;AAEO,IAAMC,kBAAkBxC,SAAS,CAACyC,KAAwB3B,UAAU,OAAE;AAC3E,QAAM4B,OAAO7B,gBAAgBC,OAAAA;AAC7B,MAAI2B,IAAIE,iBAAiBD,MAAM;AAC7BzC,QAAI2C,OAAOH,KAAK,CAACA,SAAAA;AACfA,MAAAA,KAAIE,eAAeD;IACrB,CAAA;EACF;AACF,GAAG,GAAA;AAEI,IAAMG,aAAuD;EAClEC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAM,EAAEjC,QAAO,IAAK,MAAMiC,OAAOjC,QAAQkC,KAAI;AAC7C,WAAOC,KAAKC,UAAU;MAAER,MAAMK,OAAOL;MAAMC,cAAcI,OAAOJ;MAAc7B;IAAQ,CAAA;EACxF;EAEAqC,aAAa,OAAO,EAAErC,SAASsC,WAAU,MAAE;AACzC,UAAM,EAAEV,MAAMC,cAAc7B,QAAO,IAAKmC,KAAKI,MAAMD,UAAAA;AACnD,WAAOlD,SAASoD,KAAK;MAAEZ;MAAMC;MAAc7B;IAAQ,CAAA;EACrD;AACF;",
6
+ "names": ["debounce", "Obj", "Markdown", "isEditorModel", "data", "id", "text", "isMarkdownProperties", "isObject", "title", "nonTitleChars", "skipPatterns", "titlePatterns", "getFallbackName", "content", "len", "length", "i", "lineEnd", "line", "slice", "trim", "some", "pattern", "test", "match", "exec", "replaceAll", "maxLen", "words", "split", "result", "word", "next", "getContentSnippet", "maxLines", "abstract", "filter", "startsWith", "join", "setFallbackName", "doc", "name", "fallbackName", "update", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "make"]
7
+ }
@@ -1,24 +1,16 @@
1
- import {
2
- Create,
3
- Open,
4
- Update
5
- } from "../chunk-QFPZONKP.mjs";
6
- import "../chunk-4KOZEH2H.mjs";
7
- import "../chunk-J5LGTIGS.mjs";
8
-
9
1
  // src/blueprints/markdown-blueprint.ts
10
- import { Blueprint, Template } from "@dxos/blueprints";
2
+ import { Blueprint, Template } from "@dxos/compute";
11
3
  import { trim } from "@dxos/util";
12
- var BLUEPRINT_KEY = "org.dxos.blueprint.markdown";
4
+ import { Markdown, MarkdownOperation } from "#types";
13
5
  var make = () => Blueprint.make({
14
- key: BLUEPRINT_KEY,
6
+ key: Markdown.BLUEPRINT_KEY,
15
7
  name: "Markdown",
16
8
  description: "Work with markdown documents. Preferred over raw database operations.",
17
9
  tools: Blueprint.toolDefinitions({
18
10
  operations: [
19
- Create,
20
- Open,
21
- Update
11
+ MarkdownOperation.Create,
12
+ MarkdownOperation.Open,
13
+ MarkdownOperation.Update
22
14
  ]
23
15
  }),
24
16
  instructions: Template.make({
@@ -41,11 +33,12 @@ var make = () => Blueprint.make({
41
33
  })
42
34
  });
43
35
  var blueprint = {
44
- key: BLUEPRINT_KEY,
36
+ key: Markdown.BLUEPRINT_KEY,
45
37
  make
46
38
  };
47
39
  var markdown_blueprint_default = blueprint;
40
+
48
41
  export {
49
- markdown_blueprint_default as MarkdownBlueprint
42
+ markdown_blueprint_default
50
43
  };
51
- //# sourceMappingURL=index.mjs.map
44
+ //# sourceMappingURL=chunk-LXNSKCPD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/markdown-blueprint.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Blueprint, Template } from '@dxos/compute';\nimport { trim } from '@dxos/util';\n\nimport { Markdown, MarkdownOperation } from '#types';\n\nconst make = () =>\n Blueprint.make({\n key: Markdown.BLUEPRINT_KEY,\n name: 'Markdown',\n description: 'Work with markdown documents. Preferred over raw database operations.',\n tools: Blueprint.toolDefinitions({\n operations: [MarkdownOperation.Create, MarkdownOperation.Open, MarkdownOperation.Update],\n }),\n instructions: Template.make({\n // TODO(wittjosiah): Move example to function input schema annotation.\n source: trim`\n {{! Markdown }}\n\n You can create, read and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n\n Example:\n ${'```'}diff\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id good.\"\n + \"This sentence is really good.\"\n ${'```'}\n `,\n }),\n });\n\nconst blueprint: Blueprint.Definition = {\n key: Markdown.BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n"],
5
+ "mappings": ";AAIA,SAASA,WAAWC,gBAAgB;AACpC,SAASC,YAAY;AAErB,SAASC,UAAUC,yBAAyB;AAE5C,IAAMC,OAAO,MACXL,UAAUK,KAAK;EACbC,KAAKH,SAASI;EACdC,MAAM;EACNC,aAAa;EACbC,OAAOV,UAAUW,gBAAgB;IAC/BC,YAAY;MAACR,kBAAkBS;MAAQT,kBAAkBU;MAAMV,kBAAkBW;;EACnF,CAAA;EACAC,cAAcf,SAASI,KAAK;;IAE1BY,QAAQf;;;;;;;;UAQJ,KAAA;;;;;UAKA,KAAA;;EAEN,CAAA;AACF,CAAA;AAEF,IAAMgB,YAAkC;EACtCZ,KAAKH,SAASI;EACdF;AACF;AAEA,IAAA,6BAAea;",
6
+ "names": ["Blueprint", "Template", "trim", "Markdown", "MarkdownOperation", "make", "key", "BLUEPRINT_KEY", "name", "description", "tools", "toolDefinitions", "operations", "Create", "Open", "Update", "instructions", "source", "blueprint"]
7
+ }
@@ -0,0 +1,31 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/comment-config.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capability } from "@dxos/app-framework";
6
+ import { AppCapabilities } from "@dxos/app-toolkit";
7
+ import { Type } from "@dxos/echo";
8
+ import { createDocAccessor, getTextInRange } from "@dxos/echo-db";
9
+ import { MarkdownOperation } from "#types";
10
+ import { Markdown } from "#types";
11
+ var comment_config_default = Capability.makeModule(Effect.fnUntraced(function* () {
12
+ const config = {
13
+ id: Type.getTypename(Markdown.Document),
14
+ comments: "anchored",
15
+ selectionMode: "multi-range",
16
+ getAnchorLabel: (doc, anchor) => {
17
+ if (doc.content) {
18
+ const [start, end] = anchor.split(":");
19
+ return getTextInRange(createDocAccessor(doc.content.target, [
20
+ "content"
21
+ ]), start, end);
22
+ }
23
+ },
24
+ scrollToAnchor: MarkdownOperation.ScrollToAnchor
25
+ };
26
+ return Capability.contributes(AppCapabilities.CommentConfig, config);
27
+ }));
28
+ export {
29
+ comment_config_default as default
30
+ };
31
+ //# sourceMappingURL=comment-config-ZEA66BUR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/comment-config.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n// eslint-disable-next-line unused-imports/no-unused-imports\nimport type { Operation } from '@dxos/compute';\nimport { Type } from '@dxos/echo';\nimport { createDocAccessor, getTextInRange } from '@dxos/echo-db';\n\nimport { MarkdownOperation } from '#types';\nimport { Markdown } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const config: AppCapabilities.CommentConfig = {\n id: Type.getTypename(Markdown.Document),\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 scrollToAnchor: MarkdownOperation.ScrollToAnchor,\n };\n return Capability.contributes(AppCapabilities.CommentConfig, config);\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAGhC,SAASC,YAAY;AACrB,SAASC,mBAAmBC,sBAAsB;AAElD,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AAEzB,IAAA,yBAAeN,WAAWO,WACjBC,kBAAW,aAAA;AAChB,QAAMC,SAAwC;IAC5CC,IAAIR,KAAKS,YAAYL,SAASM,QAAQ;IACtCC,UAAU;IACVC,eAAe;IACfC,gBAAgB,CAACC,KAAwBC,WAAAA;AACvC,UAAID,IAAIE,SAAS;AACf,cAAM,CAACC,OAAOC,GAAAA,IAAOH,OAAOI,MAAM,GAAA;AAClC,eAAOjB,eAAeD,kBAAkBa,IAAIE,QAAQI,QAAS;UAAC;SAAU,GAAGH,OAAOC,GAAAA;MACpF;IACF;IACAG,gBAAgBlB,kBAAkBmB;EACpC;AACA,SAAOxB,WAAWyB,YAAYxB,gBAAgByB,eAAejB,MAAAA;AAC/D,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "Type", "createDocAccessor", "getTextInRange", "MarkdownOperation", "Markdown", "makeModule", "fnUntraced", "config", "id", "getTypename", "Document", "comments", "selectionMode", "getAnchorLabel", "doc", "anchor", "content", "start", "end", "split", "target", "scrollToAnchor", "ScrollToAnchor", "contributes", "CommentConfig"]
7
+ }
@@ -1,253 +1,4 @@
1
- import {
2
- MarkdownCapabilities,
3
- MarkdownEvents,
4
- MarkdownStateSchema,
5
- Markdown_exports,
6
- Settings_exports
7
- } from "./chunk-4KOZEH2H.mjs";
8
- import "./chunk-J5LGTIGS.mjs";
9
-
10
- // src/meta.ts
11
- import { trim } from "@dxos/util";
12
- var meta = {
13
- id: "org.dxos.plugin.markdown",
14
- name: "Markdown",
15
- description: trim`
16
- Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
17
- Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
18
- `,
19
- icon: "ph--text-aa--regular",
20
- iconHue: "indigo",
21
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
22
- screenshots: [
23
- "https://dxos.network/plugin-details-markdown-dark.png"
24
- ]
25
- };
26
-
27
- // src/util.tsx
28
- import { debounce } from "@dxos/async";
29
- import { Obj } from "@dxos/echo";
30
- import { Markdown } from "#types";
31
- var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
32
- var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
33
- var nonTitleChars = /[^\w ]/g;
34
- var skipPatterns = [
35
- /^!\[/,
36
- /^---\s*$/,
37
- /^```/,
38
- /^\s*$/
39
- ];
40
- var titlePatterns = [
41
- /^#{1,6}\s+(.+)/
42
- ];
43
- var getFallbackName = (content = "") => {
44
- const len = content.length;
45
- let i = 0;
46
- while (i < len) {
47
- let lineEnd = i;
48
- while (lineEnd < len && content[lineEnd] !== "\n") {
49
- lineEnd++;
50
- }
51
- const line = content.slice(i, lineEnd).trim();
52
- i = lineEnd + 1;
53
- if (skipPatterns.some((pattern) => pattern.test(line))) {
54
- continue;
55
- }
56
- for (const pattern of titlePatterns) {
57
- const match = pattern.exec(line);
58
- if (match) {
59
- const text2 = match[1].replaceAll(nonTitleChars, "").trim();
60
- if (text2.length > 0) {
61
- return text2;
62
- }
63
- }
64
- }
65
- const maxLen = 32;
66
- const text = line.replaceAll(nonTitleChars, "").trim();
67
- if (text.length > 0) {
68
- if (text.length > maxLen) {
69
- const words = text.split(/\s+/);
70
- let result = "";
71
- for (const word of words) {
72
- const next = result.length === 0 ? word : result + " " + word;
73
- if (next.length > maxLen) {
74
- break;
75
- }
76
- result = next;
77
- }
78
- return result + "\u2026";
79
- }
80
- return text;
81
- }
82
- }
83
- return "";
84
- };
85
- var getContentSnippet = (content = "", maxLines = 3) => {
86
- const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
87
- return abstract.slice(0, maxLines).join("\n") ?? "";
88
- };
89
- var setFallbackName = debounce((doc, content = "") => {
90
- const name = getFallbackName(content);
91
- if (doc.fallbackName !== name) {
92
- Obj.change(doc, (doc2) => {
93
- doc2.fallbackName = name;
94
- });
95
- }
96
- }, 200);
97
- var serializer = {
98
- serialize: async ({ object }) => {
99
- const { content } = await object.content.load();
100
- return JSON.stringify({
101
- name: object.name,
102
- fallbackName: object.fallbackName,
103
- content
104
- });
105
- },
106
- deserialize: async ({ content: serialized }) => {
107
- const { name, fallbackName, content } = JSON.parse(serialized);
108
- return Markdown.make({
109
- name,
110
- fallbackName,
111
- content
112
- });
113
- }
114
- };
115
-
116
- // src/MarkdownPlugin.tsx
117
- import * as Effect from "effect/Effect";
118
- import * as Option from "effect/Option";
119
- import { Plugin } from "@dxos/app-framework";
120
- import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
121
- import { Annotation, Ref } from "@dxos/echo";
122
- import { createDocAccessor, getTextInRange } from "@dxos/echo-db";
123
- import { Operation } from "@dxos/operation";
124
- import { SpaceOperation } from "@dxos/plugin-space/operations";
125
- import { translations as editorTranslations2 } from "@dxos/react-ui-editor";
126
- import { Text } from "@dxos/schema";
127
- import { MarkdownBlueprint } from "#blueprints";
128
- import { AnchorSort, AppGraphSerializer, BlueprintDefinition, MarkdownSettings, MarkdownState, OperationHandler, ReactSurface } from "#capabilities";
129
- import { meta as meta3 } from "#meta";
130
- import { MarkdownOperation } from "#operations";
131
- import { Markdown as Markdown3, MarkdownEvents as MarkdownEvents2 } from "#types";
132
-
133
- // src/translations.ts
134
- import { translations as editorTranslations } from "@dxos/react-ui-editor";
135
- import { meta as meta2 } from "#meta";
136
- import { Markdown as Markdown2 } from "#types";
137
- var translations = [
138
- {
139
- "en-US": {
140
- [Markdown2.Document.typename]: {
141
- "typename.label": "Document",
142
- "typename.label_zero": "Documents",
143
- "typename.label_one": "Document",
144
- "typename.label_other": "Documents",
145
- "object-name.placeholder": "New document",
146
- "add-object.label": "Add document",
147
- "rename-object.label": "Rename document",
148
- "delete-object.label": "Delete document",
149
- "object-deleted.label": "Document deleted"
150
- },
151
- [meta2.id]: {
152
- "plugin.name": "Editor",
153
- "choose-markdown-from-space-dialog.title": "Choose one or more documents to add",
154
- "empty-choose-markdown-from-space.message": "None available; try creating a new one instead?",
155
- "chooser-done.label": "Add selected",
156
- "editor.placeholder": "Start typing\u2026",
157
- "toggle-view-mode.label": "Toggle read-only",
158
- "upload-image.label": "Upload image",
159
- "fallback.title": "Untitled",
160
- "navigate-to-document.label": "Open document",
161
- "words.label": "words",
162
- "words.label_zero": "words",
163
- "words.label_one": "word",
164
- "words.label_other": "words"
165
- }
166
- }
167
- },
168
- ...editorTranslations
169
- ];
170
-
171
- // src/MarkdownPlugin.tsx
172
- var MarkdownPlugin = Plugin.define(meta3).pipe(AppPlugin.addBlueprintDefinitionModule({
173
- activate: BlueprintDefinition
174
- }), AppPlugin.addMetadataModule({
175
- metadata: {
176
- id: Markdown3.Document.typename,
177
- metadata: {
178
- // TODO(dmaretskyi): Remove label, icon and iconHue and query them of schema.
179
- label: (object) => object.name || object.fallbackName,
180
- icon: Annotation.IconAnnotation.get(Markdown3.Document).pipe(Option.getOrThrow).icon,
181
- iconHue: Annotation.IconAnnotation.get(Markdown3.Document).pipe(Option.getOrThrow).hue ?? "white",
182
- blueprints: [
183
- MarkdownBlueprint.key
184
- ],
185
- graphProps: {
186
- managesAutofocus: true
187
- },
188
- // TODO(wittjosiah): Move out of metadata.
189
- loadReferences: async (doc) => await Ref.Array.loadAll([
190
- doc.content
191
- ]),
192
- serializer,
193
- // TODO(wittjosiah): Consider how to do generic comments without these.
194
- comments: "anchored",
195
- selectionMode: "multi-range",
196
- getAnchorLabel: (doc, anchor) => {
197
- if (doc.content) {
198
- const [start, end] = anchor.split(":");
199
- return getTextInRange(createDocAccessor(doc.content.target, [
200
- "content"
201
- ]), start, end);
202
- }
203
- },
204
- createObject: (props, options) => Effect.gen(function* () {
205
- const object = Markdown3.make(props);
206
- return yield* Operation.invoke(SpaceOperation.AddObject, {
207
- object,
208
- target: options.target,
209
- hidden: true,
210
- targetNodeId: options.targetNodeId
211
- });
212
- }),
213
- scrollToAnchor: MarkdownOperation.ScrollToAnchor
214
- }
215
- }
216
- }), AppPlugin.addOperationHandlerModule({
217
- activate: OperationHandler
218
- }), AppPlugin.addSchemaModule({
219
- schema: [
220
- Markdown3.Document,
221
- Text.Text
222
- ]
223
- }), AppPlugin.addSurfaceModule({
224
- activate: ReactSurface,
225
- firesBeforeActivation: [
226
- MarkdownEvents2.SetupExtensions
227
- ]
228
- }), AppPlugin.addTranslationsModule({
229
- translations: [
230
- ...translations,
231
- ...editorTranslations2
232
- ]
233
- }), Plugin.addModule({
234
- activatesOn: AppActivationEvents.SetupSettings,
235
- activate: MarkdownSettings
236
- }), Plugin.addModule({
237
- id: "state",
238
- // TODO(wittjosiah): Does not integrate with settings store.
239
- // Should this be a different event?
240
- // Should settings store be renamed to be more generic?
241
- activatesOn: AppActivationEvents.SetupSettings,
242
- activate: MarkdownState
243
- }), Plugin.addModule({
244
- activatesOn: AppActivationEvents.AppGraphReady,
245
- activate: AppGraphSerializer
246
- }), Plugin.addModule({
247
- // TODO(wittjosiah): More relevant event?
248
- activatesOn: AppActivationEvents.AppGraphReady,
249
- activate: AnchorSort
250
- }), Plugin.make);
1
+ import "../chunk-J5LGTIGS.mjs";
251
2
 
252
3
  // src/components/index.ts
253
4
  import { lazy } from "react";
@@ -258,11 +9,11 @@ import React4, { useCallback as useCallback3, useMemo as useMemo2, useState as u
258
9
  import { createPortal as createPortal2 } from "react-dom";
259
10
  import { Surface } from "@dxos/app-framework/ui";
260
11
  import { AppSurface } from "@dxos/app-toolkit/ui";
261
- import { Obj as Obj2 } from "@dxos/echo";
262
- import { DXN } from "@dxos/keys";
12
+ import { Obj } from "@dxos/echo";
13
+ import { URI } from "@dxos/keys";
263
14
  import { useClient } from "@dxos/react-client";
15
+ import { composable as composable2, composableProps as composableProps2 } from "@dxos/react-ui";
264
16
  import { createEditorController, useEditorContext } from "@dxos/react-ui-editor";
265
- import { composable as composable2, composableProps as composableProps2 } from "@dxos/ui-theme";
266
17
  import { isNonNullable } from "@dxos/util";
267
18
  import { useEditorMenuOptions, useExtensions } from "#hooks";
268
19
 
@@ -272,13 +23,13 @@ import React, { forwardRef, useCallback, useContext, useEffect, useImperativeHan
272
23
  import { useCapabilities } from "@dxos/app-framework/ui";
273
24
  import { useThemeContext, useTranslation } from "@dxos/react-ui";
274
25
  import { useTextEditor } from "@dxos/react-ui-editor";
275
- import { mobileSlots, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, documentSlots, formattingListener, processEditorPayload, editorClassNames } from "@dxos/ui-editor";
26
+ import { mobileSlots, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, documentSlots, formattingListener, processEditorPayload, editorClassNames, scrollbarAutohide } from "@dxos/ui-editor";
276
27
  import { mx } from "@dxos/ui-theme";
277
28
  import { isTruthy } from "@dxos/util";
278
- import { meta as meta4 } from "#meta";
279
- import { MarkdownCapabilities as MarkdownCapabilities2 } from "#types";
29
+ import { meta } from "#meta";
30
+ import { MarkdownCapabilities } from "#types";
280
31
  var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attendableId, role, compact, viewMode, initialValue, editorStateStore, toolbarState, extensions, slots, onFileUpload }, forwardedRef) => {
281
- const { t } = useTranslation(meta4.id);
32
+ const { t } = useTranslation(meta.id);
282
33
  const { themeMode } = useThemeContext();
283
34
  const registry = useContext(RegistryContext);
284
35
  const updateToolbarState = useCallback((formatting) => {
@@ -316,6 +67,7 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attend
316
67
  syntaxHighlighting: true
317
68
  }),
318
69
  createMarkdownExtensions(),
70
+ scrollbarAutohide(),
319
71
  toolbarState && formattingListener(updateToolbarState),
320
72
  role !== "section" && onFileUpload && dropFile({
321
73
  // TODO(wittjosiah): Factor out to file uploader plugin.
@@ -336,12 +88,13 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attend
336
88
  id,
337
89
  viewMode,
338
90
  themeMode,
339
- extensions
91
+ extensions,
92
+ compact
340
93
  ]);
341
94
  useImperativeHandle(forwardedRef, () => editorView, [
342
95
  editorView
343
96
  ]);
344
- const [editorViewRegistry] = useCapabilities(MarkdownCapabilities2.EditorViews);
97
+ const [editorViewRegistry] = useCapabilities(MarkdownCapabilities.EditorViews);
345
98
  useEffect(() => {
346
99
  if (editorView && editorViewRegistry) {
347
100
  editorViewRegistry.register(attendableId ?? id, editorView, id);
@@ -357,7 +110,6 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attend
357
110
  return /* @__PURE__ */ React.createElement("div", {
358
111
  ...focusAttributes,
359
112
  className: mx(editorClassNames(role), classNames),
360
- role: "none",
361
113
  "data-testid": "composer.markdownRoot",
362
114
  "data-popover-collision-boundary": true,
363
115
  ref: parentRef
@@ -376,8 +128,8 @@ var useTest = (view) => {
376
128
 
377
129
  // src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
378
130
  import React3, { useCallback as useCallback2, useState } from "react";
131
+ import { composable, composableProps } from "@dxos/react-ui";
379
132
  import { Editor } from "@dxos/react-ui-editor";
380
- import { composable, composableProps } from "@dxos/ui-theme";
381
133
 
382
134
  // src/components/MarkdownEditor/FileUpload.tsx
383
135
  import React2, { forwardRef as forwardRef2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle2 } from "react";
@@ -445,7 +197,6 @@ var MarkdownEditorToolbar = composable(({ id, role, editorView, customActions, o
445
197
  });
446
198
  }
447
199
  return /* @__PURE__ */ React3.createElement("div", {
448
- role: "none",
449
200
  className: "contents",
450
201
  ref: forwardedRef
451
202
  }, /* @__PURE__ */ React3.createElement(Editor.Toolbar, {
@@ -469,7 +220,7 @@ var [MarkdownEditorContextProvider, useMarkdownEditorContext] = createContext("M
469
220
  var MarkdownEditorProvider = ({ children, id, attendableId, object, settings, compact, viewMode, selectionManager, editorStateStore, extensions: extensionsProp, slashCommandGroups, onLinkQuery, onSelectObject, onAction, onFileUpload, onViewModeChange }) => {
470
221
  const [previewBlocks, setPreviewBlocks] = useState2([]);
471
222
  const previewOptions = useMemo2(() => ({
472
- db: Obj2.isObject(object) ? Obj2.getDatabase(object) : void 0,
223
+ db: Obj.isObject(object) ? Obj.getDatabase(object) : void 0,
473
224
  addBlockContainer: (block) => {
474
225
  setPreviewBlocks((prev) => [
475
226
  ...prev,
@@ -544,8 +295,8 @@ var MarkdownEditorProvider = ({ children, id, attendableId, object, settings, co
544
295
  };
545
296
  MarkdownEditorProvider.displayName = "MarkdownEditor.Provider";
546
297
  var MARKDOWN_EDITOR_CONTENT_NAME = "MarkdownEditor.Content";
547
- var MarkdownEditorContent2 = composable2(({ ...props }, _forwardedRef) => {
548
- const { id, attendableId, compact, viewMode, onFileUpload } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
298
+ var MarkdownEditorContent2 = composable2(({ compact: compactProp, ...props }, _forwardedRef) => {
299
+ const { id, attendableId, compact = compactProp, viewMode, onFileUpload } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
549
300
  const { extensions, setController, state } = useEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
550
301
  const handleRef = useCallback3((view) => {
551
302
  setController(createEditorController(view));
@@ -591,7 +342,7 @@ var MarkdownEditorBlocks = (_props) => {
591
342
  MarkdownEditorBlocks.displayName = MARKDOWN_EDITOR_BLOCKS_NAME;
592
343
  var PreviewBlock = ({ el, link }) => {
593
344
  const client = useClient();
594
- const dxn = DXN.parse(link.dxn);
345
+ const dxn = URI.make(link.dxn);
595
346
  const subject = client.graph.makeRef(dxn).target;
596
347
  const data = useMemo2(() => ({
597
348
  subject
@@ -611,22 +362,10 @@ var MarkdownEditor = {
611
362
  };
612
363
 
613
364
  // src/components/index.ts
614
- var MarkdownSettings2 = lazy(() => import("./MarkdownSettings-62YSRY7L.mjs"));
365
+ var MarkdownSettings = lazy(() => import("../MarkdownSettings-YCTZJL5V.mjs"));
615
366
  export {
616
- Markdown_exports as Markdown,
617
- MarkdownCapabilities,
618
367
  MarkdownEditor,
619
368
  MarkdownEditorProvider,
620
- MarkdownEvents,
621
- MarkdownPlugin,
622
- MarkdownStateSchema,
623
- Settings_exports as Settings,
624
- getContentSnippet,
625
- getFallbackName,
626
- isEditorModel,
627
- isMarkdownProperties,
628
- meta,
629
- serializer,
630
- setFallbackName
369
+ MarkdownSettings
631
370
  };
632
371
  //# sourceMappingURL=index.mjs.map