@dxos/plugin-markdown 0.8.3-staging.0fa589b → 0.8.4-main.1da679c

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 (271) hide show
  1. package/dist/lib/browser/{MarkdownPreview-F4PYFW5L.mjs → MarkdownCard-JLUQITYK.mjs} +18 -18
  2. package/dist/lib/browser/MarkdownCard-JLUQITYK.mjs.map +7 -0
  3. package/dist/lib/browser/{MarkdownContainer-EFWQ6DHD.mjs → MarkdownContainer-OZ5DHEIA.mjs} +282 -302
  4. package/dist/lib/browser/MarkdownContainer-OZ5DHEIA.mjs.map +7 -0
  5. package/dist/lib/browser/{anchor-sort-BMAN2ABT.mjs → anchor-sort-SUD373SW.mjs} +8 -8
  6. package/dist/lib/browser/anchor-sort-SUD373SW.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-EI6TEHRQ.mjs → app-graph-serializer-GH7JJZB7.mjs} +16 -17
  8. package/dist/lib/browser/app-graph-serializer-GH7JJZB7.mjs.map +7 -0
  9. package/dist/lib/browser/blueprint-definition-JSNGFAZB.mjs +11 -0
  10. package/dist/lib/browser/blueprint-definition-JSNGFAZB.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-BEE7VQPU.mjs +78 -0
  12. package/dist/lib/browser/chunk-BEE7VQPU.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-LXSRQPEP.mjs → chunk-LAVZ2W6X.mjs} +9 -10
  14. package/dist/lib/browser/chunk-LAVZ2W6X.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-ODB2PTBP.mjs +28 -0
  16. package/dist/lib/browser/chunk-ODB2PTBP.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-OY6CGPOO.mjs +16 -0
  18. package/dist/lib/browser/chunk-OY6CGPOO.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-SQLSKQRQ.mjs +22 -0
  20. package/dist/lib/browser/chunk-SQLSKQRQ.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-UM2GILLR.mjs +102 -0
  22. package/dist/lib/browser/chunk-UM2GILLR.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-D767LUGU.mjs → chunk-Z7P6JGGW.mjs} +14 -12
  24. package/dist/lib/browser/chunk-Z7P6JGGW.mjs.map +7 -0
  25. package/dist/lib/browser/index.mjs +38 -25
  26. package/dist/lib/browser/index.mjs.map +3 -3
  27. package/dist/lib/browser/intent-resolver-SUBIHVU7.mjs +62 -0
  28. package/dist/lib/browser/intent-resolver-SUBIHVU7.mjs.map +7 -0
  29. package/dist/lib/browser/meta.json +1 -1
  30. package/dist/lib/{node-esm/react-surface-YHFOQTVO.mjs → browser/react-surface-JBQHF4GR.mjs} +64 -55
  31. package/dist/lib/browser/react-surface-JBQHF4GR.mjs.map +7 -0
  32. package/dist/lib/browser/{settings-PLH54VC7.mjs → settings-T5ZMC5TH.mjs} +8 -8
  33. package/dist/lib/browser/settings-T5ZMC5TH.mjs.map +7 -0
  34. package/dist/lib/browser/{state-KI6PJ6DT.mjs → state-6QODXCSZ.mjs} +10 -10
  35. package/dist/lib/browser/state-6QODXCSZ.mjs.map +7 -0
  36. package/dist/lib/browser/toolkit-GNADYSGW.mjs +74 -0
  37. package/dist/lib/browser/toolkit-GNADYSGW.mjs.map +7 -0
  38. package/dist/lib/browser/types/index.mjs +6 -14
  39. package/dist/lib/node-esm/{MarkdownPreview-KFDRV4GC.mjs → MarkdownCard-XL5EVSJ7.mjs} +18 -18
  40. package/dist/lib/node-esm/MarkdownCard-XL5EVSJ7.mjs.map +7 -0
  41. package/dist/lib/node-esm/{MarkdownContainer-O3SGMH4G.mjs → MarkdownContainer-Z4I23DPN.mjs} +282 -302
  42. package/dist/lib/node-esm/MarkdownContainer-Z4I23DPN.mjs.map +7 -0
  43. package/dist/lib/node-esm/{anchor-sort-BXL7BE67.mjs → anchor-sort-J2BK2XLZ.mjs} +8 -8
  44. package/dist/lib/node-esm/anchor-sort-J2BK2XLZ.mjs.map +7 -0
  45. package/dist/lib/node-esm/{app-graph-serializer-F7DGNF3G.mjs → app-graph-serializer-LRYCXG7N.mjs} +16 -17
  46. package/dist/lib/node-esm/app-graph-serializer-LRYCXG7N.mjs.map +7 -0
  47. package/dist/lib/node-esm/blueprint-definition-KX3Y5JHC.mjs +12 -0
  48. package/dist/lib/node-esm/blueprint-definition-KX3Y5JHC.mjs.map +7 -0
  49. package/dist/lib/node-esm/chunk-CB2R4YIY.mjs +17 -0
  50. package/dist/lib/node-esm/chunk-CB2R4YIY.mjs.map +7 -0
  51. package/dist/lib/node-esm/chunk-FXILAQ5F.mjs +79 -0
  52. package/dist/lib/node-esm/chunk-FXILAQ5F.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-BWDDFDJY.mjs → chunk-J7A6TUB2.mjs} +14 -12
  54. package/dist/lib/node-esm/chunk-J7A6TUB2.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-KAXL7TWD.mjs +103 -0
  56. package/dist/lib/node-esm/chunk-KAXL7TWD.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-MJZPYYIH.mjs +24 -0
  58. package/dist/lib/node-esm/chunk-MJZPYYIH.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-K26TX5V4.mjs → chunk-O6EXWGGS.mjs} +9 -10
  60. package/dist/lib/node-esm/chunk-O6EXWGGS.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-VCG2U522.mjs +29 -0
  62. package/dist/lib/node-esm/chunk-VCG2U522.mjs.map +7 -0
  63. package/dist/lib/node-esm/index.mjs +38 -25
  64. package/dist/lib/node-esm/index.mjs.map +3 -3
  65. package/dist/lib/node-esm/intent-resolver-YZEGYWGA.mjs +63 -0
  66. package/dist/lib/node-esm/intent-resolver-YZEGYWGA.mjs.map +7 -0
  67. package/dist/lib/node-esm/meta.json +1 -1
  68. package/dist/lib/{browser/react-surface-4B5ELMEW.mjs → node-esm/react-surface-JOXUHXQJ.mjs} +65 -54
  69. package/dist/lib/node-esm/react-surface-JOXUHXQJ.mjs.map +7 -0
  70. package/dist/lib/node-esm/{settings-SIY33P3F.mjs → settings-LGG22OH4.mjs} +8 -8
  71. package/dist/lib/node-esm/settings-LGG22OH4.mjs.map +7 -0
  72. package/dist/lib/node-esm/{state-LLGVRYKL.mjs → state-W3PECOJX.mjs} +10 -10
  73. package/dist/lib/node-esm/state-W3PECOJX.mjs.map +7 -0
  74. package/dist/lib/node-esm/toolkit-ZCFWOGNH.mjs +75 -0
  75. package/dist/lib/node-esm/toolkit-ZCFWOGNH.mjs.map +7 -0
  76. package/dist/lib/node-esm/types/index.mjs +6 -14
  77. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/anchor-sort.d.ts +2 -2
  79. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  80. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -9
  82. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  84. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  85. package/dist/types/src/capabilities/capabilities.d.ts +1 -1
  86. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/index.d.ts +12 -10
  88. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  90. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  92. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/settings.d.ts +1 -1
  94. package/dist/types/src/capabilities/state.d.ts +2 -2
  95. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/toolkit.d.ts +4 -0
  97. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
  98. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +7 -0
  99. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  100. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +10 -0
  101. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  102. package/dist/types/src/components/MarkdownCard/index.d.ts +4 -0
  103. package/dist/types/src/components/MarkdownCard/index.d.ts.map +1 -0
  104. package/dist/types/src/components/MarkdownContainer.d.ts +5 -5
  105. package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
  106. package/dist/types/src/components/MarkdownContainer.stories.d.ts +51 -4
  107. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
  108. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +2 -2
  109. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  110. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +110 -12
  111. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +2 -2
  113. package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  114. package/dist/types/src/components/Suggestions.stories.d.ts +3 -3
  115. package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/Toolbar.stories.d.ts +44 -7
  117. package/dist/types/src/components/Toolbar.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/index.d.ts +1 -1
  119. package/dist/types/src/components/index.d.ts.map +1 -1
  120. package/dist/types/src/events.d.ts.map +1 -1
  121. package/dist/types/src/extensions.d.ts +3 -5
  122. package/dist/types/src/extensions.d.ts.map +1 -1
  123. package/dist/types/src/functions/diff.d.ts +6 -0
  124. package/dist/types/src/functions/diff.d.ts.map +1 -0
  125. package/dist/types/src/functions/index.d.ts +3 -0
  126. package/dist/types/src/functions/index.d.ts.map +1 -0
  127. package/dist/types/src/functions/open.d.ts +7 -0
  128. package/dist/types/src/functions/open.d.ts.map +1 -0
  129. package/dist/types/src/index.d.ts +2 -1
  130. package/dist/types/src/index.d.ts.map +1 -1
  131. package/dist/types/src/meta.d.ts +0 -1
  132. package/dist/types/src/meta.d.ts.map +1 -1
  133. package/dist/types/src/translations.d.ts +36 -80
  134. package/dist/types/src/translations.d.ts.map +1 -1
  135. package/dist/types/src/types/Markdown.d.ts +43 -0
  136. package/dist/types/src/types/Markdown.d.ts.map +1 -0
  137. package/dist/types/src/types/MarkdownAction.d.ts +33 -0
  138. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -0
  139. package/dist/types/src/types/index.d.ts +2 -1
  140. package/dist/types/src/types/index.d.ts.map +1 -1
  141. package/dist/types/src/types/types.d.ts +4 -59
  142. package/dist/types/src/types/types.d.ts.map +1 -1
  143. package/dist/types/src/util.d.ts +12 -3
  144. package/dist/types/src/util.d.ts.map +1 -1
  145. package/dist/types/tsconfig.tsbuildinfo +1 -1
  146. package/package.json +51 -48
  147. package/src/MarkdownPlugin.tsx +22 -13
  148. package/src/capabilities/anchor-sort.ts +3 -3
  149. package/src/capabilities/app-graph-serializer.ts +10 -8
  150. package/src/capabilities/artifact-definition.ts +19 -24
  151. package/src/capabilities/blueprint-definition.ts +39 -0
  152. package/src/capabilities/capabilities.ts +5 -4
  153. package/src/capabilities/index.ts +3 -1
  154. package/src/capabilities/intent-resolver.ts +15 -21
  155. package/src/capabilities/react-surface.tsx +22 -20
  156. package/src/capabilities/settings.ts +3 -3
  157. package/src/capabilities/state.ts +8 -8
  158. package/src/capabilities/toolkit.ts +47 -0
  159. package/src/components/MarkdownCard/MarkdownCard.stories.tsx +79 -0
  160. package/src/components/{MarkdownPreview/MarkdownPreview.tsx → MarkdownCard/MarkdownCard.tsx} +21 -17
  161. package/src/components/MarkdownCard/index.ts +9 -0
  162. package/src/components/MarkdownContainer.stories.tsx +39 -31
  163. package/src/components/MarkdownContainer.tsx +36 -21
  164. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +10 -7
  165. package/src/components/MarkdownEditor/MarkdownEditor.tsx +28 -30
  166. package/src/components/MarkdownSettings/MarkdownSettings.tsx +81 -78
  167. package/src/components/Suggestions.stories.tsx +36 -33
  168. package/src/components/Toolbar.stories.tsx +19 -14
  169. package/src/components/index.ts +1 -1
  170. package/src/events.ts +2 -2
  171. package/src/extensions.tsx +28 -52
  172. package/src/functions/diff.ts +35 -0
  173. package/src/functions/index.ts +6 -0
  174. package/src/functions/open.ts +30 -0
  175. package/src/hooks/useSelectCurrentThread.tsx +3 -3
  176. package/src/index.ts +4 -1
  177. package/src/meta.ts +7 -8
  178. package/src/translations.ts +10 -7
  179. package/src/types/Markdown.ts +56 -0
  180. package/src/types/MarkdownAction.ts +29 -0
  181. package/src/types/index.ts +2 -1
  182. package/src/types/types.ts +7 -51
  183. package/src/util.tsx +20 -6
  184. package/dist/lib/browser/MarkdownContainer-EFWQ6DHD.mjs.map +0 -7
  185. package/dist/lib/browser/MarkdownPreview-F4PYFW5L.mjs.map +0 -7
  186. package/dist/lib/browser/anchor-sort-BMAN2ABT.mjs.map +0 -7
  187. package/dist/lib/browser/app-graph-serializer-EI6TEHRQ.mjs.map +0 -7
  188. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs +0 -145
  189. package/dist/lib/browser/artifact-definition-FQ2R6KPT.mjs.map +0 -7
  190. package/dist/lib/browser/chunk-354IBM5X.mjs +0 -20
  191. package/dist/lib/browser/chunk-354IBM5X.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-D767LUGU.mjs.map +0 -7
  193. package/dist/lib/browser/chunk-JX6XNEHE.mjs +0 -22
  194. package/dist/lib/browser/chunk-JX6XNEHE.mjs.map +0 -7
  195. package/dist/lib/browser/chunk-LXSRQPEP.mjs.map +0 -7
  196. package/dist/lib/browser/chunk-N2D26K6W.mjs +0 -79
  197. package/dist/lib/browser/chunk-N2D26K6W.mjs.map +0 -7
  198. package/dist/lib/browser/chunk-QVJETNGS.mjs +0 -16
  199. package/dist/lib/browser/chunk-QVJETNGS.mjs.map +0 -7
  200. package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs +0 -64
  201. package/dist/lib/browser/intent-resolver-6ZOABX2J.mjs.map +0 -7
  202. package/dist/lib/browser/react-surface-4B5ELMEW.mjs.map +0 -7
  203. package/dist/lib/browser/settings-PLH54VC7.mjs.map +0 -7
  204. package/dist/lib/browser/state-KI6PJ6DT.mjs.map +0 -7
  205. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs +0 -783
  206. package/dist/lib/node/MarkdownContainer-KYGUEZIL.cjs.map +0 -7
  207. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs +0 -103
  208. package/dist/lib/node/MarkdownPreview-GCJJCXY6.cjs.map +0 -7
  209. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs +0 -48
  210. package/dist/lib/node/anchor-sort-V3T4SFFI.cjs.map +0 -7
  211. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs +0 -65
  212. package/dist/lib/node/app-graph-serializer-E6BXEDEL.cjs.map +0 -7
  213. package/dist/lib/node/artifact-definition-U27MH5SC.cjs +0 -158
  214. package/dist/lib/node/artifact-definition-U27MH5SC.cjs.map +0 -7
  215. package/dist/lib/node/chunk-3HHV4MM6.cjs +0 -101
  216. package/dist/lib/node/chunk-3HHV4MM6.cjs.map +0 -7
  217. package/dist/lib/node/chunk-CJLYFGPI.cjs +0 -74
  218. package/dist/lib/node/chunk-CJLYFGPI.cjs.map +0 -7
  219. package/dist/lib/node/chunk-FU3XZZCO.cjs +0 -58
  220. package/dist/lib/node/chunk-FU3XZZCO.cjs.map +0 -7
  221. package/dist/lib/node/chunk-IFYSBQE5.cjs +0 -35
  222. package/dist/lib/node/chunk-IFYSBQE5.cjs.map +0 -7
  223. package/dist/lib/node/chunk-LQAC5HL7.cjs +0 -68
  224. package/dist/lib/node/chunk-LQAC5HL7.cjs.map +0 -7
  225. package/dist/lib/node/chunk-ZU5OIHCY.cjs +0 -45
  226. package/dist/lib/node/chunk-ZU5OIHCY.cjs.map +0 -7
  227. package/dist/lib/node/index.cjs +0 -165
  228. package/dist/lib/node/index.cjs.map +0 -7
  229. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs +0 -77
  230. package/dist/lib/node/intent-resolver-OEFLRNEJ.cjs.map +0 -7
  231. package/dist/lib/node/meta.json +0 -1
  232. package/dist/lib/node/react-surface-456HQ4KZ.cjs +0 -218
  233. package/dist/lib/node/react-surface-456HQ4KZ.cjs.map +0 -7
  234. package/dist/lib/node/settings-E3NUTXJ4.cjs +0 -42
  235. package/dist/lib/node/settings-E3NUTXJ4.cjs.map +0 -7
  236. package/dist/lib/node/state-KKDRAG7X.cjs +0 -51
  237. package/dist/lib/node/state-KKDRAG7X.cjs.map +0 -7
  238. package/dist/lib/node/types/index.cjs +0 -40
  239. package/dist/lib/node/types/index.cjs.map +0 -7
  240. package/dist/lib/node-esm/MarkdownContainer-O3SGMH4G.mjs.map +0 -7
  241. package/dist/lib/node-esm/MarkdownPreview-KFDRV4GC.mjs.map +0 -7
  242. package/dist/lib/node-esm/anchor-sort-BXL7BE67.mjs.map +0 -7
  243. package/dist/lib/node-esm/app-graph-serializer-F7DGNF3G.mjs.map +0 -7
  244. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs +0 -146
  245. package/dist/lib/node-esm/artifact-definition-NQOHB6S5.mjs.map +0 -7
  246. package/dist/lib/node-esm/chunk-BWDDFDJY.mjs.map +0 -7
  247. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs +0 -17
  248. package/dist/lib/node-esm/chunk-JXXDCSMW.mjs.map +0 -7
  249. package/dist/lib/node-esm/chunk-K26TX5V4.mjs.map +0 -7
  250. package/dist/lib/node-esm/chunk-RX63ZNML.mjs +0 -24
  251. package/dist/lib/node-esm/chunk-RX63ZNML.mjs.map +0 -7
  252. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs +0 -80
  253. package/dist/lib/node-esm/chunk-T2Y2BT53.mjs.map +0 -7
  254. package/dist/lib/node-esm/chunk-YOABAQ7A.mjs +0 -22
  255. package/dist/lib/node-esm/chunk-YOABAQ7A.mjs.map +0 -7
  256. package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs +0 -65
  257. package/dist/lib/node-esm/intent-resolver-CLMSVF2K.mjs.map +0 -7
  258. package/dist/lib/node-esm/react-surface-YHFOQTVO.mjs.map +0 -7
  259. package/dist/lib/node-esm/settings-SIY33P3F.mjs.map +0 -7
  260. package/dist/lib/node-esm/state-LLGVRYKL.mjs.map +0 -7
  261. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts +0 -6
  262. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.d.ts.map +0 -1
  263. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts +0 -17
  264. package/dist/types/src/components/MarkdownPreview/MarkdownPreview.stories.d.ts.map +0 -1
  265. package/dist/types/src/components/MarkdownPreview/index.d.ts +0 -4
  266. package/dist/types/src/components/MarkdownPreview/index.d.ts.map +0 -1
  267. package/dist/types/src/types/schema.d.ts +0 -35
  268. package/dist/types/src/types/schema.d.ts.map +0 -1
  269. package/src/components/MarkdownPreview/MarkdownPreview.stories.tsx +0 -74
  270. package/src/components/MarkdownPreview/index.ts +0 -9
  271. package/src/types/schema.ts +0 -39
@@ -1,62 +1,269 @@
1
- import "./chunk-354IBM5X.mjs";
1
+ import "./chunk-SQLSKQRQ.mjs";
2
+ import "./chunk-UM2GILLR.mjs";
2
3
  import {
3
4
  MarkdownCapabilities
4
- } from "./chunk-QVJETNGS.mjs";
5
+ } from "./chunk-OY6CGPOO.mjs";
5
6
  import {
6
7
  getFallbackName,
7
8
  setFallbackName
8
- } from "./chunk-LXSRQPEP.mjs";
9
+ } from "./chunk-LAVZ2W6X.mjs";
9
10
  import {
10
- DocumentType
11
- } from "./chunk-N2D26K6W.mjs";
11
+ Markdown_exports
12
+ } from "./chunk-BEE7VQPU.mjs";
12
13
  import {
13
- MARKDOWN_PLUGIN
14
- } from "./chunk-JX6XNEHE.mjs";
14
+ meta
15
+ } from "./chunk-ODB2PTBP.mjs";
15
16
 
16
- // packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx
17
+ // src/components/MarkdownContainer.tsx
17
18
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
18
19
  import { Rx } from "@effect-rx/rx-react";
19
20
  import React3, { useCallback as useCallback2, useEffect as useEffect2, useMemo as useMemo4, useState } from "react";
20
21
  import { createPortal } from "react-dom";
21
22
  import { Capabilities, Surface, useAppGraph, useCapabilities as useCapabilities2, usePluginManager } from "@dxos/app-framework";
22
- import { DXN, Filter, Obj, Query } from "@dxos/echo";
23
+ import { DXN, Filter, Obj, Query, Type } from "@dxos/echo";
24
+ import { ClientCapabilities } from "@dxos/plugin-client";
23
25
  import { SpaceCapabilities } from "@dxos/plugin-space";
24
- import { fullyQualifiedId as fullyQualifiedId2, getSpace as getSpace2, useQuery, useSpace } from "@dxos/react-client/echo";
26
+ import { useClient } from "@dxos/react-client";
27
+ import { fullyQualifiedId as fullyQualifiedId2, getSpace as getSpace2 } from "@dxos/react-client/echo";
25
28
  import { toLocalizedString as toLocalizedString2, useTranslation as useTranslation2 } from "@dxos/react-ui";
26
29
  import { insertAtCursor, insertAtLineStart } from "@dxos/react-ui-editor";
27
30
  import { DataType } from "@dxos/schema";
28
31
 
29
- // packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx
32
+ // src/extensions.tsx
33
+ import React, { useMemo } from "react";
34
+ import { createRoot } from "react-dom/client";
35
+ import { LayoutAction, createIntent, useCapabilities, useIntentDispatcher } from "@dxos/app-framework";
36
+ import { debounceAndThrottle } from "@dxos/async";
37
+ import { invariant } from "@dxos/invariant";
38
+ import { createDocAccessor, fullyQualifiedId, getSpace } from "@dxos/react-client/echo";
39
+ import { useIdentity } from "@dxos/react-client/halo";
40
+ import { Icon, ThemeProvider } from "@dxos/react-ui";
41
+ import { Cursor, EditorView, InputModeExtensions, createDataExtensions, decorateMarkdown, documentId, folding, formattingKeymap, linkTooltip, listener, preview, selectionState, typewriter } from "@dxos/react-ui-editor";
42
+ import { defaultTx } from "@dxos/react-ui-theme";
43
+ import { isNotFalsy } from "@dxos/util";
44
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
45
+ var useExtensions = ({ document, id, text, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
46
+ const { dispatchPromise: dispatch } = useIntentDispatcher();
47
+ const identity = useIdentity();
48
+ const space = getSpace(document) ?? getSpace(text);
49
+ const baseExtensions = useMemo(() => createBaseExtensions({
50
+ document,
51
+ id,
52
+ text,
53
+ settings,
54
+ selectionManager,
55
+ viewMode,
56
+ previewOptions,
57
+ dispatch
58
+ }), [
59
+ document,
60
+ id,
61
+ text,
62
+ viewMode,
63
+ dispatch,
64
+ previewOptions,
65
+ settings,
66
+ settings.editorInputMode,
67
+ settings.folding,
68
+ settings.numberedHeadings,
69
+ settings.debug,
70
+ settings.typewriter,
71
+ selectionManager
72
+ ]);
73
+ const extensionProviders = useCapabilities(MarkdownCapabilities.Extensions);
74
+ const pluginExtensions = useMemo(() => {
75
+ if (!document) {
76
+ return [];
77
+ }
78
+ return extensionProviders.flat().reduce((acc, provider) => {
79
+ const extension = typeof provider === "function" ? provider({
80
+ document
81
+ }) : provider;
82
+ if (extension) {
83
+ acc.push(extension);
84
+ }
85
+ return acc;
86
+ }, []);
87
+ }, [
88
+ extensionProviders,
89
+ document
90
+ ]);
91
+ return useMemo(() => [
92
+ // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
93
+ document && createDataExtensions({
94
+ id: document.id,
95
+ text: document.content.target && createDocAccessor(document.content.target, [
96
+ "content"
97
+ ]),
98
+ space,
99
+ identity
100
+ }),
101
+ text && id && createDataExtensions({
102
+ id,
103
+ text: createDocAccessor(text, [
104
+ "content"
105
+ ]),
106
+ space,
107
+ identity
108
+ }),
109
+ selectionState(editorStateStore),
110
+ document && listener({
111
+ onChange: (text2) => setFallbackName(document, text2)
112
+ }),
113
+ baseExtensions,
114
+ pluginExtensions
115
+ ].filter(isNotFalsy), [
116
+ baseExtensions,
117
+ pluginExtensions,
118
+ document,
119
+ document?.content?.target,
120
+ text,
121
+ id,
122
+ space,
123
+ identity
124
+ ]);
125
+ };
126
+ var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, viewMode, previewOptions }) => {
127
+ const extensions = [
128
+ selectionManager && selectionChange(selectionManager),
129
+ settings.editorInputMode && InputModeExtensions[settings.editorInputMode],
130
+ settings.folding && folding()
131
+ ].filter(isNotFalsy);
132
+ if (viewMode !== "source") {
133
+ extensions.push(...[
134
+ formattingKeymap(),
135
+ decorateMarkdown({
136
+ selectionChangeDelay: 100,
137
+ numberedHeadings: settings.numberedHeadings ? {
138
+ from: 2
139
+ } : void 0,
140
+ // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
141
+ renderLinkButton: dispatch && (document || id) ? createLinkRenderer((id2) => {
142
+ void dispatch(createIntent(LayoutAction.Open, {
143
+ part: "main",
144
+ subject: [
145
+ id2
146
+ ],
147
+ options: {
148
+ pivotId: document ? fullyQualifiedId(document) : id2
149
+ }
150
+ }));
151
+ }) : void 0
152
+ }),
153
+ linkTooltip(renderLinkTooltip),
154
+ preview(previewOptions)
155
+ ]);
156
+ }
157
+ if (settings.debug) {
158
+ const items = settings.typewriter?.split(/[,\n]/) ?? "";
159
+ if (items) {
160
+ extensions.push(typewriter({
161
+ items
162
+ }));
163
+ }
164
+ }
165
+ return extensions;
166
+ };
167
+ var selectionChange = (selectionManager) => {
168
+ return EditorView.updateListener.of(debounceAndThrottle((update) => {
169
+ if (update.selectionSet) {
170
+ const id = update.state.facet(documentId);
171
+ const cursorConverter = update.state.facet(Cursor.converter);
172
+ const selection = update.state.selection;
173
+ const ranges = selection.ranges.map((range) => ({
174
+ from: cursorConverter.toCursor(range.from),
175
+ to: cursorConverter.toCursor(range.to)
176
+ })).filter(({ from, to }) => to > from);
177
+ selectionManager.updateMultiRange(id, ranges);
178
+ }
179
+ }, 100));
180
+ };
181
+ var style = {
182
+ hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
183
+ icon: "inline-block leading-none mis-1 cursor-pointer"
184
+ };
185
+ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
186
+ const isInternal = url.startsWith("/") || // TODO(wittjosiah): This should probably be parsed out on paste?
187
+ url.startsWith(window.location.origin);
188
+ const options = isInternal ? {
189
+ onClick: () => {
190
+ const qualifiedId = url.split("/").at(-1);
191
+ invariant(qualifiedId, "Invalid link format.", {
192
+ F: __dxlog_file,
193
+ L: 263,
194
+ S: void 0,
195
+ A: [
196
+ "qualifiedId",
197
+ "'Invalid link format.'"
198
+ ]
199
+ });
200
+ onSelectObject(qualifiedId);
201
+ }
202
+ } : {
203
+ href: url,
204
+ rel: "noreferrer",
205
+ target: "_blank"
206
+ };
207
+ renderRoot(el, /* @__PURE__ */ React.createElement("a", {
208
+ ...options,
209
+ className: style.hover
210
+ }, /* @__PURE__ */ React.createElement(Icon, {
211
+ icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
212
+ size: 4,
213
+ classNames: style.icon
214
+ })));
215
+ };
216
+ var renderLinkTooltip = (el, { url }) => {
217
+ const web = new URL(url);
218
+ renderRoot(el, /* @__PURE__ */ React.createElement("a", {
219
+ href: url,
220
+ rel: "noreferrer",
221
+ target: "_blank",
222
+ className: style.hover
223
+ }, web.origin, /* @__PURE__ */ React.createElement(Icon, {
224
+ icon: "ph--arrow-square-out--bold",
225
+ size: 4,
226
+ classNames: style.icon
227
+ })));
228
+ };
229
+ var renderRoot = (root, node) => {
230
+ createRoot(root).render(/* @__PURE__ */ React.createElement(ThemeProvider, {
231
+ tx: defaultTx
232
+ }, node));
233
+ return root;
234
+ };
235
+
236
+ // src/components/MarkdownEditor/MarkdownEditor.tsx
30
237
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
31
- import React, { forwardRef, useMemo as useMemo2, useEffect, useCallback, useImperativeHandle, useRef } from "react";
238
+ import React2, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo as useMemo3, useRef } from "react";
32
239
  import { useDropzone } from "react-dropzone";
33
- import { invariant as invariant2 } from "@dxos/invariant";
240
+ import { invariant as invariant3 } from "@dxos/invariant";
34
241
  import { toLocalizedString, useThemeContext, useTranslation } from "@dxos/react-ui";
35
- import { CommandMenu, EditorToolbar, RefPopover, addLink, createElement, coreSlashCommands, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorGutter, editorSlots, filterItems, linkSlashCommands, processEditorPayload, stackItemContentEditorClassNames, useEditorToolbarState, useFormattingState, useTextEditor, useCommandMenu } from "@dxos/react-ui-editor";
242
+ import { CommandMenuProvider, Domino, EditorToolbar, addLink, coreSlashCommands, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorGutter, editorSlots, filterItems, linkSlashCommands, processEditorPayload, stackItemContentEditorClassNames, useCommandMenu, useEditorToolbarState, useFormattingState, useTextEditor } from "@dxos/react-ui-editor";
36
243
  import { StackItem } from "@dxos/react-ui-stack";
37
- import { isNotFalsy, isNonNullable } from "@dxos/util";
244
+ import { isNonNullable, isNotFalsy as isNotFalsy2 } from "@dxos/util";
38
245
 
39
- // packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx
40
- import { EditorView } from "@codemirror/view";
246
+ // src/hooks/useSelectCurrentThread.tsx
247
+ import { EditorView as EditorView2 } from "@codemirror/view";
41
248
  import { Schema } from "effect";
42
- import { useMemo } from "react";
43
- import { createResolver, LayoutAction, useIntentResolver } from "@dxos/app-framework";
44
- import { invariant } from "@dxos/invariant";
45
- import { Cursor, setSelection } from "@dxos/react-ui-editor";
46
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
249
+ import { useMemo as useMemo2 } from "react";
250
+ import { LayoutAction as LayoutAction2, createResolver, useIntentResolver } from "@dxos/app-framework";
251
+ import { invariant as invariant2 } from "@dxos/invariant";
252
+ import { Cursor as Cursor2, setSelection } from "@dxos/react-ui-editor";
253
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
47
254
  var useSelectCurrentThread = (editorView, documentId2) => {
48
- const scrollIntoViewResolver = useMemo(() => createResolver({
49
- intent: LayoutAction.UpdateLayout,
255
+ const scrollIntoViewResolver = useMemo2(() => createResolver({
256
+ intent: LayoutAction2.UpdateLayout,
50
257
  position: "hoist",
51
258
  filter: (data) => {
52
- if (!Schema.is(LayoutAction.ScrollIntoView.fields.input)(data)) {
259
+ if (!Schema.is(LayoutAction2.ScrollIntoView.fields.input)(data)) {
53
260
  return false;
54
261
  }
55
262
  return !!editorView && data.subject === documentId2 && !!data.options?.cursor;
56
263
  },
57
264
  resolve: ({ options: { cursor } }) => {
58
- invariant(editorView, "Editor view is not defined.", {
59
- F: __dxlog_file,
265
+ invariant2(editorView, "Editor view is not defined.", {
266
+ F: __dxlog_file2,
60
267
  L: 32,
61
268
  S: void 0,
62
269
  A: [
@@ -64,14 +271,14 @@ var useSelectCurrentThread = (editorView, documentId2) => {
64
271
  "'Editor view is not defined.'"
65
272
  ]
66
273
  });
67
- const range = Cursor.getRangeFromCursor(editorView.state, cursor);
274
+ const range = Cursor2.getRangeFromCursor(editorView.state, cursor);
68
275
  if (range) {
69
276
  const selection = editorView.state.selection.main.from !== range.from ? {
70
277
  anchor: range.from
71
278
  } : void 0;
72
279
  const effects = [
73
280
  // NOTE: This does not use the DOM scrollIntoView function.
74
- EditorView.scrollIntoView(range.from, {
281
+ EditorView2.scrollIntoView(range.from, {
75
282
  y: "start",
76
283
  yMargin: 96
77
284
  })
@@ -93,12 +300,12 @@ var useSelectCurrentThread = (editorView, documentId2) => {
93
300
  documentId2,
94
301
  editorView
95
302
  ]);
96
- useIntentResolver(MARKDOWN_PLUGIN, scrollIntoViewResolver);
303
+ useIntentResolver(meta.id, scrollIntoViewResolver);
97
304
  };
98
305
 
99
- // packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx
100
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
101
- var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery, ...props }) => {
306
+ // src/components/MarkdownEditor/MarkdownEditor.tsx
307
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditor.tsx";
308
+ var MarkdownEditor = ({ extensions: extensionsParam, slashCommandGroups, onLinkQuery, ...props }) => {
102
309
  var _effect = _useSignals();
103
310
  try {
104
311
  const { t } = useTranslation();
@@ -119,7 +326,7 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
119
326
  onLinkQuery,
120
327
  slashCommandGroups
121
328
  ]);
122
- const options = useMemo2(() => {
329
+ const options = useMemo3(() => {
123
330
  const trigger = onLinkQuery ? [
124
331
  "/",
125
332
  "@"
@@ -131,45 +338,28 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
131
338
  trigger,
132
339
  placeholder: {
133
340
  delay: 3e3,
134
- content: () => {
135
- return createElement("div", void 0, [
136
- createElement("span", {
137
- text: "Press"
138
- }),
139
- ...trigger.map((text) => createElement("span", {
140
- className: "border border-separator rounded-sm mx-1 px-1.5 pt-[1px] pb-[2px]",
141
- text
142
- })),
143
- createElement("span", {
144
- text: "for commands."
145
- })
146
- ]);
147
- }
341
+ content: () => Domino.of("div").child(Domino.of("span").text("Press"), ...trigger.map((text) => Domino.of("span").classNames("border border-separator rounded-sm mx-1 px-1.5 pt-[1px] pb-[2px]").text(text)), Domino.of("span").text("for commands.")).build()
148
342
  },
149
343
  getMenu
150
344
  };
151
345
  }, [
152
346
  getMenu
153
347
  ]);
154
- const { commandMenu, groupsRef, currentItem, onSelect, ...refPopoverProps } = useCommandMenu(options);
155
- const extensions = useMemo2(() => [
156
- _extensions,
348
+ const { commandMenu, groupsRef, ...commandMenuProps } = useCommandMenu(options);
349
+ const extensions = useMemo3(() => [
350
+ extensionsParam,
157
351
  commandMenu
158
- ].filter(isNotFalsy), [
159
- _extensions,
352
+ ].filter(isNotFalsy2), [
353
+ extensionsParam,
160
354
  commandMenu
161
355
  ]);
162
- return /* @__PURE__ */ React.createElement(RefPopover, {
163
- modal: false,
164
- ...refPopoverProps
165
- }, /* @__PURE__ */ React.createElement(MarkdownEditorImpl, {
356
+ return /* @__PURE__ */ React2.createElement(CommandMenuProvider, {
357
+ groups: groupsRef.current,
358
+ ...commandMenuProps
359
+ }, /* @__PURE__ */ React2.createElement(MarkdownEditorImpl, {
166
360
  ref: viewRef,
167
361
  ...props,
168
362
  extensions
169
- }), /* @__PURE__ */ React.createElement(CommandMenu, {
170
- groups: groupsRef.current,
171
- currentItem,
172
- onSelect
173
363
  }));
174
364
  } finally {
175
365
  _effect.f();
@@ -178,16 +368,16 @@ var MarkdownEditor = ({ extensions: _extensions, slashCommandGroups, onLinkQuery
178
368
  var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", initialValue, customActions, editorStateStore, extensions, extensionProviders, scrollPastEnd, toolbar, viewMode, onFileUpload, onViewModeChange }, forwardedRef) => {
179
369
  var _effect = _useSignals();
180
370
  try {
181
- const { t } = useTranslation(MARKDOWN_PLUGIN);
371
+ const { t } = useTranslation(meta.id);
182
372
  const { themeMode } = useThemeContext();
183
373
  const toolbarState = useEditorToolbarState({
184
374
  viewMode
185
375
  });
186
376
  const formattingObserver = useFormattingState(toolbarState);
187
- const { scrollTo, selection } = useMemo2(() => editorStateStore?.getState(id) ?? {}, [
377
+ const { scrollTo, selection } = useMemo3(() => editorStateStore?.getState(id) ?? {}, [
188
378
  id
189
379
  ]);
190
- const providerExtensions = useMemo2(() => extensionProviders?.flatMap((provider) => provider({})).filter(isNonNullable), [
380
+ const providerExtensions = useMemo3(() => extensionProviders?.flatMap((provider) => provider({})).filter(isNonNullable), [
191
381
  extensionProviders
192
382
  ]);
193
383
  const handleDrop = async (view, { files }) => {
@@ -207,11 +397,10 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
207
397
  createBasicExtensions({
208
398
  readOnly: viewMode === "readonly",
209
399
  placeholder: t("editor placeholder"),
210
- scrollPastEnd: role === "section" ? false : scrollPastEnd
211
- }),
212
- createMarkdownExtensions({
213
- themeMode
400
+ scrollPastEnd: role === "section" ? false : scrollPastEnd,
401
+ search: true
214
402
  }),
403
+ createMarkdownExtensions(),
215
404
  createThemeExtensions({
216
405
  themeMode,
217
406
  syntaxHighlighting: true,
@@ -223,7 +412,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
223
412
  }),
224
413
  providerExtensions,
225
414
  extensions
226
- ].filter(isNotFalsy),
415
+ ].filter(isNotFalsy2),
227
416
  ...role !== "section" && {
228
417
  id,
229
418
  scrollTo,
@@ -282,9 +471,9 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
282
471
  onFileUpload
283
472
  ]);
284
473
  const getView = useCallback(() => {
285
- invariant2(editorView, void 0, {
286
- F: __dxlog_file2,
287
- L: 240,
474
+ invariant3(editorView, void 0, {
475
+ F: __dxlog_file3,
476
+ L: 238,
288
477
  S: void 0,
289
478
  A: [
290
479
  "editorView",
@@ -306,9 +495,9 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
306
495
  }, [
307
496
  onFileUpload
308
497
  ]);
309
- return /* @__PURE__ */ React.createElement(StackItem.Content, {
498
+ return /* @__PURE__ */ React2.createElement(StackItem.Content, {
310
499
  toolbar: !!toolbar
311
- }, toolbar && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(EditorToolbar, {
500
+ }, toolbar && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(EditorToolbar, {
312
501
  attendableId: id,
313
502
  role,
314
503
  state: toolbarState,
@@ -316,7 +505,7 @@ var MarkdownEditorImpl = /* @__PURE__ */ forwardRef(({ id, role = "article", ini
316
505
  getView,
317
506
  image: handleImageUpload,
318
507
  viewMode: handleViewModeChange
319
- }), /* @__PURE__ */ React.createElement("input", getInputProps())), /* @__PURE__ */ React.createElement("div", {
508
+ }), /* @__PURE__ */ React2.createElement("input", getInputProps())), /* @__PURE__ */ React2.createElement("div", {
320
509
  role: "none",
321
510
  ref: parentRef,
322
511
  "data-testid": "composer.markdownRoot",
@@ -340,227 +529,13 @@ var useTest = (view) => {
340
529
  ]);
341
530
  };
342
531
 
343
- // packages/plugins/plugin-markdown/src/extensions.tsx
344
- import React2, { useMemo as useMemo3 } from "react";
345
- import { createRoot } from "react-dom/client";
346
- import { createIntent, LayoutAction as LayoutAction2, useCapabilities, useIntentDispatcher } from "@dxos/app-framework";
347
- import { invariant as invariant3 } from "@dxos/invariant";
348
- import { createDocAccessor, fullyQualifiedId, getSpace } from "@dxos/react-client/echo";
349
- import { useIdentity } from "@dxos/react-client/halo";
350
- import { Icon, ThemeProvider } from "@dxos/react-ui";
351
- import { InputModeExtensions, createDataExtensions, autocomplete, decorateMarkdown, folding, formattingKeymap, linkTooltip, listener, preview, selectionState, typewriter, EditorView as EditorView2, documentId, Cursor as Cursor2 } from "@dxos/react-ui-editor";
352
- import { defaultTx } from "@dxos/react-ui-theme";
353
- import { isNotFalsy as isNotFalsy2 } from "@dxos/util";
354
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-markdown/src/extensions.tsx";
355
- var useExtensions = ({ document, id, text, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
356
- const { dispatchPromise: dispatch } = useIntentDispatcher();
357
- const identity = useIdentity();
358
- const space = getSpace(document) ?? getSpace(text);
359
- const baseExtensions = useMemo3(() => createBaseExtensions({
360
- document,
361
- id,
362
- text,
363
- settings,
364
- selectionManager,
365
- viewMode,
366
- previewOptions,
367
- dispatch
368
- }), [
369
- document,
370
- id,
371
- text,
372
- viewMode,
373
- dispatch,
374
- previewOptions,
375
- settings,
376
- settings.editorInputMode,
377
- settings.folding,
378
- settings.numberedHeadings,
379
- settings.debug,
380
- settings.typewriter,
381
- selectionManager
382
- ]);
383
- const extensionProviders = useCapabilities(MarkdownCapabilities.Extensions);
384
- const pluginExtensions = useMemo3(() => {
385
- if (!document) {
386
- return [];
387
- }
388
- return extensionProviders.flat().reduce((acc, provider) => {
389
- const extension = typeof provider === "function" ? provider({
390
- document
391
- }) : provider;
392
- if (extension) {
393
- acc.push(extension);
394
- }
395
- return acc;
396
- }, []);
397
- }, [
398
- extensionProviders,
399
- document
400
- ]);
401
- return useMemo3(() => [
402
- // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
403
- document && createDataExtensions({
404
- id: document.id,
405
- text: document.content.target && createDocAccessor(document.content.target, [
406
- "content"
407
- ]),
408
- space,
409
- identity
410
- }),
411
- text && id && createDataExtensions({
412
- id,
413
- text: createDocAccessor(text, [
414
- "content"
415
- ]),
416
- space,
417
- identity
418
- }),
419
- selectionState(editorStateStore),
420
- document && listener({
421
- onChange: (text2) => setFallbackName(document, text2)
422
- }),
423
- baseExtensions,
424
- pluginExtensions
425
- ].filter(isNotFalsy2), [
426
- baseExtensions,
427
- pluginExtensions,
428
- document,
429
- document?.content?.target,
430
- text,
431
- id,
432
- space,
433
- identity
434
- ]);
435
- };
436
- var createBaseExtensions = ({ document, id, dispatch, settings, selectionManager, query, viewMode, previewOptions }) => {
437
- const extensions = [
438
- selectionManager && selectionChange(selectionManager),
439
- settings.editorInputMode && InputModeExtensions[settings.editorInputMode],
440
- settings.folding && folding()
441
- ].filter(isNotFalsy2);
442
- if (viewMode !== "source") {
443
- extensions.push(...[
444
- formattingKeymap(),
445
- decorateMarkdown({
446
- selectionChangeDelay: 100,
447
- numberedHeadings: settings.numberedHeadings ? {
448
- from: 2
449
- } : void 0,
450
- // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
451
- renderLinkButton: dispatch && (document || id) ? createLinkRenderer((id2) => {
452
- void dispatch(createIntent(LayoutAction2.Open, {
453
- part: "main",
454
- subject: [
455
- id2
456
- ],
457
- options: {
458
- pivotId: document ? fullyQualifiedId(document) : id2
459
- }
460
- }));
461
- }) : void 0
462
- }),
463
- linkTooltip(renderLinkTooltip),
464
- preview(previewOptions)
465
- ]);
466
- }
467
- if (query) {
468
- extensions.push(autocomplete({
469
- onSearch: (text) => {
470
- return query.objects.map((object) => object.name?.length && object.id !== document?.id ? {
471
- label: object.name,
472
- // TODO(burdon): Factor out URL builder.
473
- apply: `[${object.name}](/${fullyQualifiedId(object)})`
474
- } : void 0).filter(isNotFalsy2);
475
- }
476
- }));
477
- }
478
- if (settings.debug) {
479
- const items = settings.typewriter?.split(/[,\n]/) ?? "";
480
- if (items) {
481
- extensions.push(typewriter({
482
- items
483
- }));
484
- }
485
- }
486
- return extensions;
487
- };
488
- var selectionChange = (selectionManager) => {
489
- return EditorView2.updateListener.of((update) => {
490
- if (update.selectionSet) {
491
- const id = update.state.facet(documentId);
492
- const cursorConverter = update.state.facet(Cursor2.converter);
493
- const selection = update.state.selection;
494
- const ranges = selection.ranges.map((range) => ({
495
- from: cursorConverter.toCursor(range.from),
496
- to: cursorConverter.toCursor(range.to)
497
- })).filter(({ from, to }) => to > from);
498
- selectionManager.updateMultiRange(id, ranges);
499
- }
500
- });
501
- };
502
- var style = {
503
- hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
504
- icon: "inline-block leading-none mis-1 cursor-pointer"
505
- };
506
- var createLinkRenderer = (onSelectObject) => (el, { url }) => {
507
- const isInternal = url.startsWith("/") || // TODO(wittjosiah): This should probably be parsed out on paste?
508
- url.startsWith(window.location.origin);
509
- const options = isInternal ? {
510
- onClick: () => {
511
- const qualifiedId = url.split("/").at(-1);
512
- invariant3(qualifiedId, "Invalid link format.", {
513
- F: __dxlog_file3,
514
- L: 287,
515
- S: void 0,
516
- A: [
517
- "qualifiedId",
518
- "'Invalid link format.'"
519
- ]
520
- });
521
- onSelectObject(qualifiedId);
522
- }
523
- } : {
524
- href: url,
525
- rel: "noreferrer",
526
- target: "_blank"
527
- };
528
- renderRoot(el, /* @__PURE__ */ React2.createElement("a", {
529
- ...options,
530
- className: style.hover
531
- }, /* @__PURE__ */ React2.createElement(Icon, {
532
- icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
533
- size: 4,
534
- classNames: style.icon
535
- })));
536
- };
537
- var renderLinkTooltip = (el, { url }) => {
538
- const web = new URL(url);
539
- renderRoot(el, /* @__PURE__ */ React2.createElement("a", {
540
- href: url,
541
- rel: "noreferrer",
542
- target: "_blank",
543
- className: style.hover
544
- }, web.origin, /* @__PURE__ */ React2.createElement(Icon, {
545
- icon: "ph--arrow-square-out--bold",
546
- size: 4,
547
- classNames: style.icon
548
- })));
549
- };
550
- var renderRoot = (root, node) => {
551
- createRoot(root).render(/* @__PURE__ */ React2.createElement(ThemeProvider, {
552
- tx: defaultTx
553
- }, node));
554
- return root;
555
- };
556
-
557
- // packages/plugins/plugin-markdown/src/components/MarkdownContainer.tsx
532
+ // src/components/MarkdownContainer.tsx
558
533
  var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMode, editorStateStore, onViewModeChange }) => {
559
534
  var _effect = _useSignals2();
560
535
  try {
561
536
  const { t } = useTranslation2();
562
537
  const scrollPastEnd = role === "article";
563
- const doc = Obj.instanceOf(DocumentType, object) ? object : void 0;
538
+ const doc = Obj.instanceOf(Markdown_exports.Document, object) ? object : void 0;
564
539
  const text = Obj.instanceOf(DataType.Text, object) ? object : void 0;
565
540
  const [previewBlocks, setPreviewBlocks] = useState([]);
566
541
  const previewOptions = useMemo4(() => ({
@@ -593,16 +568,22 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
593
568
  ]);
594
569
  const space = getSpace2(object);
595
570
  const objectForms = useCapabilities2(SpaceCapabilities.ObjectForm);
596
- const filter = useMemo4(() => Filter.or(...objectForms.map((form) => Filter.type(form.objectSchema))), [
597
- objectForms
571
+ const schemaWhiteList = useCapabilities2(ClientCapabilities.SchemaWhiteList);
572
+ const filter = useMemo4(() => Filter.or(...objectForms.map((form) => Filter.type(form.objectSchema)), ...schemaWhiteList.flat().map((schema) => Filter.typename(Type.getTypename(schema)))), [
573
+ objectForms,
574
+ schemaWhiteList
598
575
  ]);
599
576
  const onLinkQuery = useCallback2(async (query) => {
600
577
  const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
601
578
  const results = await space?.db.query(Query.select(filter)).run();
602
579
  const getLabel = (object2) => {
580
+ const label = Obj.getLabel(object2);
581
+ if (label) {
582
+ return label;
583
+ }
603
584
  const type = Obj.getTypename(object2);
604
585
  const metadata = resolve(type);
605
- return metadata.label?.(object2) || object2.name || [
586
+ return metadata.label?.(object2) || [
606
587
  "object name placeholder",
607
588
  {
608
589
  ns: type,
@@ -618,7 +599,7 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
618
599
  label,
619
600
  icon: metadata.icon,
620
601
  onSelect: (view, head) => {
621
- const link = `[${label}][${Obj.getDXN(object2)}]`;
602
+ const link = `[${label}](${Obj.getDXN(object2)})`;
622
603
  if (query?.startsWith("@")) {
623
604
  insertAtLineStart(view, head, `!${link}
624
605
  `);
@@ -687,18 +668,16 @@ var MarkdownContainer = ({ id, role, object, settings, selectionManager, viewMod
687
668
  var PreviewBlock = ({ link, el }) => {
688
669
  var _effect = _useSignals2();
689
670
  try {
690
- const echoDXN = useMemo4(() => DXN.parse(link.ref).asEchoDXN(), [
691
- link.ref
692
- ]);
693
- const space = useSpace(echoDXN?.spaceId);
694
- const [subject] = useQuery(space, Query.select(Filter.ids(echoDXN?.echoId ?? "")));
671
+ const client = useClient();
672
+ const dxn = DXN.parse(link.ref);
673
+ const subject = client.graph.ref(dxn).target;
695
674
  const data = useMemo4(() => ({
696
675
  subject
697
676
  }), [
698
677
  subject
699
678
  ]);
700
679
  return /* @__PURE__ */ createPortal(/* @__PURE__ */ React3.createElement(Surface, {
701
- role: "card--document",
680
+ role: "card--transclusion",
702
681
  data,
703
682
  limit: 1
704
683
  }), el);
@@ -765,6 +744,7 @@ var DocumentEditor = ({ id, document: doc, settings, viewMode, ...props }) => {
765
744
  var MarkdownContainer_default = MarkdownContainer;
766
745
  export {
767
746
  DocumentEditor,
747
+ MarkdownContainer,
768
748
  MarkdownContainer_default as default
769
749
  };
770
- //# sourceMappingURL=MarkdownContainer-EFWQ6DHD.mjs.map
750
+ //# sourceMappingURL=MarkdownContainer-OZ5DHEIA.mjs.map