@wix/legends-platform-sdk 1.0.0

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 (785) hide show
  1. package/README.md +186 -0
  2. package/components/package.json +5 -0
  3. package/dist/cjs/components/Audio/Audio.js +31 -0
  4. package/dist/cjs/components/Audio/Audio.js.map +1 -0
  5. package/dist/cjs/components/Audio/index.js +10 -0
  6. package/dist/cjs/components/Audio/index.js.map +1 -0
  7. package/dist/cjs/components/ChromaKey/ChromaKey.js +127 -0
  8. package/dist/cjs/components/ChromaKey/ChromaKey.js.map +1 -0
  9. package/dist/cjs/components/ChromaKey/chroma-key.js +99 -0
  10. package/dist/cjs/components/ChromaKey/chroma-key.js.map +1 -0
  11. package/dist/cjs/components/ChromaKey/index.js +10 -0
  12. package/dist/cjs/components/ChromaKey/index.js.map +1 -0
  13. package/dist/cjs/components/ChromaKey/shaders/chroma-key.shader.js +44 -0
  14. package/dist/cjs/components/ChromaKey/shaders/chroma-key.shader.js.map +1 -0
  15. package/dist/cjs/components/ChromaKey/shaders/index.js +10 -0
  16. package/dist/cjs/components/ChromaKey/shaders/index.js.map +1 -0
  17. package/dist/cjs/components/ChromaKey/shaders/vertex-align.shader.js +12 -0
  18. package/dist/cjs/components/ChromaKey/shaders/vertex-align.shader.js.map +1 -0
  19. package/dist/cjs/components/ChromaKey/types.js +4 -0
  20. package/dist/cjs/components/ChromaKey/types.js.map +1 -0
  21. package/dist/cjs/components/LegendsPlatform/LegendsPlatform.js +91 -0
  22. package/dist/cjs/components/LegendsPlatform/LegendsPlatform.js.map +1 -0
  23. package/dist/cjs/components/LegendsPlatform/index.js +10 -0
  24. package/dist/cjs/components/LegendsPlatform/index.js.map +1 -0
  25. package/dist/cjs/components/LegendsPlatformQLess/LegendsPlatform.js +69 -0
  26. package/dist/cjs/components/LegendsPlatformQLess/LegendsPlatform.js.map +1 -0
  27. package/dist/cjs/components/LegendsPlatformQLess/index.js +10 -0
  28. package/dist/cjs/components/LegendsPlatformQLess/index.js.map +1 -0
  29. package/dist/cjs/components/Video/Video.js +88 -0
  30. package/dist/cjs/components/Video/Video.js.map +1 -0
  31. package/dist/cjs/components/Video/index.js +16 -0
  32. package/dist/cjs/components/Video/index.js.map +1 -0
  33. package/dist/cjs/components/Video/types.js +4 -0
  34. package/dist/cjs/components/Video/types.js.map +1 -0
  35. package/dist/cjs/components/Video/useAttachVideo.js +33 -0
  36. package/dist/cjs/components/Video/useAttachVideo.js.map +1 -0
  37. package/dist/cjs/components/VideoPostProcessor/VideoPostProcessor.js +61 -0
  38. package/dist/cjs/components/VideoPostProcessor/VideoPostProcessor.js.map +1 -0
  39. package/dist/cjs/components/VideoPostProcessor/effects.js +30 -0
  40. package/dist/cjs/components/VideoPostProcessor/effects.js.map +1 -0
  41. package/dist/cjs/components/VideoPostProcessor/index.js +10 -0
  42. package/dist/cjs/components/VideoPostProcessor/index.js.map +1 -0
  43. package/dist/cjs/components/VideoPreview/VideoPreview.js +68 -0
  44. package/dist/cjs/components/VideoPreview/VideoPreview.js.map +1 -0
  45. package/dist/cjs/components/VideoPreview/index.js +16 -0
  46. package/dist/cjs/components/VideoPreview/index.js.map +1 -0
  47. package/dist/cjs/components/VideoPreview/types.js +4 -0
  48. package/dist/cjs/components/VideoPreview/types.js.map +1 -0
  49. package/dist/cjs/components/VideoPreview/useVideoPreviewStream.js +85 -0
  50. package/dist/cjs/components/VideoPreview/useVideoPreviewStream.js.map +1 -0
  51. package/dist/cjs/components.js +34 -0
  52. package/dist/cjs/components.js.map +1 -0
  53. package/dist/cjs/conversation/index.js +18 -0
  54. package/dist/cjs/conversation/index.js.map +1 -0
  55. package/dist/cjs/conversation/state.js +24 -0
  56. package/dist/cjs/conversation/state.js.map +1 -0
  57. package/dist/cjs/conversation/types.js +4 -0
  58. package/dist/cjs/conversation/types.js.map +1 -0
  59. package/dist/cjs/conversation/utils.js +25 -0
  60. package/dist/cjs/conversation/utils.js.map +1 -0
  61. package/dist/cjs/external-types.d.js +2 -0
  62. package/dist/cjs/external-types.d.js.map +1 -0
  63. package/dist/cjs/hooks/index.js +58 -0
  64. package/dist/cjs/hooks/index.js.map +1 -0
  65. package/dist/cjs/hooks/useActivityState/index.js +10 -0
  66. package/dist/cjs/hooks/useActivityState/index.js.map +1 -0
  67. package/dist/cjs/hooks/useActivityState/useActivityState.js +15 -0
  68. package/dist/cjs/hooks/useActivityState/useActivityState.js.map +1 -0
  69. package/dist/cjs/hooks/useAudio/index.js +10 -0
  70. package/dist/cjs/hooks/useAudio/index.js.map +1 -0
  71. package/dist/cjs/hooks/useAudio/useAudio.js +28 -0
  72. package/dist/cjs/hooks/useAudio/useAudio.js.map +1 -0
  73. package/dist/cjs/hooks/useAudioLevel/helpers.js +28 -0
  74. package/dist/cjs/hooks/useAudioLevel/helpers.js.map +1 -0
  75. package/dist/cjs/hooks/useAudioLevel/index.js +10 -0
  76. package/dist/cjs/hooks/useAudioLevel/index.js.map +1 -0
  77. package/dist/cjs/hooks/useAudioLevel/types.js +4 -0
  78. package/dist/cjs/hooks/useAudioLevel/types.js.map +1 -0
  79. package/dist/cjs/hooks/useAudioLevel/useAudioLevel.js +49 -0
  80. package/dist/cjs/hooks/useAudioLevel/useAudioLevel.js.map +1 -0
  81. package/dist/cjs/hooks/useCamera/index.js +10 -0
  82. package/dist/cjs/hooks/useCamera/index.js.map +1 -0
  83. package/dist/cjs/hooks/useCamera/useCamera.js +32 -0
  84. package/dist/cjs/hooks/useCamera/useCamera.js.map +1 -0
  85. package/dist/cjs/hooks/useConnectionState/index.js +10 -0
  86. package/dist/cjs/hooks/useConnectionState/index.js.map +1 -0
  87. package/dist/cjs/hooks/useConnectionState/useConnectionState.js +15 -0
  88. package/dist/cjs/hooks/useConnectionState/useConnectionState.js.map +1 -0
  89. package/dist/cjs/hooks/useConversation/index.js +16 -0
  90. package/dist/cjs/hooks/useConversation/index.js.map +1 -0
  91. package/dist/cjs/hooks/useConversation/livekit/constants.js +15 -0
  92. package/dist/cjs/hooks/useConversation/livekit/constants.js.map +1 -0
  93. package/dist/cjs/hooks/useConversation/livekit/types.js +4 -0
  94. package/dist/cjs/hooks/useConversation/livekit/types.js.map +1 -0
  95. package/dist/cjs/hooks/useConversation/livekit/useConversation.js +371 -0
  96. package/dist/cjs/hooks/useConversation/livekit/useConversation.js.map +1 -0
  97. package/dist/cjs/hooks/useConversation/livekit/utils/dataChannel.js +25 -0
  98. package/dist/cjs/hooks/useConversation/livekit/utils/dataChannel.js.map +1 -0
  99. package/dist/cjs/hooks/useConversation/livekit/utils/index.js +40 -0
  100. package/dist/cjs/hooks/useConversation/livekit/utils/index.js.map +1 -0
  101. package/dist/cjs/hooks/useConversation/livekit/utils/messaging.js +11 -0
  102. package/dist/cjs/hooks/useConversation/livekit/utils/messaging.js.map +1 -0
  103. package/dist/cjs/hooks/useConversation/livekit/utils/participants.js +34 -0
  104. package/dist/cjs/hooks/useConversation/livekit/utils/participants.js.map +1 -0
  105. package/dist/cjs/hooks/useConversation/livekit/utils/serialization.js +13 -0
  106. package/dist/cjs/hooks/useConversation/livekit/utils/serialization.js.map +1 -0
  107. package/dist/cjs/hooks/useConversation/livekit/utils/toolAdapter.js +18 -0
  108. package/dist/cjs/hooks/useConversation/livekit/utils/toolAdapter.js.map +1 -0
  109. package/dist/cjs/hooks/useConversation/livekit/utils/transcriptions.js +15 -0
  110. package/dist/cjs/hooks/useConversation/livekit/utils/transcriptions.js.map +1 -0
  111. package/dist/cjs/hooks/useConversation/types.js +4 -0
  112. package/dist/cjs/hooks/useConversation/types.js.map +1 -0
  113. package/dist/cjs/hooks/useConversation/useConversation.js +99 -0
  114. package/dist/cjs/hooks/useConversation/useConversation.js.map +1 -0
  115. package/dist/cjs/hooks/useConversationEvents/index.js +22 -0
  116. package/dist/cjs/hooks/useConversationEvents/index.js.map +1 -0
  117. package/dist/cjs/hooks/useConversationEvents/types.js +4 -0
  118. package/dist/cjs/hooks/useConversationEvents/types.js.map +1 -0
  119. package/dist/cjs/hooks/useConversationEvents/useConversationEvent.js +11 -0
  120. package/dist/cjs/hooks/useConversationEvents/useConversationEvent.js.map +1 -0
  121. package/dist/cjs/hooks/useConversationEvents/useConversationEvents.js +20 -0
  122. package/dist/cjs/hooks/useConversationEvents/useConversationEvents.js.map +1 -0
  123. package/dist/cjs/hooks/useConversationEvents/useEmitConversationEvent.js +13 -0
  124. package/dist/cjs/hooks/useConversationEvents/useEmitConversationEvent.js.map +1 -0
  125. package/dist/cjs/hooks/useConversationStatus/index.js +10 -0
  126. package/dist/cjs/hooks/useConversationStatus/index.js.map +1 -0
  127. package/dist/cjs/hooks/useConversationStatus/useConversationStatus.js +10 -0
  128. package/dist/cjs/hooks/useConversationStatus/useConversationStatus.js.map +1 -0
  129. package/dist/cjs/hooks/useConversationTimer/index.js +10 -0
  130. package/dist/cjs/hooks/useConversationTimer/index.js.map +1 -0
  131. package/dist/cjs/hooks/useConversationTimer/useConversationTimer.js +45 -0
  132. package/dist/cjs/hooks/useConversationTimer/useConversationTimer.js.map +1 -0
  133. package/dist/cjs/hooks/useCreateConversation/helpers.js +8 -0
  134. package/dist/cjs/hooks/useCreateConversation/helpers.js.map +1 -0
  135. package/dist/cjs/hooks/useCreateConversation/index.js +10 -0
  136. package/dist/cjs/hooks/useCreateConversation/index.js.map +1 -0
  137. package/dist/cjs/hooks/useCreateConversation/useCreateConversation.js +104 -0
  138. package/dist/cjs/hooks/useCreateConversation/useCreateConversation.js.map +1 -0
  139. package/dist/cjs/hooks/useDeviceSwitcher/index.js +10 -0
  140. package/dist/cjs/hooks/useDeviceSwitcher/index.js.map +1 -0
  141. package/dist/cjs/hooks/useDeviceSwitcher/useDeviceSwitcher.js +31 -0
  142. package/dist/cjs/hooks/useDeviceSwitcher/useDeviceSwitcher.js.map +1 -0
  143. package/dist/cjs/hooks/useDevices/index.js +10 -0
  144. package/dist/cjs/hooks/useDevices/index.js.map +1 -0
  145. package/dist/cjs/hooks/useDevices/useDevices.js +49 -0
  146. package/dist/cjs/hooks/useDevices/useDevices.js.map +1 -0
  147. package/dist/cjs/hooks/useMediaPermissions/index.js +10 -0
  148. package/dist/cjs/hooks/useMediaPermissions/index.js.map +1 -0
  149. package/dist/cjs/hooks/useMediaPermissions/types.js +4 -0
  150. package/dist/cjs/hooks/useMediaPermissions/types.js.map +1 -0
  151. package/dist/cjs/hooks/useMediaPermissions/useMediaPermissions.js +46 -0
  152. package/dist/cjs/hooks/useMediaPermissions/useMediaPermissions.js.map +1 -0
  153. package/dist/cjs/hooks/useMediaRecorder/index.js +10 -0
  154. package/dist/cjs/hooks/useMediaRecorder/index.js.map +1 -0
  155. package/dist/cjs/hooks/useMediaRecorder/useMediaRecorder.js +229 -0
  156. package/dist/cjs/hooks/useMediaRecorder/useMediaRecorder.js.map +1 -0
  157. package/dist/cjs/hooks/useMediaRecorder/useReactRecorder.js +298 -0
  158. package/dist/cjs/hooks/useMediaRecorder/useReactRecorder.js.map +1 -0
  159. package/dist/cjs/hooks/useMicrophone/index.js +10 -0
  160. package/dist/cjs/hooks/useMicrophone/index.js.map +1 -0
  161. package/dist/cjs/hooks/useMicrophone/useMicrophone.js +38 -0
  162. package/dist/cjs/hooks/useMicrophone/useMicrophone.js.map +1 -0
  163. package/dist/cjs/hooks/useParticipantTrack/index.js +10 -0
  164. package/dist/cjs/hooks/useParticipantTrack/index.js.map +1 -0
  165. package/dist/cjs/hooks/useParticipantTrack/useParticipantTrack.js +32 -0
  166. package/dist/cjs/hooks/useParticipantTrack/useParticipantTrack.js.map +1 -0
  167. package/dist/cjs/hooks/usePictureInPicture/index.js +13 -0
  168. package/dist/cjs/hooks/usePictureInPicture/index.js.map +1 -0
  169. package/dist/cjs/hooks/usePictureInPicture/state.js +14 -0
  170. package/dist/cjs/hooks/usePictureInPicture/state.js.map +1 -0
  171. package/dist/cjs/hooks/usePictureInPicture/types.js +4 -0
  172. package/dist/cjs/hooks/usePictureInPicture/types.js.map +1 -0
  173. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.js +45 -0
  174. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.js.map +1 -0
  175. package/dist/cjs/hooks/usePictureInPicture/usePictureInPictureAuto.js +116 -0
  176. package/dist/cjs/hooks/usePictureInPicture/usePictureInPictureAuto.js.map +1 -0
  177. package/dist/cjs/hooks/useScreenShare/index.js +10 -0
  178. package/dist/cjs/hooks/useScreenShare/index.js.map +1 -0
  179. package/dist/cjs/hooks/useScreenShare/useScreenShare.js +45 -0
  180. package/dist/cjs/hooks/useScreenShare/useScreenShare.js.map +1 -0
  181. package/dist/cjs/hooks/useSpeaker/index.js +10 -0
  182. package/dist/cjs/hooks/useSpeaker/index.js.map +1 -0
  183. package/dist/cjs/hooks/useSpeaker/useSpeaker.js +31 -0
  184. package/dist/cjs/hooks/useSpeaker/useSpeaker.js.map +1 -0
  185. package/dist/cjs/hooks/useTextChat/index.js +10 -0
  186. package/dist/cjs/hooks/useTextChat/index.js.map +1 -0
  187. package/dist/cjs/hooks/useTextChat/usePendingMessages.js +23 -0
  188. package/dist/cjs/hooks/useTextChat/usePendingMessages.js.map +1 -0
  189. package/dist/cjs/hooks/useTextChat/useTextChat.js +62 -0
  190. package/dist/cjs/hooks/useTextChat/useTextChat.js.map +1 -0
  191. package/dist/cjs/hooks/useTextChat/useToolAwareSend.js +33 -0
  192. package/dist/cjs/hooks/useTextChat/useToolAwareSend.js.map +1 -0
  193. package/dist/cjs/hooks/useTools/index.js +9 -0
  194. package/dist/cjs/hooks/useTools/index.js.map +1 -0
  195. package/dist/cjs/hooks/useTools/model/errors.js +12 -0
  196. package/dist/cjs/hooks/useTools/model/errors.js.map +1 -0
  197. package/dist/cjs/hooks/useTools/model/types.js +4 -0
  198. package/dist/cjs/hooks/useTools/model/types.js.map +1 -0
  199. package/dist/cjs/hooks/useTools/public/useTools.js +11 -0
  200. package/dist/cjs/hooks/useTools/public/useTools.js.map +1 -0
  201. package/dist/cjs/hooks/useTools/runtime/createToolRuntimeSession.js +74 -0
  202. package/dist/cjs/hooks/useTools/runtime/createToolRuntimeSession.js.map +1 -0
  203. package/dist/cjs/hooks/useTools/runtime/executeToolCall.js +33 -0
  204. package/dist/cjs/hooks/useTools/runtime/executeToolCall.js.map +1 -0
  205. package/dist/cjs/hooks/useTools/runtime/executeToolCallBatch.js +41 -0
  206. package/dist/cjs/hooks/useTools/runtime/executeToolCallBatch.js.map +1 -0
  207. package/dist/cjs/hooks/useTools/runtime/types.js +4 -0
  208. package/dist/cjs/hooks/useTools/runtime/types.js.map +1 -0
  209. package/dist/cjs/hooks/useTools/runtime/useToolCallingRuntime.js +59 -0
  210. package/dist/cjs/hooks/useTools/runtime/useToolCallingRuntime.js.map +1 -0
  211. package/dist/cjs/hooks/useTools/store/state.js +30 -0
  212. package/dist/cjs/hooks/useTools/store/state.js.map +1 -0
  213. package/dist/cjs/hooks/useTools/utils/normalizeFunctionCall.js +22 -0
  214. package/dist/cjs/hooks/useTools/utils/normalizeFunctionCall.js.map +1 -0
  215. package/dist/cjs/hooks/useTools/utils/serialize.js +28 -0
  216. package/dist/cjs/hooks/useTools/utils/serialize.js.map +1 -0
  217. package/dist/cjs/hooks/useTranscriptions/index.js +16 -0
  218. package/dist/cjs/hooks/useTranscriptions/index.js.map +1 -0
  219. package/dist/cjs/hooks/useTranscriptions/types.js +4 -0
  220. package/dist/cjs/hooks/useTranscriptions/types.js.map +1 -0
  221. package/dist/cjs/hooks/useTranscriptions/useTranscription.js +16 -0
  222. package/dist/cjs/hooks/useTranscriptions/useTranscription.js.map +1 -0
  223. package/dist/cjs/hooks/useTranscriptions/useTranscriptions.js +18 -0
  224. package/dist/cjs/hooks/useTranscriptions/useTranscriptions.js.map +1 -0
  225. package/dist/cjs/hooks/useUserActivity/index.js +10 -0
  226. package/dist/cjs/hooks/useUserActivity/index.js.map +1 -0
  227. package/dist/cjs/hooks/useUserActivity/useUserActivity.js +23 -0
  228. package/dist/cjs/hooks/useUserActivity/useUserActivity.js.map +1 -0
  229. package/dist/cjs/livekit/components.js +10 -0
  230. package/dist/cjs/livekit/components.js.map +1 -0
  231. package/dist/cjs/livekit/sdk.js +10 -0
  232. package/dist/cjs/livekit/sdk.js.map +1 -0
  233. package/dist/cjs/sdk-consumer/context.js +15 -0
  234. package/dist/cjs/sdk-consumer/context.js.map +1 -0
  235. package/dist/cjs/sdk-consumer/index.js +10 -0
  236. package/dist/cjs/sdk-consumer/index.js.map +1 -0
  237. package/dist/cjs/sdk.js +148 -0
  238. package/dist/cjs/sdk.js.map +1 -0
  239. package/dist/cjs/services/FetchPersonaChatService.js +139 -0
  240. package/dist/cjs/services/FetchPersonaChatService.js.map +1 -0
  241. package/dist/cjs/test-types.d.js +2 -0
  242. package/dist/cjs/test-types.d.js.map +1 -0
  243. package/dist/cjs/types/http.js +14 -0
  244. package/dist/cjs/types/http.js.map +1 -0
  245. package/dist/cjs/types/index.js +7 -0
  246. package/dist/cjs/types/index.js.map +1 -0
  247. package/dist/cjs/types/service.js +4 -0
  248. package/dist/cjs/types/service.js.map +1 -0
  249. package/dist/cjs/utils/captureImage/captureImage.js +29 -0
  250. package/dist/cjs/utils/captureImage/captureImage.js.map +1 -0
  251. package/dist/cjs/utils/captureImage/helpers.js +74 -0
  252. package/dist/cjs/utils/captureImage/helpers.js.map +1 -0
  253. package/dist/cjs/utils/captureImage/index.js +16 -0
  254. package/dist/cjs/utils/captureImage/index.js.map +1 -0
  255. package/dist/cjs/utils/captureImage/types.js +4 -0
  256. package/dist/cjs/utils/captureImage/types.js.map +1 -0
  257. package/dist/cjs/utils/compatibility/compatibility.js +17 -0
  258. package/dist/cjs/utils/compatibility/compatibility.js.map +1 -0
  259. package/dist/cjs/utils/compatibility/index.js +10 -0
  260. package/dist/cjs/utils/compatibility/index.js.map +1 -0
  261. package/dist/cjs/utils.js +10 -0
  262. package/dist/cjs/utils.js.map +1 -0
  263. package/dist/esm/components/Audio/Audio.js +18 -0
  264. package/dist/esm/components/Audio/Audio.js.map +1 -0
  265. package/dist/esm/components/Audio/index.js +2 -0
  266. package/dist/esm/components/Audio/index.js.map +1 -0
  267. package/dist/esm/components/ChromaKey/ChromaKey.js +115 -0
  268. package/dist/esm/components/ChromaKey/ChromaKey.js.map +1 -0
  269. package/dist/esm/components/ChromaKey/chroma-key.js +91 -0
  270. package/dist/esm/components/ChromaKey/chroma-key.js.map +1 -0
  271. package/dist/esm/components/ChromaKey/index.js +2 -0
  272. package/dist/esm/components/ChromaKey/index.js.map +1 -0
  273. package/dist/esm/components/ChromaKey/shaders/chroma-key.shader.js +40 -0
  274. package/dist/esm/components/ChromaKey/shaders/chroma-key.shader.js.map +1 -0
  275. package/dist/esm/components/ChromaKey/shaders/index.js +3 -0
  276. package/dist/esm/components/ChromaKey/shaders/index.js.map +1 -0
  277. package/dist/esm/components/ChromaKey/shaders/vertex-align.shader.js +8 -0
  278. package/dist/esm/components/ChromaKey/shaders/vertex-align.shader.js.map +1 -0
  279. package/dist/esm/components/ChromaKey/types.js +2 -0
  280. package/dist/esm/components/ChromaKey/types.js.map +1 -0
  281. package/dist/esm/components/LegendsPlatform/LegendsPlatform.js +53 -0
  282. package/dist/esm/components/LegendsPlatform/LegendsPlatform.js.map +1 -0
  283. package/dist/esm/components/LegendsPlatform/index.js +2 -0
  284. package/dist/esm/components/LegendsPlatform/index.js.map +1 -0
  285. package/dist/esm/components/LegendsPlatformQLess/LegendsPlatform.js +30 -0
  286. package/dist/esm/components/LegendsPlatformQLess/LegendsPlatform.js.map +1 -0
  287. package/dist/esm/components/LegendsPlatformQLess/index.js +2 -0
  288. package/dist/esm/components/LegendsPlatformQLess/index.js.map +1 -0
  289. package/dist/esm/components/Video/Video.js +73 -0
  290. package/dist/esm/components/Video/Video.js.map +1 -0
  291. package/dist/esm/components/Video/index.js +3 -0
  292. package/dist/esm/components/Video/index.js.map +1 -0
  293. package/dist/esm/components/Video/types.js +2 -0
  294. package/dist/esm/components/Video/types.js.map +1 -0
  295. package/dist/esm/components/Video/useAttachVideo.js +27 -0
  296. package/dist/esm/components/Video/useAttachVideo.js.map +1 -0
  297. package/dist/esm/components/VideoPostProcessor/VideoPostProcessor.js +47 -0
  298. package/dist/esm/components/VideoPostProcessor/VideoPostProcessor.js.map +1 -0
  299. package/dist/esm/components/VideoPostProcessor/effects.js +25 -0
  300. package/dist/esm/components/VideoPostProcessor/effects.js.map +1 -0
  301. package/dist/esm/components/VideoPostProcessor/index.js +2 -0
  302. package/dist/esm/components/VideoPostProcessor/index.js.map +1 -0
  303. package/dist/esm/components/VideoPreview/VideoPreview.js +48 -0
  304. package/dist/esm/components/VideoPreview/VideoPreview.js.map +1 -0
  305. package/dist/esm/components/VideoPreview/index.js +3 -0
  306. package/dist/esm/components/VideoPreview/index.js.map +1 -0
  307. package/dist/esm/components/VideoPreview/types.js +2 -0
  308. package/dist/esm/components/VideoPreview/types.js.map +1 -0
  309. package/dist/esm/components/VideoPreview/useVideoPreviewStream.js +85 -0
  310. package/dist/esm/components/VideoPreview/useVideoPreviewStream.js.map +1 -0
  311. package/dist/esm/components.js +6 -0
  312. package/dist/esm/components.js.map +1 -0
  313. package/dist/esm/conversation/index.js +4 -0
  314. package/dist/esm/conversation/index.js.map +1 -0
  315. package/dist/esm/conversation/state.js +20 -0
  316. package/dist/esm/conversation/state.js.map +1 -0
  317. package/dist/esm/conversation/types.js +2 -0
  318. package/dist/esm/conversation/types.js.map +1 -0
  319. package/dist/esm/conversation/utils.js +21 -0
  320. package/dist/esm/conversation/utils.js.map +1 -0
  321. package/dist/esm/external-types.d.js +2 -0
  322. package/dist/esm/external-types.d.js.map +1 -0
  323. package/dist/esm/hooks/index.js +10 -0
  324. package/dist/esm/hooks/index.js.map +1 -0
  325. package/dist/esm/hooks/useActivityState/index.js +2 -0
  326. package/dist/esm/hooks/useActivityState/index.js.map +1 -0
  327. package/dist/esm/hooks/useActivityState/useActivityState.js +11 -0
  328. package/dist/esm/hooks/useActivityState/useActivityState.js.map +1 -0
  329. package/dist/esm/hooks/useAudio/index.js +2 -0
  330. package/dist/esm/hooks/useAudio/index.js.map +1 -0
  331. package/dist/esm/hooks/useAudio/useAudio.js +26 -0
  332. package/dist/esm/hooks/useAudio/useAudio.js.map +1 -0
  333. package/dist/esm/hooks/useAudioLevel/helpers.js +23 -0
  334. package/dist/esm/hooks/useAudioLevel/helpers.js.map +1 -0
  335. package/dist/esm/hooks/useAudioLevel/index.js +2 -0
  336. package/dist/esm/hooks/useAudioLevel/index.js.map +1 -0
  337. package/dist/esm/hooks/useAudioLevel/types.js +2 -0
  338. package/dist/esm/hooks/useAudioLevel/types.js.map +1 -0
  339. package/dist/esm/hooks/useAudioLevel/useAudioLevel.js +43 -0
  340. package/dist/esm/hooks/useAudioLevel/useAudioLevel.js.map +1 -0
  341. package/dist/esm/hooks/useCamera/index.js +2 -0
  342. package/dist/esm/hooks/useCamera/index.js.map +1 -0
  343. package/dist/esm/hooks/useCamera/useCamera.js +29 -0
  344. package/dist/esm/hooks/useCamera/useCamera.js.map +1 -0
  345. package/dist/esm/hooks/useConnectionState/index.js +2 -0
  346. package/dist/esm/hooks/useConnectionState/index.js.map +1 -0
  347. package/dist/esm/hooks/useConnectionState/useConnectionState.js +11 -0
  348. package/dist/esm/hooks/useConnectionState/useConnectionState.js.map +1 -0
  349. package/dist/esm/hooks/useConversation/index.js +3 -0
  350. package/dist/esm/hooks/useConversation/index.js.map +1 -0
  351. package/dist/esm/hooks/useConversation/livekit/constants.js +11 -0
  352. package/dist/esm/hooks/useConversation/livekit/constants.js.map +1 -0
  353. package/dist/esm/hooks/useConversation/livekit/types.js +2 -0
  354. package/dist/esm/hooks/useConversation/livekit/types.js.map +1 -0
  355. package/dist/esm/hooks/useConversation/livekit/useConversation.js +377 -0
  356. package/dist/esm/hooks/useConversation/livekit/useConversation.js.map +1 -0
  357. package/dist/esm/hooks/useConversation/livekit/utils/dataChannel.js +18 -0
  358. package/dist/esm/hooks/useConversation/livekit/utils/dataChannel.js.map +1 -0
  359. package/dist/esm/hooks/useConversation/livekit/utils/index.js +7 -0
  360. package/dist/esm/hooks/useConversation/livekit/utils/index.js.map +1 -0
  361. package/dist/esm/hooks/useConversation/livekit/utils/messaging.js +7 -0
  362. package/dist/esm/hooks/useConversation/livekit/utils/messaging.js.map +1 -0
  363. package/dist/esm/hooks/useConversation/livekit/utils/participants.js +28 -0
  364. package/dist/esm/hooks/useConversation/livekit/utils/participants.js.map +1 -0
  365. package/dist/esm/hooks/useConversation/livekit/utils/serialization.js +9 -0
  366. package/dist/esm/hooks/useConversation/livekit/utils/serialization.js.map +1 -0
  367. package/dist/esm/hooks/useConversation/livekit/utils/toolAdapter.js +14 -0
  368. package/dist/esm/hooks/useConversation/livekit/utils/toolAdapter.js.map +1 -0
  369. package/dist/esm/hooks/useConversation/livekit/utils/transcriptions.js +11 -0
  370. package/dist/esm/hooks/useConversation/livekit/utils/transcriptions.js.map +1 -0
  371. package/dist/esm/hooks/useConversation/types.js +2 -0
  372. package/dist/esm/hooks/useConversation/types.js.map +1 -0
  373. package/dist/esm/hooks/useConversation/useConversation.js +93 -0
  374. package/dist/esm/hooks/useConversation/useConversation.js.map +1 -0
  375. package/dist/esm/hooks/useConversationEvents/index.js +4 -0
  376. package/dist/esm/hooks/useConversationEvents/index.js.map +1 -0
  377. package/dist/esm/hooks/useConversationEvents/types.js +2 -0
  378. package/dist/esm/hooks/useConversationEvents/types.js.map +1 -0
  379. package/dist/esm/hooks/useConversationEvents/useConversationEvent.js +7 -0
  380. package/dist/esm/hooks/useConversationEvents/useConversationEvent.js.map +1 -0
  381. package/dist/esm/hooks/useConversationEvents/useConversationEvents.js +20 -0
  382. package/dist/esm/hooks/useConversationEvents/useConversationEvents.js.map +1 -0
  383. package/dist/esm/hooks/useConversationEvents/useEmitConversationEvent.js +9 -0
  384. package/dist/esm/hooks/useConversationEvents/useEmitConversationEvent.js.map +1 -0
  385. package/dist/esm/hooks/useConversationStatus/index.js +2 -0
  386. package/dist/esm/hooks/useConversationStatus/index.js.map +1 -0
  387. package/dist/esm/hooks/useConversationStatus/useConversationStatus.js +6 -0
  388. package/dist/esm/hooks/useConversationStatus/useConversationStatus.js.map +1 -0
  389. package/dist/esm/hooks/useConversationTimer/index.js +2 -0
  390. package/dist/esm/hooks/useConversationTimer/index.js.map +1 -0
  391. package/dist/esm/hooks/useConversationTimer/useConversationTimer.js +44 -0
  392. package/dist/esm/hooks/useConversationTimer/useConversationTimer.js.map +1 -0
  393. package/dist/esm/hooks/useCreateConversation/helpers.js +4 -0
  394. package/dist/esm/hooks/useCreateConversation/helpers.js.map +1 -0
  395. package/dist/esm/hooks/useCreateConversation/index.js +2 -0
  396. package/dist/esm/hooks/useCreateConversation/index.js.map +1 -0
  397. package/dist/esm/hooks/useCreateConversation/useCreateConversation.js +98 -0
  398. package/dist/esm/hooks/useCreateConversation/useCreateConversation.js.map +1 -0
  399. package/dist/esm/hooks/useDeviceSwitcher/index.js +2 -0
  400. package/dist/esm/hooks/useDeviceSwitcher/index.js.map +1 -0
  401. package/dist/esm/hooks/useDeviceSwitcher/useDeviceSwitcher.js +26 -0
  402. package/dist/esm/hooks/useDeviceSwitcher/useDeviceSwitcher.js.map +1 -0
  403. package/dist/esm/hooks/useDevices/index.js +2 -0
  404. package/dist/esm/hooks/useDevices/index.js.map +1 -0
  405. package/dist/esm/hooks/useDevices/useDevices.js +45 -0
  406. package/dist/esm/hooks/useDevices/useDevices.js.map +1 -0
  407. package/dist/esm/hooks/useMediaPermissions/index.js +3 -0
  408. package/dist/esm/hooks/useMediaPermissions/index.js.map +1 -0
  409. package/dist/esm/hooks/useMediaPermissions/types.js +2 -0
  410. package/dist/esm/hooks/useMediaPermissions/types.js.map +1 -0
  411. package/dist/esm/hooks/useMediaPermissions/useMediaPermissions.js +42 -0
  412. package/dist/esm/hooks/useMediaPermissions/useMediaPermissions.js.map +1 -0
  413. package/dist/esm/hooks/useMediaRecorder/index.js +2 -0
  414. package/dist/esm/hooks/useMediaRecorder/index.js.map +1 -0
  415. package/dist/esm/hooks/useMediaRecorder/useMediaRecorder.js +227 -0
  416. package/dist/esm/hooks/useMediaRecorder/useMediaRecorder.js.map +1 -0
  417. package/dist/esm/hooks/useMediaRecorder/useReactRecorder.js +315 -0
  418. package/dist/esm/hooks/useMediaRecorder/useReactRecorder.js.map +1 -0
  419. package/dist/esm/hooks/useMicrophone/index.js +2 -0
  420. package/dist/esm/hooks/useMicrophone/index.js.map +1 -0
  421. package/dist/esm/hooks/useMicrophone/useMicrophone.js +35 -0
  422. package/dist/esm/hooks/useMicrophone/useMicrophone.js.map +1 -0
  423. package/dist/esm/hooks/useParticipantTrack/index.js +2 -0
  424. package/dist/esm/hooks/useParticipantTrack/index.js.map +1 -0
  425. package/dist/esm/hooks/useParticipantTrack/useParticipantTrack.js +26 -0
  426. package/dist/esm/hooks/useParticipantTrack/useParticipantTrack.js.map +1 -0
  427. package/dist/esm/hooks/usePictureInPicture/index.js +5 -0
  428. package/dist/esm/hooks/usePictureInPicture/index.js.map +1 -0
  429. package/dist/esm/hooks/usePictureInPicture/state.js +10 -0
  430. package/dist/esm/hooks/usePictureInPicture/state.js.map +1 -0
  431. package/dist/esm/hooks/usePictureInPicture/types.js +2 -0
  432. package/dist/esm/hooks/usePictureInPicture/types.js.map +1 -0
  433. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.js +41 -0
  434. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.js.map +1 -0
  435. package/dist/esm/hooks/usePictureInPicture/usePictureInPictureAuto.js +111 -0
  436. package/dist/esm/hooks/usePictureInPicture/usePictureInPictureAuto.js.map +1 -0
  437. package/dist/esm/hooks/useScreenShare/index.js +2 -0
  438. package/dist/esm/hooks/useScreenShare/index.js.map +1 -0
  439. package/dist/esm/hooks/useScreenShare/useScreenShare.js +42 -0
  440. package/dist/esm/hooks/useScreenShare/useScreenShare.js.map +1 -0
  441. package/dist/esm/hooks/useSpeaker/index.js +2 -0
  442. package/dist/esm/hooks/useSpeaker/index.js.map +1 -0
  443. package/dist/esm/hooks/useSpeaker/useSpeaker.js +28 -0
  444. package/dist/esm/hooks/useSpeaker/useSpeaker.js.map +1 -0
  445. package/dist/esm/hooks/useTextChat/index.js +2 -0
  446. package/dist/esm/hooks/useTextChat/index.js.map +1 -0
  447. package/dist/esm/hooks/useTextChat/usePendingMessages.js +19 -0
  448. package/dist/esm/hooks/useTextChat/usePendingMessages.js.map +1 -0
  449. package/dist/esm/hooks/useTextChat/useTextChat.js +59 -0
  450. package/dist/esm/hooks/useTextChat/useTextChat.js.map +1 -0
  451. package/dist/esm/hooks/useTextChat/useToolAwareSend.js +28 -0
  452. package/dist/esm/hooks/useTextChat/useToolAwareSend.js.map +1 -0
  453. package/dist/esm/hooks/useTools/index.js +3 -0
  454. package/dist/esm/hooks/useTools/index.js.map +1 -0
  455. package/dist/esm/hooks/useTools/model/errors.js +7 -0
  456. package/dist/esm/hooks/useTools/model/errors.js.map +1 -0
  457. package/dist/esm/hooks/useTools/model/types.js +2 -0
  458. package/dist/esm/hooks/useTools/model/types.js.map +1 -0
  459. package/dist/esm/hooks/useTools/public/useTools.js +7 -0
  460. package/dist/esm/hooks/useTools/public/useTools.js.map +1 -0
  461. package/dist/esm/hooks/useTools/runtime/createToolRuntimeSession.js +66 -0
  462. package/dist/esm/hooks/useTools/runtime/createToolRuntimeSession.js.map +1 -0
  463. package/dist/esm/hooks/useTools/runtime/executeToolCall.js +29 -0
  464. package/dist/esm/hooks/useTools/runtime/executeToolCall.js.map +1 -0
  465. package/dist/esm/hooks/useTools/runtime/executeToolCallBatch.js +36 -0
  466. package/dist/esm/hooks/useTools/runtime/executeToolCallBatch.js.map +1 -0
  467. package/dist/esm/hooks/useTools/runtime/types.js +2 -0
  468. package/dist/esm/hooks/useTools/runtime/types.js.map +1 -0
  469. package/dist/esm/hooks/useTools/runtime/useToolCallingRuntime.js +58 -0
  470. package/dist/esm/hooks/useTools/runtime/useToolCallingRuntime.js.map +1 -0
  471. package/dist/esm/hooks/useTools/store/state.js +26 -0
  472. package/dist/esm/hooks/useTools/store/state.js.map +1 -0
  473. package/dist/esm/hooks/useTools/utils/normalizeFunctionCall.js +18 -0
  474. package/dist/esm/hooks/useTools/utils/normalizeFunctionCall.js.map +1 -0
  475. package/dist/esm/hooks/useTools/utils/serialize.js +23 -0
  476. package/dist/esm/hooks/useTools/utils/serialize.js.map +1 -0
  477. package/dist/esm/hooks/useTranscriptions/index.js +3 -0
  478. package/dist/esm/hooks/useTranscriptions/index.js.map +1 -0
  479. package/dist/esm/hooks/useTranscriptions/types.js +2 -0
  480. package/dist/esm/hooks/useTranscriptions/types.js.map +1 -0
  481. package/dist/esm/hooks/useTranscriptions/useTranscription.js +15 -0
  482. package/dist/esm/hooks/useTranscriptions/useTranscription.js.map +1 -0
  483. package/dist/esm/hooks/useTranscriptions/useTranscriptions.js +15 -0
  484. package/dist/esm/hooks/useTranscriptions/useTranscriptions.js.map +1 -0
  485. package/dist/esm/hooks/useUserActivity/index.js +2 -0
  486. package/dist/esm/hooks/useUserActivity/index.js.map +1 -0
  487. package/dist/esm/hooks/useUserActivity/useUserActivity.js +22 -0
  488. package/dist/esm/hooks/useUserActivity/useUserActivity.js.map +1 -0
  489. package/dist/esm/livekit/components.js +2 -0
  490. package/dist/esm/livekit/components.js.map +1 -0
  491. package/dist/esm/livekit/sdk.js +2 -0
  492. package/dist/esm/livekit/sdk.js.map +1 -0
  493. package/dist/esm/sdk-consumer/context.js +10 -0
  494. package/dist/esm/sdk-consumer/context.js.map +1 -0
  495. package/dist/esm/sdk-consumer/index.js +2 -0
  496. package/dist/esm/sdk-consumer/index.js.map +1 -0
  497. package/dist/esm/sdk.js +25 -0
  498. package/dist/esm/sdk.js.map +1 -0
  499. package/dist/esm/services/FetchPersonaChatService.js +124 -0
  500. package/dist/esm/services/FetchPersonaChatService.js.map +1 -0
  501. package/dist/esm/test-types.d.js +2 -0
  502. package/dist/esm/test-types.d.js.map +1 -0
  503. package/dist/esm/types/http.js +9 -0
  504. package/dist/esm/types/http.js.map +1 -0
  505. package/dist/esm/types/index.js +2 -0
  506. package/dist/esm/types/index.js.map +1 -0
  507. package/dist/esm/types/service.js +2 -0
  508. package/dist/esm/types/service.js.map +1 -0
  509. package/dist/esm/utils/captureImage/captureImage.js +29 -0
  510. package/dist/esm/utils/captureImage/captureImage.js.map +1 -0
  511. package/dist/esm/utils/captureImage/helpers.js +69 -0
  512. package/dist/esm/utils/captureImage/helpers.js.map +1 -0
  513. package/dist/esm/utils/captureImage/index.js +3 -0
  514. package/dist/esm/utils/captureImage/index.js.map +1 -0
  515. package/dist/esm/utils/captureImage/types.js +2 -0
  516. package/dist/esm/utils/captureImage/types.js.map +1 -0
  517. package/dist/esm/utils/compatibility/compatibility.js +12 -0
  518. package/dist/esm/utils/compatibility/compatibility.js.map +1 -0
  519. package/dist/esm/utils/compatibility/index.js +2 -0
  520. package/dist/esm/utils/compatibility/index.js.map +1 -0
  521. package/dist/esm/utils.js +2 -0
  522. package/dist/esm/utils.js.map +1 -0
  523. package/dist/types/components/Audio/Audio.d.ts +3 -0
  524. package/dist/types/components/Audio/Audio.d.ts.map +1 -0
  525. package/dist/types/components/Audio/index.d.ts +2 -0
  526. package/dist/types/components/Audio/index.d.ts.map +1 -0
  527. package/dist/types/components/ChromaKey/ChromaKey.d.ts +20 -0
  528. package/dist/types/components/ChromaKey/ChromaKey.d.ts.map +1 -0
  529. package/dist/types/components/ChromaKey/chroma-key.d.ts +9 -0
  530. package/dist/types/components/ChromaKey/chroma-key.d.ts.map +1 -0
  531. package/dist/types/components/ChromaKey/index.d.ts +2 -0
  532. package/dist/types/components/ChromaKey/index.d.ts.map +1 -0
  533. package/dist/types/components/ChromaKey/shaders/chroma-key.shader.d.ts +3 -0
  534. package/dist/types/components/ChromaKey/shaders/chroma-key.shader.d.ts.map +1 -0
  535. package/dist/types/components/ChromaKey/shaders/index.d.ts +3 -0
  536. package/dist/types/components/ChromaKey/shaders/index.d.ts.map +1 -0
  537. package/dist/types/components/ChromaKey/shaders/vertex-align.shader.d.ts +3 -0
  538. package/dist/types/components/ChromaKey/shaders/vertex-align.shader.d.ts.map +1 -0
  539. package/dist/types/components/ChromaKey/types.d.ts +3 -0
  540. package/dist/types/components/ChromaKey/types.d.ts.map +1 -0
  541. package/dist/types/components/LegendsPlatform/LegendsPlatform.d.ts +18 -0
  542. package/dist/types/components/LegendsPlatform/LegendsPlatform.d.ts.map +1 -0
  543. package/dist/types/components/LegendsPlatform/index.d.ts +2 -0
  544. package/dist/types/components/LegendsPlatform/index.d.ts.map +1 -0
  545. package/dist/types/components/LegendsPlatformQLess/LegendsPlatform.d.ts +15 -0
  546. package/dist/types/components/LegendsPlatformQLess/LegendsPlatform.d.ts.map +1 -0
  547. package/dist/types/components/LegendsPlatformQLess/index.d.ts +2 -0
  548. package/dist/types/components/LegendsPlatformQLess/index.d.ts.map +1 -0
  549. package/dist/types/components/Video/Video.d.ts +14 -0
  550. package/dist/types/components/Video/Video.d.ts.map +1 -0
  551. package/dist/types/components/Video/index.d.ts +3 -0
  552. package/dist/types/components/Video/index.d.ts.map +1 -0
  553. package/dist/types/components/Video/types.d.ts +22 -0
  554. package/dist/types/components/Video/types.d.ts.map +1 -0
  555. package/dist/types/components/Video/useAttachVideo.d.ts +10 -0
  556. package/dist/types/components/Video/useAttachVideo.d.ts.map +1 -0
  557. package/dist/types/components/VideoPostProcessor/VideoPostProcessor.d.ts +11 -0
  558. package/dist/types/components/VideoPostProcessor/VideoPostProcessor.d.ts.map +1 -0
  559. package/dist/types/components/VideoPostProcessor/effects.d.ts +3 -0
  560. package/dist/types/components/VideoPostProcessor/effects.d.ts.map +1 -0
  561. package/dist/types/components/VideoPostProcessor/index.d.ts +2 -0
  562. package/dist/types/components/VideoPostProcessor/index.d.ts.map +1 -0
  563. package/dist/types/components/VideoPreview/VideoPreview.d.ts +4 -0
  564. package/dist/types/components/VideoPreview/VideoPreview.d.ts.map +1 -0
  565. package/dist/types/components/VideoPreview/index.d.ts +3 -0
  566. package/dist/types/components/VideoPreview/index.d.ts.map +1 -0
  567. package/dist/types/components/VideoPreview/types.d.ts +11 -0
  568. package/dist/types/components/VideoPreview/types.d.ts.map +1 -0
  569. package/dist/types/components/VideoPreview/useVideoPreviewStream.d.ts +13 -0
  570. package/dist/types/components/VideoPreview/useVideoPreviewStream.d.ts.map +1 -0
  571. package/dist/types/components.d.ts +6 -0
  572. package/dist/types/components.d.ts.map +1 -0
  573. package/dist/types/conversation/index.d.ts +3 -0
  574. package/dist/types/conversation/index.d.ts.map +1 -0
  575. package/dist/types/conversation/state.d.ts +47 -0
  576. package/dist/types/conversation/state.d.ts.map +1 -0
  577. package/dist/types/conversation/types.d.ts +27 -0
  578. package/dist/types/conversation/types.d.ts.map +1 -0
  579. package/dist/types/conversation/utils.d.ts +6 -0
  580. package/dist/types/conversation/utils.d.ts.map +1 -0
  581. package/dist/types/hooks/index.d.ts +10 -0
  582. package/dist/types/hooks/index.d.ts.map +1 -0
  583. package/dist/types/hooks/useActivityState/index.d.ts +2 -0
  584. package/dist/types/hooks/useActivityState/index.d.ts.map +1 -0
  585. package/dist/types/hooks/useActivityState/useActivityState.d.ts +2 -0
  586. package/dist/types/hooks/useActivityState/useActivityState.d.ts.map +1 -0
  587. package/dist/types/hooks/useAudio/index.d.ts +2 -0
  588. package/dist/types/hooks/useAudio/index.d.ts.map +1 -0
  589. package/dist/types/hooks/useAudio/useAudio.d.ts +7 -0
  590. package/dist/types/hooks/useAudio/useAudio.d.ts.map +1 -0
  591. package/dist/types/hooks/useAudioLevel/helpers.d.ts +11 -0
  592. package/dist/types/hooks/useAudioLevel/helpers.d.ts.map +1 -0
  593. package/dist/types/hooks/useAudioLevel/index.d.ts +2 -0
  594. package/dist/types/hooks/useAudioLevel/index.d.ts.map +1 -0
  595. package/dist/types/hooks/useAudioLevel/types.d.ts +8 -0
  596. package/dist/types/hooks/useAudioLevel/types.d.ts.map +1 -0
  597. package/dist/types/hooks/useAudioLevel/useAudioLevel.d.ts +3 -0
  598. package/dist/types/hooks/useAudioLevel/useAudioLevel.d.ts.map +1 -0
  599. package/dist/types/hooks/useCamera/index.d.ts +2 -0
  600. package/dist/types/hooks/useCamera/index.d.ts.map +1 -0
  601. package/dist/types/hooks/useCamera/useCamera.d.ts +8 -0
  602. package/dist/types/hooks/useCamera/useCamera.d.ts.map +1 -0
  603. package/dist/types/hooks/useConnectionState/index.d.ts +2 -0
  604. package/dist/types/hooks/useConnectionState/index.d.ts.map +1 -0
  605. package/dist/types/hooks/useConnectionState/useConnectionState.d.ts +2 -0
  606. package/dist/types/hooks/useConnectionState/useConnectionState.d.ts.map +1 -0
  607. package/dist/types/hooks/useConversation/index.d.ts +3 -0
  608. package/dist/types/hooks/useConversation/index.d.ts.map +1 -0
  609. package/dist/types/hooks/useConversation/livekit/constants.d.ts +4 -0
  610. package/dist/types/hooks/useConversation/livekit/constants.d.ts.map +1 -0
  611. package/dist/types/hooks/useConversation/livekit/types.d.ts +32 -0
  612. package/dist/types/hooks/useConversation/livekit/types.d.ts.map +1 -0
  613. package/dist/types/hooks/useConversation/livekit/useConversation.d.ts +3 -0
  614. package/dist/types/hooks/useConversation/livekit/useConversation.d.ts.map +1 -0
  615. package/dist/types/hooks/useConversation/livekit/utils/dataChannel.d.ts +6 -0
  616. package/dist/types/hooks/useConversation/livekit/utils/dataChannel.d.ts.map +1 -0
  617. package/dist/types/hooks/useConversation/livekit/utils/index.d.ts +7 -0
  618. package/dist/types/hooks/useConversation/livekit/utils/index.d.ts.map +1 -0
  619. package/dist/types/hooks/useConversation/livekit/utils/messaging.d.ts +3 -0
  620. package/dist/types/hooks/useConversation/livekit/utils/messaging.d.ts.map +1 -0
  621. package/dist/types/hooks/useConversation/livekit/utils/participants.d.ts +6 -0
  622. package/dist/types/hooks/useConversation/livekit/utils/participants.d.ts.map +1 -0
  623. package/dist/types/hooks/useConversation/livekit/utils/serialization.d.ts +2 -0
  624. package/dist/types/hooks/useConversation/livekit/utils/serialization.d.ts.map +1 -0
  625. package/dist/types/hooks/useConversation/livekit/utils/toolAdapter.d.ts +4 -0
  626. package/dist/types/hooks/useConversation/livekit/utils/toolAdapter.d.ts.map +1 -0
  627. package/dist/types/hooks/useConversation/livekit/utils/transcriptions.d.ts +3 -0
  628. package/dist/types/hooks/useConversation/livekit/utils/transcriptions.d.ts.map +1 -0
  629. package/dist/types/hooks/useConversation/types.d.ts +23 -0
  630. package/dist/types/hooks/useConversation/types.d.ts.map +1 -0
  631. package/dist/types/hooks/useConversation/useConversation.d.ts +3 -0
  632. package/dist/types/hooks/useConversation/useConversation.d.ts.map +1 -0
  633. package/dist/types/hooks/useConversationEvents/index.d.ts +4 -0
  634. package/dist/types/hooks/useConversationEvents/index.d.ts.map +1 -0
  635. package/dist/types/hooks/useConversationEvents/types.d.ts +72 -0
  636. package/dist/types/hooks/useConversationEvents/types.d.ts.map +1 -0
  637. package/dist/types/hooks/useConversationEvents/useConversationEvent.d.ts +3 -0
  638. package/dist/types/hooks/useConversationEvents/useConversationEvent.d.ts.map +1 -0
  639. package/dist/types/hooks/useConversationEvents/useConversationEvents.d.ts +5 -0
  640. package/dist/types/hooks/useConversationEvents/useConversationEvents.d.ts.map +1 -0
  641. package/dist/types/hooks/useConversationEvents/useEmitConversationEvent.d.ts +3 -0
  642. package/dist/types/hooks/useConversationEvents/useEmitConversationEvent.d.ts.map +1 -0
  643. package/dist/types/hooks/useConversationStatus/index.d.ts +2 -0
  644. package/dist/types/hooks/useConversationStatus/index.d.ts.map +1 -0
  645. package/dist/types/hooks/useConversationStatus/useConversationStatus.d.ts +2 -0
  646. package/dist/types/hooks/useConversationStatus/useConversationStatus.d.ts.map +1 -0
  647. package/dist/types/hooks/useConversationTimer/index.d.ts +2 -0
  648. package/dist/types/hooks/useConversationTimer/index.d.ts.map +1 -0
  649. package/dist/types/hooks/useConversationTimer/useConversationTimer.d.ts +17 -0
  650. package/dist/types/hooks/useConversationTimer/useConversationTimer.d.ts.map +1 -0
  651. package/dist/types/hooks/useCreateConversation/helpers.d.ts +8 -0
  652. package/dist/types/hooks/useCreateConversation/helpers.d.ts.map +1 -0
  653. package/dist/types/hooks/useCreateConversation/index.d.ts +2 -0
  654. package/dist/types/hooks/useCreateConversation/index.d.ts.map +1 -0
  655. package/dist/types/hooks/useCreateConversation/useCreateConversation.d.ts +11 -0
  656. package/dist/types/hooks/useCreateConversation/useCreateConversation.d.ts.map +1 -0
  657. package/dist/types/hooks/useDeviceSwitcher/index.d.ts +2 -0
  658. package/dist/types/hooks/useDeviceSwitcher/index.d.ts.map +1 -0
  659. package/dist/types/hooks/useDeviceSwitcher/useDeviceSwitcher.d.ts +9 -0
  660. package/dist/types/hooks/useDeviceSwitcher/useDeviceSwitcher.d.ts.map +1 -0
  661. package/dist/types/hooks/useDevices/index.d.ts +2 -0
  662. package/dist/types/hooks/useDevices/index.d.ts.map +1 -0
  663. package/dist/types/hooks/useDevices/useDevices.d.ts +6 -0
  664. package/dist/types/hooks/useDevices/useDevices.d.ts.map +1 -0
  665. package/dist/types/hooks/useMediaPermissions/index.d.ts +3 -0
  666. package/dist/types/hooks/useMediaPermissions/index.d.ts.map +1 -0
  667. package/dist/types/hooks/useMediaPermissions/types.d.ts +3 -0
  668. package/dist/types/hooks/useMediaPermissions/types.d.ts.map +1 -0
  669. package/dist/types/hooks/useMediaPermissions/useMediaPermissions.d.ts +7 -0
  670. package/dist/types/hooks/useMediaPermissions/useMediaPermissions.d.ts.map +1 -0
  671. package/dist/types/hooks/useMediaRecorder/index.d.ts +2 -0
  672. package/dist/types/hooks/useMediaRecorder/index.d.ts.map +1 -0
  673. package/dist/types/hooks/useMediaRecorder/useMediaRecorder.d.ts +39 -0
  674. package/dist/types/hooks/useMediaRecorder/useMediaRecorder.d.ts.map +1 -0
  675. package/dist/types/hooks/useMediaRecorder/useReactRecorder.d.ts +70 -0
  676. package/dist/types/hooks/useMediaRecorder/useReactRecorder.d.ts.map +1 -0
  677. package/dist/types/hooks/useMicrophone/index.d.ts +2 -0
  678. package/dist/types/hooks/useMicrophone/index.d.ts.map +1 -0
  679. package/dist/types/hooks/useMicrophone/useMicrophone.d.ts +8 -0
  680. package/dist/types/hooks/useMicrophone/useMicrophone.d.ts.map +1 -0
  681. package/dist/types/hooks/useParticipantTrack/index.d.ts +2 -0
  682. package/dist/types/hooks/useParticipantTrack/index.d.ts.map +1 -0
  683. package/dist/types/hooks/useParticipantTrack/useParticipantTrack.d.ts +11 -0
  684. package/dist/types/hooks/useParticipantTrack/useParticipantTrack.d.ts.map +1 -0
  685. package/dist/types/hooks/usePictureInPicture/index.d.ts +6 -0
  686. package/dist/types/hooks/usePictureInPicture/index.d.ts.map +1 -0
  687. package/dist/types/hooks/usePictureInPicture/state.d.ts +8 -0
  688. package/dist/types/hooks/usePictureInPicture/state.d.ts.map +1 -0
  689. package/dist/types/hooks/usePictureInPicture/types.d.ts +25 -0
  690. package/dist/types/hooks/usePictureInPicture/types.d.ts.map +1 -0
  691. package/dist/types/hooks/usePictureInPicture/usePictureInPicture.d.ts +3 -0
  692. package/dist/types/hooks/usePictureInPicture/usePictureInPicture.d.ts.map +1 -0
  693. package/dist/types/hooks/usePictureInPicture/usePictureInPictureAuto.d.ts +3 -0
  694. package/dist/types/hooks/usePictureInPicture/usePictureInPictureAuto.d.ts.map +1 -0
  695. package/dist/types/hooks/useScreenShare/index.d.ts +2 -0
  696. package/dist/types/hooks/useScreenShare/index.d.ts.map +1 -0
  697. package/dist/types/hooks/useScreenShare/useScreenShare.d.ts +13 -0
  698. package/dist/types/hooks/useScreenShare/useScreenShare.d.ts.map +1 -0
  699. package/dist/types/hooks/useSpeaker/index.d.ts +2 -0
  700. package/dist/types/hooks/useSpeaker/index.d.ts.map +1 -0
  701. package/dist/types/hooks/useSpeaker/useSpeaker.d.ts +6 -0
  702. package/dist/types/hooks/useSpeaker/useSpeaker.d.ts.map +1 -0
  703. package/dist/types/hooks/useTextChat/index.d.ts +2 -0
  704. package/dist/types/hooks/useTextChat/index.d.ts.map +1 -0
  705. package/dist/types/hooks/useTextChat/usePendingMessages.d.ts +11 -0
  706. package/dist/types/hooks/useTextChat/usePendingMessages.d.ts.map +1 -0
  707. package/dist/types/hooks/useTextChat/useTextChat.d.ts +21 -0
  708. package/dist/types/hooks/useTextChat/useTextChat.d.ts.map +1 -0
  709. package/dist/types/hooks/useTextChat/useToolAwareSend.d.ts +8 -0
  710. package/dist/types/hooks/useTextChat/useToolAwareSend.d.ts.map +1 -0
  711. package/dist/types/hooks/useTools/index.d.ts +4 -0
  712. package/dist/types/hooks/useTools/index.d.ts.map +1 -0
  713. package/dist/types/hooks/useTools/model/errors.d.ts +4 -0
  714. package/dist/types/hooks/useTools/model/errors.d.ts.map +1 -0
  715. package/dist/types/hooks/useTools/model/types.d.ts +27 -0
  716. package/dist/types/hooks/useTools/model/types.d.ts.map +1 -0
  717. package/dist/types/hooks/useTools/public/useTools.d.ts +2 -0
  718. package/dist/types/hooks/useTools/public/useTools.d.ts.map +1 -0
  719. package/dist/types/hooks/useTools/runtime/createToolRuntimeSession.d.ts +9 -0
  720. package/dist/types/hooks/useTools/runtime/createToolRuntimeSession.d.ts.map +1 -0
  721. package/dist/types/hooks/useTools/runtime/executeToolCall.d.ts +3 -0
  722. package/dist/types/hooks/useTools/runtime/executeToolCall.d.ts.map +1 -0
  723. package/dist/types/hooks/useTools/runtime/executeToolCallBatch.d.ts +11 -0
  724. package/dist/types/hooks/useTools/runtime/executeToolCallBatch.d.ts.map +1 -0
  725. package/dist/types/hooks/useTools/runtime/types.d.ts +35 -0
  726. package/dist/types/hooks/useTools/runtime/types.d.ts.map +1 -0
  727. package/dist/types/hooks/useTools/runtime/useToolCallingRuntime.d.ts +9 -0
  728. package/dist/types/hooks/useTools/runtime/useToolCallingRuntime.d.ts.map +1 -0
  729. package/dist/types/hooks/useTools/store/state.d.ts +17 -0
  730. package/dist/types/hooks/useTools/store/state.d.ts.map +1 -0
  731. package/dist/types/hooks/useTools/utils/normalizeFunctionCall.d.ts +4 -0
  732. package/dist/types/hooks/useTools/utils/normalizeFunctionCall.d.ts.map +1 -0
  733. package/dist/types/hooks/useTools/utils/serialize.d.ts +3 -0
  734. package/dist/types/hooks/useTools/utils/serialize.d.ts.map +1 -0
  735. package/dist/types/hooks/useTranscriptions/index.d.ts +3 -0
  736. package/dist/types/hooks/useTranscriptions/index.d.ts.map +1 -0
  737. package/dist/types/hooks/useTranscriptions/types.d.ts +5 -0
  738. package/dist/types/hooks/useTranscriptions/types.d.ts.map +1 -0
  739. package/dist/types/hooks/useTranscriptions/useTranscription.d.ts +3 -0
  740. package/dist/types/hooks/useTranscriptions/useTranscription.d.ts.map +1 -0
  741. package/dist/types/hooks/useTranscriptions/useTranscriptions.d.ts +3 -0
  742. package/dist/types/hooks/useTranscriptions/useTranscriptions.d.ts.map +1 -0
  743. package/dist/types/hooks/useUserActivity/index.d.ts +2 -0
  744. package/dist/types/hooks/useUserActivity/index.d.ts.map +1 -0
  745. package/dist/types/hooks/useUserActivity/useUserActivity.d.ts +8 -0
  746. package/dist/types/hooks/useUserActivity/useUserActivity.d.ts.map +1 -0
  747. package/dist/types/livekit/components.d.ts +2 -0
  748. package/dist/types/livekit/components.d.ts.map +1 -0
  749. package/dist/types/livekit/sdk.d.ts +2 -0
  750. package/dist/types/livekit/sdk.d.ts.map +1 -0
  751. package/dist/types/sdk-consumer/context.d.ts +12 -0
  752. package/dist/types/sdk-consumer/context.d.ts.map +1 -0
  753. package/dist/types/sdk-consumer/index.d.ts +2 -0
  754. package/dist/types/sdk-consumer/index.d.ts.map +1 -0
  755. package/dist/types/sdk.d.ts +25 -0
  756. package/dist/types/sdk.d.ts.map +1 -0
  757. package/dist/types/services/FetchPersonaChatService.d.ts +15 -0
  758. package/dist/types/services/FetchPersonaChatService.d.ts.map +1 -0
  759. package/dist/types/types/http.d.ts +15 -0
  760. package/dist/types/types/http.d.ts.map +1 -0
  761. package/dist/types/types/index.d.ts +4 -0
  762. package/dist/types/types/index.d.ts.map +1 -0
  763. package/dist/types/types/service.d.ts +62 -0
  764. package/dist/types/types/service.d.ts.map +1 -0
  765. package/dist/types/utils/captureImage/captureImage.d.ts +3 -0
  766. package/dist/types/utils/captureImage/captureImage.d.ts.map +1 -0
  767. package/dist/types/utils/captureImage/helpers.d.ts +4 -0
  768. package/dist/types/utils/captureImage/helpers.d.ts.map +1 -0
  769. package/dist/types/utils/captureImage/index.d.ts +3 -0
  770. package/dist/types/utils/captureImage/index.d.ts.map +1 -0
  771. package/dist/types/utils/captureImage/types.d.ts +9 -0
  772. package/dist/types/utils/captureImage/types.d.ts.map +1 -0
  773. package/dist/types/utils/compatibility/compatibility.d.ts +3 -0
  774. package/dist/types/utils/compatibility/compatibility.d.ts.map +1 -0
  775. package/dist/types/utils/compatibility/index.d.ts +2 -0
  776. package/dist/types/utils/compatibility/index.d.ts.map +1 -0
  777. package/dist/types/utils.d.ts +2 -0
  778. package/dist/types/utils.d.ts.map +1 -0
  779. package/livekit/components/package.json +5 -0
  780. package/livekit/sdk/package.json +5 -0
  781. package/livekit-client.patch +19 -0
  782. package/package.json +108 -0
  783. package/sdk/package.json +5 -0
  784. package/tpa/package.json +5 -0
  785. package/utils/package.json +5 -0
@@ -0,0 +1,91 @@
1
+ import invariant from 'invariant';
2
+ import * as shaders from './shaders';
3
+ export function chromaKey($video, $canvas, options) {
4
+ const gl = $canvas.getContext('webgl', {
5
+ alpha: true,
6
+ premultipliedAlpha: false,
7
+ preserveDrawingBuffer: true
8
+ });
9
+ invariant(gl, 'WebGL context is not initialized');
10
+ const BUFFER = gl.createBuffer();
11
+ const TEXTURE = gl.createTexture();
12
+ const program = gl.createProgram();
13
+ const _VS_ = gl.createShader(gl.VERTEX_SHADER);
14
+ const _FS_ = gl.createShader(gl.FRAGMENT_SHADER);
15
+ invariant(program, 'Program is not initialized');
16
+ invariant(_VS_, 'Vertex shader is not initialized');
17
+ invariant(_FS_, 'Fragment shader is not initialized');
18
+ gl.shaderSource(_VS_, shaders.VertexAlign);
19
+ gl.shaderSource(_FS_, shaders.ChromaKey);
20
+ gl.compileShader(_VS_);
21
+ gl.compileShader(_FS_);
22
+ if (!gl.getShaderParameter(_FS_, gl.COMPILE_STATUS)) {
23
+ console.error('Fragment shader compilation failed', gl.getShaderInfoLog(_FS_));
24
+ }
25
+ gl.attachShader(program, _VS_);
26
+ gl.attachShader(program, _FS_);
27
+ gl.linkProgram(program);
28
+ gl.useProgram(program);
29
+ gl.bindTexture(gl.TEXTURE_2D, TEXTURE);
30
+ gl.bindBuffer(gl.ARRAY_BUFFER, BUFFER);
31
+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, 1, -1, -1, 1, -1, 1, 1]), gl.STATIC_DRAW);
32
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
33
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
34
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
35
+ const $coords$ = gl.getAttribLocation(program, 'coords');
36
+ const $texture$ = gl.getUniformLocation(program, 'tex');
37
+ const $width$ = gl.getUniformLocation(program, 'texWidth');
38
+ const $height$ = gl.getUniformLocation(program, 'texHeight');
39
+ const $color$ = gl.getUniformLocation(program, 'keyColor');
40
+ const $similarity$ = gl.getUniformLocation(program, 'similarity');
41
+ const $smoothness$ = gl.getUniformLocation(program, 'smoothness');
42
+ const $spill$ = gl.getUniformLocation(program, 'spill');
43
+ gl.vertexAttribPointer($coords$, 2, gl.FLOAT, false, 0, 0);
44
+ gl.enableVertexAttribArray($coords$);
45
+ gl.activeTexture(gl.TEXTURE0);
46
+
47
+ // Enable blending for transparency (critical for Safari)
48
+ gl.enable(gl.BLEND);
49
+ gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
50
+ return function process() {
51
+ const color = options.color,
52
+ spill = options.spill,
53
+ similarity = options.similarity,
54
+ smoothness = options.smoothness,
55
+ background = options.background;
56
+
57
+ // Use video dimensions directly instead of metadata (for Safari compatibility)
58
+ const videoWidth = $video.videoWidth;
59
+ const videoHeight = $video.videoHeight;
60
+ if (!videoWidth || !videoHeight) {
61
+ return; // Video not ready yet
62
+ }
63
+ const width = videoWidth * window.devicePixelRatio;
64
+ const height = videoHeight * window.devicePixelRatio;
65
+ $canvas.width = width;
66
+ $canvas.height = height;
67
+ gl.viewport(0, 0, width, height);
68
+
69
+ // Clear with background color or transparent
70
+ if (background) {
71
+ const r = parseInt(background.substring(1, 3), 16) / 255;
72
+ const g = parseInt(background.substring(3, 5), 16) / 255;
73
+ const b = parseInt(background.substring(5, 7), 16) / 255;
74
+ gl.clearColor(r, g, b, 1);
75
+ } else {
76
+ gl.clearColor(0, 0, 0, 0);
77
+ }
78
+ gl.clear(gl.COLOR_BUFFER_BIT);
79
+ gl.useProgram(program);
80
+ gl.uniform1i($texture$, 0);
81
+ gl.uniform1f($width$, width);
82
+ gl.uniform1f($height$, height);
83
+ gl.uniform1f($spill$, spill);
84
+ gl.uniform1f($similarity$, similarity);
85
+ gl.uniform1f($smoothness$, smoothness);
86
+ gl.uniform3f($color$, parseInt(color.substr(1, 2), 16) / 255, parseInt(color.substr(3, 2), 16) / 255, parseInt(color.substr(5, 2), 16) / 255);
87
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, $video);
88
+ gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);
89
+ };
90
+ }
91
+ //# sourceMappingURL=chroma-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["invariant","shaders","chromaKey","$video","$canvas","options","gl","getContext","alpha","premultipliedAlpha","preserveDrawingBuffer","BUFFER","createBuffer","TEXTURE","createTexture","program","createProgram","_VS_","createShader","VERTEX_SHADER","_FS_","FRAGMENT_SHADER","shaderSource","VertexAlign","ChromaKey","compileShader","getShaderParameter","COMPILE_STATUS","console","error","getShaderInfoLog","attachShader","linkProgram","useProgram","bindTexture","TEXTURE_2D","bindBuffer","ARRAY_BUFFER","bufferData","Float32Array","STATIC_DRAW","texParameteri","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","$coords$","getAttribLocation","$texture$","getUniformLocation","$width$","$height$","$color$","$similarity$","$smoothness$","$spill$","vertexAttribPointer","FLOAT","enableVertexAttribArray","activeTexture","TEXTURE0","enable","BLEND","blendFunc","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","process","color","spill","similarity","smoothness","background","videoWidth","videoHeight","width","window","devicePixelRatio","height","viewport","r","parseInt","substring","g","b","clearColor","clear","COLOR_BUFFER_BIT","uniform1i","uniform1f","uniform3f","substr","texImage2D","RGB","UNSIGNED_BYTE","drawArrays","TRIANGLE_FAN"],"sources":["../../../../src/components/ChromaKey/chroma-key.ts"],"sourcesContent":["import invariant from 'invariant';\n\nimport * as shaders from './shaders';\n\nexport type ProcessCallback = () => void;\n\nexport function chromaKey(\n $video: HTMLVideoElement,\n $canvas: HTMLCanvasElement,\n options: {\n color: string;\n spill: number;\n similarity: number;\n smoothness: number;\n background?: string | null;\n },\n): ProcessCallback {\n const gl = $canvas.getContext('webgl', {\n alpha: true,\n premultipliedAlpha: false,\n preserveDrawingBuffer: true,\n });\n\n invariant(gl, 'WebGL context is not initialized');\n\n const BUFFER = gl.createBuffer();\n const TEXTURE = gl.createTexture();\n const program = gl.createProgram();\n const _VS_ = gl.createShader(gl.VERTEX_SHADER);\n const _FS_ = gl.createShader(gl.FRAGMENT_SHADER);\n\n invariant(program, 'Program is not initialized');\n invariant(_VS_, 'Vertex shader is not initialized');\n invariant(_FS_, 'Fragment shader is not initialized');\n\n gl.shaderSource(_VS_, shaders.VertexAlign);\n gl.shaderSource(_FS_, shaders.ChromaKey);\n\n gl.compileShader(_VS_);\n gl.compileShader(_FS_);\n\n if (!gl.getShaderParameter(_FS_, gl.COMPILE_STATUS)) {\n console.error(\n 'Fragment shader compilation failed',\n gl.getShaderInfoLog(_FS_),\n );\n }\n\n gl.attachShader(program, _VS_);\n gl.attachShader(program, _FS_);\n\n gl.linkProgram(program);\n gl.useProgram(program);\n\n gl.bindTexture(gl.TEXTURE_2D, TEXTURE);\n gl.bindBuffer(gl.ARRAY_BUFFER, BUFFER);\n\n gl.bufferData(\n gl.ARRAY_BUFFER,\n new Float32Array([-1, 1, -1, -1, 1, -1, 1, 1]),\n gl.STATIC_DRAW,\n );\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n const $coords$ = gl.getAttribLocation(program, 'coords');\n const $texture$ = gl.getUniformLocation(program, 'tex');\n const $width$ = gl.getUniformLocation(program, 'texWidth');\n const $height$ = gl.getUniformLocation(program, 'texHeight');\n const $color$ = gl.getUniformLocation(program, 'keyColor');\n const $similarity$ = gl.getUniformLocation(program, 'similarity');\n const $smoothness$ = gl.getUniformLocation(program, 'smoothness');\n const $spill$ = gl.getUniformLocation(program, 'spill');\n\n gl.vertexAttribPointer($coords$, 2, gl.FLOAT, false, 0, 0);\n gl.enableVertexAttribArray($coords$);\n\n gl.activeTexture(gl.TEXTURE0);\n\n // Enable blending for transparency (critical for Safari)\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);\n\n return function process() {\n const { color, spill, similarity, smoothness, background } = options;\n\n // Use video dimensions directly instead of metadata (for Safari compatibility)\n const videoWidth = $video.videoWidth;\n const videoHeight = $video.videoHeight;\n\n if (!videoWidth || !videoHeight) {\n return; // Video not ready yet\n }\n\n const width = videoWidth * window.devicePixelRatio;\n const height = videoHeight * window.devicePixelRatio;\n\n $canvas.width = width;\n $canvas.height = height;\n\n gl.viewport(0, 0, width, height);\n\n // Clear with background color or transparent\n if (background) {\n const r = parseInt(background.substring(1, 3), 16) / 255;\n const g = parseInt(background.substring(3, 5), 16) / 255;\n const b = parseInt(background.substring(5, 7), 16) / 255;\n gl.clearColor(r, g, b, 1);\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n gl.clear(gl.COLOR_BUFFER_BIT);\n\n gl.useProgram(program);\n\n gl.uniform1i($texture$, 0);\n gl.uniform1f($width$, width);\n gl.uniform1f($height$, height);\n gl.uniform1f($spill$, spill);\n gl.uniform1f($similarity$, similarity);\n gl.uniform1f($smoothness$, smoothness);\n gl.uniform3f(\n $color$,\n parseInt(color.substr(1, 2), 16) / 255,\n parseInt(color.substr(3, 2), 16) / 255,\n parseInt(color.substr(5, 2), 16) / 255,\n );\n\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, $video);\n gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from './ChromaKey';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/components/ChromaKey/index.ts"],"sourcesContent":["export * from './ChromaKey';\n"],"mappings":"AAAA,cAAc,aAAa","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ export default `
2
+ precision mediump float;
3
+
4
+ uniform sampler2D tex;
5
+ uniform float texWidth;
6
+ uniform float texHeight;
7
+
8
+ uniform vec3 keyColor;
9
+ uniform float similarity;
10
+ uniform float smoothness;
11
+ uniform float spill;
12
+
13
+ vec2 RGBtoUV(vec3 rgb) {
14
+ return vec2(
15
+ rgb.r * -0.169 + rgb.g * -0.331 + rgb.b * 0.5 + 0.5,
16
+ rgb.r * 0.5 + rgb.g * -0.419 + rgb.b * -0.081 + 0.5
17
+ );
18
+ }
19
+
20
+ vec4 ChromaKey(vec2 texCoord) {
21
+ vec4 rgba = texture2D(tex, texCoord);
22
+ float chromaDist = distance(RGBtoUV(texture2D(tex, texCoord).rgb), RGBtoUV(keyColor));
23
+
24
+ float baseMask = chromaDist - similarity;
25
+ float fullMask = pow(clamp(baseMask / smoothness, 0., 1.), 1.5);
26
+ rgba.a = fullMask;
27
+
28
+ float spillVal = pow(clamp(baseMask / spill, 0., 1.), 1.5);
29
+ float desat = clamp(rgba.r * 0.2126 + rgba.g * 0.7152 + rgba.b * 0.0722, 0., 1.);
30
+ rgba.rgb = mix(vec3(desat, desat, desat), rgba.rgb, spillVal);
31
+
32
+ return rgba;
33
+ }
34
+
35
+ void main(void) {
36
+ vec2 texCoord = vec2(gl_FragCoord.x/texWidth, 1.0 - (gl_FragCoord.y/texHeight));
37
+ gl_FragColor = ChromaKey(texCoord);
38
+ }
39
+ `;
40
+ //# sourceMappingURL=chroma-key.shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../../src/components/ChromaKey/shaders/chroma-key.shader.ts"],"sourcesContent":["export default `\nprecision mediump float;\n\nuniform sampler2D tex;\nuniform float texWidth;\nuniform float texHeight;\n\nuniform vec3 keyColor;\nuniform float similarity;\nuniform float smoothness;\nuniform float spill;\n\nvec2 RGBtoUV(vec3 rgb) {\n return vec2(\n rgb.r * -0.169 + rgb.g * -0.331 + rgb.b * 0.5 + 0.5,\n rgb.r * 0.5 + rgb.g * -0.419 + rgb.b * -0.081 + 0.5\n );\n}\n\nvec4 ChromaKey(vec2 texCoord) {\n vec4 rgba = texture2D(tex, texCoord);\n float chromaDist = distance(RGBtoUV(texture2D(tex, texCoord).rgb), RGBtoUV(keyColor));\n\n float baseMask = chromaDist - similarity;\n float fullMask = pow(clamp(baseMask / smoothness, 0., 1.), 1.5);\n rgba.a = fullMask;\n\n float spillVal = pow(clamp(baseMask / spill, 0., 1.), 1.5);\n float desat = clamp(rgba.r * 0.2126 + rgba.g * 0.7152 + rgba.b * 0.0722, 0., 1.);\n rgba.rgb = mix(vec3(desat, desat, desat), rgba.rgb, spillVal);\n\n return rgba;\n}\n\nvoid main(void) {\n vec2 texCoord = vec2(gl_FragCoord.x/texWidth, 1.0 - (gl_FragCoord.y/texHeight));\n gl_FragColor = ChromaKey(texCoord);\n}\n`;\n"],"mappings":"AAAA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export { default as ChromaKey } from './chroma-key.shader';
2
+ export { default as VertexAlign } from './vertex-align.shader';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default","ChromaKey","VertexAlign"],"sources":["../../../../../src/components/ChromaKey/shaders/index.ts"],"sourcesContent":["export { default as ChromaKey } from './chroma-key.shader';\nexport { default as VertexAlign } from './vertex-align.shader';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,SAAS,QAAQ,qBAAqB;AAC1D,SAASD,OAAO,IAAIE,WAAW,QAAQ,uBAAuB","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ export default `
2
+ attribute vec2 coords;
3
+
4
+ void main(void) {
5
+ gl_Position=vec4(coords, 0.0, 1.0);
6
+ }
7
+ `;
8
+ //# sourceMappingURL=vertex-align.shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../../src/components/ChromaKey/shaders/vertex-align.shader.ts"],"sourcesContent":["export default `\nattribute vec2 coords;\n\nvoid main(void) {\n gl_Position=vec4(coords, 0.0, 1.0);\n}\n`;\n"],"mappings":"AAAA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/components/ChromaKey/types.ts"],"sourcesContent":["export type FrameCallback = Parameters<\n HTMLVideoElement['requestVideoFrameCallback']\n>[0];\n\nexport type FrameCallbackMetadata = Parameters<FrameCallback>[1];\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ import React, { useMemo } from 'react';
2
+ import { Provider, createStore } from 'jotai';
3
+ import { LiveKitRoom } from '@livekit/components-react';
4
+ import { QueryClientProvider, QueryClient } from '@tanstack/react-query';
5
+ import { Provider as BusProvider } from 'react-bus';
6
+ import { FetchPersonaChatService } from '../../services/FetchPersonaChatService';
7
+ import { SdkConsumerContext } from '../../sdk-consumer';
8
+ export function LegendsPlatform(props) {
9
+ const chatId = props.chatId,
10
+ namespace = props.namespace,
11
+ children = props.children,
12
+ className = props.className,
13
+ _props$tools = props.tools,
14
+ tools = _props$tools === void 0 ? {} : _props$tools,
15
+ apiKey = props.apiKey,
16
+ personaChatService = props.personaChatService;
17
+ const store = useMemo(() => props.store || createStore(), [props.store]);
18
+ const queryClient = useMemo(() => props.queryClient || new QueryClient({
19
+ defaultOptions: {
20
+ queries: {
21
+ refetchOnMount: false,
22
+ refetchOnWindowFocus: false
23
+ }
24
+ }
25
+ }), [props.queryClient]);
26
+ const resolvedService = useMemo(() => {
27
+ if (personaChatService) {
28
+ return personaChatService;
29
+ }
30
+ if (apiKey) {
31
+ return new FetchPersonaChatService(apiKey);
32
+ }
33
+ return undefined;
34
+ }, [personaChatService, apiKey]);
35
+ const consumer = useMemo(() => ({
36
+ chatId,
37
+ namespace,
38
+ tools,
39
+ personaChatService: resolvedService
40
+ }), [chatId, namespace, tools, resolvedService]);
41
+ return /*#__PURE__*/React.createElement(SdkConsumerContext.Provider, {
42
+ value: consumer
43
+ }, /*#__PURE__*/React.createElement(QueryClientProvider, {
44
+ client: queryClient
45
+ }, /*#__PURE__*/React.createElement(Provider, {
46
+ store: store
47
+ }, /*#__PURE__*/React.createElement(BusProvider, null, /*#__PURE__*/React.createElement(LiveKitRoom, {
48
+ className: className,
49
+ serverUrl: undefined,
50
+ token: undefined
51
+ }, children)))));
52
+ }
53
+ //# sourceMappingURL=LegendsPlatform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","Provider","createStore","LiveKitRoom","QueryClientProvider","QueryClient","BusProvider","FetchPersonaChatService","SdkConsumerContext","LegendsPlatform","props","chatId","namespace","children","className","_props$tools","tools","apiKey","personaChatService","store","queryClient","defaultOptions","queries","refetchOnMount","refetchOnWindowFocus","resolvedService","undefined","consumer","createElement","value","client","serverUrl","token"],"sources":["../../../../src/components/LegendsPlatform/LegendsPlatform.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Provider, createStore } from 'jotai';\nimport { type Store } from 'jotai/vanilla/store';\nimport { LiveKitRoom } from '@livekit/components-react';\nimport { QueryClientProvider, QueryClient } from '@tanstack/react-query';\nimport { Provider as BusProvider } from 'react-bus';\n\nimport type { ToolsRegistry } from '../../hooks/useTools/model/types';\nimport type { IPersonaChatService } from '../../types/service';\nimport { FetchPersonaChatService } from '../../services/FetchPersonaChatService';\nimport { SdkConsumerContext } from '../../sdk-consumer';\n\nexport type LegendsPlatformProps = {\n chatId: string;\n namespace: string;\n apiKey?: string;\n personaChatService?: IPersonaChatService;\n store?: Store;\n tools?: ToolsRegistry;\n children: React.ReactNode;\n queryClient?: QueryClient;\n className?: string;\n};\n\nexport function LegendsPlatform(props: LegendsPlatformProps) {\n const {\n chatId,\n namespace,\n children,\n className,\n tools = {},\n apiKey,\n personaChatService,\n } = props;\n\n const store = useMemo(() => props.store || createStore(), [props.store]);\n\n const queryClient = useMemo(\n () =>\n props.queryClient ||\n new QueryClient({\n defaultOptions: {\n queries: { refetchOnMount: false, refetchOnWindowFocus: false },\n },\n }),\n [props.queryClient],\n );\n\n const resolvedService = useMemo<IPersonaChatService | undefined>(() => {\n if (personaChatService) {\n return personaChatService;\n }\n if (apiKey) {\n return new FetchPersonaChatService(apiKey);\n }\n return undefined;\n }, [personaChatService, apiKey]);\n\n const consumer = useMemo(\n () => ({ chatId, namespace, tools, personaChatService: resolvedService }),\n [chatId, namespace, tools, resolvedService],\n );\n\n return (\n <SdkConsumerContext.Provider value={consumer}>\n <QueryClientProvider client={queryClient}>\n <Provider store={store}>\n <BusProvider>\n <LiveKitRoom\n className={className}\n serverUrl={undefined}\n token={undefined}\n >\n {children}\n </LiveKitRoom>\n </BusProvider>\n </Provider>\n </QueryClientProvider>\n </SdkConsumerContext.Provider>\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AAE7C,SAASC,WAAW,QAAQ,2BAA2B;AACvD,SAASC,mBAAmB,EAAEC,WAAW,QAAQ,uBAAuB;AACxE,SAASJ,QAAQ,IAAIK,WAAW,QAAQ,WAAW;AAInD,SAASC,uBAAuB,QAAQ,wCAAwC;AAChF,SAASC,kBAAkB,QAAQ,oBAAoB;AAcvD,OAAO,SAASC,eAAeA,CAACC,KAA2B,EAAE;EAC3D,MACEC,MAAM,GAOJD,KAAK,CAPPC,MAAM;IACNC,SAAS,GAMPF,KAAK,CANPE,SAAS;IACTC,QAAQ,GAKNH,KAAK,CALPG,QAAQ;IACRC,SAAS,GAIPJ,KAAK,CAJPI,SAAS;IAAAC,YAAA,GAIPL,KAAK,CAHPM,KAAK;IAALA,KAAK,GAAAD,YAAA,cAAG,CAAC,CAAC,GAAAA,YAAA;IACVE,MAAM,GAEJP,KAAK,CAFPO,MAAM;IACNC,kBAAkB,GAChBR,KAAK,CADPQ,kBAAkB;EAGpB,MAAMC,KAAK,GAAGnB,OAAO,CAAC,MAAMU,KAAK,CAACS,KAAK,IAAIjB,WAAW,CAAC,CAAC,EAAE,CAACQ,KAAK,CAACS,KAAK,CAAC,CAAC;EAExE,MAAMC,WAAW,GAAGpB,OAAO,CACzB,MACEU,KAAK,CAACU,WAAW,IACjB,IAAIf,WAAW,CAAC;IACdgB,cAAc,EAAE;MACdC,OAAO,EAAE;QAAEC,cAAc,EAAE,KAAK;QAAEC,oBAAoB,EAAE;MAAM;IAChE;EACF,CAAC,CAAC,EACJ,CAACd,KAAK,CAACU,WAAW,CACpB,CAAC;EAED,MAAMK,eAAe,GAAGzB,OAAO,CAAkC,MAAM;IACrE,IAAIkB,kBAAkB,EAAE;MACtB,OAAOA,kBAAkB;IAC3B;IACA,IAAID,MAAM,EAAE;MACV,OAAO,IAAIV,uBAAuB,CAACU,MAAM,CAAC;IAC5C;IACA,OAAOS,SAAS;EAClB,CAAC,EAAE,CAACR,kBAAkB,EAAED,MAAM,CAAC,CAAC;EAEhC,MAAMU,QAAQ,GAAG3B,OAAO,CACtB,OAAO;IAAEW,MAAM;IAAEC,SAAS;IAAEI,KAAK;IAAEE,kBAAkB,EAAEO;EAAgB,CAAC,CAAC,EACzE,CAACd,MAAM,EAAEC,SAAS,EAAEI,KAAK,EAAES,eAAe,CAC5C,CAAC;EAED,oBACE1B,KAAA,CAAA6B,aAAA,CAACpB,kBAAkB,CAACP,QAAQ;IAAC4B,KAAK,EAAEF;EAAS,gBAC3C5B,KAAA,CAAA6B,aAAA,CAACxB,mBAAmB;IAAC0B,MAAM,EAAEV;EAAY,gBACvCrB,KAAA,CAAA6B,aAAA,CAAC3B,QAAQ;IAACkB,KAAK,EAAEA;EAAM,gBACrBpB,KAAA,CAAA6B,aAAA,CAACtB,WAAW,qBACVP,KAAA,CAAA6B,aAAA,CAACzB,WAAW;IACVW,SAAS,EAAEA,SAAU;IACrBiB,SAAS,EAAEL,SAAU;IACrBM,KAAK,EAAEN;EAAU,GAEhBb,QACU,CACF,CACL,CACS,CACM,CAAC;AAElC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from './LegendsPlatform';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/components/LegendsPlatform/index.ts"],"sourcesContent":["export * from './LegendsPlatform';\n"],"mappings":"AAAA,cAAc,mBAAmB","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ import React, { useMemo } from 'react';
2
+ import { Provider, createStore } from 'jotai';
3
+ import { LiveKitRoom, RoomAudioRenderer } from '@livekit/components-react';
4
+ import { Provider as BusProvider } from 'react-bus';
5
+ import { SdkConsumerContext } from '../../sdk-consumer';
6
+ /**
7
+ * @deprecated temporary solution, use LegendsPlatform instead
8
+ */
9
+ export function LegendsPlatformQLess(props) {
10
+ const chatId = props.chatId,
11
+ namespace = props.namespace,
12
+ children = props.children,
13
+ _props$tools = props.tools,
14
+ tools = _props$tools === void 0 ? {} : _props$tools;
15
+ const store = useMemo(() => props.store || createStore(), [props.store]);
16
+ const consumer = useMemo(() => ({
17
+ chatId,
18
+ namespace,
19
+ tools
20
+ }), [chatId, namespace, tools]);
21
+ return /*#__PURE__*/React.createElement(SdkConsumerContext.Provider, {
22
+ value: consumer
23
+ }, /*#__PURE__*/React.createElement(Provider, {
24
+ store: store
25
+ }, /*#__PURE__*/React.createElement(BusProvider, null, /*#__PURE__*/React.createElement(LiveKitRoom, {
26
+ serverUrl: undefined,
27
+ token: undefined
28
+ }, /*#__PURE__*/React.createElement(RoomAudioRenderer, null), children))));
29
+ }
30
+ //# sourceMappingURL=LegendsPlatform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","Provider","createStore","LiveKitRoom","RoomAudioRenderer","BusProvider","SdkConsumerContext","LegendsPlatformQLess","props","chatId","namespace","children","_props$tools","tools","store","consumer","createElement","value","serverUrl","undefined","token"],"sources":["../../../../src/components/LegendsPlatformQLess/LegendsPlatform.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Provider, createStore } from 'jotai';\nimport { type Store } from 'jotai/vanilla/store';\nimport { LiveKitRoom, RoomAudioRenderer } from '@livekit/components-react';\nimport { Provider as BusProvider } from 'react-bus';\n\nimport type { ToolsRegistry } from '../../hooks/useTools/model/types';\nimport { SdkConsumerContext, ISdkConsumerContext } from '../../sdk-consumer';\n\ntype LegendsPlatformProps = ISdkConsumerContext & {\n store?: Store;\n tools?: ToolsRegistry;\n children: React.ReactNode;\n};\n\n/**\n * @deprecated temporary solution, use LegendsPlatform instead\n */\nexport function LegendsPlatformQLess(props: LegendsPlatformProps) {\n const { chatId, namespace, children, tools = {} } = props;\n\n const store = useMemo(() => props.store || createStore(), [props.store]);\n\n const consumer = useMemo(\n () => ({ chatId, namespace, tools }),\n [chatId, namespace, tools],\n );\n\n return (\n <SdkConsumerContext.Provider value={consumer}>\n <Provider store={store}>\n <BusProvider>\n <LiveKitRoom serverUrl={undefined} token={undefined}>\n <RoomAudioRenderer />\n {children}\n </LiveKitRoom>\n </BusProvider>\n </Provider>\n </SdkConsumerContext.Provider>\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AAE7C,SAASC,WAAW,EAAEC,iBAAiB,QAAQ,2BAA2B;AAC1E,SAASH,QAAQ,IAAII,WAAW,QAAQ,WAAW;AAGnD,SAASC,kBAAkB,QAA6B,oBAAoB;AAQ5E;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAACC,KAA2B,EAAE;EAChE,MAAQC,MAAM,GAAsCD,KAAK,CAAjDC,MAAM;IAAEC,SAAS,GAA2BF,KAAK,CAAzCE,SAAS;IAAEC,QAAQ,GAAiBH,KAAK,CAA9BG,QAAQ;IAAAC,YAAA,GAAiBJ,KAAK,CAApBK,KAAK;IAALA,KAAK,GAAAD,YAAA,cAAG,CAAC,CAAC,GAAAA,YAAA;EAE/C,MAAME,KAAK,GAAGd,OAAO,CAAC,MAAMQ,KAAK,CAACM,KAAK,IAAIZ,WAAW,CAAC,CAAC,EAAE,CAACM,KAAK,CAACM,KAAK,CAAC,CAAC;EAExE,MAAMC,QAAQ,GAAGf,OAAO,CACtB,OAAO;IAAES,MAAM;IAAEC,SAAS;IAAEG;EAAM,CAAC,CAAC,EACpC,CAACJ,MAAM,EAAEC,SAAS,EAAEG,KAAK,CAC3B,CAAC;EAED,oBACEd,KAAA,CAAAiB,aAAA,CAACV,kBAAkB,CAACL,QAAQ;IAACgB,KAAK,EAAEF;EAAS,gBAC3ChB,KAAA,CAAAiB,aAAA,CAACf,QAAQ;IAACa,KAAK,EAAEA;EAAM,gBACrBf,KAAA,CAAAiB,aAAA,CAACX,WAAW,qBACVN,KAAA,CAAAiB,aAAA,CAACb,WAAW;IAACe,SAAS,EAAEC,SAAU;IAACC,KAAK,EAAED;EAAU,gBAClDpB,KAAA,CAAAiB,aAAA,CAACZ,iBAAiB,MAAE,CAAC,EACpBO,QACU,CACF,CACL,CACiB,CAAC;AAElC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from './LegendsPlatform';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/components/LegendsPlatformQLess/index.ts"],"sourcesContent":["export * from './LegendsPlatform';\n"],"mappings":"AAAA,cAAc,mBAAmB","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
+ const _excluded = ["type", "fallback", "fit", "automirror", "pip", "onPiPEnter", "onPiPExit", "onPiPError", "pipFallback", "style"];
4
+ import React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react';
5
+ import invariant from 'invariant';
6
+ import { useAtomValue } from 'jotai';
7
+ import { state } from '../../conversation';
8
+ import { useAttachVideo } from './useAttachVideo';
9
+ import { useEmitConversationEvent } from '../../hooks/useConversationEvents/useEmitConversationEvent';
10
+ import { usePictureInPictureAuto, pipActiveAtom } from '../../hooks/usePictureInPicture';
11
+ export const Video = /*#__PURE__*/forwardRef((props, ref) => {
12
+ const type = props.type,
13
+ _props$fallback = props.fallback,
14
+ Fallback = _props$fallback === void 0 ? () => null : _props$fallback,
15
+ _props$fit = props.fit,
16
+ fit = _props$fit === void 0 ? 'cover' : _props$fit,
17
+ _props$automirror = props.automirror,
18
+ automirror = _props$automirror === void 0 ? true : _props$automirror,
19
+ _props$pip = props.pip,
20
+ pip = _props$pip === void 0 ? false : _props$pip,
21
+ onPiPEnter = props.onPiPEnter,
22
+ onPiPExit = props.onPiPExit,
23
+ onPiPError = props.onPiPError,
24
+ pipFallback = props.pipFallback,
25
+ style = props.style,
26
+ videoProps = _objectWithoutPropertiesLoose(props, _excluded);
27
+ const _useState = useState(props.mirror),
28
+ mirror = _useState[0],
29
+ setMirror = _useState[1];
30
+ const conversation = useAtomValue(state.conversation);
31
+ const emitEvent = useEmitConversationEvent();
32
+ invariant(conversation, 'Conversation is not initialized');
33
+ invariant(type === 'screen' ? true : conversation.type === 'video', 'Conversation type is not video');
34
+ const _useAttachVideo = useAttachVideo({
35
+ type
36
+ }),
37
+ videoRef = _useAttachVideo.videoRef,
38
+ isVideoPlayable = _useAttachVideo.isVideoPlayable;
39
+ usePictureInPictureAuto({
40
+ element: pip && isVideoPlayable ? videoRef.current : null,
41
+ onEnter: onPiPEnter,
42
+ onExit: onPiPExit,
43
+ onError: onPiPError
44
+ });
45
+ const isPiPActive = useAtomValue(pipActiveAtom);
46
+ useImperativeHandle(ref, () => videoRef.current);
47
+ const showPipFallback = pip && isPiPActive;
48
+ useEffect(() => {
49
+ setMirror(props.mirror ?? (automirror && type === 'user'));
50
+ }, [automirror, type, props.mirror]);
51
+ useEffect(() => {
52
+ if (isVideoPlayable && type === 'agent') {
53
+ emitEvent('agentVideoLoaded', {
54
+ videoRef
55
+ });
56
+ }
57
+ }, [isVideoPlayable, type]);
58
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("video", _extends({
59
+ ref: videoRef,
60
+ muted: true,
61
+ playsInline: true,
62
+ autoPlay: true,
63
+ style: {
64
+ objectFit: fit,
65
+ display: isVideoPlayable && !showPipFallback ? 'block' : 'none',
66
+ transform: mirror ? 'scaleX(-1)' : 'none',
67
+ ...style
68
+ }
69
+ }, videoProps)), !isVideoPlayable && /*#__PURE__*/React.createElement(Fallback, {
70
+ style: style
71
+ }), showPipFallback && pipFallback);
72
+ });
73
+ //# sourceMappingURL=Video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","forwardRef","useEffect","useImperativeHandle","useState","invariant","useAtomValue","state","useAttachVideo","useEmitConversationEvent","usePictureInPictureAuto","pipActiveAtom","Video","props","ref","type","_props$fallback","fallback","Fallback","_props$fit","fit","_props$automirror","automirror","_props$pip","pip","onPiPEnter","onPiPExit","onPiPError","pipFallback","style","videoProps","_objectWithoutPropertiesLoose","_excluded","_useState","mirror","setMirror","conversation","emitEvent","_useAttachVideo","videoRef","isVideoPlayable","element","current","onEnter","onExit","onError","isPiPActive","showPipFallback","createElement","Fragment","_extends","muted","playsInline","autoPlay","objectFit","display","transform"],"sources":["../../../../src/components/Video/Video.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport invariant from 'invariant';\nimport { useAtomValue } from 'jotai';\nimport { state } from '../../conversation';\nimport { useAttachVideo } from './useAttachVideo';\nimport { useEmitConversationEvent } from '../../hooks/useConversationEvents/useEmitConversationEvent';\nimport {\n usePictureInPictureAuto,\n pipActiveAtom,\n} from '../../hooks/usePictureInPicture';\nimport { type VideoProps } from './types';\n\nexport const Video = forwardRef<HTMLVideoElement, VideoProps>((props, ref) => {\n const {\n type,\n fallback: Fallback = () => null,\n fit = 'cover',\n automirror = true,\n pip = false,\n onPiPEnter,\n onPiPExit,\n onPiPError,\n pipFallback,\n style,\n ...videoProps\n } = props;\n\n const [mirror, setMirror] = useState(props.mirror);\n\n const conversation = useAtomValue(state.conversation);\n const emitEvent = useEmitConversationEvent();\n\n invariant(conversation, 'Conversation is not initialized');\n invariant(\n type === 'screen' ? true : conversation.type === 'video',\n 'Conversation type is not video',\n );\n\n const { videoRef, isVideoPlayable } = useAttachVideo({ type });\n\n usePictureInPictureAuto({\n element: pip && isVideoPlayable ? videoRef.current : null,\n onEnter: onPiPEnter,\n onExit: onPiPExit,\n onError: onPiPError,\n });\n\n const isPiPActive = useAtomValue(pipActiveAtom);\n\n useImperativeHandle(ref, () => videoRef.current!);\n\n const showPipFallback = pip && isPiPActive;\n\n useEffect(() => {\n setMirror(props.mirror ?? (automirror && type === 'user'));\n }, [automirror, type, props.mirror]);\n\n useEffect(() => {\n if (isVideoPlayable && type === 'agent') {\n emitEvent('agentVideoLoaded', {\n videoRef,\n });\n }\n }, [isVideoPlayable, type]);\n\n return (\n <>\n <video\n ref={videoRef}\n muted\n playsInline\n autoPlay\n style={{\n objectFit: fit,\n display: isVideoPlayable && !showPipFallback ? 'block' : 'none',\n transform: mirror ? 'scaleX(-1)' : 'none',\n ...style,\n }}\n {...videoProps}\n />\n {!isVideoPlayable && <Fallback style={style} />}\n {showPipFallback && pipFallback}\n </>\n );\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export * from './Video';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/components/Video/index.ts"],"sourcesContent":["export * from './Video';\nexport * from './types';\n"],"mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,SAAS","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/components/Video/types.ts"],"sourcesContent":["import React from 'react';\n\nexport type FallbackProps = {\n style?: React.CSSProperties;\n};\n\nexport type VideoProps = {\n mirror?: boolean;\n automirror?: boolean;\n type: 'user' | 'agent' | 'screen';\n fit?: 'contain' | 'cover';\n fallback?: React.ComponentType<FallbackProps>;\n /** Enable Picture-in-Picture mode */\n pip?: boolean;\n /** Callback when entering PiP */\n onPiPEnter?: () => void;\n /** Callback when exiting PiP */\n onPiPExit?: () => void;\n /** Callback when PiP error occurs */\n onPiPError?: (error: Error) => void;\n /** Content to render when PiP is active */\n pipFallback?: React.ReactNode;\n} & Omit<React.VideoHTMLAttributes<HTMLVideoElement>, 'onResize'>;\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import { useParticipantTrack, Source } from '../../hooks/useParticipantTrack';
3
+ export function useAttachVideo(_ref) {
4
+ let type = _ref.type;
5
+ const ref = useRef(null);
6
+ const _useParticipantTrack = useParticipantTrack({
7
+ type,
8
+ source: type === 'screen' ? Source.ScreenShare : Source.Camera
9
+ }),
10
+ track = _useParticipantTrack.track,
11
+ isMuted = _useParticipantTrack.isMuted;
12
+ useEffect(() => {
13
+ const videoElement = ref.current;
14
+ if (!videoElement || !track) {
15
+ return;
16
+ }
17
+ track.attach(videoElement);
18
+ return () => {
19
+ track.detach(videoElement);
20
+ };
21
+ }, [track]);
22
+ return {
23
+ isVideoPlayable: track && !isMuted,
24
+ videoRef: ref
25
+ };
26
+ }
27
+ //# sourceMappingURL=useAttachVideo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useParticipantTrack","Source","useAttachVideo","_ref","type","ref","_useParticipantTrack","source","ScreenShare","Camera","track","isMuted","videoElement","current","attach","detach","isVideoPlayable","videoRef"],"sources":["../../../../src/components/Video/useAttachVideo.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { useParticipantTrack, Source } from '../../hooks/useParticipantTrack';\n\ntype UseAttachVideoProps = {\n type: 'user' | 'agent' | 'screen';\n};\n\nexport function useAttachVideo({ type }: UseAttachVideoProps) {\n const ref = useRef<HTMLVideoElement>(null);\n\n const { track, isMuted } = useParticipantTrack({\n type,\n source: type === 'screen' ? Source.ScreenShare : Source.Camera,\n });\n\n useEffect(() => {\n const videoElement = ref.current;\n\n if (!videoElement || !track) {\n return;\n }\n\n track.attach(videoElement);\n\n return () => {\n track.detach(videoElement);\n };\n }, [track]);\n\n return {\n isVideoPlayable: track && !isMuted,\n videoRef: ref,\n };\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,mBAAmB,EAAEC,MAAM,QAAQ,iCAAiC;AAM7E,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAAgC;EAAA,IAA7BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EACnC,MAAMC,GAAG,GAAGN,MAAM,CAAmB,IAAI,CAAC;EAE1C,MAAAO,oBAAA,GAA2BN,mBAAmB,CAAC;MAC7CI,IAAI;MACJG,MAAM,EAAEH,IAAI,KAAK,QAAQ,GAAGH,MAAM,CAACO,WAAW,GAAGP,MAAM,CAACQ;IAC1D,CAAC,CAAC;IAHMC,KAAK,GAAAJ,oBAAA,CAALI,KAAK;IAAEC,OAAO,GAAAL,oBAAA,CAAPK,OAAO;EAKtBb,SAAS,CAAC,MAAM;IACd,MAAMc,YAAY,GAAGP,GAAG,CAACQ,OAAO;IAEhC,IAAI,CAACD,YAAY,IAAI,CAACF,KAAK,EAAE;MAC3B;IACF;IAEAA,KAAK,CAACI,MAAM,CAACF,YAAY,CAAC;IAE1B,OAAO,MAAM;MACXF,KAAK,CAACK,MAAM,CAACH,YAAY,CAAC;IAC5B,CAAC;EACH,CAAC,EAAE,CAACF,KAAK,CAAC,CAAC;EAEX,OAAO;IACLM,eAAe,EAAEN,KAAK,IAAI,CAACC,OAAO;IAClCM,QAAQ,EAAEZ;EACZ,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ import { transparentBackground, render } from './effects';
3
+ import invariant from 'invariant';
4
+ export function VideoPostProcessor(_ref) {
5
+ let effects = _ref.effects,
6
+ children = _ref.children;
7
+ const $video = useRef(null);
8
+ const $canvas = useRef(null);
9
+ useEffect(() => {
10
+ let id = requestAnimationFrame(init);
11
+ return () => {
12
+ cancelAnimationFrame(id);
13
+ };
14
+ function init() {
15
+ if (!$video.current || !$canvas.current || !$video.current.videoWidth || !$video.current.videoHeight) {
16
+ id = requestAnimationFrame(init);
17
+ return;
18
+ }
19
+ id = requestAnimationFrame(process);
20
+ }
21
+ function process() {
22
+ invariant($video.current, 'Video is not initialized');
23
+ invariant($canvas.current, 'Canvas is not initialized');
24
+ render($video.current, $canvas.current);
25
+ for (const effect of effects) {
26
+ switch (effect) {
27
+ case 'transparent-background':
28
+ transparentBackground($canvas.current);
29
+ break;
30
+ }
31
+ }
32
+ id = requestAnimationFrame(process);
33
+ }
34
+ }, [effects.join(',')]);
35
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("canvas", {
36
+ ref: $canvas,
37
+ style: children.props.style,
38
+ className: children.props.className
39
+ }), /*#__PURE__*/React.cloneElement(children, {
40
+ ...children.props,
41
+ ref: $video,
42
+ style: {
43
+ display: 'none'
44
+ }
45
+ }));
46
+ }
47
+ //# sourceMappingURL=VideoPostProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useRef","transparentBackground","render","invariant","VideoPostProcessor","_ref","effects","children","$video","$canvas","id","requestAnimationFrame","init","cancelAnimationFrame","current","videoWidth","videoHeight","process","effect","join","createElement","Fragment","ref","style","props","className","cloneElement","display"],"sources":["../../../../src/components/VideoPostProcessor/VideoPostProcessor.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\n\nimport { transparentBackground, render } from './effects';\nimport invariant from 'invariant';\n\ntype VideoPostProcessorEffect = 'transparent-background';\n\ninterface VideoPostProcessorProps {\n effects: VideoPostProcessorEffect[];\n\n children: React.ReactElement<\n React.VideoHTMLAttributes<HTMLVideoElement> & {\n ref: React.RefObject<HTMLVideoElement>;\n }\n >;\n}\n\nexport function VideoPostProcessor({\n effects,\n children,\n}: VideoPostProcessorProps) {\n const $video = useRef<HTMLVideoElement>(null);\n const $canvas = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n let id = requestAnimationFrame(init);\n\n return () => {\n cancelAnimationFrame(id);\n };\n\n function init() {\n if (\n !$video.current ||\n !$canvas.current ||\n !$video.current.videoWidth ||\n !$video.current.videoHeight\n ) {\n id = requestAnimationFrame(init);\n return;\n }\n\n id = requestAnimationFrame(process);\n }\n\n function process() {\n invariant($video.current, 'Video is not initialized');\n invariant($canvas.current, 'Canvas is not initialized');\n\n render($video.current, $canvas.current);\n\n for (const effect of effects) {\n switch (effect) {\n case 'transparent-background':\n transparentBackground($canvas.current);\n break;\n }\n }\n\n id = requestAnimationFrame(process);\n }\n }, [effects.join(',')]);\n\n return (\n <>\n <canvas\n ref={$canvas}\n style={children.props.style}\n className={children.props.className}\n />\n\n {React.cloneElement(children, {\n ...children.props,\n ref: $video,\n style: { display: 'none' },\n })}\n </>\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEhD,SAASC,qBAAqB,EAAEC,MAAM,QAAQ,WAAW;AACzD,OAAOC,SAAS,MAAM,WAAW;AAcjC,OAAO,SAASC,kBAAkBA,CAAAC,IAAA,EAGN;EAAA,IAF1BC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EAER,MAAMC,MAAM,GAAGR,MAAM,CAAmB,IAAI,CAAC;EAC7C,MAAMS,OAAO,GAAGT,MAAM,CAAoB,IAAI,CAAC;EAE/CD,SAAS,CAAC,MAAM;IACd,IAAIW,EAAE,GAAGC,qBAAqB,CAACC,IAAI,CAAC;IAEpC,OAAO,MAAM;MACXC,oBAAoB,CAACH,EAAE,CAAC;IAC1B,CAAC;IAED,SAASE,IAAIA,CAAA,EAAG;MACd,IACE,CAACJ,MAAM,CAACM,OAAO,IACf,CAACL,OAAO,CAACK,OAAO,IAChB,CAACN,MAAM,CAACM,OAAO,CAACC,UAAU,IAC1B,CAACP,MAAM,CAACM,OAAO,CAACE,WAAW,EAC3B;QACAN,EAAE,GAAGC,qBAAqB,CAACC,IAAI,CAAC;QAChC;MACF;MAEAF,EAAE,GAAGC,qBAAqB,CAACM,OAAO,CAAC;IACrC;IAEA,SAASA,OAAOA,CAAA,EAAG;MACjBd,SAAS,CAACK,MAAM,CAACM,OAAO,EAAE,0BAA0B,CAAC;MACrDX,SAAS,CAACM,OAAO,CAACK,OAAO,EAAE,2BAA2B,CAAC;MAEvDZ,MAAM,CAACM,MAAM,CAACM,OAAO,EAAEL,OAAO,CAACK,OAAO,CAAC;MAEvC,KAAK,MAAMI,MAAM,IAAIZ,OAAO,EAAE;QAC5B,QAAQY,MAAM;UACZ,KAAK,wBAAwB;YAC3BjB,qBAAqB,CAACQ,OAAO,CAACK,OAAO,CAAC;YACtC;QACJ;MACF;MAEAJ,EAAE,GAAGC,qBAAqB,CAACM,OAAO,CAAC;IACrC;EACF,CAAC,EAAE,CAACX,OAAO,CAACa,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;EAEvB,oBACErB,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,qBACEvB,KAAA,CAAAsB,aAAA;IACEE,GAAG,EAAEb,OAAQ;IACbc,KAAK,EAAEhB,QAAQ,CAACiB,KAAK,CAACD,KAAM;IAC5BE,SAAS,EAAElB,QAAQ,CAACiB,KAAK,CAACC;EAAU,CACrC,CAAC,eAED3B,KAAK,CAAC4B,YAAY,CAACnB,QAAQ,EAAE;IAC5B,GAAGA,QAAQ,CAACiB,KAAK;IACjBF,GAAG,EAAEd,MAAM;IACXe,KAAK,EAAE;MAAEI,OAAO,EAAE;IAAO;EAC3B,CAAC,CACD,CAAC;AAEP","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ export function transparentBackground(canvas) {
2
+ const context = canvas.getContext('2d');
3
+ const frame = context.getImageData(0, 0, canvas.width, canvas.height);
4
+ for (let i = 0; i < frame.data.length; i += 4) {
5
+ const R = frame.data[i];
6
+ const G = frame.data[i + 1];
7
+ const B = frame.data[i + 2];
8
+ if (isGreen(R, G, B)) {
9
+ frame.data[i + 3] = 0;
10
+ }
11
+ }
12
+ context.putImageData(frame, 0, 0);
13
+ }
14
+ export function render(source, canvas) {
15
+ const context = canvas.getContext('2d');
16
+ canvas.width = source.videoWidth;
17
+ canvas.height = source.videoHeight;
18
+ context.imageSmoothingEnabled = true;
19
+ context.imageSmoothingQuality = 'high';
20
+ context.drawImage(source, 0, 0, canvas.width, canvas.height);
21
+ }
22
+ function isGreen(R, G, B) {
23
+ return B < 0.8 * G && R < 0.64 * G;
24
+ }
25
+ //# sourceMappingURL=effects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["transparentBackground","canvas","context","getContext","frame","getImageData","width","height","i","data","length","R","G","B","isGreen","putImageData","render","source","videoWidth","videoHeight","imageSmoothingEnabled","imageSmoothingQuality","drawImage"],"sources":["../../../../src/components/VideoPostProcessor/effects.ts"],"sourcesContent":["export function transparentBackground(canvas: HTMLCanvasElement) {\n const context = canvas.getContext('2d')!;\n\n const frame = context.getImageData(0, 0, canvas.width, canvas.height);\n\n for (let i = 0; i < frame.data.length; i += 4) {\n const R = frame.data[i];\n const G = frame.data[i + 1];\n const B = frame.data[i + 2];\n\n if (isGreen(R, G, B)) {\n frame.data[i + 3] = 0;\n }\n }\n\n context.putImageData(frame, 0, 0);\n}\n\nexport function render(source: HTMLVideoElement, canvas: HTMLCanvasElement) {\n const context = canvas.getContext('2d')!;\n\n canvas.width = source.videoWidth;\n canvas.height = source.videoHeight;\n\n context.imageSmoothingEnabled = true;\n context.imageSmoothingQuality = 'high';\n\n context.drawImage(source, 0, 0, canvas.width, canvas.height);\n}\n\nfunction isGreen(R: number, G: number, B: number) {\n return B < 0.8 * G && R < 0.64 * G;\n}\n"],"mappings":"AAAA,OAAO,SAASA,qBAAqBA,CAACC,MAAyB,EAAE;EAC/D,MAAMC,OAAO,GAAGD,MAAM,CAACE,UAAU,CAAC,IAAI,CAAE;EAExC,MAAMC,KAAK,GAAGF,OAAO,CAACG,YAAY,CAAC,CAAC,EAAE,CAAC,EAAEJ,MAAM,CAACK,KAAK,EAAEL,MAAM,CAACM,MAAM,CAAC;EAErE,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,KAAK,CAACK,IAAI,CAACC,MAAM,EAAEF,CAAC,IAAI,CAAC,EAAE;IAC7C,MAAMG,CAAC,GAAGP,KAAK,CAACK,IAAI,CAACD,CAAC,CAAC;IACvB,MAAMI,CAAC,GAAGR,KAAK,CAACK,IAAI,CAACD,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAMK,CAAC,GAAGT,KAAK,CAACK,IAAI,CAACD,CAAC,GAAG,CAAC,CAAC;IAE3B,IAAIM,OAAO,CAACH,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC,EAAE;MACpBT,KAAK,CAACK,IAAI,CAACD,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;IACvB;EACF;EAEAN,OAAO,CAACa,YAAY,CAACX,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACnC;AAEA,OAAO,SAASY,MAAMA,CAACC,MAAwB,EAAEhB,MAAyB,EAAE;EAC1E,MAAMC,OAAO,GAAGD,MAAM,CAACE,UAAU,CAAC,IAAI,CAAE;EAExCF,MAAM,CAACK,KAAK,GAAGW,MAAM,CAACC,UAAU;EAChCjB,MAAM,CAACM,MAAM,GAAGU,MAAM,CAACE,WAAW;EAElCjB,OAAO,CAACkB,qBAAqB,GAAG,IAAI;EACpClB,OAAO,CAACmB,qBAAqB,GAAG,MAAM;EAEtCnB,OAAO,CAACoB,SAAS,CAACL,MAAM,EAAE,CAAC,EAAE,CAAC,EAAEhB,MAAM,CAACK,KAAK,EAAEL,MAAM,CAACM,MAAM,CAAC;AAC9D;AAEA,SAASO,OAAOA,CAACH,CAAS,EAAEC,CAAS,EAAEC,CAAS,EAAE;EAChD,OAAOA,CAAC,GAAG,GAAG,GAAGD,CAAC,IAAID,CAAC,GAAG,IAAI,GAAGC,CAAC;AACpC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from './VideoPostProcessor';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/components/VideoPostProcessor/index.ts"],"sourcesContent":["export * from './VideoPostProcessor';\n"],"mappings":"AAAA,cAAc,sBAAsB","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
+ const _excluded = ["fallback", "style", "constraints", "automirror"];
4
+ import React, { useEffect, useRef } from 'react';
5
+ import { useVideoPreviewStream } from './useVideoPreviewStream';
6
+ import { useCamera } from '../../hooks/useCamera';
7
+ export function VideoPreview(props) {
8
+ const _props$fallback = props.fallback,
9
+ Fallback = _props$fallback === void 0 ? () => null : _props$fallback,
10
+ style = props.style,
11
+ constraints = props.constraints,
12
+ _props$automirror = props.automirror,
13
+ automirror = _props$automirror === void 0 ? true : _props$automirror,
14
+ videoProps = _objectWithoutPropertiesLoose(props, _excluded);
15
+ const videoRef = useRef(null);
16
+ const _useCamera = useCamera(),
17
+ deviceId = _useCamera.deviceId,
18
+ enabled = _useCamera.enabled;
19
+ const _useVideoPreviewStrea = useVideoPreviewStream({
20
+ deviceId,
21
+ constraints,
22
+ enabled
23
+ }),
24
+ stream = _useVideoPreviewStrea.stream,
25
+ status = _useVideoPreviewStrea.status;
26
+ useEffect(() => {
27
+ const videoElement = videoRef.current;
28
+ if (!videoElement) {
29
+ return;
30
+ }
31
+ videoElement.srcObject = stream;
32
+ }, [stream]);
33
+ const isVideoPlayable = status === 'ready' && stream !== null;
34
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("video", _extends({
35
+ ref: videoRef,
36
+ muted: true,
37
+ playsInline: true,
38
+ autoPlay: true,
39
+ style: {
40
+ ...style,
41
+ display: isVideoPlayable ? 'block' : 'none',
42
+ transform: automirror ? 'scaleX(-1)' : 'none'
43
+ }
44
+ }, videoProps)), !isVideoPlayable && /*#__PURE__*/React.createElement(Fallback, {
45
+ style: style
46
+ }));
47
+ }
48
+ //# sourceMappingURL=VideoPreview.js.map