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