@dxos/plugin-thread 0.8.4-main.67995b8 → 0.8.4-main.c4373fc
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.
- package/dist/lib/browser/ChannelContainer-BGDGZHV4.mjs +16 -0
- package/dist/lib/browser/ChatContainer-75KJZ4XR.mjs +15 -0
- package/dist/lib/browser/{app-graph-builder-N7BE5TYW.mjs → app-graph-builder-ODKIAXR7.mjs} +19 -19
- package/dist/lib/browser/app-graph-builder-ODKIAXR7.mjs.map +7 -0
- package/dist/lib/browser/{call-manager-NIPDYUVD.mjs → call-manager-BCKLI4QD.mjs} +7 -7
- package/dist/lib/browser/call-manager-BCKLI4QD.mjs.map +7 -0
- package/dist/lib/browser/chunk-2MUYQOQE.mjs +23 -0
- package/dist/lib/browser/{chunk-FR7KJPNY.mjs.map → chunk-2MUYQOQE.mjs.map} +3 -3
- package/dist/lib/browser/chunk-B7YQ7QR2.mjs +376 -0
- package/dist/lib/browser/chunk-B7YQ7QR2.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KWPRNHTK.mjs → chunk-CMCVHULC.mjs} +235 -233
- package/dist/lib/browser/chunk-CMCVHULC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GERVMFQW.mjs → chunk-CP7E2HRE.mjs} +2 -2
- package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ERWASUQK.mjs → chunk-HDEQRBOC.mjs} +38 -6
- package/dist/lib/{node-esm/chunk-25ABSYP2.mjs.map → browser/chunk-HDEQRBOC.mjs.map} +4 -4
- package/dist/lib/browser/chunk-L326LSNS.mjs +18 -0
- package/dist/lib/browser/chunk-L326LSNS.mjs.map +7 -0
- package/dist/lib/browser/{chunk-EV4JWI7L.mjs → chunk-T4KJ5JR4.mjs} +5 -7
- package/dist/lib/browser/chunk-T4KJ5JR4.mjs.map +7 -0
- package/dist/lib/browser/chunk-VJMKS4CZ.mjs +619 -0
- package/dist/lib/browser/chunk-VJMKS4CZ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GCLD5ESP.mjs → chunk-VTYX3SIM.mjs} +26 -16
- package/dist/lib/browser/chunk-VTYX3SIM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6NSMBO3B.mjs → chunk-XYUJXHYV.mjs} +55 -5
- package/dist/lib/browser/chunk-XYUJXHYV.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ZE7KWN36.mjs → chunk-ZCEU5K23.mjs} +461 -240
- package/dist/lib/browser/chunk-ZCEU5K23.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +23 -14
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-JFGLZ6VI.mjs → intent-resolver-VOQD3TQ2.mjs} +75 -17
- package/dist/lib/browser/intent-resolver-VOQD3TQ2.mjs.map +7 -0
- package/dist/lib/browser/{markdown-M3FMR7OD.mjs → markdown-R6MGRIA6.mjs} +7 -7
- package/dist/lib/browser/markdown-R6MGRIA6.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-root-UMSBTN6H.mjs +28 -0
- package/dist/lib/browser/react-root-UMSBTN6H.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-XWS6GIZY.mjs → react-surface-SXMQEWKE.mjs} +22 -22
- package/dist/lib/browser/react-surface-SXMQEWKE.mjs.map +7 -0
- package/dist/lib/browser/{settings-E32MTL7A.mjs → settings-TCNF54PN.mjs} +5 -5
- package/dist/lib/browser/{settings-E32MTL7A.mjs.map → settings-TCNF54PN.mjs.map} +1 -1
- package/dist/lib/browser/{state-H6CYONWE.mjs → state-ZQ4IPOJT.mjs} +5 -5
- package/dist/lib/browser/state-ZQ4IPOJT.mjs.map +7 -0
- package/dist/lib/browser/toolkit-JF4B4QIO.mjs +84 -0
- package/dist/lib/browser/toolkit-JF4B4QIO.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/ChannelContainer-OXC6BTU7.mjs +17 -0
- package/dist/lib/node-esm/{ChatContainer-IQUWU426.mjs → ChatContainer-SH6LTFQL.mjs} +6 -6
- package/dist/lib/node-esm/{app-graph-builder-VCW76Z6V.mjs → app-graph-builder-DMPT3MY6.mjs} +19 -19
- package/dist/lib/node-esm/app-graph-builder-DMPT3MY6.mjs.map +7 -0
- package/dist/lib/node-esm/{call-manager-D6O5ZJJ4.mjs → call-manager-Q7RY2YP4.mjs} +7 -7
- package/dist/lib/node-esm/call-manager-Q7RY2YP4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-C3XFMUAY.mjs → chunk-2KZ4ODHU.mjs} +235 -233
- package/dist/lib/node-esm/chunk-2KZ4ODHU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-25ABSYP2.mjs → chunk-2MMJF7DW.mjs} +38 -6
- package/dist/lib/node-esm/chunk-2MMJF7DW.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-OU5BYIDO.mjs → chunk-2V3WSLUZ.mjs} +55 -5
- package/dist/lib/node-esm/chunk-2V3WSLUZ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-57XR3LEF.mjs → chunk-ABUFOZVX.mjs} +2 -2
- package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-TDFHTCZZ.mjs → chunk-BAMZXJS4.mjs} +26 -16
- package/dist/lib/node-esm/chunk-BAMZXJS4.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BTGKI5IK.mjs +377 -0
- package/dist/lib/node-esm/chunk-BTGKI5IK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GZ4WL2IS.mjs +25 -0
- package/dist/lib/node-esm/{chunk-2CXOK2TD.mjs.map → chunk-GZ4WL2IS.mjs.map} +3 -3
- package/dist/lib/node-esm/chunk-LCHTNRK7.mjs +19 -0
- package/dist/lib/node-esm/chunk-LCHTNRK7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-NHSIAEDW.mjs +620 -0
- package/dist/lib/node-esm/chunk-NHSIAEDW.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-GRLRWTRU.mjs → chunk-OBVAURUU.mjs} +5 -7
- package/dist/lib/node-esm/chunk-OBVAURUU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-IHDNQLLR.mjs → chunk-TIPIOH2J.mjs} +461 -240
- package/dist/lib/node-esm/chunk-TIPIOH2J.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +23 -14
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-OXGNQ44Y.mjs → intent-resolver-AKVH66PH.mjs} +75 -17
- package/dist/lib/node-esm/intent-resolver-AKVH66PH.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-INKTE4MH.mjs → markdown-MYGTDXT6.mjs} +7 -7
- package/dist/lib/node-esm/markdown-MYGTDXT6.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-root-W6AVTL5M.mjs +29 -0
- package/dist/lib/node-esm/react-root-W6AVTL5M.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-MJ33KPYE.mjs → react-surface-NLSZJGMO.mjs} +22 -22
- package/dist/lib/node-esm/react-surface-NLSZJGMO.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-SJ24YG7M.mjs → settings-ZQHGVFBY.mjs} +5 -5
- package/dist/lib/node-esm/{settings-SJ24YG7M.mjs.map → settings-ZQHGVFBY.mjs.map} +1 -1
- package/dist/lib/node-esm/{state-D7WNDT3N.mjs → state-FSLLJ5TZ.mjs} +5 -5
- package/dist/lib/node-esm/state-FSLLJ5TZ.mjs.map +7 -0
- package/dist/lib/node-esm/toolkit-DHPKJITO.mjs +85 -0
- package/dist/lib/node-esm/toolkit-DHPKJITO.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/ThreadPlugin.d.ts +1 -1
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/calls/call-manager.d.ts.map +1 -1
- package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
- package/dist/types/src/calls/media-manager.d.ts +1 -1
- package/dist/types/src/calls/media-manager.d.ts.map +1 -1
- package/dist/types/src/calls/types.d.ts +1 -1
- package/dist/types/src/calls/types.d.ts.map +1 -1
- package/dist/types/src/calls/util/calls-service.d.ts +4 -2
- package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
- package/dist/types/src/calls/util/stub-media-streams.d.ts.map +1 -1
- package/dist/types/src/calls-service.stories.d.ts +10 -9
- package/dist/types/src/calls-service.stories.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/call-manager.d.ts +1 -1
- package/dist/types/src/capabilities/call-manager.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +2 -2
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +11 -10
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts +1 -1
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts +2 -2
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/capabilities/toolkit.d.ts +6 -0
- package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
- package/dist/types/src/components/Call/Call.d.ts.map +1 -1
- package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/CallDebugPanel.d.ts +7 -0
- package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
- package/dist/types/src/components/CallSidebar.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts +89 -5
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Chat.stories.d.ts +91 -5
- package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/Comments.stories.d.ts +160 -4
- package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
- package/dist/types/src/components/CommentsThreadContainer.d.ts +2 -2
- package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
- package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.d.ts +2 -2
- package/dist/types/src/components/Media/VideoObject.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.stories.d.ts +18 -4
- package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts +4 -1
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/Participant/Participant.d.ts.map +1 -1
- package/dist/types/src/components/Participant/ParticipantGrid.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +155 -3
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +157 -4
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
- package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
- package/dist/types/src/components/ThreadSettings.d.ts +1 -1
- package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
- package/dist/types/src/components/command-extension.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +1 -0
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts +2 -0
- package/dist/types/src/hooks/useBlackCanvasStreamTrack.d.ts.map +1 -0
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts +1 -1
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -1
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +126 -109
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +259 -172
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +64 -62
- package/src/ThreadPlugin.tsx +130 -124
- package/src/calls/call-manager.ts +2 -2
- package/src/calls/call-swarm-synchronizer.ts +1 -1
- package/src/calls/media-manager.ts +60 -34
- package/src/calls/types.ts +8 -4
- package/src/calls/util/calls-service.ts +65 -14
- package/src/calls/util/stub-media-streams.ts +62 -5
- package/src/calls-service.stories.tsx +78 -65
- package/src/capabilities/app-graph-builder.ts +18 -14
- package/src/capabilities/call-manager.ts +3 -2
- package/src/capabilities/capabilities.ts +7 -7
- package/src/capabilities/index.ts +1 -0
- package/src/capabilities/intent-resolver.ts +43 -9
- package/src/capabilities/markdown.ts +4 -3
- package/src/capabilities/react-root.tsx +2 -2
- package/src/capabilities/react-surface.tsx +14 -13
- package/src/capabilities/state.ts +2 -1
- package/src/capabilities/toolkit.ts +82 -0
- package/src/components/Call/Call.tsx +3 -2
- package/src/components/Call/Toolbar.tsx +5 -5
- package/src/components/CallDebugPanel.tsx +108 -49
- package/src/components/CallSidebar.tsx +2 -1
- package/src/components/ChannelContainer.stories.tsx +11 -10
- package/src/components/ChannelContainer.tsx +8 -7
- package/src/components/Chat.stories.tsx +34 -31
- package/src/components/ChatContainer.tsx +8 -4
- package/src/components/Comments.stories.tsx +39 -38
- package/src/components/CommentsContainer.tsx +2 -1
- package/src/components/CommentsThreadContainer.tsx +9 -7
- package/src/components/Lobby/Lobby.tsx +1 -1
- package/src/components/Media/VideoObject.stories.tsx +36 -28
- package/src/components/MessageContainer.tsx +43 -9
- package/src/components/Participant/Participant.tsx +13 -7
- package/src/components/Participant/ParticipantGrid.tsx +2 -1
- package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +8 -8
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +44 -42
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +2 -2
- package/src/components/ThreadComplementary.tsx +37 -7
- package/src/components/ThreadSettings.tsx +6 -7
- package/src/components/command-extension.ts +5 -2
- package/src/components/testing.ts +22 -0
- package/src/extensions/threads.ts +3 -3
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useBlackCanvasStreamTrack.tsx +27 -0
- package/src/hooks/useDebugMode.ts +1 -1
- package/src/hooks/useVideoStreamTrack.tsx +6 -3
- package/src/meta.ts +3 -4
- package/src/testing/stories.ts +3 -3
- package/src/translations.ts +3 -1
- package/src/types/schema.ts +1 -1
- package/src/types/types.ts +22 -13
- package/src/typings/peermetrics-webrtc-stats.d.ts +17 -1
- package/src/typings.d.ts +8 -0
- package/src/util.ts +1 -1
- package/dist/lib/browser/ChannelContainer-3GIE7ASU.mjs +0 -16
- package/dist/lib/browser/ChatContainer-AIGIWAUG.mjs +0 -15
- package/dist/lib/browser/app-graph-builder-N7BE5TYW.mjs.map +0 -7
- package/dist/lib/browser/call-manager-NIPDYUVD.mjs.map +0 -7
- package/dist/lib/browser/chunk-3SGRT4NM.mjs +0 -367
- package/dist/lib/browser/chunk-3SGRT4NM.mjs.map +0 -7
- package/dist/lib/browser/chunk-6NSMBO3B.mjs.map +0 -7
- package/dist/lib/browser/chunk-ERWASUQK.mjs.map +0 -7
- package/dist/lib/browser/chunk-EV4JWI7L.mjs.map +0 -7
- package/dist/lib/browser/chunk-FR7KJPNY.mjs +0 -21
- package/dist/lib/browser/chunk-GCLD5ESP.mjs.map +0 -7
- package/dist/lib/browser/chunk-GERVMFQW.mjs.map +0 -7
- package/dist/lib/browser/chunk-KWPRNHTK.mjs.map +0 -7
- package/dist/lib/browser/chunk-LGSDKXPF.mjs +0 -18
- package/dist/lib/browser/chunk-LGSDKXPF.mjs.map +0 -7
- package/dist/lib/browser/chunk-VUWC4IJM.mjs +0 -479
- package/dist/lib/browser/chunk-VUWC4IJM.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZE7KWN36.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-JFGLZ6VI.mjs.map +0 -7
- package/dist/lib/browser/markdown-M3FMR7OD.mjs.map +0 -7
- package/dist/lib/browser/react-root-JEUSQXI6.mjs +0 -28
- package/dist/lib/browser/react-root-JEUSQXI6.mjs.map +0 -7
- package/dist/lib/browser/react-surface-XWS6GIZY.mjs.map +0 -7
- package/dist/lib/browser/state-H6CYONWE.mjs.map +0 -7
- package/dist/lib/node-esm/ChannelContainer-7FXCKO7X.mjs +0 -17
- package/dist/lib/node-esm/app-graph-builder-VCW76Z6V.mjs.map +0 -7
- package/dist/lib/node-esm/call-manager-D6O5ZJJ4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2CXOK2TD.mjs +0 -23
- package/dist/lib/node-esm/chunk-2MFNK53T.mjs +0 -480
- package/dist/lib/node-esm/chunk-2MFNK53T.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-57XR3LEF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-75RJ5DJI.mjs +0 -19
- package/dist/lib/node-esm/chunk-75RJ5DJI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-C3XFMUAY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FLBFYGBK.mjs +0 -368
- package/dist/lib/node-esm/chunk-FLBFYGBK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GRLRWTRU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-IHDNQLLR.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OU5BYIDO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TDFHTCZZ.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-OXGNQ44Y.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-INKTE4MH.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-XYYY2JXZ.mjs +0 -29
- package/dist/lib/node-esm/react-root-XYYY2JXZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-MJ33KPYE.mjs.map +0 -7
- package/dist/lib/node-esm/state-D7WNDT3N.mjs.map +0 -7
- /package/dist/lib/browser/{ChannelContainer-3GIE7ASU.mjs.map → ChannelContainer-BGDGZHV4.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-AIGIWAUG.mjs.map → ChatContainer-75KJZ4XR.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChannelContainer-7FXCKO7X.mjs.map → ChannelContainer-OXC6BTU7.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-IQUWU426.mjs.map → ChatContainer-SH6LTFQL.mjs.map} +0 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ThreadCapabilities
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-L326LSNS.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ChatContainer_default
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-B7YQ7QR2.mjs";
|
|
7
7
|
import {
|
|
8
8
|
useDebugMode
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-HDEQRBOC.mjs";
|
|
10
10
|
import {
|
|
11
11
|
meta
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-T4KJ5JR4.mjs";
|
|
13
13
|
|
|
14
14
|
// src/components/ChannelContainer.tsx
|
|
15
15
|
import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
|
|
@@ -22,9 +22,9 @@ import { log } from "@dxos/log";
|
|
|
22
22
|
import { useClient } from "@dxos/react-client";
|
|
23
23
|
import { fullyQualifiedId as fullyQualifiedId2, getSpace } from "@dxos/react-client/echo";
|
|
24
24
|
import { useIdentity } from "@dxos/react-client/halo";
|
|
25
|
-
import { useTranslation as useTranslation3
|
|
26
|
-
import { ControlGroup,
|
|
27
|
-
import {
|
|
25
|
+
import { ElevationProvider, Input, useTranslation as useTranslation3 } from "@dxos/react-ui";
|
|
26
|
+
import { ControlGroup, ControlGroupButton, ControlItemInput } from "@dxos/react-ui-form";
|
|
27
|
+
import { MenuProvider, ToolbarMenu, createMenuAction, createMenuItemGroup, useMenuActions } from "@dxos/react-ui-menu";
|
|
28
28
|
import { useSoundEffect } from "@dxos/react-ui-sfx";
|
|
29
29
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
30
30
|
|
|
@@ -33,153 +33,11 @@ import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking"
|
|
|
33
33
|
import React9 from "react";
|
|
34
34
|
import { useCapability as useCapability3 } from "@dxos/app-framework";
|
|
35
35
|
|
|
36
|
-
// src/components/Call/Toolbar.tsx
|
|
37
|
-
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
38
|
-
import React from "react";
|
|
39
|
-
import { useAppGraph, useCapability } from "@dxos/app-framework";
|
|
40
|
-
import { useNode, useActions } from "@dxos/plugin-graph";
|
|
41
|
-
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
42
|
-
import { Icon, IconButton, Toolbar as NativeToolbar, toLocalizedString, useTranslation } from "@dxos/react-ui";
|
|
43
|
-
import { groupHoverControlItemWithTransition, mx } from "@dxos/react-ui-theme";
|
|
44
|
-
var Toolbar = ({ classNames, channel, participants, autoHideControls = true, onJoin, onLeave }) => {
|
|
45
|
-
var _effect = _useSignals();
|
|
46
|
-
try {
|
|
47
|
-
const { t } = useTranslation(meta.id);
|
|
48
|
-
const { graph } = useAppGraph();
|
|
49
|
-
const call = useCapability(ThreadCapabilities.CallManager);
|
|
50
|
-
const node = useNode(graph, channel && fullyQualifiedId(channel));
|
|
51
|
-
const actions = useActions(graph, node?.id).filter((action) => action.properties.disposition === "toolbar");
|
|
52
|
-
const isScreensharing = call.media.screenshareTrack !== void 0;
|
|
53
|
-
const canSharescreen = typeof navigator.mediaDevices !== "undefined" && navigator.mediaDevices.getDisplayMedia !== void 0;
|
|
54
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
55
|
-
className: mx("z-20 flex justify-center m-8", autoHideControls && groupHoverControlItemWithTransition)
|
|
56
|
-
}, /* @__PURE__ */ React.createElement(NativeToolbar.Root, {
|
|
57
|
-
classNames: [
|
|
58
|
-
"p-2 bg-modalSurface rounded-md shadow-md",
|
|
59
|
-
classNames
|
|
60
|
-
]
|
|
61
|
-
}, /* @__PURE__ */ React.createElement(ToggleButton, {
|
|
62
|
-
active: call.media.audioEnabled,
|
|
63
|
-
state: {
|
|
64
|
-
on: {
|
|
65
|
-
icon: "ph--microphone--regular",
|
|
66
|
-
label: t("mic off"),
|
|
67
|
-
onClick: () => call.turnAudioOff(),
|
|
68
|
-
classNames: "bg-callActive"
|
|
69
|
-
},
|
|
70
|
-
off: {
|
|
71
|
-
icon: "ph--microphone-slash--duotone",
|
|
72
|
-
label: t("mic on"),
|
|
73
|
-
onClick: () => call.turnAudioOn(),
|
|
74
|
-
classNames: [
|
|
75
|
-
call.joined && "bg-callAlert"
|
|
76
|
-
]
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}), /* @__PURE__ */ React.createElement(ToggleButton, {
|
|
80
|
-
active: call.media.videoEnabled,
|
|
81
|
-
state: {
|
|
82
|
-
on: {
|
|
83
|
-
icon: "ph--video-camera--regular",
|
|
84
|
-
label: t("camera off"),
|
|
85
|
-
onClick: () => call.turnVideoOff()
|
|
86
|
-
},
|
|
87
|
-
off: {
|
|
88
|
-
icon: "ph--video-camera-slash--duotone",
|
|
89
|
-
label: t("camera on"),
|
|
90
|
-
onClick: () => call.turnVideoOn()
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}), participants !== void 0 && /* @__PURE__ */ React.createElement("div", {
|
|
94
|
-
className: "flex justify-center items-center gap-2 is-[5rem] text-xs text-subdued"
|
|
95
|
-
}, /* @__PURE__ */ React.createElement(Icon, {
|
|
96
|
-
icon: "ph--users--regular",
|
|
97
|
-
size: 4
|
|
98
|
-
}), /* @__PURE__ */ React.createElement("div", null, participants)) || /* @__PURE__ */ React.createElement(NativeToolbar.Separator, {
|
|
99
|
-
variant: "gap"
|
|
100
|
-
}), call.joined && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ToggleButton, {
|
|
101
|
-
disabled: !canSharescreen,
|
|
102
|
-
active: isScreensharing,
|
|
103
|
-
state: {
|
|
104
|
-
on: {
|
|
105
|
-
icon: "ph--monitor--regular",
|
|
106
|
-
label: t("screenshare off"),
|
|
107
|
-
onClick: () => call.turnScreenshareOff()
|
|
108
|
-
},
|
|
109
|
-
off: {
|
|
110
|
-
icon: "ph--monitor-arrow-up--duotone",
|
|
111
|
-
label: t("screenshare on"),
|
|
112
|
-
onClick: () => call.turnScreenshareOn()
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}), actions.map((action) => /* @__PURE__ */ React.createElement(IconButton, {
|
|
116
|
-
key: action.id,
|
|
117
|
-
...defaultButtonProps,
|
|
118
|
-
icon: action.properties.icon,
|
|
119
|
-
label: toLocalizedString(action.properties.label, t),
|
|
120
|
-
classNames: action.properties.classNames,
|
|
121
|
-
onClick: () => action.data({
|
|
122
|
-
node
|
|
123
|
-
})
|
|
124
|
-
})), /* @__PURE__ */ React.createElement(ToggleButton, {
|
|
125
|
-
active: call.raisedHand,
|
|
126
|
-
state: {
|
|
127
|
-
on: {
|
|
128
|
-
icon: "ph--hand-waving--regular",
|
|
129
|
-
label: t("lower hand"),
|
|
130
|
-
onClick: () => call.setRaisedHand(false),
|
|
131
|
-
classNames: [
|
|
132
|
-
call.joined && "bg-callAlert"
|
|
133
|
-
]
|
|
134
|
-
},
|
|
135
|
-
off: {
|
|
136
|
-
icon: "ph--hand-palm--duotone",
|
|
137
|
-
label: t("raise hand"),
|
|
138
|
-
onClick: () => call.setRaisedHand(true)
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
})), call.joined ? /* @__PURE__ */ React.createElement(IconButton, {
|
|
142
|
-
variant: "destructive",
|
|
143
|
-
icon: "ph--phone-x--regular",
|
|
144
|
-
label: t("leave call"),
|
|
145
|
-
onClick: onLeave
|
|
146
|
-
}) : /* @__PURE__ */ React.createElement(IconButton, {
|
|
147
|
-
variant: "primary",
|
|
148
|
-
icon: "ph--phone-incoming--regular",
|
|
149
|
-
label: t("join call"),
|
|
150
|
-
onClick: onJoin
|
|
151
|
-
})));
|
|
152
|
-
} finally {
|
|
153
|
-
_effect.f();
|
|
154
|
-
}
|
|
155
|
-
};
|
|
156
|
-
Toolbar.displayName = "MeetingToolbar";
|
|
157
|
-
var defaultButtonProps = {
|
|
158
|
-
size: 5,
|
|
159
|
-
iconOnly: true
|
|
160
|
-
};
|
|
161
|
-
var ToggleButton = ({ active, state }) => {
|
|
162
|
-
var _effect = _useSignals();
|
|
163
|
-
try {
|
|
164
|
-
return /* @__PURE__ */ React.createElement(IconButton, {
|
|
165
|
-
...defaultButtonProps,
|
|
166
|
-
classNames: [
|
|
167
|
-
active ? state.on.classNames ?? "bg-callActive" : state.off.classNames
|
|
168
|
-
],
|
|
169
|
-
icon: active ? state.on.icon : state.off.icon,
|
|
170
|
-
label: active ? state.on.label : state.off.label,
|
|
171
|
-
onClick: active ? state.on.onClick : state.off.onClick
|
|
172
|
-
});
|
|
173
|
-
} finally {
|
|
174
|
-
_effect.f();
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
|
|
178
36
|
// src/components/Media/AudioStream.tsx
|
|
179
|
-
import { useSignals as
|
|
180
|
-
import
|
|
37
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
38
|
+
import React, { useEffect, useRef } from "react";
|
|
181
39
|
var AudioStream = ({ tracks }) => {
|
|
182
|
-
var _effect =
|
|
40
|
+
var _effect = _useSignals();
|
|
183
41
|
try {
|
|
184
42
|
const mediaStreamRef = useRef(new MediaStream());
|
|
185
43
|
const ref = useRef(null);
|
|
@@ -202,10 +60,10 @@ var AudioStream = ({ tracks }) => {
|
|
|
202
60
|
});
|
|
203
61
|
audio.srcObject = mediaStream;
|
|
204
62
|
};
|
|
205
|
-
return /* @__PURE__ */
|
|
63
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("audio", {
|
|
206
64
|
ref,
|
|
207
65
|
autoPlay: true
|
|
208
|
-
}), tracks.map((track) => /* @__PURE__ */
|
|
66
|
+
}), tracks.map((track) => /* @__PURE__ */ React.createElement(AudioTrack, {
|
|
209
67
|
key: track.id,
|
|
210
68
|
track,
|
|
211
69
|
mediaStream: mediaStreamRef.current,
|
|
@@ -232,11 +90,11 @@ var AudioTrack = ({ track, mediaStream, resetSrcObject }) => {
|
|
|
232
90
|
};
|
|
233
91
|
|
|
234
92
|
// src/components/Media/VideoObject.tsx
|
|
235
|
-
import { useSignals as
|
|
236
|
-
import
|
|
237
|
-
import { mx
|
|
93
|
+
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
94
|
+
import React2, { forwardRef, memo, useEffect as useEffect2, useRef as useRef2 } from "react";
|
|
95
|
+
import { mx } from "@dxos/react-ui-theme";
|
|
238
96
|
var VideoObject = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef(({ videoStream, classNames, flip, contain, ...rest }, ref) => {
|
|
239
|
-
var _effect =
|
|
97
|
+
var _effect = _useSignals2();
|
|
240
98
|
try {
|
|
241
99
|
const internalRef = useRef2(null);
|
|
242
100
|
useEffect2(() => {
|
|
@@ -250,8 +108,8 @@ var VideoObject = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef(({ videoStream
|
|
|
250
108
|
videoStream,
|
|
251
109
|
internalRef.current
|
|
252
110
|
]);
|
|
253
|
-
return /* @__PURE__ */
|
|
254
|
-
className:
|
|
111
|
+
return /* @__PURE__ */ React2.createElement("video", {
|
|
112
|
+
className: mx("w-full aspect-video", flip && "scale-x-[-1]", contain ? "object-contain" : "object-cover", classNames),
|
|
255
113
|
ref: (v) => {
|
|
256
114
|
internalRef.current = v;
|
|
257
115
|
if (ref === null) {
|
|
@@ -272,28 +130,28 @@ var VideoObject = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef(({ videoStream
|
|
|
272
130
|
VideoObject.displayName = "VideoObject";
|
|
273
131
|
|
|
274
132
|
// src/components/Participant/Participant.tsx
|
|
275
|
-
import { useSignals as
|
|
276
|
-
import
|
|
277
|
-
import { useCapability
|
|
133
|
+
import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
|
|
134
|
+
import React6, { memo as memo2, useMemo as useMemo2 } from "react";
|
|
135
|
+
import { useCapability } from "@dxos/app-framework";
|
|
278
136
|
|
|
279
137
|
// src/components/ResponsiveGrid/ResponsiveContainer.tsx
|
|
280
|
-
import { useSignals as
|
|
281
|
-
import
|
|
282
|
-
import { mx as
|
|
138
|
+
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
139
|
+
import React3 from "react";
|
|
140
|
+
import { mx as mx2 } from "@dxos/react-ui-theme";
|
|
283
141
|
var ResponsiveContainer = ({ children }) => {
|
|
284
|
-
var _effect =
|
|
142
|
+
var _effect = _useSignals3();
|
|
285
143
|
try {
|
|
286
144
|
return (
|
|
287
145
|
// Outer container that takes full size of parent.
|
|
288
|
-
/* @__PURE__ */
|
|
146
|
+
/* @__PURE__ */ React3.createElement("div", {
|
|
289
147
|
role: "none",
|
|
290
148
|
className: "relative flex w-full h-full"
|
|
291
|
-
}, /* @__PURE__ */
|
|
149
|
+
}, /* @__PURE__ */ React3.createElement("div", {
|
|
292
150
|
role: "none",
|
|
293
151
|
className: "absolute inset-0 flex justify-center items-center"
|
|
294
|
-
}, /* @__PURE__ */
|
|
152
|
+
}, /* @__PURE__ */ React3.createElement("div", {
|
|
295
153
|
role: "none",
|
|
296
|
-
className:
|
|
154
|
+
className: mx2("max-h-full max-w-full w-auto h-auto aspect-video")
|
|
297
155
|
}, children)))
|
|
298
156
|
);
|
|
299
157
|
} finally {
|
|
@@ -302,11 +160,11 @@ var ResponsiveContainer = ({ children }) => {
|
|
|
302
160
|
};
|
|
303
161
|
|
|
304
162
|
// src/components/ResponsiveGrid/ResponsiveGrid.tsx
|
|
305
|
-
import { useSignals as
|
|
306
|
-
import
|
|
163
|
+
import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
|
|
164
|
+
import React4, { useCallback, useEffect as useEffect3, useLayoutEffect, useMemo, useState } from "react";
|
|
307
165
|
import { useResizeDetector } from "react-resize-detector";
|
|
308
166
|
import { invariant } from "@dxos/invariant";
|
|
309
|
-
import { mx as
|
|
167
|
+
import { mx as mx3 } from "@dxos/react-ui-theme";
|
|
310
168
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/components/ResponsiveGrid/ResponsiveGrid.tsx";
|
|
311
169
|
var ASPECT_RATIO = 16 / 9;
|
|
312
170
|
var MIN_GALLERY_HEIGHT = 250;
|
|
@@ -314,7 +172,7 @@ var DEFAULT_GAP = 8;
|
|
|
314
172
|
var maxImageSize = "w-[2560px] h-[1440px]";
|
|
315
173
|
var defaultGetId = (item) => item.id;
|
|
316
174
|
var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = defaultGetId, items, pinned, autoHideGallery = false, debug, onPinnedChange }) => {
|
|
317
|
-
var _effect =
|
|
175
|
+
var _effect = _useSignals4();
|
|
318
176
|
try {
|
|
319
177
|
const { width: containerWidth = 0, height: containerHeight = 0, ref: containerRef } = useResizeDetector({
|
|
320
178
|
refreshRate: 100
|
|
@@ -401,47 +259,47 @@ var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = def
|
|
|
401
259
|
pinned,
|
|
402
260
|
onPinnedChange
|
|
403
261
|
]);
|
|
404
|
-
return /* @__PURE__ */
|
|
262
|
+
return /* @__PURE__ */ React4.createElement("div", {
|
|
405
263
|
ref: containerRef,
|
|
406
|
-
className:
|
|
407
|
-
}, /* @__PURE__ */
|
|
264
|
+
className: mx3("relative w-full h-full", classNames)
|
|
265
|
+
}, /* @__PURE__ */ React4.createElement("div", {
|
|
408
266
|
className: "absolute inset-0 flex flex-col grow gap-2"
|
|
409
|
-
}, pinnedItem && /* @__PURE__ */
|
|
410
|
-
className:
|
|
267
|
+
}, pinnedItem && /* @__PURE__ */ React4.createElement("div", {
|
|
268
|
+
className: mx3("flex grow-[2] shrink overflow-hidden justify-center items-center", hideGallery && "h-full"),
|
|
411
269
|
style: hideGallery ? {} : {
|
|
412
270
|
height: dividerHeight
|
|
413
271
|
}
|
|
414
|
-
}, /* @__PURE__ */
|
|
272
|
+
}, /* @__PURE__ */ React4.createElement(SoloItem, {
|
|
415
273
|
id: getId2(pinnedItem),
|
|
416
274
|
debug
|
|
417
|
-
})), !hideGallery && /* @__PURE__ */
|
|
275
|
+
})), !hideGallery && /* @__PURE__ */ React4.createElement("div", {
|
|
418
276
|
ref: gridContainerRef,
|
|
419
277
|
className: "flex grow-[1] overflow-hidden justify-center items-center",
|
|
420
278
|
style: hideGallery ? {} : {
|
|
421
279
|
minHeight: MIN_GALLERY_HEIGHT
|
|
422
280
|
}
|
|
423
|
-
}, mainItems.length === 1 && /* @__PURE__ */
|
|
281
|
+
}, mainItems.length === 1 && /* @__PURE__ */ React4.createElement("div", {
|
|
424
282
|
style: {
|
|
425
283
|
width: cellWidth
|
|
426
284
|
},
|
|
427
285
|
className: "flex h-full"
|
|
428
|
-
}, /* @__PURE__ */
|
|
286
|
+
}, /* @__PURE__ */ React4.createElement(SoloItem, {
|
|
429
287
|
id: getId2(mainItems[0]),
|
|
430
288
|
debug
|
|
431
|
-
})), mainItems.length > 1 && columns > 0 && /* @__PURE__ */
|
|
289
|
+
})), mainItems.length > 1 && columns > 0 && /* @__PURE__ */ React4.createElement("div", {
|
|
432
290
|
role: "grid",
|
|
433
291
|
style: {
|
|
434
292
|
display: "grid",
|
|
435
293
|
gridTemplateColumns: `repeat(${columns}, ${cellWidth}px)`,
|
|
436
294
|
gap: `${gap}px`
|
|
437
295
|
}
|
|
438
|
-
}, mainItems.map((item) => /* @__PURE__ */
|
|
296
|
+
}, mainItems.map((item) => /* @__PURE__ */ React4.createElement("div", {
|
|
439
297
|
key: getId2(item),
|
|
440
298
|
"data-grid-item": getId2(item),
|
|
441
|
-
className:
|
|
442
|
-
}))))), /* @__PURE__ */
|
|
443
|
-
className:
|
|
444
|
-
}, bounds.map(([item, bounds2]) => /* @__PURE__ */
|
|
299
|
+
className: mx3("aspect-video max-h-full max-w-full w-auto h-auto", debug && "border border-primary-500")
|
|
300
|
+
}))))), /* @__PURE__ */ React4.createElement("div", {
|
|
301
|
+
className: mx3(debug && "opacity-10")
|
|
302
|
+
}, bounds.map(([item, bounds2]) => /* @__PURE__ */ React4.createElement(Cell, {
|
|
445
303
|
key: getId2(item),
|
|
446
304
|
classNames: "absolute transition-all duration-500",
|
|
447
305
|
item,
|
|
@@ -454,14 +312,14 @@ var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = def
|
|
|
454
312
|
}
|
|
455
313
|
};
|
|
456
314
|
var SoloItem = ({ debug, id }) => {
|
|
457
|
-
var _effect =
|
|
315
|
+
var _effect = _useSignals4();
|
|
458
316
|
try {
|
|
459
|
-
return /* @__PURE__ */
|
|
317
|
+
return /* @__PURE__ */ React4.createElement(ResponsiveContainer, null, /* @__PURE__ */ React4.createElement("div", {
|
|
460
318
|
"data-grid-item": id,
|
|
461
|
-
className:
|
|
462
|
-
}, /* @__PURE__ */
|
|
319
|
+
className: mx3("aspect-video overflow-hidden", debug && "z-20 border-2 border-primary-500")
|
|
320
|
+
}, /* @__PURE__ */ React4.createElement("img", {
|
|
463
321
|
alt: "placeholder video",
|
|
464
|
-
className:
|
|
322
|
+
className: mx3("opacity-0", maxImageSize)
|
|
465
323
|
})));
|
|
466
324
|
} finally {
|
|
467
325
|
_effect.f();
|
|
@@ -531,15 +389,15 @@ var fitAspectRatio = (outerWidth, outerHeight, aspectRatio) => {
|
|
|
531
389
|
};
|
|
532
390
|
|
|
533
391
|
// src/components/ResponsiveGrid/ResponsiveGridItem.tsx
|
|
534
|
-
import { useSignals as
|
|
535
|
-
import
|
|
536
|
-
import { Icon
|
|
392
|
+
import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
|
|
393
|
+
import React5, { useEffect as useEffect4, useState as useState2 } from "react";
|
|
394
|
+
import { Icon, IconButton, useTranslation } from "@dxos/react-ui";
|
|
537
395
|
import { Waveform } from "@dxos/react-ui-sfx";
|
|
538
|
-
import { groupHoverControlItemWithTransition
|
|
396
|
+
import { groupHoverControlItemWithTransition, mx as mx4 } from "@dxos/react-ui-theme";
|
|
539
397
|
var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinned, screenshare, video, mute, wave, speaking, onClick }) => {
|
|
540
|
-
var _effect =
|
|
398
|
+
var _effect = _useSignals5();
|
|
541
399
|
try {
|
|
542
|
-
const { t } =
|
|
400
|
+
const { t } = useTranslation(meta.id);
|
|
543
401
|
const iconProps = {
|
|
544
402
|
wave: {
|
|
545
403
|
icon: "ph--hand-waving--duotone",
|
|
@@ -565,32 +423,32 @@ var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinne
|
|
|
565
423
|
}, [
|
|
566
424
|
speaking
|
|
567
425
|
]);
|
|
568
|
-
return /* @__PURE__ */
|
|
569
|
-
className:
|
|
426
|
+
return /* @__PURE__ */ React5.createElement("div", {
|
|
427
|
+
className: mx4("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),
|
|
570
428
|
style
|
|
571
|
-
}, children, onClick && /* @__PURE__ */
|
|
429
|
+
}, children, onClick && /* @__PURE__ */ React5.createElement("div", {
|
|
572
430
|
className: "z-10 absolute top-1 right-1 flex"
|
|
573
|
-
}, /* @__PURE__ */
|
|
574
|
-
classNames:
|
|
431
|
+
}, /* @__PURE__ */ React5.createElement(IconButton, {
|
|
432
|
+
classNames: mx4("p-1 min-bs-1 rounded", groupHoverControlItemWithTransition),
|
|
575
433
|
iconOnly: true,
|
|
576
434
|
icon: pinned ? "ph--x--regular" : "ph--arrows-out--regular",
|
|
577
435
|
size: pinned ? 5 : 4,
|
|
578
436
|
label: pinned ? t("icon unpin") : t("icon pin"),
|
|
579
437
|
onClick: () => onClick?.(item)
|
|
580
|
-
})), name && /* @__PURE__ */
|
|
438
|
+
})), name && /* @__PURE__ */ React5.createElement("div", {
|
|
581
439
|
className: "z-10 absolute bottom-1 left-8 right-1 flex justify-end gap-1 items-center"
|
|
582
|
-
}, screenshare && /* @__PURE__ */
|
|
440
|
+
}, screenshare && /* @__PURE__ */ React5.createElement(Icon, {
|
|
583
441
|
icon: "ph--broadcast--regular",
|
|
584
442
|
size: pinned ? 5 : 4
|
|
585
|
-
}), /* @__PURE__ */
|
|
586
|
-
className:
|
|
587
|
-
}, name)), /* @__PURE__ */
|
|
443
|
+
}), /* @__PURE__ */ React5.createElement("div", {
|
|
444
|
+
className: mx4("bg-neutral-800 text-neutral-100 py-0.5 truncate rounded", pinned ? "px-2" : "px-1 text-xs")
|
|
445
|
+
}, name)), /* @__PURE__ */ React5.createElement("div", {
|
|
588
446
|
className: "z-10 absolute bottom-1 left-1 flex"
|
|
589
|
-
}, speaking && /* @__PURE__ */
|
|
447
|
+
}, speaking && /* @__PURE__ */ React5.createElement(Waveform, {
|
|
590
448
|
active: true,
|
|
591
449
|
size: pinned ? 5 : 4
|
|
592
|
-
}) || props && /* @__PURE__ */
|
|
593
|
-
classNames:
|
|
450
|
+
}) || props && /* @__PURE__ */ React5.createElement(IconButton, {
|
|
451
|
+
classNames: mx4("p-1 min-bs-1 rounded", props?.classNames),
|
|
594
452
|
icon: props?.icon,
|
|
595
453
|
label: props?.label,
|
|
596
454
|
size: pinned ? 5 : 4,
|
|
@@ -604,17 +462,19 @@ var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinne
|
|
|
604
462
|
// src/components/Participant/Participant.tsx
|
|
605
463
|
var SCREENSHARE_SUFFIX = "_screenshare";
|
|
606
464
|
var Participant = /* @__PURE__ */ memo2(({ item: user, debug, ...props }) => {
|
|
607
|
-
var _effect =
|
|
465
|
+
var _effect = _useSignals6();
|
|
608
466
|
try {
|
|
609
|
-
const call =
|
|
467
|
+
const call = useCapability(ThreadCapabilities.CallManager);
|
|
610
468
|
const isSelf = call.self.id !== void 0 && user.id !== void 0 && user.id.startsWith(call.self.id);
|
|
611
469
|
const isScreenshare = user.id?.endsWith(SCREENSHARE_SUFFIX);
|
|
612
|
-
const pulledVideoStream = call.getVideoStream(
|
|
470
|
+
const pulledVideoStream = !isSelf && isScreenshare && user.tracks?.screenshareEnabled ? call.getVideoStream(user.tracks?.screenshare) : !isSelf && !isScreenshare && user.tracks?.videoEnabled ? call.getVideoStream(user.tracks?.video) : void 0;
|
|
613
471
|
const videoStream = useMemo2(() => {
|
|
614
|
-
if (isSelf
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
472
|
+
if (isSelf) {
|
|
473
|
+
if (isScreenshare) {
|
|
474
|
+
return call.media.screenshareVideoStream;
|
|
475
|
+
} else if (!isScreenshare) {
|
|
476
|
+
return call.media.videoStream;
|
|
477
|
+
}
|
|
618
478
|
} else if (!isSelf) {
|
|
619
479
|
return pulledVideoStream;
|
|
620
480
|
}
|
|
@@ -625,7 +485,7 @@ var Participant = /* @__PURE__ */ memo2(({ item: user, debug, ...props }) => {
|
|
|
625
485
|
call.media.screenshareVideoStream,
|
|
626
486
|
pulledVideoStream
|
|
627
487
|
]);
|
|
628
|
-
return /* @__PURE__ */
|
|
488
|
+
return /* @__PURE__ */ React6.createElement(ResponsiveGridItem, {
|
|
629
489
|
...props,
|
|
630
490
|
item: user,
|
|
631
491
|
name: user.name,
|
|
@@ -636,7 +496,7 @@ var Participant = /* @__PURE__ */ memo2(({ item: user, debug, ...props }) => {
|
|
|
636
496
|
wave: user.raisedHand,
|
|
637
497
|
speaking: user.speaking,
|
|
638
498
|
debug
|
|
639
|
-
}, /* @__PURE__ */
|
|
499
|
+
}, /* @__PURE__ */ React6.createElement(VideoObject, {
|
|
640
500
|
videoStream,
|
|
641
501
|
flip: isSelf && !isScreenshare,
|
|
642
502
|
contain: !!isScreenshare,
|
|
@@ -649,11 +509,11 @@ var Participant = /* @__PURE__ */ memo2(({ item: user, debug, ...props }) => {
|
|
|
649
509
|
Participant.displayName = "Participant";
|
|
650
510
|
|
|
651
511
|
// src/components/Participant/ParticipantGrid.tsx
|
|
652
|
-
import { useSignals as
|
|
653
|
-
import
|
|
512
|
+
import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
|
|
513
|
+
import React7, { useEffect as useEffect5, useMemo as useMemo3, useState as useState3 } from "react";
|
|
654
514
|
var getId = (user) => user.id;
|
|
655
515
|
var ParticipantGrid = ({ classNames, self, users, fullscreen, debug }) => {
|
|
656
|
-
var _effect =
|
|
516
|
+
var _effect = _useSignals7();
|
|
657
517
|
try {
|
|
658
518
|
const [pinned, setPinned] = useState3();
|
|
659
519
|
const allUsers = useMemo3(() => {
|
|
@@ -707,7 +567,7 @@ var ParticipantGrid = ({ classNames, self, users, fullscreen, debug }) => {
|
|
|
707
567
|
return 0;
|
|
708
568
|
}
|
|
709
569
|
});
|
|
710
|
-
return /* @__PURE__ */
|
|
570
|
+
return /* @__PURE__ */ React7.createElement(ResponsiveGrid, {
|
|
711
571
|
classNames,
|
|
712
572
|
Cell: Participant,
|
|
713
573
|
debug,
|
|
@@ -722,6 +582,148 @@ var ParticipantGrid = ({ classNames, self, users, fullscreen, debug }) => {
|
|
|
722
582
|
}
|
|
723
583
|
};
|
|
724
584
|
|
|
585
|
+
// src/components/Call/Toolbar.tsx
|
|
586
|
+
import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking";
|
|
587
|
+
import React8 from "react";
|
|
588
|
+
import { useAppGraph, useCapability as useCapability2 } from "@dxos/app-framework";
|
|
589
|
+
import { useActions, useNode } from "@dxos/plugin-graph";
|
|
590
|
+
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
591
|
+
import { Icon as Icon2, IconButton as IconButton2, Toolbar as NaturalToolbar, toLocalizedString, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
592
|
+
import { groupHoverControlItemWithTransition as groupHoverControlItemWithTransition2, mx as mx5 } from "@dxos/react-ui-theme";
|
|
593
|
+
var Toolbar = ({ classNames, channel, participants, autoHideControls = true, onJoin, onLeave }) => {
|
|
594
|
+
var _effect = _useSignals8();
|
|
595
|
+
try {
|
|
596
|
+
const { t } = useTranslation2(meta.id);
|
|
597
|
+
const { graph } = useAppGraph();
|
|
598
|
+
const call = useCapability2(ThreadCapabilities.CallManager);
|
|
599
|
+
const node = useNode(graph, channel && fullyQualifiedId(channel));
|
|
600
|
+
const actions = useActions(graph, node?.id).filter((action) => action.properties.disposition === "toolbar");
|
|
601
|
+
const isScreensharing = call.media.screenshareTrack !== void 0;
|
|
602
|
+
const canSharescreen = typeof navigator.mediaDevices !== "undefined" && navigator.mediaDevices.getDisplayMedia !== void 0;
|
|
603
|
+
return /* @__PURE__ */ React8.createElement("div", {
|
|
604
|
+
className: mx5("z-20 flex justify-center m-8", autoHideControls && groupHoverControlItemWithTransition2)
|
|
605
|
+
}, /* @__PURE__ */ React8.createElement(NaturalToolbar.Root, {
|
|
606
|
+
classNames: [
|
|
607
|
+
"p-2 bg-modalSurface rounded-md shadow-md",
|
|
608
|
+
classNames
|
|
609
|
+
]
|
|
610
|
+
}, /* @__PURE__ */ React8.createElement(ToggleButton, {
|
|
611
|
+
active: call.media.audioEnabled,
|
|
612
|
+
state: {
|
|
613
|
+
on: {
|
|
614
|
+
icon: "ph--microphone--regular",
|
|
615
|
+
label: t("mic off"),
|
|
616
|
+
onClick: () => call.turnAudioOff(),
|
|
617
|
+
classNames: "bg-callActive"
|
|
618
|
+
},
|
|
619
|
+
off: {
|
|
620
|
+
icon: "ph--microphone-slash--duotone",
|
|
621
|
+
label: t("mic on"),
|
|
622
|
+
onClick: () => call.turnAudioOn(),
|
|
623
|
+
classNames: [
|
|
624
|
+
call.joined && "bg-callAlert"
|
|
625
|
+
]
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
}), /* @__PURE__ */ React8.createElement(ToggleButton, {
|
|
629
|
+
active: call.media.videoEnabled,
|
|
630
|
+
state: {
|
|
631
|
+
on: {
|
|
632
|
+
icon: "ph--video-camera--regular",
|
|
633
|
+
label: t("camera off"),
|
|
634
|
+
onClick: () => call.turnVideoOff()
|
|
635
|
+
},
|
|
636
|
+
off: {
|
|
637
|
+
icon: "ph--video-camera-slash--duotone",
|
|
638
|
+
label: t("camera on"),
|
|
639
|
+
onClick: () => call.turnVideoOn()
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
}), participants !== void 0 && /* @__PURE__ */ React8.createElement("div", {
|
|
643
|
+
className: "flex justify-center items-center gap-2 is-[5rem] text-xs text-subdued"
|
|
644
|
+
}, /* @__PURE__ */ React8.createElement(Icon2, {
|
|
645
|
+
icon: "ph--users--regular",
|
|
646
|
+
size: 4
|
|
647
|
+
}), /* @__PURE__ */ React8.createElement("div", null, participants)) || /* @__PURE__ */ React8.createElement(NaturalToolbar.Separator, {
|
|
648
|
+
variant: "gap"
|
|
649
|
+
}), call.joined && /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(ToggleButton, {
|
|
650
|
+
disabled: !canSharescreen,
|
|
651
|
+
active: isScreensharing,
|
|
652
|
+
state: {
|
|
653
|
+
on: {
|
|
654
|
+
icon: "ph--monitor--regular",
|
|
655
|
+
label: t("screenshare off"),
|
|
656
|
+
onClick: () => call.turnScreenshareOff()
|
|
657
|
+
},
|
|
658
|
+
off: {
|
|
659
|
+
icon: "ph--monitor-arrow-up--duotone",
|
|
660
|
+
label: t("screenshare on"),
|
|
661
|
+
onClick: () => call.turnScreenshareOn()
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
}), actions.map((action) => /* @__PURE__ */ React8.createElement(IconButton2, {
|
|
665
|
+
key: action.id,
|
|
666
|
+
...defaultButtonProps,
|
|
667
|
+
icon: action.properties.icon,
|
|
668
|
+
label: toLocalizedString(action.properties.label, t),
|
|
669
|
+
classNames: action.properties.classNames,
|
|
670
|
+
onClick: () => action.data({
|
|
671
|
+
node
|
|
672
|
+
})
|
|
673
|
+
})), /* @__PURE__ */ React8.createElement(ToggleButton, {
|
|
674
|
+
active: call.raisedHand,
|
|
675
|
+
state: {
|
|
676
|
+
on: {
|
|
677
|
+
icon: "ph--hand-waving--regular",
|
|
678
|
+
label: t("lower hand"),
|
|
679
|
+
onClick: () => call.setRaisedHand(false),
|
|
680
|
+
classNames: [
|
|
681
|
+
call.joined && "bg-callAlert"
|
|
682
|
+
]
|
|
683
|
+
},
|
|
684
|
+
off: {
|
|
685
|
+
icon: "ph--hand-palm--duotone",
|
|
686
|
+
label: t("raise hand"),
|
|
687
|
+
onClick: () => call.setRaisedHand(true)
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
})), call.joined ? /* @__PURE__ */ React8.createElement(IconButton2, {
|
|
691
|
+
variant: "destructive",
|
|
692
|
+
icon: "ph--phone-x--regular",
|
|
693
|
+
label: t("leave call"),
|
|
694
|
+
onClick: onLeave
|
|
695
|
+
}) : /* @__PURE__ */ React8.createElement(IconButton2, {
|
|
696
|
+
variant: "primary",
|
|
697
|
+
icon: "ph--phone-incoming--regular",
|
|
698
|
+
label: t("join call"),
|
|
699
|
+
onClick: onJoin
|
|
700
|
+
})));
|
|
701
|
+
} finally {
|
|
702
|
+
_effect.f();
|
|
703
|
+
}
|
|
704
|
+
};
|
|
705
|
+
Toolbar.displayName = "MeetingToolbar";
|
|
706
|
+
var defaultButtonProps = {
|
|
707
|
+
size: 5,
|
|
708
|
+
iconOnly: true
|
|
709
|
+
};
|
|
710
|
+
var ToggleButton = ({ active, state }) => {
|
|
711
|
+
var _effect = _useSignals8();
|
|
712
|
+
try {
|
|
713
|
+
return /* @__PURE__ */ React8.createElement(IconButton2, {
|
|
714
|
+
...defaultButtonProps,
|
|
715
|
+
classNames: [
|
|
716
|
+
active ? state.on.classNames ?? "bg-callActive" : state.off.classNames
|
|
717
|
+
],
|
|
718
|
+
icon: active ? state.on.icon : state.off.icon,
|
|
719
|
+
label: active ? state.on.label : state.off.label,
|
|
720
|
+
onClick: active ? state.on.onClick : state.off.onClick
|
|
721
|
+
});
|
|
722
|
+
} finally {
|
|
723
|
+
_effect.f();
|
|
724
|
+
}
|
|
725
|
+
};
|
|
726
|
+
|
|
725
727
|
// src/components/Call/Call.tsx
|
|
726
728
|
var CallRoot = ({ children }) => {
|
|
727
729
|
var _effect = _useSignals9();
|
|
@@ -801,7 +803,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
|
|
|
801
803
|
useEffect6(() => {
|
|
802
804
|
const ctx = new Context(void 0, {
|
|
803
805
|
F: __dxlog_file2,
|
|
804
|
-
L:
|
|
806
|
+
L: 49
|
|
805
807
|
});
|
|
806
808
|
callManager.left.on(ctx, (roomId2) => {
|
|
807
809
|
extensions.forEach((extension) => {
|
|
@@ -843,7 +845,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
|
|
|
843
845
|
} catch (err) {
|
|
844
846
|
log.catch(err, void 0, {
|
|
845
847
|
F: __dxlog_file2,
|
|
846
|
-
L:
|
|
848
|
+
L: 93,
|
|
847
849
|
S: void 0,
|
|
848
850
|
C: (f, a) => f(...a)
|
|
849
851
|
});
|
|
@@ -859,7 +861,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
|
|
|
859
861
|
} catch (err) {
|
|
860
862
|
log.catch(err, void 0, {
|
|
861
863
|
F: __dxlog_file2,
|
|
862
|
-
L:
|
|
864
|
+
L: 105,
|
|
863
865
|
S: void 0,
|
|
864
866
|
C: (f, a) => f(...a)
|
|
865
867
|
});
|
|
@@ -875,8 +877,8 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
|
|
|
875
877
|
]);
|
|
876
878
|
const isJoined = callManager.joined && callManager.roomId === roomId;
|
|
877
879
|
return /* @__PURE__ */ React10.createElement(StackItem.Content, {
|
|
878
|
-
|
|
879
|
-
|
|
880
|
+
classNames: isJoined && "bs-full",
|
|
881
|
+
toolbar: !isJoined
|
|
880
882
|
}, isJoined && !isNamed && /* @__PURE__ */ React10.createElement(DisplayNameMissing, null), isJoined && isNamed && /* @__PURE__ */ React10.createElement(Call.Root, null, /* @__PURE__ */ React10.createElement(Call.Grid, {
|
|
881
883
|
fullscreen
|
|
882
884
|
}), /* @__PURE__ */ React10.createElement(Call.Toolbar, {
|
|
@@ -981,4 +983,4 @@ export {
|
|
|
981
983
|
ChannelContainer,
|
|
982
984
|
ChannelContainer_default
|
|
983
985
|
};
|
|
984
|
-
//# sourceMappingURL=chunk-
|
|
986
|
+
//# sourceMappingURL=chunk-CMCVHULC.mjs.map
|