@dxos/plugin-markdown 0.8.3 → 0.8.4-main.1068cf700f

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 (395) hide show
  1. package/dist/lib/browser/MarkdownCard-7VIO7R66.mjs +11 -0
  2. package/dist/lib/browser/MarkdownCard-7VIO7R66.mjs.map +7 -0
  3. package/dist/lib/browser/MarkdownContainer-6E43EDAU.mjs +11 -0
  4. package/dist/lib/browser/MarkdownContainer-6E43EDAU.mjs.map +7 -0
  5. package/dist/lib/browser/anchor-sort-JBAZRPE7.mjs +33 -0
  6. package/dist/lib/browser/anchor-sort-JBAZRPE7.mjs.map +7 -0
  7. package/dist/lib/browser/app-graph-serializer-6Q5YBUPW.mjs +59 -0
  8. package/dist/lib/browser/app-graph-serializer-6Q5YBUPW.mjs.map +7 -0
  9. package/dist/lib/browser/blueprint-definition-6HOAW2E6.mjs +20 -0
  10. package/dist/lib/browser/blueprint-definition-6HOAW2E6.mjs.map +7 -0
  11. package/dist/lib/browser/blueprints/index.mjs +8 -0
  12. package/dist/lib/browser/blueprints/index.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-D767LUGU.mjs → chunk-2AAD3W6X.mjs} +21 -15
  14. package/dist/lib/browser/chunk-2AAD3W6X.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-4GT3QWMK.mjs +167 -0
  16. package/dist/lib/browser/chunk-4GT3QWMK.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-6SM75KL3.mjs +8 -0
  18. package/dist/lib/browser/chunk-6SM75KL3.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-7AQTX6D5.mjs +105 -0
  20. package/dist/lib/browser/chunk-7AQTX6D5.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-EZZFREFN.mjs +58 -0
  22. package/dist/lib/browser/chunk-EZZFREFN.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-HHRUUWGH.mjs +796 -0
  24. package/dist/lib/browser/chunk-HHRUUWGH.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-HQTBT5IY.mjs +176 -0
  26. package/dist/lib/browser/chunk-HQTBT5IY.mjs.map +7 -0
  27. package/dist/lib/browser/cli/index.mjs +33 -0
  28. package/dist/lib/browser/cli/index.mjs.map +7 -0
  29. package/dist/lib/browser/index.mjs +132 -137
  30. package/dist/lib/browser/index.mjs.map +4 -4
  31. package/dist/lib/browser/meta.json +1 -1
  32. package/dist/lib/browser/operation-resolver-UBQUPSXC.mjs +53 -0
  33. package/dist/lib/browser/operation-resolver-UBQUPSXC.mjs.map +7 -0
  34. package/dist/lib/browser/react-surface-7Z6AB26V.mjs +213 -0
  35. package/dist/lib/browser/react-surface-7Z6AB26V.mjs.map +7 -0
  36. package/dist/lib/browser/settings-V2XOFSD5.mjs +36 -0
  37. package/dist/lib/browser/settings-V2XOFSD5.mjs.map +7 -0
  38. package/dist/lib/browser/state-6Y3JB64H.mjs +29 -0
  39. package/dist/lib/browser/state-6Y3JB64H.mjs.map +7 -0
  40. package/dist/lib/browser/types/index.mjs +13 -14
  41. package/dist/lib/node-esm/MarkdownCard-YC3R2TQW.mjs +12 -0
  42. package/dist/lib/node-esm/MarkdownCard-YC3R2TQW.mjs.map +7 -0
  43. package/dist/lib/node-esm/MarkdownContainer-TTRUOXU6.mjs +12 -0
  44. package/dist/lib/node-esm/MarkdownContainer-TTRUOXU6.mjs.map +7 -0
  45. package/dist/lib/node-esm/anchor-sort-IQMDZRA3.mjs +34 -0
  46. package/dist/lib/node-esm/anchor-sort-IQMDZRA3.mjs.map +7 -0
  47. package/dist/lib/node-esm/app-graph-serializer-STEPJH57.mjs +60 -0
  48. package/dist/lib/node-esm/app-graph-serializer-STEPJH57.mjs.map +7 -0
  49. package/dist/lib/node-esm/blueprint-definition-UGDFF5OZ.mjs +21 -0
  50. package/dist/lib/node-esm/blueprint-definition-UGDFF5OZ.mjs.map +7 -0
  51. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  52. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-AGZOFIK2.mjs +10 -0
  54. package/dist/lib/node-esm/chunk-AGZOFIK2.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-D46D75SK.mjs +797 -0
  56. package/dist/lib/node-esm/chunk-D46D75SK.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-DCKB3AVD.mjs +59 -0
  58. package/dist/lib/node-esm/chunk-DCKB3AVD.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-K2IIYNCG.mjs +106 -0
  60. package/dist/lib/node-esm/chunk-K2IIYNCG.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-LOZVC2WA.mjs +177 -0
  62. package/dist/lib/node-esm/chunk-LOZVC2WA.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-BWDDFDJY.mjs → chunk-MLZQCT2N.mjs} +21 -15
  64. package/dist/lib/node-esm/chunk-MLZQCT2N.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-USKAPINH.mjs +168 -0
  66. package/dist/lib/node-esm/chunk-USKAPINH.mjs.map +7 -0
  67. package/dist/lib/node-esm/cli/index.mjs +34 -0
  68. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  69. package/dist/lib/node-esm/index.mjs +132 -137
  70. package/dist/lib/node-esm/index.mjs.map +4 -4
  71. package/dist/lib/node-esm/meta.json +1 -1
  72. package/dist/lib/node-esm/operation-resolver-QAGXDA5E.mjs +54 -0
  73. package/dist/lib/node-esm/operation-resolver-QAGXDA5E.mjs.map +7 -0
  74. package/dist/lib/node-esm/react-surface-VIXAH5CF.mjs +214 -0
  75. package/dist/lib/node-esm/react-surface-VIXAH5CF.mjs.map +7 -0
  76. package/dist/lib/node-esm/settings-EXSH2KF4.mjs +37 -0
  77. package/dist/lib/node-esm/settings-EXSH2KF4.mjs.map +7 -0
  78. package/dist/lib/node-esm/state-TVF2XT2T.mjs +30 -0
  79. package/dist/lib/node-esm/state-TVF2XT2T.mjs.map +7 -0
  80. package/dist/lib/node-esm/types/index.mjs +13 -14
  81. package/dist/types/src/MarkdownPlugin.d.ts +2 -1
  82. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  83. package/dist/types/src/blueprints/functions/create.d.ts +8 -0
  84. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
  85. package/dist/types/src/blueprints/functions/create.test.d.ts +2 -0
  86. package/dist/types/src/blueprints/functions/create.test.d.ts.map +1 -0
  87. package/dist/types/src/blueprints/functions/index.d.ts +4 -0
  88. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  89. package/dist/types/src/blueprints/functions/open.d.ts +14 -0
  90. package/dist/types/src/blueprints/functions/open.d.ts.map +1 -0
  91. package/dist/types/src/blueprints/functions/update.d.ts +19 -0
  92. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
  93. package/dist/types/src/blueprints/functions/update.test.d.ts +2 -0
  94. package/dist/types/src/blueprints/functions/update.test.d.ts.map +1 -0
  95. package/dist/types/src/blueprints/index.d.ts +2 -0
  96. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  97. package/dist/types/src/blueprints/markdown-blueprint.d.ts +21 -0
  98. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +6 -0
  100. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/anchor-sort/index.d.ts +3 -0
  102. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +5 -0
  104. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +3 -0
  106. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +5 -0
  108. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  110. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +11 -0
  112. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  114. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/index.d.ts +7 -16
  116. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  118. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  120. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  122. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  123. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  124. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  125. package/dist/types/src/capabilities/settings/index.d.ts +3 -0
  126. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/settings/settings.d.ts +7 -0
  128. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  129. package/dist/types/src/capabilities/state/index.d.ts +3 -0
  130. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  131. package/dist/types/src/capabilities/state/state.d.ts +5 -0
  132. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  133. package/dist/types/src/cli/index.d.ts +2 -0
  134. package/dist/types/src/cli/index.d.ts.map +1 -0
  135. package/dist/types/src/cli/plugin.d.ts +3 -0
  136. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  137. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +8 -0
  138. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  139. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
  140. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  141. package/dist/types/src/components/MarkdownCard/index.d.ts +4 -0
  142. package/dist/types/src/components/MarkdownCard/index.d.ts.map +1 -0
  143. package/dist/types/src/components/MarkdownContainer.d.ts +22 -12
  144. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  145. package/dist/types/src/components/MarkdownContainer.stories.d.ts +84 -5
  146. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  147. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +11 -0
  148. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -0
  149. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +43 -23
  150. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  151. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +8 -15
  152. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  153. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +30 -0
  154. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -0
  155. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +12 -0
  156. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -0
  157. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +6 -4
  158. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  159. package/dist/types/src/components/Suggestions.stories.d.ts +4 -5
  160. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  161. package/dist/types/src/components/index.d.ts +7 -2
  162. package/dist/types/src/components/index.d.ts.map +1 -1
  163. package/dist/types/src/hooks/index.d.ts +3 -0
  164. package/dist/types/src/hooks/index.d.ts.map +1 -1
  165. package/dist/types/src/hooks/useEditorMenuOptions.d.ts +9 -0
  166. package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -0
  167. package/dist/types/src/hooks/useExtensions.d.ts +21 -0
  168. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -0
  169. package/dist/types/src/hooks/useLinkQuery.d.ts +4 -0
  170. package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -0
  171. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +1 -1
  172. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
  173. package/dist/types/src/index.d.ts +4 -3
  174. package/dist/types/src/index.d.ts.map +1 -1
  175. package/dist/types/src/meta.d.ts +2 -3
  176. package/dist/types/src/meta.d.ts.map +1 -1
  177. package/dist/types/src/testing.d.ts +6 -0
  178. package/dist/types/src/testing.d.ts.map +1 -0
  179. package/dist/types/src/translations.d.ts +69 -80
  180. package/dist/types/src/translations.d.ts.map +1 -1
  181. package/dist/types/src/types/Markdown.d.ts +45 -0
  182. package/dist/types/src/types/Markdown.d.ts.map +1 -0
  183. package/dist/types/src/types/MarkdownAction.d.ts +66 -0
  184. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -0
  185. package/dist/types/src/types/capabilities.d.ts +22 -0
  186. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  187. package/dist/types/src/types/events.d.ts +5 -0
  188. package/dist/types/src/types/events.d.ts.map +1 -0
  189. package/dist/types/src/types/index.d.ts +5 -1
  190. package/dist/types/src/types/index.d.ts.map +1 -1
  191. package/dist/types/src/types/types.d.ts +4 -59
  192. package/dist/types/src/types/types.d.ts.map +1 -1
  193. package/dist/types/src/util.d.ts +17 -5
  194. package/dist/types/src/util.d.ts.map +1 -1
  195. package/dist/types/src/util.test.d.ts +2 -0
  196. package/dist/types/src/util.test.d.ts.map +1 -0
  197. package/dist/types/tsconfig.tsbuildinfo +1 -1
  198. package/package.json +99 -58
  199. package/src/MarkdownPlugin.tsx +83 -104
  200. package/src/blueprints/functions/create.conversations.json +1 -0
  201. package/src/blueprints/functions/create.test.ts +92 -0
  202. package/src/blueprints/functions/create.ts +35 -0
  203. package/src/blueprints/functions/index.ts +7 -0
  204. package/src/blueprints/functions/open.ts +33 -0
  205. package/src/blueprints/functions/update.conversations.json +1 -0
  206. package/src/blueprints/functions/update.test.ts +215 -0
  207. package/src/blueprints/functions/update.ts +79 -0
  208. package/src/blueprints/index.ts +5 -0
  209. package/src/blueprints/markdown-blueprint.ts +38 -0
  210. package/src/capabilities/anchor-sort/anchor-sort.ts +37 -0
  211. package/src/capabilities/anchor-sort/index.ts +7 -0
  212. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +60 -0
  213. package/src/capabilities/app-graph-serializer/index.ts +7 -0
  214. package/src/capabilities/artifact-definition/artifact-definition.ts +110 -0
  215. package/src/capabilities/artifact-definition/index.ts +7 -0
  216. package/src/capabilities/blueprint-definition/blueprint-definition.ts +26 -0
  217. package/src/capabilities/blueprint-definition/index.ts +7 -0
  218. package/src/capabilities/index.ts +7 -11
  219. package/src/capabilities/operation-resolver/index.ts +7 -0
  220. package/src/capabilities/operation-resolver/operation-resolver.ts +45 -0
  221. package/src/capabilities/react-surface/index.ts +7 -0
  222. package/src/capabilities/react-surface/react-surface.tsx +102 -0
  223. package/src/capabilities/settings/index.ts +7 -0
  224. package/src/capabilities/settings/settings.ts +37 -0
  225. package/src/capabilities/state/index.ts +7 -0
  226. package/src/capabilities/state/state.ts +31 -0
  227. package/src/cli/index.ts +5 -0
  228. package/src/cli/plugin.ts +30 -0
  229. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +58 -0
  230. package/src/components/MarkdownCard/MarkdownCard.tsx +64 -0
  231. package/src/components/MarkdownCard/index.ts +9 -0
  232. package/src/components/MarkdownContainer.stories.tsx +82 -62
  233. package/src/components/MarkdownContainer.tsx +106 -234
  234. package/src/components/MarkdownEditor/FileUpload.tsx +63 -0
  235. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +59 -37
  236. package/src/components/MarkdownEditor/MarkdownEditor.tsx +226 -272
  237. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +162 -0
  238. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +66 -0
  239. package/src/components/MarkdownSettings/MarkdownSettings.tsx +97 -80
  240. package/src/components/Suggestions.stories.tsx +74 -74
  241. package/src/components/index.ts +10 -3
  242. package/src/hooks/index.ts +3 -0
  243. package/src/hooks/useEditorMenuOptions.ts +68 -0
  244. package/src/{extensions.tsx → hooks/useExtensions.tsx} +96 -145
  245. package/src/hooks/useLinkQuery.ts +83 -0
  246. package/src/hooks/useSelectCurrentThread.tsx +39 -34
  247. package/src/index.ts +7 -3
  248. package/src/meta.ts +9 -10
  249. package/src/testing.ts +27 -0
  250. package/src/translations.ts +16 -7
  251. package/src/types/Markdown.ts +57 -0
  252. package/src/types/MarkdownAction.ts +59 -0
  253. package/src/types/capabilities.ts +38 -0
  254. package/src/types/events.ts +14 -0
  255. package/src/types/index.ts +6 -1
  256. package/src/types/types.ts +7 -50
  257. package/src/util.test.ts +44 -0
  258. package/src/util.tsx +100 -11
  259. package/dist/lib/browser/MarkdownContainer-EFWQ6DHD.mjs +0 -770
  260. package/dist/lib/browser/MarkdownContainer-EFWQ6DHD.mjs.map +0 -7
  261. package/dist/lib/browser/MarkdownPreview-F4PYFW5L.mjs +0 -80
  262. package/dist/lib/browser/MarkdownPreview-F4PYFW5L.mjs.map +0 -7
  263. package/dist/lib/browser/anchor-sort-BMAN2ABT.mjs +0 -32
  264. package/dist/lib/browser/anchor-sort-BMAN2ABT.mjs.map +0 -7
  265. package/dist/lib/browser/app-graph-serializer-EI6TEHRQ.mjs +0 -52
  266. package/dist/lib/browser/app-graph-serializer-EI6TEHRQ.mjs.map +0 -7
  267. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs +0 -145
  268. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs.map +0 -7
  269. package/dist/lib/browser/chunk-354IBM5X.mjs +0 -20
  270. package/dist/lib/browser/chunk-354IBM5X.mjs.map +0 -7
  271. package/dist/lib/browser/chunk-D767LUGU.mjs.map +0 -7
  272. package/dist/lib/browser/chunk-JX6XNEHE.mjs +0 -22
  273. package/dist/lib/browser/chunk-JX6XNEHE.mjs.map +0 -7
  274. package/dist/lib/browser/chunk-LXSRQPEP.mjs +0 -51
  275. package/dist/lib/browser/chunk-LXSRQPEP.mjs.map +0 -7
  276. package/dist/lib/browser/chunk-N2D26K6W.mjs +0 -79
  277. package/dist/lib/browser/chunk-N2D26K6W.mjs.map +0 -7
  278. package/dist/lib/browser/chunk-QVJETNGS.mjs +0 -16
  279. package/dist/lib/browser/chunk-QVJETNGS.mjs.map +0 -7
  280. package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs +0 -64
  281. package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs.map +0 -7
  282. package/dist/lib/browser/react-surface-4B5ELMEW.mjs +0 -205
  283. package/dist/lib/browser/react-surface-4B5ELMEW.mjs.map +0 -7
  284. package/dist/lib/browser/settings-PLH54VC7.mjs +0 -28
  285. package/dist/lib/browser/settings-PLH54VC7.mjs.map +0 -7
  286. package/dist/lib/browser/state-KI6PJ6DT.mjs +0 -37
  287. package/dist/lib/browser/state-KI6PJ6DT.mjs.map +0 -7
  288. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs +0 -783
  289. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs.map +0 -7
  290. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs +0 -103
  291. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs.map +0 -7
  292. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs +0 -48
  293. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs.map +0 -7
  294. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs +0 -65
  295. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs.map +0 -7
  296. package/dist/lib/node/artifact-definition-U27MH5SC.cjs +0 -158
  297. package/dist/lib/node/artifact-definition-U27MH5SC.cjs.map +0 -7
  298. package/dist/lib/node/chunk-3HHV4MM6.cjs +0 -101
  299. package/dist/lib/node/chunk-3HHV4MM6.cjs.map +0 -7
  300. package/dist/lib/node/chunk-CJLYFGPI.cjs +0 -74
  301. package/dist/lib/node/chunk-CJLYFGPI.cjs.map +0 -7
  302. package/dist/lib/node/chunk-FU3XZZCO.cjs +0 -58
  303. package/dist/lib/node/chunk-FU3XZZCO.cjs.map +0 -7
  304. package/dist/lib/node/chunk-IFYSBQE5.cjs +0 -35
  305. package/dist/lib/node/chunk-IFYSBQE5.cjs.map +0 -7
  306. package/dist/lib/node/chunk-LQAC5HL7.cjs +0 -68
  307. package/dist/lib/node/chunk-LQAC5HL7.cjs.map +0 -7
  308. package/dist/lib/node/chunk-ZU5OIHCY.cjs +0 -45
  309. package/dist/lib/node/chunk-ZU5OIHCY.cjs.map +0 -7
  310. package/dist/lib/node/index.cjs +0 -165
  311. package/dist/lib/node/index.cjs.map +0 -7
  312. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs +0 -77
  313. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs.map +0 -7
  314. package/dist/lib/node/meta.json +0 -1
  315. package/dist/lib/node/react-surface-456HQ4KZ.cjs +0 -218
  316. package/dist/lib/node/react-surface-456HQ4KZ.cjs.map +0 -7
  317. package/dist/lib/node/settings-E3NUTXJ4.cjs +0 -42
  318. package/dist/lib/node/settings-E3NUTXJ4.cjs.map +0 -7
  319. package/dist/lib/node/state-KKDRAG7X.cjs +0 -51
  320. package/dist/lib/node/state-KKDRAG7X.cjs.map +0 -7
  321. package/dist/lib/node/types/index.cjs +0 -40
  322. package/dist/lib/node/types/index.cjs.map +0 -7
  323. package/dist/lib/node-esm/MarkdownContainer-O3SGMH4G.mjs +0 -771
  324. package/dist/lib/node-esm/MarkdownContainer-O3SGMH4G.mjs.map +0 -7
  325. package/dist/lib/node-esm/MarkdownPreview-KFDRV4GC.mjs +0 -81
  326. package/dist/lib/node-esm/MarkdownPreview-KFDRV4GC.mjs.map +0 -7
  327. package/dist/lib/node-esm/anchor-sort-BXL7BE67.mjs +0 -33
  328. package/dist/lib/node-esm/anchor-sort-BXL7BE67.mjs.map +0 -7
  329. package/dist/lib/node-esm/app-graph-serializer-F7DGNF3G.mjs +0 -53
  330. package/dist/lib/node-esm/app-graph-serializer-F7DGNF3G.mjs.map +0 -7
  331. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs +0 -146
  332. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs.map +0 -7
  333. package/dist/lib/node-esm/chunk-BWDDFDJY.mjs.map +0 -7
  334. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs +0 -17
  335. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs.map +0 -7
  336. package/dist/lib/node-esm/chunk-K26TX5V4.mjs +0 -52
  337. package/dist/lib/node-esm/chunk-K26TX5V4.mjs.map +0 -7
  338. package/dist/lib/node-esm/chunk-RX63ZNML.mjs +0 -24
  339. package/dist/lib/node-esm/chunk-RX63ZNML.mjs.map +0 -7
  340. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs +0 -80
  341. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs.map +0 -7
  342. package/dist/lib/node-esm/chunk-YOABAQ7A.mjs +0 -22
  343. package/dist/lib/node-esm/chunk-YOABAQ7A.mjs.map +0 -7
  344. package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs +0 -65
  345. package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs.map +0 -7
  346. package/dist/lib/node-esm/react-surface-YHFOQTVO.mjs +0 -206
  347. package/dist/lib/node-esm/react-surface-YHFOQTVO.mjs.map +0 -7
  348. package/dist/lib/node-esm/settings-SIY33P3F.mjs +0 -29
  349. package/dist/lib/node-esm/settings-SIY33P3F.mjs.map +0 -7
  350. package/dist/lib/node-esm/state-LLGVRYKL.mjs +0 -38
  351. package/dist/lib/node-esm/state-LLGVRYKL.mjs.map +0 -7
  352. package/dist/types/src/capabilities/anchor-sort.d.ts +0 -6
  353. package/dist/types/src/capabilities/anchor-sort.d.ts.map +0 -1
  354. package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -4
  355. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
  356. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  357. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  358. package/dist/types/src/capabilities/capabilities.d.ts +0 -12
  359. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  360. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  361. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  362. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  363. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  364. package/dist/types/src/capabilities/settings.d.ts +0 -4
  365. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  366. package/dist/types/src/capabilities/state.d.ts +0 -11
  367. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  368. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +0 -6
  369. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +0 -1
  370. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -17
  371. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +0 -1
  372. package/dist/types/src/components/MarkdownPreview/index.d.ts +0 -4
  373. package/dist/types/src/components/MarkdownPreview/index.d.ts.map +0 -1
  374. package/dist/types/src/components/Toolbar.stories.d.ts +0 -11
  375. package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
  376. package/dist/types/src/events.d.ts +0 -4
  377. package/dist/types/src/events.d.ts.map +0 -1
  378. package/dist/types/src/extensions.d.ts +0 -24
  379. package/dist/types/src/extensions.d.ts.map +0 -1
  380. package/dist/types/src/types/schema.d.ts +0 -35
  381. package/dist/types/src/types/schema.d.ts.map +0 -1
  382. package/src/capabilities/anchor-sort.ts +0 -30
  383. package/src/capabilities/app-graph-serializer.ts +0 -52
  384. package/src/capabilities/artifact-definition.ts +0 -116
  385. package/src/capabilities/capabilities.ts +0 -20
  386. package/src/capabilities/intent-resolver.ts +0 -63
  387. package/src/capabilities/react-surface.tsx +0 -113
  388. package/src/capabilities/settings.ts +0 -25
  389. package/src/capabilities/state.ts +0 -31
  390. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -74
  391. package/src/components/MarkdownPreview/MarkdownPreview.tsx +0 -71
  392. package/src/components/MarkdownPreview/index.ts +0 -9
  393. package/src/components/Toolbar.stories.tsx +0 -113
  394. package/src/events.ts +0 -11
  395. package/src/types/schema.ts +0 -39
@@ -1,783 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var MarkdownContainer_KYGUEZIL_exports = {};
30
- __export(MarkdownContainer_KYGUEZIL_exports, {
31
- DocumentEditor: () => DocumentEditor,
32
- default: () => MarkdownContainer_default
33
- });
34
- module.exports = __toCommonJS(MarkdownContainer_KYGUEZIL_exports);
35
- var import_chunk_FU3XZZCO = require("./chunk-FU3XZZCO.cjs");
36
- var import_chunk_IFYSBQE5 = require("./chunk-IFYSBQE5.cjs");
37
- var import_chunk_CJLYFGPI = require("./chunk-CJLYFGPI.cjs");
38
- var import_chunk_3HHV4MM6 = require("./chunk-3HHV4MM6.cjs");
39
- var import_chunk_ZU5OIHCY = require("./chunk-ZU5OIHCY.cjs");
40
- var import_tracking = require("@preact-signals/safe-react/tracking");
41
- var import_rx_react = require("@effect-rx/rx-react");
42
- var import_react = __toESM(require("react"));
43
- var import_react_dom = require("react-dom");
44
- var import_app_framework = require("@dxos/app-framework");
45
- var import_echo = require("@dxos/echo");
46
- var import_plugin_space = require("@dxos/plugin-space");
47
- var import_echo2 = require("@dxos/react-client/echo");
48
- var import_react_ui = require("@dxos/react-ui");
49
- var import_react_ui_editor = require("@dxos/react-ui-editor");
50
- var import_schema = require("@dxos/schema");
51
- var import_tracking2 = require("@preact-signals/safe-react/tracking");
52
- var import_react2 = __toESM(require("react"));
53
- var import_react_dropzone = require("react-dropzone");
54
- var import_invariant = require("@dxos/invariant");
55
- var import_react_ui2 = require("@dxos/react-ui");
56
- var import_react_ui_editor2 = require("@dxos/react-ui-editor");
57
- var import_react_ui_stack = require("@dxos/react-ui-stack");
58
- var import_util = require("@dxos/util");
59
- var import_view = require("@codemirror/view");
60
- var import_effect = require("effect");
61
- var import_react3 = require("react");
62
- var import_app_framework2 = require("@dxos/app-framework");
63
- var import_invariant2 = require("@dxos/invariant");
64
- var import_react_ui_editor3 = require("@dxos/react-ui-editor");
65
- var import_react4 = __toESM(require("react"));
66
- var import_client = require("react-dom/client");
67
- var import_app_framework3 = require("@dxos/app-framework");
68
- var import_invariant3 = require("@dxos/invariant");
69
- var import_echo3 = require("@dxos/react-client/echo");
70
- var import_halo = require("@dxos/react-client/halo");
71
- var import_react_ui3 = require("@dxos/react-ui");
72
- var import_react_ui_editor4 = require("@dxos/react-ui-editor");
73
- var import_react_ui_theme = require("@dxos/react-ui-theme");
74
- var import_util2 = require("@dxos/util");
75
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
76
- var useSelectCurrentThread = (editorView, documentId2) => {
77
- const scrollIntoViewResolver = (0, import_react3.useMemo)(() => (0, import_app_framework2.createResolver)({
78
- intent: import_app_framework2.LayoutAction.UpdateLayout,
79
- position: "hoist",
80
- filter: (data) => {
81
- if (!import_effect.Schema.is(import_app_framework2.LayoutAction.ScrollIntoView.fields.input)(data)) {
82
- return false;
83
- }
84
- return !!editorView && data.subject === documentId2 && !!data.options?.cursor;
85
- },
86
- resolve: ({ options: { cursor } }) => {
87
- (0, import_invariant2.invariant)(editorView, "Editor view is not defined.", {
88
- F: __dxlog_file,
89
- L: 32,
90
- S: void 0,
91
- A: [
92
- "editorView",
93
- "'Editor view is not defined.'"
94
- ]
95
- });
96
- const range = import_react_ui_editor3.Cursor.getRangeFromCursor(editorView.state, cursor);
97
- if (range) {
98
- const selection = editorView.state.selection.main.from !== range.from ? {
99
- anchor: range.from
100
- } : void 0;
101
- const effects = [
102
- // NOTE: This does not use the DOM scrollIntoView function.
103
- import_view.EditorView.scrollIntoView(range.from, {
104
- y: "start",
105
- yMargin: 96
106
- })
107
- ];
108
- if (selection) {
109
- effects.push(import_react_ui_editor3.setSelection.of({
110
- current: documentId2
111
- }));
112
- }
113
- editorView.dispatch({
114
- effects,
115
- selection: selection ? {
116
- anchor: range.from
117
- } : void 0
118
- });
119
- }
120
- }
121
- }), [
122
- documentId2,
123
- editorView
124
- ]);
125
- (0, import_app_framework2.useIntentResolver)(import_chunk_ZU5OIHCY.MARKDOWN_PLUGIN, scrollIntoViewResolver);
126
- };
127
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
128
- var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery, ...props }) => {
129
- var _effect = (0, import_tracking2.useSignals)();
130
- try {
131
- const { t } = (0, import_react_ui2.useTranslation)();
132
- const viewRef = (0, import_react2.useRef)();
133
- const getMenu = (0, import_react2.useCallback)((trigger, query) => {
134
- switch (trigger) {
135
- case "@":
136
- return onLinkQuery?.(query) ?? [];
137
- case "/":
138
- default:
139
- return (0, import_react_ui_editor2.filterItems)([
140
- import_react_ui_editor2.coreSlashCommands,
141
- import_react_ui_editor2.linkSlashCommands,
142
- ...slashCommandGroups ?? []
143
- ], (item) => query ? (0, import_react_ui2.toLocalizedString)(item.label, t).toLowerCase().includes(query.toLowerCase()) : true);
144
- }
145
- }, [
146
- onLinkQuery,
147
- slashCommandGroups
148
- ]);
149
- const options = (0, import_react2.useMemo)(() => {
150
- const trigger = onLinkQuery ? [
151
- "/",
152
- "@"
153
- ] : [
154
- "/"
155
- ];
156
- return {
157
- viewRef,
158
- trigger,
159
- placeholder: {
160
- delay: 3e3,
161
- content: () => {
162
- return (0, import_react_ui_editor2.createElement)("div", void 0, [
163
- (0, import_react_ui_editor2.createElement)("span", {
164
- text: "Press"
165
- }),
166
- ...trigger.map((text) => (0, import_react_ui_editor2.createElement)("span", {
167
- className: "border border-separator rounded-sm mx-1 px-1.5 pt-[1px] pb-[2px]",
168
- text
169
- })),
170
- (0, import_react_ui_editor2.createElement)("span", {
171
- text: "for commands."
172
- })
173
- ]);
174
- }
175
- },
176
- getMenu
177
- };
178
- }, [
179
- getMenu
180
- ]);
181
- const { commandMenu, groupsRef, currentItem, onSelect, ...refPopoverProps } = (0, import_react_ui_editor2.useCommandMenu)(options);
182
- const extensions = (0, import_react2.useMemo)(() => [
183
- _extensions,
184
- commandMenu
185
- ].filter(import_util.isNotFalsy), [
186
- _extensions,
187
- commandMenu
188
- ]);
189
- return /* @__PURE__ */ import_react2.default.createElement(import_react_ui_editor2.RefPopover, {
190
- modal: false,
191
- ...refPopoverProps
192
- }, /* @__PURE__ */ import_react2.default.createElement(MarkdownEditorImpl, {
193
- ref: viewRef,
194
- ...props,
195
- extensions
196
- }), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_editor2.CommandMenu, {
197
- groups: groupsRef.current,
198
- currentItem,
199
- onSelect
200
- }));
201
- } finally {
202
- _effect.f();
203
- }
204
- };
205
- var MarkdownEditorImpl = /* @__PURE__ */ (0, import_react2.forwardRef)(({ id, role = "article", initialValue, customActions, editorStateStore, extensions, extensionProviders, scrollPastEnd, toolbar, viewMode, onFileUpload, onViewModeChange }, forwardedRef) => {
206
- var _effect = (0, import_tracking2.useSignals)();
207
- try {
208
- const { t } = (0, import_react_ui2.useTranslation)(import_chunk_ZU5OIHCY.MARKDOWN_PLUGIN);
209
- const { themeMode } = (0, import_react_ui2.useThemeContext)();
210
- const toolbarState = (0, import_react_ui_editor2.useEditorToolbarState)({
211
- viewMode
212
- });
213
- const formattingObserver = (0, import_react_ui_editor2.useFormattingState)(toolbarState);
214
- const { scrollTo, selection } = (0, import_react2.useMemo)(() => editorStateStore?.getState(id) ?? {}, [
215
- id
216
- ]);
217
- const providerExtensions = (0, import_react2.useMemo)(() => extensionProviders?.flatMap((provider) => provider({})).filter(import_util.isNonNullable), [
218
- extensionProviders
219
- ]);
220
- const handleDrop = async (view, { files }) => {
221
- const file = files[0];
222
- const info = file && onFileUpload ? await onFileUpload(file) : void 0;
223
- if (info) {
224
- (0, import_react_ui_editor2.processEditorPayload)(view, {
225
- type: "image",
226
- data: info.url
227
- });
228
- }
229
- };
230
- const { parentRef, view: editorView, focusAttributes } = (0, import_react_ui_editor2.useTextEditor)(() => ({
231
- initialValue,
232
- extensions: [
233
- formattingObserver,
234
- (0, import_react_ui_editor2.createBasicExtensions)({
235
- readOnly: viewMode === "readonly",
236
- placeholder: t("editor placeholder"),
237
- scrollPastEnd: role === "section" ? false : scrollPastEnd
238
- }),
239
- (0, import_react_ui_editor2.createMarkdownExtensions)({
240
- themeMode
241
- }),
242
- (0, import_react_ui_editor2.createThemeExtensions)({
243
- themeMode,
244
- syntaxHighlighting: true,
245
- slots: import_react_ui_editor2.editorSlots
246
- }),
247
- import_react_ui_editor2.editorGutter,
248
- role !== "section" && onFileUpload && (0, import_react_ui_editor2.dropFile)({
249
- onDrop: handleDrop
250
- }),
251
- providerExtensions,
252
- extensions
253
- ].filter(import_util.isNotFalsy),
254
- ...role !== "section" && {
255
- id,
256
- scrollTo,
257
- selection,
258
- // TODO(wittjosiah): Autofocus based on layout is racy.
259
- // autoFocus: layoutPlugin?.provides.layout ? layoutPlugin?.provides.layout.scrollIntoView === id : true,
260
- moveToEndOfLine: true
261
- }
262
- }), [
263
- id,
264
- formattingObserver,
265
- viewMode,
266
- themeMode,
267
- extensions,
268
- providerExtensions
269
- ]);
270
- (0, import_react2.useImperativeHandle)(forwardedRef, () => editorView, [
271
- editorView
272
- ]);
273
- useTest(editorView);
274
- useSelectCurrentThread(editorView, id);
275
- const { acceptedFiles, getInputProps, open } = (0, import_react_dropzone.useDropzone)({
276
- multiple: false,
277
- noDrag: true,
278
- accept: {
279
- "image/*": [
280
- ".jpg",
281
- ".jpeg",
282
- ".png",
283
- ".gif"
284
- ]
285
- }
286
- });
287
- (0, import_react2.useEffect)(() => {
288
- if (editorView && onFileUpload && acceptedFiles.length) {
289
- requestAnimationFrame(async () => {
290
- const f = acceptedFiles[0];
291
- const file = new File([
292
- f
293
- ], f.name, {
294
- type: f.type,
295
- lastModified: f.lastModified
296
- });
297
- const info = await onFileUpload(file);
298
- if (info) {
299
- (0, import_react_ui_editor2.addLink)({
300
- url: info.url,
301
- image: true
302
- })(editorView);
303
- }
304
- });
305
- }
306
- }, [
307
- acceptedFiles,
308
- editorView,
309
- onFileUpload
310
- ]);
311
- const getView = (0, import_react2.useCallback)(() => {
312
- (0, import_invariant.invariant)(editorView, void 0, {
313
- F: __dxlog_file2,
314
- L: 240,
315
- S: void 0,
316
- A: [
317
- "editorView",
318
- ""
319
- ]
320
- });
321
- return editorView;
322
- }, [
323
- editorView
324
- ]);
325
- const handleViewModeChange = (0, import_react2.useCallback)((mode) => onViewModeChange?.(id, mode), [
326
- id,
327
- onViewModeChange
328
- ]);
329
- const handleImageUpload = (0, import_react2.useCallback)(() => {
330
- if (onFileUpload) {
331
- open();
332
- }
333
- }, [
334
- onFileUpload
335
- ]);
336
- return /* @__PURE__ */ import_react2.default.createElement(import_react_ui_stack.StackItem.Content, {
337
- toolbar: !!toolbar
338
- }, toolbar && /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_editor2.EditorToolbar, {
339
- attendableId: id,
340
- role,
341
- state: toolbarState,
342
- customActions,
343
- getView,
344
- image: handleImageUpload,
345
- viewMode: handleViewModeChange
346
- }), /* @__PURE__ */ import_react2.default.createElement("input", getInputProps())), /* @__PURE__ */ import_react2.default.createElement("div", {
347
- role: "none",
348
- ref: parentRef,
349
- "data-testid": "composer.markdownRoot",
350
- "data-toolbar": toolbar ? "enabled" : "disabled",
351
- className: (0, import_react_ui_editor2.stackItemContentEditorClassNames)(role),
352
- "data-popover-collision-boundary": true,
353
- ...focusAttributes
354
- }));
355
- } finally {
356
- _effect.f();
357
- }
358
- });
359
- var useTest = (view) => {
360
- (0, import_react2.useEffect)(() => {
361
- const composer = window.composer;
362
- if (composer) {
363
- composer.editorView = view;
364
- }
365
- }, [
366
- view
367
- ]);
368
- };
369
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
370
- var useExtensions = ({ document, id, text, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
371
- const { dispatchPromise: dispatch } = (0, import_app_framework3.useIntentDispatcher)();
372
- const identity = (0, import_halo.useIdentity)();
373
- const space = (0, import_echo3.getSpace)(document) ?? (0, import_echo3.getSpace)(text);
374
- const baseExtensions = (0, import_react4.useMemo)(() => createBaseExtensions({
375
- document,
376
- id,
377
- text,
378
- settings,
379
- selectionManager,
380
- viewMode,
381
- previewOptions,
382
- dispatch
383
- }), [
384
- document,
385
- id,
386
- text,
387
- viewMode,
388
- dispatch,
389
- previewOptions,
390
- settings,
391
- settings.editorInputMode,
392
- settings.folding,
393
- settings.numberedHeadings,
394
- settings.debug,
395
- settings.typewriter,
396
- selectionManager
397
- ]);
398
- const extensionProviders = (0, import_app_framework3.useCapabilities)(import_chunk_IFYSBQE5.MarkdownCapabilities.Extensions);
399
- const pluginExtensions = (0, import_react4.useMemo)(() => {
400
- if (!document) {
401
- return [];
402
- }
403
- return extensionProviders.flat().reduce((acc, provider) => {
404
- const extension = typeof provider === "function" ? provider({
405
- document
406
- }) : provider;
407
- if (extension) {
408
- acc.push(extension);
409
- }
410
- return acc;
411
- }, []);
412
- }, [
413
- extensionProviders,
414
- document
415
- ]);
416
- return (0, import_react4.useMemo)(() => [
417
- // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
418
- document && (0, import_react_ui_editor4.createDataExtensions)({
419
- id: document.id,
420
- text: document.content.target && (0, import_echo3.createDocAccessor)(document.content.target, [
421
- "content"
422
- ]),
423
- space,
424
- identity
425
- }),
426
- text && id && (0, import_react_ui_editor4.createDataExtensions)({
427
- id,
428
- text: (0, import_echo3.createDocAccessor)(text, [
429
- "content"
430
- ]),
431
- space,
432
- identity
433
- }),
434
- (0, import_react_ui_editor4.selectionState)(editorStateStore),
435
- document && (0, import_react_ui_editor4.listener)({
436
- onChange: (text2) => (0, import_chunk_CJLYFGPI.setFallbackName)(document, text2)
437
- }),
438
- baseExtensions,
439
- pluginExtensions
440
- ].filter(import_util2.isNotFalsy), [
441
- baseExtensions,
442
- pluginExtensions,
443
- document,
444
- document?.content?.target,
445
- text,
446
- id,
447
- space,
448
- identity
449
- ]);
450
- };
451
- var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, query, viewMode, previewOptions }) => {
452
- const extensions = [
453
- selectionManager && selectionChange(selectionManager),
454
- settings.editorInputMode && import_react_ui_editor4.InputModeExtensions[settings.editorInputMode],
455
- settings.folding && (0, import_react_ui_editor4.folding)()
456
- ].filter(import_util2.isNotFalsy);
457
- if (viewMode !== "source") {
458
- extensions.push(...[
459
- (0, import_react_ui_editor4.formattingKeymap)(),
460
- (0, import_react_ui_editor4.decorateMarkdown)({
461
- selectionChangeDelay: 100,
462
- numberedHeadings: settings.numberedHeadings ? {
463
- from: 2
464
- } : void 0,
465
- // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
466
- renderLinkButton: dispatch && (document || id) ? createLinkRenderer((id2) => {
467
- void dispatch((0, import_app_framework3.createIntent)(import_app_framework3.LayoutAction.Open, {
468
- part: "main",
469
- subject: [
470
- id2
471
- ],
472
- options: {
473
- pivotId: document ? (0, import_echo3.fullyQualifiedId)(document) : id2
474
- }
475
- }));
476
- }) : void 0
477
- }),
478
- (0, import_react_ui_editor4.linkTooltip)(renderLinkTooltip),
479
- (0, import_react_ui_editor4.preview)(previewOptions)
480
- ]);
481
- }
482
- if (query) {
483
- extensions.push((0, import_react_ui_editor4.autocomplete)({
484
- onSearch: (text) => {
485
- return query.objects.map((object) => object.name?.length && object.id !== document?.id ? {
486
- label: object.name,
487
- // TODO(burdon): Factor out URL builder.
488
- apply: `[${object.name}](/${(0, import_echo3.fullyQualifiedId)(object)})`
489
- } : void 0).filter(import_util2.isNotFalsy);
490
- }
491
- }));
492
- }
493
- if (settings.debug) {
494
- const items = settings.typewriter?.split(/[,\n]/) ?? "";
495
- if (items) {
496
- extensions.push((0, import_react_ui_editor4.typewriter)({
497
- items
498
- }));
499
- }
500
- }
501
- return extensions;
502
- };
503
- var selectionChange = (selectionManager) => {
504
- return import_react_ui_editor4.EditorView.updateListener.of((update) => {
505
- if (update.selectionSet) {
506
- const id = update.state.facet(import_react_ui_editor4.documentId);
507
- const cursorConverter = update.state.facet(import_react_ui_editor4.Cursor.converter);
508
- const selection = update.state.selection;
509
- const ranges = selection.ranges.map((range) => ({
510
- from: cursorConverter.toCursor(range.from),
511
- to: cursorConverter.toCursor(range.to)
512
- })).filter(({ from, to }) => to > from);
513
- selectionManager.updateMultiRange(id, ranges);
514
- }
515
- });
516
- };
517
- var style = {
518
- hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
519
- icon: "inline-block leading-none mis-1 cursor-pointer"
520
- };
521
- var createLinkRenderer = (onSelectObject) => (el, { url }) => {
522
- const isInternal = url.startsWith("/") || // TODO(wittjosiah): This should probably be parsed out on paste?
523
- url.startsWith(window.location.origin);
524
- const options = isInternal ? {
525
- onClick: () => {
526
- const qualifiedId = url.split("/").at(-1);
527
- (0, import_invariant3.invariant)(qualifiedId, "Invalid link format.", {
528
- F: __dxlog_file3,
529
- L: 287,
530
- S: void 0,
531
- A: [
532
- "qualifiedId",
533
- "'Invalid link format.'"
534
- ]
535
- });
536
- onSelectObject(qualifiedId);
537
- }
538
- } : {
539
- href: url,
540
- rel: "noreferrer",
541
- target: "_blank"
542
- };
543
- renderRoot(el, /* @__PURE__ */ import_react4.default.createElement("a", {
544
- ...options,
545
- className: style.hover
546
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Icon, {
547
- icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
548
- size: 4,
549
- classNames: style.icon
550
- })));
551
- };
552
- var renderLinkTooltip = (el, { url }) => {
553
- const web = new URL(url);
554
- renderRoot(el, /* @__PURE__ */ import_react4.default.createElement("a", {
555
- href: url,
556
- rel: "noreferrer",
557
- target: "_blank",
558
- className: style.hover
559
- }, web.origin, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Icon, {
560
- icon: "ph--arrow-square-out--bold",
561
- size: 4,
562
- classNames: style.icon
563
- })));
564
- };
565
- var renderRoot = (root, node) => {
566
- (0, import_client.createRoot)(root).render(/* @__PURE__ */ import_react4.default.createElement(import_react_ui3.ThemeProvider, {
567
- tx: import_react_ui_theme.defaultTx
568
- }, node));
569
- return root;
570
- };
571
- var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMode, editorStateStore, onViewModeChange }) => {
572
- var _effect = (0, import_tracking.useSignals)();
573
- try {
574
- const { t } = (0, import_react_ui.useTranslation)();
575
- const scrollPastEnd = role === "article";
576
- const doc = import_echo.Obj.instanceOf(import_chunk_3HHV4MM6.DocumentType, object) ? object : void 0;
577
- const text = import_echo.Obj.instanceOf(import_schema.DataType.Text, object) ? object : void 0;
578
- const [previewBlocks, setPreviewBlocks] = (0, import_react.useState)([]);
579
- const previewOptions = (0, import_react.useMemo)(() => ({
580
- addBlockContainer: (link, el) => {
581
- setPreviewBlocks((prev) => [
582
- ...prev,
583
- {
584
- link,
585
- el
586
- }
587
- ]);
588
- },
589
- removeBlockContainer: (link) => {
590
- setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.ref !== link.ref));
591
- }
592
- }), []);
593
- const extensions = useExtensions({
594
- document: doc,
595
- text,
596
- id,
597
- settings,
598
- selectionManager,
599
- viewMode,
600
- editorStateStore,
601
- previewOptions
602
- });
603
- const manager = (0, import_app_framework.usePluginManager)();
604
- const resolve = (0, import_react.useCallback)((typename) => manager.context.getCapabilities(import_app_framework.Capabilities.Metadata).find(({ id: id2 }) => id2 === typename)?.metadata ?? {}, [
605
- manager
606
- ]);
607
- const space = (0, import_echo2.getSpace)(object);
608
- const objectForms = (0, import_app_framework.useCapabilities)(import_plugin_space.SpaceCapabilities.ObjectForm);
609
- const filter = (0, import_react.useMemo)(() => import_echo.Filter.or(...objectForms.map((form) => import_echo.Filter.type(form.objectSchema))), [
610
- objectForms
611
- ]);
612
- const onLinkQuery = (0, import_react.useCallback)(async (query) => {
613
- const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
614
- const results = await space?.db.query(import_echo.Query.select(filter)).run();
615
- const getLabel = (object2) => {
616
- const type = import_echo.Obj.getTypename(object2);
617
- const metadata = resolve(type);
618
- return metadata.label?.(object2) || object2.name || [
619
- "object name placeholder",
620
- {
621
- ns: type,
622
- default: "New object"
623
- }
624
- ];
625
- };
626
- const items = results?.objects.filter((object2) => (0, import_react_ui.toLocalizedString)(getLabel(object2), t).toLowerCase().includes(name)).map((object2) => {
627
- const metadata = resolve(import_echo.Obj.getTypename(object2));
628
- const label = (0, import_react_ui.toLocalizedString)(getLabel(object2), t);
629
- return {
630
- id: object2.id,
631
- label,
632
- icon: metadata.icon,
633
- onSelect: (view, head) => {
634
- const link = `[${label}][${import_echo.Obj.getDXN(object2)}]`;
635
- if (query?.startsWith("@")) {
636
- (0, import_react_ui_editor.insertAtLineStart)(view, head, `!${link}
637
- `);
638
- } else {
639
- (0, import_react_ui_editor.insertAtCursor)(view, head, `${link} `);
640
- }
641
- }
642
- };
643
- }) ?? [];
644
- return [
645
- {
646
- id: "echo",
647
- items
648
- }
649
- ];
650
- }, [
651
- filter,
652
- resolve,
653
- space
654
- ]);
655
- const editor = doc ? /* @__PURE__ */ import_react.default.createElement(DocumentEditor, {
656
- id: (0, import_echo2.fullyQualifiedId)(object),
657
- role,
658
- document: doc,
659
- extensions,
660
- viewMode,
661
- settings,
662
- scrollPastEnd,
663
- onViewModeChange,
664
- onLinkQuery: space ? onLinkQuery : void 0
665
- }) : text ? /* @__PURE__ */ import_react.default.createElement(MarkdownEditor, {
666
- id,
667
- role,
668
- initialValue: text.content,
669
- extensions,
670
- viewMode,
671
- toolbar: settings.toolbar,
672
- inputMode: settings.editorInputMode,
673
- scrollPastEnd,
674
- onViewModeChange,
675
- onLinkQuery: space ? onLinkQuery : void 0
676
- }) : (
677
- // TODO(burdon): Normalize with above.
678
- /* @__PURE__ */ import_react.default.createElement(MarkdownEditor, {
679
- id,
680
- role,
681
- initialValue: object.text,
682
- extensions,
683
- viewMode,
684
- toolbar: settings.toolbar,
685
- inputMode: settings.editorInputMode,
686
- scrollPastEnd,
687
- onViewModeChange,
688
- onLinkQuery: space ? onLinkQuery : void 0
689
- })
690
- );
691
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, editor, previewBlocks.map(({ link, el }) => /* @__PURE__ */ import_react.default.createElement(PreviewBlock, {
692
- key: link.ref,
693
- link,
694
- el
695
- })));
696
- } finally {
697
- _effect.f();
698
- }
699
- };
700
- var PreviewBlock = ({ link, el }) => {
701
- var _effect = (0, import_tracking.useSignals)();
702
- try {
703
- const echoDXN = (0, import_react.useMemo)(() => import_echo.DXN.parse(link.ref).asEchoDXN(), [
704
- link.ref
705
- ]);
706
- const space = (0, import_echo2.useSpace)(echoDXN?.spaceId);
707
- const [subject] = (0, import_echo2.useQuery)(space, import_echo.Query.select(import_echo.Filter.ids(echoDXN?.echoId ?? "")));
708
- const data = (0, import_react.useMemo)(() => ({
709
- subject
710
- }), [
711
- subject
712
- ]);
713
- return /* @__PURE__ */ (0, import_react_dom.createPortal)(/* @__PURE__ */ import_react.default.createElement(import_app_framework.Surface, {
714
- role: "card--document",
715
- data,
716
- limit: 1
717
- }), el);
718
- } finally {
719
- _effect.f();
720
- }
721
- };
722
- var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
723
- var _effect = (0, import_tracking.useSignals)();
724
- try {
725
- const space = (0, import_echo2.getSpace)(doc);
726
- (0, import_react.useEffect)(() => {
727
- if (typeof doc.fallbackName === "string") {
728
- return;
729
- }
730
- const fallbackName = doc.content?.target?.content ? (0, import_chunk_CJLYFGPI.getFallbackName)(doc.content.target.content) : void 0;
731
- if (fallbackName) {
732
- doc.fallbackName = fallbackName;
733
- }
734
- }, [
735
- doc,
736
- doc.content
737
- ]);
738
- const [upload] = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.FileUploader);
739
- const handleFileUpload = (0, import_react.useMemo)(() => {
740
- if (space === void 0 || upload === void 0) {
741
- return void 0;
742
- }
743
- return async (file) => upload(file, space);
744
- }, [
745
- space,
746
- upload
747
- ]);
748
- const { graph } = (0, import_app_framework.useAppGraph)();
749
- const customActions = (0, import_react.useMemo)(() => {
750
- return import_rx_react.Rx.make((get) => {
751
- const actions = get(graph.actions(id));
752
- const nodes = actions.filter((action) => action.properties.disposition === "toolbar");
753
- return {
754
- nodes,
755
- edges: nodes.map((node) => ({
756
- source: "root",
757
- target: node.id
758
- }))
759
- };
760
- });
761
- }, [
762
- graph
763
- ]);
764
- return /* @__PURE__ */ import_react.default.createElement(MarkdownEditor, {
765
- id,
766
- initialValue: doc.content?.target?.content,
767
- viewMode,
768
- toolbar: settings.toolbar,
769
- customActions,
770
- inputMode: settings.editorInputMode,
771
- onFileUpload: handleFileUpload,
772
- ...props
773
- });
774
- } finally {
775
- _effect.f();
776
- }
777
- };
778
- var MarkdownContainer_default = MarkdownContainer;
779
- // Annotate the CommonJS export names for ESM import in node:
780
- 0 && (module.exports = {
781
- DocumentEditor
782
- });
783
- //# sourceMappingURL=MarkdownContainer-KYGUEZIL.cjs.map