@dxos/plugin-markdown 0.8.3 → 0.8.4-main.1f223c7

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