@dxos/plugin-thread 0.8.4-main.67995b8 → 0.8.4-main.70d3990

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 (330) hide show
  1. package/dist/lib/browser/ChannelContainer-L7MKV7DS.mjs +17 -0
  2. package/dist/lib/browser/ChatContainer-KPY4BAUE.mjs +16 -0
  3. package/dist/lib/browser/{app-graph-builder-N7BE5TYW.mjs → app-graph-builder-TWJ2UCOZ.mjs} +33 -33
  4. package/dist/lib/browser/app-graph-builder-TWJ2UCOZ.mjs.map +7 -0
  5. package/dist/lib/browser/blueprint-definition-TQ4JFMZZ.mjs +101 -0
  6. package/dist/lib/browser/blueprint-definition-TQ4JFMZZ.mjs.map +7 -0
  7. package/dist/lib/browser/{call-manager-NIPDYUVD.mjs → call-manager-4YFT4XA6.mjs} +8 -7
  8. package/dist/lib/browser/call-manager-4YFT4XA6.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-KWPRNHTK.mjs → chunk-ALZKJOZK.mjs} +251 -246
  10. package/dist/lib/browser/chunk-ALZKJOZK.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-ANTFU4JB.mjs +25 -0
  12. package/dist/lib/browser/chunk-ANTFU4JB.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-CFC7LEPD.mjs +18 -0
  14. package/dist/lib/browser/chunk-CFC7LEPD.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-GERVMFQW.mjs → chunk-CP7E2HRE.mjs} +2 -2
  16. package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-6NSMBO3B.mjs → chunk-ISCHODBV.mjs} +55 -5
  18. package/dist/lib/browser/chunk-ISCHODBV.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  20. package/dist/lib/browser/chunk-JDJPMI7V.mjs +143 -0
  21. package/dist/lib/browser/chunk-JDJPMI7V.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-ERWASUQK.mjs → chunk-KOBXMDCI.mjs} +74 -41
  23. package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-NPT5S6N4.mjs +611 -0
  25. package/dist/lib/browser/chunk-NPT5S6N4.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-QM34EZQK.mjs +20 -0
  27. package/dist/lib/browser/chunk-QM34EZQK.mjs.map +7 -0
  28. package/dist/lib/browser/chunk-TLOOZTRD.mjs +377 -0
  29. package/dist/lib/browser/chunk-TLOOZTRD.mjs.map +7 -0
  30. package/dist/lib/browser/{chunk-ZE7KWN36.mjs → chunk-ZCW3NSDZ.mjs} +310 -186
  31. package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +7 -0
  32. package/dist/lib/browser/index.mjs +61 -53
  33. package/dist/lib/browser/index.mjs.map +3 -3
  34. package/dist/lib/browser/{intent-resolver-JFGLZ6VI.mjs → intent-resolver-G33FT3NO.mjs} +41 -55
  35. package/dist/lib/browser/intent-resolver-G33FT3NO.mjs.map +7 -0
  36. package/dist/lib/browser/{markdown-M3FMR7OD.mjs → markdown-WFZFYJBQ.mjs} +30 -27
  37. package/dist/lib/browser/markdown-WFZFYJBQ.mjs.map +7 -0
  38. package/dist/lib/browser/meta.json +1 -1
  39. package/dist/lib/browser/react-root-ED7PHA44.mjs +29 -0
  40. package/dist/lib/browser/react-root-ED7PHA44.mjs.map +7 -0
  41. package/dist/lib/browser/{react-surface-XWS6GIZY.mjs → react-surface-AUQQSQQC.mjs} +38 -36
  42. package/dist/lib/browser/react-surface-AUQQSQQC.mjs.map +7 -0
  43. package/dist/lib/browser/repair-JFJLEM2O.mjs +35 -0
  44. package/dist/lib/browser/repair-JFJLEM2O.mjs.map +7 -0
  45. package/dist/lib/browser/{settings-E32MTL7A.mjs → settings-E6IOLK46.mjs} +6 -5
  46. package/dist/lib/{node-esm/settings-SJ24YG7M.mjs.map → browser/settings-E6IOLK46.mjs.map} +1 -1
  47. package/dist/lib/browser/{state-H6CYONWE.mjs → state-UYPLBGZJ.mjs} +6 -5
  48. package/dist/lib/browser/state-UYPLBGZJ.mjs.map +7 -0
  49. package/dist/lib/browser/types/index.mjs +7 -10
  50. package/dist/lib/node-esm/ChannelContainer-FYONOOZ6.mjs +18 -0
  51. package/dist/lib/node-esm/ChatContainer-TLQG23K7.mjs +17 -0
  52. package/dist/lib/node-esm/ChatContainer-TLQG23K7.mjs.map +7 -0
  53. package/dist/lib/node-esm/{app-graph-builder-VCW76Z6V.mjs → app-graph-builder-VD6I2V5H.mjs} +33 -33
  54. package/dist/lib/node-esm/app-graph-builder-VD6I2V5H.mjs.map +7 -0
  55. package/dist/lib/node-esm/blueprint-definition-TSX5HHW7.mjs +102 -0
  56. package/dist/lib/node-esm/blueprint-definition-TSX5HHW7.mjs.map +7 -0
  57. package/dist/lib/node-esm/{call-manager-D6O5ZJJ4.mjs → call-manager-UMUXEYH5.mjs} +8 -7
  58. package/dist/lib/node-esm/call-manager-UMUXEYH5.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-2AEIN5MI.mjs +22 -0
  60. package/dist/lib/node-esm/chunk-2AEIN5MI.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-IHDNQLLR.mjs → chunk-7KZWZS2U.mjs} +310 -186
  62. package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-C3XFMUAY.mjs → chunk-AB42KYF3.mjs} +251 -246
  64. package/dist/lib/node-esm/chunk-AB42KYF3.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-57XR3LEF.mjs → chunk-ABUFOZVX.mjs} +2 -2
  66. package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-ATNY37UV.mjs +27 -0
  68. package/dist/lib/node-esm/chunk-ATNY37UV.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-E5HNHFYH.mjs +378 -0
  70. package/dist/lib/node-esm/chunk-E5HNHFYH.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-FF3QVPY4.mjs +612 -0
  72. package/dist/lib/node-esm/chunk-FF3QVPY4.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  74. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-P2M364TO.mjs +144 -0
  76. package/dist/lib/node-esm/chunk-P2M364TO.mjs.map +7 -0
  77. package/dist/lib/node-esm/{chunk-25ABSYP2.mjs → chunk-PZH2EDU5.mjs} +74 -41
  78. package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +7 -0
  79. package/dist/lib/node-esm/chunk-RT6NRL2I.mjs +19 -0
  80. package/dist/lib/node-esm/chunk-RT6NRL2I.mjs.map +7 -0
  81. package/dist/lib/node-esm/{chunk-OU5BYIDO.mjs → chunk-VBI32FGI.mjs} +55 -5
  82. package/dist/lib/node-esm/chunk-VBI32FGI.mjs.map +7 -0
  83. package/dist/lib/node-esm/index.mjs +61 -53
  84. package/dist/lib/node-esm/index.mjs.map +3 -3
  85. package/dist/lib/node-esm/{intent-resolver-OXGNQ44Y.mjs → intent-resolver-4PX3WXQG.mjs} +41 -55
  86. package/dist/lib/node-esm/intent-resolver-4PX3WXQG.mjs.map +7 -0
  87. package/dist/lib/node-esm/{markdown-INKTE4MH.mjs → markdown-CSR5MAPZ.mjs} +30 -27
  88. package/dist/lib/node-esm/markdown-CSR5MAPZ.mjs.map +7 -0
  89. package/dist/lib/node-esm/meta.json +1 -1
  90. package/dist/lib/node-esm/react-root-DZN324JA.mjs +30 -0
  91. package/dist/lib/node-esm/react-root-DZN324JA.mjs.map +7 -0
  92. package/dist/lib/node-esm/{react-surface-MJ33KPYE.mjs → react-surface-AMVESEF4.mjs} +38 -36
  93. package/dist/lib/node-esm/react-surface-AMVESEF4.mjs.map +7 -0
  94. package/dist/lib/node-esm/repair-RMLR24YR.mjs +36 -0
  95. package/dist/lib/node-esm/repair-RMLR24YR.mjs.map +7 -0
  96. package/dist/lib/node-esm/{settings-SJ24YG7M.mjs → settings-RGZHWDSO.mjs} +6 -5
  97. package/dist/lib/{browser/settings-E32MTL7A.mjs.map → node-esm/settings-RGZHWDSO.mjs.map} +1 -1
  98. package/dist/lib/node-esm/{state-D7WNDT3N.mjs → state-XNWOLBNE.mjs} +6 -5
  99. package/dist/lib/node-esm/state-XNWOLBNE.mjs.map +7 -0
  100. package/dist/lib/node-esm/types/index.mjs +7 -10
  101. package/dist/types/src/ThreadPlugin.d.ts +1 -1
  102. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  103. package/dist/types/src/calls/call-manager.d.ts.map +1 -1
  104. package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
  105. package/dist/types/src/calls/media-manager.d.ts +1 -1
  106. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  107. package/dist/types/src/calls/types.d.ts +1 -1
  108. package/dist/types/src/calls/types.d.ts.map +1 -1
  109. package/dist/types/src/calls/util/calls-service.d.ts +4 -2
  110. package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
  111. package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
  112. package/dist/types/src/calls-service.stories.d.ts +10 -9
  113. package/dist/types/src/calls-service.stories.d.ts.map +1 -1
  114. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  115. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  117. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/call-manager.d.ts +1 -1
  119. package/dist/types/src/capabilities/call-manager.d.ts.map +1 -1
  120. package/dist/types/src/capabilities/capabilities.d.ts +3 -3
  121. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  122. package/dist/types/src/capabilities/index.d.ts +12 -10
  123. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  124. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  125. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  126. package/dist/types/src/capabilities/markdown.d.ts +1 -1
  127. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  128. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  129. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  130. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  131. package/dist/types/src/capabilities/repair.d.ts +4 -0
  132. package/dist/types/src/capabilities/repair.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/settings.d.ts +1 -1
  134. package/dist/types/src/capabilities/state.d.ts +2 -2
  135. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  136. package/dist/types/src/components/Call/Call.d.ts.map +1 -1
  137. package/dist/types/src/components/Call/Toolbar.d.ts +2 -2
  138. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  139. package/dist/types/src/components/CallDebugPanel.d.ts +7 -0
  140. package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
  141. package/dist/types/src/components/CallSidebar.d.ts.map +1 -1
  142. package/dist/types/src/components/ChannelContainer.d.ts +2 -2
  143. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  144. package/dist/types/src/components/ChannelContainer.stories.d.ts +159 -5
  145. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  146. package/dist/types/src/components/Chat.stories.d.ts +162 -5
  147. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  148. package/dist/types/src/components/ChatContainer.d.ts +6 -5
  149. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  150. package/dist/types/src/components/Comments.stories.d.ts +160 -4
  151. package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
  152. package/dist/types/src/components/CommentsContainer.d.ts +2 -2
  153. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  154. package/dist/types/src/components/CommentsThreadContainer.d.ts +9 -9
  155. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
  156. package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
  157. package/dist/types/src/components/Media/VideoObject.d.ts +2 -2
  158. package/dist/types/src/components/Media/VideoObject.d.ts.map +1 -1
  159. package/dist/types/src/components/Media/VideoObject.stories.d.ts +18 -4
  160. package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
  161. package/dist/types/src/components/MessageContainer.d.ts +8 -3
  162. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  163. package/dist/types/src/components/Participant/Participant.d.ts.map +1 -1
  164. package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
  165. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +159 -3
  166. package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
  167. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +161 -4
  168. package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
  169. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  170. package/dist/types/src/components/ThreadCompanion.d.ts +5 -0
  171. package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -0
  172. package/dist/types/src/components/ThreadSettings.d.ts +1 -1
  173. package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
  174. package/dist/types/src/components/command-extension.d.ts.map +1 -1
  175. package/dist/types/src/components/index.d.ts +3 -3
  176. package/dist/types/src/components/index.d.ts.map +1 -1
  177. package/dist/types/src/components/testing.d.ts +3 -2
  178. package/dist/types/src/components/testing.d.ts.map +1 -1
  179. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  180. package/dist/types/src/functions/create-proposals.d.ts +6 -0
  181. package/dist/types/src/functions/create-proposals.d.ts.map +1 -0
  182. package/dist/types/src/functions/index.d.ts +2 -0
  183. package/dist/types/src/functions/index.d.ts.map +1 -0
  184. package/dist/types/src/hooks/analytics.d.ts +2 -2
  185. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  186. package/dist/types/src/hooks/index.d.ts +2 -1
  187. package/dist/types/src/hooks/index.d.ts.map +1 -1
  188. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts +2 -0
  189. package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts.map +1 -0
  190. package/dist/types/src/hooks/useVideoStreamTrack.d.ts +1 -1
  191. package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
  192. package/dist/types/src/meta.d.ts +1 -2
  193. package/dist/types/src/meta.d.ts.map +1 -1
  194. package/dist/types/src/testing/stories.d.ts.map +1 -1
  195. package/dist/types/src/translations.d.ts +79 -7
  196. package/dist/types/src/translations.d.ts.map +1 -1
  197. package/dist/types/src/types/Channel.d.ts +16 -0
  198. package/dist/types/src/types/Channel.d.ts.map +1 -0
  199. package/dist/types/src/types/index.d.ts +1 -1
  200. package/dist/types/src/types/index.d.ts.map +1 -1
  201. package/dist/types/src/types/types.d.ts +236 -265
  202. package/dist/types/src/types/types.d.ts.map +1 -1
  203. package/dist/types/tsconfig.tsbuildinfo +1 -1
  204. package/package.json +69 -63
  205. package/src/ThreadPlugin.tsx +137 -129
  206. package/src/calls/call-manager.ts +2 -2
  207. package/src/calls/call-swarm-synchronizer.ts +1 -1
  208. package/src/calls/media-manager.ts +66 -37
  209. package/src/calls/types.ts +8 -4
  210. package/src/calls/util/calls-service.ts +65 -14
  211. package/src/calls/util/stub-media-streams.ts +64 -7
  212. package/src/calls-service.stories.tsx +78 -65
  213. package/src/capabilities/app-graph-builder.ts +47 -33
  214. package/src/capabilities/blueprint-definition.ts +38 -0
  215. package/src/capabilities/call-manager.ts +3 -2
  216. package/src/capabilities/capabilities.ts +8 -8
  217. package/src/capabilities/index.ts +2 -0
  218. package/src/capabilities/intent-resolver.ts +32 -35
  219. package/src/capabilities/markdown.ts +9 -6
  220. package/src/capabilities/react-root.tsx +2 -2
  221. package/src/capabilities/react-surface.tsx +29 -26
  222. package/src/capabilities/repair.ts +40 -0
  223. package/src/capabilities/state.ts +2 -1
  224. package/src/components/Call/Call.tsx +4 -3
  225. package/src/components/Call/Toolbar.tsx +10 -10
  226. package/src/components/CallDebugPanel.tsx +112 -55
  227. package/src/components/CallSidebar.tsx +3 -2
  228. package/src/components/ChannelContainer.stories.tsx +15 -14
  229. package/src/components/ChannelContainer.tsx +25 -20
  230. package/src/components/Chat.stories.tsx +33 -36
  231. package/src/components/ChatContainer.tsx +35 -23
  232. package/src/components/Comments.stories.tsx +39 -41
  233. package/src/components/CommentsContainer.tsx +7 -8
  234. package/src/components/CommentsThreadContainer.tsx +39 -33
  235. package/src/components/Lobby/Lobby.tsx +2 -2
  236. package/src/components/Media/VideoObject.stories.tsx +36 -28
  237. package/src/components/Media/VideoObject.tsx +1 -1
  238. package/src/components/MessageContainer.tsx +53 -17
  239. package/src/components/Participant/Participant.tsx +14 -8
  240. package/src/components/Participant/ParticipantGrid.tsx +2 -1
  241. package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +8 -8
  242. package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +2 -2
  243. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +45 -43
  244. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +6 -6
  245. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +7 -4
  246. package/src/components/{ThreadComplementary.tsx → ThreadCompanion.tsx} +72 -35
  247. package/src/components/ThreadSettings.tsx +6 -7
  248. package/src/components/command-extension.ts +5 -2
  249. package/src/components/index.ts +4 -4
  250. package/src/components/testing.ts +26 -6
  251. package/src/extensions/threads.ts +31 -21
  252. package/src/functions/create-proposals.ts +56 -0
  253. package/src/functions/index.ts +5 -0
  254. package/src/hooks/analytics.ts +4 -7
  255. package/src/hooks/index.ts +3 -1
  256. package/src/hooks/useBlackCanvasStreamTrack.tsx +27 -0
  257. package/src/hooks/useDebugMode.ts +1 -1
  258. package/src/hooks/useVideoStreamTrack.tsx +6 -3
  259. package/src/meta.ts +9 -5
  260. package/src/testing/stories.ts +5 -8
  261. package/src/translations.ts +9 -4
  262. package/src/types/Channel.ts +26 -0
  263. package/src/types/index.ts +1 -1
  264. package/src/types/types.ts +31 -30
  265. package/src/typings/peermetrics-webrtc-stats.d.ts +17 -1
  266. package/src/typings.d.ts +8 -0
  267. package/src/util.ts +1 -1
  268. package/dist/lib/browser/ChannelContainer-3GIE7ASU.mjs +0 -16
  269. package/dist/lib/browser/ChatContainer-AIGIWAUG.mjs +0 -15
  270. package/dist/lib/browser/app-graph-builder-N7BE5TYW.mjs.map +0 -7
  271. package/dist/lib/browser/call-manager-NIPDYUVD.mjs.map +0 -7
  272. package/dist/lib/browser/chunk-3SGRT4NM.mjs +0 -367
  273. package/dist/lib/browser/chunk-3SGRT4NM.mjs.map +0 -7
  274. package/dist/lib/browser/chunk-6NSMBO3B.mjs.map +0 -7
  275. package/dist/lib/browser/chunk-ERWASUQK.mjs.map +0 -7
  276. package/dist/lib/browser/chunk-EV4JWI7L.mjs +0 -17
  277. package/dist/lib/browser/chunk-EV4JWI7L.mjs.map +0 -7
  278. package/dist/lib/browser/chunk-FR7KJPNY.mjs +0 -21
  279. package/dist/lib/browser/chunk-FR7KJPNY.mjs.map +0 -7
  280. package/dist/lib/browser/chunk-GCLD5ESP.mjs +0 -137
  281. package/dist/lib/browser/chunk-GCLD5ESP.mjs.map +0 -7
  282. package/dist/lib/browser/chunk-GERVMFQW.mjs.map +0 -7
  283. package/dist/lib/browser/chunk-KWPRNHTK.mjs.map +0 -7
  284. package/dist/lib/browser/chunk-LGSDKXPF.mjs +0 -18
  285. package/dist/lib/browser/chunk-LGSDKXPF.mjs.map +0 -7
  286. package/dist/lib/browser/chunk-VUWC4IJM.mjs +0 -479
  287. package/dist/lib/browser/chunk-VUWC4IJM.mjs.map +0 -7
  288. package/dist/lib/browser/chunk-ZE7KWN36.mjs.map +0 -7
  289. package/dist/lib/browser/intent-resolver-JFGLZ6VI.mjs.map +0 -7
  290. package/dist/lib/browser/markdown-M3FMR7OD.mjs.map +0 -7
  291. package/dist/lib/browser/react-root-JEUSQXI6.mjs +0 -28
  292. package/dist/lib/browser/react-root-JEUSQXI6.mjs.map +0 -7
  293. package/dist/lib/browser/react-surface-XWS6GIZY.mjs.map +0 -7
  294. package/dist/lib/browser/state-H6CYONWE.mjs.map +0 -7
  295. package/dist/lib/node-esm/ChannelContainer-7FXCKO7X.mjs +0 -17
  296. package/dist/lib/node-esm/ChatContainer-IQUWU426.mjs +0 -16
  297. package/dist/lib/node-esm/app-graph-builder-VCW76Z6V.mjs.map +0 -7
  298. package/dist/lib/node-esm/call-manager-D6O5ZJJ4.mjs.map +0 -7
  299. package/dist/lib/node-esm/chunk-25ABSYP2.mjs.map +0 -7
  300. package/dist/lib/node-esm/chunk-2CXOK2TD.mjs +0 -23
  301. package/dist/lib/node-esm/chunk-2CXOK2TD.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-2MFNK53T.mjs +0 -480
  303. package/dist/lib/node-esm/chunk-2MFNK53T.mjs.map +0 -7
  304. package/dist/lib/node-esm/chunk-57XR3LEF.mjs.map +0 -7
  305. package/dist/lib/node-esm/chunk-75RJ5DJI.mjs +0 -19
  306. package/dist/lib/node-esm/chunk-75RJ5DJI.mjs.map +0 -7
  307. package/dist/lib/node-esm/chunk-C3XFMUAY.mjs.map +0 -7
  308. package/dist/lib/node-esm/chunk-FLBFYGBK.mjs +0 -368
  309. package/dist/lib/node-esm/chunk-FLBFYGBK.mjs.map +0 -7
  310. package/dist/lib/node-esm/chunk-GRLRWTRU.mjs +0 -19
  311. package/dist/lib/node-esm/chunk-GRLRWTRU.mjs.map +0 -7
  312. package/dist/lib/node-esm/chunk-IHDNQLLR.mjs.map +0 -7
  313. package/dist/lib/node-esm/chunk-OU5BYIDO.mjs.map +0 -7
  314. package/dist/lib/node-esm/chunk-TDFHTCZZ.mjs +0 -138
  315. package/dist/lib/node-esm/chunk-TDFHTCZZ.mjs.map +0 -7
  316. package/dist/lib/node-esm/intent-resolver-OXGNQ44Y.mjs.map +0 -7
  317. package/dist/lib/node-esm/markdown-INKTE4MH.mjs.map +0 -7
  318. package/dist/lib/node-esm/react-root-XYYY2JXZ.mjs +0 -29
  319. package/dist/lib/node-esm/react-root-XYYY2JXZ.mjs.map +0 -7
  320. package/dist/lib/node-esm/react-surface-MJ33KPYE.mjs.map +0 -7
  321. package/dist/lib/node-esm/state-D7WNDT3N.mjs.map +0 -7
  322. package/dist/types/src/components/ThreadComplementary.d.ts +0 -5
  323. package/dist/types/src/components/ThreadComplementary.d.ts.map +0 -1
  324. package/dist/types/src/types/schema.d.ts +0 -162
  325. package/dist/types/src/types/schema.d.ts.map +0 -1
  326. package/src/types/schema.ts +0 -33
  327. /package/dist/lib/browser/{ChannelContainer-3GIE7ASU.mjs.map → ChannelContainer-L7MKV7DS.mjs.map} +0 -0
  328. /package/dist/lib/browser/{ChatContainer-AIGIWAUG.mjs.map → ChatContainer-KPY4BAUE.mjs.map} +0 -0
  329. /package/dist/lib/{node-esm/ChannelContainer-7FXCKO7X.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
  330. /package/dist/lib/node-esm/{ChatContainer-IQUWU426.mjs.map → ChannelContainer-FYONOOZ6.mjs.map} +0 -0
@@ -1,186 +1,45 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadCapabilities
4
- } from "./chunk-75RJ5DJI.mjs";
4
+ } from "./chunk-RT6NRL2I.mjs";
5
5
  import {
6
6
  ChatContainer_default
7
- } from "./chunk-2MFNK53T.mjs";
7
+ } from "./chunk-E5HNHFYH.mjs";
8
8
  import {
9
9
  useDebugMode
10
- } from "./chunk-25ABSYP2.mjs";
10
+ } from "./chunk-PZH2EDU5.mjs";
11
11
  import {
12
12
  meta
13
- } from "./chunk-GRLRWTRU.mjs";
13
+ } from "./chunk-2AEIN5MI.mjs";
14
14
 
15
15
  // src/components/ChannelContainer.tsx
16
16
  import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
17
- import { Rx } from "@effect-rx/rx-react";
17
+ import { Atom } from "@effect-atom/atom-react";
18
18
  import React10, { useCallback as useCallback2, useEffect as useEffect6, useMemo as useMemo4, useState as useState4 } from "react";
19
- import { useCapabilities, useCapability as useCapability4 } from "@dxos/app-framework";
19
+ import { useCapabilities, useCapability as useCapability4 } from "@dxos/app-framework/react";
20
20
  import { Context } from "@dxos/context";
21
21
  import { failUndefined } from "@dxos/debug";
22
+ import { Obj as Obj2 } from "@dxos/echo";
22
23
  import { log } from "@dxos/log";
23
24
  import { useClient } from "@dxos/react-client";
24
- import { fullyQualifiedId as fullyQualifiedId2, getSpace } from "@dxos/react-client/echo";
25
+ import { getSpace } from "@dxos/react-client/echo";
25
26
  import { useIdentity } from "@dxos/react-client/halo";
26
- import { useTranslation as useTranslation3, Input, ElevationProvider } from "@dxos/react-ui";
27
- import { ControlGroup, ControlItemInput, ControlGroupButton } from "@dxos/react-ui-form";
28
- import { ToolbarMenu, MenuProvider, createMenuAction, useMenuActions, createMenuItemGroup } from "@dxos/react-ui-menu";
27
+ import { ElevationProvider, Input, useTranslation as useTranslation3 } from "@dxos/react-ui";
28
+ import { ControlGroup, ControlGroupButton, ControlItemInput } from "@dxos/react-ui-form";
29
+ import { MenuProvider, ToolbarMenu, createMenuAction, createMenuItemGroup, useMenuActions } from "@dxos/react-ui-menu";
29
30
  import { useSoundEffect } from "@dxos/react-ui-sfx";
30
31
  import { StackItem } from "@dxos/react-ui-stack";
31
32
 
32
33
  // src/components/Call/Call.tsx
33
34
  import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
34
35
  import React9 from "react";
35
- import { useCapability as useCapability3 } from "@dxos/app-framework";
36
-
37
- // src/components/Call/Toolbar.tsx
38
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
39
- import React from "react";
40
- import { useAppGraph, useCapability } from "@dxos/app-framework";
41
- import { useNode, useActions } from "@dxos/plugin-graph";
42
- import { fullyQualifiedId } from "@dxos/react-client/echo";
43
- import { Icon, IconButton, Toolbar as NativeToolbar, toLocalizedString, useTranslation } from "@dxos/react-ui";
44
- import { groupHoverControlItemWithTransition, mx } from "@dxos/react-ui-theme";
45
- var Toolbar = ({ classNames, channel, participants, autoHideControls = true, onJoin, onLeave }) => {
46
- var _effect = _useSignals();
47
- try {
48
- const { t } = useTranslation(meta.id);
49
- const { graph } = useAppGraph();
50
- const call = useCapability(ThreadCapabilities.CallManager);
51
- const node = useNode(graph, channel && fullyQualifiedId(channel));
52
- const actions = useActions(graph, node?.id).filter((action) => action.properties.disposition === "toolbar");
53
- const isScreensharing = call.media.screenshareTrack !== void 0;
54
- const canSharescreen = typeof navigator.mediaDevices !== "undefined" && navigator.mediaDevices.getDisplayMedia !== void 0;
55
- return /* @__PURE__ */ React.createElement("div", {
56
- className: mx("z-20 flex justify-center m-8", autoHideControls && groupHoverControlItemWithTransition)
57
- }, /* @__PURE__ */ React.createElement(NativeToolbar.Root, {
58
- classNames: [
59
- "p-2 bg-modalSurface rounded-md shadow-md",
60
- classNames
61
- ]
62
- }, /* @__PURE__ */ React.createElement(ToggleButton, {
63
- active: call.media.audioEnabled,
64
- state: {
65
- on: {
66
- icon: "ph--microphone--regular",
67
- label: t("mic off"),
68
- onClick: () => call.turnAudioOff(),
69
- classNames: "bg-callActive"
70
- },
71
- off: {
72
- icon: "ph--microphone-slash--duotone",
73
- label: t("mic on"),
74
- onClick: () => call.turnAudioOn(),
75
- classNames: [
76
- call.joined && "bg-callAlert"
77
- ]
78
- }
79
- }
80
- }), /* @__PURE__ */ React.createElement(ToggleButton, {
81
- active: call.media.videoEnabled,
82
- state: {
83
- on: {
84
- icon: "ph--video-camera--regular",
85
- label: t("camera off"),
86
- onClick: () => call.turnVideoOff()
87
- },
88
- off: {
89
- icon: "ph--video-camera-slash--duotone",
90
- label: t("camera on"),
91
- onClick: () => call.turnVideoOn()
92
- }
93
- }
94
- }), participants !== void 0 && /* @__PURE__ */ React.createElement("div", {
95
- className: "flex justify-center items-center gap-2 is-[5rem] text-xs text-subdued"
96
- }, /* @__PURE__ */ React.createElement(Icon, {
97
- icon: "ph--users--regular",
98
- size: 4
99
- }), /* @__PURE__ */ React.createElement("div", null, participants)) || /* @__PURE__ */ React.createElement(NativeToolbar.Separator, {
100
- variant: "gap"
101
- }), call.joined && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ToggleButton, {
102
- disabled: !canSharescreen,
103
- active: isScreensharing,
104
- state: {
105
- on: {
106
- icon: "ph--monitor--regular",
107
- label: t("screenshare off"),
108
- onClick: () => call.turnScreenshareOff()
109
- },
110
- off: {
111
- icon: "ph--monitor-arrow-up--duotone",
112
- label: t("screenshare on"),
113
- onClick: () => call.turnScreenshareOn()
114
- }
115
- }
116
- }), actions.map((action) => /* @__PURE__ */ React.createElement(IconButton, {
117
- key: action.id,
118
- ...defaultButtonProps,
119
- icon: action.properties.icon,
120
- label: toLocalizedString(action.properties.label, t),
121
- classNames: action.properties.classNames,
122
- onClick: () => action.data({
123
- node
124
- })
125
- })), /* @__PURE__ */ React.createElement(ToggleButton, {
126
- active: call.raisedHand,
127
- state: {
128
- on: {
129
- icon: "ph--hand-waving--regular",
130
- label: t("lower hand"),
131
- onClick: () => call.setRaisedHand(false),
132
- classNames: [
133
- call.joined && "bg-callAlert"
134
- ]
135
- },
136
- off: {
137
- icon: "ph--hand-palm--duotone",
138
- label: t("raise hand"),
139
- onClick: () => call.setRaisedHand(true)
140
- }
141
- }
142
- })), call.joined ? /* @__PURE__ */ React.createElement(IconButton, {
143
- variant: "destructive",
144
- icon: "ph--phone-x--regular",
145
- label: t("leave call"),
146
- onClick: onLeave
147
- }) : /* @__PURE__ */ React.createElement(IconButton, {
148
- variant: "primary",
149
- icon: "ph--phone-incoming--regular",
150
- label: t("join call"),
151
- onClick: onJoin
152
- })));
153
- } finally {
154
- _effect.f();
155
- }
156
- };
157
- Toolbar.displayName = "MeetingToolbar";
158
- var defaultButtonProps = {
159
- size: 5,
160
- iconOnly: true
161
- };
162
- var ToggleButton = ({ active, state }) => {
163
- var _effect = _useSignals();
164
- try {
165
- return /* @__PURE__ */ React.createElement(IconButton, {
166
- ...defaultButtonProps,
167
- classNames: [
168
- active ? state.on.classNames ?? "bg-callActive" : state.off.classNames
169
- ],
170
- icon: active ? state.on.icon : state.off.icon,
171
- label: active ? state.on.label : state.off.label,
172
- onClick: active ? state.on.onClick : state.off.onClick
173
- });
174
- } finally {
175
- _effect.f();
176
- }
177
- };
36
+ import { useCapability as useCapability3 } from "@dxos/app-framework/react";
178
37
 
179
38
  // src/components/Media/AudioStream.tsx
180
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
181
- import React2, { useEffect, useRef } from "react";
39
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
40
+ import React, { useEffect, useRef } from "react";
182
41
  var AudioStream = ({ tracks }) => {
183
- var _effect = _useSignals2();
42
+ var _effect = _useSignals();
184
43
  try {
185
44
  const mediaStreamRef = useRef(new MediaStream());
186
45
  const ref = useRef(null);
@@ -203,10 +62,10 @@ var AudioStream = ({ tracks }) => {
203
62
  });
204
63
  audio.srcObject = mediaStream;
205
64
  };
206
- return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("audio", {
65
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("audio", {
207
66
  ref,
208
67
  autoPlay: true
209
- }), tracks.map((track) => /* @__PURE__ */ React2.createElement(AudioTrack, {
68
+ }), tracks.map((track) => /* @__PURE__ */ React.createElement(AudioTrack, {
210
69
  key: track.id,
211
70
  track,
212
71
  mediaStream: mediaStreamRef.current,
@@ -233,11 +92,11 @@ var AudioTrack = ({ track, mediaStream, resetSrcObject }) => {
233
92
  };
234
93
 
235
94
  // src/components/Media/VideoObject.tsx
236
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
237
- import React3, { forwardRef, memo, useEffect as useEffect2, useRef as useRef2 } from "react";
238
- import { mx as mx2 } from "@dxos/react-ui-theme";
95
+ import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
96
+ import React2, { forwardRef, memo, useEffect as useEffect2, useRef as useRef2 } from "react";
97
+ import { mx } from "@dxos/react-ui-theme";
239
98
  var VideoObject = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef(({ videoStream, classNames, flip, contain, ...rest }, ref) => {
240
- var _effect = _useSignals3();
99
+ var _effect = _useSignals2();
241
100
  try {
242
101
  const internalRef = useRef2(null);
243
102
  useEffect2(() => {
@@ -251,8 +110,8 @@ var VideoObject = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef(({ videoStream
251
110
  videoStream,
252
111
  internalRef.current
253
112
  ]);
254
- return /* @__PURE__ */ React3.createElement("video", {
255
- className: mx2("w-full aspect-video", flip && "scale-x-[-1]", contain ? "object-contain" : "object-cover", classNames),
113
+ return /* @__PURE__ */ React2.createElement("video", {
114
+ className: mx("is-full aspect-video", flip && "scale-x-[-1]", contain ? "object-contain" : "object-cover", classNames),
256
115
  ref: (v) => {
257
116
  internalRef.current = v;
258
117
  if (ref === null) {
@@ -273,28 +132,28 @@ var VideoObject = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef(({ videoStream
273
132
  VideoObject.displayName = "VideoObject";
274
133
 
275
134
  // src/components/Participant/Participant.tsx
276
- import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
277
- import React7, { memo as memo2, useMemo as useMemo2 } from "react";
278
- import { useCapability as useCapability2 } from "@dxos/app-framework";
135
+ import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
136
+ import React6, { memo as memo2, useMemo as useMemo2 } from "react";
137
+ import { useCapability } from "@dxos/app-framework/react";
279
138
 
280
139
  // src/components/ResponsiveGrid/ResponsiveContainer.tsx
281
- import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
282
- import React4 from "react";
283
- import { mx as mx3 } from "@dxos/react-ui-theme";
140
+ import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
141
+ import React3 from "react";
142
+ import { mx as mx2 } from "@dxos/react-ui-theme";
284
143
  var ResponsiveContainer = ({ children }) => {
285
- var _effect = _useSignals4();
144
+ var _effect = _useSignals3();
286
145
  try {
287
146
  return (
288
147
  // Outer container that takes full size of parent.
289
- /* @__PURE__ */ React4.createElement("div", {
148
+ /* @__PURE__ */ React3.createElement("div", {
290
149
  role: "none",
291
- className: "relative flex w-full h-full"
292
- }, /* @__PURE__ */ React4.createElement("div", {
150
+ className: "relative flex is-full bs-full"
151
+ }, /* @__PURE__ */ React3.createElement("div", {
293
152
  role: "none",
294
153
  className: "absolute inset-0 flex justify-center items-center"
295
- }, /* @__PURE__ */ React4.createElement("div", {
154
+ }, /* @__PURE__ */ React3.createElement("div", {
296
155
  role: "none",
297
- className: mx3("max-h-full max-w-full w-auto h-auto aspect-video")
156
+ className: mx2("max-bs-full max-is-full is-auto bs-auto aspect-video")
298
157
  }, children)))
299
158
  );
300
159
  } finally {
@@ -303,19 +162,19 @@ var ResponsiveContainer = ({ children }) => {
303
162
  };
304
163
 
305
164
  // src/components/ResponsiveGrid/ResponsiveGrid.tsx
306
- import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
307
- import React5, { useLayoutEffect, useState, useEffect as useEffect3, useMemo, useCallback } from "react";
165
+ import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
166
+ import React4, { useCallback, useEffect as useEffect3, useLayoutEffect, useMemo, useState } from "react";
308
167
  import { useResizeDetector } from "react-resize-detector";
309
168
  import { invariant } from "@dxos/invariant";
310
- import { mx as mx4 } from "@dxos/react-ui-theme";
169
+ import { mx as mx3 } from "@dxos/react-ui-theme";
311
170
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/components/ResponsiveGrid/ResponsiveGrid.tsx";
312
171
  var ASPECT_RATIO = 16 / 9;
313
172
  var MIN_GALLERY_HEIGHT = 250;
314
173
  var DEFAULT_GAP = 8;
315
- var maxImageSize = "w-[2560px] h-[1440px]";
174
+ var maxImageSize = "is-[2560px] bs-[1440px]";
316
175
  var defaultGetId = (item) => item.id;
317
176
  var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = defaultGetId, items, pinned, autoHideGallery = false, debug, onPinnedChange }) => {
318
- var _effect = _useSignals5();
177
+ var _effect = _useSignals4();
319
178
  try {
320
179
  const { width: containerWidth = 0, height: containerHeight = 0, ref: containerRef } = useResizeDetector({
321
180
  refreshRate: 100
@@ -402,47 +261,47 @@ var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = def
402
261
  pinned,
403
262
  onPinnedChange
404
263
  ]);
405
- return /* @__PURE__ */ React5.createElement("div", {
264
+ return /* @__PURE__ */ React4.createElement("div", {
406
265
  ref: containerRef,
407
- className: mx4("relative w-full h-full", classNames)
408
- }, /* @__PURE__ */ React5.createElement("div", {
266
+ className: mx3("relative is-full bs-full", classNames)
267
+ }, /* @__PURE__ */ React4.createElement("div", {
409
268
  className: "absolute inset-0 flex flex-col grow gap-2"
410
- }, pinnedItem && /* @__PURE__ */ React5.createElement("div", {
411
- className: mx4("flex grow-[2] shrink overflow-hidden justify-center items-center", hideGallery && "h-full"),
269
+ }, pinnedItem && /* @__PURE__ */ React4.createElement("div", {
270
+ className: mx3("flex grow-[2] shrink overflow-hidden justify-center items-center", hideGallery && "bs-full"),
412
271
  style: hideGallery ? {} : {
413
272
  height: dividerHeight
414
273
  }
415
- }, /* @__PURE__ */ React5.createElement(SoloItem, {
274
+ }, /* @__PURE__ */ React4.createElement(SoloItem, {
416
275
  id: getId2(pinnedItem),
417
276
  debug
418
- })), !hideGallery && /* @__PURE__ */ React5.createElement("div", {
277
+ })), !hideGallery && /* @__PURE__ */ React4.createElement("div", {
419
278
  ref: gridContainerRef,
420
279
  className: "flex grow-[1] overflow-hidden justify-center items-center",
421
280
  style: hideGallery ? {} : {
422
281
  minHeight: MIN_GALLERY_HEIGHT
423
282
  }
424
- }, mainItems.length === 1 && /* @__PURE__ */ React5.createElement("div", {
283
+ }, mainItems.length === 1 && /* @__PURE__ */ React4.createElement("div", {
425
284
  style: {
426
285
  width: cellWidth
427
286
  },
428
- className: "flex h-full"
429
- }, /* @__PURE__ */ React5.createElement(SoloItem, {
287
+ className: "flex bs-full"
288
+ }, /* @__PURE__ */ React4.createElement(SoloItem, {
430
289
  id: getId2(mainItems[0]),
431
290
  debug
432
- })), mainItems.length > 1 && columns > 0 && /* @__PURE__ */ React5.createElement("div", {
291
+ })), mainItems.length > 1 && columns > 0 && /* @__PURE__ */ React4.createElement("div", {
433
292
  role: "grid",
434
293
  style: {
435
294
  display: "grid",
436
295
  gridTemplateColumns: `repeat(${columns}, ${cellWidth}px)`,
437
296
  gap: `${gap}px`
438
297
  }
439
- }, mainItems.map((item) => /* @__PURE__ */ React5.createElement("div", {
298
+ }, mainItems.map((item) => /* @__PURE__ */ React4.createElement("div", {
440
299
  key: getId2(item),
441
300
  "data-grid-item": getId2(item),
442
- className: mx4("aspect-video max-h-full max-w-full w-auto h-auto", debug && "border border-primary-500")
443
- }))))), /* @__PURE__ */ React5.createElement("div", {
444
- className: mx4(debug && "opacity-10")
445
- }, bounds.map(([item, bounds2]) => /* @__PURE__ */ React5.createElement(Cell, {
301
+ className: mx3("aspect-video max-bs-full max-is-full is-auto bs-auto", debug && "border border-primary-500")
302
+ }))))), /* @__PURE__ */ React4.createElement("div", {
303
+ className: mx3(debug && "opacity-10")
304
+ }, bounds.map(([item, bounds2]) => /* @__PURE__ */ React4.createElement(Cell, {
446
305
  key: getId2(item),
447
306
  classNames: "absolute transition-all duration-500",
448
307
  item,
@@ -455,14 +314,14 @@ var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = def
455
314
  }
456
315
  };
457
316
  var SoloItem = ({ debug, id }) => {
458
- var _effect = _useSignals5();
317
+ var _effect = _useSignals4();
459
318
  try {
460
- return /* @__PURE__ */ React5.createElement(ResponsiveContainer, null, /* @__PURE__ */ React5.createElement("div", {
319
+ return /* @__PURE__ */ React4.createElement(ResponsiveContainer, null, /* @__PURE__ */ React4.createElement("div", {
461
320
  "data-grid-item": id,
462
- className: mx4("aspect-video overflow-hidden", debug && "z-20 border-2 border-primary-500")
463
- }, /* @__PURE__ */ React5.createElement("img", {
321
+ className: mx3("aspect-video overflow-hidden", debug && "z-20 border-2 border-primary-500")
322
+ }, /* @__PURE__ */ React4.createElement("img", {
464
323
  alt: "placeholder video",
465
- className: mx4("opacity-0", maxImageSize)
324
+ className: mx3("opacity-0", maxImageSize)
466
325
  })));
467
326
  } finally {
468
327
  _effect.f();
@@ -532,15 +391,15 @@ var fitAspectRatio = (outerWidth, outerHeight, aspectRatio) => {
532
391
  };
533
392
 
534
393
  // src/components/ResponsiveGrid/ResponsiveGridItem.tsx
535
- import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
536
- import React6, { useEffect as useEffect4, useState as useState2 } from "react";
537
- import { Icon as Icon2, IconButton as IconButton2, useTranslation as useTranslation2 } from "@dxos/react-ui";
394
+ import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
395
+ import React5, { useEffect as useEffect4, useState as useState2 } from "react";
396
+ import { Icon, IconButton, useTranslation } from "@dxos/react-ui";
538
397
  import { Waveform } from "@dxos/react-ui-sfx";
539
- import { groupHoverControlItemWithTransition as groupHoverControlItemWithTransition2, mx as mx5 } from "@dxos/react-ui-theme";
398
+ import { groupHoverControlItemWithTransition, mx as mx4 } from "@dxos/react-ui-theme";
540
399
  var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinned, screenshare, video, mute, wave, speaking, onClick }) => {
541
- var _effect = _useSignals6();
400
+ var _effect = _useSignals5();
542
401
  try {
543
- const { t } = useTranslation2(meta.id);
402
+ const { t } = useTranslation(meta.id);
544
403
  const iconProps = {
545
404
  wave: {
546
405
  icon: "ph--hand-waving--duotone",
@@ -566,32 +425,32 @@ var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinne
566
425
  }, [
567
426
  speaking
568
427
  ]);
569
- return /* @__PURE__ */ React6.createElement("div", {
570
- className: mx5("relative w-full h-full group", "rounded-md outline outline-2 outline-neutral-900 transition-[outline-color] duration-500", speakingIndicator ? "outline-green-500" : !video && "outline-separator", classNames),
428
+ return /* @__PURE__ */ React5.createElement("div", {
429
+ className: mx4("relative is-full bs-full group", "rounded-md outline outline-2 outline-neutral-900 transition-[outline-color] duration-500", speakingIndicator ? "outline-green-500" : !video && "outline-separator", classNames),
571
430
  style
572
- }, children, onClick && /* @__PURE__ */ React6.createElement("div", {
431
+ }, children, onClick && /* @__PURE__ */ React5.createElement("div", {
573
432
  className: "z-10 absolute top-1 right-1 flex"
574
- }, /* @__PURE__ */ React6.createElement(IconButton2, {
575
- classNames: mx5("p-1 min-bs-1 rounded", groupHoverControlItemWithTransition2),
433
+ }, /* @__PURE__ */ React5.createElement(IconButton, {
434
+ classNames: mx4("p-1 min-bs-1 rounded", groupHoverControlItemWithTransition),
576
435
  iconOnly: true,
577
436
  icon: pinned ? "ph--x--regular" : "ph--arrows-out--regular",
578
437
  size: pinned ? 5 : 4,
579
438
  label: pinned ? t("icon unpin") : t("icon pin"),
580
439
  onClick: () => onClick?.(item)
581
- })), name && /* @__PURE__ */ React6.createElement("div", {
440
+ })), name && /* @__PURE__ */ React5.createElement("div", {
582
441
  className: "z-10 absolute bottom-1 left-8 right-1 flex justify-end gap-1 items-center"
583
- }, screenshare && /* @__PURE__ */ React6.createElement(Icon2, {
442
+ }, screenshare && /* @__PURE__ */ React5.createElement(Icon, {
584
443
  icon: "ph--broadcast--regular",
585
444
  size: pinned ? 5 : 4
586
- }), /* @__PURE__ */ React6.createElement("div", {
587
- className: mx5("bg-neutral-800 text-neutral-100 py-0.5 truncate rounded", pinned ? "px-2" : "px-1 text-xs")
588
- }, name)), /* @__PURE__ */ React6.createElement("div", {
445
+ }), /* @__PURE__ */ React5.createElement("div", {
446
+ className: mx4("bg-neutral-800 text-neutral-100 plb-0.5 truncate rounded", pinned ? "pli-2" : "pli-1 text-xs")
447
+ }, name)), /* @__PURE__ */ React5.createElement("div", {
589
448
  className: "z-10 absolute bottom-1 left-1 flex"
590
- }, speaking && /* @__PURE__ */ React6.createElement(Waveform, {
449
+ }, speaking && /* @__PURE__ */ React5.createElement(Waveform, {
591
450
  active: true,
592
451
  size: pinned ? 5 : 4
593
- }) || props && /* @__PURE__ */ React6.createElement(IconButton2, {
594
- classNames: mx5("p-1 min-bs-1 rounded", props?.classNames),
452
+ }) || props && /* @__PURE__ */ React5.createElement(IconButton, {
453
+ classNames: mx4("p-1 min-bs-1 rounded", props?.classNames),
595
454
  icon: props?.icon,
596
455
  label: props?.label,
597
456
  size: pinned ? 5 : 4,
@@ -605,17 +464,19 @@ var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinne
605
464
  // src/components/Participant/Participant.tsx
606
465
  var SCREENSHARE_SUFFIX = "_screenshare";
607
466
  var Participant = /* @__PURE__ */ memo2(({ item: user, debug, ...props }) => {
608
- var _effect = _useSignals7();
467
+ var _effect = _useSignals6();
609
468
  try {
610
- const call = useCapability2(ThreadCapabilities.CallManager);
469
+ const call = useCapability(ThreadCapabilities.CallManager);
611
470
  const isSelf = call.self.id !== void 0 && user.id !== void 0 && user.id.startsWith(call.self.id);
612
471
  const isScreenshare = user.id?.endsWith(SCREENSHARE_SUFFIX);
613
- const pulledVideoStream = call.getVideoStream(isScreenshare || !isSelf ? user.tracks?.video : void 0);
472
+ const pulledVideoStream = !isSelf && isScreenshare && user.tracks?.screenshareEnabled ? call.getVideoStream(user.tracks?.screenshare) : !isSelf && !isScreenshare && user.tracks?.videoEnabled ? call.getVideoStream(user.tracks?.video) : void 0;
614
473
  const videoStream = useMemo2(() => {
615
- if (isSelf && !isScreenshare) {
616
- return call.media.videoStream;
617
- } else if (isSelf && isScreenshare) {
618
- return call.media.screenshareVideoStream;
474
+ if (isSelf) {
475
+ if (isScreenshare) {
476
+ return call.media.screenshareVideoStream;
477
+ } else if (!isScreenshare) {
478
+ return call.media.videoStream;
479
+ }
619
480
  } else if (!isSelf) {
620
481
  return pulledVideoStream;
621
482
  }
@@ -626,7 +487,7 @@ var Participant = /* @__PURE__ */ memo2(({ item: user, debug, ...props }) => {
626
487
  call.media.screenshareVideoStream,
627
488
  pulledVideoStream
628
489
  ]);
629
- return /* @__PURE__ */ React7.createElement(ResponsiveGridItem, {
490
+ return /* @__PURE__ */ React6.createElement(ResponsiveGridItem, {
630
491
  ...props,
631
492
  item: user,
632
493
  name: user.name,
@@ -637,7 +498,7 @@ var Participant = /* @__PURE__ */ memo2(({ item: user, debug, ...props }) => {
637
498
  wave: user.raisedHand,
638
499
  speaking: user.speaking,
639
500
  debug
640
- }, /* @__PURE__ */ React7.createElement(VideoObject, {
501
+ }, /* @__PURE__ */ React6.createElement(VideoObject, {
641
502
  videoStream,
642
503
  flip: isSelf && !isScreenshare,
643
504
  contain: !!isScreenshare,
@@ -650,11 +511,11 @@ var Participant = /* @__PURE__ */ memo2(({ item: user, debug, ...props }) => {
650
511
  Participant.displayName = "Participant";
651
512
 
652
513
  // src/components/Participant/ParticipantGrid.tsx
653
- import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking";
654
- import React8, { useEffect as useEffect5, useMemo as useMemo3, useState as useState3 } from "react";
514
+ import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
515
+ import React7, { useEffect as useEffect5, useMemo as useMemo3, useState as useState3 } from "react";
655
516
  var getId = (user) => user.id;
656
517
  var ParticipantGrid = ({ classNames, self, users, fullscreen, debug }) => {
657
- var _effect = _useSignals8();
518
+ var _effect = _useSignals7();
658
519
  try {
659
520
  const [pinned, setPinned] = useState3();
660
521
  const allUsers = useMemo3(() => {
@@ -708,7 +569,7 @@ var ParticipantGrid = ({ classNames, self, users, fullscreen, debug }) => {
708
569
  return 0;
709
570
  }
710
571
  });
711
- return /* @__PURE__ */ React8.createElement(ResponsiveGrid, {
572
+ return /* @__PURE__ */ React7.createElement(ResponsiveGrid, {
712
573
  classNames,
713
574
  Cell: Participant,
714
575
  debug,
@@ -723,6 +584,148 @@ var ParticipantGrid = ({ classNames, self, users, fullscreen, debug }) => {
723
584
  }
724
585
  };
725
586
 
587
+ // src/components/Call/Toolbar.tsx
588
+ import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking";
589
+ import React8 from "react";
590
+ import { useAppGraph, useCapability as useCapability2 } from "@dxos/app-framework/react";
591
+ import { Obj } from "@dxos/echo";
592
+ import { useActions, useNode } from "@dxos/plugin-graph";
593
+ import { Icon as Icon2, IconButton as IconButton2, Toolbar as NaturalToolbar, toLocalizedString, useTranslation as useTranslation2 } from "@dxos/react-ui";
594
+ import { groupHoverControlItemWithTransition as groupHoverControlItemWithTransition2, mx as mx5 } from "@dxos/react-ui-theme";
595
+ var Toolbar = ({ classNames, channel, participants, autoHideControls = true, onJoin, onLeave }) => {
596
+ var _effect = _useSignals8();
597
+ try {
598
+ const { t } = useTranslation2(meta.id);
599
+ const { graph } = useAppGraph();
600
+ const call = useCapability2(ThreadCapabilities.CallManager);
601
+ const node = useNode(graph, channel && Obj.getDXN(channel).toString());
602
+ const actions = useActions(graph, node?.id).filter((action) => action.properties.disposition === "toolbar");
603
+ const isScreensharing = call.media.screenshareTrack !== void 0;
604
+ const canSharescreen = typeof navigator.mediaDevices !== "undefined" && navigator.mediaDevices.getDisplayMedia !== void 0;
605
+ return /* @__PURE__ */ React8.createElement("div", {
606
+ className: mx5("z-20 flex justify-center m-8", autoHideControls && groupHoverControlItemWithTransition2)
607
+ }, /* @__PURE__ */ React8.createElement(NaturalToolbar.Root, {
608
+ classNames: [
609
+ "p-2 bg-modalSurface rounded-md shadow-md",
610
+ classNames
611
+ ]
612
+ }, /* @__PURE__ */ React8.createElement(ToggleButton, {
613
+ active: call.media.audioEnabled,
614
+ state: {
615
+ on: {
616
+ icon: "ph--microphone--regular",
617
+ label: t("mic off"),
618
+ onClick: () => call.turnAudioOff(),
619
+ classNames: "bg-callActive"
620
+ },
621
+ off: {
622
+ icon: "ph--microphone-slash--duotone",
623
+ label: t("mic on"),
624
+ onClick: () => call.turnAudioOn(),
625
+ classNames: [
626
+ call.joined && "bg-callAlert"
627
+ ]
628
+ }
629
+ }
630
+ }), /* @__PURE__ */ React8.createElement(ToggleButton, {
631
+ active: call.media.videoEnabled,
632
+ state: {
633
+ on: {
634
+ icon: "ph--video-camera--regular",
635
+ label: t("camera off"),
636
+ onClick: () => call.turnVideoOff()
637
+ },
638
+ off: {
639
+ icon: "ph--video-camera-slash--duotone",
640
+ label: t("camera on"),
641
+ onClick: () => call.turnVideoOn()
642
+ }
643
+ }
644
+ }), participants !== void 0 && /* @__PURE__ */ React8.createElement("div", {
645
+ className: "flex justify-center items-center gap-2 is-[5rem] text-xs text-subdued"
646
+ }, /* @__PURE__ */ React8.createElement(Icon2, {
647
+ icon: "ph--users--regular",
648
+ size: 4
649
+ }), /* @__PURE__ */ React8.createElement("div", null, participants)) || /* @__PURE__ */ React8.createElement(NaturalToolbar.Separator, {
650
+ variant: "gap"
651
+ }), call.joined && /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(ToggleButton, {
652
+ disabled: !canSharescreen,
653
+ active: isScreensharing,
654
+ state: {
655
+ on: {
656
+ icon: "ph--monitor--regular",
657
+ label: t("screenshare off"),
658
+ onClick: () => call.turnScreenshareOff()
659
+ },
660
+ off: {
661
+ icon: "ph--monitor-arrow-up--duotone",
662
+ label: t("screenshare on"),
663
+ onClick: () => call.turnScreenshareOn()
664
+ }
665
+ }
666
+ }), actions.map((action) => /* @__PURE__ */ React8.createElement(IconButton2, {
667
+ key: action.id,
668
+ ...defaultButtonProps,
669
+ icon: action.properties.icon,
670
+ label: toLocalizedString(action.properties.label, t),
671
+ classNames: action.properties.classNames,
672
+ onClick: () => action.data({
673
+ node
674
+ })
675
+ })), /* @__PURE__ */ React8.createElement(ToggleButton, {
676
+ active: call.raisedHand,
677
+ state: {
678
+ on: {
679
+ icon: "ph--hand-waving--regular",
680
+ label: t("lower hand"),
681
+ onClick: () => call.setRaisedHand(false),
682
+ classNames: [
683
+ call.joined && "bg-callAlert"
684
+ ]
685
+ },
686
+ off: {
687
+ icon: "ph--hand-palm--duotone",
688
+ label: t("raise hand"),
689
+ onClick: () => call.setRaisedHand(true)
690
+ }
691
+ }
692
+ })), call.joined ? /* @__PURE__ */ React8.createElement(IconButton2, {
693
+ variant: "destructive",
694
+ icon: "ph--phone-x--regular",
695
+ label: t("leave call"),
696
+ onClick: onLeave
697
+ }) : /* @__PURE__ */ React8.createElement(IconButton2, {
698
+ variant: "primary",
699
+ icon: "ph--phone-incoming--regular",
700
+ label: t("join call"),
701
+ onClick: onJoin
702
+ })));
703
+ } finally {
704
+ _effect.f();
705
+ }
706
+ };
707
+ Toolbar.displayName = "MeetingToolbar";
708
+ var defaultButtonProps = {
709
+ size: 5,
710
+ iconOnly: true
711
+ };
712
+ var ToggleButton = ({ active, state }) => {
713
+ var _effect = _useSignals8();
714
+ try {
715
+ return /* @__PURE__ */ React8.createElement(IconButton2, {
716
+ ...defaultButtonProps,
717
+ classNames: [
718
+ active ? state.on.classNames ?? "bg-callActive" : state.off.classNames
719
+ ],
720
+ icon: active ? state.on.icon : state.off.icon,
721
+ label: active ? state.on.label : state.off.label,
722
+ onClick: active ? state.on.onClick : state.off.onClick
723
+ });
724
+ } finally {
725
+ _effect.f();
726
+ }
727
+ };
728
+
726
729
  // src/components/Call/Call.tsx
727
730
  var CallRoot = ({ children }) => {
728
731
  var _effect = _useSignals9();
@@ -793,7 +796,8 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
793
796
  try {
794
797
  const space = getSpace(channel);
795
798
  const callManager = useCapability4(ThreadCapabilities.CallManager);
796
- const roomId = _roomId ?? (channel ? fullyQualifiedId2(channel) : failUndefined());
799
+ const attendableId = channel ? Obj2.getDXN(channel).toString() : void 0;
800
+ const roomId = _roomId ?? attendableId ?? failUndefined();
797
801
  const identity = useIdentity();
798
802
  const isNamed = !!identity?.profile?.displayName;
799
803
  const joinSound = useSoundEffect("JoinCall");
@@ -802,7 +806,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
802
806
  useEffect6(() => {
803
807
  const ctx = new Context(void 0, {
804
808
  F: __dxlog_file2,
805
- L: 48
809
+ L: 53
806
810
  });
807
811
  callManager.left.on(ctx, (roomId2) => {
808
812
  extensions.forEach((extension) => {
@@ -844,7 +848,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
844
848
  } catch (err) {
845
849
  log.catch(err, void 0, {
846
850
  F: __dxlog_file2,
847
- L: 92,
851
+ L: 97,
848
852
  S: void 0,
849
853
  C: (f, a) => f(...a)
850
854
  });
@@ -860,7 +864,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
860
864
  } catch (err) {
861
865
  log.catch(err, void 0, {
862
866
  F: __dxlog_file2,
863
- L: 104,
867
+ L: 109,
864
868
  S: void 0,
865
869
  C: (f, a) => f(...a)
866
870
  });
@@ -876,20 +880,21 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
876
880
  ]);
877
881
  const isJoined = callManager.joined && callManager.roomId === roomId;
878
882
  return /* @__PURE__ */ React10.createElement(StackItem.Content, {
879
- toolbar: !isJoined,
880
- classNames: isJoined && "h-full"
883
+ classNames: isJoined && "bs-full",
884
+ toolbar: !isJoined
881
885
  }, isJoined && !isNamed && /* @__PURE__ */ React10.createElement(DisplayNameMissing, null), isJoined && isNamed && /* @__PURE__ */ React10.createElement(Call.Root, null, /* @__PURE__ */ React10.createElement(Call.Grid, {
882
886
  fullscreen
883
887
  }), /* @__PURE__ */ React10.createElement(Call.Toolbar, {
884
888
  channel,
885
889
  onLeave: handleLeave
886
890
  })), !isJoined && channel && channel.defaultThread.target && space && /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(ChannelToolbar, {
887
- attendableId: fullyQualifiedId2(channel),
891
+ attendableId,
888
892
  role,
889
893
  onJoinCall: handleJoin
890
894
  }), /* @__PURE__ */ React10.createElement(ChatContainer_default, {
891
895
  space,
892
- thread: channel.defaultThread.target
896
+ thread: channel.defaultThread.target,
897
+ classNames: "container-max-width"
893
898
  })));
894
899
  } finally {
895
900
  _effect.f();
@@ -928,7 +933,7 @@ var DisplayNameMissing = () => {
928
933
  }
929
934
  };
930
935
  var useChannelToolbarActions = (onJoinCall) => {
931
- const creator = useMemo4(() => Rx.make(() => {
936
+ const creator = useMemo4(() => Atom.make(() => {
932
937
  return {
933
938
  nodes: [
934
939
  createMenuItemGroup("root", {
@@ -960,7 +965,7 @@ var useChannelToolbarActions = (onJoinCall) => {
960
965
  }), []);
961
966
  return useMenuActions(creator);
962
967
  };
963
- var ChannelToolbar = ({ attendableId, role, onJoinCall, classNames }) => {
968
+ var ChannelToolbar = ({ attendableId, role, onJoinCall }) => {
964
969
  var _effect = _useSignals10();
965
970
  try {
966
971
  const menuProps = useChannelToolbarActions(onJoinCall);
@@ -970,7 +975,7 @@ var ChannelToolbar = ({ attendableId, role, onJoinCall, classNames }) => {
970
975
  ...menuProps,
971
976
  attendableId
972
977
  }, /* @__PURE__ */ React10.createElement(ToolbarMenu, {
973
- classNames
978
+ textBlockWidth: true
974
979
  })));
975
980
  } finally {
976
981
  _effect.f();
@@ -982,4 +987,4 @@ export {
982
987
  ChannelContainer,
983
988
  ChannelContainer_default
984
989
  };
985
- //# sourceMappingURL=chunk-C3XFMUAY.mjs.map
990
+ //# sourceMappingURL=chunk-AB42KYF3.mjs.map