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