@werxt/livekit-components-react 2.9.20
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/LICENSE +201 -0
- package/README.md +36 -0
- package/dist/assets/icons/CameraDisabledIcon.d.ts +11 -0
- package/dist/assets/icons/CameraDisabledIcon.d.ts.map +1 -0
- package/dist/assets/icons/CameraIcon.d.ts +11 -0
- package/dist/assets/icons/CameraIcon.d.ts.map +1 -0
- package/dist/assets/icons/ChatCloseIcon.d.ts +11 -0
- package/dist/assets/icons/ChatCloseIcon.d.ts.map +1 -0
- package/dist/assets/icons/ChatIcon.d.ts +11 -0
- package/dist/assets/icons/ChatIcon.d.ts.map +1 -0
- package/dist/assets/icons/Chevron.d.ts +11 -0
- package/dist/assets/icons/Chevron.d.ts.map +1 -0
- package/dist/assets/icons/FocusToggleIcon.d.ts +11 -0
- package/dist/assets/icons/FocusToggleIcon.d.ts.map +1 -0
- package/dist/assets/icons/GearIcon.d.ts +11 -0
- package/dist/assets/icons/GearIcon.d.ts.map +1 -0
- package/dist/assets/icons/LeaveIcon.d.ts +11 -0
- package/dist/assets/icons/LeaveIcon.d.ts.map +1 -0
- package/dist/assets/icons/LockLockedIcon.d.ts +11 -0
- package/dist/assets/icons/LockLockedIcon.d.ts.map +1 -0
- package/dist/assets/icons/MicDisabledIcon.d.ts +11 -0
- package/dist/assets/icons/MicDisabledIcon.d.ts.map +1 -0
- package/dist/assets/icons/MicIcon.d.ts +11 -0
- package/dist/assets/icons/MicIcon.d.ts.map +1 -0
- package/dist/assets/icons/QualityExcellentIcon.d.ts +11 -0
- package/dist/assets/icons/QualityExcellentIcon.d.ts.map +1 -0
- package/dist/assets/icons/QualityGoodIcon.d.ts +11 -0
- package/dist/assets/icons/QualityGoodIcon.d.ts.map +1 -0
- package/dist/assets/icons/QualityPoorIcon.d.ts +11 -0
- package/dist/assets/icons/QualityPoorIcon.d.ts.map +1 -0
- package/dist/assets/icons/QualityUnknownIcon.d.ts +11 -0
- package/dist/assets/icons/QualityUnknownIcon.d.ts.map +1 -0
- package/dist/assets/icons/ScreenShareIcon.d.ts +11 -0
- package/dist/assets/icons/ScreenShareIcon.d.ts.map +1 -0
- package/dist/assets/icons/ScreenShareStopIcon.d.ts +11 -0
- package/dist/assets/icons/ScreenShareStopIcon.d.ts.map +1 -0
- package/dist/assets/icons/SpinnerIcon.d.ts +11 -0
- package/dist/assets/icons/SpinnerIcon.d.ts.map +1 -0
- package/dist/assets/icons/UnfocusToggleIcon.d.ts +11 -0
- package/dist/assets/icons/UnfocusToggleIcon.d.ts.map +1 -0
- package/dist/assets/icons/index.d.ts +20 -0
- package/dist/assets/icons/index.d.ts.map +1 -0
- package/dist/assets/icons/util.d.ts +11 -0
- package/dist/assets/icons/util.d.ts.map +1 -0
- package/dist/assets/images/ParticipantPlaceholder.d.ts +11 -0
- package/dist/assets/images/ParticipantPlaceholder.d.ts.map +1 -0
- package/dist/assets/images/index.d.ts +2 -0
- package/dist/assets/images/index.d.ts.map +1 -0
- package/dist/components/ChatEntry.d.ts +35 -0
- package/dist/components/ChatEntry.d.ts.map +1 -0
- package/dist/components/ConnectionState.d.ts +23 -0
- package/dist/components/ConnectionState.d.ts.map +1 -0
- package/dist/components/ConnectionStateToast.d.ts +13 -0
- package/dist/components/ConnectionStateToast.d.ts.map +1 -0
- package/dist/components/LiveKitRoom.d.ts +92 -0
- package/dist/components/LiveKitRoom.d.ts.map +1 -0
- package/dist/components/ParticipantLoop.d.ts +28 -0
- package/dist/components/ParticipantLoop.d.ts.map +1 -0
- package/dist/components/RoomAudioRenderer.d.ts +29 -0
- package/dist/components/RoomAudioRenderer.d.ts.map +1 -0
- package/dist/components/RoomName.d.ts +20 -0
- package/dist/components/RoomName.d.ts.map +1 -0
- package/dist/components/SessionProvider.d.ts +13 -0
- package/dist/components/SessionProvider.d.ts.map +1 -0
- package/dist/components/Toast.d.ts +14 -0
- package/dist/components/Toast.d.ts.map +1 -0
- package/dist/components/TrackLoop.d.ts +26 -0
- package/dist/components/TrackLoop.d.ts.map +1 -0
- package/dist/components/controls/ChatToggle.d.ts +19 -0
- package/dist/components/controls/ChatToggle.d.ts.map +1 -0
- package/dist/components/controls/ClearPinButton.d.ts +20 -0
- package/dist/components/controls/ClearPinButton.d.ts.map +1 -0
- package/dist/components/controls/DisconnectButton.d.ts +19 -0
- package/dist/components/controls/DisconnectButton.d.ts.map +1 -0
- package/dist/components/controls/FocusToggle.d.ts +21 -0
- package/dist/components/controls/FocusToggle.d.ts.map +1 -0
- package/dist/components/controls/MediaDeviceSelect.d.ts +40 -0
- package/dist/components/controls/MediaDeviceSelect.d.ts.map +1 -0
- package/dist/components/controls/PaginationControl.d.ts +9 -0
- package/dist/components/controls/PaginationControl.d.ts.map +1 -0
- package/dist/components/controls/PaginationIndicator.d.ts +7 -0
- package/dist/components/controls/PaginationIndicator.d.ts.map +1 -0
- package/dist/components/controls/SettingsMenuToggle.d.ts +13 -0
- package/dist/components/controls/SettingsMenuToggle.d.ts.map +1 -0
- package/dist/components/controls/StartAudio.d.ts +24 -0
- package/dist/components/controls/StartAudio.d.ts.map +1 -0
- package/dist/components/controls/StartMediaButton.d.ts +22 -0
- package/dist/components/controls/StartMediaButton.d.ts.map +1 -0
- package/dist/components/controls/TrackToggle.d.ts +32 -0
- package/dist/components/controls/TrackToggle.d.ts.map +1 -0
- package/dist/components/index.d.ts +30 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/layout/CarouselLayout.d.ts +27 -0
- package/dist/components/layout/CarouselLayout.d.ts.map +1 -0
- package/dist/components/layout/FocusLayout.d.ts +25 -0
- package/dist/components/layout/FocusLayout.d.ts.map +1 -0
- package/dist/components/layout/GridLayout.d.ts +26 -0
- package/dist/components/layout/GridLayout.d.ts.map +1 -0
- package/dist/components/layout/LayoutContextProvider.d.ts +12 -0
- package/dist/components/layout/LayoutContextProvider.d.ts.map +1 -0
- package/dist/components/layout/index.d.ts +4 -0
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/participant/AudioTrack.d.ts +33 -0
- package/dist/components/participant/AudioTrack.d.ts.map +1 -0
- package/dist/components/participant/AudioVisualizer.d.ts +22 -0
- package/dist/components/participant/AudioVisualizer.d.ts.map +1 -0
- package/dist/components/participant/BarVisualizer.d.ts +77 -0
- package/dist/components/participant/BarVisualizer.d.ts.map +1 -0
- package/dist/components/participant/ConnectionQualityIndicator.d.ts +16 -0
- package/dist/components/participant/ConnectionQualityIndicator.d.ts.map +1 -0
- package/dist/components/participant/ParticipantAudioTile.d.ts +14 -0
- package/dist/components/participant/ParticipantAudioTile.d.ts.map +1 -0
- package/dist/components/participant/ParticipantName.d.ts +17 -0
- package/dist/components/participant/ParticipantName.d.ts.map +1 -0
- package/dist/components/participant/ParticipantTile.d.ts +49 -0
- package/dist/components/participant/ParticipantTile.d.ts.map +1 -0
- package/dist/components/participant/TrackMutedIndicator.d.ts +19 -0
- package/dist/components/participant/TrackMutedIndicator.d.ts.map +1 -0
- package/dist/components/participant/VideoTrack.d.ts +23 -0
- package/dist/components/participant/VideoTrack.d.ts.map +1 -0
- package/dist/components/participant/animationSequences/connectingSequence.d.ts +2 -0
- package/dist/components/participant/animationSequences/connectingSequence.d.ts.map +1 -0
- package/dist/components/participant/animationSequences/listeningSequence.d.ts +2 -0
- package/dist/components/participant/animationSequences/listeningSequence.d.ts.map +1 -0
- package/dist/components/participant/animationSequences/thinkingSequence.d.ts +2 -0
- package/dist/components/participant/animationSequences/thinkingSequence.d.ts.map +1 -0
- package/dist/components/participant/animators/useBarAnimator.d.ts +3 -0
- package/dist/components/participant/animators/useBarAnimator.d.ts.map +1 -0
- package/dist/components-lNrIMTWQ.mjs +1051 -0
- package/dist/components-lNrIMTWQ.mjs.map +1 -0
- package/dist/context/chat-context.d.ts +23 -0
- package/dist/context/chat-context.d.ts.map +1 -0
- package/dist/context/feature-context.d.ts +14 -0
- package/dist/context/feature-context.d.ts.map +1 -0
- package/dist/context/index.d.ts +10 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/layout-context.d.ts +32 -0
- package/dist/context/layout-context.d.ts.map +1 -0
- package/dist/context/participant-context.d.ts +22 -0
- package/dist/context/participant-context.d.ts.map +1 -0
- package/dist/context/pin-context.d.ts +17 -0
- package/dist/context/pin-context.d.ts.map +1 -0
- package/dist/context/room-context.d.ts +22 -0
- package/dist/context/room-context.d.ts.map +1 -0
- package/dist/context/session-context.d.ts +22 -0
- package/dist/context/session-context.d.ts.map +1 -0
- package/dist/context/track-reference-context.d.ts +25 -0
- package/dist/context/track-reference-context.d.ts.map +1 -0
- package/dist/contexts-D4V9wQRc.mjs +4026 -0
- package/dist/contexts-D4V9wQRc.mjs.map +1 -0
- package/dist/hooks/cloud/krisp/useKrispNoiseFilter.d.ts +42 -0
- package/dist/hooks/cloud/krisp/useKrispNoiseFilter.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +54 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/internal/index.d.ts +10 -0
- package/dist/hooks/internal/index.d.ts.map +1 -0
- package/dist/hooks/internal/useMediaQuery.d.ts +7 -0
- package/dist/hooks/internal/useMediaQuery.d.ts.map +1 -0
- package/dist/hooks/internal/useObservableState.d.ts +6 -0
- package/dist/hooks/internal/useObservableState.d.ts.map +1 -0
- package/dist/hooks/internal/useResizeObserver.d.ts +14 -0
- package/dist/hooks/internal/useResizeObserver.d.ts.map +1 -0
- package/dist/hooks/useAgent.d.ts +219 -0
- package/dist/hooks/useAgent.d.ts.map +1 -0
- package/dist/hooks/useAudioPlayback.d.ts +15 -0
- package/dist/hooks/useAudioPlayback.d.ts.map +1 -0
- package/dist/hooks/useChat.d.ts +43 -0
- package/dist/hooks/useChat.d.ts.map +1 -0
- package/dist/hooks/useChatToggle.d.ts +21 -0
- package/dist/hooks/useChatToggle.d.ts.map +1 -0
- package/dist/hooks/useClearPinButton.d.ts +15 -0
- package/dist/hooks/useClearPinButton.d.ts.map +1 -0
- package/dist/hooks/useConnectionQualityIndicator.d.ts +20 -0
- package/dist/hooks/useConnectionQualityIndicator.d.ts.map +1 -0
- package/dist/hooks/useConnectionStatus.d.ts +12 -0
- package/dist/hooks/useConnectionStatus.d.ts.map +1 -0
- package/dist/hooks/useDataChannel.d.ts +38 -0
- package/dist/hooks/useDataChannel.d.ts.map +1 -0
- package/dist/hooks/useDisconnectButton.d.ts +21 -0
- package/dist/hooks/useDisconnectButton.d.ts.map +1 -0
- package/dist/hooks/useEvents.d.ts +9 -0
- package/dist/hooks/useEvents.d.ts.map +1 -0
- package/dist/hooks/useFacingMode.d.ts +10 -0
- package/dist/hooks/useFacingMode.d.ts.map +1 -0
- package/dist/hooks/useFocusToggle.d.ts +26 -0
- package/dist/hooks/useFocusToggle.d.ts.map +1 -0
- package/dist/hooks/useGridLayout.d.ts +27 -0
- package/dist/hooks/useGridLayout.d.ts.map +1 -0
- package/dist/hooks/useIsEncrypted.d.ts +12 -0
- package/dist/hooks/useIsEncrypted.d.ts.map +1 -0
- package/dist/hooks/useIsMuted.d.ts +22 -0
- package/dist/hooks/useIsMuted.d.ts.map +1 -0
- package/dist/hooks/useIsRecording.d.ts +11 -0
- package/dist/hooks/useIsRecording.d.ts.map +1 -0
- package/dist/hooks/useIsSpeaking.d.ts +11 -0
- package/dist/hooks/useIsSpeaking.d.ts.map +1 -0
- package/dist/hooks/useLiveKitRoom.d.ts +19 -0
- package/dist/hooks/useLiveKitRoom.d.ts.map +1 -0
- package/dist/hooks/useLocalParticipant.d.ts +29 -0
- package/dist/hooks/useLocalParticipant.d.ts.map +1 -0
- package/dist/hooks/useLocalParticipantPermissions.d.ts +12 -0
- package/dist/hooks/useLocalParticipantPermissions.d.ts.map +1 -0
- package/dist/hooks/useMediaDeviceSelect.d.ts +41 -0
- package/dist/hooks/useMediaDeviceSelect.d.ts.map +1 -0
- package/dist/hooks/useMediaDevices.d.ts +15 -0
- package/dist/hooks/useMediaDevices.d.ts.map +1 -0
- package/dist/hooks/useMediaTrackBySourceOrName.d.ts +18 -0
- package/dist/hooks/useMediaTrackBySourceOrName.d.ts.map +1 -0
- package/dist/hooks/usePagination.d.ts +24 -0
- package/dist/hooks/usePagination.d.ts.map +1 -0
- package/dist/hooks/useParticipantAttributes.d.ts +30 -0
- package/dist/hooks/useParticipantAttributes.d.ts.map +1 -0
- package/dist/hooks/useParticipantInfo.d.ts +21 -0
- package/dist/hooks/useParticipantInfo.d.ts.map +1 -0
- package/dist/hooks/useParticipantPermissions.d.ts +17 -0
- package/dist/hooks/useParticipantPermissions.d.ts.map +1 -0
- package/dist/hooks/useParticipantTile.d.ts +22 -0
- package/dist/hooks/useParticipantTile.d.ts.map +1 -0
- package/dist/hooks/useParticipantTracks.d.ts +14 -0
- package/dist/hooks/useParticipantTracks.d.ts.map +1 -0
- package/dist/hooks/useParticipants.d.ts +30 -0
- package/dist/hooks/useParticipants.d.ts.map +1 -0
- package/dist/hooks/usePersistentUserChoices.d.ts +35 -0
- package/dist/hooks/usePersistentUserChoices.d.ts.map +1 -0
- package/dist/hooks/usePinnedTracks.d.ts +14 -0
- package/dist/hooks/usePinnedTracks.d.ts.map +1 -0
- package/dist/hooks/useRemoteParticipant.d.ts +35 -0
- package/dist/hooks/useRemoteParticipant.d.ts.map +1 -0
- package/dist/hooks/useRemoteParticipants.d.ts +30 -0
- package/dist/hooks/useRemoteParticipants.d.ts.map +1 -0
- package/dist/hooks/useRoomInfo.d.ts +21 -0
- package/dist/hooks/useRoomInfo.d.ts.map +1 -0
- package/dist/hooks/useSequentialRoomConnectDisconnect.d.ts +27 -0
- package/dist/hooks/useSequentialRoomConnectDisconnect.d.ts.map +1 -0
- package/dist/hooks/useSession.d.ts +130 -0
- package/dist/hooks/useSession.d.ts.map +1 -0
- package/dist/hooks/useSessionMessages.d.ts +29 -0
- package/dist/hooks/useSessionMessages.d.ts.map +1 -0
- package/dist/hooks/useSettingsToggle.d.ts +20 -0
- package/dist/hooks/useSettingsToggle.d.ts.map +1 -0
- package/dist/hooks/useSortedParticipants.d.ts +7 -0
- package/dist/hooks/useSortedParticipants.d.ts.map +1 -0
- package/dist/hooks/useSpeakingParticipants.d.ts +16 -0
- package/dist/hooks/useSpeakingParticipants.d.ts.map +1 -0
- package/dist/hooks/useStartAudio.d.ts +27 -0
- package/dist/hooks/useStartAudio.d.ts.map +1 -0
- package/dist/hooks/useStartVideo.d.ts +26 -0
- package/dist/hooks/useStartVideo.d.ts.map +1 -0
- package/dist/hooks/useSwipe.d.ts +24 -0
- package/dist/hooks/useSwipe.d.ts.map +1 -0
- package/dist/hooks/useTextStream.d.ts +20 -0
- package/dist/hooks/useTextStream.d.ts.map +1 -0
- package/dist/hooks/useToken.d.ts +20 -0
- package/dist/hooks/useToken.d.ts.map +1 -0
- package/dist/hooks/useTrack.d.ts +4 -0
- package/dist/hooks/useTrack.d.ts.map +1 -0
- package/dist/hooks/useTrackByName.d.ts +10 -0
- package/dist/hooks/useTrackByName.d.ts.map +1 -0
- package/dist/hooks/useTrackMutedIndicator.d.ts +18 -0
- package/dist/hooks/useTrackMutedIndicator.d.ts.map +1 -0
- package/dist/hooks/useTrackRefBySourceOrName.d.ts +7 -0
- package/dist/hooks/useTrackRefBySourceOrName.d.ts.map +1 -0
- package/dist/hooks/useTrackSyncTime.d.ts +10 -0
- package/dist/hooks/useTrackSyncTime.d.ts.map +1 -0
- package/dist/hooks/useTrackToggle.d.ts +27 -0
- package/dist/hooks/useTrackToggle.d.ts.map +1 -0
- package/dist/hooks/useTrackTranscription.d.ts +26 -0
- package/dist/hooks/useTrackTranscription.d.ts.map +1 -0
- package/dist/hooks/useTrackVolume.d.ts +49 -0
- package/dist/hooks/useTrackVolume.d.ts.map +1 -0
- package/dist/hooks/useTracks.d.ts +29 -0
- package/dist/hooks/useTracks.d.ts.map +1 -0
- package/dist/hooks/useTranscriptions.d.ts +21 -0
- package/dist/hooks/useTranscriptions.d.ts.map +1 -0
- package/dist/hooks/useVisualStableUpdate.d.ts +27 -0
- package/dist/hooks/useVisualStableUpdate.d.ts.map +1 -0
- package/dist/hooks/useVoiceAssistant.d.ts +43 -0
- package/dist/hooks/useVoiceAssistant.d.ts.map +1 -0
- package/dist/hooks/useWarnAboutMissingStyles.d.ts +5 -0
- package/dist/hooks/useWarnAboutMissingStyles.d.ts.map +1 -0
- package/dist/hooks-hQJmeINB.mjs +1992 -0
- package/dist/hooks-hQJmeINB.mjs.map +1 -0
- package/dist/hooks.d.ts +2 -0
- package/dist/hooks.js +2 -0
- package/dist/hooks.js.map +1 -0
- package/dist/hooks.mjs +64 -0
- package/dist/hooks.mjs.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.docs.d.ts +6 -0
- package/dist/index.docs.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +157 -0
- package/dist/index.mjs.map +1 -0
- package/dist/krisp.d.ts +2 -0
- package/dist/krisp.js +2 -0
- package/dist/krisp.js.map +1 -0
- package/dist/krisp.mjs +45 -0
- package/dist/krisp.mjs.map +1 -0
- package/dist/mergeProps.d.ts +25 -0
- package/dist/mergeProps.d.ts.map +1 -0
- package/dist/prefabs/AudioConference.d.ts +22 -0
- package/dist/prefabs/AudioConference.d.ts.map +1 -0
- package/dist/prefabs/Chat.d.ts +35 -0
- package/dist/prefabs/Chat.d.ts.map +1 -0
- package/dist/prefabs/ControlBar.d.ts +45 -0
- package/dist/prefabs/ControlBar.d.ts.map +1 -0
- package/dist/prefabs/MediaDeviceMenu.d.ts +36 -0
- package/dist/prefabs/MediaDeviceMenu.d.ts.map +1 -0
- package/dist/prefabs/PreJoin.d.ts +59 -0
- package/dist/prefabs/PreJoin.d.ts.map +1 -0
- package/dist/prefabs/VideoConference.d.ts +35 -0
- package/dist/prefabs/VideoConference.d.ts.map +1 -0
- package/dist/prefabs/VoiceAssistantControlBar.d.ts +32 -0
- package/dist/prefabs/VoiceAssistantControlBar.d.ts.map +1 -0
- package/dist/prefabs/index.d.ts +8 -0
- package/dist/prefabs/index.d.ts.map +1 -0
- package/dist/prefabs.d.ts +2 -0
- package/dist/prefabs.js +2 -0
- package/dist/prefabs.js.map +1 -0
- package/dist/prefabs.mjs +579 -0
- package/dist/prefabs.mjs.map +1 -0
- package/dist/room-BP3SCCCd.mjs +191 -0
- package/dist/room-BP3SCCCd.mjs.map +1 -0
- package/dist/shared-88J2fzv7.js +2 -0
- package/dist/shared-88J2fzv7.js.map +1 -0
- package/dist/shared-BDr0qLg4.js +4 -0
- package/dist/shared-BDr0qLg4.js.map +1 -0
- package/dist/shared-CjI_UuOX.js +2 -0
- package/dist/shared-CjI_UuOX.js.map +1 -0
- package/dist/shared-DTHOl3uJ.js +2 -0
- package/dist/shared-DTHOl3uJ.js.map +1 -0
- package/dist/utils.d.ts +19 -0
- package/dist/utils.d.ts.map +1 -0
- package/package.json +104 -0
- package/src/assets/icons/CameraDisabledIcon.tsx +15 -0
- package/src/assets/icons/CameraIcon.tsx +14 -0
- package/src/assets/icons/ChatCloseIcon.tsx +17 -0
- package/src/assets/icons/ChatIcon.tsx +25 -0
- package/src/assets/icons/Chevron.tsx +19 -0
- package/src/assets/icons/FocusToggleIcon.tsx +16 -0
- package/src/assets/icons/GearIcon.tsx +19 -0
- package/src/assets/icons/LeaveIcon.tsx +25 -0
- package/src/assets/icons/LockLockedIcon.tsx +19 -0
- package/src/assets/icons/MicDisabledIcon.tsx +15 -0
- package/src/assets/icons/MicIcon.tsx +19 -0
- package/src/assets/icons/QualityExcellentIcon.tsx +15 -0
- package/src/assets/icons/QualityGoodIcon.tsx +19 -0
- package/src/assets/icons/QualityPoorIcon.tsx +20 -0
- package/src/assets/icons/QualityUnknownIcon.tsx +17 -0
- package/src/assets/icons/ScreenShareIcon.tsx +25 -0
- package/src/assets/icons/ScreenShareStopIcon.tsx +21 -0
- package/src/assets/icons/SpinnerIcon.tsx +93 -0
- package/src/assets/icons/UnfocusToggleIcon.tsx +16 -0
- package/src/assets/icons/index.ts +19 -0
- package/src/assets/icons/util.tsx +47 -0
- package/src/assets/images/ParticipantPlaceholder.tsx +31 -0
- package/src/assets/images/index.ts +1 -0
- package/src/assets/template.js +21 -0
- package/src/components/ChatEntry.tsx +112 -0
- package/src/components/ConnectionState.tsx +36 -0
- package/src/components/ConnectionStateToast.tsx +47 -0
- package/src/components/LiveKitRoom.tsx +122 -0
- package/src/components/ParticipantLoop.tsx +41 -0
- package/src/components/RoomAudioRenderer.tsx +57 -0
- package/src/components/RoomName.tsx +36 -0
- package/src/components/SessionProvider.tsx +22 -0
- package/src/components/Toast.tsx +18 -0
- package/src/components/TrackLoop.tsx +45 -0
- package/src/components/controls/ChatToggle.tsx +32 -0
- package/src/components/controls/ClearPinButton.tsx +32 -0
- package/src/components/controls/DisconnectButton.tsx +32 -0
- package/src/components/controls/FocusToggle.tsx +54 -0
- package/src/components/controls/MediaDeviceSelect.tsx +144 -0
- package/src/components/controls/PaginationControl.tsx +51 -0
- package/src/components/controls/PaginationIndicator.tsx +26 -0
- package/src/components/controls/SettingsMenuToggle.tsx +26 -0
- package/src/components/controls/StartAudio.tsx +40 -0
- package/src/components/controls/StartMediaButton.tsx +41 -0
- package/src/components/controls/TrackToggle.tsx +54 -0
- package/src/components/index.ts +34 -0
- package/src/components/layout/CarouselLayout.tsx +80 -0
- package/src/components/layout/FocusLayout.tsx +37 -0
- package/src/components/layout/GridLayout.tsx +63 -0
- package/src/components/layout/LayoutContextProvider.tsx +36 -0
- package/src/components/layout/index.ts +3 -0
- package/src/components/participant/AudioTrack.tsx +89 -0
- package/src/components/participant/AudioVisualizer.tsx +67 -0
- package/src/components/participant/BarVisualizer.tsx +164 -0
- package/src/components/participant/ConnectionQualityIndicator.tsx +36 -0
- package/src/components/participant/ParticipantAudioTile.tsx +67 -0
- package/src/components/participant/ParticipantName.tsx +50 -0
- package/src/components/participant/ParticipantTile.tsx +192 -0
- package/src/components/participant/TrackMutedIndicator.tsx +53 -0
- package/src/components/participant/VideoTrack.tsx +92 -0
- package/src/components/participant/animationSequences/connectingSequence.ts +9 -0
- package/src/components/participant/animationSequences/listeningSequence.ts +6 -0
- package/src/components/participant/animationSequences/thinkingSequence.ts +12 -0
- package/src/components/participant/animators/useBarAnimator.ts +55 -0
- package/src/context/chat-context.ts +37 -0
- package/src/context/feature-context.ts +28 -0
- package/src/context/index.ts +27 -0
- package/src/context/layout-context.ts +72 -0
- package/src/context/participant-context.ts +44 -0
- package/src/context/pin-context.ts +27 -0
- package/src/context/room-context.ts +42 -0
- package/src/context/session-context.ts +43 -0
- package/src/context/track-reference-context.ts +47 -0
- package/src/hooks/cloud/krisp/useKrispNoiseFilter.ts +110 -0
- package/src/hooks/index.ts +72 -0
- package/src/hooks/internal/index.ts +10 -0
- package/src/hooks/internal/useMediaQuery.ts +46 -0
- package/src/hooks/internal/useObservableState.ts +24 -0
- package/src/hooks/internal/useResizeObserver.ts +124 -0
- package/src/hooks/useAgent.ts +945 -0
- package/src/hooks/useAudioPlayback.ts +34 -0
- package/src/hooks/useChat.ts +57 -0
- package/src/hooks/useChatToggle.ts +38 -0
- package/src/hooks/useClearPinButton.ts +29 -0
- package/src/hooks/useConnectionQualityIndicator.ts +33 -0
- package/src/hooks/useConnectionStatus.ts +22 -0
- package/src/hooks/useDataChannel.ts +73 -0
- package/src/hooks/useDisconnectButton.ts +36 -0
- package/src/hooks/useEvents.ts +39 -0
- package/src/hooks/useFacingMode.ts +22 -0
- package/src/hooks/useFocusToggle.ts +59 -0
- package/src/hooks/useGridLayout.ts +44 -0
- package/src/hooks/useIsEncrypted.ts +29 -0
- package/src/hooks/useIsMuted.ts +51 -0
- package/src/hooks/useIsRecording.ts +23 -0
- package/src/hooks/useIsSpeaking.ts +21 -0
- package/src/hooks/useLiveKitRoom.ts +186 -0
- package/src/hooks/useLocalParticipant.ts +73 -0
- package/src/hooks/useLocalParticipantPermissions.ts +24 -0
- package/src/hooks/useMediaDeviceSelect.ts +81 -0
- package/src/hooks/useMediaDevices.ts +28 -0
- package/src/hooks/useMediaTrackBySourceOrName.ts +97 -0
- package/src/hooks/usePagination.test.ts +77 -0
- package/src/hooks/usePagination.ts +67 -0
- package/src/hooks/useParticipantAttributes.ts +69 -0
- package/src/hooks/useParticipantInfo.ts +35 -0
- package/src/hooks/useParticipantPermissions.ts +29 -0
- package/src/hooks/useParticipantTile.ts +81 -0
- package/src/hooks/useParticipantTracks.ts +54 -0
- package/src/hooks/useParticipants.ts +42 -0
- package/src/hooks/usePersistentUserChoices.ts +64 -0
- package/src/hooks/usePinnedTracks.ts +24 -0
- package/src/hooks/useRemoteParticipant.ts +79 -0
- package/src/hooks/useRemoteParticipants.ts +45 -0
- package/src/hooks/useRoomInfo.ts +32 -0
- package/src/hooks/useSequentialRoomConnectDisconnect.ts +171 -0
- package/src/hooks/useSession.ts +642 -0
- package/src/hooks/useSessionMessages.ts +158 -0
- package/src/hooks/useSettingsToggle.ts +32 -0
- package/src/hooks/useSortedParticipants.ts +20 -0
- package/src/hooks/useSpeakingParticipants.ts +27 -0
- package/src/hooks/useStartAudio.ts +50 -0
- package/src/hooks/useStartVideo.ts +49 -0
- package/src/hooks/useSwipe.ts +68 -0
- package/src/hooks/useTextStream.ts +35 -0
- package/src/hooks/useToken.ts +54 -0
- package/src/hooks/useTrack.ts +11 -0
- package/src/hooks/useTrackByName.ts +15 -0
- package/src/hooks/useTrackMutedIndicator.ts +44 -0
- package/src/hooks/useTrackRefBySourceOrName.ts +30 -0
- package/src/hooks/useTrackSyncTime.ts +18 -0
- package/src/hooks/useTrackToggle.ts +93 -0
- package/src/hooks/useTrackTranscription.ts +75 -0
- package/src/hooks/useTrackVolume.ts +283 -0
- package/src/hooks/useTracks.test.ts +60 -0
- package/src/hooks/useTracks.ts +154 -0
- package/src/hooks/useTranscriptions.ts +48 -0
- package/src/hooks/useVisualStableUpdate.ts +63 -0
- package/src/hooks/useVoiceAssistant.ts +109 -0
- package/src/hooks/useWarnAboutMissingStyles.ts +11 -0
- package/src/index.docs.ts +12 -0
- package/src/index.ts +32 -0
- package/src/mergeProps.ts +87 -0
- package/src/prefabs/AudioConference.tsx +57 -0
- package/src/prefabs/Chat.tsx +153 -0
- package/src/prefabs/ControlBar.tsx +227 -0
- package/src/prefabs/MediaDeviceMenu.tsx +159 -0
- package/src/prefabs/PreJoin.tsx +439 -0
- package/src/prefabs/VideoConference.tsx +184 -0
- package/src/prefabs/VoiceAssistantControlBar.tsx +109 -0
- package/src/prefabs/index.ts +11 -0
- package/src/utils.ts +78 -0
package/dist/prefabs.mjs
ADDED
|
@@ -0,0 +1,579 @@
|
|
|
1
|
+
import * as e from "react";
|
|
2
|
+
import { c as ie, w as oe, r as ue, m as le, a as G } from "./room-BP3SCCCd.mjs";
|
|
3
|
+
import { C as J, S as de, a as me, M as x, b as fe, T as V, c as he, d as pe, D as z, e as ge, f as H, L as Q, G as Ee, P as K, F as Se, g as ve, h as ke, R as be, i as Ce, j as we, k as ye, B as Ie } from "./components-lNrIMTWQ.mjs";
|
|
4
|
+
import { w as Me, x as W, y as Pe, z as Ne, A as X, t as Y, B as Te, C as Le } from "./hooks-hQJmeINB.mjs";
|
|
5
|
+
import { j as Z, as as Ae, at as De, l as T, a as Re, au as Ve, av as Oe, a1 as B, aw as $e, ax as Ue } from "./contexts-D4V9wQRc.mjs";
|
|
6
|
+
import { Track as k, facingModeFromLocalTrack as _e, Mutex as Fe, createLocalTracks as xe, createLocalVideoTrack as Be, VideoPresets as We, createLocalAudioTrack as je, RoomEvent as qe } from "livekit-client";
|
|
7
|
+
function ee({
|
|
8
|
+
messageFormatter: s,
|
|
9
|
+
messageDecoder: u,
|
|
10
|
+
messageEncoder: i,
|
|
11
|
+
channelTopic: n,
|
|
12
|
+
...S
|
|
13
|
+
}) {
|
|
14
|
+
const v = e.useRef(null), m = e.useRef(null), f = e.useMemo(() => ({ messageDecoder: u, messageEncoder: i, channelTopic: n }), [u, i, n]), { chatMessages: c, send: w, isSending: t } = Me(f), g = Z(), d = e.useRef(0);
|
|
15
|
+
async function l(r) {
|
|
16
|
+
r.preventDefault(), m.current && m.current.value.trim() !== "" && (await w(m.current.value), m.current.value = "", m.current.focus());
|
|
17
|
+
}
|
|
18
|
+
return e.useEffect(() => {
|
|
19
|
+
var r;
|
|
20
|
+
v && ((r = v.current) == null || r.scrollTo({ top: v.current.scrollHeight }));
|
|
21
|
+
}, [v, c]), e.useEffect(() => {
|
|
22
|
+
var p, o, a, y, b;
|
|
23
|
+
if (!g || c.length === 0)
|
|
24
|
+
return;
|
|
25
|
+
if ((p = g.widget.state) != null && p.showChat && c.length > 0 && d.current !== ((o = c[c.length - 1]) == null ? void 0 : o.timestamp)) {
|
|
26
|
+
d.current = (a = c[c.length - 1]) == null ? void 0 : a.timestamp;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const r = c.filter(
|
|
30
|
+
(A) => !d.current || A.timestamp > d.current
|
|
31
|
+
).length, { widget: h } = g;
|
|
32
|
+
r > 0 && ((y = h.state) == null ? void 0 : y.unreadMessages) !== r && ((b = h.dispatch) == null || b.call(h, { msg: "unread_msg", count: r }));
|
|
33
|
+
}, [c, g == null ? void 0 : g.widget]), /* @__PURE__ */ e.createElement("div", { ...S, className: "lk-chat" }, /* @__PURE__ */ e.createElement("div", { className: "lk-chat-header" }, "Messages", g && /* @__PURE__ */ e.createElement(J, { className: "lk-close-button" }, /* @__PURE__ */ e.createElement(de, null))), /* @__PURE__ */ e.createElement("ul", { className: "lk-list lk-chat-messages", ref: v }, S.children ? c.map(
|
|
34
|
+
(r, h) => ie(S.children, {
|
|
35
|
+
entry: r,
|
|
36
|
+
key: r.id ?? h,
|
|
37
|
+
messageFormatter: s
|
|
38
|
+
})
|
|
39
|
+
) : c.map((r, h, p) => {
|
|
40
|
+
const o = h >= 1 && p[h - 1].from === r.from, a = h >= 1 && r.timestamp - p[h - 1].timestamp < 6e4;
|
|
41
|
+
return /* @__PURE__ */ e.createElement(
|
|
42
|
+
me,
|
|
43
|
+
{
|
|
44
|
+
key: r.id ?? h,
|
|
45
|
+
hideName: o,
|
|
46
|
+
hideTimestamp: o === !1 ? !1 : a,
|
|
47
|
+
entry: r,
|
|
48
|
+
messageFormatter: s
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
})), /* @__PURE__ */ e.createElement("form", { className: "lk-chat-form", onSubmit: l }, /* @__PURE__ */ e.createElement(
|
|
52
|
+
"input",
|
|
53
|
+
{
|
|
54
|
+
className: "lk-form-control lk-chat-form-input",
|
|
55
|
+
disabled: t,
|
|
56
|
+
ref: m,
|
|
57
|
+
type: "text",
|
|
58
|
+
placeholder: "Enter a message...",
|
|
59
|
+
onInput: (r) => r.stopPropagation(),
|
|
60
|
+
onKeyDown: (r) => r.stopPropagation(),
|
|
61
|
+
onKeyUp: (r) => r.stopPropagation()
|
|
62
|
+
}
|
|
63
|
+
), /* @__PURE__ */ e.createElement("button", { type: "submit", className: "lk-button lk-chat-form-button", disabled: t }, "Send")));
|
|
64
|
+
}
|
|
65
|
+
function $({
|
|
66
|
+
kind: s,
|
|
67
|
+
initialSelection: u,
|
|
68
|
+
onActiveDeviceChange: i,
|
|
69
|
+
tracks: n,
|
|
70
|
+
requestPermissions: S = !1,
|
|
71
|
+
...v
|
|
72
|
+
}) {
|
|
73
|
+
const [m, f] = e.useState(!1), [c, w] = e.useState([]), [t, g] = e.useState(!0), [d, l] = e.useState(S), r = (a, y) => {
|
|
74
|
+
T.debug("handle device change"), f(!1), i == null || i(a, y);
|
|
75
|
+
}, h = e.useRef(null), p = e.useRef(null);
|
|
76
|
+
e.useLayoutEffect(() => {
|
|
77
|
+
m && l(!0);
|
|
78
|
+
}, [m]), e.useLayoutEffect(() => {
|
|
79
|
+
let a;
|
|
80
|
+
return h.current && p.current && (c || t) && (a = Ae(h.current, p.current, (y, b) => {
|
|
81
|
+
p.current && Object.assign(p.current.style, { left: `${y}px`, top: `${b}px` });
|
|
82
|
+
})), g(!1), () => {
|
|
83
|
+
a == null || a();
|
|
84
|
+
};
|
|
85
|
+
}, [h, p, c, t]);
|
|
86
|
+
const o = e.useCallback(
|
|
87
|
+
(a) => {
|
|
88
|
+
p.current && a.target !== h.current && m && De(p.current, a) && f(!1);
|
|
89
|
+
},
|
|
90
|
+
[m, p, h]
|
|
91
|
+
);
|
|
92
|
+
return e.useEffect(() => (document.addEventListener("click", o), () => {
|
|
93
|
+
document.removeEventListener("click", o);
|
|
94
|
+
}), [o]), /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(
|
|
95
|
+
"button",
|
|
96
|
+
{
|
|
97
|
+
className: "lk-button lk-button-menu",
|
|
98
|
+
"aria-pressed": m,
|
|
99
|
+
...v,
|
|
100
|
+
onClick: () => f(!m),
|
|
101
|
+
ref: h
|
|
102
|
+
},
|
|
103
|
+
v.children
|
|
104
|
+
), !v.disabled && /* @__PURE__ */ e.createElement(
|
|
105
|
+
"div",
|
|
106
|
+
{
|
|
107
|
+
className: "lk-device-menu",
|
|
108
|
+
ref: p,
|
|
109
|
+
style: { visibility: m ? "visible" : "hidden" }
|
|
110
|
+
},
|
|
111
|
+
s ? /* @__PURE__ */ e.createElement(
|
|
112
|
+
x,
|
|
113
|
+
{
|
|
114
|
+
initialSelection: u,
|
|
115
|
+
onActiveDeviceChange: (a) => r(s, a),
|
|
116
|
+
onDeviceListChange: w,
|
|
117
|
+
kind: s,
|
|
118
|
+
track: n == null ? void 0 : n[s],
|
|
119
|
+
requestPermissions: d
|
|
120
|
+
}
|
|
121
|
+
) : /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "lk-device-menu-heading" }, "Audio inputs"), /* @__PURE__ */ e.createElement(
|
|
122
|
+
x,
|
|
123
|
+
{
|
|
124
|
+
kind: "audioinput",
|
|
125
|
+
onActiveDeviceChange: (a) => r("audioinput", a),
|
|
126
|
+
onDeviceListChange: w,
|
|
127
|
+
track: n == null ? void 0 : n.audioinput,
|
|
128
|
+
requestPermissions: d
|
|
129
|
+
}
|
|
130
|
+
), /* @__PURE__ */ e.createElement("div", { className: "lk-device-menu-heading" }, "Video inputs"), /* @__PURE__ */ e.createElement(
|
|
131
|
+
x,
|
|
132
|
+
{
|
|
133
|
+
kind: "videoinput",
|
|
134
|
+
onActiveDeviceChange: (a) => r("videoinput", a),
|
|
135
|
+
onDeviceListChange: w,
|
|
136
|
+
track: n == null ? void 0 : n.videoinput,
|
|
137
|
+
requestPermissions: d
|
|
138
|
+
}
|
|
139
|
+
))
|
|
140
|
+
));
|
|
141
|
+
}
|
|
142
|
+
function j() {
|
|
143
|
+
e.useEffect(() => {
|
|
144
|
+
oe();
|
|
145
|
+
}, []);
|
|
146
|
+
}
|
|
147
|
+
function Ke(s, u) {
|
|
148
|
+
const [i, n] = e.useState(), S = e.useMemo(() => new Fe(), []);
|
|
149
|
+
return e.useEffect(() => {
|
|
150
|
+
let v = !1, m = [];
|
|
151
|
+
return S.lock().then(async (f) => {
|
|
152
|
+
try {
|
|
153
|
+
(s.audio || s.video) && (m = await xe(s), v ? m.forEach((c) => c.stop()) : n(m));
|
|
154
|
+
} catch (c) {
|
|
155
|
+
u && c instanceof Error ? u(c) : T.error(c);
|
|
156
|
+
} finally {
|
|
157
|
+
f();
|
|
158
|
+
}
|
|
159
|
+
}), () => {
|
|
160
|
+
v = !0, m.forEach((f) => {
|
|
161
|
+
f.stop();
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
}, [JSON.stringify(s, ue), u, S]), i;
|
|
165
|
+
}
|
|
166
|
+
function et(s, u, i) {
|
|
167
|
+
const [n, S] = e.useState(null), [v, m] = e.useState(!1), f = Pe({ kind: i }), [c, w] = e.useState(
|
|
168
|
+
void 0
|
|
169
|
+
), [t, g] = e.useState(), [d, l] = e.useState(u);
|
|
170
|
+
e.useEffect(() => {
|
|
171
|
+
l(u);
|
|
172
|
+
}, [u]);
|
|
173
|
+
const r = async (o, a) => {
|
|
174
|
+
try {
|
|
175
|
+
const y = a === "videoinput" ? await Be({
|
|
176
|
+
deviceId: o,
|
|
177
|
+
resolution: We.h720.resolution
|
|
178
|
+
}) : await je({ deviceId: o }), b = await y.getDeviceId(!1);
|
|
179
|
+
b && o !== b && (p.current = b, l(b)), g(y);
|
|
180
|
+
} catch (y) {
|
|
181
|
+
y instanceof Error && S(y);
|
|
182
|
+
}
|
|
183
|
+
}, h = async (o, a) => {
|
|
184
|
+
await o.setDeviceId(a), p.current = a;
|
|
185
|
+
}, p = e.useRef(d);
|
|
186
|
+
return e.useEffect(() => {
|
|
187
|
+
s && !t && !n && !v && (T.debug("creating track", i), m(!0), r(d, i).finally(() => {
|
|
188
|
+
m(!1);
|
|
189
|
+
}));
|
|
190
|
+
}, [s, t, n, v]), e.useEffect(() => {
|
|
191
|
+
t && (s ? c != null && c.deviceId && p.current !== (c == null ? void 0 : c.deviceId) ? (T.debug(`switching ${i} device from`, p.current, c.deviceId), h(t, c.deviceId)) : (T.debug(`unmuting local ${i} track`), t.unmute()) : (T.debug(`muting ${i} track`), t.mute().then(() => T.debug(t.mediaStreamTrack))));
|
|
192
|
+
}, [t, c, s, i]), e.useEffect(() => () => {
|
|
193
|
+
t && (T.debug(`stopping local ${i} track`), t.stop(), t.mute());
|
|
194
|
+
}, []), e.useEffect(() => {
|
|
195
|
+
w(f == null ? void 0 : f.find((o) => o.deviceId === d));
|
|
196
|
+
}, [d, f]), {
|
|
197
|
+
selectedDevice: c,
|
|
198
|
+
localTrack: t,
|
|
199
|
+
deviceError: n
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
function tt({
|
|
203
|
+
defaults: s = {},
|
|
204
|
+
onValidate: u,
|
|
205
|
+
onSubmit: i,
|
|
206
|
+
onError: n,
|
|
207
|
+
debug: S,
|
|
208
|
+
joinLabel: v = "Join Room",
|
|
209
|
+
micLabel: m = "Microphone",
|
|
210
|
+
camLabel: f = "Camera",
|
|
211
|
+
userLabel: c = "Username",
|
|
212
|
+
persistUserChoices: w = !0,
|
|
213
|
+
videoProcessor: t,
|
|
214
|
+
...g
|
|
215
|
+
}) {
|
|
216
|
+
const {
|
|
217
|
+
userChoices: d,
|
|
218
|
+
saveAudioInputDeviceId: l,
|
|
219
|
+
saveAudioInputEnabled: r,
|
|
220
|
+
saveVideoInputDeviceId: h,
|
|
221
|
+
saveVideoInputEnabled: p,
|
|
222
|
+
saveUsername: o
|
|
223
|
+
} = W({
|
|
224
|
+
defaults: s,
|
|
225
|
+
preventSave: !w,
|
|
226
|
+
preventLoad: !w
|
|
227
|
+
}), [a, y] = e.useState(d), [b, A] = e.useState(a.audioEnabled), [N, L] = e.useState(a.videoEnabled), [P, R] = e.useState(a.audioDeviceId), [E, I] = e.useState(a.videoDeviceId), [O, ae] = e.useState(a.username);
|
|
228
|
+
e.useEffect(() => {
|
|
229
|
+
r(b);
|
|
230
|
+
}, [b, r]), e.useEffect(() => {
|
|
231
|
+
p(N);
|
|
232
|
+
}, [N, p]), e.useEffect(() => {
|
|
233
|
+
l(P);
|
|
234
|
+
}, [P, l]), e.useEffect(() => {
|
|
235
|
+
h(E);
|
|
236
|
+
}, [E, h]), e.useEffect(() => {
|
|
237
|
+
o(O);
|
|
238
|
+
}, [O, o]);
|
|
239
|
+
const D = Ke(
|
|
240
|
+
{
|
|
241
|
+
audio: b ? { deviceId: d.audioDeviceId } : !1,
|
|
242
|
+
video: N ? { deviceId: d.videoDeviceId, processor: t } : !1
|
|
243
|
+
},
|
|
244
|
+
n
|
|
245
|
+
), U = e.useRef(null), M = e.useMemo(
|
|
246
|
+
() => D == null ? void 0 : D.filter((C) => C.kind === k.Kind.Video)[0],
|
|
247
|
+
[D]
|
|
248
|
+
), ne = e.useMemo(() => {
|
|
249
|
+
if (M) {
|
|
250
|
+
const { facingMode: C } = _e(M);
|
|
251
|
+
return C;
|
|
252
|
+
} else
|
|
253
|
+
return "undefined";
|
|
254
|
+
}, [M]), q = e.useMemo(
|
|
255
|
+
() => D == null ? void 0 : D.filter((C) => C.kind === k.Kind.Audio)[0],
|
|
256
|
+
[D]
|
|
257
|
+
);
|
|
258
|
+
e.useEffect(() => (U.current && M && (M.unmute(), M.attach(U.current)), () => {
|
|
259
|
+
M == null || M.detach();
|
|
260
|
+
}), [M]);
|
|
261
|
+
const [ce, se] = e.useState(), _ = e.useCallback(
|
|
262
|
+
(C) => typeof u == "function" ? u(C) : C.username !== "",
|
|
263
|
+
[u]
|
|
264
|
+
);
|
|
265
|
+
e.useEffect(() => {
|
|
266
|
+
const C = {
|
|
267
|
+
username: O,
|
|
268
|
+
videoEnabled: N,
|
|
269
|
+
videoDeviceId: E,
|
|
270
|
+
audioEnabled: b,
|
|
271
|
+
audioDeviceId: P
|
|
272
|
+
};
|
|
273
|
+
y(C), se(_(C));
|
|
274
|
+
}, [O, N, _, b, P, E]);
|
|
275
|
+
function re(C) {
|
|
276
|
+
C.preventDefault(), _(a) ? typeof i == "function" && i(a) : T.warn("Validation failed with: ", a);
|
|
277
|
+
}
|
|
278
|
+
return j(), /* @__PURE__ */ e.createElement("div", { className: "lk-prejoin", ...g }, /* @__PURE__ */ e.createElement("div", { className: "lk-video-container" }, M && /* @__PURE__ */ e.createElement("video", { ref: U, width: "1280", height: "720", "data-lk-facing-mode": ne }), (!M || !N) && /* @__PURE__ */ e.createElement("div", { className: "lk-camera-off-note" }, /* @__PURE__ */ e.createElement(fe, null))), /* @__PURE__ */ e.createElement("div", { className: "lk-button-group-container" }, /* @__PURE__ */ e.createElement("div", { className: "lk-button-group audio" }, /* @__PURE__ */ e.createElement(
|
|
279
|
+
V,
|
|
280
|
+
{
|
|
281
|
+
initialState: b,
|
|
282
|
+
source: k.Source.Microphone,
|
|
283
|
+
onChange: (C) => A(C)
|
|
284
|
+
},
|
|
285
|
+
m
|
|
286
|
+
), /* @__PURE__ */ e.createElement("div", { className: "lk-button-group-menu" }, /* @__PURE__ */ e.createElement(
|
|
287
|
+
$,
|
|
288
|
+
{
|
|
289
|
+
initialSelection: P,
|
|
290
|
+
kind: "audioinput",
|
|
291
|
+
disabled: !q,
|
|
292
|
+
tracks: { audioinput: q },
|
|
293
|
+
onActiveDeviceChange: (C, F) => R(F)
|
|
294
|
+
}
|
|
295
|
+
))), /* @__PURE__ */ e.createElement("div", { className: "lk-button-group video" }, /* @__PURE__ */ e.createElement(
|
|
296
|
+
V,
|
|
297
|
+
{
|
|
298
|
+
initialState: N,
|
|
299
|
+
source: k.Source.Camera,
|
|
300
|
+
onChange: (C) => L(C)
|
|
301
|
+
},
|
|
302
|
+
f
|
|
303
|
+
), /* @__PURE__ */ e.createElement("div", { className: "lk-button-group-menu" }, /* @__PURE__ */ e.createElement(
|
|
304
|
+
$,
|
|
305
|
+
{
|
|
306
|
+
initialSelection: E,
|
|
307
|
+
kind: "videoinput",
|
|
308
|
+
disabled: !M,
|
|
309
|
+
tracks: { videoinput: M },
|
|
310
|
+
onActiveDeviceChange: (C, F) => I(F)
|
|
311
|
+
}
|
|
312
|
+
)))), /* @__PURE__ */ e.createElement("form", { className: "lk-username-container" }, /* @__PURE__ */ e.createElement(
|
|
313
|
+
"input",
|
|
314
|
+
{
|
|
315
|
+
className: "lk-form-control",
|
|
316
|
+
id: "username",
|
|
317
|
+
name: "username",
|
|
318
|
+
type: "text",
|
|
319
|
+
defaultValue: O,
|
|
320
|
+
placeholder: c,
|
|
321
|
+
onChange: (C) => ae(C.target.value),
|
|
322
|
+
autoComplete: "off"
|
|
323
|
+
}
|
|
324
|
+
), /* @__PURE__ */ e.createElement(
|
|
325
|
+
"button",
|
|
326
|
+
{
|
|
327
|
+
className: "lk-button lk-join-button",
|
|
328
|
+
type: "submit",
|
|
329
|
+
onClick: re,
|
|
330
|
+
disabled: !ce
|
|
331
|
+
},
|
|
332
|
+
v
|
|
333
|
+
)), S && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("strong", null, "User Choices:"), /* @__PURE__ */ e.createElement("ul", { className: "lk-list", style: { overflow: "hidden", maxWidth: "15rem" } }, /* @__PURE__ */ e.createElement("li", null, "Username: ", `${a.username}`), /* @__PURE__ */ e.createElement("li", null, "Video Enabled: ", `${a.videoEnabled}`), /* @__PURE__ */ e.createElement("li", null, "Audio Enabled: ", `${a.audioEnabled}`), /* @__PURE__ */ e.createElement("li", null, "Video Device: ", `${a.videoDeviceId}`), /* @__PURE__ */ e.createElement("li", null, "Audio Device: ", `${a.audioDeviceId}`))));
|
|
334
|
+
}
|
|
335
|
+
function Ge({ props: s }) {
|
|
336
|
+
const { dispatch: u, state: i } = Re().widget, n = "lk-button lk-settings-toggle";
|
|
337
|
+
return { mergedProps: e.useMemo(() => le(s, {
|
|
338
|
+
className: n,
|
|
339
|
+
onClick: () => {
|
|
340
|
+
u && u({ msg: "toggle_settings" });
|
|
341
|
+
},
|
|
342
|
+
"aria-pressed": i != null && i.showSettings ? "true" : "false"
|
|
343
|
+
}), [s, n, u, i]) };
|
|
344
|
+
}
|
|
345
|
+
const Je = /* @__PURE__ */ e.forwardRef(
|
|
346
|
+
function(u, i) {
|
|
347
|
+
const { mergedProps: n } = Ge({ props: u });
|
|
348
|
+
return /* @__PURE__ */ e.createElement("button", { ref: i, ...n }, u.children);
|
|
349
|
+
}
|
|
350
|
+
), ze = (s) => {
|
|
351
|
+
switch (s) {
|
|
352
|
+
case k.Source.Camera:
|
|
353
|
+
return 1;
|
|
354
|
+
case k.Source.Microphone:
|
|
355
|
+
return 2;
|
|
356
|
+
case k.Source.ScreenShare:
|
|
357
|
+
return 3;
|
|
358
|
+
default:
|
|
359
|
+
return 0;
|
|
360
|
+
}
|
|
361
|
+
};
|
|
362
|
+
function te({
|
|
363
|
+
variation: s,
|
|
364
|
+
controls: u,
|
|
365
|
+
saveUserChoices: i = !0,
|
|
366
|
+
onDeviceError: n,
|
|
367
|
+
...S
|
|
368
|
+
}) {
|
|
369
|
+
var R;
|
|
370
|
+
const [v, m] = e.useState(!1), f = Z();
|
|
371
|
+
e.useEffect(() => {
|
|
372
|
+
var E, I;
|
|
373
|
+
((E = f == null ? void 0 : f.widget.state) == null ? void 0 : E.showChat) !== void 0 && m((I = f == null ? void 0 : f.widget.state) == null ? void 0 : I.showChat);
|
|
374
|
+
}, [(R = f == null ? void 0 : f.widget.state) == null ? void 0 : R.showChat]);
|
|
375
|
+
const w = Ne(`(max-width: ${v ? 1e3 : 760}px)`) ? "minimal" : "verbose";
|
|
376
|
+
s ?? (s = w);
|
|
377
|
+
const t = { leave: !0, ...u }, g = X();
|
|
378
|
+
if (!g)
|
|
379
|
+
t.camera = !1, t.chat = !1, t.microphone = !1, t.screenShare = !1;
|
|
380
|
+
else {
|
|
381
|
+
const E = (I) => g.canPublish && (g.canPublishSources.length === 0 || g.canPublishSources.includes(ze(I)));
|
|
382
|
+
t.camera ?? (t.camera = E(k.Source.Camera)), t.microphone ?? (t.microphone = E(k.Source.Microphone)), t.screenShare ?? (t.screenShare = E(k.Source.ScreenShare)), t.chat ?? (t.chat = g.canPublishData && (u == null ? void 0 : u.chat));
|
|
383
|
+
}
|
|
384
|
+
const d = e.useMemo(
|
|
385
|
+
() => s === "minimal" || s === "verbose",
|
|
386
|
+
[s]
|
|
387
|
+
), l = e.useMemo(
|
|
388
|
+
() => s === "textOnly" || s === "verbose",
|
|
389
|
+
[s]
|
|
390
|
+
), r = Ve(), [h, p] = e.useState(!1), o = e.useCallback(
|
|
391
|
+
(E) => {
|
|
392
|
+
p(E);
|
|
393
|
+
},
|
|
394
|
+
[p]
|
|
395
|
+
), a = G({ className: "lk-control-bar" }, S), {
|
|
396
|
+
saveAudioInputEnabled: y,
|
|
397
|
+
saveVideoInputEnabled: b,
|
|
398
|
+
saveAudioInputDeviceId: A,
|
|
399
|
+
saveVideoInputDeviceId: N
|
|
400
|
+
} = W({ preventSave: !i }), L = e.useCallback(
|
|
401
|
+
(E, I) => I ? y(E) : null,
|
|
402
|
+
[y]
|
|
403
|
+
), P = e.useCallback(
|
|
404
|
+
(E, I) => I ? b(E) : null,
|
|
405
|
+
[b]
|
|
406
|
+
);
|
|
407
|
+
return /* @__PURE__ */ e.createElement("div", { ...a }, t.microphone && /* @__PURE__ */ e.createElement("div", { className: "lk-button-group" }, /* @__PURE__ */ e.createElement(
|
|
408
|
+
V,
|
|
409
|
+
{
|
|
410
|
+
source: k.Source.Microphone,
|
|
411
|
+
showIcon: d,
|
|
412
|
+
onChange: L,
|
|
413
|
+
onDeviceError: (E) => n == null ? void 0 : n({ source: k.Source.Microphone, error: E })
|
|
414
|
+
},
|
|
415
|
+
l && "Microphone"
|
|
416
|
+
), /* @__PURE__ */ e.createElement("div", { className: "lk-button-group-menu" }, /* @__PURE__ */ e.createElement(
|
|
417
|
+
$,
|
|
418
|
+
{
|
|
419
|
+
kind: "audioinput",
|
|
420
|
+
onActiveDeviceChange: (E, I) => A(I ?? "default")
|
|
421
|
+
}
|
|
422
|
+
))), t.camera && /* @__PURE__ */ e.createElement("div", { className: "lk-button-group" }, /* @__PURE__ */ e.createElement(
|
|
423
|
+
V,
|
|
424
|
+
{
|
|
425
|
+
source: k.Source.Camera,
|
|
426
|
+
showIcon: d,
|
|
427
|
+
onChange: P,
|
|
428
|
+
onDeviceError: (E) => n == null ? void 0 : n({ source: k.Source.Camera, error: E })
|
|
429
|
+
},
|
|
430
|
+
l && "Camera"
|
|
431
|
+
), /* @__PURE__ */ e.createElement("div", { className: "lk-button-group-menu" }, /* @__PURE__ */ e.createElement(
|
|
432
|
+
$,
|
|
433
|
+
{
|
|
434
|
+
kind: "videoinput",
|
|
435
|
+
onActiveDeviceChange: (E, I) => N(I ?? "default")
|
|
436
|
+
}
|
|
437
|
+
))), t.screenShare && r && /* @__PURE__ */ e.createElement(
|
|
438
|
+
V,
|
|
439
|
+
{
|
|
440
|
+
source: k.Source.ScreenShare,
|
|
441
|
+
captureOptions: { audio: !0, selfBrowserSurface: "include" },
|
|
442
|
+
showIcon: d,
|
|
443
|
+
onChange: o,
|
|
444
|
+
onDeviceError: (E) => n == null ? void 0 : n({ source: k.Source.ScreenShare, error: E })
|
|
445
|
+
},
|
|
446
|
+
l && (h ? "Stop screen share" : "Share screen")
|
|
447
|
+
), t.chat && /* @__PURE__ */ e.createElement(J, null, d && /* @__PURE__ */ e.createElement(he, null), l && "Chat"), t.settings && /* @__PURE__ */ e.createElement(Je, null, d && /* @__PURE__ */ e.createElement(pe, null), l && "Settings"), t.leave && /* @__PURE__ */ e.createElement(z, null, d && /* @__PURE__ */ e.createElement(ge, null), l && "Leave"), /* @__PURE__ */ e.createElement(H, null));
|
|
448
|
+
}
|
|
449
|
+
function at({
|
|
450
|
+
chatMessageFormatter: s,
|
|
451
|
+
chatMessageDecoder: u,
|
|
452
|
+
chatMessageEncoder: i,
|
|
453
|
+
SettingsComponent: n,
|
|
454
|
+
controlBarProops: S = {},
|
|
455
|
+
...v
|
|
456
|
+
}) {
|
|
457
|
+
var h, p;
|
|
458
|
+
const [m, f] = e.useState({
|
|
459
|
+
showChat: !1,
|
|
460
|
+
unreadMessages: 0,
|
|
461
|
+
showSettings: !1
|
|
462
|
+
}), c = e.useRef(null), w = Y(
|
|
463
|
+
[
|
|
464
|
+
{ source: k.Source.Camera, withPlaceholder: !0 },
|
|
465
|
+
{ source: k.Source.ScreenShare, withPlaceholder: !1 }
|
|
466
|
+
],
|
|
467
|
+
{ updateOnlyOn: [qe.ActiveSpeakersChanged], onlySubscribed: !1 }
|
|
468
|
+
), t = (o) => {
|
|
469
|
+
T.debug("updating widget state", o), f(o);
|
|
470
|
+
}, g = Oe(), d = w.filter(B).filter((o) => o.publication.source === k.Source.ScreenShare), l = (h = Te(g)) == null ? void 0 : h[0], r = w.filter((o) => !$e(o, l));
|
|
471
|
+
return e.useEffect(() => {
|
|
472
|
+
var o, a, y, b, A, N;
|
|
473
|
+
if (d.some((L) => L.publication.isSubscribed) && c.current === null ? (T.debug("Auto set screen share focus:", { newScreenShareTrack: d[0] }), (a = (o = g.pin).dispatch) == null || a.call(o, { msg: "set_pin", trackReference: d[0] }), c.current = d[0]) : c.current && !d.some(
|
|
474
|
+
(L) => {
|
|
475
|
+
var P, R;
|
|
476
|
+
return L.publication.trackSid === ((R = (P = c.current) == null ? void 0 : P.publication) == null ? void 0 : R.trackSid);
|
|
477
|
+
}
|
|
478
|
+
) && (T.debug("Auto clearing screen share focus."), (b = (y = g.pin).dispatch) == null || b.call(y, { msg: "clear_pin" }), c.current = null), l && !B(l)) {
|
|
479
|
+
const L = w.find(
|
|
480
|
+
(P) => P.participant.identity === l.participant.identity && P.source === l.source
|
|
481
|
+
);
|
|
482
|
+
L !== l && B(L) && ((N = (A = g.pin).dispatch) == null || N.call(A, { msg: "set_pin", trackReference: L }));
|
|
483
|
+
}
|
|
484
|
+
}, [
|
|
485
|
+
d.map((o) => `${o.publication.trackSid}_${o.publication.isSubscribed}`).join(),
|
|
486
|
+
(p = l == null ? void 0 : l.publication) == null ? void 0 : p.trackSid,
|
|
487
|
+
w
|
|
488
|
+
]), j(), /* @__PURE__ */ e.createElement("div", { className: "lk-video-conference", ...v }, Ue() && /* @__PURE__ */ e.createElement(
|
|
489
|
+
Q,
|
|
490
|
+
{
|
|
491
|
+
value: g,
|
|
492
|
+
onWidgetChange: t
|
|
493
|
+
},
|
|
494
|
+
/* @__PURE__ */ e.createElement("div", { className: "lk-video-conference-inner" }, l ? /* @__PURE__ */ e.createElement("div", { className: "lk-focus-layout-wrapper" }, /* @__PURE__ */ e.createElement(Se, null, /* @__PURE__ */ e.createElement(ve, { tracks: r }, /* @__PURE__ */ e.createElement(K, null)), l && /* @__PURE__ */ e.createElement(ke, { trackRef: l }))) : /* @__PURE__ */ e.createElement("div", { className: "lk-grid-layout-wrapper" }, /* @__PURE__ */ e.createElement(Ee, { tracks: w }, /* @__PURE__ */ e.createElement(K, null))), /* @__PURE__ */ e.createElement(
|
|
495
|
+
te,
|
|
496
|
+
{
|
|
497
|
+
controls: { chat: !0, settings: !!n, ...S }
|
|
498
|
+
}
|
|
499
|
+
)),
|
|
500
|
+
/* @__PURE__ */ e.createElement(
|
|
501
|
+
ee,
|
|
502
|
+
{
|
|
503
|
+
style: { display: m.showChat ? "grid" : "none" },
|
|
504
|
+
messageFormatter: s,
|
|
505
|
+
messageEncoder: i,
|
|
506
|
+
messageDecoder: u
|
|
507
|
+
}
|
|
508
|
+
),
|
|
509
|
+
n && /* @__PURE__ */ e.createElement(
|
|
510
|
+
"div",
|
|
511
|
+
{
|
|
512
|
+
className: "lk-settings-menu-modal",
|
|
513
|
+
style: { display: m.showSettings ? "block" : "none" }
|
|
514
|
+
},
|
|
515
|
+
/* @__PURE__ */ e.createElement(n, null)
|
|
516
|
+
)
|
|
517
|
+
), /* @__PURE__ */ e.createElement(be, null), /* @__PURE__ */ e.createElement(Ce, null));
|
|
518
|
+
}
|
|
519
|
+
function nt({ ...s }) {
|
|
520
|
+
const [u, i] = e.useState({
|
|
521
|
+
showChat: !1,
|
|
522
|
+
unreadMessages: 0
|
|
523
|
+
}), n = Y([k.Source.Microphone]);
|
|
524
|
+
return j(), /* @__PURE__ */ e.createElement(Q, { onWidgetChange: i }, /* @__PURE__ */ e.createElement("div", { className: "lk-audio-conference", ...s }, /* @__PURE__ */ e.createElement("div", { className: "lk-audio-conference-stage" }, /* @__PURE__ */ e.createElement(we, { tracks: n }, /* @__PURE__ */ e.createElement(ye, null))), /* @__PURE__ */ e.createElement(
|
|
525
|
+
te,
|
|
526
|
+
{
|
|
527
|
+
controls: { microphone: !0, screenShare: !1, camera: !1, chat: !0 }
|
|
528
|
+
}
|
|
529
|
+
), u.showChat && /* @__PURE__ */ e.createElement(ee, null)));
|
|
530
|
+
}
|
|
531
|
+
function ct({
|
|
532
|
+
controls: s,
|
|
533
|
+
saveUserChoices: u = !0,
|
|
534
|
+
onDeviceError: i,
|
|
535
|
+
...n
|
|
536
|
+
}) {
|
|
537
|
+
const S = { leave: !0, microphone: !0, ...s }, v = X(), { microphoneTrack: m, localParticipant: f } = Le(), c = e.useMemo(() => ({
|
|
538
|
+
participant: f,
|
|
539
|
+
source: k.Source.Microphone,
|
|
540
|
+
publication: m
|
|
541
|
+
}), [f, m]);
|
|
542
|
+
v ? S.microphone ?? (S.microphone = v.canPublish) : S.microphone = !1;
|
|
543
|
+
const w = G({ className: "lk-agent-control-bar" }, n), { saveAudioInputEnabled: t, saveAudioInputDeviceId: g } = W({
|
|
544
|
+
preventSave: !u
|
|
545
|
+
}), d = e.useCallback(
|
|
546
|
+
(l, r) => {
|
|
547
|
+
r && t(l);
|
|
548
|
+
},
|
|
549
|
+
[t]
|
|
550
|
+
);
|
|
551
|
+
return /* @__PURE__ */ e.createElement("div", { ...w }, S.microphone && /* @__PURE__ */ e.createElement("div", { className: "lk-button-group" }, /* @__PURE__ */ e.createElement(
|
|
552
|
+
V,
|
|
553
|
+
{
|
|
554
|
+
source: k.Source.Microphone,
|
|
555
|
+
showIcon: !0,
|
|
556
|
+
onChange: d,
|
|
557
|
+
onDeviceError: (l) => i == null ? void 0 : i({ source: k.Source.Microphone, error: l })
|
|
558
|
+
},
|
|
559
|
+
/* @__PURE__ */ e.createElement(Ie, { trackRef: c, barCount: 7, options: { minHeight: 5 } })
|
|
560
|
+
), /* @__PURE__ */ e.createElement("div", { className: "lk-button-group-menu" }, /* @__PURE__ */ e.createElement(
|
|
561
|
+
$,
|
|
562
|
+
{
|
|
563
|
+
kind: "audioinput",
|
|
564
|
+
onActiveDeviceChange: (l, r) => g(r ?? "default")
|
|
565
|
+
}
|
|
566
|
+
))), S.leave && /* @__PURE__ */ e.createElement(z, null, "Disconnect"), /* @__PURE__ */ e.createElement(H, null));
|
|
567
|
+
}
|
|
568
|
+
export {
|
|
569
|
+
nt as AudioConference,
|
|
570
|
+
ee as Chat,
|
|
571
|
+
te as ControlBar,
|
|
572
|
+
$ as MediaDeviceMenu,
|
|
573
|
+
tt as PreJoin,
|
|
574
|
+
at as VideoConference,
|
|
575
|
+
ct as VoiceAssistantControlBar,
|
|
576
|
+
et as usePreviewDevice,
|
|
577
|
+
Ke as usePreviewTracks
|
|
578
|
+
};
|
|
579
|
+
//# sourceMappingURL=prefabs.mjs.map
|