@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.
Files changed (488) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +36 -0
  3. package/dist/assets/icons/CameraDisabledIcon.d.ts +11 -0
  4. package/dist/assets/icons/CameraDisabledIcon.d.ts.map +1 -0
  5. package/dist/assets/icons/CameraIcon.d.ts +11 -0
  6. package/dist/assets/icons/CameraIcon.d.ts.map +1 -0
  7. package/dist/assets/icons/ChatCloseIcon.d.ts +11 -0
  8. package/dist/assets/icons/ChatCloseIcon.d.ts.map +1 -0
  9. package/dist/assets/icons/ChatIcon.d.ts +11 -0
  10. package/dist/assets/icons/ChatIcon.d.ts.map +1 -0
  11. package/dist/assets/icons/Chevron.d.ts +11 -0
  12. package/dist/assets/icons/Chevron.d.ts.map +1 -0
  13. package/dist/assets/icons/FocusToggleIcon.d.ts +11 -0
  14. package/dist/assets/icons/FocusToggleIcon.d.ts.map +1 -0
  15. package/dist/assets/icons/GearIcon.d.ts +11 -0
  16. package/dist/assets/icons/GearIcon.d.ts.map +1 -0
  17. package/dist/assets/icons/LeaveIcon.d.ts +11 -0
  18. package/dist/assets/icons/LeaveIcon.d.ts.map +1 -0
  19. package/dist/assets/icons/LockLockedIcon.d.ts +11 -0
  20. package/dist/assets/icons/LockLockedIcon.d.ts.map +1 -0
  21. package/dist/assets/icons/MicDisabledIcon.d.ts +11 -0
  22. package/dist/assets/icons/MicDisabledIcon.d.ts.map +1 -0
  23. package/dist/assets/icons/MicIcon.d.ts +11 -0
  24. package/dist/assets/icons/MicIcon.d.ts.map +1 -0
  25. package/dist/assets/icons/QualityExcellentIcon.d.ts +11 -0
  26. package/dist/assets/icons/QualityExcellentIcon.d.ts.map +1 -0
  27. package/dist/assets/icons/QualityGoodIcon.d.ts +11 -0
  28. package/dist/assets/icons/QualityGoodIcon.d.ts.map +1 -0
  29. package/dist/assets/icons/QualityPoorIcon.d.ts +11 -0
  30. package/dist/assets/icons/QualityPoorIcon.d.ts.map +1 -0
  31. package/dist/assets/icons/QualityUnknownIcon.d.ts +11 -0
  32. package/dist/assets/icons/QualityUnknownIcon.d.ts.map +1 -0
  33. package/dist/assets/icons/ScreenShareIcon.d.ts +11 -0
  34. package/dist/assets/icons/ScreenShareIcon.d.ts.map +1 -0
  35. package/dist/assets/icons/ScreenShareStopIcon.d.ts +11 -0
  36. package/dist/assets/icons/ScreenShareStopIcon.d.ts.map +1 -0
  37. package/dist/assets/icons/SpinnerIcon.d.ts +11 -0
  38. package/dist/assets/icons/SpinnerIcon.d.ts.map +1 -0
  39. package/dist/assets/icons/UnfocusToggleIcon.d.ts +11 -0
  40. package/dist/assets/icons/UnfocusToggleIcon.d.ts.map +1 -0
  41. package/dist/assets/icons/index.d.ts +20 -0
  42. package/dist/assets/icons/index.d.ts.map +1 -0
  43. package/dist/assets/icons/util.d.ts +11 -0
  44. package/dist/assets/icons/util.d.ts.map +1 -0
  45. package/dist/assets/images/ParticipantPlaceholder.d.ts +11 -0
  46. package/dist/assets/images/ParticipantPlaceholder.d.ts.map +1 -0
  47. package/dist/assets/images/index.d.ts +2 -0
  48. package/dist/assets/images/index.d.ts.map +1 -0
  49. package/dist/components/ChatEntry.d.ts +35 -0
  50. package/dist/components/ChatEntry.d.ts.map +1 -0
  51. package/dist/components/ConnectionState.d.ts +23 -0
  52. package/dist/components/ConnectionState.d.ts.map +1 -0
  53. package/dist/components/ConnectionStateToast.d.ts +13 -0
  54. package/dist/components/ConnectionStateToast.d.ts.map +1 -0
  55. package/dist/components/LiveKitRoom.d.ts +92 -0
  56. package/dist/components/LiveKitRoom.d.ts.map +1 -0
  57. package/dist/components/ParticipantLoop.d.ts +28 -0
  58. package/dist/components/ParticipantLoop.d.ts.map +1 -0
  59. package/dist/components/RoomAudioRenderer.d.ts +29 -0
  60. package/dist/components/RoomAudioRenderer.d.ts.map +1 -0
  61. package/dist/components/RoomName.d.ts +20 -0
  62. package/dist/components/RoomName.d.ts.map +1 -0
  63. package/dist/components/SessionProvider.d.ts +13 -0
  64. package/dist/components/SessionProvider.d.ts.map +1 -0
  65. package/dist/components/Toast.d.ts +14 -0
  66. package/dist/components/Toast.d.ts.map +1 -0
  67. package/dist/components/TrackLoop.d.ts +26 -0
  68. package/dist/components/TrackLoop.d.ts.map +1 -0
  69. package/dist/components/controls/ChatToggle.d.ts +19 -0
  70. package/dist/components/controls/ChatToggle.d.ts.map +1 -0
  71. package/dist/components/controls/ClearPinButton.d.ts +20 -0
  72. package/dist/components/controls/ClearPinButton.d.ts.map +1 -0
  73. package/dist/components/controls/DisconnectButton.d.ts +19 -0
  74. package/dist/components/controls/DisconnectButton.d.ts.map +1 -0
  75. package/dist/components/controls/FocusToggle.d.ts +21 -0
  76. package/dist/components/controls/FocusToggle.d.ts.map +1 -0
  77. package/dist/components/controls/MediaDeviceSelect.d.ts +40 -0
  78. package/dist/components/controls/MediaDeviceSelect.d.ts.map +1 -0
  79. package/dist/components/controls/PaginationControl.d.ts +9 -0
  80. package/dist/components/controls/PaginationControl.d.ts.map +1 -0
  81. package/dist/components/controls/PaginationIndicator.d.ts +7 -0
  82. package/dist/components/controls/PaginationIndicator.d.ts.map +1 -0
  83. package/dist/components/controls/SettingsMenuToggle.d.ts +13 -0
  84. package/dist/components/controls/SettingsMenuToggle.d.ts.map +1 -0
  85. package/dist/components/controls/StartAudio.d.ts +24 -0
  86. package/dist/components/controls/StartAudio.d.ts.map +1 -0
  87. package/dist/components/controls/StartMediaButton.d.ts +22 -0
  88. package/dist/components/controls/StartMediaButton.d.ts.map +1 -0
  89. package/dist/components/controls/TrackToggle.d.ts +32 -0
  90. package/dist/components/controls/TrackToggle.d.ts.map +1 -0
  91. package/dist/components/index.d.ts +30 -0
  92. package/dist/components/index.d.ts.map +1 -0
  93. package/dist/components/layout/CarouselLayout.d.ts +27 -0
  94. package/dist/components/layout/CarouselLayout.d.ts.map +1 -0
  95. package/dist/components/layout/FocusLayout.d.ts +25 -0
  96. package/dist/components/layout/FocusLayout.d.ts.map +1 -0
  97. package/dist/components/layout/GridLayout.d.ts +26 -0
  98. package/dist/components/layout/GridLayout.d.ts.map +1 -0
  99. package/dist/components/layout/LayoutContextProvider.d.ts +12 -0
  100. package/dist/components/layout/LayoutContextProvider.d.ts.map +1 -0
  101. package/dist/components/layout/index.d.ts +4 -0
  102. package/dist/components/layout/index.d.ts.map +1 -0
  103. package/dist/components/participant/AudioTrack.d.ts +33 -0
  104. package/dist/components/participant/AudioTrack.d.ts.map +1 -0
  105. package/dist/components/participant/AudioVisualizer.d.ts +22 -0
  106. package/dist/components/participant/AudioVisualizer.d.ts.map +1 -0
  107. package/dist/components/participant/BarVisualizer.d.ts +77 -0
  108. package/dist/components/participant/BarVisualizer.d.ts.map +1 -0
  109. package/dist/components/participant/ConnectionQualityIndicator.d.ts +16 -0
  110. package/dist/components/participant/ConnectionQualityIndicator.d.ts.map +1 -0
  111. package/dist/components/participant/ParticipantAudioTile.d.ts +14 -0
  112. package/dist/components/participant/ParticipantAudioTile.d.ts.map +1 -0
  113. package/dist/components/participant/ParticipantName.d.ts +17 -0
  114. package/dist/components/participant/ParticipantName.d.ts.map +1 -0
  115. package/dist/components/participant/ParticipantTile.d.ts +49 -0
  116. package/dist/components/participant/ParticipantTile.d.ts.map +1 -0
  117. package/dist/components/participant/TrackMutedIndicator.d.ts +19 -0
  118. package/dist/components/participant/TrackMutedIndicator.d.ts.map +1 -0
  119. package/dist/components/participant/VideoTrack.d.ts +23 -0
  120. package/dist/components/participant/VideoTrack.d.ts.map +1 -0
  121. package/dist/components/participant/animationSequences/connectingSequence.d.ts +2 -0
  122. package/dist/components/participant/animationSequences/connectingSequence.d.ts.map +1 -0
  123. package/dist/components/participant/animationSequences/listeningSequence.d.ts +2 -0
  124. package/dist/components/participant/animationSequences/listeningSequence.d.ts.map +1 -0
  125. package/dist/components/participant/animationSequences/thinkingSequence.d.ts +2 -0
  126. package/dist/components/participant/animationSequences/thinkingSequence.d.ts.map +1 -0
  127. package/dist/components/participant/animators/useBarAnimator.d.ts +3 -0
  128. package/dist/components/participant/animators/useBarAnimator.d.ts.map +1 -0
  129. package/dist/components-lNrIMTWQ.mjs +1051 -0
  130. package/dist/components-lNrIMTWQ.mjs.map +1 -0
  131. package/dist/context/chat-context.d.ts +23 -0
  132. package/dist/context/chat-context.d.ts.map +1 -0
  133. package/dist/context/feature-context.d.ts +14 -0
  134. package/dist/context/feature-context.d.ts.map +1 -0
  135. package/dist/context/index.d.ts +10 -0
  136. package/dist/context/index.d.ts.map +1 -0
  137. package/dist/context/layout-context.d.ts +32 -0
  138. package/dist/context/layout-context.d.ts.map +1 -0
  139. package/dist/context/participant-context.d.ts +22 -0
  140. package/dist/context/participant-context.d.ts.map +1 -0
  141. package/dist/context/pin-context.d.ts +17 -0
  142. package/dist/context/pin-context.d.ts.map +1 -0
  143. package/dist/context/room-context.d.ts +22 -0
  144. package/dist/context/room-context.d.ts.map +1 -0
  145. package/dist/context/session-context.d.ts +22 -0
  146. package/dist/context/session-context.d.ts.map +1 -0
  147. package/dist/context/track-reference-context.d.ts +25 -0
  148. package/dist/context/track-reference-context.d.ts.map +1 -0
  149. package/dist/contexts-D4V9wQRc.mjs +4026 -0
  150. package/dist/contexts-D4V9wQRc.mjs.map +1 -0
  151. package/dist/hooks/cloud/krisp/useKrispNoiseFilter.d.ts +42 -0
  152. package/dist/hooks/cloud/krisp/useKrispNoiseFilter.d.ts.map +1 -0
  153. package/dist/hooks/index.d.ts +54 -0
  154. package/dist/hooks/index.d.ts.map +1 -0
  155. package/dist/hooks/internal/index.d.ts +10 -0
  156. package/dist/hooks/internal/index.d.ts.map +1 -0
  157. package/dist/hooks/internal/useMediaQuery.d.ts +7 -0
  158. package/dist/hooks/internal/useMediaQuery.d.ts.map +1 -0
  159. package/dist/hooks/internal/useObservableState.d.ts +6 -0
  160. package/dist/hooks/internal/useObservableState.d.ts.map +1 -0
  161. package/dist/hooks/internal/useResizeObserver.d.ts +14 -0
  162. package/dist/hooks/internal/useResizeObserver.d.ts.map +1 -0
  163. package/dist/hooks/useAgent.d.ts +219 -0
  164. package/dist/hooks/useAgent.d.ts.map +1 -0
  165. package/dist/hooks/useAudioPlayback.d.ts +15 -0
  166. package/dist/hooks/useAudioPlayback.d.ts.map +1 -0
  167. package/dist/hooks/useChat.d.ts +43 -0
  168. package/dist/hooks/useChat.d.ts.map +1 -0
  169. package/dist/hooks/useChatToggle.d.ts +21 -0
  170. package/dist/hooks/useChatToggle.d.ts.map +1 -0
  171. package/dist/hooks/useClearPinButton.d.ts +15 -0
  172. package/dist/hooks/useClearPinButton.d.ts.map +1 -0
  173. package/dist/hooks/useConnectionQualityIndicator.d.ts +20 -0
  174. package/dist/hooks/useConnectionQualityIndicator.d.ts.map +1 -0
  175. package/dist/hooks/useConnectionStatus.d.ts +12 -0
  176. package/dist/hooks/useConnectionStatus.d.ts.map +1 -0
  177. package/dist/hooks/useDataChannel.d.ts +38 -0
  178. package/dist/hooks/useDataChannel.d.ts.map +1 -0
  179. package/dist/hooks/useDisconnectButton.d.ts +21 -0
  180. package/dist/hooks/useDisconnectButton.d.ts.map +1 -0
  181. package/dist/hooks/useEvents.d.ts +9 -0
  182. package/dist/hooks/useEvents.d.ts.map +1 -0
  183. package/dist/hooks/useFacingMode.d.ts +10 -0
  184. package/dist/hooks/useFacingMode.d.ts.map +1 -0
  185. package/dist/hooks/useFocusToggle.d.ts +26 -0
  186. package/dist/hooks/useFocusToggle.d.ts.map +1 -0
  187. package/dist/hooks/useGridLayout.d.ts +27 -0
  188. package/dist/hooks/useGridLayout.d.ts.map +1 -0
  189. package/dist/hooks/useIsEncrypted.d.ts +12 -0
  190. package/dist/hooks/useIsEncrypted.d.ts.map +1 -0
  191. package/dist/hooks/useIsMuted.d.ts +22 -0
  192. package/dist/hooks/useIsMuted.d.ts.map +1 -0
  193. package/dist/hooks/useIsRecording.d.ts +11 -0
  194. package/dist/hooks/useIsRecording.d.ts.map +1 -0
  195. package/dist/hooks/useIsSpeaking.d.ts +11 -0
  196. package/dist/hooks/useIsSpeaking.d.ts.map +1 -0
  197. package/dist/hooks/useLiveKitRoom.d.ts +19 -0
  198. package/dist/hooks/useLiveKitRoom.d.ts.map +1 -0
  199. package/dist/hooks/useLocalParticipant.d.ts +29 -0
  200. package/dist/hooks/useLocalParticipant.d.ts.map +1 -0
  201. package/dist/hooks/useLocalParticipantPermissions.d.ts +12 -0
  202. package/dist/hooks/useLocalParticipantPermissions.d.ts.map +1 -0
  203. package/dist/hooks/useMediaDeviceSelect.d.ts +41 -0
  204. package/dist/hooks/useMediaDeviceSelect.d.ts.map +1 -0
  205. package/dist/hooks/useMediaDevices.d.ts +15 -0
  206. package/dist/hooks/useMediaDevices.d.ts.map +1 -0
  207. package/dist/hooks/useMediaTrackBySourceOrName.d.ts +18 -0
  208. package/dist/hooks/useMediaTrackBySourceOrName.d.ts.map +1 -0
  209. package/dist/hooks/usePagination.d.ts +24 -0
  210. package/dist/hooks/usePagination.d.ts.map +1 -0
  211. package/dist/hooks/useParticipantAttributes.d.ts +30 -0
  212. package/dist/hooks/useParticipantAttributes.d.ts.map +1 -0
  213. package/dist/hooks/useParticipantInfo.d.ts +21 -0
  214. package/dist/hooks/useParticipantInfo.d.ts.map +1 -0
  215. package/dist/hooks/useParticipantPermissions.d.ts +17 -0
  216. package/dist/hooks/useParticipantPermissions.d.ts.map +1 -0
  217. package/dist/hooks/useParticipantTile.d.ts +22 -0
  218. package/dist/hooks/useParticipantTile.d.ts.map +1 -0
  219. package/dist/hooks/useParticipantTracks.d.ts +14 -0
  220. package/dist/hooks/useParticipantTracks.d.ts.map +1 -0
  221. package/dist/hooks/useParticipants.d.ts +30 -0
  222. package/dist/hooks/useParticipants.d.ts.map +1 -0
  223. package/dist/hooks/usePersistentUserChoices.d.ts +35 -0
  224. package/dist/hooks/usePersistentUserChoices.d.ts.map +1 -0
  225. package/dist/hooks/usePinnedTracks.d.ts +14 -0
  226. package/dist/hooks/usePinnedTracks.d.ts.map +1 -0
  227. package/dist/hooks/useRemoteParticipant.d.ts +35 -0
  228. package/dist/hooks/useRemoteParticipant.d.ts.map +1 -0
  229. package/dist/hooks/useRemoteParticipants.d.ts +30 -0
  230. package/dist/hooks/useRemoteParticipants.d.ts.map +1 -0
  231. package/dist/hooks/useRoomInfo.d.ts +21 -0
  232. package/dist/hooks/useRoomInfo.d.ts.map +1 -0
  233. package/dist/hooks/useSequentialRoomConnectDisconnect.d.ts +27 -0
  234. package/dist/hooks/useSequentialRoomConnectDisconnect.d.ts.map +1 -0
  235. package/dist/hooks/useSession.d.ts +130 -0
  236. package/dist/hooks/useSession.d.ts.map +1 -0
  237. package/dist/hooks/useSessionMessages.d.ts +29 -0
  238. package/dist/hooks/useSessionMessages.d.ts.map +1 -0
  239. package/dist/hooks/useSettingsToggle.d.ts +20 -0
  240. package/dist/hooks/useSettingsToggle.d.ts.map +1 -0
  241. package/dist/hooks/useSortedParticipants.d.ts +7 -0
  242. package/dist/hooks/useSortedParticipants.d.ts.map +1 -0
  243. package/dist/hooks/useSpeakingParticipants.d.ts +16 -0
  244. package/dist/hooks/useSpeakingParticipants.d.ts.map +1 -0
  245. package/dist/hooks/useStartAudio.d.ts +27 -0
  246. package/dist/hooks/useStartAudio.d.ts.map +1 -0
  247. package/dist/hooks/useStartVideo.d.ts +26 -0
  248. package/dist/hooks/useStartVideo.d.ts.map +1 -0
  249. package/dist/hooks/useSwipe.d.ts +24 -0
  250. package/dist/hooks/useSwipe.d.ts.map +1 -0
  251. package/dist/hooks/useTextStream.d.ts +20 -0
  252. package/dist/hooks/useTextStream.d.ts.map +1 -0
  253. package/dist/hooks/useToken.d.ts +20 -0
  254. package/dist/hooks/useToken.d.ts.map +1 -0
  255. package/dist/hooks/useTrack.d.ts +4 -0
  256. package/dist/hooks/useTrack.d.ts.map +1 -0
  257. package/dist/hooks/useTrackByName.d.ts +10 -0
  258. package/dist/hooks/useTrackByName.d.ts.map +1 -0
  259. package/dist/hooks/useTrackMutedIndicator.d.ts +18 -0
  260. package/dist/hooks/useTrackMutedIndicator.d.ts.map +1 -0
  261. package/dist/hooks/useTrackRefBySourceOrName.d.ts +7 -0
  262. package/dist/hooks/useTrackRefBySourceOrName.d.ts.map +1 -0
  263. package/dist/hooks/useTrackSyncTime.d.ts +10 -0
  264. package/dist/hooks/useTrackSyncTime.d.ts.map +1 -0
  265. package/dist/hooks/useTrackToggle.d.ts +27 -0
  266. package/dist/hooks/useTrackToggle.d.ts.map +1 -0
  267. package/dist/hooks/useTrackTranscription.d.ts +26 -0
  268. package/dist/hooks/useTrackTranscription.d.ts.map +1 -0
  269. package/dist/hooks/useTrackVolume.d.ts +49 -0
  270. package/dist/hooks/useTrackVolume.d.ts.map +1 -0
  271. package/dist/hooks/useTracks.d.ts +29 -0
  272. package/dist/hooks/useTracks.d.ts.map +1 -0
  273. package/dist/hooks/useTranscriptions.d.ts +21 -0
  274. package/dist/hooks/useTranscriptions.d.ts.map +1 -0
  275. package/dist/hooks/useVisualStableUpdate.d.ts +27 -0
  276. package/dist/hooks/useVisualStableUpdate.d.ts.map +1 -0
  277. package/dist/hooks/useVoiceAssistant.d.ts +43 -0
  278. package/dist/hooks/useVoiceAssistant.d.ts.map +1 -0
  279. package/dist/hooks/useWarnAboutMissingStyles.d.ts +5 -0
  280. package/dist/hooks/useWarnAboutMissingStyles.d.ts.map +1 -0
  281. package/dist/hooks-hQJmeINB.mjs +1992 -0
  282. package/dist/hooks-hQJmeINB.mjs.map +1 -0
  283. package/dist/hooks.d.ts +2 -0
  284. package/dist/hooks.js +2 -0
  285. package/dist/hooks.js.map +1 -0
  286. package/dist/hooks.mjs +64 -0
  287. package/dist/hooks.mjs.map +1 -0
  288. package/dist/index.d.ts +9 -0
  289. package/dist/index.d.ts.map +1 -0
  290. package/dist/index.docs.d.ts +6 -0
  291. package/dist/index.docs.d.ts.map +1 -0
  292. package/dist/index.js +2 -0
  293. package/dist/index.js.map +1 -0
  294. package/dist/index.mjs +157 -0
  295. package/dist/index.mjs.map +1 -0
  296. package/dist/krisp.d.ts +2 -0
  297. package/dist/krisp.js +2 -0
  298. package/dist/krisp.js.map +1 -0
  299. package/dist/krisp.mjs +45 -0
  300. package/dist/krisp.mjs.map +1 -0
  301. package/dist/mergeProps.d.ts +25 -0
  302. package/dist/mergeProps.d.ts.map +1 -0
  303. package/dist/prefabs/AudioConference.d.ts +22 -0
  304. package/dist/prefabs/AudioConference.d.ts.map +1 -0
  305. package/dist/prefabs/Chat.d.ts +35 -0
  306. package/dist/prefabs/Chat.d.ts.map +1 -0
  307. package/dist/prefabs/ControlBar.d.ts +45 -0
  308. package/dist/prefabs/ControlBar.d.ts.map +1 -0
  309. package/dist/prefabs/MediaDeviceMenu.d.ts +36 -0
  310. package/dist/prefabs/MediaDeviceMenu.d.ts.map +1 -0
  311. package/dist/prefabs/PreJoin.d.ts +59 -0
  312. package/dist/prefabs/PreJoin.d.ts.map +1 -0
  313. package/dist/prefabs/VideoConference.d.ts +35 -0
  314. package/dist/prefabs/VideoConference.d.ts.map +1 -0
  315. package/dist/prefabs/VoiceAssistantControlBar.d.ts +32 -0
  316. package/dist/prefabs/VoiceAssistantControlBar.d.ts.map +1 -0
  317. package/dist/prefabs/index.d.ts +8 -0
  318. package/dist/prefabs/index.d.ts.map +1 -0
  319. package/dist/prefabs.d.ts +2 -0
  320. package/dist/prefabs.js +2 -0
  321. package/dist/prefabs.js.map +1 -0
  322. package/dist/prefabs.mjs +579 -0
  323. package/dist/prefabs.mjs.map +1 -0
  324. package/dist/room-BP3SCCCd.mjs +191 -0
  325. package/dist/room-BP3SCCCd.mjs.map +1 -0
  326. package/dist/shared-88J2fzv7.js +2 -0
  327. package/dist/shared-88J2fzv7.js.map +1 -0
  328. package/dist/shared-BDr0qLg4.js +4 -0
  329. package/dist/shared-BDr0qLg4.js.map +1 -0
  330. package/dist/shared-CjI_UuOX.js +2 -0
  331. package/dist/shared-CjI_UuOX.js.map +1 -0
  332. package/dist/shared-DTHOl3uJ.js +2 -0
  333. package/dist/shared-DTHOl3uJ.js.map +1 -0
  334. package/dist/utils.d.ts +19 -0
  335. package/dist/utils.d.ts.map +1 -0
  336. package/package.json +104 -0
  337. package/src/assets/icons/CameraDisabledIcon.tsx +15 -0
  338. package/src/assets/icons/CameraIcon.tsx +14 -0
  339. package/src/assets/icons/ChatCloseIcon.tsx +17 -0
  340. package/src/assets/icons/ChatIcon.tsx +25 -0
  341. package/src/assets/icons/Chevron.tsx +19 -0
  342. package/src/assets/icons/FocusToggleIcon.tsx +16 -0
  343. package/src/assets/icons/GearIcon.tsx +19 -0
  344. package/src/assets/icons/LeaveIcon.tsx +25 -0
  345. package/src/assets/icons/LockLockedIcon.tsx +19 -0
  346. package/src/assets/icons/MicDisabledIcon.tsx +15 -0
  347. package/src/assets/icons/MicIcon.tsx +19 -0
  348. package/src/assets/icons/QualityExcellentIcon.tsx +15 -0
  349. package/src/assets/icons/QualityGoodIcon.tsx +19 -0
  350. package/src/assets/icons/QualityPoorIcon.tsx +20 -0
  351. package/src/assets/icons/QualityUnknownIcon.tsx +17 -0
  352. package/src/assets/icons/ScreenShareIcon.tsx +25 -0
  353. package/src/assets/icons/ScreenShareStopIcon.tsx +21 -0
  354. package/src/assets/icons/SpinnerIcon.tsx +93 -0
  355. package/src/assets/icons/UnfocusToggleIcon.tsx +16 -0
  356. package/src/assets/icons/index.ts +19 -0
  357. package/src/assets/icons/util.tsx +47 -0
  358. package/src/assets/images/ParticipantPlaceholder.tsx +31 -0
  359. package/src/assets/images/index.ts +1 -0
  360. package/src/assets/template.js +21 -0
  361. package/src/components/ChatEntry.tsx +112 -0
  362. package/src/components/ConnectionState.tsx +36 -0
  363. package/src/components/ConnectionStateToast.tsx +47 -0
  364. package/src/components/LiveKitRoom.tsx +122 -0
  365. package/src/components/ParticipantLoop.tsx +41 -0
  366. package/src/components/RoomAudioRenderer.tsx +57 -0
  367. package/src/components/RoomName.tsx +36 -0
  368. package/src/components/SessionProvider.tsx +22 -0
  369. package/src/components/Toast.tsx +18 -0
  370. package/src/components/TrackLoop.tsx +45 -0
  371. package/src/components/controls/ChatToggle.tsx +32 -0
  372. package/src/components/controls/ClearPinButton.tsx +32 -0
  373. package/src/components/controls/DisconnectButton.tsx +32 -0
  374. package/src/components/controls/FocusToggle.tsx +54 -0
  375. package/src/components/controls/MediaDeviceSelect.tsx +144 -0
  376. package/src/components/controls/PaginationControl.tsx +51 -0
  377. package/src/components/controls/PaginationIndicator.tsx +26 -0
  378. package/src/components/controls/SettingsMenuToggle.tsx +26 -0
  379. package/src/components/controls/StartAudio.tsx +40 -0
  380. package/src/components/controls/StartMediaButton.tsx +41 -0
  381. package/src/components/controls/TrackToggle.tsx +54 -0
  382. package/src/components/index.ts +34 -0
  383. package/src/components/layout/CarouselLayout.tsx +80 -0
  384. package/src/components/layout/FocusLayout.tsx +37 -0
  385. package/src/components/layout/GridLayout.tsx +63 -0
  386. package/src/components/layout/LayoutContextProvider.tsx +36 -0
  387. package/src/components/layout/index.ts +3 -0
  388. package/src/components/participant/AudioTrack.tsx +89 -0
  389. package/src/components/participant/AudioVisualizer.tsx +67 -0
  390. package/src/components/participant/BarVisualizer.tsx +164 -0
  391. package/src/components/participant/ConnectionQualityIndicator.tsx +36 -0
  392. package/src/components/participant/ParticipantAudioTile.tsx +67 -0
  393. package/src/components/participant/ParticipantName.tsx +50 -0
  394. package/src/components/participant/ParticipantTile.tsx +192 -0
  395. package/src/components/participant/TrackMutedIndicator.tsx +53 -0
  396. package/src/components/participant/VideoTrack.tsx +92 -0
  397. package/src/components/participant/animationSequences/connectingSequence.ts +9 -0
  398. package/src/components/participant/animationSequences/listeningSequence.ts +6 -0
  399. package/src/components/participant/animationSequences/thinkingSequence.ts +12 -0
  400. package/src/components/participant/animators/useBarAnimator.ts +55 -0
  401. package/src/context/chat-context.ts +37 -0
  402. package/src/context/feature-context.ts +28 -0
  403. package/src/context/index.ts +27 -0
  404. package/src/context/layout-context.ts +72 -0
  405. package/src/context/participant-context.ts +44 -0
  406. package/src/context/pin-context.ts +27 -0
  407. package/src/context/room-context.ts +42 -0
  408. package/src/context/session-context.ts +43 -0
  409. package/src/context/track-reference-context.ts +47 -0
  410. package/src/hooks/cloud/krisp/useKrispNoiseFilter.ts +110 -0
  411. package/src/hooks/index.ts +72 -0
  412. package/src/hooks/internal/index.ts +10 -0
  413. package/src/hooks/internal/useMediaQuery.ts +46 -0
  414. package/src/hooks/internal/useObservableState.ts +24 -0
  415. package/src/hooks/internal/useResizeObserver.ts +124 -0
  416. package/src/hooks/useAgent.ts +945 -0
  417. package/src/hooks/useAudioPlayback.ts +34 -0
  418. package/src/hooks/useChat.ts +57 -0
  419. package/src/hooks/useChatToggle.ts +38 -0
  420. package/src/hooks/useClearPinButton.ts +29 -0
  421. package/src/hooks/useConnectionQualityIndicator.ts +33 -0
  422. package/src/hooks/useConnectionStatus.ts +22 -0
  423. package/src/hooks/useDataChannel.ts +73 -0
  424. package/src/hooks/useDisconnectButton.ts +36 -0
  425. package/src/hooks/useEvents.ts +39 -0
  426. package/src/hooks/useFacingMode.ts +22 -0
  427. package/src/hooks/useFocusToggle.ts +59 -0
  428. package/src/hooks/useGridLayout.ts +44 -0
  429. package/src/hooks/useIsEncrypted.ts +29 -0
  430. package/src/hooks/useIsMuted.ts +51 -0
  431. package/src/hooks/useIsRecording.ts +23 -0
  432. package/src/hooks/useIsSpeaking.ts +21 -0
  433. package/src/hooks/useLiveKitRoom.ts +186 -0
  434. package/src/hooks/useLocalParticipant.ts +73 -0
  435. package/src/hooks/useLocalParticipantPermissions.ts +24 -0
  436. package/src/hooks/useMediaDeviceSelect.ts +81 -0
  437. package/src/hooks/useMediaDevices.ts +28 -0
  438. package/src/hooks/useMediaTrackBySourceOrName.ts +97 -0
  439. package/src/hooks/usePagination.test.ts +77 -0
  440. package/src/hooks/usePagination.ts +67 -0
  441. package/src/hooks/useParticipantAttributes.ts +69 -0
  442. package/src/hooks/useParticipantInfo.ts +35 -0
  443. package/src/hooks/useParticipantPermissions.ts +29 -0
  444. package/src/hooks/useParticipantTile.ts +81 -0
  445. package/src/hooks/useParticipantTracks.ts +54 -0
  446. package/src/hooks/useParticipants.ts +42 -0
  447. package/src/hooks/usePersistentUserChoices.ts +64 -0
  448. package/src/hooks/usePinnedTracks.ts +24 -0
  449. package/src/hooks/useRemoteParticipant.ts +79 -0
  450. package/src/hooks/useRemoteParticipants.ts +45 -0
  451. package/src/hooks/useRoomInfo.ts +32 -0
  452. package/src/hooks/useSequentialRoomConnectDisconnect.ts +171 -0
  453. package/src/hooks/useSession.ts +642 -0
  454. package/src/hooks/useSessionMessages.ts +158 -0
  455. package/src/hooks/useSettingsToggle.ts +32 -0
  456. package/src/hooks/useSortedParticipants.ts +20 -0
  457. package/src/hooks/useSpeakingParticipants.ts +27 -0
  458. package/src/hooks/useStartAudio.ts +50 -0
  459. package/src/hooks/useStartVideo.ts +49 -0
  460. package/src/hooks/useSwipe.ts +68 -0
  461. package/src/hooks/useTextStream.ts +35 -0
  462. package/src/hooks/useToken.ts +54 -0
  463. package/src/hooks/useTrack.ts +11 -0
  464. package/src/hooks/useTrackByName.ts +15 -0
  465. package/src/hooks/useTrackMutedIndicator.ts +44 -0
  466. package/src/hooks/useTrackRefBySourceOrName.ts +30 -0
  467. package/src/hooks/useTrackSyncTime.ts +18 -0
  468. package/src/hooks/useTrackToggle.ts +93 -0
  469. package/src/hooks/useTrackTranscription.ts +75 -0
  470. package/src/hooks/useTrackVolume.ts +283 -0
  471. package/src/hooks/useTracks.test.ts +60 -0
  472. package/src/hooks/useTracks.ts +154 -0
  473. package/src/hooks/useTranscriptions.ts +48 -0
  474. package/src/hooks/useVisualStableUpdate.ts +63 -0
  475. package/src/hooks/useVoiceAssistant.ts +109 -0
  476. package/src/hooks/useWarnAboutMissingStyles.ts +11 -0
  477. package/src/index.docs.ts +12 -0
  478. package/src/index.ts +32 -0
  479. package/src/mergeProps.ts +87 -0
  480. package/src/prefabs/AudioConference.tsx +57 -0
  481. package/src/prefabs/Chat.tsx +153 -0
  482. package/src/prefabs/ControlBar.tsx +227 -0
  483. package/src/prefabs/MediaDeviceMenu.tsx +159 -0
  484. package/src/prefabs/PreJoin.tsx +439 -0
  485. package/src/prefabs/VideoConference.tsx +184 -0
  486. package/src/prefabs/VoiceAssistantControlBar.tsx +109 -0
  487. package/src/prefabs/index.ts +11 -0
  488. package/src/utils.ts +78 -0
@@ -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