@dxos/plugin-markdown 0.8.4-main.4a85c3132b → 0.8.4-main.51f1e5ca51

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 (354) hide show
  1. package/dist/lib/browser/MarkdownSettings-YCTZJL5V.mjs +32 -0
  2. package/dist/lib/browser/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
  3. package/dist/lib/browser/blueprints/index.mjs +46 -4
  4. package/dist/lib/browser/blueprints/index.mjs.map +4 -4
  5. package/dist/lib/browser/chunk-5T3SYJIP.mjs +158 -0
  6. package/dist/lib/browser/chunk-5T3SYJIP.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-FG2ZL4PE.mjs +121 -0
  8. package/dist/lib/browser/chunk-FG2ZL4PE.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  10. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  11. package/dist/lib/browser/cli/index.mjs +19 -15
  12. package/dist/lib/browser/cli/index.mjs.map +3 -3
  13. package/dist/lib/browser/create-VSHCHZS4.mjs +30 -0
  14. package/dist/lib/browser/create-VSHCHZS4.mjs.map +7 -0
  15. package/dist/lib/browser/create-markdown-6LRG62W3.mjs +22 -0
  16. package/dist/lib/browser/create-markdown-6LRG62W3.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +507 -77
  18. package/dist/lib/browser/index.mjs.map +4 -4
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/open-TKTPEN3D.mjs +21 -0
  21. package/dist/lib/browser/open-TKTPEN3D.mjs.map +7 -0
  22. package/dist/lib/browser/operations/index.mjs +14 -0
  23. package/dist/lib/browser/operations/index.mjs.map +7 -0
  24. package/dist/lib/browser/scroll-to-anchor-HWERBJKN.mjs +49 -0
  25. package/dist/lib/browser/scroll-to-anchor-HWERBJKN.mjs.map +7 -0
  26. package/dist/lib/browser/set-view-mode-Z7HGT7TY.mjs +26 -0
  27. package/dist/lib/browser/set-view-mode-Z7HGT7TY.mjs.map +7 -0
  28. package/dist/lib/browser/translations.mjs +43 -0
  29. package/dist/lib/browser/translations.mjs.map +7 -0
  30. package/dist/lib/browser/types/index.mjs +6 -8
  31. package/dist/lib/browser/update-markdown-EJSHQRSC.mjs +45 -0
  32. package/dist/lib/browser/update-markdown-EJSHQRSC.mjs.map +7 -0
  33. package/dist/lib/node-esm/MarkdownSettings-LE66LODL.mjs +33 -0
  34. package/dist/lib/node-esm/MarkdownSettings-LE66LODL.mjs.map +7 -0
  35. package/dist/lib/node-esm/blueprints/index.mjs +46 -4
  36. package/dist/lib/node-esm/blueprints/index.mjs.map +4 -4
  37. package/dist/lib/node-esm/chunk-43GF7QLH.mjs +159 -0
  38. package/dist/lib/node-esm/chunk-43GF7QLH.mjs.map +7 -0
  39. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  40. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-IHC6DFTK.mjs +122 -0
  42. package/dist/lib/node-esm/chunk-IHC6DFTK.mjs.map +7 -0
  43. package/dist/lib/node-esm/cli/index.mjs +19 -15
  44. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  45. package/dist/lib/node-esm/create-PDW42WOY.mjs +31 -0
  46. package/dist/lib/node-esm/create-PDW42WOY.mjs.map +7 -0
  47. package/dist/lib/node-esm/create-markdown-BBPZPLQN.mjs +23 -0
  48. package/dist/lib/node-esm/create-markdown-BBPZPLQN.mjs.map +7 -0
  49. package/dist/lib/node-esm/index.mjs +507 -77
  50. package/dist/lib/node-esm/index.mjs.map +4 -4
  51. package/dist/lib/node-esm/meta.json +1 -1
  52. package/dist/lib/node-esm/open-B6GFN5DR.mjs +22 -0
  53. package/dist/lib/node-esm/open-B6GFN5DR.mjs.map +7 -0
  54. package/dist/lib/node-esm/operations/index.mjs +15 -0
  55. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  56. package/dist/lib/node-esm/scroll-to-anchor-CWEWWIS7.mjs +50 -0
  57. package/dist/lib/node-esm/scroll-to-anchor-CWEWWIS7.mjs.map +7 -0
  58. package/dist/lib/node-esm/set-view-mode-OMNNTSNM.mjs +27 -0
  59. package/dist/lib/node-esm/set-view-mode-OMNNTSNM.mjs.map +7 -0
  60. package/dist/lib/node-esm/translations.mjs +44 -0
  61. package/dist/lib/node-esm/translations.mjs.map +7 -0
  62. package/dist/lib/node-esm/types/index.mjs +6 -8
  63. package/dist/lib/node-esm/update-markdown-TAEAHVD2.mjs +46 -0
  64. package/dist/lib/node-esm/update-markdown-TAEAHVD2.mjs.map +7 -0
  65. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  66. package/dist/types/src/blueprints/markdown-blueprint.d.ts +2 -2
  67. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -0
  70. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  72. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/index.d.ts +9 -7
  74. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/node.d.ts +4 -0
  76. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  78. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +1 -2
  81. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  82. package/dist/types/src/capabilities/state.d.ts +6 -0
  83. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  84. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  85. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +33 -22
  86. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  87. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +3 -3
  88. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +6 -3
  90. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  91. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +6 -5
  92. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  93. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +6 -0
  94. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -0
  95. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +94 -0
  96. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -0
  97. package/dist/types/src/components/MarkdownSettings/index.d.ts +2 -0
  98. package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -0
  99. package/dist/types/src/components/index.d.ts +2 -0
  100. package/dist/types/src/components/index.d.ts.map +1 -1
  101. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts +1 -1
  102. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -1
  103. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +1 -1
  104. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
  105. package/dist/types/src/containers/MarkdownCard/MarkdownEditableCard.d.ts +15 -0
  106. package/dist/types/src/containers/MarkdownCard/MarkdownEditableCard.d.ts.map +1 -0
  107. package/dist/types/src/containers/MarkdownCard/index.d.ts +2 -2
  108. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -1
  109. package/dist/types/src/containers/MarkdownCard/snippet.d.ts +17 -0
  110. package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
  111. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts +18 -9
  112. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -1
  113. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +70 -61
  114. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -1
  115. package/dist/types/src/containers/MarkdownContainer/index.d.ts +2 -2
  116. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -1
  117. package/dist/types/src/containers/index.d.ts +2 -2
  118. package/dist/types/src/containers/index.d.ts.map +1 -1
  119. package/dist/types/src/hooks/index.d.ts +0 -1
  120. package/dist/types/src/hooks/index.d.ts.map +1 -1
  121. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
  122. package/dist/types/src/hooks/useExtensions.d.ts +10 -6
  123. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  124. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
  125. package/dist/types/src/index.d.ts +2 -2
  126. package/dist/types/src/index.d.ts.map +1 -1
  127. package/dist/types/src/operations/create-markdown.d.ts +5 -0
  128. package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
  129. package/dist/types/src/operations/create.d.ts +5 -0
  130. package/dist/types/src/operations/create.d.ts.map +1 -0
  131. package/dist/types/src/operations/create.test.d.ts.map +1 -0
  132. package/dist/types/src/operations/definitions.d.ts +64 -0
  133. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  134. package/dist/types/src/operations/index.d.ts +4 -0
  135. package/dist/types/src/operations/index.d.ts.map +1 -0
  136. package/dist/types/src/operations/open.d.ts +5 -0
  137. package/dist/types/src/operations/open.d.ts.map +1 -0
  138. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  139. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  140. package/dist/types/src/operations/set-view-mode.d.ts +5 -0
  141. package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
  142. package/dist/types/src/operations/update-markdown.d.ts +5 -0
  143. package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
  144. package/dist/types/src/operations/update.test.d.ts.map +1 -0
  145. package/dist/types/src/testing.d.ts.map +1 -1
  146. package/dist/types/src/translations.d.ts +70 -62
  147. package/dist/types/src/translations.d.ts.map +1 -1
  148. package/dist/types/src/types/Markdown.d.ts +14 -15
  149. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  150. package/dist/types/src/types/Settings.d.ts +17 -0
  151. package/dist/types/src/types/Settings.d.ts.map +1 -0
  152. package/dist/types/src/types/capabilities.d.ts +15 -3
  153. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  154. package/dist/types/src/types/events.d.ts.map +1 -1
  155. package/dist/types/src/types/index.d.ts +2 -3
  156. package/dist/types/src/types/index.d.ts.map +1 -1
  157. package/dist/types/src/types/types.d.ts +1 -0
  158. package/dist/types/src/types/types.d.ts.map +1 -1
  159. package/dist/types/src/util.d.ts +1 -1
  160. package/dist/types/src/util.d.ts.map +1 -1
  161. package/dist/types/tsconfig.tsbuildinfo +1 -1
  162. package/package.json +82 -68
  163. package/src/MarkdownPlugin.tsx +30 -26
  164. package/src/blueprints/markdown-blueprint.ts +6 -9
  165. package/src/capabilities/{anchor-sort/anchor-sort.ts → anchor-sort.ts} +1 -1
  166. package/src/capabilities/{app-graph-serializer/app-graph-serializer.ts → app-graph-serializer.ts} +9 -5
  167. package/src/capabilities/{artifact-definition/artifact-definition.ts → artifact-definition.ts} +4 -4
  168. package/src/capabilities/{blueprint-definition/blueprint-definition.ts → blueprint-definition.ts} +1 -1
  169. package/src/capabilities/index.ts +13 -7
  170. package/src/capabilities/node.ts +11 -0
  171. package/src/capabilities/operation-handler.ts +16 -0
  172. package/src/capabilities/react-surface.tsx +127 -0
  173. package/src/capabilities/{settings/settings.ts → settings.ts} +2 -2
  174. package/src/capabilities/state.ts +47 -0
  175. package/src/cli/plugin.ts +16 -7
  176. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +37 -34
  177. package/src/components/MarkdownEditor/MarkdownEditor.tsx +116 -95
  178. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +24 -15
  179. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +37 -57
  180. package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +40 -0
  181. package/src/components/MarkdownSettings/MarkdownSettings.tsx +35 -0
  182. package/src/components/MarkdownSettings/index.ts +5 -0
  183. package/src/components/index.ts +4 -0
  184. package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +6 -6
  185. package/src/containers/MarkdownCard/MarkdownCard.tsx +29 -22
  186. package/src/containers/MarkdownCard/MarkdownEditableCard.tsx +42 -0
  187. package/src/containers/MarkdownCard/index.ts +2 -3
  188. package/src/containers/MarkdownCard/snippet.ts +54 -0
  189. package/src/containers/MarkdownContainer/MarkdownContainer.stories.tsx +18 -19
  190. package/src/containers/MarkdownContainer/MarkdownContainer.tsx +65 -33
  191. package/src/containers/MarkdownContainer/index.ts +2 -3
  192. package/src/containers/index.ts +4 -2
  193. package/src/hooks/index.ts +0 -1
  194. package/src/hooks/useEditorMenuOptions.ts +2 -2
  195. package/src/hooks/useExtensions.tsx +57 -40
  196. package/src/hooks/useLinkQuery.ts +28 -3
  197. package/src/index.ts +2 -2
  198. package/src/meta.ts +1 -1
  199. package/src/operations/create-markdown.ts +20 -0
  200. package/src/operations/create.conversations.json +1 -0
  201. package/src/{blueprints/functions → operations}/create.test.ts +27 -21
  202. package/src/operations/create.ts +27 -0
  203. package/src/operations/definitions.ts +120 -0
  204. package/src/operations/index.ts +16 -0
  205. package/src/operations/open.ts +25 -0
  206. package/src/operations/scroll-to-anchor.ts +39 -0
  207. package/src/operations/set-view-mode.ts +24 -0
  208. package/src/operations/update-markdown.ts +51 -0
  209. package/src/operations/update.conversations.json +1 -0
  210. package/src/{blueprints/functions → operations}/update.test.ts +47 -47
  211. package/src/translations.ts +25 -37
  212. package/src/types/Markdown.ts +8 -23
  213. package/src/types/Settings.ts +65 -0
  214. package/src/types/capabilities.ts +19 -6
  215. package/src/types/events.ts +2 -2
  216. package/src/types/index.ts +3 -4
  217. package/src/types/types.ts +4 -1
  218. package/src/util.tsx +3 -3
  219. package/dist/lib/browser/MarkdownCard-5NPSEJ2M.mjs +0 -61
  220. package/dist/lib/browser/MarkdownCard-5NPSEJ2M.mjs.map +0 -7
  221. package/dist/lib/browser/MarkdownContainer-KER2N5M2.mjs +0 -108
  222. package/dist/lib/browser/MarkdownContainer-KER2N5M2.mjs.map +0 -7
  223. package/dist/lib/browser/MarkdownSettings-2N4TT2FG.mjs +0 -106
  224. package/dist/lib/browser/MarkdownSettings-2N4TT2FG.mjs.map +0 -7
  225. package/dist/lib/browser/anchor-sort-EHJGOCYW.mjs +0 -34
  226. package/dist/lib/browser/anchor-sort-EHJGOCYW.mjs.map +0 -7
  227. package/dist/lib/browser/app-graph-serializer-QBZDVASK.mjs +0 -60
  228. package/dist/lib/browser/app-graph-serializer-QBZDVASK.mjs.map +0 -7
  229. package/dist/lib/browser/blueprint-definition-ASGDSKKE.mjs +0 -18
  230. package/dist/lib/browser/blueprint-definition-ASGDSKKE.mjs.map +0 -7
  231. package/dist/lib/browser/chunk-7JEOX3X6.mjs +0 -783
  232. package/dist/lib/browser/chunk-7JEOX3X6.mjs.map +0 -7
  233. package/dist/lib/browser/chunk-HK6EGNP5.mjs +0 -8
  234. package/dist/lib/browser/chunk-HK6EGNP5.mjs.map +0 -7
  235. package/dist/lib/browser/chunk-P3TN2W6M.mjs +0 -154
  236. package/dist/lib/browser/chunk-P3TN2W6M.mjs.map +0 -7
  237. package/dist/lib/browser/chunk-RJO5W5YX.mjs +0 -59
  238. package/dist/lib/browser/chunk-RJO5W5YX.mjs.map +0 -7
  239. package/dist/lib/browser/chunk-W24NJ6WB.mjs +0 -178
  240. package/dist/lib/browser/chunk-W24NJ6WB.mjs.map +0 -7
  241. package/dist/lib/browser/chunk-YBMRREXE.mjs +0 -28
  242. package/dist/lib/browser/chunk-YBMRREXE.mjs.map +0 -7
  243. package/dist/lib/browser/operation-resolver-3KOXJM7P.mjs +0 -54
  244. package/dist/lib/browser/operation-resolver-3KOXJM7P.mjs.map +0 -7
  245. package/dist/lib/browser/react-surface-WU4VTE43.mjs +0 -115
  246. package/dist/lib/browser/react-surface-WU4VTE43.mjs.map +0 -7
  247. package/dist/lib/browser/settings-7FMWKB7N.mjs +0 -38
  248. package/dist/lib/browser/settings-7FMWKB7N.mjs.map +0 -7
  249. package/dist/lib/browser/state-7UJKJDGE.mjs +0 -31
  250. package/dist/lib/browser/state-7UJKJDGE.mjs.map +0 -7
  251. package/dist/lib/node-esm/MarkdownCard-4MXS7AQR.mjs +0 -62
  252. package/dist/lib/node-esm/MarkdownCard-4MXS7AQR.mjs.map +0 -7
  253. package/dist/lib/node-esm/MarkdownContainer-BZ637MS3.mjs +0 -109
  254. package/dist/lib/node-esm/MarkdownContainer-BZ637MS3.mjs.map +0 -7
  255. package/dist/lib/node-esm/MarkdownSettings-FQTYCTD7.mjs +0 -107
  256. package/dist/lib/node-esm/MarkdownSettings-FQTYCTD7.mjs.map +0 -7
  257. package/dist/lib/node-esm/anchor-sort-QWZO6B2R.mjs +0 -35
  258. package/dist/lib/node-esm/anchor-sort-QWZO6B2R.mjs.map +0 -7
  259. package/dist/lib/node-esm/app-graph-serializer-3UVXEHJG.mjs +0 -61
  260. package/dist/lib/node-esm/app-graph-serializer-3UVXEHJG.mjs.map +0 -7
  261. package/dist/lib/node-esm/blueprint-definition-TG7OZIWW.mjs +0 -19
  262. package/dist/lib/node-esm/blueprint-definition-TG7OZIWW.mjs.map +0 -7
  263. package/dist/lib/node-esm/chunk-ANIFP6M2.mjs +0 -60
  264. package/dist/lib/node-esm/chunk-ANIFP6M2.mjs.map +0 -7
  265. package/dist/lib/node-esm/chunk-KCH3EL53.mjs +0 -10
  266. package/dist/lib/node-esm/chunk-KCH3EL53.mjs.map +0 -7
  267. package/dist/lib/node-esm/chunk-N73JZ4CD.mjs +0 -784
  268. package/dist/lib/node-esm/chunk-N73JZ4CD.mjs.map +0 -7
  269. package/dist/lib/node-esm/chunk-NBGAJPVH.mjs +0 -179
  270. package/dist/lib/node-esm/chunk-NBGAJPVH.mjs.map +0 -7
  271. package/dist/lib/node-esm/chunk-W7AM4HCG.mjs +0 -29
  272. package/dist/lib/node-esm/chunk-W7AM4HCG.mjs.map +0 -7
  273. package/dist/lib/node-esm/chunk-WBZQ246U.mjs +0 -155
  274. package/dist/lib/node-esm/chunk-WBZQ246U.mjs.map +0 -7
  275. package/dist/lib/node-esm/operation-resolver-2MEWKRFP.mjs +0 -55
  276. package/dist/lib/node-esm/operation-resolver-2MEWKRFP.mjs.map +0 -7
  277. package/dist/lib/node-esm/react-surface-LC5CI6VP.mjs +0 -116
  278. package/dist/lib/node-esm/react-surface-LC5CI6VP.mjs.map +0 -7
  279. package/dist/lib/node-esm/settings-DBK2SPWT.mjs +0 -39
  280. package/dist/lib/node-esm/settings-DBK2SPWT.mjs.map +0 -7
  281. package/dist/lib/node-esm/state-EEPLRAOT.mjs +0 -32
  282. package/dist/lib/node-esm/state-EEPLRAOT.mjs.map +0 -7
  283. package/dist/types/src/blueprints/functions/create.d.ts +0 -8
  284. package/dist/types/src/blueprints/functions/create.d.ts.map +0 -1
  285. package/dist/types/src/blueprints/functions/create.test.d.ts.map +0 -1
  286. package/dist/types/src/blueprints/functions/index.d.ts +0 -42
  287. package/dist/types/src/blueprints/functions/index.d.ts.map +0 -1
  288. package/dist/types/src/blueprints/functions/open.d.ts +0 -14
  289. package/dist/types/src/blueprints/functions/open.d.ts.map +0 -1
  290. package/dist/types/src/blueprints/functions/update.d.ts +0 -19
  291. package/dist/types/src/blueprints/functions/update.d.ts.map +0 -1
  292. package/dist/types/src/blueprints/functions/update.test.d.ts.map +0 -1
  293. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +0 -1
  294. package/dist/types/src/capabilities/anchor-sort/index.d.ts +0 -3
  295. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +0 -1
  296. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +0 -1
  297. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +0 -3
  298. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +0 -1
  299. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +0 -1
  300. package/dist/types/src/capabilities/artifact-definition/index.d.ts +0 -3
  301. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +0 -1
  302. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -6
  303. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
  304. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -3
  305. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
  306. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  307. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  308. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  309. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  310. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  311. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  312. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  313. package/dist/types/src/capabilities/settings/index.d.ts +0 -3
  314. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  315. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  316. package/dist/types/src/capabilities/state/index.d.ts +0 -3
  317. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  318. package/dist/types/src/capabilities/state/state.d.ts +0 -5
  319. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  320. package/dist/types/src/containers/MarkdownSettings/MarkdownSettings.d.ts +0 -8
  321. package/dist/types/src/containers/MarkdownSettings/MarkdownSettings.d.ts.map +0 -1
  322. package/dist/types/src/containers/MarkdownSettings/index.d.ts +0 -3
  323. package/dist/types/src/containers/MarkdownSettings/index.d.ts.map +0 -1
  324. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
  325. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
  326. package/dist/types/src/types/MarkdownAction.d.ts +0 -66
  327. package/dist/types/src/types/MarkdownAction.d.ts.map +0 -1
  328. package/src/blueprints/functions/create.conversations.json +0 -1
  329. package/src/blueprints/functions/create.ts +0 -35
  330. package/src/blueprints/functions/index.ts +0 -15
  331. package/src/blueprints/functions/open.ts +0 -33
  332. package/src/blueprints/functions/update.conversations.json +0 -1
  333. package/src/blueprints/functions/update.ts +0 -79
  334. package/src/capabilities/anchor-sort/index.ts +0 -7
  335. package/src/capabilities/app-graph-serializer/index.ts +0 -7
  336. package/src/capabilities/artifact-definition/index.ts +0 -7
  337. package/src/capabilities/blueprint-definition/index.ts +0 -7
  338. package/src/capabilities/operation-resolver/index.ts +0 -7
  339. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -45
  340. package/src/capabilities/react-surface/index.ts +0 -7
  341. package/src/capabilities/react-surface/react-surface.tsx +0 -102
  342. package/src/capabilities/settings/index.ts +0 -7
  343. package/src/capabilities/state/index.ts +0 -7
  344. package/src/capabilities/state/state.ts +0 -31
  345. package/src/containers/MarkdownSettings/MarkdownSettings.tsx +0 -122
  346. package/src/containers/MarkdownSettings/index.ts +0 -7
  347. package/src/hooks/useSelectCurrentThread.tsx +0 -61
  348. package/src/types/MarkdownAction.ts +0 -59
  349. /package/dist/types/src/capabilities/{anchor-sort/anchor-sort.d.ts → anchor-sort.d.ts} +0 -0
  350. /package/dist/types/src/capabilities/{app-graph-serializer/app-graph-serializer.d.ts → app-graph-serializer.d.ts} +0 -0
  351. /package/dist/types/src/capabilities/{artifact-definition/artifact-definition.d.ts → artifact-definition.d.ts} +0 -0
  352. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
  353. /package/dist/types/src/{blueprints/functions → operations}/create.test.d.ts +0 -0
  354. /package/dist/types/src/{blueprints/functions → operations}/update.test.d.ts +0 -0
@@ -1,80 +1,144 @@
1
1
  import {
2
- MarkdownEditor,
3
- getContentSnippet,
4
- getFallbackName,
5
- isEditorModel,
6
- isMarkdownProperties,
7
- serializer,
8
- setFallbackName
9
- } from "./chunk-7JEOX3X6.mjs";
10
- import {
11
- OperationResolver
12
- } from "./chunk-HK6EGNP5.mjs";
13
- import {
14
- translations
15
- } from "./chunk-RJO5W5YX.mjs";
16
- import {
17
- markdown_blueprint_default
18
- } from "./chunk-W24NJ6WB.mjs";
19
- import {
20
- MarkdownAction_exports,
21
2
  MarkdownCapabilities,
22
- MarkdownEvents,
23
- MarkdownOperation,
24
- MarkdownStateSchema,
25
- Markdown_exports
26
- } from "./chunk-P3TN2W6M.mjs";
27
- import {
28
- meta
29
- } from "./chunk-YBMRREXE.mjs";
3
+ MarkdownEvents
4
+ } from "./chunk-FG2ZL4PE.mjs";
5
+ import "./chunk-J5LGTIGS.mjs";
6
+
7
+ // src/meta.ts
8
+ import { trim } from "@dxos/util";
9
+ var meta = {
10
+ id: "org.dxos.plugin.markdown",
11
+ name: "Markdown",
12
+ description: trim`
13
+ Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
14
+ Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
15
+ `,
16
+ icon: "ph--text-aa--regular",
17
+ iconHue: "indigo",
18
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
19
+ screenshots: [
20
+ "https://dxos.network/plugin-details-markdown-dark.png"
21
+ ]
22
+ };
23
+
24
+ // src/util.tsx
25
+ import { debounce } from "@dxos/async";
26
+ import { Obj } from "@dxos/echo";
27
+ import { Markdown } from "#types";
28
+ var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
29
+ var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
30
+ var nonTitleChars = /[^\w ]/g;
31
+ var skipPatterns = [
32
+ /^!\[/,
33
+ /^---\s*$/,
34
+ /^```/,
35
+ /^\s*$/
36
+ ];
37
+ var titlePatterns = [
38
+ /^#{1,6}\s+(.+)/
39
+ ];
40
+ var getFallbackName = (content = "") => {
41
+ const len = content.length;
42
+ let i = 0;
43
+ while (i < len) {
44
+ let lineEnd = i;
45
+ while (lineEnd < len && content[lineEnd] !== "\n") {
46
+ lineEnd++;
47
+ }
48
+ const line = content.slice(i, lineEnd).trim();
49
+ i = lineEnd + 1;
50
+ if (skipPatterns.some((pattern) => pattern.test(line))) {
51
+ continue;
52
+ }
53
+ for (const pattern of titlePatterns) {
54
+ const match = pattern.exec(line);
55
+ if (match) {
56
+ const text2 = match[1].replaceAll(nonTitleChars, "").trim();
57
+ if (text2.length > 0) {
58
+ return text2;
59
+ }
60
+ }
61
+ }
62
+ const maxLen = 32;
63
+ const text = line.replaceAll(nonTitleChars, "").trim();
64
+ if (text.length > 0) {
65
+ if (text.length > maxLen) {
66
+ const words = text.split(/\s+/);
67
+ let result = "";
68
+ for (const word of words) {
69
+ const next = result.length === 0 ? word : result + " " + word;
70
+ if (next.length > maxLen) {
71
+ break;
72
+ }
73
+ result = next;
74
+ }
75
+ return result + "\u2026";
76
+ }
77
+ return text;
78
+ }
79
+ }
80
+ return "";
81
+ };
82
+ var getContentSnippet = (content = "", maxLines = 3) => {
83
+ const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
84
+ return abstract.slice(0, maxLines).join("\n") ?? "";
85
+ };
86
+ var setFallbackName = debounce((doc, content = "") => {
87
+ const name = getFallbackName(content);
88
+ if (doc.fallbackName !== name) {
89
+ Obj.update(doc, (doc2) => {
90
+ doc2.fallbackName = name;
91
+ });
92
+ }
93
+ }, 200);
94
+ var serializer = {
95
+ serialize: async ({ object }) => {
96
+ const { content } = await object.content.load();
97
+ return JSON.stringify({
98
+ name: object.name,
99
+ fallbackName: object.fallbackName,
100
+ content
101
+ });
102
+ },
103
+ deserialize: async ({ content: serialized }) => {
104
+ const { name, fallbackName, content } = JSON.parse(serialized);
105
+ return Markdown.make({
106
+ name,
107
+ fallbackName,
108
+ content
109
+ });
110
+ }
111
+ };
30
112
 
31
113
  // src/MarkdownPlugin.tsx
32
114
  import * as Effect from "effect/Effect";
33
- import { Capability as Capability7, Plugin } from "@dxos/app-framework";
115
+ import * as Option from "effect/Option";
116
+ import { Plugin } from "@dxos/app-framework";
34
117
  import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
35
- import { Ref } from "@dxos/echo";
118
+ import { Operation } from "@dxos/compute";
119
+ import { Annotation, Ref } from "@dxos/echo";
36
120
  import { createDocAccessor, getTextInRange } from "@dxos/echo-db";
37
- import { Operation } from "@dxos/operation";
38
- import { SpaceCapabilities, SpaceEvents } from "@dxos/plugin-space";
39
- import { translations as editorTranslations } from "@dxos/react-ui-editor";
121
+ import { SpaceOperation } from "@dxos/plugin-space/operations";
122
+ import { translations as editorTranslations } from "@dxos/react-ui-editor/translations";
40
123
  import { Text } from "@dxos/schema";
41
-
42
- // src/capabilities/anchor-sort/index.ts
43
- import { Capability } from "@dxos/app-framework";
44
- var AnchorSort = Capability.lazy("AnchorSort", () => import("./anchor-sort-EHJGOCYW.mjs"));
45
-
46
- // src/capabilities/app-graph-serializer/index.ts
47
- import { Capability as Capability2 } from "@dxos/app-framework";
48
- var AppGraphSerializer = Capability2.lazy("AppGraphSerializer", () => import("./app-graph-serializer-QBZDVASK.mjs"));
49
-
50
- // src/capabilities/blueprint-definition/index.ts
51
- import { Capability as Capability3 } from "@dxos/app-framework";
52
- var BlueprintDefinition = Capability3.lazy("BlueprintDefinition", () => import("./blueprint-definition-ASGDSKKE.mjs"));
53
-
54
- // src/capabilities/react-surface/index.ts
55
- import { Capability as Capability4 } from "@dxos/app-framework";
56
- var ReactSurface = Capability4.lazy("ReactSurface", () => import("./react-surface-WU4VTE43.mjs"));
57
-
58
- // src/capabilities/settings/index.ts
59
- import { Capability as Capability5 } from "@dxos/app-framework";
60
- var MarkdownSettings = Capability5.lazy("MarkdownSettings", () => import("./settings-7FMWKB7N.mjs"));
61
-
62
- // src/capabilities/state/index.ts
63
- import { Capability as Capability6 } from "@dxos/app-framework";
64
- var MarkdownState = Capability6.lazy("MarkdownState", () => import("./state-7UJKJDGE.mjs"));
65
-
66
- // src/MarkdownPlugin.tsx
67
- var MarkdownPlugin = Plugin.define(meta).pipe(AppPlugin.addBlueprintDefinitionModule({
124
+ import { MarkdownBlueprint } from "#blueprints";
125
+ import { AnchorSort, AppGraphSerializer, BlueprintDefinition, MarkdownSettings, MarkdownState, OperationHandler, ReactSurface } from "#capabilities";
126
+ import { meta as meta2 } from "#meta";
127
+ import { MarkdownOperation } from "#operations";
128
+ import { translations } from "#translations";
129
+ import { Markdown as Markdown2, MarkdownEvents as MarkdownEvents2 } from "#types";
130
+ var MarkdownPlugin = Plugin.define(meta2).pipe(AppPlugin.addBlueprintDefinitionModule({
68
131
  activate: BlueprintDefinition
69
132
  }), AppPlugin.addMetadataModule({
70
133
  metadata: {
71
- id: Markdown_exports.Document.typename,
134
+ id: Markdown2.Document.typename,
72
135
  metadata: {
136
+ // TODO(dmaretskyi): Remove label, icon and iconHue and query them of schema.
73
137
  label: (object) => object.name || object.fallbackName,
74
- icon: "ph--text-aa--regular",
75
- iconHue: "indigo",
138
+ icon: Annotation.IconAnnotation.get(Markdown2.Document).pipe(Option.getOrThrow).icon,
139
+ iconHue: Annotation.IconAnnotation.get(Markdown2.Document).pipe(Option.getOrThrow).hue ?? "white",
76
140
  blueprints: [
77
- markdown_blueprint_default.key
141
+ MarkdownBlueprint.key
78
142
  ],
79
143
  graphProps: {
80
144
  managesAutofocus: true
@@ -95,20 +159,29 @@ var MarkdownPlugin = Plugin.define(meta).pipe(AppPlugin.addBlueprintDefinitionMo
95
159
  ]), start, end);
96
160
  }
97
161
  },
98
- createObject: (props) => Effect.sync(() => Markdown_exports.make(props))
162
+ createObject: (props, options) => Effect.gen(function* () {
163
+ const object = Markdown2.make(props);
164
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
165
+ object,
166
+ target: options.target,
167
+ hidden: true,
168
+ targetNodeId: options.targetNodeId
169
+ });
170
+ }),
171
+ scrollToAnchor: MarkdownOperation.ScrollToAnchor
99
172
  }
100
173
  }
101
- }), AppPlugin.addOperationResolverModule({
102
- activate: OperationResolver
174
+ }), AppPlugin.addOperationHandlerModule({
175
+ activate: OperationHandler
103
176
  }), AppPlugin.addSchemaModule({
104
177
  schema: [
105
- Markdown_exports.Document,
178
+ Markdown2.Document,
106
179
  Text.Text
107
180
  ]
108
181
  }), AppPlugin.addSurfaceModule({
109
182
  activate: ReactSurface,
110
- activatesBefore: [
111
- MarkdownEvents.SetupExtensions
183
+ firesBeforeActivation: [
184
+ MarkdownEvents2.SetupExtensions
112
185
  ]
113
186
  }), AppPlugin.addTranslationsModule({
114
187
  translations: [
@@ -125,10 +198,6 @@ var MarkdownPlugin = Plugin.define(meta).pipe(AppPlugin.addBlueprintDefinitionMo
125
198
  // Should settings store be renamed to be more generic?
126
199
  activatesOn: AppActivationEvents.SetupSettings,
127
200
  activate: MarkdownState
128
- }), Plugin.addModule({
129
- id: "on-space-created",
130
- activatesOn: SpaceEvents.SpaceCreated,
131
- activate: () => Effect.succeed(Capability7.contributes(SpaceCapabilities.OnCreateSpace, (params) => Operation.invoke(MarkdownOperation.OnCreateSpace, params)))
132
201
  }), Plugin.addModule({
133
202
  activatesOn: AppActivationEvents.AppGraphReady,
134
203
  activate: AppGraphSerializer
@@ -137,15 +206,376 @@ var MarkdownPlugin = Plugin.define(meta).pipe(AppPlugin.addBlueprintDefinitionMo
137
206
  activatesOn: AppActivationEvents.AppGraphReady,
138
207
  activate: AnchorSort
139
208
  }), Plugin.make);
209
+
210
+ // src/components/index.ts
211
+ import { lazy } from "react";
212
+
213
+ // src/components/MarkdownEditor/MarkdownEditor.tsx
214
+ import { createContext } from "@radix-ui/react-context";
215
+ import React4, { useCallback as useCallback3, useMemo as useMemo2, useState as useState2 } from "react";
216
+ import { createPortal as createPortal2 } from "react-dom";
217
+ import { Surface } from "@dxos/app-framework/ui";
218
+ import { AppSurface } from "@dxos/app-toolkit/ui";
219
+ import { Obj as Obj2 } from "@dxos/echo";
220
+ import { DXN } from "@dxos/keys";
221
+ import { useClient } from "@dxos/react-client";
222
+ import { createEditorController, useEditorContext } from "@dxos/react-ui-editor";
223
+ import { composable as composable2, composableProps as composableProps2 } from "@dxos/ui-theme";
224
+ import { isNonNullable } from "@dxos/util";
225
+ import { useEditorMenuOptions, useExtensions } from "#hooks";
226
+
227
+ // src/components/MarkdownEditor/MarkdownEditorContent.tsx
228
+ import { RegistryContext } from "@effect-atom/atom-react";
229
+ import React, { forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useMemo } from "react";
230
+ import { useCapabilities } from "@dxos/app-framework/ui";
231
+ import { useThemeContext, useTranslation } from "@dxos/react-ui";
232
+ import { useTextEditor } from "@dxos/react-ui-editor";
233
+ import { mobileSlots, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, documentSlots, formattingListener, processEditorPayload, editorClassNames } from "@dxos/ui-editor";
234
+ import { mx } from "@dxos/ui-theme";
235
+ import { isTruthy } from "@dxos/util";
236
+ import { meta as meta3 } from "#meta";
237
+ import { MarkdownCapabilities as MarkdownCapabilities2 } from "#types";
238
+ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attendableId, role, compact, viewMode, initialValue, editorStateStore, toolbarState, extensions, slots, onFileUpload }, forwardedRef) => {
239
+ const { t } = useTranslation(meta3.id);
240
+ const { themeMode } = useThemeContext();
241
+ const registry = useContext(RegistryContext);
242
+ const updateToolbarState = useCallback((formatting) => {
243
+ if (toolbarState) {
244
+ registry.set(toolbarState, {
245
+ ...registry.get(toolbarState),
246
+ ...formatting
247
+ });
248
+ }
249
+ }, [
250
+ registry,
251
+ toolbarState
252
+ ]);
253
+ const { scrollTo, selection } = useMemo(() => editorStateStore?.getState(id) ?? {}, [
254
+ id
255
+ ]);
256
+ const { parentRef, view: editorView, focusAttributes } = useTextEditor(() => ({
257
+ ...role !== "section" && {
258
+ id,
259
+ scrollTo,
260
+ selection,
261
+ selectionEnd: true
262
+ },
263
+ initialValue,
264
+ extensions: [
265
+ createBasicExtensions({
266
+ readOnly: viewMode === "readonly",
267
+ placeholder: t("editor.placeholder"),
268
+ scrollPastEnd: !compact,
269
+ search: true
270
+ }),
271
+ createThemeExtensions({
272
+ themeMode,
273
+ slots: slots ?? (compact ? mobileSlots : documentSlots),
274
+ syntaxHighlighting: true
275
+ }),
276
+ createMarkdownExtensions(),
277
+ toolbarState && formattingListener(updateToolbarState),
278
+ role !== "section" && onFileUpload && dropFile({
279
+ // TODO(wittjosiah): Factor out to file uploader plugin.
280
+ onDrop: async (view, { files }) => {
281
+ const file = files[0];
282
+ const info = file && onFileUpload ? await onFileUpload(file) : void 0;
283
+ if (info) {
284
+ processEditorPayload(view, {
285
+ type: "image",
286
+ data: info.url
287
+ });
288
+ }
289
+ }
290
+ }),
291
+ extensions
292
+ ].filter(isTruthy)
293
+ }), [
294
+ id,
295
+ viewMode,
296
+ themeMode,
297
+ extensions
298
+ ]);
299
+ useImperativeHandle(forwardedRef, () => editorView, [
300
+ editorView
301
+ ]);
302
+ const [editorViewRegistry] = useCapabilities(MarkdownCapabilities2.EditorViews);
303
+ useEffect(() => {
304
+ if (editorView && editorViewRegistry) {
305
+ editorViewRegistry.register(attendableId ?? id, editorView, id);
306
+ return () => editorViewRegistry.unregister(attendableId ?? id);
307
+ }
308
+ }, [
309
+ editorView,
310
+ editorViewRegistry,
311
+ attendableId,
312
+ id
313
+ ]);
314
+ useTest(editorView);
315
+ return /* @__PURE__ */ React.createElement("div", {
316
+ ...focusAttributes,
317
+ className: mx(editorClassNames(role), classNames),
318
+ role: "none",
319
+ "data-testid": "composer.markdownRoot",
320
+ "data-popover-collision-boundary": true,
321
+ ref: parentRef
322
+ });
323
+ });
324
+ var useTest = (view) => {
325
+ useEffect(() => {
326
+ const composer = window.composer;
327
+ if (composer) {
328
+ composer.editorView = view;
329
+ }
330
+ }, [
331
+ view
332
+ ]);
333
+ };
334
+
335
+ // src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
336
+ import React3, { useCallback as useCallback2, useState } from "react";
337
+ import { Editor } from "@dxos/react-ui-editor";
338
+ import { composable, composableProps } from "@dxos/ui-theme";
339
+
340
+ // src/components/MarkdownEditor/FileUpload.tsx
341
+ import React2, { forwardRef as forwardRef2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle2 } from "react";
342
+ import { createPortal } from "react-dom";
343
+ import { useDropzone } from "react-dropzone";
344
+ import { addLink } from "@dxos/ui-editor";
345
+ var IMAGE_FILES = [
346
+ ".jpg",
347
+ ".jpeg",
348
+ ".png",
349
+ ".gif"
350
+ ];
351
+ var FileUpload = /* @__PURE__ */ forwardRef2(({ editorView, onFileUpload }, forwardedRef) => {
352
+ const { acceptedFiles, open, inputRef } = useDropzone({
353
+ disabled: !onFileUpload,
354
+ multiple: false,
355
+ noDrag: true,
356
+ accept: {
357
+ "image/*": IMAGE_FILES
358
+ }
359
+ });
360
+ useImperativeHandle2(forwardedRef, () => open, []);
361
+ useEffect2(() => {
362
+ if (editorView && acceptedFiles.length && onFileUpload) {
363
+ requestAnimationFrame(async () => {
364
+ const f = acceptedFiles[0];
365
+ const file = new File([
366
+ f
367
+ ], f.name, {
368
+ type: f.type,
369
+ lastModified: f.lastModified
370
+ });
371
+ const info = await onFileUpload(file);
372
+ if (info) {
373
+ addLink({
374
+ url: info.url,
375
+ image: true
376
+ })(editorView);
377
+ }
378
+ });
379
+ }
380
+ }, [
381
+ editorView,
382
+ acceptedFiles,
383
+ onFileUpload
384
+ ]);
385
+ if (!onFileUpload) {
386
+ return null;
387
+ }
388
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ createPortal(/* @__PURE__ */ React2.createElement("input", {
389
+ ref: inputRef
390
+ }), document.body), " ");
391
+ });
392
+
393
+ // src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
394
+ var MarkdownEditorToolbar = composable(({ id, role, editorView, customActions, onAction, onFileUpload, onViewModeChange, ...props }, forwardedRef) => {
395
+ const { className, ...rest } = composableProps(props);
396
+ const [upload, setUpload] = useState(null);
397
+ const uploadRef = useCallback2((next) => setUpload(() => next), []);
398
+ if (!editorView) {
399
+ return /* @__PURE__ */ React3.createElement("div", {
400
+ className,
401
+ ...rest,
402
+ ref: forwardedRef
403
+ });
404
+ }
405
+ return /* @__PURE__ */ React3.createElement("div", {
406
+ role: "none",
407
+ className: "contents",
408
+ ref: forwardedRef
409
+ }, /* @__PURE__ */ React3.createElement(Editor.Toolbar, {
410
+ ...rest,
411
+ classNames: className,
412
+ attendableId: id,
413
+ role,
414
+ customActions,
415
+ onAction,
416
+ onImageUpload: upload ?? void 0,
417
+ onViewModeChange
418
+ }), onFileUpload && /* @__PURE__ */ React3.createElement(FileUpload, {
419
+ ref: uploadRef,
420
+ editorView,
421
+ onFileUpload
422
+ }));
423
+ });
424
+
425
+ // src/components/MarkdownEditor/MarkdownEditor.tsx
426
+ var [MarkdownEditorContextProvider, useMarkdownEditorContext] = createContext("MarkdownEditor.Context");
427
+ var MarkdownEditorProvider = ({ children, id, attendableId, object, settings, compact, viewMode, selectionManager, editorStateStore, extensions: extensionsProp, slashCommandGroups, onLinkQuery, onSelectObject, onAction, onFileUpload, onViewModeChange }) => {
428
+ const [previewBlocks, setPreviewBlocks] = useState2([]);
429
+ const previewOptions = useMemo2(() => ({
430
+ db: Obj2.isObject(object) ? Obj2.getDatabase(object) : void 0,
431
+ addBlockContainer: (block) => {
432
+ setPreviewBlocks((prev) => [
433
+ ...prev,
434
+ block
435
+ ]);
436
+ },
437
+ removeBlockContainer: ({ link }) => {
438
+ setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.dxn !== link.dxn));
439
+ }
440
+ }), [
441
+ object
442
+ ]);
443
+ const menuOptions = useEditorMenuOptions({
444
+ slashCommandGroups,
445
+ onLinkQuery
446
+ });
447
+ const coreExtensions = useExtensions({
448
+ id,
449
+ object,
450
+ compact,
451
+ viewMode,
452
+ selectionManager,
453
+ editorStateStore,
454
+ previewOptions,
455
+ settings,
456
+ onSelectObject
457
+ });
458
+ const extensions = useMemo2(() => [
459
+ coreExtensions,
460
+ extensionsProp
461
+ ].filter(isNonNullable).flat(), [
462
+ coreExtensions,
463
+ extensionsProp
464
+ ]);
465
+ const editorRootProps = useMemo2(() => ({
466
+ extensions,
467
+ viewMode,
468
+ getMenu: menuOptions.getMenu,
469
+ trigger: menuOptions.trigger,
470
+ placeholder: menuOptions.placeholder,
471
+ ...menuOptions.filter !== void 0 ? {
472
+ filter: menuOptions.filter
473
+ } : {},
474
+ ...menuOptions.triggerKey !== void 0 ? {
475
+ triggerKey: menuOptions.triggerKey
476
+ } : {}
477
+ }), [
478
+ extensions,
479
+ viewMode,
480
+ menuOptions
481
+ ]);
482
+ const markdownContextValue = useMemo2(() => ({
483
+ id,
484
+ attendableId,
485
+ compact,
486
+ viewMode,
487
+ previewBlocks,
488
+ onAction,
489
+ onFileUpload,
490
+ onViewModeChange
491
+ }), [
492
+ id,
493
+ attendableId,
494
+ compact,
495
+ viewMode,
496
+ previewBlocks,
497
+ onAction,
498
+ onFileUpload,
499
+ onViewModeChange
500
+ ]);
501
+ return /* @__PURE__ */ React4.createElement(MarkdownEditorContextProvider, markdownContextValue, children(editorRootProps));
502
+ };
503
+ MarkdownEditorProvider.displayName = "MarkdownEditor.Provider";
504
+ var MARKDOWN_EDITOR_CONTENT_NAME = "MarkdownEditor.Content";
505
+ var MarkdownEditorContent2 = composable2(({ ...props }, _forwardedRef) => {
506
+ const { id, attendableId, compact, viewMode, onFileUpload } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
507
+ const { extensions, setController, state } = useEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
508
+ const handleRef = useCallback3((view) => {
509
+ setController(createEditorController(view));
510
+ }, [
511
+ setController
512
+ ]);
513
+ return /* @__PURE__ */ React4.createElement(MarkdownEditorContent, {
514
+ ...composableProps2(props),
515
+ id,
516
+ attendableId,
517
+ compact,
518
+ viewMode,
519
+ toolbarState: state,
520
+ extensions,
521
+ onFileUpload,
522
+ ref: handleRef
523
+ });
524
+ });
525
+ MarkdownEditorContent2.displayName = MARKDOWN_EDITOR_CONTENT_NAME;
526
+ var MARKDOWN_EDITOR_TOOLBAR_NAME = "MarkdownEditor.Toolbar";
527
+ var MarkdownEditorToolbar2 = (props) => {
528
+ const { id, attendableId, onAction, onFileUpload, onViewModeChange } = useMarkdownEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);
529
+ const { controller } = useEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);
530
+ return /* @__PURE__ */ React4.createElement(MarkdownEditorToolbar, {
531
+ ...props,
532
+ id: attendableId ?? id,
533
+ editorView: controller?.view ?? void 0,
534
+ onAction,
535
+ onFileUpload,
536
+ onViewModeChange
537
+ });
538
+ };
539
+ MarkdownEditorToolbar2.displayName = MARKDOWN_EDITOR_TOOLBAR_NAME;
540
+ var MARKDOWN_EDITOR_BLOCKS_NAME = "MarkdownEditor.Blocks";
541
+ var MarkdownEditorBlocks = (_props) => {
542
+ const { previewBlocks } = useMarkdownEditorContext(MARKDOWN_EDITOR_BLOCKS_NAME);
543
+ return /* @__PURE__ */ React4.createElement(React4.Fragment, null, previewBlocks.map(({ link, el }) => /* @__PURE__ */ React4.createElement(PreviewBlock, {
544
+ key: link.dxn,
545
+ link,
546
+ el
547
+ })));
548
+ };
549
+ MarkdownEditorBlocks.displayName = MARKDOWN_EDITOR_BLOCKS_NAME;
550
+ var PreviewBlock = ({ el, link }) => {
551
+ const client = useClient();
552
+ const dxn = DXN.parse(link.dxn);
553
+ const subject = client.graph.makeRef(dxn).target;
554
+ const data = useMemo2(() => ({
555
+ subject
556
+ }), [
557
+ subject
558
+ ]);
559
+ return /* @__PURE__ */ createPortal2(/* @__PURE__ */ React4.createElement(Surface.Surface, {
560
+ type: AppSurface.Card,
561
+ data,
562
+ limit: 1
563
+ }), el);
564
+ };
565
+ var MarkdownEditor = {
566
+ Content: MarkdownEditorContent2,
567
+ Toolbar: MarkdownEditorToolbar2,
568
+ Blocks: MarkdownEditorBlocks
569
+ };
570
+
571
+ // src/components/index.ts
572
+ var MarkdownSettings2 = lazy(() => import("./MarkdownSettings-YCTZJL5V.mjs"));
140
573
  export {
141
- Markdown_exports as Markdown,
142
- MarkdownAction_exports as MarkdownAction,
143
574
  MarkdownCapabilities,
144
575
  MarkdownEditor,
576
+ MarkdownEditorProvider,
145
577
  MarkdownEvents,
146
- MarkdownOperation,
147
578
  MarkdownPlugin,
148
- MarkdownStateSchema,
149
579
  getContentSnippet,
150
580
  getFallbackName,
151
581
  isEditorModel,