@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.
- package/README.md +186 -0
- package/components/package.json +5 -0
- package/dist/cjs/components/Audio/Audio.js +31 -0
- package/dist/cjs/components/Audio/Audio.js.map +1 -0
- package/dist/cjs/components/Audio/index.js +10 -0
- package/dist/cjs/components/Audio/index.js.map +1 -0
- package/dist/cjs/components/ChromaKey/ChromaKey.js +127 -0
- package/dist/cjs/components/ChromaKey/ChromaKey.js.map +1 -0
- package/dist/cjs/components/ChromaKey/chroma-key.js +99 -0
- package/dist/cjs/components/ChromaKey/chroma-key.js.map +1 -0
- package/dist/cjs/components/ChromaKey/index.js +10 -0
- package/dist/cjs/components/ChromaKey/index.js.map +1 -0
- package/dist/cjs/components/ChromaKey/shaders/chroma-key.shader.js +44 -0
- package/dist/cjs/components/ChromaKey/shaders/chroma-key.shader.js.map +1 -0
- package/dist/cjs/components/ChromaKey/shaders/index.js +10 -0
- package/dist/cjs/components/ChromaKey/shaders/index.js.map +1 -0
- package/dist/cjs/components/ChromaKey/shaders/vertex-align.shader.js +12 -0
- package/dist/cjs/components/ChromaKey/shaders/vertex-align.shader.js.map +1 -0
- package/dist/cjs/components/ChromaKey/types.js +4 -0
- package/dist/cjs/components/ChromaKey/types.js.map +1 -0
- package/dist/cjs/components/LegendsPlatform/LegendsPlatform.js +91 -0
- package/dist/cjs/components/LegendsPlatform/LegendsPlatform.js.map +1 -0
- package/dist/cjs/components/LegendsPlatform/index.js +10 -0
- package/dist/cjs/components/LegendsPlatform/index.js.map +1 -0
- package/dist/cjs/components/LegendsPlatformQLess/LegendsPlatform.js +69 -0
- package/dist/cjs/components/LegendsPlatformQLess/LegendsPlatform.js.map +1 -0
- package/dist/cjs/components/LegendsPlatformQLess/index.js +10 -0
- package/dist/cjs/components/LegendsPlatformQLess/index.js.map +1 -0
- package/dist/cjs/components/Video/Video.js +88 -0
- package/dist/cjs/components/Video/Video.js.map +1 -0
- package/dist/cjs/components/Video/index.js +16 -0
- package/dist/cjs/components/Video/index.js.map +1 -0
- package/dist/cjs/components/Video/types.js +4 -0
- package/dist/cjs/components/Video/types.js.map +1 -0
- package/dist/cjs/components/Video/useAttachVideo.js +33 -0
- package/dist/cjs/components/Video/useAttachVideo.js.map +1 -0
- package/dist/cjs/components/VideoPostProcessor/VideoPostProcessor.js +61 -0
- package/dist/cjs/components/VideoPostProcessor/VideoPostProcessor.js.map +1 -0
- package/dist/cjs/components/VideoPostProcessor/effects.js +30 -0
- package/dist/cjs/components/VideoPostProcessor/effects.js.map +1 -0
- package/dist/cjs/components/VideoPostProcessor/index.js +10 -0
- package/dist/cjs/components/VideoPostProcessor/index.js.map +1 -0
- package/dist/cjs/components/VideoPreview/VideoPreview.js +68 -0
- package/dist/cjs/components/VideoPreview/VideoPreview.js.map +1 -0
- package/dist/cjs/components/VideoPreview/index.js +16 -0
- package/dist/cjs/components/VideoPreview/index.js.map +1 -0
- package/dist/cjs/components/VideoPreview/types.js +4 -0
- package/dist/cjs/components/VideoPreview/types.js.map +1 -0
- package/dist/cjs/components/VideoPreview/useVideoPreviewStream.js +85 -0
- package/dist/cjs/components/VideoPreview/useVideoPreviewStream.js.map +1 -0
- package/dist/cjs/components.js +34 -0
- package/dist/cjs/components.js.map +1 -0
- package/dist/cjs/conversation/index.js +18 -0
- package/dist/cjs/conversation/index.js.map +1 -0
- package/dist/cjs/conversation/state.js +24 -0
- package/dist/cjs/conversation/state.js.map +1 -0
- package/dist/cjs/conversation/types.js +4 -0
- package/dist/cjs/conversation/types.js.map +1 -0
- package/dist/cjs/conversation/utils.js +25 -0
- package/dist/cjs/conversation/utils.js.map +1 -0
- package/dist/cjs/external-types.d.js +2 -0
- package/dist/cjs/external-types.d.js.map +1 -0
- package/dist/cjs/hooks/index.js +58 -0
- package/dist/cjs/hooks/index.js.map +1 -0
- package/dist/cjs/hooks/useActivityState/index.js +10 -0
- package/dist/cjs/hooks/useActivityState/index.js.map +1 -0
- package/dist/cjs/hooks/useActivityState/useActivityState.js +15 -0
- package/dist/cjs/hooks/useActivityState/useActivityState.js.map +1 -0
- package/dist/cjs/hooks/useAudio/index.js +10 -0
- package/dist/cjs/hooks/useAudio/index.js.map +1 -0
- package/dist/cjs/hooks/useAudio/useAudio.js +28 -0
- package/dist/cjs/hooks/useAudio/useAudio.js.map +1 -0
- package/dist/cjs/hooks/useAudioLevel/helpers.js +28 -0
- package/dist/cjs/hooks/useAudioLevel/helpers.js.map +1 -0
- package/dist/cjs/hooks/useAudioLevel/index.js +10 -0
- package/dist/cjs/hooks/useAudioLevel/index.js.map +1 -0
- package/dist/cjs/hooks/useAudioLevel/types.js +4 -0
- package/dist/cjs/hooks/useAudioLevel/types.js.map +1 -0
- package/dist/cjs/hooks/useAudioLevel/useAudioLevel.js +49 -0
- package/dist/cjs/hooks/useAudioLevel/useAudioLevel.js.map +1 -0
- package/dist/cjs/hooks/useCamera/index.js +10 -0
- package/dist/cjs/hooks/useCamera/index.js.map +1 -0
- package/dist/cjs/hooks/useCamera/useCamera.js +32 -0
- package/dist/cjs/hooks/useCamera/useCamera.js.map +1 -0
- package/dist/cjs/hooks/useConnectionState/index.js +10 -0
- package/dist/cjs/hooks/useConnectionState/index.js.map +1 -0
- package/dist/cjs/hooks/useConnectionState/useConnectionState.js +15 -0
- package/dist/cjs/hooks/useConnectionState/useConnectionState.js.map +1 -0
- package/dist/cjs/hooks/useConversation/index.js +16 -0
- package/dist/cjs/hooks/useConversation/index.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/constants.js +15 -0
- package/dist/cjs/hooks/useConversation/livekit/constants.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/types.js +4 -0
- package/dist/cjs/hooks/useConversation/livekit/types.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/useConversation.js +371 -0
- package/dist/cjs/hooks/useConversation/livekit/useConversation.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/dataChannel.js +25 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/dataChannel.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/index.js +40 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/index.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/messaging.js +11 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/messaging.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/participants.js +34 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/participants.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/serialization.js +13 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/serialization.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/toolAdapter.js +18 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/toolAdapter.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/transcriptions.js +15 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/transcriptions.js.map +1 -0
- package/dist/cjs/hooks/useConversation/types.js +4 -0
- package/dist/cjs/hooks/useConversation/types.js.map +1 -0
- package/dist/cjs/hooks/useConversation/useConversation.js +99 -0
- package/dist/cjs/hooks/useConversation/useConversation.js.map +1 -0
- package/dist/cjs/hooks/useConversationEvents/index.js +22 -0
- package/dist/cjs/hooks/useConversationEvents/index.js.map +1 -0
- package/dist/cjs/hooks/useConversationEvents/types.js +4 -0
- package/dist/cjs/hooks/useConversationEvents/types.js.map +1 -0
- package/dist/cjs/hooks/useConversationEvents/useConversationEvent.js +11 -0
- package/dist/cjs/hooks/useConversationEvents/useConversationEvent.js.map +1 -0
- package/dist/cjs/hooks/useConversationEvents/useConversationEvents.js +20 -0
- package/dist/cjs/hooks/useConversationEvents/useConversationEvents.js.map +1 -0
- package/dist/cjs/hooks/useConversationEvents/useEmitConversationEvent.js +13 -0
- package/dist/cjs/hooks/useConversationEvents/useEmitConversationEvent.js.map +1 -0
- package/dist/cjs/hooks/useConversationStatus/index.js +10 -0
- package/dist/cjs/hooks/useConversationStatus/index.js.map +1 -0
- package/dist/cjs/hooks/useConversationStatus/useConversationStatus.js +10 -0
- package/dist/cjs/hooks/useConversationStatus/useConversationStatus.js.map +1 -0
- package/dist/cjs/hooks/useConversationTimer/index.js +10 -0
- package/dist/cjs/hooks/useConversationTimer/index.js.map +1 -0
- package/dist/cjs/hooks/useConversationTimer/useConversationTimer.js +45 -0
- package/dist/cjs/hooks/useConversationTimer/useConversationTimer.js.map +1 -0
- package/dist/cjs/hooks/useCreateConversation/helpers.js +8 -0
- package/dist/cjs/hooks/useCreateConversation/helpers.js.map +1 -0
- package/dist/cjs/hooks/useCreateConversation/index.js +10 -0
- package/dist/cjs/hooks/useCreateConversation/index.js.map +1 -0
- package/dist/cjs/hooks/useCreateConversation/useCreateConversation.js +104 -0
- package/dist/cjs/hooks/useCreateConversation/useCreateConversation.js.map +1 -0
- package/dist/cjs/hooks/useDeviceSwitcher/index.js +10 -0
- package/dist/cjs/hooks/useDeviceSwitcher/index.js.map +1 -0
- package/dist/cjs/hooks/useDeviceSwitcher/useDeviceSwitcher.js +31 -0
- package/dist/cjs/hooks/useDeviceSwitcher/useDeviceSwitcher.js.map +1 -0
- package/dist/cjs/hooks/useDevices/index.js +10 -0
- package/dist/cjs/hooks/useDevices/index.js.map +1 -0
- package/dist/cjs/hooks/useDevices/useDevices.js +49 -0
- package/dist/cjs/hooks/useDevices/useDevices.js.map +1 -0
- package/dist/cjs/hooks/useMediaPermissions/index.js +10 -0
- package/dist/cjs/hooks/useMediaPermissions/index.js.map +1 -0
- package/dist/cjs/hooks/useMediaPermissions/types.js +4 -0
- package/dist/cjs/hooks/useMediaPermissions/types.js.map +1 -0
- package/dist/cjs/hooks/useMediaPermissions/useMediaPermissions.js +46 -0
- package/dist/cjs/hooks/useMediaPermissions/useMediaPermissions.js.map +1 -0
- package/dist/cjs/hooks/useMediaRecorder/index.js +10 -0
- package/dist/cjs/hooks/useMediaRecorder/index.js.map +1 -0
- package/dist/cjs/hooks/useMediaRecorder/useMediaRecorder.js +229 -0
- package/dist/cjs/hooks/useMediaRecorder/useMediaRecorder.js.map +1 -0
- package/dist/cjs/hooks/useMediaRecorder/useReactRecorder.js +298 -0
- package/dist/cjs/hooks/useMediaRecorder/useReactRecorder.js.map +1 -0
- package/dist/cjs/hooks/useMicrophone/index.js +10 -0
- package/dist/cjs/hooks/useMicrophone/index.js.map +1 -0
- package/dist/cjs/hooks/useMicrophone/useMicrophone.js +38 -0
- package/dist/cjs/hooks/useMicrophone/useMicrophone.js.map +1 -0
- package/dist/cjs/hooks/useParticipantTrack/index.js +10 -0
- package/dist/cjs/hooks/useParticipantTrack/index.js.map +1 -0
- package/dist/cjs/hooks/useParticipantTrack/useParticipantTrack.js +32 -0
- package/dist/cjs/hooks/useParticipantTrack/useParticipantTrack.js.map +1 -0
- package/dist/cjs/hooks/usePictureInPicture/index.js +13 -0
- package/dist/cjs/hooks/usePictureInPicture/index.js.map +1 -0
- package/dist/cjs/hooks/usePictureInPicture/state.js +14 -0
- package/dist/cjs/hooks/usePictureInPicture/state.js.map +1 -0
- package/dist/cjs/hooks/usePictureInPicture/types.js +4 -0
- package/dist/cjs/hooks/usePictureInPicture/types.js.map +1 -0
- package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.js +45 -0
- package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.js.map +1 -0
- package/dist/cjs/hooks/usePictureInPicture/usePictureInPictureAuto.js +116 -0
- package/dist/cjs/hooks/usePictureInPicture/usePictureInPictureAuto.js.map +1 -0
- package/dist/cjs/hooks/useScreenShare/index.js +10 -0
- package/dist/cjs/hooks/useScreenShare/index.js.map +1 -0
- package/dist/cjs/hooks/useScreenShare/useScreenShare.js +45 -0
- package/dist/cjs/hooks/useScreenShare/useScreenShare.js.map +1 -0
- package/dist/cjs/hooks/useSpeaker/index.js +10 -0
- package/dist/cjs/hooks/useSpeaker/index.js.map +1 -0
- package/dist/cjs/hooks/useSpeaker/useSpeaker.js +31 -0
- package/dist/cjs/hooks/useSpeaker/useSpeaker.js.map +1 -0
- package/dist/cjs/hooks/useTextChat/index.js +10 -0
- package/dist/cjs/hooks/useTextChat/index.js.map +1 -0
- package/dist/cjs/hooks/useTextChat/usePendingMessages.js +23 -0
- package/dist/cjs/hooks/useTextChat/usePendingMessages.js.map +1 -0
- package/dist/cjs/hooks/useTextChat/useTextChat.js +62 -0
- package/dist/cjs/hooks/useTextChat/useTextChat.js.map +1 -0
- package/dist/cjs/hooks/useTextChat/useToolAwareSend.js +33 -0
- package/dist/cjs/hooks/useTextChat/useToolAwareSend.js.map +1 -0
- package/dist/cjs/hooks/useTools/index.js +9 -0
- package/dist/cjs/hooks/useTools/index.js.map +1 -0
- package/dist/cjs/hooks/useTools/model/errors.js +12 -0
- package/dist/cjs/hooks/useTools/model/errors.js.map +1 -0
- package/dist/cjs/hooks/useTools/model/types.js +4 -0
- package/dist/cjs/hooks/useTools/model/types.js.map +1 -0
- package/dist/cjs/hooks/useTools/public/useTools.js +11 -0
- package/dist/cjs/hooks/useTools/public/useTools.js.map +1 -0
- package/dist/cjs/hooks/useTools/runtime/createToolRuntimeSession.js +74 -0
- package/dist/cjs/hooks/useTools/runtime/createToolRuntimeSession.js.map +1 -0
- package/dist/cjs/hooks/useTools/runtime/executeToolCall.js +33 -0
- package/dist/cjs/hooks/useTools/runtime/executeToolCall.js.map +1 -0
- package/dist/cjs/hooks/useTools/runtime/executeToolCallBatch.js +41 -0
- package/dist/cjs/hooks/useTools/runtime/executeToolCallBatch.js.map +1 -0
- package/dist/cjs/hooks/useTools/runtime/types.js +4 -0
- package/dist/cjs/hooks/useTools/runtime/types.js.map +1 -0
- package/dist/cjs/hooks/useTools/runtime/useToolCallingRuntime.js +59 -0
- package/dist/cjs/hooks/useTools/runtime/useToolCallingRuntime.js.map +1 -0
- package/dist/cjs/hooks/useTools/store/state.js +30 -0
- package/dist/cjs/hooks/useTools/store/state.js.map +1 -0
- package/dist/cjs/hooks/useTools/utils/normalizeFunctionCall.js +22 -0
- package/dist/cjs/hooks/useTools/utils/normalizeFunctionCall.js.map +1 -0
- package/dist/cjs/hooks/useTools/utils/serialize.js +28 -0
- package/dist/cjs/hooks/useTools/utils/serialize.js.map +1 -0
- package/dist/cjs/hooks/useTranscriptions/index.js +16 -0
- package/dist/cjs/hooks/useTranscriptions/index.js.map +1 -0
- package/dist/cjs/hooks/useTranscriptions/types.js +4 -0
- package/dist/cjs/hooks/useTranscriptions/types.js.map +1 -0
- package/dist/cjs/hooks/useTranscriptions/useTranscription.js +16 -0
- package/dist/cjs/hooks/useTranscriptions/useTranscription.js.map +1 -0
- package/dist/cjs/hooks/useTranscriptions/useTranscriptions.js +18 -0
- package/dist/cjs/hooks/useTranscriptions/useTranscriptions.js.map +1 -0
- package/dist/cjs/hooks/useUserActivity/index.js +10 -0
- package/dist/cjs/hooks/useUserActivity/index.js.map +1 -0
- package/dist/cjs/hooks/useUserActivity/useUserActivity.js +23 -0
- package/dist/cjs/hooks/useUserActivity/useUserActivity.js.map +1 -0
- package/dist/cjs/livekit/components.js +10 -0
- package/dist/cjs/livekit/components.js.map +1 -0
- package/dist/cjs/livekit/sdk.js +10 -0
- package/dist/cjs/livekit/sdk.js.map +1 -0
- package/dist/cjs/sdk-consumer/context.js +15 -0
- package/dist/cjs/sdk-consumer/context.js.map +1 -0
- package/dist/cjs/sdk-consumer/index.js +10 -0
- package/dist/cjs/sdk-consumer/index.js.map +1 -0
- package/dist/cjs/sdk.js +148 -0
- package/dist/cjs/sdk.js.map +1 -0
- package/dist/cjs/services/FetchPersonaChatService.js +139 -0
- package/dist/cjs/services/FetchPersonaChatService.js.map +1 -0
- package/dist/cjs/test-types.d.js +2 -0
- package/dist/cjs/test-types.d.js.map +1 -0
- package/dist/cjs/types/http.js +14 -0
- package/dist/cjs/types/http.js.map +1 -0
- package/dist/cjs/types/index.js +7 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/service.js +4 -0
- package/dist/cjs/types/service.js.map +1 -0
- package/dist/cjs/utils/captureImage/captureImage.js +29 -0
- package/dist/cjs/utils/captureImage/captureImage.js.map +1 -0
- package/dist/cjs/utils/captureImage/helpers.js +74 -0
- package/dist/cjs/utils/captureImage/helpers.js.map +1 -0
- package/dist/cjs/utils/captureImage/index.js +16 -0
- package/dist/cjs/utils/captureImage/index.js.map +1 -0
- package/dist/cjs/utils/captureImage/types.js +4 -0
- package/dist/cjs/utils/captureImage/types.js.map +1 -0
- package/dist/cjs/utils/compatibility/compatibility.js +17 -0
- package/dist/cjs/utils/compatibility/compatibility.js.map +1 -0
- package/dist/cjs/utils/compatibility/index.js +10 -0
- package/dist/cjs/utils/compatibility/index.js.map +1 -0
- package/dist/cjs/utils.js +10 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/components/Audio/Audio.js +18 -0
- package/dist/esm/components/Audio/Audio.js.map +1 -0
- package/dist/esm/components/Audio/index.js +2 -0
- package/dist/esm/components/Audio/index.js.map +1 -0
- package/dist/esm/components/ChromaKey/ChromaKey.js +115 -0
- package/dist/esm/components/ChromaKey/ChromaKey.js.map +1 -0
- package/dist/esm/components/ChromaKey/chroma-key.js +91 -0
- package/dist/esm/components/ChromaKey/chroma-key.js.map +1 -0
- package/dist/esm/components/ChromaKey/index.js +2 -0
- package/dist/esm/components/ChromaKey/index.js.map +1 -0
- package/dist/esm/components/ChromaKey/shaders/chroma-key.shader.js +40 -0
- package/dist/esm/components/ChromaKey/shaders/chroma-key.shader.js.map +1 -0
- package/dist/esm/components/ChromaKey/shaders/index.js +3 -0
- package/dist/esm/components/ChromaKey/shaders/index.js.map +1 -0
- package/dist/esm/components/ChromaKey/shaders/vertex-align.shader.js +8 -0
- package/dist/esm/components/ChromaKey/shaders/vertex-align.shader.js.map +1 -0
- package/dist/esm/components/ChromaKey/types.js +2 -0
- package/dist/esm/components/ChromaKey/types.js.map +1 -0
- package/dist/esm/components/LegendsPlatform/LegendsPlatform.js +53 -0
- package/dist/esm/components/LegendsPlatform/LegendsPlatform.js.map +1 -0
- package/dist/esm/components/LegendsPlatform/index.js +2 -0
- package/dist/esm/components/LegendsPlatform/index.js.map +1 -0
- package/dist/esm/components/LegendsPlatformQLess/LegendsPlatform.js +30 -0
- package/dist/esm/components/LegendsPlatformQLess/LegendsPlatform.js.map +1 -0
- package/dist/esm/components/LegendsPlatformQLess/index.js +2 -0
- package/dist/esm/components/LegendsPlatformQLess/index.js.map +1 -0
- package/dist/esm/components/Video/Video.js +73 -0
- package/dist/esm/components/Video/Video.js.map +1 -0
- package/dist/esm/components/Video/index.js +3 -0
- package/dist/esm/components/Video/index.js.map +1 -0
- package/dist/esm/components/Video/types.js +2 -0
- package/dist/esm/components/Video/types.js.map +1 -0
- package/dist/esm/components/Video/useAttachVideo.js +27 -0
- package/dist/esm/components/Video/useAttachVideo.js.map +1 -0
- package/dist/esm/components/VideoPostProcessor/VideoPostProcessor.js +47 -0
- package/dist/esm/components/VideoPostProcessor/VideoPostProcessor.js.map +1 -0
- package/dist/esm/components/VideoPostProcessor/effects.js +25 -0
- package/dist/esm/components/VideoPostProcessor/effects.js.map +1 -0
- package/dist/esm/components/VideoPostProcessor/index.js +2 -0
- package/dist/esm/components/VideoPostProcessor/index.js.map +1 -0
- package/dist/esm/components/VideoPreview/VideoPreview.js +48 -0
- package/dist/esm/components/VideoPreview/VideoPreview.js.map +1 -0
- package/dist/esm/components/VideoPreview/index.js +3 -0
- package/dist/esm/components/VideoPreview/index.js.map +1 -0
- package/dist/esm/components/VideoPreview/types.js +2 -0
- package/dist/esm/components/VideoPreview/types.js.map +1 -0
- package/dist/esm/components/VideoPreview/useVideoPreviewStream.js +85 -0
- package/dist/esm/components/VideoPreview/useVideoPreviewStream.js.map +1 -0
- package/dist/esm/components.js +6 -0
- package/dist/esm/components.js.map +1 -0
- package/dist/esm/conversation/index.js +4 -0
- package/dist/esm/conversation/index.js.map +1 -0
- package/dist/esm/conversation/state.js +20 -0
- package/dist/esm/conversation/state.js.map +1 -0
- package/dist/esm/conversation/types.js +2 -0
- package/dist/esm/conversation/types.js.map +1 -0
- package/dist/esm/conversation/utils.js +21 -0
- package/dist/esm/conversation/utils.js.map +1 -0
- package/dist/esm/external-types.d.js +2 -0
- package/dist/esm/external-types.d.js.map +1 -0
- package/dist/esm/hooks/index.js +10 -0
- package/dist/esm/hooks/index.js.map +1 -0
- package/dist/esm/hooks/useActivityState/index.js +2 -0
- package/dist/esm/hooks/useActivityState/index.js.map +1 -0
- package/dist/esm/hooks/useActivityState/useActivityState.js +11 -0
- package/dist/esm/hooks/useActivityState/useActivityState.js.map +1 -0
- package/dist/esm/hooks/useAudio/index.js +2 -0
- package/dist/esm/hooks/useAudio/index.js.map +1 -0
- package/dist/esm/hooks/useAudio/useAudio.js +26 -0
- package/dist/esm/hooks/useAudio/useAudio.js.map +1 -0
- package/dist/esm/hooks/useAudioLevel/helpers.js +23 -0
- package/dist/esm/hooks/useAudioLevel/helpers.js.map +1 -0
- package/dist/esm/hooks/useAudioLevel/index.js +2 -0
- package/dist/esm/hooks/useAudioLevel/index.js.map +1 -0
- package/dist/esm/hooks/useAudioLevel/types.js +2 -0
- package/dist/esm/hooks/useAudioLevel/types.js.map +1 -0
- package/dist/esm/hooks/useAudioLevel/useAudioLevel.js +43 -0
- package/dist/esm/hooks/useAudioLevel/useAudioLevel.js.map +1 -0
- package/dist/esm/hooks/useCamera/index.js +2 -0
- package/dist/esm/hooks/useCamera/index.js.map +1 -0
- package/dist/esm/hooks/useCamera/useCamera.js +29 -0
- package/dist/esm/hooks/useCamera/useCamera.js.map +1 -0
- package/dist/esm/hooks/useConnectionState/index.js +2 -0
- package/dist/esm/hooks/useConnectionState/index.js.map +1 -0
- package/dist/esm/hooks/useConnectionState/useConnectionState.js +11 -0
- package/dist/esm/hooks/useConnectionState/useConnectionState.js.map +1 -0
- package/dist/esm/hooks/useConversation/index.js +3 -0
- package/dist/esm/hooks/useConversation/index.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/constants.js +11 -0
- package/dist/esm/hooks/useConversation/livekit/constants.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/types.js +2 -0
- package/dist/esm/hooks/useConversation/livekit/types.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/useConversation.js +377 -0
- package/dist/esm/hooks/useConversation/livekit/useConversation.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/dataChannel.js +18 -0
- package/dist/esm/hooks/useConversation/livekit/utils/dataChannel.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/index.js +7 -0
- package/dist/esm/hooks/useConversation/livekit/utils/index.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/messaging.js +7 -0
- package/dist/esm/hooks/useConversation/livekit/utils/messaging.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/participants.js +28 -0
- package/dist/esm/hooks/useConversation/livekit/utils/participants.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/serialization.js +9 -0
- package/dist/esm/hooks/useConversation/livekit/utils/serialization.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/toolAdapter.js +14 -0
- package/dist/esm/hooks/useConversation/livekit/utils/toolAdapter.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/transcriptions.js +11 -0
- package/dist/esm/hooks/useConversation/livekit/utils/transcriptions.js.map +1 -0
- package/dist/esm/hooks/useConversation/types.js +2 -0
- package/dist/esm/hooks/useConversation/types.js.map +1 -0
- package/dist/esm/hooks/useConversation/useConversation.js +93 -0
- package/dist/esm/hooks/useConversation/useConversation.js.map +1 -0
- package/dist/esm/hooks/useConversationEvents/index.js +4 -0
- package/dist/esm/hooks/useConversationEvents/index.js.map +1 -0
- package/dist/esm/hooks/useConversationEvents/types.js +2 -0
- package/dist/esm/hooks/useConversationEvents/types.js.map +1 -0
- package/dist/esm/hooks/useConversationEvents/useConversationEvent.js +7 -0
- package/dist/esm/hooks/useConversationEvents/useConversationEvent.js.map +1 -0
- package/dist/esm/hooks/useConversationEvents/useConversationEvents.js +20 -0
- package/dist/esm/hooks/useConversationEvents/useConversationEvents.js.map +1 -0
- package/dist/esm/hooks/useConversationEvents/useEmitConversationEvent.js +9 -0
- package/dist/esm/hooks/useConversationEvents/useEmitConversationEvent.js.map +1 -0
- package/dist/esm/hooks/useConversationStatus/index.js +2 -0
- package/dist/esm/hooks/useConversationStatus/index.js.map +1 -0
- package/dist/esm/hooks/useConversationStatus/useConversationStatus.js +6 -0
- package/dist/esm/hooks/useConversationStatus/useConversationStatus.js.map +1 -0
- package/dist/esm/hooks/useConversationTimer/index.js +2 -0
- package/dist/esm/hooks/useConversationTimer/index.js.map +1 -0
- package/dist/esm/hooks/useConversationTimer/useConversationTimer.js +44 -0
- package/dist/esm/hooks/useConversationTimer/useConversationTimer.js.map +1 -0
- package/dist/esm/hooks/useCreateConversation/helpers.js +4 -0
- package/dist/esm/hooks/useCreateConversation/helpers.js.map +1 -0
- package/dist/esm/hooks/useCreateConversation/index.js +2 -0
- package/dist/esm/hooks/useCreateConversation/index.js.map +1 -0
- package/dist/esm/hooks/useCreateConversation/useCreateConversation.js +98 -0
- package/dist/esm/hooks/useCreateConversation/useCreateConversation.js.map +1 -0
- package/dist/esm/hooks/useDeviceSwitcher/index.js +2 -0
- package/dist/esm/hooks/useDeviceSwitcher/index.js.map +1 -0
- package/dist/esm/hooks/useDeviceSwitcher/useDeviceSwitcher.js +26 -0
- package/dist/esm/hooks/useDeviceSwitcher/useDeviceSwitcher.js.map +1 -0
- package/dist/esm/hooks/useDevices/index.js +2 -0
- package/dist/esm/hooks/useDevices/index.js.map +1 -0
- package/dist/esm/hooks/useDevices/useDevices.js +45 -0
- package/dist/esm/hooks/useDevices/useDevices.js.map +1 -0
- package/dist/esm/hooks/useMediaPermissions/index.js +3 -0
- package/dist/esm/hooks/useMediaPermissions/index.js.map +1 -0
- package/dist/esm/hooks/useMediaPermissions/types.js +2 -0
- package/dist/esm/hooks/useMediaPermissions/types.js.map +1 -0
- package/dist/esm/hooks/useMediaPermissions/useMediaPermissions.js +42 -0
- package/dist/esm/hooks/useMediaPermissions/useMediaPermissions.js.map +1 -0
- package/dist/esm/hooks/useMediaRecorder/index.js +2 -0
- package/dist/esm/hooks/useMediaRecorder/index.js.map +1 -0
- package/dist/esm/hooks/useMediaRecorder/useMediaRecorder.js +227 -0
- package/dist/esm/hooks/useMediaRecorder/useMediaRecorder.js.map +1 -0
- package/dist/esm/hooks/useMediaRecorder/useReactRecorder.js +315 -0
- package/dist/esm/hooks/useMediaRecorder/useReactRecorder.js.map +1 -0
- package/dist/esm/hooks/useMicrophone/index.js +2 -0
- package/dist/esm/hooks/useMicrophone/index.js.map +1 -0
- package/dist/esm/hooks/useMicrophone/useMicrophone.js +35 -0
- package/dist/esm/hooks/useMicrophone/useMicrophone.js.map +1 -0
- package/dist/esm/hooks/useParticipantTrack/index.js +2 -0
- package/dist/esm/hooks/useParticipantTrack/index.js.map +1 -0
- package/dist/esm/hooks/useParticipantTrack/useParticipantTrack.js +26 -0
- package/dist/esm/hooks/useParticipantTrack/useParticipantTrack.js.map +1 -0
- package/dist/esm/hooks/usePictureInPicture/index.js +5 -0
- package/dist/esm/hooks/usePictureInPicture/index.js.map +1 -0
- package/dist/esm/hooks/usePictureInPicture/state.js +10 -0
- package/dist/esm/hooks/usePictureInPicture/state.js.map +1 -0
- package/dist/esm/hooks/usePictureInPicture/types.js +2 -0
- package/dist/esm/hooks/usePictureInPicture/types.js.map +1 -0
- package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.js +41 -0
- package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.js.map +1 -0
- package/dist/esm/hooks/usePictureInPicture/usePictureInPictureAuto.js +111 -0
- package/dist/esm/hooks/usePictureInPicture/usePictureInPictureAuto.js.map +1 -0
- package/dist/esm/hooks/useScreenShare/index.js +2 -0
- package/dist/esm/hooks/useScreenShare/index.js.map +1 -0
- package/dist/esm/hooks/useScreenShare/useScreenShare.js +42 -0
- package/dist/esm/hooks/useScreenShare/useScreenShare.js.map +1 -0
- package/dist/esm/hooks/useSpeaker/index.js +2 -0
- package/dist/esm/hooks/useSpeaker/index.js.map +1 -0
- package/dist/esm/hooks/useSpeaker/useSpeaker.js +28 -0
- package/dist/esm/hooks/useSpeaker/useSpeaker.js.map +1 -0
- package/dist/esm/hooks/useTextChat/index.js +2 -0
- package/dist/esm/hooks/useTextChat/index.js.map +1 -0
- package/dist/esm/hooks/useTextChat/usePendingMessages.js +19 -0
- package/dist/esm/hooks/useTextChat/usePendingMessages.js.map +1 -0
- package/dist/esm/hooks/useTextChat/useTextChat.js +59 -0
- package/dist/esm/hooks/useTextChat/useTextChat.js.map +1 -0
- package/dist/esm/hooks/useTextChat/useToolAwareSend.js +28 -0
- package/dist/esm/hooks/useTextChat/useToolAwareSend.js.map +1 -0
- package/dist/esm/hooks/useTools/index.js +3 -0
- package/dist/esm/hooks/useTools/index.js.map +1 -0
- package/dist/esm/hooks/useTools/model/errors.js +7 -0
- package/dist/esm/hooks/useTools/model/errors.js.map +1 -0
- package/dist/esm/hooks/useTools/model/types.js +2 -0
- package/dist/esm/hooks/useTools/model/types.js.map +1 -0
- package/dist/esm/hooks/useTools/public/useTools.js +7 -0
- package/dist/esm/hooks/useTools/public/useTools.js.map +1 -0
- package/dist/esm/hooks/useTools/runtime/createToolRuntimeSession.js +66 -0
- package/dist/esm/hooks/useTools/runtime/createToolRuntimeSession.js.map +1 -0
- package/dist/esm/hooks/useTools/runtime/executeToolCall.js +29 -0
- package/dist/esm/hooks/useTools/runtime/executeToolCall.js.map +1 -0
- package/dist/esm/hooks/useTools/runtime/executeToolCallBatch.js +36 -0
- package/dist/esm/hooks/useTools/runtime/executeToolCallBatch.js.map +1 -0
- package/dist/esm/hooks/useTools/runtime/types.js +2 -0
- package/dist/esm/hooks/useTools/runtime/types.js.map +1 -0
- package/dist/esm/hooks/useTools/runtime/useToolCallingRuntime.js +58 -0
- package/dist/esm/hooks/useTools/runtime/useToolCallingRuntime.js.map +1 -0
- package/dist/esm/hooks/useTools/store/state.js +26 -0
- package/dist/esm/hooks/useTools/store/state.js.map +1 -0
- package/dist/esm/hooks/useTools/utils/normalizeFunctionCall.js +18 -0
- package/dist/esm/hooks/useTools/utils/normalizeFunctionCall.js.map +1 -0
- package/dist/esm/hooks/useTools/utils/serialize.js +23 -0
- package/dist/esm/hooks/useTools/utils/serialize.js.map +1 -0
- package/dist/esm/hooks/useTranscriptions/index.js +3 -0
- package/dist/esm/hooks/useTranscriptions/index.js.map +1 -0
- package/dist/esm/hooks/useTranscriptions/types.js +2 -0
- package/dist/esm/hooks/useTranscriptions/types.js.map +1 -0
- package/dist/esm/hooks/useTranscriptions/useTranscription.js +15 -0
- package/dist/esm/hooks/useTranscriptions/useTranscription.js.map +1 -0
- package/dist/esm/hooks/useTranscriptions/useTranscriptions.js +15 -0
- package/dist/esm/hooks/useTranscriptions/useTranscriptions.js.map +1 -0
- package/dist/esm/hooks/useUserActivity/index.js +2 -0
- package/dist/esm/hooks/useUserActivity/index.js.map +1 -0
- package/dist/esm/hooks/useUserActivity/useUserActivity.js +22 -0
- package/dist/esm/hooks/useUserActivity/useUserActivity.js.map +1 -0
- package/dist/esm/livekit/components.js +2 -0
- package/dist/esm/livekit/components.js.map +1 -0
- package/dist/esm/livekit/sdk.js +2 -0
- package/dist/esm/livekit/sdk.js.map +1 -0
- package/dist/esm/sdk-consumer/context.js +10 -0
- package/dist/esm/sdk-consumer/context.js.map +1 -0
- package/dist/esm/sdk-consumer/index.js +2 -0
- package/dist/esm/sdk-consumer/index.js.map +1 -0
- package/dist/esm/sdk.js +25 -0
- package/dist/esm/sdk.js.map +1 -0
- package/dist/esm/services/FetchPersonaChatService.js +124 -0
- package/dist/esm/services/FetchPersonaChatService.js.map +1 -0
- package/dist/esm/test-types.d.js +2 -0
- package/dist/esm/test-types.d.js.map +1 -0
- package/dist/esm/types/http.js +9 -0
- package/dist/esm/types/http.js.map +1 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/service.js +2 -0
- package/dist/esm/types/service.js.map +1 -0
- package/dist/esm/utils/captureImage/captureImage.js +29 -0
- package/dist/esm/utils/captureImage/captureImage.js.map +1 -0
- package/dist/esm/utils/captureImage/helpers.js +69 -0
- package/dist/esm/utils/captureImage/helpers.js.map +1 -0
- package/dist/esm/utils/captureImage/index.js +3 -0
- package/dist/esm/utils/captureImage/index.js.map +1 -0
- package/dist/esm/utils/captureImage/types.js +2 -0
- package/dist/esm/utils/captureImage/types.js.map +1 -0
- package/dist/esm/utils/compatibility/compatibility.js +12 -0
- package/dist/esm/utils/compatibility/compatibility.js.map +1 -0
- package/dist/esm/utils/compatibility/index.js +2 -0
- package/dist/esm/utils/compatibility/index.js.map +1 -0
- package/dist/esm/utils.js +2 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/types/components/Audio/Audio.d.ts +3 -0
- package/dist/types/components/Audio/Audio.d.ts.map +1 -0
- package/dist/types/components/Audio/index.d.ts +2 -0
- package/dist/types/components/Audio/index.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/ChromaKey.d.ts +20 -0
- package/dist/types/components/ChromaKey/ChromaKey.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/chroma-key.d.ts +9 -0
- package/dist/types/components/ChromaKey/chroma-key.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/index.d.ts +2 -0
- package/dist/types/components/ChromaKey/index.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/shaders/chroma-key.shader.d.ts +3 -0
- package/dist/types/components/ChromaKey/shaders/chroma-key.shader.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/shaders/index.d.ts +3 -0
- package/dist/types/components/ChromaKey/shaders/index.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/shaders/vertex-align.shader.d.ts +3 -0
- package/dist/types/components/ChromaKey/shaders/vertex-align.shader.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/types.d.ts +3 -0
- package/dist/types/components/ChromaKey/types.d.ts.map +1 -0
- package/dist/types/components/LegendsPlatform/LegendsPlatform.d.ts +18 -0
- package/dist/types/components/LegendsPlatform/LegendsPlatform.d.ts.map +1 -0
- package/dist/types/components/LegendsPlatform/index.d.ts +2 -0
- package/dist/types/components/LegendsPlatform/index.d.ts.map +1 -0
- package/dist/types/components/LegendsPlatformQLess/LegendsPlatform.d.ts +15 -0
- package/dist/types/components/LegendsPlatformQLess/LegendsPlatform.d.ts.map +1 -0
- package/dist/types/components/LegendsPlatformQLess/index.d.ts +2 -0
- package/dist/types/components/LegendsPlatformQLess/index.d.ts.map +1 -0
- package/dist/types/components/Video/Video.d.ts +14 -0
- package/dist/types/components/Video/Video.d.ts.map +1 -0
- package/dist/types/components/Video/index.d.ts +3 -0
- package/dist/types/components/Video/index.d.ts.map +1 -0
- package/dist/types/components/Video/types.d.ts +22 -0
- package/dist/types/components/Video/types.d.ts.map +1 -0
- package/dist/types/components/Video/useAttachVideo.d.ts +10 -0
- package/dist/types/components/Video/useAttachVideo.d.ts.map +1 -0
- package/dist/types/components/VideoPostProcessor/VideoPostProcessor.d.ts +11 -0
- package/dist/types/components/VideoPostProcessor/VideoPostProcessor.d.ts.map +1 -0
- package/dist/types/components/VideoPostProcessor/effects.d.ts +3 -0
- package/dist/types/components/VideoPostProcessor/effects.d.ts.map +1 -0
- package/dist/types/components/VideoPostProcessor/index.d.ts +2 -0
- package/dist/types/components/VideoPostProcessor/index.d.ts.map +1 -0
- package/dist/types/components/VideoPreview/VideoPreview.d.ts +4 -0
- package/dist/types/components/VideoPreview/VideoPreview.d.ts.map +1 -0
- package/dist/types/components/VideoPreview/index.d.ts +3 -0
- package/dist/types/components/VideoPreview/index.d.ts.map +1 -0
- package/dist/types/components/VideoPreview/types.d.ts +11 -0
- package/dist/types/components/VideoPreview/types.d.ts.map +1 -0
- package/dist/types/components/VideoPreview/useVideoPreviewStream.d.ts +13 -0
- package/dist/types/components/VideoPreview/useVideoPreviewStream.d.ts.map +1 -0
- package/dist/types/components.d.ts +6 -0
- package/dist/types/components.d.ts.map +1 -0
- package/dist/types/conversation/index.d.ts +3 -0
- package/dist/types/conversation/index.d.ts.map +1 -0
- package/dist/types/conversation/state.d.ts +47 -0
- package/dist/types/conversation/state.d.ts.map +1 -0
- package/dist/types/conversation/types.d.ts +27 -0
- package/dist/types/conversation/types.d.ts.map +1 -0
- package/dist/types/conversation/utils.d.ts +6 -0
- package/dist/types/conversation/utils.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +10 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/useActivityState/index.d.ts +2 -0
- package/dist/types/hooks/useActivityState/index.d.ts.map +1 -0
- package/dist/types/hooks/useActivityState/useActivityState.d.ts +2 -0
- package/dist/types/hooks/useActivityState/useActivityState.d.ts.map +1 -0
- package/dist/types/hooks/useAudio/index.d.ts +2 -0
- package/dist/types/hooks/useAudio/index.d.ts.map +1 -0
- package/dist/types/hooks/useAudio/useAudio.d.ts +7 -0
- package/dist/types/hooks/useAudio/useAudio.d.ts.map +1 -0
- package/dist/types/hooks/useAudioLevel/helpers.d.ts +11 -0
- package/dist/types/hooks/useAudioLevel/helpers.d.ts.map +1 -0
- package/dist/types/hooks/useAudioLevel/index.d.ts +2 -0
- package/dist/types/hooks/useAudioLevel/index.d.ts.map +1 -0
- package/dist/types/hooks/useAudioLevel/types.d.ts +8 -0
- package/dist/types/hooks/useAudioLevel/types.d.ts.map +1 -0
- package/dist/types/hooks/useAudioLevel/useAudioLevel.d.ts +3 -0
- package/dist/types/hooks/useAudioLevel/useAudioLevel.d.ts.map +1 -0
- package/dist/types/hooks/useCamera/index.d.ts +2 -0
- package/dist/types/hooks/useCamera/index.d.ts.map +1 -0
- package/dist/types/hooks/useCamera/useCamera.d.ts +8 -0
- package/dist/types/hooks/useCamera/useCamera.d.ts.map +1 -0
- package/dist/types/hooks/useConnectionState/index.d.ts +2 -0
- package/dist/types/hooks/useConnectionState/index.d.ts.map +1 -0
- package/dist/types/hooks/useConnectionState/useConnectionState.d.ts +2 -0
- package/dist/types/hooks/useConnectionState/useConnectionState.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/index.d.ts +3 -0
- package/dist/types/hooks/useConversation/index.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/constants.d.ts +4 -0
- package/dist/types/hooks/useConversation/livekit/constants.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/types.d.ts +32 -0
- package/dist/types/hooks/useConversation/livekit/types.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/useConversation.d.ts +3 -0
- package/dist/types/hooks/useConversation/livekit/useConversation.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/dataChannel.d.ts +6 -0
- package/dist/types/hooks/useConversation/livekit/utils/dataChannel.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/index.d.ts +7 -0
- package/dist/types/hooks/useConversation/livekit/utils/index.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/messaging.d.ts +3 -0
- package/dist/types/hooks/useConversation/livekit/utils/messaging.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/participants.d.ts +6 -0
- package/dist/types/hooks/useConversation/livekit/utils/participants.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/serialization.d.ts +2 -0
- package/dist/types/hooks/useConversation/livekit/utils/serialization.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/toolAdapter.d.ts +4 -0
- package/dist/types/hooks/useConversation/livekit/utils/toolAdapter.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/transcriptions.d.ts +3 -0
- package/dist/types/hooks/useConversation/livekit/utils/transcriptions.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/types.d.ts +23 -0
- package/dist/types/hooks/useConversation/types.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/useConversation.d.ts +3 -0
- package/dist/types/hooks/useConversation/useConversation.d.ts.map +1 -0
- package/dist/types/hooks/useConversationEvents/index.d.ts +4 -0
- package/dist/types/hooks/useConversationEvents/index.d.ts.map +1 -0
- package/dist/types/hooks/useConversationEvents/types.d.ts +72 -0
- package/dist/types/hooks/useConversationEvents/types.d.ts.map +1 -0
- package/dist/types/hooks/useConversationEvents/useConversationEvent.d.ts +3 -0
- package/dist/types/hooks/useConversationEvents/useConversationEvent.d.ts.map +1 -0
- package/dist/types/hooks/useConversationEvents/useConversationEvents.d.ts +5 -0
- package/dist/types/hooks/useConversationEvents/useConversationEvents.d.ts.map +1 -0
- package/dist/types/hooks/useConversationEvents/useEmitConversationEvent.d.ts +3 -0
- package/dist/types/hooks/useConversationEvents/useEmitConversationEvent.d.ts.map +1 -0
- package/dist/types/hooks/useConversationStatus/index.d.ts +2 -0
- package/dist/types/hooks/useConversationStatus/index.d.ts.map +1 -0
- package/dist/types/hooks/useConversationStatus/useConversationStatus.d.ts +2 -0
- package/dist/types/hooks/useConversationStatus/useConversationStatus.d.ts.map +1 -0
- package/dist/types/hooks/useConversationTimer/index.d.ts +2 -0
- package/dist/types/hooks/useConversationTimer/index.d.ts.map +1 -0
- package/dist/types/hooks/useConversationTimer/useConversationTimer.d.ts +17 -0
- package/dist/types/hooks/useConversationTimer/useConversationTimer.d.ts.map +1 -0
- package/dist/types/hooks/useCreateConversation/helpers.d.ts +8 -0
- package/dist/types/hooks/useCreateConversation/helpers.d.ts.map +1 -0
- package/dist/types/hooks/useCreateConversation/index.d.ts +2 -0
- package/dist/types/hooks/useCreateConversation/index.d.ts.map +1 -0
- package/dist/types/hooks/useCreateConversation/useCreateConversation.d.ts +11 -0
- package/dist/types/hooks/useCreateConversation/useCreateConversation.d.ts.map +1 -0
- package/dist/types/hooks/useDeviceSwitcher/index.d.ts +2 -0
- package/dist/types/hooks/useDeviceSwitcher/index.d.ts.map +1 -0
- package/dist/types/hooks/useDeviceSwitcher/useDeviceSwitcher.d.ts +9 -0
- package/dist/types/hooks/useDeviceSwitcher/useDeviceSwitcher.d.ts.map +1 -0
- package/dist/types/hooks/useDevices/index.d.ts +2 -0
- package/dist/types/hooks/useDevices/index.d.ts.map +1 -0
- package/dist/types/hooks/useDevices/useDevices.d.ts +6 -0
- package/dist/types/hooks/useDevices/useDevices.d.ts.map +1 -0
- package/dist/types/hooks/useMediaPermissions/index.d.ts +3 -0
- package/dist/types/hooks/useMediaPermissions/index.d.ts.map +1 -0
- package/dist/types/hooks/useMediaPermissions/types.d.ts +3 -0
- package/dist/types/hooks/useMediaPermissions/types.d.ts.map +1 -0
- package/dist/types/hooks/useMediaPermissions/useMediaPermissions.d.ts +7 -0
- package/dist/types/hooks/useMediaPermissions/useMediaPermissions.d.ts.map +1 -0
- package/dist/types/hooks/useMediaRecorder/index.d.ts +2 -0
- package/dist/types/hooks/useMediaRecorder/index.d.ts.map +1 -0
- package/dist/types/hooks/useMediaRecorder/useMediaRecorder.d.ts +39 -0
- package/dist/types/hooks/useMediaRecorder/useMediaRecorder.d.ts.map +1 -0
- package/dist/types/hooks/useMediaRecorder/useReactRecorder.d.ts +70 -0
- package/dist/types/hooks/useMediaRecorder/useReactRecorder.d.ts.map +1 -0
- package/dist/types/hooks/useMicrophone/index.d.ts +2 -0
- package/dist/types/hooks/useMicrophone/index.d.ts.map +1 -0
- package/dist/types/hooks/useMicrophone/useMicrophone.d.ts +8 -0
- package/dist/types/hooks/useMicrophone/useMicrophone.d.ts.map +1 -0
- package/dist/types/hooks/useParticipantTrack/index.d.ts +2 -0
- package/dist/types/hooks/useParticipantTrack/index.d.ts.map +1 -0
- package/dist/types/hooks/useParticipantTrack/useParticipantTrack.d.ts +11 -0
- package/dist/types/hooks/useParticipantTrack/useParticipantTrack.d.ts.map +1 -0
- package/dist/types/hooks/usePictureInPicture/index.d.ts +6 -0
- package/dist/types/hooks/usePictureInPicture/index.d.ts.map +1 -0
- package/dist/types/hooks/usePictureInPicture/state.d.ts +8 -0
- package/dist/types/hooks/usePictureInPicture/state.d.ts.map +1 -0
- package/dist/types/hooks/usePictureInPicture/types.d.ts +25 -0
- package/dist/types/hooks/usePictureInPicture/types.d.ts.map +1 -0
- package/dist/types/hooks/usePictureInPicture/usePictureInPicture.d.ts +3 -0
- package/dist/types/hooks/usePictureInPicture/usePictureInPicture.d.ts.map +1 -0
- package/dist/types/hooks/usePictureInPicture/usePictureInPictureAuto.d.ts +3 -0
- package/dist/types/hooks/usePictureInPicture/usePictureInPictureAuto.d.ts.map +1 -0
- package/dist/types/hooks/useScreenShare/index.d.ts +2 -0
- package/dist/types/hooks/useScreenShare/index.d.ts.map +1 -0
- package/dist/types/hooks/useScreenShare/useScreenShare.d.ts +13 -0
- package/dist/types/hooks/useScreenShare/useScreenShare.d.ts.map +1 -0
- package/dist/types/hooks/useSpeaker/index.d.ts +2 -0
- package/dist/types/hooks/useSpeaker/index.d.ts.map +1 -0
- package/dist/types/hooks/useSpeaker/useSpeaker.d.ts +6 -0
- package/dist/types/hooks/useSpeaker/useSpeaker.d.ts.map +1 -0
- package/dist/types/hooks/useTextChat/index.d.ts +2 -0
- package/dist/types/hooks/useTextChat/index.d.ts.map +1 -0
- package/dist/types/hooks/useTextChat/usePendingMessages.d.ts +11 -0
- package/dist/types/hooks/useTextChat/usePendingMessages.d.ts.map +1 -0
- package/dist/types/hooks/useTextChat/useTextChat.d.ts +21 -0
- package/dist/types/hooks/useTextChat/useTextChat.d.ts.map +1 -0
- package/dist/types/hooks/useTextChat/useToolAwareSend.d.ts +8 -0
- package/dist/types/hooks/useTextChat/useToolAwareSend.d.ts.map +1 -0
- package/dist/types/hooks/useTools/index.d.ts +4 -0
- package/dist/types/hooks/useTools/index.d.ts.map +1 -0
- package/dist/types/hooks/useTools/model/errors.d.ts +4 -0
- package/dist/types/hooks/useTools/model/errors.d.ts.map +1 -0
- package/dist/types/hooks/useTools/model/types.d.ts +27 -0
- package/dist/types/hooks/useTools/model/types.d.ts.map +1 -0
- package/dist/types/hooks/useTools/public/useTools.d.ts +2 -0
- package/dist/types/hooks/useTools/public/useTools.d.ts.map +1 -0
- package/dist/types/hooks/useTools/runtime/createToolRuntimeSession.d.ts +9 -0
- package/dist/types/hooks/useTools/runtime/createToolRuntimeSession.d.ts.map +1 -0
- package/dist/types/hooks/useTools/runtime/executeToolCall.d.ts +3 -0
- package/dist/types/hooks/useTools/runtime/executeToolCall.d.ts.map +1 -0
- package/dist/types/hooks/useTools/runtime/executeToolCallBatch.d.ts +11 -0
- package/dist/types/hooks/useTools/runtime/executeToolCallBatch.d.ts.map +1 -0
- package/dist/types/hooks/useTools/runtime/types.d.ts +35 -0
- package/dist/types/hooks/useTools/runtime/types.d.ts.map +1 -0
- package/dist/types/hooks/useTools/runtime/useToolCallingRuntime.d.ts +9 -0
- package/dist/types/hooks/useTools/runtime/useToolCallingRuntime.d.ts.map +1 -0
- package/dist/types/hooks/useTools/store/state.d.ts +17 -0
- package/dist/types/hooks/useTools/store/state.d.ts.map +1 -0
- package/dist/types/hooks/useTools/utils/normalizeFunctionCall.d.ts +4 -0
- package/dist/types/hooks/useTools/utils/normalizeFunctionCall.d.ts.map +1 -0
- package/dist/types/hooks/useTools/utils/serialize.d.ts +3 -0
- package/dist/types/hooks/useTools/utils/serialize.d.ts.map +1 -0
- package/dist/types/hooks/useTranscriptions/index.d.ts +3 -0
- package/dist/types/hooks/useTranscriptions/index.d.ts.map +1 -0
- package/dist/types/hooks/useTranscriptions/types.d.ts +5 -0
- package/dist/types/hooks/useTranscriptions/types.d.ts.map +1 -0
- package/dist/types/hooks/useTranscriptions/useTranscription.d.ts +3 -0
- package/dist/types/hooks/useTranscriptions/useTranscription.d.ts.map +1 -0
- package/dist/types/hooks/useTranscriptions/useTranscriptions.d.ts +3 -0
- package/dist/types/hooks/useTranscriptions/useTranscriptions.d.ts.map +1 -0
- package/dist/types/hooks/useUserActivity/index.d.ts +2 -0
- package/dist/types/hooks/useUserActivity/index.d.ts.map +1 -0
- package/dist/types/hooks/useUserActivity/useUserActivity.d.ts +8 -0
- package/dist/types/hooks/useUserActivity/useUserActivity.d.ts.map +1 -0
- package/dist/types/livekit/components.d.ts +2 -0
- package/dist/types/livekit/components.d.ts.map +1 -0
- package/dist/types/livekit/sdk.d.ts +2 -0
- package/dist/types/livekit/sdk.d.ts.map +1 -0
- package/dist/types/sdk-consumer/context.d.ts +12 -0
- package/dist/types/sdk-consumer/context.d.ts.map +1 -0
- package/dist/types/sdk-consumer/index.d.ts +2 -0
- package/dist/types/sdk-consumer/index.d.ts.map +1 -0
- package/dist/types/sdk.d.ts +25 -0
- package/dist/types/sdk.d.ts.map +1 -0
- package/dist/types/services/FetchPersonaChatService.d.ts +15 -0
- package/dist/types/services/FetchPersonaChatService.d.ts.map +1 -0
- package/dist/types/types/http.d.ts +15 -0
- package/dist/types/types/http.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +4 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/service.d.ts +62 -0
- package/dist/types/types/service.d.ts.map +1 -0
- package/dist/types/utils/captureImage/captureImage.d.ts +3 -0
- package/dist/types/utils/captureImage/captureImage.d.ts.map +1 -0
- package/dist/types/utils/captureImage/helpers.d.ts +4 -0
- package/dist/types/utils/captureImage/helpers.d.ts.map +1 -0
- package/dist/types/utils/captureImage/index.d.ts +3 -0
- package/dist/types/utils/captureImage/index.d.ts.map +1 -0
- package/dist/types/utils/captureImage/types.d.ts +9 -0
- package/dist/types/utils/captureImage/types.d.ts.map +1 -0
- package/dist/types/utils/compatibility/compatibility.d.ts +3 -0
- package/dist/types/utils/compatibility/compatibility.d.ts.map +1 -0
- package/dist/types/utils/compatibility/index.d.ts +2 -0
- package/dist/types/utils/compatibility/index.d.ts.map +1 -0
- package/dist/types/utils.d.ts +2 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/livekit/components/package.json +5 -0
- package/livekit/sdk/package.json +5 -0
- package/livekit-client.patch +19 -0
- package/package.json +108 -0
- package/sdk/package.json +5 -0
- package/tpa/package.json +5 -0
- package/utils/package.json +5 -0
package/README.md
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# @wix/legends-platform-sdk
|
|
2
|
+
|
|
3
|
+
React SDK for building AI-powered voice, video, and text chat experiences on the Legends Platform.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @wix/legends-platform-sdk
|
|
9
|
+
# or
|
|
10
|
+
yarn add @wix/legends-platform-sdk
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
Wrap your app with `LegendsPlatform` and pass your API key:
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import { LegendsPlatform, useConversation, useMicrophone } from '@wix/legends-platform-sdk';
|
|
19
|
+
|
|
20
|
+
function VoiceButton() {
|
|
21
|
+
const { status, join, leave } = useConversation({ type: 'audio' });
|
|
22
|
+
const { enabled, setEnabled } = useMicrophone();
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<div>
|
|
26
|
+
<p>Status: {status}</p>
|
|
27
|
+
{status === 'pending' && <button onClick={join}>Start</button>}
|
|
28
|
+
{status === 'created' && (
|
|
29
|
+
<>
|
|
30
|
+
<button onClick={() => leave()}>End</button>
|
|
31
|
+
<button onClick={() => setEnabled(!enabled)}>
|
|
32
|
+
Mic: {enabled ? 'ON' : 'OFF'}
|
|
33
|
+
</button>
|
|
34
|
+
</>
|
|
35
|
+
)}
|
|
36
|
+
</div>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export default function App() {
|
|
41
|
+
return (
|
|
42
|
+
<LegendsPlatform
|
|
43
|
+
chatId="your-chat-id"
|
|
44
|
+
namespace="your-namespace"
|
|
45
|
+
apiKey="your-api-key"
|
|
46
|
+
>
|
|
47
|
+
<VoiceButton />
|
|
48
|
+
</LegendsPlatform>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## API
|
|
54
|
+
|
|
55
|
+
### `<LegendsPlatform />`
|
|
56
|
+
|
|
57
|
+
The root context provider. Must wrap all SDK hooks and components.
|
|
58
|
+
|
|
59
|
+
| Prop | Type | Description |
|
|
60
|
+
|------|------|-------------|
|
|
61
|
+
| `chatId` | `string` | Required. The chat instance ID |
|
|
62
|
+
| `namespace` | `string` | Required. Your namespace |
|
|
63
|
+
| `apiKey` | `string` | API key for authentication (external apps) |
|
|
64
|
+
| `personaChatService` | `IPersonaChatService` | Custom service implementation (advanced) |
|
|
65
|
+
| `queryClient` | `QueryClient` | Optional TanStack Query client |
|
|
66
|
+
| `children` | `ReactNode` | Required |
|
|
67
|
+
|
|
68
|
+
Either `apiKey` or `personaChatService` must be provided.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### Hooks
|
|
73
|
+
|
|
74
|
+
#### `useConversation(options)`
|
|
75
|
+
|
|
76
|
+
Manages a voice or video conversation session.
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
const { status, join, leave } = useConversation({
|
|
80
|
+
type: 'audio' | 'video', // default: 'audio'
|
|
81
|
+
autoJoin: false, // default: false
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
| Return | Type | Description |
|
|
86
|
+
|--------|------|-------------|
|
|
87
|
+
| `status` | `'pending' \| 'connecting' \| 'created' \| 'ended'` | Current conversation state |
|
|
88
|
+
| `join()` | `() => void` | Start the conversation |
|
|
89
|
+
| `leave()` | `(reason?) => void` | End the conversation |
|
|
90
|
+
|
|
91
|
+
#### `useMicrophone()`
|
|
92
|
+
|
|
93
|
+
```tsx
|
|
94
|
+
const { enabled, setEnabled } = useMicrophone();
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
#### `useCamera()`
|
|
98
|
+
|
|
99
|
+
```tsx
|
|
100
|
+
const { enabled, setEnabled } = useCamera();
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
#### `useSpeaker()`
|
|
104
|
+
|
|
105
|
+
```tsx
|
|
106
|
+
const { volume, setVolume } = useSpeaker();
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
#### `useTextChat()`
|
|
110
|
+
|
|
111
|
+
Manages text-based chat messages.
|
|
112
|
+
|
|
113
|
+
```tsx
|
|
114
|
+
const { messages, status, send, fetchNext } = useTextChat();
|
|
115
|
+
|
|
116
|
+
await send({ message: 'Hello' });
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### `useConversationStatus()`
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
const status = useConversationStatus();
|
|
123
|
+
// 'pending' | 'connecting' | 'created' | 'ended'
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
#### `useConversationTimer()`
|
|
127
|
+
|
|
128
|
+
```tsx
|
|
129
|
+
const { elapsed, remaining } = useConversationTimer();
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
#### `useTools(registry)`
|
|
133
|
+
|
|
134
|
+
Register custom tool handlers for function calling.
|
|
135
|
+
|
|
136
|
+
```tsx
|
|
137
|
+
import { useTools } from '@wix/legends-platform-sdk';
|
|
138
|
+
|
|
139
|
+
const tools = useTools({
|
|
140
|
+
get_weather: {
|
|
141
|
+
handler: async ({ city }) => {
|
|
142
|
+
const data = await fetchWeather(city);
|
|
143
|
+
return { temperature: data.temp };
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
return (
|
|
149
|
+
<LegendsPlatform ... tools={tools}>
|
|
150
|
+
...
|
|
151
|
+
</LegendsPlatform>
|
|
152
|
+
);
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Advanced: Custom Service
|
|
158
|
+
|
|
159
|
+
For advanced use cases, inject a custom `IPersonaChatService` instead of using `apiKey`:
|
|
160
|
+
|
|
161
|
+
```tsx
|
|
162
|
+
import { LegendsPlatform, type IPersonaChatService } from '@wix/legends-platform-sdk';
|
|
163
|
+
|
|
164
|
+
const myService: IPersonaChatService = {
|
|
165
|
+
async createVoiceConversation(params) { ... },
|
|
166
|
+
async createInteractiveConversation(params) { ... },
|
|
167
|
+
async endInteractiveConversation(params) { ... },
|
|
168
|
+
async sendChatMessage(params) { ... },
|
|
169
|
+
async queryChatMessages(params) { ... },
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
<LegendsPlatform personaChatService={myService} ...>
|
|
173
|
+
...
|
|
174
|
+
</LegendsPlatform>
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Supported Conversation Vendors
|
|
180
|
+
|
|
181
|
+
- **LiveKit** — voice and video
|
|
182
|
+
- **Daily** — video
|
|
183
|
+
- **Hume** — voice with emotional intelligence
|
|
184
|
+
- **ElevenLabs** — voice
|
|
185
|
+
|
|
186
|
+
The vendor is determined automatically based on the conversation configuration.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.Audio = Audio;
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _invariant = _interopRequireDefault(require("invariant"));
|
|
8
|
+
var _jotai = require("jotai");
|
|
9
|
+
var _componentsReact = require("@livekit/components-react");
|
|
10
|
+
var _useAudio = require("../../hooks/useAudio");
|
|
11
|
+
var _conversation = require("../../conversation");
|
|
12
|
+
var _jsxFileName = "/home/builduser/work/cfec65c05e11cc5b/packages/legends-platform-sdk/dist/cjs/components/Audio/Audio.tsx";
|
|
13
|
+
function Audio() {
|
|
14
|
+
const conversation = (0, _jotai.useAtomValue)(_conversation.state.conversation);
|
|
15
|
+
const {
|
|
16
|
+
muted,
|
|
17
|
+
volume
|
|
18
|
+
} = (0, _useAudio.useAudio)();
|
|
19
|
+
(0, _invariant.default)(conversation, 'Conversation is not initialized');
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement(_componentsReact.RoomAudioRenderer, {
|
|
21
|
+
muted: muted,
|
|
22
|
+
volume: volume,
|
|
23
|
+
__self: this,
|
|
24
|
+
__source: {
|
|
25
|
+
fileName: _jsxFileName,
|
|
26
|
+
lineNumber: 14,
|
|
27
|
+
columnNumber: 10
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=Audio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_invariant","_jotai","_componentsReact","_useAudio","_conversation","_jsxFileName","Audio","conversation","useAtomValue","state","muted","volume","useAudio","invariant","default","createElement","RoomAudioRenderer","__self","__source","fileName","lineNumber","columnNumber"],"sources":["../../../../src/components/Audio/Audio.tsx"],"sourcesContent":["import React from 'react';\nimport invariant from 'invariant';\nimport { useAtomValue } from 'jotai';\nimport { RoomAudioRenderer } from '@livekit/components-react';\nimport { useAudio } from '../../hooks/useAudio';\n\nimport { state } from '../../conversation';\n\nexport function Audio() {\n const conversation = useAtomValue(state.conversation);\n const { muted, volume } = useAudio();\n\n invariant(conversation, 'Conversation is not initialized');\n return <RoomAudioRenderer muted={muted} volume={volume} />;\n}\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAEA,IAAAK,aAAA,GAAAL,OAAA;AAA2C,IAAAM,YAAA;AAEpC,SAASC,KAAKA,CAAA,EAAG;EACtB,MAAMC,YAAY,GAAG,IAAAC,mBAAY,EAACC,mBAAK,CAACF,YAAY,CAAC;EACrD,MAAM;IAAEG,KAAK;IAAEC;EAAO,CAAC,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EAEpC,IAAAC,kBAAS,EAACN,YAAY,EAAE,iCAAiC,CAAC;EAC1D,oBAAOV,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACb,gBAAA,CAAAc,iBAAiB;IAACN,KAAK,EAAEA,KAAM;IAACC,MAAM,EAAEA,MAAO;IAAAM,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAAd,YAAA;MAAAe,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC;AAC5D","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
var _Audio = require("./Audio");
|
|
5
|
+
Object.keys(_Audio).forEach(function (key) {
|
|
6
|
+
if (key === "default" || key === "__esModule") return;
|
|
7
|
+
if (key in exports && exports[key] === _Audio[key]) return;
|
|
8
|
+
exports[key] = _Audio[key];
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_Audio","require","Object","keys","forEach","key","exports"],"sources":["../../../../src/components/Audio/index.ts"],"sourcesContent":["export * from './Audio';\n"],"mappings":";;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,MAAA,CAAAK,GAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.ChromaKey = ChromaKey;
|
|
5
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
6
|
+
var _chromaKey = require("./chroma-key");
|
|
7
|
+
var _usePictureInPicture = require("../../hooks/usePictureInPicture");
|
|
8
|
+
var _jotai = require("jotai");
|
|
9
|
+
var _jsxFileName = "/home/builduser/work/cfec65c05e11cc5b/packages/legends-platform-sdk/dist/cjs/components/ChromaKey/ChromaKey.tsx";
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
|
+
function ChromaKey(props) {
|
|
12
|
+
const {
|
|
13
|
+
debug = false,
|
|
14
|
+
children,
|
|
15
|
+
color = '#03ff9c',
|
|
16
|
+
spill = 0.1,
|
|
17
|
+
smoothness = 0.15,
|
|
18
|
+
similarity = 0.3,
|
|
19
|
+
fallback,
|
|
20
|
+
background
|
|
21
|
+
} = props;
|
|
22
|
+
const {
|
|
23
|
+
className,
|
|
24
|
+
style,
|
|
25
|
+
width,
|
|
26
|
+
height,
|
|
27
|
+
pip,
|
|
28
|
+
onPiPEnter,
|
|
29
|
+
onPiPExit,
|
|
30
|
+
onPiPError,
|
|
31
|
+
...restVideoProps
|
|
32
|
+
} = children.props;
|
|
33
|
+
const [isPlayable, setIsPlayable] = (0, _react.useState)(false);
|
|
34
|
+
const $video = (0, _react.useRef)(null);
|
|
35
|
+
const $canvas = (0, _react.useRef)(null);
|
|
36
|
+
const isPiPActive = (0, _jotai.useAtomValue)(_usePictureInPicture.pipActiveAtom);
|
|
37
|
+
|
|
38
|
+
// Setup PiP - hook handles canvas → video conversion internally
|
|
39
|
+
(0, _usePictureInPicture.usePictureInPictureAuto)({
|
|
40
|
+
element: pip && isPlayable ? $canvas.current : null,
|
|
41
|
+
onEnter: onPiPEnter,
|
|
42
|
+
onExit: onPiPExit,
|
|
43
|
+
onError: onPiPError
|
|
44
|
+
});
|
|
45
|
+
const showPipFallback = pip && isPiPActive;
|
|
46
|
+
(0, _react.useEffect)(() => {
|
|
47
|
+
if (!$video.current || !$canvas.current || !isPlayable) {
|
|
48
|
+
debug && console.warn('Video or canvas is not initialized');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const process = (0, _chromaKey.chromaKey)($video.current, $canvas.current, {
|
|
52
|
+
color,
|
|
53
|
+
spill,
|
|
54
|
+
similarity,
|
|
55
|
+
smoothness,
|
|
56
|
+
background
|
|
57
|
+
});
|
|
58
|
+
debug && console.log('Chroma key initialized', $video.current, $canvas.current, {
|
|
59
|
+
color,
|
|
60
|
+
spill,
|
|
61
|
+
similarity,
|
|
62
|
+
smoothness
|
|
63
|
+
});
|
|
64
|
+
let rafId;
|
|
65
|
+
let isActive = true;
|
|
66
|
+
function loop() {
|
|
67
|
+
if (!isActive) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
process == null || process();
|
|
71
|
+
rafId = requestAnimationFrame(loop);
|
|
72
|
+
}
|
|
73
|
+
rafId = requestAnimationFrame(loop);
|
|
74
|
+
return () => {
|
|
75
|
+
debug && console.log('Chroma key process cleanup');
|
|
76
|
+
isActive = false;
|
|
77
|
+
cancelAnimationFrame(rafId);
|
|
78
|
+
};
|
|
79
|
+
}, [color, spill, similarity, smoothness, isPlayable, debug, background]);
|
|
80
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
81
|
+
className: className,
|
|
82
|
+
style: {
|
|
83
|
+
...style,
|
|
84
|
+
width,
|
|
85
|
+
height
|
|
86
|
+
},
|
|
87
|
+
__self: this,
|
|
88
|
+
__source: {
|
|
89
|
+
fileName: _jsxFileName,
|
|
90
|
+
lineNumber: 112,
|
|
91
|
+
columnNumber: 5
|
|
92
|
+
}
|
|
93
|
+
}, /*#__PURE__*/_react.default.createElement("canvas", {
|
|
94
|
+
ref: $canvas,
|
|
95
|
+
style: {
|
|
96
|
+
width: '100%',
|
|
97
|
+
height: '100%',
|
|
98
|
+
display: showPipFallback ? 'none' : 'block',
|
|
99
|
+
...(isPlayable ? {} : {
|
|
100
|
+
position: 'absolute',
|
|
101
|
+
opacity: 0,
|
|
102
|
+
pointerEvents: 'none',
|
|
103
|
+
visibility: 'hidden',
|
|
104
|
+
zIndex: -1
|
|
105
|
+
})
|
|
106
|
+
},
|
|
107
|
+
__self: this,
|
|
108
|
+
__source: {
|
|
109
|
+
fileName: _jsxFileName,
|
|
110
|
+
lineNumber: 120,
|
|
111
|
+
columnNumber: 7
|
|
112
|
+
}
|
|
113
|
+
}), !isPlayable && fallback, /*#__PURE__*/_react.default.cloneElement(children, {
|
|
114
|
+
...restVideoProps,
|
|
115
|
+
ref: $video,
|
|
116
|
+
style: {
|
|
117
|
+
display: 'none'
|
|
118
|
+
},
|
|
119
|
+
onCanPlay: checkPlayable,
|
|
120
|
+
onLoadedMetadata: checkPlayable
|
|
121
|
+
}));
|
|
122
|
+
function checkPlayable(event) {
|
|
123
|
+
const readyState = event.currentTarget.readyState;
|
|
124
|
+
setIsPlayable(readyState >= HTMLMediaElement.HAVE_FUTURE_DATA);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=ChromaKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_chromaKey","_usePictureInPicture","_jotai","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ChromaKey","props","debug","children","color","spill","smoothness","similarity","fallback","background","className","style","width","height","pip","onPiPEnter","onPiPExit","onPiPError","restVideoProps","isPlayable","setIsPlayable","useState","$video","useRef","$canvas","isPiPActive","useAtomValue","pipActiveAtom","usePictureInPictureAuto","element","current","onEnter","onExit","onError","showPipFallback","useEffect","console","warn","process","chromaKey","log","rafId","isActive","loop","requestAnimationFrame","cancelAnimationFrame","createElement","__self","__source","fileName","lineNumber","columnNumber","ref","display","position","opacity","pointerEvents","visibility","zIndex","React","cloneElement","onCanPlay","checkPlayable","onLoadedMetadata","event","readyState","currentTarget","HTMLMediaElement","HAVE_FUTURE_DATA"],"sources":["../../../../src/components/ChromaKey/ChromaKey.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\n\nimport { chromaKey } from './chroma-key';\nimport {\n pipActiveAtom,\n usePictureInPictureAuto,\n} from '../../hooks/usePictureInPicture';\nimport { useAtomValue } from 'jotai';\n\ninterface ChromaKeyProps extends React.HTMLAttributes<HTMLCanvasElement> {\n debug?: boolean;\n color?: string;\n spill?: number;\n similarity?: number;\n smoothness?: number;\n fallback?: React.ReactNode;\n background?: string | null;\n children: React.ReactElement<\n React.VideoHTMLAttributes<HTMLVideoElement> & {\n ref?: React.Ref<HTMLVideoElement>;\n pip?: boolean;\n onPiPEnter?: () => void;\n onPiPExit?: () => void;\n onPiPError?: (error: Error) => void;\n }\n >;\n}\n\nexport function ChromaKey(props: ChromaKeyProps) {\n const {\n debug = false,\n children,\n color = '#03ff9c',\n spill = 0.1,\n smoothness = 0.15,\n similarity = 0.3,\n fallback,\n background,\n } = props;\n\n const {\n className,\n style,\n width,\n height,\n pip,\n onPiPEnter,\n onPiPExit,\n onPiPError,\n ...restVideoProps\n } = children.props;\n const [isPlayable, setIsPlayable] = useState(false);\n\n const $video = useRef<HTMLVideoElement>(null);\n const $canvas = useRef<HTMLCanvasElement>(null);\n const isPiPActive = useAtomValue(pipActiveAtom);\n\n // Setup PiP - hook handles canvas → video conversion internally\n usePictureInPictureAuto({\n element: pip && isPlayable ? $canvas.current : null,\n onEnter: onPiPEnter,\n onExit: onPiPExit,\n onError: onPiPError,\n });\n\n const showPipFallback = pip && isPiPActive;\n\n useEffect(() => {\n if (!$video.current || !$canvas.current || !isPlayable) {\n debug && console.warn('Video or canvas is not initialized');\n\n return;\n }\n\n const process = chromaKey($video.current, $canvas.current, {\n color,\n spill,\n similarity,\n smoothness,\n background,\n });\n\n debug &&\n console.log('Chroma key initialized', $video.current, $canvas.current, {\n color,\n spill,\n similarity,\n smoothness,\n });\n\n let rafId: number;\n let isActive = true;\n\n function loop() {\n if (!isActive) {\n return;\n }\n process?.();\n rafId = requestAnimationFrame(loop);\n }\n\n rafId = requestAnimationFrame(loop);\n\n return () => {\n debug && console.log('Chroma key process cleanup');\n isActive = false;\n cancelAnimationFrame(rafId);\n };\n }, [color, spill, similarity, smoothness, isPlayable, debug, background]);\n\n return (\n <div\n className={className}\n style={{\n ...style,\n width,\n height,\n }}\n >\n <canvas\n ref={$canvas}\n style={{\n width: '100%',\n height: '100%',\n display: showPipFallback ? 'none' : 'block',\n ...(isPlayable\n ? {}\n : {\n position: 'absolute',\n opacity: 0,\n pointerEvents: 'none',\n visibility: 'hidden',\n zIndex: -1,\n }),\n }}\n />\n {!isPlayable && fallback}\n\n {React.cloneElement(children, {\n ...restVideoProps,\n ref: $video,\n style: { display: 'none' },\n onCanPlay: checkPlayable,\n onLoadedMetadata: checkPlayable,\n })}\n </div>\n );\n\n function checkPlayable(event: React.SyntheticEvent<HTMLVideoElement>) {\n const readyState = event.currentTarget.readyState;\n\n setIsPlayable(readyState >= HTMLMediaElement.HAVE_FUTURE_DATA);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.chromaKey = chromaKey;
|
|
6
|
+
var _invariant = _interopRequireDefault(require("invariant"));
|
|
7
|
+
var shaders = _interopRequireWildcard(require("./shaders"));
|
|
8
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
9
|
+
function chromaKey($video, $canvas, options) {
|
|
10
|
+
const gl = $canvas.getContext('webgl', {
|
|
11
|
+
alpha: true,
|
|
12
|
+
premultipliedAlpha: false,
|
|
13
|
+
preserveDrawingBuffer: true
|
|
14
|
+
});
|
|
15
|
+
(0, _invariant.default)(gl, 'WebGL context is not initialized');
|
|
16
|
+
const BUFFER = gl.createBuffer();
|
|
17
|
+
const TEXTURE = gl.createTexture();
|
|
18
|
+
const program = gl.createProgram();
|
|
19
|
+
const _VS_ = gl.createShader(gl.VERTEX_SHADER);
|
|
20
|
+
const _FS_ = gl.createShader(gl.FRAGMENT_SHADER);
|
|
21
|
+
(0, _invariant.default)(program, 'Program is not initialized');
|
|
22
|
+
(0, _invariant.default)(_VS_, 'Vertex shader is not initialized');
|
|
23
|
+
(0, _invariant.default)(_FS_, 'Fragment shader is not initialized');
|
|
24
|
+
gl.shaderSource(_VS_, shaders.VertexAlign);
|
|
25
|
+
gl.shaderSource(_FS_, shaders.ChromaKey);
|
|
26
|
+
gl.compileShader(_VS_);
|
|
27
|
+
gl.compileShader(_FS_);
|
|
28
|
+
if (!gl.getShaderParameter(_FS_, gl.COMPILE_STATUS)) {
|
|
29
|
+
console.error('Fragment shader compilation failed', gl.getShaderInfoLog(_FS_));
|
|
30
|
+
}
|
|
31
|
+
gl.attachShader(program, _VS_);
|
|
32
|
+
gl.attachShader(program, _FS_);
|
|
33
|
+
gl.linkProgram(program);
|
|
34
|
+
gl.useProgram(program);
|
|
35
|
+
gl.bindTexture(gl.TEXTURE_2D, TEXTURE);
|
|
36
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, BUFFER);
|
|
37
|
+
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, 1, -1, -1, 1, -1, 1, 1]), gl.STATIC_DRAW);
|
|
38
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
|
|
39
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
|
40
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
|
41
|
+
const $coords$ = gl.getAttribLocation(program, 'coords');
|
|
42
|
+
const $texture$ = gl.getUniformLocation(program, 'tex');
|
|
43
|
+
const $width$ = gl.getUniformLocation(program, 'texWidth');
|
|
44
|
+
const $height$ = gl.getUniformLocation(program, 'texHeight');
|
|
45
|
+
const $color$ = gl.getUniformLocation(program, 'keyColor');
|
|
46
|
+
const $similarity$ = gl.getUniformLocation(program, 'similarity');
|
|
47
|
+
const $smoothness$ = gl.getUniformLocation(program, 'smoothness');
|
|
48
|
+
const $spill$ = gl.getUniformLocation(program, 'spill');
|
|
49
|
+
gl.vertexAttribPointer($coords$, 2, gl.FLOAT, false, 0, 0);
|
|
50
|
+
gl.enableVertexAttribArray($coords$);
|
|
51
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
52
|
+
|
|
53
|
+
// Enable blending for transparency (critical for Safari)
|
|
54
|
+
gl.enable(gl.BLEND);
|
|
55
|
+
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
|
|
56
|
+
return function process() {
|
|
57
|
+
const {
|
|
58
|
+
color,
|
|
59
|
+
spill,
|
|
60
|
+
similarity,
|
|
61
|
+
smoothness,
|
|
62
|
+
background
|
|
63
|
+
} = options;
|
|
64
|
+
|
|
65
|
+
// Use video dimensions directly instead of metadata (for Safari compatibility)
|
|
66
|
+
const videoWidth = $video.videoWidth;
|
|
67
|
+
const videoHeight = $video.videoHeight;
|
|
68
|
+
if (!videoWidth || !videoHeight) {
|
|
69
|
+
return; // Video not ready yet
|
|
70
|
+
}
|
|
71
|
+
const width = videoWidth * window.devicePixelRatio;
|
|
72
|
+
const height = videoHeight * window.devicePixelRatio;
|
|
73
|
+
$canvas.width = width;
|
|
74
|
+
$canvas.height = height;
|
|
75
|
+
gl.viewport(0, 0, width, height);
|
|
76
|
+
|
|
77
|
+
// Clear with background color or transparent
|
|
78
|
+
if (background) {
|
|
79
|
+
const r = parseInt(background.substring(1, 3), 16) / 255;
|
|
80
|
+
const g = parseInt(background.substring(3, 5), 16) / 255;
|
|
81
|
+
const b = parseInt(background.substring(5, 7), 16) / 255;
|
|
82
|
+
gl.clearColor(r, g, b, 1);
|
|
83
|
+
} else {
|
|
84
|
+
gl.clearColor(0, 0, 0, 0);
|
|
85
|
+
}
|
|
86
|
+
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
87
|
+
gl.useProgram(program);
|
|
88
|
+
gl.uniform1i($texture$, 0);
|
|
89
|
+
gl.uniform1f($width$, width);
|
|
90
|
+
gl.uniform1f($height$, height);
|
|
91
|
+
gl.uniform1f($spill$, spill);
|
|
92
|
+
gl.uniform1f($similarity$, similarity);
|
|
93
|
+
gl.uniform1f($smoothness$, smoothness);
|
|
94
|
+
gl.uniform3f($color$, parseInt(color.substr(1, 2), 16) / 255, parseInt(color.substr(3, 2), 16) / 255, parseInt(color.substr(5, 2), 16) / 255);
|
|
95
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, $video);
|
|
96
|
+
gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=chroma-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_invariant","_interopRequireDefault","require","shaders","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","chromaKey","$video","$canvas","options","gl","getContext","alpha","premultipliedAlpha","preserveDrawingBuffer","invariant","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","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,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
var _ChromaKey = require("./ChromaKey");
|
|
5
|
+
Object.keys(_ChromaKey).forEach(function (key) {
|
|
6
|
+
if (key === "default" || key === "__esModule") return;
|
|
7
|
+
if (key in exports && exports[key] === _ChromaKey[key]) return;
|
|
8
|
+
exports[key] = _ChromaKey[key];
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_ChromaKey","require","Object","keys","forEach","key","exports"],"sources":["../../../../src/components/ChromaKey/index.ts"],"sourcesContent":["export * from './ChromaKey';\n"],"mappings":";;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,UAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,UAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,UAAA,CAAAK,GAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = void 0;
|
|
5
|
+
var _default = exports.default = `
|
|
6
|
+
precision mediump float;
|
|
7
|
+
|
|
8
|
+
uniform sampler2D tex;
|
|
9
|
+
uniform float texWidth;
|
|
10
|
+
uniform float texHeight;
|
|
11
|
+
|
|
12
|
+
uniform vec3 keyColor;
|
|
13
|
+
uniform float similarity;
|
|
14
|
+
uniform float smoothness;
|
|
15
|
+
uniform float spill;
|
|
16
|
+
|
|
17
|
+
vec2 RGBtoUV(vec3 rgb) {
|
|
18
|
+
return vec2(
|
|
19
|
+
rgb.r * -0.169 + rgb.g * -0.331 + rgb.b * 0.5 + 0.5,
|
|
20
|
+
rgb.r * 0.5 + rgb.g * -0.419 + rgb.b * -0.081 + 0.5
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
vec4 ChromaKey(vec2 texCoord) {
|
|
25
|
+
vec4 rgba = texture2D(tex, texCoord);
|
|
26
|
+
float chromaDist = distance(RGBtoUV(texture2D(tex, texCoord).rgb), RGBtoUV(keyColor));
|
|
27
|
+
|
|
28
|
+
float baseMask = chromaDist - similarity;
|
|
29
|
+
float fullMask = pow(clamp(baseMask / smoothness, 0., 1.), 1.5);
|
|
30
|
+
rgba.a = fullMask;
|
|
31
|
+
|
|
32
|
+
float spillVal = pow(clamp(baseMask / spill, 0., 1.), 1.5);
|
|
33
|
+
float desat = clamp(rgba.r * 0.2126 + rgba.g * 0.7152 + rgba.b * 0.0722, 0., 1.);
|
|
34
|
+
rgba.rgb = mix(vec3(desat, desat, desat), rgba.rgb, spillVal);
|
|
35
|
+
|
|
36
|
+
return rgba;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void main(void) {
|
|
40
|
+
vec2 texCoord = vec2(gl_FragCoord.x/texWidth, 1.0 - (gl_FragCoord.y/texHeight));
|
|
41
|
+
gl_FragColor = ChromaKey(texCoord);
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
//# 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":";;;;iCAAe;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,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.VertexAlign = exports.ChromaKey = void 0;
|
|
6
|
+
var _chromaKey = _interopRequireDefault(require("./chroma-key.shader"));
|
|
7
|
+
exports.ChromaKey = _chromaKey.default;
|
|
8
|
+
var _vertexAlign = _interopRequireDefault(require("./vertex-align.shader"));
|
|
9
|
+
exports.VertexAlign = _vertexAlign.default;
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_chromaKey","_interopRequireDefault","require","exports","ChromaKey","default","_vertexAlign","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,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA2DC,OAAA,CAAAC,SAAA,GAAAJ,UAAA,CAAAK,OAAA;AAC3D,IAAAC,YAAA,GAAAL,sBAAA,CAAAC,OAAA;AAA+DC,OAAA,CAAAI,WAAA,GAAAD,YAAA,CAAAD,OAAA","ignoreList":[]}
|
|
@@ -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":";;;;iCAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -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":[]}
|