@dxos/plugin-markdown 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (266) hide show
  1. package/dist/lib/browser/{chunk-WIPSLZ6L.mjs → MarkdownCard-R6VVXOMN.mjs} +27 -26
  2. package/dist/lib/browser/MarkdownCard-R6VVXOMN.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-KDKXFKDN.mjs → MarkdownContainer-LSOAAG6R.mjs} +48 -25
  4. package/dist/lib/browser/MarkdownContainer-LSOAAG6R.mjs.map +7 -0
  5. package/dist/lib/browser/MarkdownSettings-OD7AJSSJ.mjs +106 -0
  6. package/dist/lib/browser/MarkdownSettings-OD7AJSSJ.mjs.map +7 -0
  7. package/dist/lib/browser/{anchor-sort-WQ3TL7ZI.mjs → anchor-sort-35SV33JX.mjs} +6 -4
  8. package/dist/lib/browser/anchor-sort-35SV33JX.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-serializer-ULZUJKOD.mjs → app-graph-serializer-RMUNNVUY.mjs} +9 -7
  10. package/dist/lib/browser/app-graph-serializer-RMUNNVUY.mjs.map +7 -0
  11. package/dist/lib/browser/blueprint-definition-SFGTWLSY.mjs +18 -0
  12. package/dist/lib/browser/blueprint-definition-SFGTWLSY.mjs.map +7 -0
  13. package/dist/lib/browser/blueprints/index.mjs +5 -4
  14. package/dist/lib/browser/{chunk-LMO5UVKL.mjs → chunk-4CSOMIT4.mjs} +29 -61
  15. package/dist/lib/browser/chunk-4CSOMIT4.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-646I24Q2.mjs +178 -0
  17. package/dist/lib/browser/chunk-646I24Q2.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-BX73DASG.mjs → chunk-B6S4YQWZ.mjs} +285 -206
  19. package/dist/lib/browser/chunk-B6S4YQWZ.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-RYZHVXZ5.mjs +28 -0
  21. package/dist/lib/browser/chunk-RYZHVXZ5.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-CUGDX7KA.mjs → chunk-WU3CQIPM.mjs} +2 -2
  23. package/dist/lib/browser/{chunk-JOXYQLKH.mjs → chunk-YKXQWJX6.mjs} +9 -4
  24. package/dist/lib/browser/chunk-YKXQWJX6.mjs.map +7 -0
  25. package/dist/lib/browser/cli/index.mjs +15 -13
  26. package/dist/lib/browser/cli/index.mjs.map +3 -3
  27. package/dist/lib/browser/index.mjs +49 -48
  28. package/dist/lib/browser/index.mjs.map +3 -3
  29. package/dist/lib/browser/meta.json +1 -1
  30. package/dist/lib/browser/{operation-resolver-EGCWOQKJ.mjs → operation-resolver-MVI2ZJ7M.mjs} +6 -18
  31. package/dist/lib/browser/operation-resolver-MVI2ZJ7M.mjs.map +7 -0
  32. package/dist/lib/browser/react-surface-OJYNFGZB.mjs +117 -0
  33. package/dist/lib/browser/react-surface-OJYNFGZB.mjs.map +7 -0
  34. package/dist/lib/browser/{settings-JY5JE7MI.mjs → settings-R722LDFD.mjs} +8 -5
  35. package/dist/lib/browser/settings-R722LDFD.mjs.map +7 -0
  36. package/dist/lib/browser/{state-QE7VSJWJ.mjs → state-MRJLGZW4.mjs} +7 -5
  37. package/dist/lib/{node-esm/state-LXE5XIN4.mjs.map → browser/state-MRJLGZW4.mjs.map} +2 -2
  38. package/dist/lib/browser/types/index.mjs +2 -1
  39. package/dist/lib/node-esm/{chunk-RQP7G7XW.mjs → MarkdownCard-EE3Q2JPL.mjs} +27 -26
  40. package/dist/lib/node-esm/MarkdownCard-EE3Q2JPL.mjs.map +7 -0
  41. package/dist/lib/node-esm/{chunk-3JYPCC7M.mjs → MarkdownContainer-NMFVVFBR.mjs} +48 -25
  42. package/dist/lib/node-esm/MarkdownContainer-NMFVVFBR.mjs.map +7 -0
  43. package/dist/lib/node-esm/MarkdownSettings-U7GJ4OP3.mjs +107 -0
  44. package/dist/lib/node-esm/MarkdownSettings-U7GJ4OP3.mjs.map +7 -0
  45. package/dist/lib/node-esm/{anchor-sort-G7D5TAI6.mjs → anchor-sort-QCV4U222.mjs} +6 -4
  46. package/dist/lib/node-esm/anchor-sort-QCV4U222.mjs.map +7 -0
  47. package/dist/lib/node-esm/{app-graph-serializer-W5YMQP7P.mjs → app-graph-serializer-I27YTNDW.mjs} +9 -7
  48. package/dist/lib/node-esm/app-graph-serializer-I27YTNDW.mjs.map +7 -0
  49. package/dist/lib/node-esm/blueprint-definition-VZEIBTAP.mjs +19 -0
  50. package/dist/lib/node-esm/blueprint-definition-VZEIBTAP.mjs.map +7 -0
  51. package/dist/lib/node-esm/blueprints/index.mjs +5 -4
  52. package/dist/lib/node-esm/{chunk-PRV35A7Z.mjs → chunk-2LVNBTQT.mjs} +29 -61
  53. package/dist/lib/node-esm/chunk-2LVNBTQT.mjs.map +7 -0
  54. package/dist/lib/node-esm/chunk-CW4FZNMZ.mjs +29 -0
  55. package/dist/lib/node-esm/chunk-CW4FZNMZ.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-W3IIKDV5.mjs → chunk-HVAZON2M.mjs} +2 -2
  57. package/dist/lib/node-esm/chunk-KHTJJ45U.mjs +179 -0
  58. package/dist/lib/node-esm/chunk-KHTJJ45U.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-44VJC3QF.mjs → chunk-TR2NZYXO.mjs} +9 -4
  60. package/dist/lib/node-esm/chunk-TR2NZYXO.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-D4BCFPKK.mjs → chunk-VG2PIENM.mjs} +285 -206
  62. package/dist/lib/node-esm/chunk-VG2PIENM.mjs.map +7 -0
  63. package/dist/lib/node-esm/cli/index.mjs +15 -13
  64. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  65. package/dist/lib/node-esm/index.mjs +49 -48
  66. package/dist/lib/node-esm/index.mjs.map +3 -3
  67. package/dist/lib/node-esm/meta.json +1 -1
  68. package/dist/lib/node-esm/{operation-resolver-2HIS2AQZ.mjs → operation-resolver-6TK6ARJ6.mjs} +6 -18
  69. package/dist/lib/node-esm/operation-resolver-6TK6ARJ6.mjs.map +7 -0
  70. package/dist/lib/node-esm/react-surface-UVNCUX77.mjs +118 -0
  71. package/dist/lib/node-esm/react-surface-UVNCUX77.mjs.map +7 -0
  72. package/dist/lib/node-esm/{settings-4UGMPIRY.mjs → settings-RDYNOKVE.mjs} +8 -5
  73. package/dist/lib/node-esm/settings-RDYNOKVE.mjs.map +7 -0
  74. package/dist/lib/node-esm/{state-LXE5XIN4.mjs → state-7HQSNXXQ.mjs} +7 -5
  75. package/dist/lib/{browser/state-QE7VSJWJ.mjs.map → node-esm/state-7HQSNXXQ.mjs.map} +2 -2
  76. package/dist/lib/node-esm/types/index.mjs +2 -1
  77. package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
  78. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -1
  79. package/dist/types/src/blueprints/functions/index.d.ts +41 -3
  80. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -1
  81. package/dist/types/src/blueprints/functions/open.d.ts +8 -1
  82. package/dist/types/src/blueprints/functions/open.d.ts.map +1 -1
  83. package/dist/types/src/blueprints/functions/update.d.ts +16 -3
  84. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -1
  85. package/dist/types/src/blueprints/index.d.ts +1 -1
  86. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  87. package/dist/types/src/blueprints/markdown-blueprint.d.ts +3 -20
  88. package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +3 -2
  90. package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/anchor-sort/index.d.ts +1 -1
  92. package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +2 -2
  94. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +1 -1
  96. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +1 -1
  98. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +3 -7
  100. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
  102. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  104. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  106. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  108. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  110. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/settings/index.d.ts +1 -1
  112. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/settings/settings.d.ts +3 -2
  114. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/state/state.d.ts +1 -1
  116. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  117. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +2 -2
  118. package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
  119. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +5 -3
  120. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  121. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +1 -1
  122. package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
  123. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +2 -0
  124. package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
  125. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +5 -5
  126. package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
  127. package/dist/types/src/components/index.d.ts +1 -8
  128. package/dist/types/src/components/index.d.ts.map +1 -1
  129. package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
  130. package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
  131. package/dist/types/src/{components → containers}/MarkdownCard/index.d.ts +0 -1
  132. package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
  133. package/dist/types/src/{components → containers/MarkdownContainer}/MarkdownContainer.d.ts +6 -6
  134. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -0
  135. package/dist/types/src/{components → containers/MarkdownContainer}/MarkdownContainer.stories.d.ts +31 -1
  136. package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -0
  137. package/dist/types/src/containers/MarkdownContainer/index.d.ts +3 -0
  138. package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -0
  139. package/dist/types/src/{components → containers}/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
  140. package/dist/types/src/containers/MarkdownSettings/index.d.ts +3 -0
  141. package/dist/types/src/containers/MarkdownSettings/index.d.ts.map +1 -0
  142. package/dist/types/src/containers/index.d.ts +6 -0
  143. package/dist/types/src/containers/index.d.ts.map +1 -0
  144. package/dist/types/src/hooks/useExtensions.d.ts +3 -3
  145. package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
  146. package/dist/types/src/hooks/useSelectCurrentThread.d.ts +1 -1
  147. package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
  148. package/dist/types/src/index.d.ts +1 -0
  149. package/dist/types/src/index.d.ts.map +1 -1
  150. package/dist/types/src/translations.d.ts +30 -0
  151. package/dist/types/src/translations.d.ts.map +1 -1
  152. package/dist/types/src/types/Markdown.d.ts +1 -1
  153. package/dist/types/src/types/Markdown.d.ts.map +1 -1
  154. package/dist/types/src/types/MarkdownAction.d.ts +2 -22
  155. package/dist/types/src/types/MarkdownAction.d.ts.map +1 -1
  156. package/dist/types/src/types/events.d.ts.map +1 -1
  157. package/dist/types/src/util.d.ts +1 -1
  158. package/dist/types/src/util.d.ts.map +1 -1
  159. package/dist/types/tsconfig.tsbuildinfo +1 -1
  160. package/package.json +64 -57
  161. package/src/MarkdownPlugin.tsx +29 -38
  162. package/src/blueprints/functions/create.conversations.json +1 -1
  163. package/src/blueprints/functions/create.test.ts +24 -57
  164. package/src/blueprints/functions/create.ts +6 -5
  165. package/src/blueprints/functions/index.ts +11 -3
  166. package/src/blueprints/functions/open.ts +10 -10
  167. package/src/blueprints/functions/update.conversations.json +1 -1
  168. package/src/blueprints/functions/update.test.ts +133 -67
  169. package/src/blueprints/functions/update.ts +54 -13
  170. package/src/blueprints/index.ts +1 -1
  171. package/src/blueprints/markdown-blueprint.ts +14 -6
  172. package/src/capabilities/anchor-sort/anchor-sort.ts +3 -2
  173. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +5 -4
  174. package/src/capabilities/artifact-definition/artifact-definition.ts +2 -2
  175. package/src/capabilities/blueprint-definition/blueprint-definition.ts +6 -14
  176. package/src/capabilities/operation-resolver/operation-resolver.ts +3 -14
  177. package/src/capabilities/react-surface/react-surface.tsx +30 -19
  178. package/src/capabilities/settings/settings.ts +3 -2
  179. package/src/capabilities/state/state.ts +2 -2
  180. package/src/cli/plugin.ts +5 -5
  181. package/src/components/MarkdownEditor/FileUpload.tsx +2 -2
  182. package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +25 -22
  183. package/src/components/MarkdownEditor/MarkdownEditor.tsx +44 -17
  184. package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +6 -5
  185. package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +13 -13
  186. package/src/components/index.ts +2 -14
  187. package/src/{components → containers}/MarkdownCard/MarkdownCard.stories.tsx +17 -7
  188. package/src/{components → containers}/MarkdownCard/MarkdownCard.tsx +21 -24
  189. package/src/{components → containers}/MarkdownCard/index.ts +0 -2
  190. package/src/{components → containers/MarkdownContainer}/MarkdownContainer.stories.tsx +22 -9
  191. package/src/{components → containers/MarkdownContainer}/MarkdownContainer.tsx +57 -34
  192. package/src/containers/MarkdownContainer/index.ts +6 -0
  193. package/src/{components → containers}/MarkdownSettings/MarkdownSettings.tsx +24 -24
  194. package/src/containers/MarkdownSettings/index.ts +7 -0
  195. package/src/containers/index.ts +11 -0
  196. package/src/hooks/useEditorMenuOptions.ts +1 -1
  197. package/src/hooks/useExtensions.tsx +52 -89
  198. package/src/hooks/useLinkQuery.ts +3 -3
  199. package/src/hooks/useSelectCurrentThread.tsx +6 -6
  200. package/src/index.ts +2 -0
  201. package/src/meta.ts +1 -1
  202. package/src/testing.ts +2 -2
  203. package/src/translations.ts +3 -0
  204. package/src/types/Markdown.ts +13 -5
  205. package/src/types/MarkdownAction.ts +3 -18
  206. package/src/types/capabilities.ts +4 -4
  207. package/src/types/events.ts +4 -3
  208. package/src/util.tsx +2 -2
  209. package/dist/lib/browser/MarkdownCard-WHK3ORP7.mjs +0 -12
  210. package/dist/lib/browser/MarkdownCard-WHK3ORP7.mjs.map +0 -7
  211. package/dist/lib/browser/MarkdownContainer-V7EAADMF.mjs +0 -12
  212. package/dist/lib/browser/MarkdownContainer-V7EAADMF.mjs.map +0 -7
  213. package/dist/lib/browser/anchor-sort-WQ3TL7ZI.mjs.map +0 -7
  214. package/dist/lib/browser/app-graph-serializer-ULZUJKOD.mjs.map +0 -7
  215. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs +0 -19
  216. package/dist/lib/browser/blueprint-definition-TLV4PNZW.mjs.map +0 -7
  217. package/dist/lib/browser/chunk-BX73DASG.mjs.map +0 -7
  218. package/dist/lib/browser/chunk-FWQQW6KU.mjs +0 -144
  219. package/dist/lib/browser/chunk-FWQQW6KU.mjs.map +0 -7
  220. package/dist/lib/browser/chunk-JOXYQLKH.mjs.map +0 -7
  221. package/dist/lib/browser/chunk-KDKXFKDN.mjs.map +0 -7
  222. package/dist/lib/browser/chunk-LMO5UVKL.mjs.map +0 -7
  223. package/dist/lib/browser/chunk-S45ULIOG.mjs +0 -101
  224. package/dist/lib/browser/chunk-S45ULIOG.mjs.map +0 -7
  225. package/dist/lib/browser/chunk-WIPSLZ6L.mjs.map +0 -7
  226. package/dist/lib/browser/operation-resolver-EGCWOQKJ.mjs.map +0 -7
  227. package/dist/lib/browser/react-surface-SRPLD3ED.mjs +0 -213
  228. package/dist/lib/browser/react-surface-SRPLD3ED.mjs.map +0 -7
  229. package/dist/lib/browser/settings-JY5JE7MI.mjs.map +0 -7
  230. package/dist/lib/node-esm/MarkdownCard-WJPLQTFS.mjs +0 -13
  231. package/dist/lib/node-esm/MarkdownCard-WJPLQTFS.mjs.map +0 -7
  232. package/dist/lib/node-esm/MarkdownContainer-LUSMORP2.mjs +0 -13
  233. package/dist/lib/node-esm/MarkdownContainer-LUSMORP2.mjs.map +0 -7
  234. package/dist/lib/node-esm/anchor-sort-G7D5TAI6.mjs.map +0 -7
  235. package/dist/lib/node-esm/app-graph-serializer-W5YMQP7P.mjs.map +0 -7
  236. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs +0 -20
  237. package/dist/lib/node-esm/blueprint-definition-HYFA7BKQ.mjs.map +0 -7
  238. package/dist/lib/node-esm/chunk-3JYPCC7M.mjs.map +0 -7
  239. package/dist/lib/node-esm/chunk-44VJC3QF.mjs.map +0 -7
  240. package/dist/lib/node-esm/chunk-D4BCFPKK.mjs.map +0 -7
  241. package/dist/lib/node-esm/chunk-EYAFC4N7.mjs +0 -145
  242. package/dist/lib/node-esm/chunk-EYAFC4N7.mjs.map +0 -7
  243. package/dist/lib/node-esm/chunk-PRV35A7Z.mjs.map +0 -7
  244. package/dist/lib/node-esm/chunk-RQP7G7XW.mjs.map +0 -7
  245. package/dist/lib/node-esm/chunk-SDTYEGGL.mjs +0 -102
  246. package/dist/lib/node-esm/chunk-SDTYEGGL.mjs.map +0 -7
  247. package/dist/lib/node-esm/operation-resolver-2HIS2AQZ.mjs.map +0 -7
  248. package/dist/lib/node-esm/react-surface-RONSOJIQ.mjs +0 -214
  249. package/dist/lib/node-esm/react-surface-RONSOJIQ.mjs.map +0 -7
  250. package/dist/lib/node-esm/settings-4UGMPIRY.mjs.map +0 -7
  251. package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +0 -1
  252. package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +0 -1
  253. package/dist/types/src/components/MarkdownCard/index.d.ts.map +0 -1
  254. package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
  255. package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
  256. package/dist/types/src/components/MarkdownSettings/index.d.ts +0 -2
  257. package/dist/types/src/components/MarkdownSettings/index.d.ts.map +0 -1
  258. package/dist/types/src/components/Suggestions.stories.d.ts +0 -11
  259. package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
  260. package/src/components/MarkdownSettings/index.ts +0 -5
  261. package/src/components/Suggestions.stories.tsx +0 -215
  262. /package/dist/lib/browser/{chunk-CUGDX7KA.mjs.map → chunk-WU3CQIPM.mjs.map} +0 -0
  263. /package/dist/lib/node-esm/{chunk-W3IIKDV5.mjs.map → chunk-HVAZON2M.mjs.map} +0 -0
  264. /package/dist/types/src/{components → containers}/MarkdownCard/MarkdownCard.d.ts +0 -0
  265. /package/dist/types/src/{components → containers}/MarkdownCard/MarkdownCard.stories.d.ts +0 -0
  266. /package/dist/types/src/{components → containers}/MarkdownSettings/MarkdownSettings.d.ts +0 -0
@@ -1,92 +1,116 @@
1
1
  import {
2
- setFallbackName
3
- } from "./chunk-S45ULIOG.mjs";
2
+ Markdown_exports
3
+ } from "./chunk-4CSOMIT4.mjs";
4
4
  import {
5
- Markdown_exports,
6
5
  meta
7
- } from "./chunk-LMO5UVKL.mjs";
6
+ } from "./chunk-RYZHVXZ5.mjs";
8
7
 
9
- // src/hooks/useLinkQuery.ts
10
- import * as Option from "effect/Option";
11
- import { useCallback, useMemo } from "react";
12
- import { Common } from "@dxos/app-framework";
13
- import { usePluginManager } from "@dxos/app-framework/react";
14
- import { Filter, Obj, Query, Type } from "@dxos/echo";
15
- import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
16
- import { toLocalizedString, useTranslation } from "@dxos/react-ui";
17
- import { insertAtCursor, insertAtLineStart } from "@dxos/ui-editor";
18
- var useLinkQuery = (db) => {
19
- const { t } = useTranslation();
20
- const manager = usePluginManager();
21
- const resolve = useCallback((typename) => manager.capabilities.getAll(Common.Capability.Metadata).find(({ id }) => id === typename)?.metadata ?? {}, [
22
- manager
23
- ]);
24
- const filter = useMemo(() => Filter.or(...(db?.schemaRegistry.query({
25
- location: [
26
- "database",
27
- "runtime"
28
- ]
29
- }).runSync() ?? []).filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation).filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false))).map((schema) => Filter.typename(Type.getTypename(schema)))), [
30
- db
31
- ]);
32
- const handleLinkQuery = useCallback(async (query) => {
33
- const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
34
- const results = await db?.query(Query.select(filter)).run();
35
- const getLabel = (object) => {
36
- const label = Obj.getLabel(object);
37
- if (label) {
38
- return label;
39
- }
40
- const type = Obj.getTypename(object);
41
- const metadata = resolve(type);
42
- return metadata.label?.(object) || [
43
- "object name placeholder",
44
- {
45
- ns: type,
46
- default: "New object"
8
+ // src/util.tsx
9
+ import { debounce } from "@dxos/async";
10
+ import { Obj } from "@dxos/echo";
11
+ var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
12
+ var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
13
+ var nonTitleChars = /[^\w ]/g;
14
+ var skipPatterns = [
15
+ /^!\[/,
16
+ /^---\s*$/,
17
+ /^```/,
18
+ /^\s*$/
19
+ ];
20
+ var titlePatterns = [
21
+ /^#{1,6}\s+(.+)/
22
+ ];
23
+ var getFallbackName = (content = "") => {
24
+ const len = content.length;
25
+ let i = 0;
26
+ while (i < len) {
27
+ let lineEnd = i;
28
+ while (lineEnd < len && content[lineEnd] !== "\n") {
29
+ lineEnd++;
30
+ }
31
+ const line = content.slice(i, lineEnd).trim();
32
+ i = lineEnd + 1;
33
+ if (skipPatterns.some((pattern) => pattern.test(line))) {
34
+ continue;
35
+ }
36
+ for (const pattern of titlePatterns) {
37
+ const match = pattern.exec(line);
38
+ if (match) {
39
+ const text2 = match[1].replaceAll(nonTitleChars, "").trim();
40
+ if (text2.length > 0) {
41
+ return text2;
47
42
  }
48
- ];
49
- };
50
- const items = results?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name)).map((object) => {
51
- const metadata = resolve(Obj.getTypename(object));
52
- const label = toLocalizedString(getLabel(object), t);
53
- return {
54
- id: object.id,
55
- label,
56
- icon: metadata.icon,
57
- onSelect: ({ view, head }) => {
58
- const link = `[${label}](${Obj.getDXN(object)})`;
59
- if (query?.startsWith("@")) {
60
- insertAtLineStart(view, head, `!${link}
61
- `);
62
- } else {
63
- insertAtCursor(view, head, `${link} `);
43
+ }
44
+ }
45
+ const maxLen = 32;
46
+ const text = line.replaceAll(nonTitleChars, "").trim();
47
+ if (text.length > 0) {
48
+ if (text.length > maxLen) {
49
+ const words = text.split(/\s+/);
50
+ let result = "";
51
+ for (const word of words) {
52
+ const next = result.length === 0 ? word : result + " " + word;
53
+ if (next.length > maxLen) {
54
+ break;
64
55
  }
56
+ result = next;
65
57
  }
66
- };
67
- }) ?? [];
68
- return [
69
- {
70
- id: "echo",
71
- items
58
+ return result + "\u2026";
72
59
  }
73
- ];
74
- }, [
75
- db,
76
- filter,
77
- resolve
78
- ]);
79
- return handleLinkQuery;
60
+ return text;
61
+ }
62
+ }
63
+ return "";
80
64
  };
65
+ var getContentSnippet = (content = "", maxLines = 3) => {
66
+ const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
67
+ return abstract.slice(0, maxLines).join("\n") ?? "";
68
+ };
69
+ var setFallbackName = debounce((doc, content = "") => {
70
+ const name = getFallbackName(content);
71
+ if (doc.fallbackName !== name) {
72
+ Obj.change(doc, (d) => {
73
+ d.fallbackName = name;
74
+ });
75
+ }
76
+ }, 200);
77
+ var serializer = {
78
+ serialize: async ({ object }) => {
79
+ const { content } = await object.content.load();
80
+ return JSON.stringify({
81
+ name: object.name,
82
+ fallbackName: object.fallbackName,
83
+ content
84
+ });
85
+ },
86
+ deserialize: async ({ content: serialized }) => {
87
+ const { name, fallbackName, content } = JSON.parse(serialized);
88
+ return Markdown_exports.make({
89
+ name,
90
+ fallbackName,
91
+ content
92
+ });
93
+ }
94
+ };
95
+
96
+ // src/components/MarkdownEditor/MarkdownEditor.tsx
97
+ import { createContext } from "@radix-ui/react-context";
98
+ import React4, { useMemo as useMemo6, useState as useState2 } from "react";
99
+ import { createPortal as createPortal2 } from "react-dom";
100
+ import { Surface } from "@dxos/app-framework/ui";
101
+ import { DXN } from "@dxos/keys";
102
+ import { useClient } from "@dxos/react-client";
103
+ import { EditorMenuProvider, useEditorMenu, useEditorToolbar } from "@dxos/react-ui-editor";
104
+ import { isNonNullable } from "@dxos/util";
81
105
 
82
106
  // src/hooks/useEditorMenuOptions.ts
83
- import { useCallback as useCallback2, useMemo as useMemo2, useRef } from "react";
84
- import { toLocalizedString as toLocalizedString2, useTranslation as useTranslation2 } from "@dxos/react-ui";
107
+ import { useCallback, useMemo, useRef } from "react";
108
+ import { toLocalizedString, useTranslation } from "@dxos/react-ui";
85
109
  import { filterMenuGroups, formattingCommands, linkSlashCommands } from "@dxos/react-ui-editor";
86
110
  import { Domino } from "@dxos/ui";
87
111
  var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) => {
88
- const { t } = useTranslation2(meta.id);
89
- const getMenu = useCallback2(({ text, trigger }) => {
112
+ const { t } = useTranslation(meta.id);
113
+ const getMenu = useCallback(({ text, trigger }) => {
90
114
  switch (trigger) {
91
115
  case "@": {
92
116
  return onLinkQuery?.(text) ?? [];
@@ -97,7 +121,7 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
97
121
  formattingCommands,
98
122
  linkSlashCommands,
99
123
  ...slashCommandGroups ?? []
100
- ], (item) => text ? toLocalizedString2(item.label, t).toLowerCase().includes(text.toLowerCase()) : true);
124
+ ], (item) => text ? toLocalizedString(item.label, t).toLowerCase().includes(text.toLowerCase()) : true);
101
125
  }
102
126
  }
103
127
  }, [
@@ -105,7 +129,7 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
105
129
  onLinkQuery
106
130
  ]);
107
131
  const viewRef = useRef(editorView);
108
- return useMemo2(() => {
132
+ return useMemo(() => {
109
133
  const trigger = onLinkQuery ? [
110
134
  "/",
111
135
  "@"
@@ -116,7 +140,7 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
116
140
  delay: 3e3,
117
141
  content: () => {
118
142
  const pressEl = Domino.of("span").text("Press");
119
- const triggerEls = trigger.map((text) => Domino.of("span").classNames("mx-1 pli-1.5 pt-[1px] pb-[2px] border border-separator rounded-sm").text(text));
143
+ const triggerEls = trigger.map((text) => Domino.of("span").classNames("mx-1 px-1.5 pt-[1px] pb-[2px] border border-separator rounded-xs").text(text));
120
144
  const forCommandsEl = Domino.of("span").text("for commands.");
121
145
  return Domino.of("div").children(pressEl, ...triggerEls, forCommandsEl).root;
122
146
  }
@@ -134,43 +158,38 @@ var useEditorMenuOptions = ({ editorView, slashCommandGroups, onLinkQuery }) =>
134
158
  };
135
159
 
136
160
  // src/hooks/useExtensions.tsx
137
- import React, { useMemo as useMemo3 } from "react";
138
- import { createRoot } from "react-dom/client";
139
- import { Common as Common2 } from "@dxos/app-framework";
140
- import { useOperationInvoker } from "@dxos/app-framework/react";
161
+ import { useMemo as useMemo2 } from "react";
141
162
  import { debounceAndThrottle } from "@dxos/async";
142
163
  import { Obj as Obj2 } from "@dxos/echo";
143
164
  import { createDocAccessor } from "@dxos/echo-db";
144
165
  import { invariant } from "@dxos/invariant";
145
166
  import { getSpace, useObject } from "@dxos/react-client/echo";
146
167
  import { useIdentity } from "@dxos/react-client/halo";
147
- import { Icon, ThemeProvider } from "@dxos/react-ui";
148
168
  import { Text } from "@dxos/schema";
169
+ import { Domino as Domino2 } from "@dxos/ui";
149
170
  import { Cursor, EditorView, InputModeExtensions, createDataExtensions, decorateMarkdown, documentId, folding, formattingKeymap, linkTooltip, listener, preview, replacer, selectionState, typewriter } from "@dxos/ui-editor";
150
- import { defaultTx } from "@dxos/ui-theme";
151
- import { isTruthy } from "@dxos/util";
171
+ import { isTruthy, safeUrl } from "@dxos/util";
152
172
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useExtensions.tsx";
153
- var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorStateStore, previewOptions }) => {
154
- const { invokePromise } = useOperationInvoker();
173
+ var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorStateStore, previewOptions, onSelectObject }) => {
155
174
  const identity = useIdentity();
156
175
  const space = getSpace(object);
157
176
  const contentRef = Obj2.instanceOf(Markdown_exports.Document, object) ? object.content : void 0;
158
177
  useObject(contentRef);
159
178
  const target = contentRef?.target ?? (Obj2.instanceOf(Text.Text, object) ? object : void 0);
160
- const baseExtensions = useMemo3(() => createBaseExtensions({
179
+ const baseExtensions = useMemo2(() => createBaseExtensions({
161
180
  id,
162
181
  object,
163
182
  settings,
164
183
  selectionManager,
165
184
  viewMode,
166
185
  previewOptions,
167
- invokePromise
186
+ onSelectObject
168
187
  }), [
169
188
  id,
170
189
  object,
171
190
  viewMode,
172
- invokePromise,
173
191
  previewOptions,
192
+ onSelectObject,
174
193
  settings,
175
194
  settings?.debug,
176
195
  settings?.editorInputMode,
@@ -179,7 +198,7 @@ var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorS
179
198
  settings?.typewriter,
180
199
  selectionManager
181
200
  ]);
182
- return useMemo3(() => [
201
+ return useMemo2(() => [
183
202
  // TODO(burdon): Pass this in?
184
203
  // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
185
204
  target && createDataExtensions({
@@ -207,7 +226,7 @@ var useExtensions = ({ id, object, settings, selectionManager, viewMode, editorS
207
226
  baseExtensions
208
227
  ]);
209
228
  };
210
- var createBaseExtensions = ({ id, object, invokePromise, settings, selectionManager, viewMode, previewOptions }) => {
229
+ var createBaseExtensions = ({ id, object, onSelectObject, settings, selectionManager, viewMode, previewOptions }) => {
211
230
  const extensions = [
212
231
  selectionManager && selectionChange(selectionManager),
213
232
  settings?.editorInputMode && InputModeExtensions[settings.editorInputMode],
@@ -221,16 +240,8 @@ var createBaseExtensions = ({ id, object, invokePromise, settings, selectionMana
221
240
  numberedHeadings: settings?.numberedHeadings ? {
222
241
  from: 2
223
242
  } : void 0,
224
- // TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
225
- // TODO(burdon): Create dx-tag.
226
- renderLinkButton: invokePromise && (object || id) ? createLinkRenderer((targetId) => {
227
- void invokePromise(Common2.LayoutOperation.Open, {
228
- subject: [
229
- targetId
230
- ],
231
- pivotId: object && Obj2.isObject(object) ? Obj2.getDXN(object).toString() : id
232
- });
233
- }) : void 0
243
+ // TODO(wittjosiah): For internal links render the label of the object.
244
+ renderLinkButton: onSelectObject && createRenderLink(onSelectObject)
234
245
  }),
235
246
  linkTooltip(renderLinkTooltip),
236
247
  preview(previewOptions),
@@ -248,32 +259,31 @@ var createBaseExtensions = ({ id, object, invokePromise, settings, selectionMana
248
259
  return extensions;
249
260
  };
250
261
  var selectionChange = (selectionManager) => {
251
- return EditorView.updateListener.of(debounceAndThrottle((update) => {
262
+ const debouncedHandler = debounceAndThrottle((update) => {
263
+ const id = update.state.facet(documentId);
264
+ const cursorConverter = update.state.facet(Cursor.converter);
265
+ const selection = update.state.selection;
266
+ const ranges = selection.ranges.map((range) => ({
267
+ from: cursorConverter.toCursor(range.from),
268
+ to: cursorConverter.toCursor(range.to)
269
+ })).filter(({ from, to }) => to > from);
270
+ selectionManager.updateMultiRange(id, ranges);
271
+ }, 100);
272
+ return EditorView.updateListener.of((update) => {
252
273
  if (update.selectionSet) {
253
- const id = update.state.facet(documentId);
254
- const cursorConverter = update.state.facet(Cursor.converter);
255
- const selection = update.state.selection;
256
- const ranges = selection.ranges.map((range) => ({
257
- from: cursorConverter.toCursor(range.from),
258
- to: cursorConverter.toCursor(range.to)
259
- })).filter(({ from, to }) => to > from);
260
- selectionManager.updateMultiRange(id, ranges);
274
+ debouncedHandler(update);
261
275
  }
262
- }, 100));
263
- };
264
- var style = {
265
- hover: "rounded-sm text-primary-500 hover:text-primary-600 dark:text-primary-500 hover:dark:text-primary-400",
266
- icon: "inline-block leading-none mis-1 cursor-pointer"
276
+ });
267
277
  };
268
- var createLinkRenderer = (onSelectObject) => (el, { url }) => {
269
- const isInternal = url.startsWith("/") || // TODO(wittjosiah): This should probably be parsed out on paste?
270
- url.startsWith(window.location.origin);
271
- const options = isInternal ? {
272
- onClick: () => {
278
+ var createRenderLink = (onSelectObject) => (el, { url }) => {
279
+ const isInternal = url.startsWith("/") || url.startsWith(window.location.origin);
280
+ const anchor = Domino2.of("a").classNames("dx-link dx-icon-inline ms-1").children(Domino2.svg(isInternal ? "ph--arrow-square-down--regular" : "ph--arrow-square-out--regular"));
281
+ if (isInternal) {
282
+ anchor.on("click", () => {
273
283
  const qualifiedId = url.split("/").at(-1);
274
284
  invariant(qualifiedId, "Invalid link format.", {
275
285
  F: __dxlog_file,
276
- L: 237,
286
+ L: 219,
277
287
  S: void 0,
278
288
  A: [
279
289
  "qualifiedId",
@@ -281,56 +291,112 @@ var createLinkRenderer = (onSelectObject) => (el, { url }) => {
281
291
  ]
282
292
  });
283
293
  onSelectObject(qualifiedId);
284
- }
285
- } : {
286
- href: url,
287
- rel: "noreferrer",
288
- target: "_blank"
289
- };
290
- renderRoot(el, /* @__PURE__ */ React.createElement("a", {
291
- ...options,
292
- className: style.hover
293
- }, /* @__PURE__ */ React.createElement(Icon, {
294
- icon: isInternal ? "ph--arrow-square-down--bold" : "ph--arrow-square-out--bold",
295
- size: 4,
296
- classNames: style.icon
297
- })));
294
+ });
295
+ } else {
296
+ anchor.attributes({
297
+ href: url,
298
+ rel: "noreferrer",
299
+ target: "_blank"
300
+ });
301
+ }
302
+ el.appendChild(anchor.root);
298
303
  };
299
304
  var renderLinkTooltip = (el, { url }) => {
300
- const web = new URL(url);
301
- renderRoot(el, /* @__PURE__ */ React.createElement("a", {
305
+ el.appendChild(Domino2.of("a").attributes({
302
306
  href: url,
303
- rel: "noreferrer",
304
307
  target: "_blank",
305
- className: style.hover
306
- }, web.origin, /* @__PURE__ */ React.createElement(Icon, {
307
- icon: "ph--arrow-square-out--bold",
308
- size: 4,
309
- classNames: style.icon
310
- })));
308
+ rel: "noreferrer"
309
+ }).classNames("dx-link flex items-center gap-2").text(safeUrl(url)?.origin ?? url).children(Domino2.svg("ph--arrow-square-out--regular")).root);
311
310
  };
312
- var renderRoot = (root, node) => {
313
- createRoot(root).render(/* @__PURE__ */ React.createElement(ThemeProvider, {
314
- tx: defaultTx
315
- }, node));
316
- return root;
311
+
312
+ // src/hooks/useLinkQuery.ts
313
+ import * as Option from "effect/Option";
314
+ import { useCallback as useCallback2, useMemo as useMemo3 } from "react";
315
+ import { usePluginManager } from "@dxos/app-framework/ui";
316
+ import { AppCapabilities } from "@dxos/app-toolkit";
317
+ import { Filter, Obj as Obj3, Query, Type } from "@dxos/echo";
318
+ import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
319
+ import { toLocalizedString as toLocalizedString2, useTranslation as useTranslation2 } from "@dxos/react-ui";
320
+ import { insertAtCursor, insertAtLineStart } from "@dxos/ui-editor";
321
+ var useLinkQuery = (db) => {
322
+ const { t } = useTranslation2();
323
+ const manager = usePluginManager();
324
+ const resolve = useCallback2((typename) => manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {}, [
325
+ manager
326
+ ]);
327
+ const filter = useMemo3(() => Filter.or(...(db?.schemaRegistry.query({
328
+ location: [
329
+ "database",
330
+ "runtime"
331
+ ]
332
+ }).runSync() ?? []).filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation).filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false))).map((schema) => Filter.typename(Type.getTypename(schema)))), [
333
+ db
334
+ ]);
335
+ const handleLinkQuery = useCallback2(async (query) => {
336
+ const name = query?.startsWith("@") ? query.slice(1).toLowerCase() : query?.toLowerCase() ?? "";
337
+ const results = await db?.query(Query.select(filter)).run();
338
+ const getLabel = (object) => {
339
+ const label = Obj3.getLabel(object);
340
+ if (label) {
341
+ return label;
342
+ }
343
+ const type = Obj3.getTypename(object);
344
+ const metadata = resolve(type);
345
+ return metadata.label?.(object) || [
346
+ "object name placeholder",
347
+ {
348
+ ns: type,
349
+ default: "New object"
350
+ }
351
+ ];
352
+ };
353
+ const items = results?.filter((object) => toLocalizedString2(getLabel(object), t).toLowerCase().includes(name)).map((object) => {
354
+ const metadata = resolve(Obj3.getTypename(object));
355
+ const label = toLocalizedString2(getLabel(object), t);
356
+ return {
357
+ id: object.id,
358
+ label,
359
+ icon: metadata.icon,
360
+ onSelect: ({ view, head }) => {
361
+ const link = `[${label}](${Obj3.getDXN(object)})`;
362
+ if (query?.startsWith("@")) {
363
+ insertAtLineStart(view, head, `!${link}
364
+ `);
365
+ } else {
366
+ insertAtCursor(view, head, `${link} `);
367
+ }
368
+ }
369
+ };
370
+ }) ?? [];
371
+ return [
372
+ {
373
+ id: "echo",
374
+ items
375
+ }
376
+ ];
377
+ }, [
378
+ db,
379
+ filter,
380
+ resolve
381
+ ]);
382
+ return handleLinkQuery;
317
383
  };
318
384
 
319
385
  // src/hooks/useSelectCurrentThread.tsx
320
386
  import { EditorView as EditorView2 } from "@codemirror/view";
321
387
  import * as Effect from "effect/Effect";
322
388
  import { useMemo as useMemo4 } from "react";
323
- import { Common as Common3 } from "@dxos/app-framework";
324
- import { useOperationResolver } from "@dxos/app-framework/react";
389
+ import { useOperationResolver } from "@dxos/app-framework/ui";
390
+ import { LayoutOperation } from "@dxos/app-toolkit";
325
391
  import { invariant as invariant2 } from "@dxos/invariant";
326
392
  import { OperationResolver } from "@dxos/operation";
327
393
  import { Cursor as Cursor2, setSelection } from "@dxos/ui-editor";
328
394
  var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/hooks/useSelectCurrentThread.tsx";
329
- var useSelectCurrentThread = (editorView, documentId2) => {
395
+ var useSelectCurrentThread = (editorView, documentId2, attendableId) => {
330
396
  const scrollIntoViewHandler = useMemo4(() => OperationResolver.make({
331
- operation: Common3.LayoutOperation.ScrollIntoView,
397
+ operation: LayoutOperation.ScrollIntoView,
332
398
  position: "hoist",
333
- filter: (input) => !!editorView && input.subject === documentId2 && !!input.cursor,
399
+ filter: (input) => !!editorView && !!input.cursor && input.subject === attendableId,
334
400
  handler: (input) => Effect.sync(() => {
335
401
  invariant2(editorView, "Editor view is not defined.", {
336
402
  F: __dxlog_file2,
@@ -372,30 +438,21 @@ var useSelectCurrentThread = (editorView, documentId2) => {
372
438
  })
373
439
  }), [
374
440
  documentId2,
441
+ attendableId,
375
442
  editorView
376
443
  ]);
377
444
  useOperationResolver(meta.id, scrollIntoViewHandler);
378
445
  };
379
446
 
380
- // src/components/MarkdownEditor/MarkdownEditor.tsx
381
- import { createContext } from "@radix-ui/react-context";
382
- import React5, { useMemo as useMemo6, useState as useState2 } from "react";
383
- import { createPortal as createPortal2 } from "react-dom";
384
- import { Surface } from "@dxos/app-framework/react";
385
- import { DXN } from "@dxos/keys";
386
- import { useClient } from "@dxos/react-client";
387
- import { EditorMenuProvider, useEditorMenu, useEditorToolbar } from "@dxos/react-ui-editor";
388
- import { isNonNullable } from "@dxos/util";
389
-
390
447
  // src/components/MarkdownEditor/MarkdownEditorContent.tsx
391
448
  import { RegistryContext } from "@effect-atom/atom-react";
392
- import React2, { forwardRef, useCallback as useCallback3, useContext, useEffect, useImperativeHandle, useMemo as useMemo5 } from "react";
449
+ import React, { forwardRef, useCallback as useCallback3, useContext, useEffect, useImperativeHandle, useMemo as useMemo5 } from "react";
393
450
  import { useThemeContext, useTranslation as useTranslation3 } from "@dxos/react-ui";
394
451
  import { useTextEditor } from "@dxos/react-ui-editor";
395
452
  import { createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, editorSlots, formattingListener, processEditorPayload, stackItemContentEditorClassNames } from "@dxos/ui-editor";
396
453
  import { mx } from "@dxos/ui-theme";
397
454
  import { isTruthy as isTruthy2 } from "@dxos/util";
398
- var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, role, viewMode, initialValue, editorStateStore, toolbarState, extensions, scrollPastEnd, slots = editorSlots, onFileUpload }, forwardedRef) => {
455
+ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attendableId, role, viewMode, initialValue, editorStateStore, toolbarState, extensions, scrollPastEnd, slots = editorSlots, onFileUpload }, forwardedRef) => {
399
456
  const { t } = useTranslation3(meta.id);
400
457
  const { themeMode } = useThemeContext();
401
458
  const registry = useContext(RegistryContext);
@@ -461,15 +518,15 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, role,
461
518
  useImperativeHandle(forwardedRef, () => editorView, [
462
519
  editorView
463
520
  ]);
464
- useSelectCurrentThread(editorView, id);
521
+ useSelectCurrentThread(editorView, id, attendableId ?? id);
465
522
  useTest(editorView);
466
- return /* @__PURE__ */ React2.createElement("div", {
523
+ return /* @__PURE__ */ React.createElement("div", {
524
+ ...focusAttributes,
467
525
  role: "none",
468
- ref: parentRef,
469
526
  "data-testid": "composer.markdownRoot",
470
- className: mx(stackItemContentEditorClassNames(role), classNames),
471
527
  "data-popover-collision-boundary": true,
472
- ...focusAttributes
528
+ className: mx(stackItemContentEditorClassNames(role), classNames),
529
+ ref: parentRef
473
530
  });
474
531
  });
475
532
  var useTest = (view) => {
@@ -484,12 +541,12 @@ var useTest = (view) => {
484
541
  };
485
542
 
486
543
  // src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
487
- import React4, { useCallback as useCallback4, useState } from "react";
544
+ import React3, { useCallback as useCallback4, useState } from "react";
488
545
  import { invariant as invariant3 } from "@dxos/invariant";
489
546
  import { EditorToolbar } from "@dxos/react-ui-editor";
490
547
 
491
548
  // src/components/MarkdownEditor/FileUpload.tsx
492
- import React3, { forwardRef as forwardRef2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle2 } from "react";
549
+ import React2, { forwardRef as forwardRef2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle2 } from "react";
493
550
  import { createPortal } from "react-dom";
494
551
  import { useDropzone } from "react-dropzone";
495
552
  import { addLink } from "@dxos/ui-editor";
@@ -536,23 +593,22 @@ var FileUpload = /* @__PURE__ */ forwardRef2(({ editorView, onFileUpload }, forw
536
593
  if (!onFileUpload) {
537
594
  return null;
538
595
  }
539
- return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ createPortal(/* @__PURE__ */ React3.createElement("input", {
596
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ createPortal(/* @__PURE__ */ React2.createElement("input", {
540
597
  ref: inputRef
541
598
  }), document.body), " ");
542
599
  });
543
600
 
544
601
  // src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
602
+ import { composableProps } from "@dxos/ui-theme";
545
603
  var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-markdown/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx";
546
- var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customActions, onAction, onFileUpload, onViewModeChange }) => {
604
+ var MarkdownEditorToolbar = ({ id, role, state, editorView, customActions, onAction, onFileUpload, onViewModeChange, ...props }) => {
605
+ const { className, ...rest } = composableProps(props);
547
606
  const [upload, setUpload] = useState(null);
548
607
  const uploadRef = useCallback4((next) => setUpload(() => next), []);
549
- const handleViewModeChange = useCallback4((mode) => onViewModeChange?.(mode), [
550
- onViewModeChange
551
- ]);
552
608
  const getView = useCallback4(() => {
553
609
  invariant3(editorView, void 0, {
554
610
  F: __dxlog_file3,
555
- L: 41,
611
+ L: 40,
556
612
  S: void 0,
557
613
  A: [
558
614
  "editorView",
@@ -564,10 +620,17 @@ var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customAc
564
620
  editorView
565
621
  ]);
566
622
  if (!editorView) {
567
- return /* @__PURE__ */ React4.createElement("div", null);
623
+ return /* @__PURE__ */ React3.createElement("div", {
624
+ className,
625
+ ...rest
626
+ });
568
627
  }
569
- return /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(EditorToolbar, {
570
- classNames,
628
+ return /* @__PURE__ */ React3.createElement("div", {
629
+ role: "none",
630
+ className: "contents"
631
+ }, /* @__PURE__ */ React3.createElement(EditorToolbar, {
632
+ ...rest,
633
+ classNames: className,
571
634
  attendableId: id,
572
635
  role,
573
636
  state,
@@ -575,8 +638,8 @@ var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customAc
575
638
  getView,
576
639
  onAction,
577
640
  onImageUpload: upload ?? void 0,
578
- onViewModeChange: handleViewModeChange
579
- }), onFileUpload && /* @__PURE__ */ React4.createElement(FileUpload, {
641
+ onViewModeChange
642
+ }), onFileUpload && /* @__PURE__ */ React3.createElement(FileUpload, {
580
643
  ref: uploadRef,
581
644
  editorView,
582
645
  onFileUpload
@@ -585,7 +648,7 @@ var MarkdownEditorToolbar = ({ classNames, id, role, state, editorView, customAc
585
648
 
586
649
  // src/components/MarkdownEditor/MarkdownEditor.tsx
587
650
  var [MarkdownEditorContextProvider, useMarkdownEditorContext] = createContext("MarkdownEditor.Context");
588
- var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionManager, settings, viewMode, extensions: extensionsProp, slashCommandGroups, onLinkQuery, ...props }) => {
651
+ var MarkdownEditorRoot = ({ children, id, attendableId, object, editorStateStore, selectionManager, settings, viewMode, extensions: extensionsProp, slashCommandGroups, onLinkQuery, onSelectObject, ...props }) => {
589
652
  const [editorView, setEditorView] = useState2();
590
653
  const [previewBlocks, setPreviewBlocks] = useState2([]);
591
654
  const previewOptions = useMemo6(() => ({
@@ -596,7 +659,7 @@ var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionMan
596
659
  ]);
597
660
  },
598
661
  removeBlockContainer: ({ link }) => {
599
- setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.ref !== link.ref));
662
+ setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.dxn !== link.dxn));
600
663
  }
601
664
  }), []);
602
665
  const toolbarState = useEditorToolbar({
@@ -615,7 +678,8 @@ var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionMan
615
678
  previewOptions,
616
679
  selectionManager,
617
680
  settings,
618
- viewMode
681
+ viewMode,
682
+ onSelectObject
619
683
  });
620
684
  const extensions = useMemo6(() => [
621
685
  coreExtensions,
@@ -626,8 +690,9 @@ var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionMan
626
690
  menuExtension,
627
691
  extensionsProp
628
692
  ]);
629
- return /* @__PURE__ */ React5.createElement(MarkdownEditorContextProvider, {
693
+ return /* @__PURE__ */ React4.createElement(MarkdownEditorContextProvider, {
630
694
  id,
695
+ attendableId,
631
696
  editorView,
632
697
  setEditorView,
633
698
  extensions,
@@ -639,51 +704,59 @@ var MarkdownEditorRoot = ({ children, id, object, editorStateStore, selectionMan
639
704
  }, children);
640
705
  };
641
706
  MarkdownEditorRoot.displayName = "MarkdownEditor.Root";
707
+ var MARKDOWN_EDITOR_CONTENT_NAME = "MarkdownEditor.Content";
642
708
  var MarkdownEditorContent2 = (props) => {
643
- const { id, editorView, setEditorView, viewMode, toolbarState, extensions, popoverMenu: { groupsRef, ...menuProps } } = useMarkdownEditorContext(MarkdownEditorContent2.displayName);
644
- return /* @__PURE__ */ React5.createElement(EditorMenuProvider, {
709
+ const { id, attendableId, editorView, setEditorView, viewMode, toolbarState, extensions, popoverMenu: { groupsRef, ...menuProps } } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
710
+ return /* @__PURE__ */ React4.createElement(EditorMenuProvider, {
645
711
  view: editorView,
646
712
  groups: groupsRef.current,
647
713
  ...menuProps
648
- }, /* @__PURE__ */ React5.createElement(MarkdownEditorContent, {
714
+ }, /* @__PURE__ */ React4.createElement(MarkdownEditorContent, {
649
715
  ...props,
650
716
  id,
717
+ attendableId,
651
718
  viewMode,
652
719
  toolbarState,
653
720
  extensions,
654
721
  ref: setEditorView
655
722
  }));
656
723
  };
657
- MarkdownEditorContent2.displayName = "MarkdownEditor.Content";
724
+ MarkdownEditorContent2.displayName = MARKDOWN_EDITOR_CONTENT_NAME;
725
+ var MARKDOWN_EDITOR_TOOLBAR_NAME = "MarkdownEditor.Toolbar";
658
726
  var MarkdownEditorToolbar2 = (props) => {
659
- const { toolbarState, ...rootProps } = useMarkdownEditorContext(MarkdownEditorToolbar2.displayName);
660
- return /* @__PURE__ */ React5.createElement(MarkdownEditorToolbar, {
727
+ const { id, attendableId, editorView, toolbarState, onAction, onFileUpload, onViewModeChange } = useMarkdownEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);
728
+ return /* @__PURE__ */ React4.createElement(MarkdownEditorToolbar, {
661
729
  ...props,
662
- ...rootProps,
663
- state: toolbarState
730
+ id: attendableId ?? id,
731
+ editorView,
732
+ state: toolbarState,
733
+ onAction,
734
+ onFileUpload,
735
+ onViewModeChange
664
736
  });
665
737
  };
666
- MarkdownEditorToolbar2.displayName = "MarkdownEditor.Toolbar";
738
+ MarkdownEditorToolbar2.displayName = MARKDOWN_EDITOR_TOOLBAR_NAME;
739
+ var MARKDOWN_EDITOR_BLOCKS_NAME = "MarkdownEditor.Blocks";
667
740
  var MarkdownEditorBlocks = (_props) => {
668
- const { previewBlocks } = useMarkdownEditorContext(MarkdownEditorBlocks.displayName);
669
- return /* @__PURE__ */ React5.createElement(React5.Fragment, null, previewBlocks.map(({ link, el }) => /* @__PURE__ */ React5.createElement(PreviewBlock, {
670
- key: link.ref,
741
+ const { previewBlocks } = useMarkdownEditorContext(MARKDOWN_EDITOR_BLOCKS_NAME);
742
+ return /* @__PURE__ */ React4.createElement(React4.Fragment, null, previewBlocks.map(({ link, el }) => /* @__PURE__ */ React4.createElement(PreviewBlock, {
743
+ key: link.dxn,
671
744
  link,
672
745
  el
673
746
  })));
674
747
  };
675
- MarkdownEditorBlocks.displayName = "MarkdownEditor.Blocks";
748
+ MarkdownEditorBlocks.displayName = MARKDOWN_EDITOR_BLOCKS_NAME;
676
749
  var PreviewBlock = ({ el, link }) => {
677
750
  const client = useClient();
678
- const dxn = DXN.parse(link.ref);
751
+ const dxn = DXN.parse(link.dxn);
679
752
  const subject = client.graph.makeRef(dxn).target;
680
753
  const data = useMemo6(() => ({
681
754
  subject
682
755
  }), [
683
756
  subject
684
757
  ]);
685
- return /* @__PURE__ */ createPortal2(/* @__PURE__ */ React5.createElement(Surface, {
686
- role: "card--transclusion",
758
+ return /* @__PURE__ */ createPortal2(/* @__PURE__ */ React4.createElement(Surface.Surface, {
759
+ role: "card--content",
687
760
  data,
688
761
  limit: 1
689
762
  }), el);
@@ -696,7 +769,13 @@ var MarkdownEditor = {
696
769
  };
697
770
 
698
771
  export {
772
+ isEditorModel,
773
+ isMarkdownProperties,
774
+ getFallbackName,
775
+ getContentSnippet,
776
+ setFallbackName,
777
+ serializer,
699
778
  useLinkQuery,
700
779
  MarkdownEditor
701
780
  };
702
- //# sourceMappingURL=chunk-BX73DASG.mjs.map
781
+ //# sourceMappingURL=chunk-B6S4YQWZ.mjs.map