@snapcall/stream-ui 1.24.0 → 1.25.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/dist/stream-ui.esm.js +1131 -614
- package/dist/stream-ui.js +1128 -611
- package/package.json +12 -7
- package/dist/stream-ui.umd.js +0 -2121
- package/dist/streamerClient/index.js +0 -4
- package/dist/streamerClient/timer.ed477f04.js +0 -1
- package/dist/timer.ed477f04.js +0 -1
- package/dist/types.d.ts +0 -679
package/dist/stream-ui.esm.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import {jsxs as $3Sbms$jsxs, Fragment as $3Sbms$Fragment, jsx as $3Sbms$jsx} from "react/jsx-runtime";
|
|
2
2
|
import {createRoot as $3Sbms$createRoot} from "react-dom/client";
|
|
3
|
-
import $3Sbms$hotjarbrowser from "@hotjar/browser";
|
|
4
3
|
import $3Sbms$bowser, {parse as $3Sbms$parse, getParser as $3Sbms$getParser} from "bowser";
|
|
5
4
|
import $3Sbms$reacthottoast, {toast as $3Sbms$toast, Toaster as $3Sbms$Toaster1, ToastBar as $3Sbms$ToastBar} from "react-hot-toast";
|
|
6
5
|
import $3Sbms$styledcomponents, {keyframes as $3Sbms$keyframes, ThemeProvider as $3Sbms$ThemeProvider, ThemeContext as $3Sbms$ThemeContext, css as $3Sbms$css, createGlobalStyle as $3Sbms$createGlobalStyle} from "styled-components";
|
|
7
|
-
import {useState as $3Sbms$useState, useRef as $3Sbms$useRef, useCallback as $3Sbms$useCallback, useEffect as $3Sbms$useEffect, useContext as $3Sbms$useContext, useMemo as $3Sbms$useMemo, createContext as $3Sbms$createContext, useReducer as $3Sbms$useReducer, useLayoutEffect as $3Sbms$useLayoutEffect,
|
|
8
|
-
import {Toaster as $3Sbms$Toaster, UserPlus1Icon as $3Sbms$UserPlus1Icon, PhoneCall1Icon as $3Sbms$PhoneCall1Icon, VideoRecorderIcon as $3Sbms$VideoRecorderIcon, Recording2Icon as $3Sbms$Recording2Icon, Monitor2Icon as $3Sbms$Monitor2Icon, Camera2Icon as $3Sbms$Camera2Icon, Select as $3Sbms$Select, SelectTrigger as $3Sbms$SelectTrigger, SelectValue as $3Sbms$SelectValue, SelectContent as $3Sbms$SelectContent, SelectGroup as $3Sbms$SelectGroup, SelectItem as $3Sbms$SelectItem, useToast as $3Sbms$useToast, Copy5Icon as $3Sbms$Copy5Icon, CheckIcon as $3Sbms$CheckIcon, XCircleIcon as $3Sbms$XCircleIcon, Send3Icon as $3Sbms$Send3Icon, AlertTriangleIcon as $3Sbms$AlertTriangleIcon, Dialog as $3Sbms$Dialog, DialogContent as $3Sbms$DialogContent, DialogHeader as $3Sbms$DialogHeader, DialogTitle as $3Sbms$DialogTitle, Tabs as $3Sbms$Tabs, TabsList as $3Sbms$TabsList, TabsTrigger as $3Sbms$TabsTrigger, TabsContent as $3Sbms$TabsContent, Input as $3Sbms$Input, Button as $3Sbms$Button, CopyIcon as $3Sbms$CopyIcon, Form as $3Sbms$Form, FormField as $3Sbms$FormField, FormItem as $3Sbms$FormItem, FormLabel as $3Sbms$FormLabel, FormControl as $3Sbms$FormControl, CreatableSelect as $3Sbms$CreatableSelect, FormMessage as $3Sbms$FormMessage, Textarea as $3Sbms$Textarea, ToastAction as $3Sbms$ToastAction, InfoCircleIcon as $3Sbms$InfoCircleIcon, RawToast as $3Sbms$RawToast, ToastContent as $3Sbms$ToastContent, QrCode1Icon as $3Sbms$QrCode1Icon, Settings1Icon as $3Sbms$Settings1Icon, Upload1Icon as $3Sbms$Upload1Icon,
|
|
6
|
+
import {useState as $3Sbms$useState, useRef as $3Sbms$useRef, useCallback as $3Sbms$useCallback, useEffect as $3Sbms$useEffect, useContext as $3Sbms$useContext, useMemo as $3Sbms$useMemo, createContext as $3Sbms$createContext, useReducer as $3Sbms$useReducer, useLayoutEffect as $3Sbms$useLayoutEffect, cloneElement as $3Sbms$cloneElement, forwardRef as $3Sbms$forwardRef} from "react";
|
|
7
|
+
import {Toaster as $3Sbms$Toaster, UserPlus1Icon as $3Sbms$UserPlus1Icon, PhoneCall1Icon as $3Sbms$PhoneCall1Icon, VideoRecorderIcon as $3Sbms$VideoRecorderIcon, Recording2Icon as $3Sbms$Recording2Icon, Monitor2Icon as $3Sbms$Monitor2Icon, Camera2Icon as $3Sbms$Camera2Icon, Select as $3Sbms$Select, SelectTrigger as $3Sbms$SelectTrigger, SelectValue as $3Sbms$SelectValue, SelectContent as $3Sbms$SelectContent, SelectGroup as $3Sbms$SelectGroup, SelectItem as $3Sbms$SelectItem, useToast as $3Sbms$useToast, Copy5Icon as $3Sbms$Copy5Icon, CheckIcon as $3Sbms$CheckIcon, XCircleIcon as $3Sbms$XCircleIcon, Send3Icon as $3Sbms$Send3Icon, AlertTriangleIcon as $3Sbms$AlertTriangleIcon, Dialog as $3Sbms$Dialog, DialogContent as $3Sbms$DialogContent, DialogHeader as $3Sbms$DialogHeader, DialogTitle as $3Sbms$DialogTitle, Tabs as $3Sbms$Tabs, TabsList as $3Sbms$TabsList, TabsTrigger as $3Sbms$TabsTrigger, TabsContent as $3Sbms$TabsContent, Input as $3Sbms$Input, Button as $3Sbms$Button, CopyIcon as $3Sbms$CopyIcon, Form as $3Sbms$Form, FormField as $3Sbms$FormField, FormItem as $3Sbms$FormItem, FormLabel as $3Sbms$FormLabel, FormControl as $3Sbms$FormControl, CreatableSelect as $3Sbms$CreatableSelect, FormMessage as $3Sbms$FormMessage, Textarea as $3Sbms$Textarea, ToastAction as $3Sbms$ToastAction, InfoCircleIcon as $3Sbms$InfoCircleIcon, FlipBackwardIcon as $3Sbms$FlipBackwardIcon, ArrowUpRightIcon as $3Sbms$ArrowUpRightIcon, RawToast as $3Sbms$RawToast, ToastContent as $3Sbms$ToastContent, QrCode1Icon as $3Sbms$QrCode1Icon, Settings1Icon as $3Sbms$Settings1Icon, Upload1Icon as $3Sbms$Upload1Icon, VolumeMaxIcon as $3Sbms$VolumeMaxIcon, Settings3Icon as $3Sbms$Settings3Icon, XCloseIcon as $3Sbms$XCloseIcon, ArrowLeftIcon as $3Sbms$ArrowLeftIcon, HelpCircleIcon as $3Sbms$HelpCircleIcon, Sheet as $3Sbms$Sheet, DialogTrigger as $3Sbms$DialogTrigger, SheetTrigger as $3Sbms$SheetTrigger, SheetHeader as $3Sbms$SheetHeader, SheetClose as $3Sbms$SheetClose, SheetContent as $3Sbms$SheetContent, SheetTitle as $3Sbms$SheetTitle, DialogDescription as $3Sbms$DialogDescription, SheetDescription as $3Sbms$SheetDescription, SpinnerIcon as $3Sbms$SpinnerIcon, CheckCircleIcon as $3Sbms$CheckCircleIcon, PlusCircleIcon as $3Sbms$PlusCircleIcon, Camera1Icon as $3Sbms$Camera1Icon, PlayIcon as $3Sbms$PlayIcon, Trash3Icon as $3Sbms$Trash3Icon, DialogFooter as $3Sbms$DialogFooter, AlertDialog as $3Sbms$AlertDialog, AlertDialogContent as $3Sbms$AlertDialogContent, AlertDialogHeader as $3Sbms$AlertDialogHeader, AlertDialogTitle as $3Sbms$AlertDialogTitle, AlertDialogDescription as $3Sbms$AlertDialogDescription, AlertDialogFooter as $3Sbms$AlertDialogFooter, AlertDialogCancel as $3Sbms$AlertDialogCancel, AlertDialogAction as $3Sbms$AlertDialogAction, TrashIcon as $3Sbms$TrashIcon, Hourglass3Icon as $3Sbms$Hourglass3Icon, MicrophoneOffIcon as $3Sbms$MicrophoneOffIcon, RefreshCw3Icon as $3Sbms$RefreshCw3Icon, QrCodeIcon as $3Sbms$QrCodeIcon, Avatar as $3Sbms$Avatar, SlashCircle1Icon as $3Sbms$SlashCircle1Icon, CalendarIcon as $3Sbms$CalendarIcon, Microphone1Icon as $3Sbms$Microphone1Icon, VideoRecorderOffIcon as $3Sbms$VideoRecorderOffIcon, MicrophoneOff1Icon as $3Sbms$MicrophoneOff1Icon, AlertCircleIcon as $3Sbms$AlertCircleIcon, Lock1Icon as $3Sbms$Lock1Icon, Lock3Icon as $3Sbms$Lock3Icon, VoicemailIcon as $3Sbms$VoicemailIcon} from "@snapcall/design-system";
|
|
9
8
|
import "inobounce";
|
|
10
|
-
import {QueryClient as $3Sbms$QueryClient, QueryClientProvider as $3Sbms$QueryClientProvider, useQuery as $3Sbms$useQuery} from "react-query";
|
|
9
|
+
import {QueryClient as $3Sbms$QueryClient, QueryClientProvider as $3Sbms$QueryClientProvider, useQuery as $3Sbms$useQuery, useQueryClient as $3Sbms$useQueryClient, useMutation as $3Sbms$useMutation} from "react-query";
|
|
11
10
|
import {useTranslation as $3Sbms$useTranslation, initReactI18next as $3Sbms$initReactI18next, Trans as $3Sbms$Trans} from "react-i18next";
|
|
12
11
|
import $3Sbms$i18next from "i18next";
|
|
13
12
|
import {useOverlayTriggerState as $3Sbms$useOverlayTriggerState} from "react-stately";
|
|
@@ -31,7 +30,6 @@ function $parcel$interopDefault(a) {
|
|
|
31
30
|
|
|
32
31
|
|
|
33
32
|
|
|
34
|
-
|
|
35
33
|
// https://github.com/voodoocreation/ts-deepmerge/blob/master/src/index.ts
|
|
36
34
|
const $365e765f9890497b$var$isObject = (obj)=>{
|
|
37
35
|
if (typeof obj === "object" && obj !== null) {
|
|
@@ -342,7 +340,6 @@ const $35b37252690084e8$export$1cbfb36c1655a9a = (root, element)=>{
|
|
|
342
340
|
|
|
343
341
|
|
|
344
342
|
|
|
345
|
-
|
|
346
343
|
const $a3e657fb86ae23f3$export$604ba5624273df44 = ()=>{
|
|
347
344
|
try {
|
|
348
345
|
const storedTheme = localStorage.getItem("stream_ui_language");
|
|
@@ -356,27 +353,27 @@ const $a3e657fb86ae23f3$export$604ba5624273df44 = ()=>{
|
|
|
356
353
|
|
|
357
354
|
|
|
358
355
|
var $cdb0576f0fea19f0$exports = {};
|
|
359
|
-
$cdb0576f0fea19f0$exports = JSON.parse('{"header":{"free":"Free version"},"loader":{"connection":"Connecting..."},"common":{"new":"new"},"notifications":{"screensharingError":"An error occured when trying to toggle screensharing","microphoneError":"An error occured when trying to toggle the microphone","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","noCamera":"No camera available","blockedMicrophonePopupTitle":"Camera and microphone are blocked","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","reload":"Reload","criticalError":"A critical error has occurred (error {{code}}).","agentJoinError":"An error occured while trying to join the room as an agent","close":"Close","connectedTo":"Connected to {{name}}","recording":"Recording in progress","invitationSentToFailed":"Sent to {{ name }} failed.","uploadError":"An error occured during the upload, please try again later."},"recordingPopup":{"recordingStartTitle":"Recording about to start.","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","dismiss":"Dismiss"},"requestAccess":{"wantToJoin":"<bold>{{name}}</bold> wants to join!","deny":"Deny","admit":"Admit","defaultName":"An user"},"endView":{"goBack":"Go back to call","tooLate":"You arrived too late","callIsOver":"The call is over or deleted","callEnded":"The call is now ended","callLeft":"You left the call","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later."},"menu":{"title":"Menu","new":"NEW","openNewTab":"Open new tab","quickConnect":"Quick Connect","pictureInPicture":"Picture-in-Picture","screenSharing":"Screen sharing","stopRecord":"Stop record","startRecord":"Record call"},"blockedFeature":{"titleConnected":"Upgrade to Pro","titleGuest":"Feature not available","descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissGuest":"Okay","dismissConnected":"Upgrade to Pro"},"copyLink":{"title":"Copy link","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","copied":"Link copied to clipboard","copy":"Copy"},"quickConnect":{"title":"Quick Connect","scanTitle":"Scan QR Code","scan":"Scan this QR code with your phone camera to open the call."},"settings":{"title":"Settings","preferences":"Preferences","language":"Language","devices":"Devices","help":"Help","helpCenter":"Go to help center"},"audioMenu":{"title":"Audio","blockedMicrophone":"Microphone is blocked.","microphonePermissions":"Please accept microphone sharing before accessing these options."},"videoMenu":{"title":"Video","lowDef":"Low definition (240p)","standardDef":"Standard definition (480p)","highDef":"High definition (720p)","blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","sendResolution":"Send Resolution (maximum)"},"shareLink":{"title":"Share link","title2":"Share a link","invalid":"Invalid link","sentToUsers":"Link sent to users","sentToUser":"Link sent to {{user}}","failed":"Failed to send link","poweredBy":"Powered by","invoice":"{{user}} sent you an invoice.","pay":"Pay"},"invitePeople":{"PublicLink":"Public link","invitePeople":"Invite people","joinTheCall":"Join the call","inviteRecordClip":"Invite to record clip","inviteRecordVideo":"Record a video","inviteRecordAudio":"Record an audio","inviteRecordScreen":"Record a screen","inviteRecordPhoto":"Take a photo","inviteCall":"Invite to join call","sharePublicLink":"Share public link","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","addEmailToInvite":"Add an email to invite.","email":"Email","emailPlaceholder":"Eg. john@acme.com","invite":"Invite","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","addEmails":"Add emails...","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","error":"Failed to send, please try again later.","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","message":"Message"},"youtube":{"title":"Watch Together","url":"YOUTUBE URL","invalid":"Invalid YouTube URL","share":"Watch now"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"title":"Snapshot","shared":"Snapshot shared.","sentToUsers":"Snapshot sent to users.","sentToUser":"Snapshot sent to {{user}}","save":"Save photo","error":"An error occured when trying to send the snapshot"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"requestDevice":{"requestInput":"Request input devices","request":"{{user}} would like you to share your {{device}}","timedOut":"Your request has timed out.","declined":"Your request has been declined.","userDeclined":"{{user}} has declined your request."},"leave":{"title":"Leave","leaveCall":"Leave call","endCall":"End call for all"},"virtualBackground":{"title":"Virtual Background","setBackground":"Set Background"},"misc":{"someone":"Someone","camera":"Camera","microphone":"Microphone","photo":"Photo","video":"Video","screen":"Screen","screenshot":"Screenshot","speaker":"Speaker","user":"User","open":"Open","from":"From","accept":"Accept","decline":"Decline","you":"You","cancel":"Cancel","confirm":"Confirm","remove":"Remove","proceed":"Proceed","audio":"Audio"},"greeting":{"mainTitle":"Welcome to SnapCall","sideTitle":"Hold tight, you\'re next!","sideDescription":"Please enter your name and adjust your camera and microphone","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","footerTitle":"Powered by SnapCall","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","cameraDisabled":"Camera is Off","microphoneDisabled":"Microphone is Off","cameraEnabled":"Camera is On","microphoneEnabled":"Microphone is On","scheduleACall":"Schedule a call","requestACall":"Request a call","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","setting":"Settings","askToJoin":"Ask to join","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in.","cantJoinCall":"You can\u2019t join this call","someoneDenied":"Someone in the call denied your request to join.","askingLetIn":"Asking to be let in...","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","cantWait":"Can\'t wait?","whatYouCanDo":"Here\u2019s what you can do","leaveMessage":"Leave a message","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","recordVideo":"Record video","recordVoice":"Record voice","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","mediaDenied":"Microphone and camera access denied","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar."},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","limit":"Video recording limited to 5 min.","replyAttached":"Your reply has been attached","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","openThread":"Open thread","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","clipSubmissionDescription":"Thank you for using SnapCall.","submissionTitle":"Thank you for your submission!","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","confirmRemovalTitle":"Confirm deletion","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","waitVideo":"A video may take up to 15 seconds to be ready.","elementCaptureSuccess":"{{ type }} captured successfully","takeNewElement":"Capture a new {{ type }}","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","allowAccess":"Allow access","okay":"Okay","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","permissionDeniedTitle":"Something went wrong!","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","photoInstructionsTitle":"Ready to snap a photo?","videoInstructionsTitle":"Ready to record a video?","screenShareInstructionsTitle":"Ready to share your screen?","audioInstructionsTitle":"Ready to record a voice message?","instructions":{"selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically."},"switchToMobileTitle":"Switch to your mobile device","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","useDesktopVersion":"Use the desktop version","scanQRCode":"Scan this QR code with a compatible device.","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","screenTitle":"Ready to capture your screen?","loggedAs":"Logged as","logIn":"Log in","audioLevelNotification":{"shortVideo":{"title":"Short video.","description":"This video is too short to get context."},"noSound":{"title":"No sound detected.","description":"Make sure your microphone is activated."},"spokenWordsQuestion":{"title":"Spoken words.","description":"Does your video include enough spoken details?"},"spokenWordsWarning":{"title":"No spoken words.","description":"The clip includes barely any spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","rememberSpeaking":"Remember to speak to provide context.","noSound":"No sound detected."},"chooseWhatYouWantToShare":"Choose what you want to share","startScreenRecording":"Start screen recording","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAccess":"No camera access","noMicrophoneAccess":"No microphone access","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","showQrCode":"Show QR code","upload":"Upload"}}');
|
|
356
|
+
$cdb0576f0fea19f0$exports = JSON.parse('{"header":{"free":"Free version"},"loader":{"connection":"Connecting..."},"common":{"new":"new"},"notifications":{"error":"Error","screensharingError":"An error occured when trying to toggle screensharing","microphoneError":"An error occured when trying to toggle the microphone","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","noCamera":"No camera available","blockedMicrophonePopupTitle":"Camera and microphone are blocked","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","reload":"Reload","criticalError":"A critical error has occurred (error {{code}}).","agentJoinError":"An error occured while trying to join the room as an agent","close":"Close","connectedTo":"Connected to {{name}}","recording":"Recording in progress","invitationSentToFailed":"Sent to {{ name }} failed.","errorOccuredCode":"An error occured (error {{code}})."},"recordingPopup":{"recordingStartTitle":"Recording about to start.","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","dismiss":"Dismiss"},"requestAccess":{"wantToJoin":"<bold>{{name}}</bold> wants to join!","deny":"Deny","admit":"Admit","defaultName":"An user"},"endView":{"goBack":"Go back to call","callEnded":"The call has ended","callNoLongerActive":"This call is no longer active. Thank you for participating.","callLeft":"You have left the call","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard"},"menu":{"title":"Menu","new":"NEW","openNewTab":"Open new tab","quickConnect":"Quick Connect","pictureInPicture":"Picture-in-Picture","screenSharing":"Screen sharing","stopRecord":"Stop record","startRecord":"Record call"},"blockedFeature":{"titleConnected":"Upgrade to Pro","titleGuest":"Feature not available","descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissGuest":"Okay","dismissConnected":"Upgrade to Pro"},"copyLink":{"title":"Copy link","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","copied":"Link copied to clipboard","copy":"Copy"},"quickConnect":{"title":"Quick Connect","scanTitle":"Scan QR Code","scan":"Scan this QR code with your phone camera to open the call."},"settings":{"title":"Settings","preferences":"Preferences","language":"Language","devices":"Devices","help":"Help","helpCenter":"Go to help center","selectYourMicrophone":"Select your preferred microphone","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language"},"audioMenu":{"title":"Audio","blockedMicrophone":"Microphone is blocked.","microphonePermissions":"Please accept microphone sharing before accessing these options."},"videoMenu":{"title":"Video","lowDef":"Low definition (240p)","standardDef":"Standard definition (480p)","highDef":"High definition (720p)","blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","sendResolution":"Send Resolution (maximum)"},"shareLink":{"title":"Share link","title2":"Share a link","invalid":"Invalid link","sentToUsers":"Link sent to users","sentToUser":"Link sent to {{user}}","failed":"Failed to send link","poweredBy":"Powered by","invoice":"{{user}} sent you an invoice.","pay":"Pay"},"invitePeople":{"PublicLink":"Public link","invitePeople":"Invite people","joinTheCall":"Join the call","inviteRecordClip":"Invite to record clip","inviteRecordVideo":"Record a video","inviteRecordAudio":"Record an audio","inviteRecordScreen":"Record a screen","inviteRecordPhoto":"Take a photo","inviteCall":"Invite to join call","sharePublicLink":"Share public link","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","addEmailToInvite":"Add an email to invite.","email":"Email","emailPlaceholder":"Eg. john@acme.com","invite":"Invite","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","addEmails":"Add emails...","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","error":"Failed to send, please try again later.","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","message":"Message"},"youtube":{"title":"Watch Together","url":"YOUTUBE URL","invalid":"Invalid YouTube URL","share":"Watch now"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"title":"Snapshot","shared":"Snapshot shared.","sentToUsers":"Snapshot sent to users.","sentToUser":"Snapshot sent to {{user}}","save":"Save photo","error":"An error occured when trying to send the snapshot"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"requestDevice":{"requestInput":"Request input devices","request":"{{user}} would like you to share your {{device}}","timedOut":"Your request has timed out.","declined":"Your request has been declined.","userDeclined":"{{user}} has declined your request."},"leave":{"title":"Leave","leaveCall":"Leave call","endCall":"End call for all"},"virtualBackground":{"title":"Virtual Background","setBackground":"Set Background"},"misc":{"someone":"Someone","camera":"Camera","microphone":"Microphone","photo":"Photo","video":"Video","screen":"Screen","screenshot":"Screenshot","speaker":"Speaker","user":"User","open":"Open","from":"From","accept":"Accept","decline":"Decline","you":"You","cancel":"Cancel","confirm":"Confirm","remove":"Remove","proceed":"Proceed","audio":"Audio"},"greeting":{"mainTitle":"Welcome to SnapCall","sideTitle":"Hold tight, you\'re next!","sideDescription":"Please enter your name and adjust your camera and microphone","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","footerTitle":"Powered by SnapCall","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","cameraDisabled":"Camera is Off","microphoneDisabled":"Microphone is Off","cameraEnabled":"Camera is On","microphoneEnabled":"Microphone is On","scheduleACall":"Schedule a call","requestACall":"Request a call","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","setting":"Settings","askToJoin":"Ask to join","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in.","cantJoinCall":"You can\u2019t join this call","someoneDenied":"Someone in the call denied your request to join.","askingLetIn":"Asking to be let in...","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","cantWait":"Can\'t wait?","whatYouCanDo":"Here\u2019s what you can do","leaveMessage":"Leave a message","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","recordVideo":"Record video","recordVoice":"Record voice","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","mediaDenied":"Microphone and camera access denied","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar."},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","limit":"Video recording limited to 5 min.","replyAttached":"Your reply has been attached","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","openThread":"Open thread","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","clipSubmissionDescription":"Thank you for using SnapCall.","submissionTitle":"Thank you for your submission!","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","confirmRemovalTitle":"Confirm deletion","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","waitVideo":"A video may take up to 15 seconds to be ready.","elementCaptureSuccess":"{{ type }} captured successfully","takeNewElement":"Capture a new {{ type }}","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","allowAccess":"Allow access","okay":"Okay","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","permissionDeniedTitle":"Something went wrong!","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","photoInstructionsTitle":"Ready to snap a photo?","videoInstructionsTitle":"Ready to record a video?","screenShareInstructionsTitle":"Ready to share your screen?","audioInstructionsTitle":"Ready to record a voice message?","instructions":{"selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically."},"switchToMobileTitle":"Switch to your mobile device","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","useDesktopVersion":"Use the desktop version","scanQRCode":"Scan this QR code with a compatible device.","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","screenTitle":"Ready to capture your screen?","loggedAs":"Logged as","logIn":"Log in","audioLevelNotification":{"shortVideo":{"title":"Short video.","description":"This video is too short to get context."},"noSound":{"title":"No sound detected.","description":"Make sure your microphone is activated."},"spokenWordsQuestion":{"title":"Spoken words.","description":"Does your video include enough spoken details?"},"spokenWordsWarning":{"title":"No spoken words.","description":"The clip includes barely any spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","rememberSpeaking":"Remember to speak to provide context.","noSound":"No sound detected."},"chooseWhatYouWantToShare":"Choose what you want to share","startScreenRecording":"Start screen recording","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAccess":"No camera access","noMicrophoneAccess":"No microphone access","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","noCameraAccessDescription":"No camera access Allow camera access in your browser.","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","showQrCode":"Show QR code","upload":"Upload"}}');
|
|
360
357
|
|
|
361
358
|
|
|
362
359
|
var $d94166210f763d5e$exports = {};
|
|
363
|
-
$d94166210f763d5e$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Microphone is blocked.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call is now ended","callIsOver":"The call is over or deleted","callLeft":"You left the call","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video clip now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAndMicrophoneAccess":"No camera & microphone access","noMicrophoneAccess":"No microphone access","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
|
|
360
|
+
$d94166210f763d5e$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Microphone is blocked.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call is now ended","callIsOver":"The call is over or deleted","callLeft":"You left the call","callNoLongerActive":"This call is no longer active. Thank you for participating.","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video clip now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","error":"Error","errorOccuredCode":"An error occured (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAccessDescription":"No camera access Allow camera access in your browser.","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccess":"No microphone access","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language","selectYourMicrophone":"Select your preferred microphone","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
|
|
364
361
|
|
|
365
362
|
|
|
366
363
|
var $dcf57489ec338826$exports = {};
|
|
367
|
-
$dcf57489ec338826$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Votre micro est bloqu\xe9.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"Vous n\'avez pas acc\xe8s \xe0 cette fonctionnalit\xe9. Souscrivez au plan Pro pour d\xe9bloquer toutes les fonctionnalit\xe9s de SnapCall.","descriptionGuest":"Vous participez \xe0 un appel cr\xe9\xe9 avec la version gratuite de SnapCall. Cette fonctionnalit\xe9 n\'est disponible qu\'avec une version Pro.","dismissConnected":"Souscrire \xe0 Pro","dismissGuest":"D\'accord","titleConnected":"Souscrire au plan Pro","titleGuest":"Fonctionnalit\xe9 non disponible"},"common":{"new":"new"},"copyLink":{"copied":"Lien copi\xe9 dans le presse-papier","copy":"Copier","description":"Copier le lien dans le presse-papiers","error":"Une erreur est survenue pendant la copie du lien dans le presse-papier","title":"Copier le lien"},"endView":{"callEnded":"Cet appel est termin\xe9","callIsOver":"Cet appel est termin\xe9 ou supprim\xe9","callLeft":"Vous avez quitt\xe9 l\'appel","full":"Impossible de rejoindre l\'appel","fullDescription":"Limite d\'utilisateurs atteinte. Merci de rejoindre l\'appel ult\xe9rieurement.","goBack":"Retourner dans l\'appel","tooLate":"Vous \xeates arriv\xe9 trop tard"},"gdpr":{"recordedWarning":"Pour am\xe9liorer la qualit\xe9 de notre service, cet appel va \xeatre enregistr\xe9."},"greeting":{"askToJoin":"Demander \xe0 rejoindre","askingLetIn":"Demande de participation...","cameraDisabled":"Cam\xe9ra d\xe9sactiv\xe9e","cameraEnabled":"Cam\xe9ra activ\xe9e","canceledCallRequest":"La demande d\'appel sera annul\xe9e et vous serez redirig\xe9 vers la page de planification des appels.","cantJoinCall":"Vous ne pouvez pas rejoindre cet appel","cantWait":"Vous ne souhaitez pas attendre ?","cantWaitLeaveMessage":"Vous ne pouvez pas attendre ? Vous pouvez laisser un message et vous serez contact\xe9 dans les plus brefs d\xe9lais.","clickOnLock":"Cliquez sur l\'ic\xf4ne de verrouillage <1></1> dans la barre de votre navigateur.","footerDescription":"D\xe9couvrez SnapCall, ajoutez de la vid\xe9o en temps r\xe9el \xe0 n\'importe quelle plateforme, produit ou service.","footerTitle":"Propuls\xe9 par SnapCall","leaveMessage":"Laisser un message","mainTitle":"Bienvenue sur SnapCall","mediaDenied":"Acc\xe8s au microphone et \xe0 la cam\xe9ra refus\xe9","microphoneDisabled":"Microphone d\xe9sactiv\xe9","microphoneEnabled":"Microphone activ\xe9","name":"Nom","nameDescription":"Ce nom sera affich\xe9 \xe0 tous les participants","namePlaceholder":"Ex. Lucie ou Pierre","nameSubmit":"Rejoindre la conversation","recordVideo":"Enregistrer une vid\xe9o","recordVoice":"Enregistrer un message vocal","requestACall":"Solliciter un appel maintenant","scheduleACall":"Planifier un appel","setting":"Param\xe8tres","sideDescription":"Veuillez entrer votre nom et configurer votre cam\xe9ra et microphone.","sideTitle":"C\'est bient\xf4t votre tour !","someoneDenied":"Quelqu\'un lors de l\'appel a refus\xe9 votre demande de participation.","takeFewMinute":"Cela peut prendre quelques minutes selon la disponibilit\xe9 des participants.","whatYouCanDo":"Voici ce que vous pouvez faire","youWillJoinWhenSomeoneLetsYou":"Votre acc\xe8s \xe0 l\'appel sera autoris\xe9 par un membre de l\'\xe9quipe {{ companyName }}."},"header":{"free":"Version gratuite"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Ajoutez un e-mail pour inviter.","addEmails":"Ajouter des e-mails...","copyCallLinkDescription":"Copiez ce lien et envoyez-le \xe0 toute personne que vous souhaitez inviter \xe0 rejoindre l\'appel.","copyClipLinkDescription":"Copiez ce lien et envoyez-le \xe0 toute personne que vous souhaitez inviter \xe0 enregistrer un clip.","email":"Email","emailPlaceholder":"Ex. jean@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"\xc9chec de l\'envoi, veuillez r\xe9essayer plus tard.","invalidEmail":"Format d\'email invalide.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Envoy\xe9 \xe0 {{ name }}","invitationSentTo_other":"Envoy\xe9 \xe0 {{ name }} et {{ otherEmailsCount }}+","invite":"Inviter","inviteByEmail":"Inviter par email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Inviter \xe0 rejoindre l\'appel","inviteCallDefaultMessage":"Vous \xeates invit\xe9 \xe0 rejoindre notre appel vid\xe9o. Cliquez sur le lien pour vous connecter instantan\xe9ment.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Veuillez enregistrer votre clip vid\xe9o maintenant et nous fournir plus de contexte pour mieux vous aider.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Inviter \xe0 enregistrer un clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Lien pour rejoindre l\'appel","linkToRecordAClip":"Lien pour enregistrer un clip","message":"Message","sharePublicLink":"Partager le lien public"},"leave":{"endCall":"Terminer l\'appel","leaveCall":"Quitter l\'appel","title":"Quitter"},"loader":{"connection":"Connexion..."},"menu":{"new":"NOUVEAU","openNewTab":"Ouvrir un nouvel onglet","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Partage d\'\xe9cran","startRecord":"Enregistrer l\'appel","stopRecord":"Arr\xeater l\'enregistrement","title":"Menu"},"misc":{"accept":"Accepter","audio":"Audio","camera":"Cam\xe9ra","cancel":"Annuler","confirm":"Confirmer","decline":"D\xe9cliner","from":"Depuis","microphone":"Micro","open":"Ouvrir","photo":"Photo","proceed":"Proc\xe9der","remove":"Enlever","screen":"\xc9cran","screenshot":"Capture d\'\xe9cran","someone":"Quelqu\'un","speaker":"Haut-parleur","user":"Utilisateur","video":"Vid\xe9o","you":"Vous"},"notifications":{"agentJoinError":"Une erreur est survenue en essayant de rejoindre la salle en tant qu\'agent","blockedMicrophonePopup":"SnapCall a besoin d\'acc\xe9der \xe0 votre cam\xe9ra et micro. Cliquez sur l\'ic\xf4ne de cam\xe9ra bloqu\xe9e dans la barre d\'adresse du navigateur.","blockedMicrophonePopupTitle":"Votre cam\xe9ra et micro sont bloqu\xe9s","cameraError":"Une erreur est survenue pendant l\'activation de la cam\xe9ra","cameraRotateError":"Une erreur est survenue pendant la rotation de la cam\xe9ra","close":"Fermer","connectedTo":"Connect\xe9 \xe0 {{name}}","criticalError":"Une erreur critique est survenue (erreur {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"Une erreur est survenue pendant l\'activation du micro","noCamera":"Aucune cam\xe9ra disponible","recording":"Enregistrement en cours","reload":"Recharger","screensharingError":"Une erreur est survenue pendant l\'activation du partage d\'\xe9cran","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scannez ce QR code avec votre t\xe9l\xe9phone pour ouvrir l\'appel.","scanTitle":"Scannez le QR Code","title":"Quick Connect"},"recorder":{"addMore":"Ajouter plus","addNewClip":"Ajouter un nouveau clip","allowAccess":"Autoriser l\'acc\xe8s","allowCamMicAccess":"Autoriser acc\xe8s cam\xe9ra/micro","allowScreenShareAccess":"Autoriser l\'acc\xe8s au partage d\'\xe9cran","attachElements_one":"Joindre {{ type }} au ticket","attachElements_other":"Joindre {{ count }} \xe9l\xe9ments","audioInstructionsTitle":"Pr\xeat \xe0 enregistrer un message vocal\xa0?","audioLevelNotification":{"noSound":{"description":"Assurez-vous que votre microphone est activ\xe9.","title":"Aucun son d\xe9tect\xe9."},"shortVideo":{"description":"Cette vid\xe9o semble assez courte, ne fournit pas assez de d\xe9tails.","title":"Vid\xe9o courte."},"spokenWordsQuestion":{"description":"Votre vid\xe9o offre-t-elle une explication d\xe9taill\xe9e et claire ?","title":"Avez-vous tout expliqu\xe9 ?"},"spokenWordsWarning":{"description":"La vid\xe9o ne comprend pratiquement aucun mot prononc\xe9.","title":"Aucun mot prononc\xe9."}},"audioLevelToast":{"continueSpeaking":"Continuez \xe0 parler pour expliquer.","noSound":"Aucun son d\xe9tect\xe9.","rememberSpeaking":"Veuillez parler \xe0 voix-haute."},"chooseWhatYouWantToShare":"Choose what you want to share","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Merci d\'utiliser SnapCall.","clipSubmissionTitle_one":"Votre clip a \xe9t\xe9 envoy\xe9","clipSubmissionTitle_other":"Vos clips ont \xe9t\xe9 envoy\xe9s","confirmRemovalDescription":"Voulez-vous vraiment supprimer cette photo/vid\xe9o ? Cette action ne peut pas \xeatre annul\xe9e.","confirmRemovalTitle":"Confirmer la suppression","elementBeingProcessed":"Veuillez patienter un moment pendant que votre {{ type }} est en cours de traitement...","elementCaptureSuccess":"{{ type }} captur\xe9(e) avec succ\xe8s","elementRecordedAndAttached":"Votre clip a \xe9t\xe9 envoy\xe9 et joint au fil de discussion.","goBackToTicket":"Revenir au billet","instructions":{"allowAccessOnPrompt":"<bold>Autorisez l\'acc\xe8s</bold> \xe0 la cam\xe9ra et au micro lorsque demand\xe9.","multiplePhotos":"Prenez <bold>une ou plusieurs photos</bold> pour donner plus de d\xe9tails.","privacyPolicy":"En continuant, vous acceptez notre <bold>Politique de confidentialit\xe9</bold>.","reviewAndSendAudios":"<bold>V\xe9rifiez vos audios</bold>, et ils seront envoy\xe9s automatiquement \xe0 nous.","reviewAndSendPhotos":"<bold>Validez vos photos</bold>, et elles nous seront envoy\xe9es automatiquement.","reviewAndSendVideos":"<bold>Validez vos vid\xe9os</bold>, et elles nous seront envoy\xe9es automatiquement.","screenShareInstruction":"S\xe9lectionnez l\'\xe9cran ou la fen\xeatre que vous souhaitez enregistrer.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Parlez clairement</bold> et dites ce que vous devez transmettre.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Appuyez sur le bouton d\'enregistrement</bold> pour commencer \xe0 enregistrer votre message audio.","tapStopVideoButton":"<bold>Appuyez sur Arr\xeat</bold> lorsque vous avez termin\xe9.","tapVideoButton":"<bold>Appuyez sur Enregistrer</bold>. Pensez \xe0 commenter.","videoSpeech":"Vous pouvez <bold>parler pendant</bold> l\'enregistrement pour ajouter des d\xe9tails."},"limit":"Enregistrement vid\xe9o limit\xe9 \xe0 5 min.","logIn":"Se connecter","loggedAs":"Connect\xe9 en tant que","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAndMicrophoneAccess":"No camera & microphone access","noMicrophoneAccess":"No microphone access","okay":"D\'accord","openThread":"Ouvrir le fil de discussion","permissionDeniedDescription":"Sans acc\xe8s \xe0 la cam\xe9ra et au microphone, vous ne pouvez pas prendre de photos ou de vid\xe9os \xe0 partager avec l\'\xe9quipe d\'assistance. Veuillez accorder l\'acc\xe8s dans les param\xe8tres de votre navigateur.","permissionDeniedTitle":"Quelque chose s\'est mal pass\xe9 !","photoInstructionsTitle":"Pr\xeat \xe0 prendre une photo ?","replyAttached":"Votre r\xe9ponse a \xe9t\xe9 jointe","scanQRCode":"Scannez ce code QR avec un appareil compatible.","screenShareInstructionsTitle":"Pr\xeat \xe0 partager votre \xe9cran ?","screenTitle":"Pr\xeat \xe0 capturer votre \xe9cran ?","send":"Envoyer","sendElements_one":"Envoyer la {{ type }}","sendElements_other":"Envoyer {{ count }} \xe9l\xe9ments","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Enregistrer \xe9cran","stopScreenShareButton":"Stop enregistrement","submissionDescription":"Votre photo/vid\xe9o a \xe9t\xe9 envoy\xe9e avec succ\xe8s. Nous l\'examinerons et reviendrons vers vous bient\xf4t.","submissionTitle":"Merci pour votre soumission !","switchToMobileDescription":"Profitez d\'une exp\xe9rience encore plus pratique en utilisant votre t\xe9l\xe9phone pour prendre des photos et enregistrer des vid\xe9os.","switchToMobileTitle":"Passez sur votre mobile","takeNewElement":"Prendre une nouvelle {{ type }}","upload":"Upload","useDesktopVersion":"Continuer","videoInstructionsTitle":"Pr\xeat \xe0 enregistrer une vid\xe9o ?","waitVideo":"Cela peut prendre jusqu\'\xe0 15 secondes pour qu\'une vid\xe9o soit pr\xeate."},"recordingPopup":{"dismiss":"Fermer","recordingStartText":"Cet appel sera enregistr\xe9 sous peu. Si vous pr\xe9f\xe9rez ne pas \xeatre enregistr\xe9, vous \xeates libre de quitter l\'appel \xe0 tout moment.","recordingStartTitle":"L\'enregistrement va commencer."},"requestAccess":{"admit":"Accepter","defaultName":"Un utilisateur","deny":"Refuser","wantToJoin":"{{name}} souhaite rejoindre!"},"requestDevice":{"declined":"Votre requ\xeate a \xe9t\xe9 refus\xe9.","request":"{{user}} voudrait que vous partagiez votre {{device}}","requestInput":"Demander l\'activation","timedOut":"Votre requ\xeate n\'a pas eu de r\xe9ponse","userDeclined":"{{user}} a d\xe9clin\xe9 votre requ\xeate."},"settings":{"devices":"Appareils","help":"Aide","helpCenter":"Acc\xe9der au centre d\'aide","language":"Langage","preferences":"Pr\xe9f\xe9rences","title":"Param\xe8tres"},"shareLink":{"failed":"Une erreur est survenue pendant l\'envoi du lien","invalid":"Lien invalide","invoice":"{{user}} vous a envoy\xe9 une facture.","pay":"Payer","poweredBy":"Propos\xe9 par","sentToUser":"Lien envoy\xe9 \xe0 {{user}}","sentToUsers":"Lien envoy\xe9 aux participants","title":"Partager un lien","title2":"Partager un lien"},"sharedHistory":{"shared":"Partag\xe9 avec vous"},"snapshot":{"error":"Une erreur est survenue pendant l\'envoi du snapshot","save":"Sauvegarder l\'image","sentToUser":"Snapshot envoy\xe9 \xe0 {{user}}","sentToUsers":"Snapshot envoy\xe9 aux participants.","shared":"Snapshot envoy\xe9.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Votre cam\xe9ra est bloqu\xe9.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"Haute d\xe9finition (720p)","lowDef":"Basse d\xe9finition (240p)","sendResolution":"R\xe9solution envoy\xe9e (max)","standardDef":"D\xe9finition standard (480p)","title":"Video"},"virtualBackground":{"setBackground":"Mettre l\'arri\xe8re plan","title":"Arri\xe8re plan virtuel"},"youtube":{"invalid":"URL YouTube invalide","share":"Regarder maintenant","title":"Regardons Ensemble","url":"URL YOUTUBE"}}');
|
|
364
|
+
$dcf57489ec338826$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Votre micro est bloqu\xe9.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"Vous n\'avez pas acc\xe8s \xe0 cette fonctionnalit\xe9. Souscrivez au plan Pro pour d\xe9bloquer toutes les fonctionnalit\xe9s de SnapCall.","descriptionGuest":"Vous participez \xe0 un appel cr\xe9\xe9 avec la version gratuite de SnapCall. Cette fonctionnalit\xe9 n\'est disponible qu\'avec une version Pro.","dismissConnected":"Souscrire \xe0 Pro","dismissGuest":"D\'accord","titleConnected":"Souscrire au plan Pro","titleGuest":"Fonctionnalit\xe9 non disponible"},"common":{"new":"new"},"copyLink":{"copied":"Lien copi\xe9 dans le presse-papier","copy":"Copier","description":"Copier le lien dans le presse-papiers","error":"Une erreur est survenue pendant la copie du lien dans le presse-papier","title":"Copier le lien"},"endView":{"callEnded":"Cet appel est termin\xe9","callIsOver":"Cet appel est termin\xe9 ou supprim\xe9","callLeft":"Vous avez quitt\xe9 l\'appel","callNoLongerActive":"This call is no longer active. Thank you for participating.","full":"Impossible de rejoindre l\'appel","fullDescription":"Limite d\'utilisateurs atteinte. Merci de rejoindre l\'appel ult\xe9rieurement.","goBack":"Retourner dans l\'appel","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard","tooLate":"Vous \xeates arriv\xe9 trop tard"},"gdpr":{"recordedWarning":"Pour am\xe9liorer la qualit\xe9 de notre service, cet appel va \xeatre enregistr\xe9."},"greeting":{"askToJoin":"Demander \xe0 rejoindre","askingLetIn":"Demande de participation...","cameraDisabled":"Cam\xe9ra d\xe9sactiv\xe9e","cameraEnabled":"Cam\xe9ra activ\xe9e","canceledCallRequest":"La demande d\'appel sera annul\xe9e et vous serez redirig\xe9 vers la page de planification des appels.","cantJoinCall":"Vous ne pouvez pas rejoindre cet appel","cantWait":"Vous ne souhaitez pas attendre ?","cantWaitLeaveMessage":"Vous ne pouvez pas attendre ? Vous pouvez laisser un message et vous serez contact\xe9 dans les plus brefs d\xe9lais.","clickOnLock":"Cliquez sur l\'ic\xf4ne de verrouillage <1></1> dans la barre de votre navigateur.","footerDescription":"D\xe9couvrez SnapCall, ajoutez de la vid\xe9o en temps r\xe9el \xe0 n\'importe quelle plateforme, produit ou service.","footerTitle":"Propuls\xe9 par SnapCall","leaveMessage":"Laisser un message","mainTitle":"Bienvenue sur SnapCall","mediaDenied":"Acc\xe8s au microphone et \xe0 la cam\xe9ra refus\xe9","microphoneDisabled":"Microphone d\xe9sactiv\xe9","microphoneEnabled":"Microphone activ\xe9","name":"Nom","nameDescription":"Ce nom sera affich\xe9 \xe0 tous les participants","namePlaceholder":"Ex. Lucie ou Pierre","nameSubmit":"Rejoindre la conversation","recordVideo":"Enregistrer une vid\xe9o","recordVoice":"Enregistrer un message vocal","requestACall":"Solliciter un appel maintenant","scheduleACall":"Planifier un appel","setting":"Param\xe8tres","sideDescription":"Veuillez entrer votre nom et configurer votre cam\xe9ra et microphone.","sideTitle":"C\'est bient\xf4t votre tour !","someoneDenied":"Quelqu\'un lors de l\'appel a refus\xe9 votre demande de participation.","takeFewMinute":"Cela peut prendre quelques minutes selon la disponibilit\xe9 des participants.","whatYouCanDo":"Voici ce que vous pouvez faire","youWillJoinWhenSomeoneLetsYou":"Votre acc\xe8s \xe0 l\'appel sera autoris\xe9 par un membre de l\'\xe9quipe {{ companyName }}."},"header":{"free":"Version gratuite"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Ajoutez un e-mail pour inviter.","addEmails":"Ajouter des e-mails...","copyCallLinkDescription":"Copiez ce lien et envoyez-le \xe0 toute personne que vous souhaitez inviter \xe0 rejoindre l\'appel.","copyClipLinkDescription":"Copiez ce lien et envoyez-le \xe0 toute personne que vous souhaitez inviter \xe0 enregistrer un clip.","email":"Email","emailPlaceholder":"Ex. jean@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"\xc9chec de l\'envoi, veuillez r\xe9essayer plus tard.","invalidEmail":"Format d\'email invalide.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Envoy\xe9 \xe0 {{ name }}","invitationSentTo_other":"Envoy\xe9 \xe0 {{ name }} et {{ otherEmailsCount }}+","invite":"Inviter","inviteByEmail":"Inviter par email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Inviter \xe0 rejoindre l\'appel","inviteCallDefaultMessage":"Vous \xeates invit\xe9 \xe0 rejoindre notre appel vid\xe9o. Cliquez sur le lien pour vous connecter instantan\xe9ment.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Veuillez enregistrer votre clip vid\xe9o maintenant et nous fournir plus de contexte pour mieux vous aider.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Inviter \xe0 enregistrer un clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Lien pour rejoindre l\'appel","linkToRecordAClip":"Lien pour enregistrer un clip","message":"Message","sharePublicLink":"Partager le lien public"},"leave":{"endCall":"Terminer l\'appel","leaveCall":"Quitter l\'appel","title":"Quitter"},"loader":{"connection":"Connexion..."},"menu":{"new":"NOUVEAU","openNewTab":"Ouvrir un nouvel onglet","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Partage d\'\xe9cran","startRecord":"Enregistrer l\'appel","stopRecord":"Arr\xeater l\'enregistrement","title":"Menu"},"misc":{"accept":"Accepter","audio":"Audio","camera":"Cam\xe9ra","cancel":"Annuler","confirm":"Confirmer","decline":"D\xe9cliner","from":"Depuis","microphone":"Micro","open":"Ouvrir","photo":"Photo","proceed":"Proc\xe9der","remove":"Enlever","screen":"\xc9cran","screenshot":"Capture d\'\xe9cran","someone":"Quelqu\'un","speaker":"Haut-parleur","user":"Utilisateur","video":"Vid\xe9o","you":"Vous"},"notifications":{"agentJoinError":"Une erreur est survenue en essayant de rejoindre la salle en tant qu\'agent","blockedMicrophonePopup":"SnapCall a besoin d\'acc\xe9der \xe0 votre cam\xe9ra et micro. Cliquez sur l\'ic\xf4ne de cam\xe9ra bloqu\xe9e dans la barre d\'adresse du navigateur.","blockedMicrophonePopupTitle":"Votre cam\xe9ra et micro sont bloqu\xe9s","cameraError":"Une erreur est survenue pendant l\'activation de la cam\xe9ra","cameraRotateError":"Une erreur est survenue pendant la rotation de la cam\xe9ra","close":"Fermer","connectedTo":"Connect\xe9 \xe0 {{name}}","criticalError":"Une erreur critique est survenue (erreur {{code}}).","error":"Error","errorOccuredCode":"An error occured (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"Une erreur est survenue pendant l\'activation du micro","noCamera":"Aucune cam\xe9ra disponible","recording":"Enregistrement en cours","reload":"Recharger","screensharingError":"Une erreur est survenue pendant l\'activation du partage d\'\xe9cran","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scannez ce QR code avec votre t\xe9l\xe9phone pour ouvrir l\'appel.","scanTitle":"Scannez le QR Code","title":"Quick Connect"},"recorder":{"addMore":"Ajouter plus","addNewClip":"Ajouter un nouveau clip","allowAccess":"Autoriser l\'acc\xe8s","allowCamMicAccess":"Autoriser acc\xe8s cam\xe9ra/micro","allowScreenShareAccess":"Autoriser l\'acc\xe8s au partage d\'\xe9cran","attachElements_one":"Joindre {{ type }} au ticket","attachElements_other":"Joindre {{ count }} \xe9l\xe9ments","audioInstructionsTitle":"Pr\xeat \xe0 enregistrer un message vocal\xa0?","audioLevelNotification":{"noSound":{"description":"Assurez-vous que votre microphone est activ\xe9.","title":"Aucun son d\xe9tect\xe9."},"shortVideo":{"description":"Cette vid\xe9o semble assez courte, ne fournit pas assez de d\xe9tails.","title":"Vid\xe9o courte."},"spokenWordsQuestion":{"description":"Votre vid\xe9o offre-t-elle une explication d\xe9taill\xe9e et claire ?","title":"Avez-vous tout expliqu\xe9 ?"},"spokenWordsWarning":{"description":"La vid\xe9o ne comprend pratiquement aucun mot prononc\xe9.","title":"Aucun mot prononc\xe9."}},"audioLevelToast":{"continueSpeaking":"Continuez \xe0 parler pour expliquer.","noSound":"Aucun son d\xe9tect\xe9.","rememberSpeaking":"Veuillez parler \xe0 voix-haute."},"chooseWhatYouWantToShare":"Choose what you want to share","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Merci d\'utiliser SnapCall.","clipSubmissionTitle_one":"Votre clip a \xe9t\xe9 envoy\xe9","clipSubmissionTitle_other":"Vos clips ont \xe9t\xe9 envoy\xe9s","confirmRemovalDescription":"Voulez-vous vraiment supprimer cette photo/vid\xe9o ? Cette action ne peut pas \xeatre annul\xe9e.","confirmRemovalTitle":"Confirmer la suppression","elementBeingProcessed":"Veuillez patienter un moment pendant que votre {{ type }} est en cours de traitement...","elementCaptureSuccess":"{{ type }} captur\xe9(e) avec succ\xe8s","elementRecordedAndAttached":"Votre clip a \xe9t\xe9 envoy\xe9 et joint au fil de discussion.","goBackToTicket":"Revenir au billet","instructions":{"allowAccessOnPrompt":"<bold>Autorisez l\'acc\xe8s</bold> \xe0 la cam\xe9ra et au micro lorsque demand\xe9.","multiplePhotos":"Prenez <bold>une ou plusieurs photos</bold> pour donner plus de d\xe9tails.","privacyPolicy":"En continuant, vous acceptez notre <bold>Politique de confidentialit\xe9</bold>.","reviewAndSendAudios":"<bold>V\xe9rifiez vos audios</bold>, et ils seront envoy\xe9s automatiquement \xe0 nous.","reviewAndSendPhotos":"<bold>Validez vos photos</bold>, et elles nous seront envoy\xe9es automatiquement.","reviewAndSendVideos":"<bold>Validez vos vid\xe9os</bold>, et elles nous seront envoy\xe9es automatiquement.","screenShareInstruction":"S\xe9lectionnez l\'\xe9cran ou la fen\xeatre que vous souhaitez enregistrer.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Parlez clairement</bold> et dites ce que vous devez transmettre.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Appuyez sur le bouton d\'enregistrement</bold> pour commencer \xe0 enregistrer votre message audio.","tapStopVideoButton":"<bold>Appuyez sur Arr\xeat</bold> lorsque vous avez termin\xe9.","tapVideoButton":"<bold>Appuyez sur Enregistrer</bold>. Pensez \xe0 commenter.","videoSpeech":"Vous pouvez <bold>parler pendant</bold> l\'enregistrement pour ajouter des d\xe9tails."},"limit":"Enregistrement vid\xe9o limit\xe9 \xe0 5 min.","logIn":"Se connecter","loggedAs":"Connect\xe9 en tant que","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAccessDescription":"No camera access Allow camera access in your browser.","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccess":"No microphone access","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","okay":"D\'accord","openThread":"Ouvrir le fil de discussion","permissionDeniedDescription":"Sans acc\xe8s \xe0 la cam\xe9ra et au microphone, vous ne pouvez pas prendre de photos ou de vid\xe9os \xe0 partager avec l\'\xe9quipe d\'assistance. Veuillez accorder l\'acc\xe8s dans les param\xe8tres de votre navigateur.","permissionDeniedTitle":"Quelque chose s\'est mal pass\xe9 !","photoInstructionsTitle":"Pr\xeat \xe0 prendre une photo ?","replyAttached":"Votre r\xe9ponse a \xe9t\xe9 jointe","scanQRCode":"Scannez ce code QR avec un appareil compatible.","screenShareInstructionsTitle":"Pr\xeat \xe0 partager votre \xe9cran ?","screenTitle":"Pr\xeat \xe0 capturer votre \xe9cran ?","send":"Envoyer","sendElements_one":"Envoyer la {{ type }}","sendElements_other":"Envoyer {{ count }} \xe9l\xe9ments","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Enregistrer \xe9cran","stopScreenShareButton":"Stop enregistrement","submissionDescription":"Votre photo/vid\xe9o a \xe9t\xe9 envoy\xe9e avec succ\xe8s. Nous l\'examinerons et reviendrons vers vous bient\xf4t.","submissionTitle":"Merci pour votre soumission !","switchToMobileDescription":"Profitez d\'une exp\xe9rience encore plus pratique en utilisant votre t\xe9l\xe9phone pour prendre des photos et enregistrer des vid\xe9os.","switchToMobileTitle":"Passez sur votre mobile","takeNewElement":"Prendre une nouvelle {{ type }}","upload":"Upload","useDesktopVersion":"Continuer","videoInstructionsTitle":"Pr\xeat \xe0 enregistrer une vid\xe9o ?","waitVideo":"Cela peut prendre jusqu\'\xe0 15 secondes pour qu\'une vid\xe9o soit pr\xeate."},"recordingPopup":{"dismiss":"Fermer","recordingStartText":"Cet appel sera enregistr\xe9 sous peu. Si vous pr\xe9f\xe9rez ne pas \xeatre enregistr\xe9, vous \xeates libre de quitter l\'appel \xe0 tout moment.","recordingStartTitle":"L\'enregistrement va commencer."},"requestAccess":{"admit":"Accepter","defaultName":"Un utilisateur","deny":"Refuser","wantToJoin":"{{name}} souhaite rejoindre!"},"requestDevice":{"declined":"Votre requ\xeate a \xe9t\xe9 refus\xe9.","request":"{{user}} voudrait que vous partagiez votre {{device}}","requestInput":"Demander l\'activation","timedOut":"Votre requ\xeate n\'a pas eu de r\xe9ponse","userDeclined":"{{user}} a d\xe9clin\xe9 votre requ\xeate."},"settings":{"devices":"Appareils","help":"Aide","helpCenter":"Acc\xe9der au centre d\'aide","language":"Langage","preferences":"Pr\xe9f\xe9rences","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language","selectYourMicrophone":"Select your preferred microphone","title":"Param\xe8tres"},"shareLink":{"failed":"Une erreur est survenue pendant l\'envoi du lien","invalid":"Lien invalide","invoice":"{{user}} vous a envoy\xe9 une facture.","pay":"Payer","poweredBy":"Propos\xe9 par","sentToUser":"Lien envoy\xe9 \xe0 {{user}}","sentToUsers":"Lien envoy\xe9 aux participants","title":"Partager un lien","title2":"Partager un lien"},"sharedHistory":{"shared":"Partag\xe9 avec vous"},"snapshot":{"error":"Une erreur est survenue pendant l\'envoi du snapshot","save":"Sauvegarder l\'image","sentToUser":"Snapshot envoy\xe9 \xe0 {{user}}","sentToUsers":"Snapshot envoy\xe9 aux participants.","shared":"Snapshot envoy\xe9.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Votre cam\xe9ra est bloqu\xe9.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"Haute d\xe9finition (720p)","lowDef":"Basse d\xe9finition (240p)","sendResolution":"R\xe9solution envoy\xe9e (max)","standardDef":"D\xe9finition standard (480p)","title":"Video"},"virtualBackground":{"setBackground":"Mettre l\'arri\xe8re plan","title":"Arri\xe8re plan virtuel"},"youtube":{"invalid":"URL YouTube invalide","share":"Regarder maintenant","title":"Regardons Ensemble","url":"URL YOUTUBE"}}');
|
|
368
365
|
|
|
369
366
|
|
|
370
367
|
var $8af7f345a966aef3$exports = {};
|
|
371
|
-
$8af7f345a966aef3$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Il tuo microfono \xe8 bloccato.","microphonePermissions":"Si prega di accettare la condivisione del microfono prima di accedere a queste opzioni.","title":"Audio"},"blockedFeature":{"descriptionConnected":"Su un piano gratuito, non puoi utilizzare questa funzione. Aggiorna il tuo piano per usufruire di tutte le funzionalit\xe0 in chiamata.","descriptionGuest":"Stai partecipando a una chiamata creata con una versione gratuita di SnapCall. Questa funzione \xe8 disponibile solo con una versione Pro.","dismissConnected":"L\'aggiornamento a Pro","dismissGuest":"Okay","titleConnected":"L\'aggiornamento a Pro","titleGuest":"Funzione non disponibile"},"common":{"new":"new"},"copyLink":{"copied":"Link copiato negli Appunti","copy":"Copia","description":"Copia il link negli appunti","error":"Si \xe8 verificato un errore durante la copia negli Appunti","title":"Copia il link"},"endView":{"callEnded":"Questa chiamata \xe8 finita","callIsOver":"Questa chiamata \xe8 finita o \xe8 stata eliminata","callLeft":"Hai lasciato la chiamata","full":"Impossibile partecipare alla chiamata","fullDescription":"Limite d\'uso attenente.","goBack":"Torna alla chiamata","tooLate":"Sei arrivato troppo tardi"},"gdpr":{"recordedWarning":"Per migliorare la qualit\xe0 del nostro servizio, questa chiamata verr\xe0 registrata."},"greeting":{"askToJoin":"Chiedi di partecipare","askingLetIn":"Chiedo di essere fatto entrare...","cameraDisabled":"Fotocamera \xe8 spenta","cameraEnabled":"Fotocamera \xe8 accesa","canceledCallRequest":"La richiesta di chiamata verr\xe0 annullata e verrai reindirizzato alla pagina di pianificazione delle chiamate","cantJoinCall":"Non puoi partecipare a questa chiamata","cantWait":"Non vedo l\'ora?","cantWaitLeaveMessage":"Non vedi l\'ora? Puoi lasciare un messaggio e sarai contattato il prima possibile.","clickOnLock":"Fai clic sull\'icona del lucchetto <1></1> nella barra del browser.","footerDescription":"Incontrare SnapCall, il modo pi\xf9 semplice per aggiungere video in tempo reale a piattaforma, prodotto o servizio.","footerTitle":"Offerto da SnapCall","leaveMessage":"Lascia un messaggio","mainTitle":"Benvenuto a SnapCall","mediaDenied":"Accesso al microfono e alla fotocamera negato","microphoneDisabled":"Microfono \xe8 spento","microphoneEnabled":"Microfono \xe8 acceso","name":"Nome","nameDescription":"Questo nome verr\xe0 visualizzato a tutti i partecipanti alla chiamata.","namePlaceholder":"Per esempio. Lucia o Pietro","nameSubmit":"Partecipa alla conversazione","recordVideo":"Registra video","recordVoice":"Registra voce","requestACall":"Richiedi una chiamata","scheduleACall":"Pianifica una chiamata","setting":"Impostazioni","sideDescription":"Inserisci il tuo nome e regola la fotocamera e il microfono","sideTitle":"Tieni duro, il prossimo sei tu!","someoneDenied":"Qualcuno nella chiamata ha rifiutato la tua richiesta di partecipazione.","takeFewMinute":"L\'operazione potrebbe richiedere alcuni minuti a seconda della disponibilit\xe0 dei partecipanti.","whatYouCanDo":"Ecco cosa puoi fare","youWillJoinWhenSomeoneLetsYou":"Parteciperai alla chiamata quando qualcuno di {{ companyName }} ti far\xe0 entrare."},"header":{"free":"Versione gratuita"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Aggiungi un\'e-mail per invitare.","addEmails":"Aggiungi email...","copyCallLinkDescription":"Copia questo link e invialo a chiunque desideri invitare a partecipare alla chiamata.","copyClipLinkDescription":"Copia questo collegamento e invialo a chiunque desideri invitare a registrare una clip.","email":"Email","emailPlaceholder":"Es. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Impossibile inviare, riprova pi\xf9 tardi.","invalidEmail":"Formato email non valido.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Inviato a {{ name }}","invitationSentTo_other":"Inviato a {{ name }} e {{ otherEmailsCount }}+","invite":"Invita","inviteByEmail":"Invita via email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invita a partecipare alla chiamata","inviteCallDefaultMessage":"Sei invitato a partecipare alla nostra videochiamata. Fare clic sul collegamento per connettersi immediatamente.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Registra subito il tuo videoclip e forniscici pi\xf9 contesto per assisterti meglio.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invita a registrare la clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link per partecipare alla chiamata","linkToRecordAClip":"Collegamento per registrare una clip","message":"Messaggio","sharePublicLink":"Condividi link"},"leave":{"endCall":"Termina la chiamata per tutti","leaveCall":"Lascia la chiamata","title":"Lasciare"},"loader":{"connection":"Connessione..."},"menu":{"new":"NUOVO","openNewTab":"Apri una nuova scheda","pictureInPicture":"Immagine nell\'immagine","quickConnect":"Connessione Rapida","screenSharing":"Condivisione dello schermo","startRecord":"Registra chiamata","stopRecord":"Interrompere la registrazione","title":"Men\xf9"},"misc":{"accept":"Accettare","audio":"Audio","camera":"Telecamera","cancel":"Annulla","confirm":"Confermare","decline":"Declinare","from":"Da","microphone":"Microfono","open":"Aprire","photo":"Foto","proceed":"Procedere","remove":"Rimuovere","screen":"Schermo","screenshot":"Schermata","someone":"Qualcuno","speaker":"Altoparlante","user":"Utente","video":"Video","you":"Voi"},"notifications":{"agentJoinError":"Si \xe8 verificato un errore cercando di entrare nella conversazione come agente","blockedMicrophonePopup":"SnapCall ha bisogno di accedere alla fotocamera e al microfono. Fare clic sull\'icona della fotocamera bloccata nella barra degli indirizzi del browser.","blockedMicrophonePopupTitle":"La tua fotocamera e il tuo microfono sono bloccati","cameraError":"Si \xe8 verificato un errore durante l\'attivazione della fotocamera","cameraRotateError":"Si \xe8 verificato un errore durante la rotazione della fotocamera","close":"Chiudere","connectedTo":"Connesso a {{name}}","criticalError":"Si \xe8 verificato un errore critico (errore {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"Si \xe8 verificato un errore durante l\'attivazione del microfono","noCamera":"Nessuna fotocamera disponibile","recording":"Registrazione in corso","reload":"Ricaricare","screensharingError":"Si \xe8 verificato un errore durante l\'attivazione della condivisione dello schermo","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scansiona questo codice QR con il telefono per aprire la chiamata.","scanTitle":"Scansiona il codice QR","title":"Connessione Rapida"},"recorder":{"addMore":"Aggiungere altro","addNewClip":"Aggiungi una nuova clip","allowAccess":"Consenti accesso","allowCamMicAccess":"Consenti l\'accesso a cam/mic","allowScreenShareAccess":"Consenti accesso alla condivisione dello schermo","attachElements_one":"Allega {{ type }} al biglietto","attachElements_other":"Allega {{ count }} elementi","audioInstructionsTitle":"Pronti per registrare un messaggio vocale?","audioLevelNotification":{"noSound":{"description":"Assicurati che il microfono sia attivato.","title":"Nessun suono rilevato."},"shortVideo":{"description":"Questo video \xe8 troppo breve per avere un contesto.","title":"Breve video."},"spokenWordsQuestion":{"description":"Il tuo video include abbastanza dettagli parlati?","title":"Parole pronunciate."},"spokenWordsWarning":{"description":"La clip include a malapena parole pronunciate.","title":"Nessuna parola detta."}},"audioLevelToast":{"continueSpeaking":"Continua a parlare per un contesto pi\xf9 chiaro.","noSound":"Nessun suono rilevato.","rememberSpeaking":"Ricordati di parlare per fornire il contesto."},"chooseWhatYouWantToShare":"Choose what you want to share","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Grazie per aver utilizzato SnapCall.","clipSubmissionTitle_one":"La tua clip \xe8 stata inviata","clipSubmissionTitle_other":"I tuoi clip sono stati inviati","confirmRemovalDescription":"Sei sicuro di voler rimuovere questa foto/video? Questa azione non pu\xf2 essere annullata.","confirmRemovalTitle":"Conferma rimozione","elementBeingProcessed":"Attendi un momento mentre il tuo {{ type }} viene elaborato...","elementCaptureSuccess":"{{ type }} catturato con successo","elementRecordedAndAttached":"La tua clip \xe8 stata inviata e allegata al thread.","goBackToTicket":"Torna al biglietto","instructions":{"allowAccessOnPrompt":"<bold>Consenti l\'accesso</bold> alla fotocamera e al microfono.","multiplePhotos":"Scatta <bold>una foto o pi\xf9</bold> di una per i dettagli.","privacyPolicy":"Procedendo, accetti la nostra <bold>Politica sulla Privacy.</bold>","reviewAndSendAudios":"<bold>Rivedi i tuoi audio</bold> e verranno inviati automaticamente a noi.","reviewAndSendPhotos":"<bold>Convalida le tue foto</bold> e verranno inviate automaticamente a noi.","reviewAndSendVideos":"<bold>Convalida i tuoi video</bold> e verranno inviati automaticamente a noi.","screenShareInstruction":"Seleziona lo schermo o la finestra che desideri registrare.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Parla chiaramente</bold> e d\xec ci\xf2 che devi comunicare.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Premi il pulsante di registrazione</bold> per iniziare a registrare il tuo messaggio vocale.","tapStopVideoButton":"<bold>Premi Stop</bold> quando hai finito.","tapVideoButton":"<bold>Premi Registra</bold>. Ricordati di commentare.","videoSpeech":"Puoi <bold>parlare durante</bold> la registrazione per aggiungere dettagli."},"limit":"Registrazione video limitata a 5 min.","logIn":"Login","loggedAs":"Registrato come","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAndMicrophoneAccess":"No camera & microphone access","noMicrophoneAccess":"No microphone access","okay":"Okay","openThread":"Apri il thread","permissionDeniedDescription":"Senza l\'accesso alla fotocamera e al microfono, non \xe8 possibile scattare foto o registrare video da condividere con il team di supporto. Si prega di concedere l\'accesso nelle impostazioni del browser.","permissionDeniedTitle":"Qualcosa \xe8 andato storto!","photoInstructionsTitle":"Pronto a scattare una foto?","replyAttached":"La tua risposta \xe8 stata allegata","scanQRCode":"Scansiona questo codice QR con un dispositivo compatibile.","screenShareInstructionsTitle":"Pronto a condividere il tuo schermo?","screenTitle":"Pronto a catturare il tuo schermo?","send":"Invia","sendElements_one":"Invia {{ type }}","sendElements_other":"Invia {{ count }} elementi","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Registra il mio schermo","stopScreenShareButton":"Ferma registrazione","submissionDescription":"La tua foto/video \xe8 stata inviata con successo. La esamineremo e ti risponderemo al pi\xf9 presto.","submissionTitle":"Grazie per il tuo invio!","switchToMobileDescription":"Goditi un\'esperienza ancora pi\xf9 pratica utilizzando il tuo telefono per scattare foto e registrare video.","switchToMobileTitle":"Passa al tuo dispositivo mobile","takeNewElement":"Cattura un nuovo {{ type }}","upload":"Upload","useDesktopVersion":"Usa la versione desktop","videoInstructionsTitle":"Pronto a registrare un video?","waitVideo":"Potrebbero essere necessari fino a 15 secondi affinch\xe9 un video sia pronto."},"recordingPopup":{"dismiss":"Chiudi","recordingStartText":"Questa chiamata verr\xe0 registrata a breve. Se preferisci non essere registrato, sei libero di lasciare la chiamata in questo momento.","recordingStartTitle":"Registrazione in procinto di iniziare."},"requestAccess":{"admit":"Ammettere","defaultName":"Un utente","deny":"Negare","wantToJoin":"<bold>{{name}}</bold> vuole unirsi!"},"requestDevice":{"declined":"La tua richiesta \xe8 stata rifiutata.","request":"{{user}} vorrebbe condividere il tuo {{device}}","requestInput":"Richiesta di attivazione","timedOut":"La tua richiesta non ha ricevuto risposta","userDeclined":"{{user}} ha rifiutato la tua richiesta"},"settings":{"devices":"Dispositivi","help":"Aiuto","helpCenter":"Accedi all\'Assistenza","language":"Linguaggio","preferences":"Preferenze","title":"Impostazioni"},"shareLink":{"failed":"Si \xe8 verificato un errore durante l\'invio del link","invalid":"Collegamento non valido","invoice":"{{user}} ti ha inviato una fattura.","pay":"Paga","poweredBy":"Proposto da","sentToUser":"Link inviato a {{user}}","sentToUsers":"Link inviato ai partecipanti","title":"Condividi un link","title2":"Condividi un link"},"sharedHistory":{"shared":"Condiviso con te"},"snapshot":{"error":"Si \xe8 verificato un errore durante l\'invio della schermata","save":"Salva l\'immagine","sentToUser":"Schermata inviata a {{user}}","sentToUsers":"Schermanta inviata ai partecipanti","shared":"Schermata inviata","title":"Schermata"},"videoMenu":{"blockedCamera":"La fotocamera \xe8 bloccata.","cameraPermissions":"Si prega di accettare la condivisione della fotocamera prima di accedere a queste opzioni.","highDef":"Alta definizione (720p)","lowDef":"Definizione bassa (240p)","sendResolution":"Risoluzione inviata (max)","standardDef":"Definizione standard (480p)","title":"Video"},"virtualBackground":{"setBackground":"Imposta sfondo","title":"Sfondo virtuale"},"youtube":{"invalid":"URL YouTube non valido","share":"Guarda ora","title":"Vedere Assieme","url":"URL YOUTUBE"}}');
|
|
368
|
+
$8af7f345a966aef3$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Il tuo microfono \xe8 bloccato.","microphonePermissions":"Si prega di accettare la condivisione del microfono prima di accedere a queste opzioni.","title":"Audio"},"blockedFeature":{"descriptionConnected":"Su un piano gratuito, non puoi utilizzare questa funzione. Aggiorna il tuo piano per usufruire di tutte le funzionalit\xe0 in chiamata.","descriptionGuest":"Stai partecipando a una chiamata creata con una versione gratuita di SnapCall. Questa funzione \xe8 disponibile solo con una versione Pro.","dismissConnected":"L\'aggiornamento a Pro","dismissGuest":"Okay","titleConnected":"L\'aggiornamento a Pro","titleGuest":"Funzione non disponibile"},"common":{"new":"new"},"copyLink":{"copied":"Link copiato negli Appunti","copy":"Copia","description":"Copia il link negli appunti","error":"Si \xe8 verificato un errore durante la copia negli Appunti","title":"Copia il link"},"endView":{"callEnded":"Questa chiamata \xe8 finita","callIsOver":"Questa chiamata \xe8 finita o \xe8 stata eliminata","callLeft":"Hai lasciato la chiamata","callNoLongerActive":"This call is no longer active. Thank you for participating.","full":"Impossibile partecipare alla chiamata","fullDescription":"Limite d\'uso attenente.","goBack":"Torna alla chiamata","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard","tooLate":"Sei arrivato troppo tardi"},"gdpr":{"recordedWarning":"Per migliorare la qualit\xe0 del nostro servizio, questa chiamata verr\xe0 registrata."},"greeting":{"askToJoin":"Chiedi di partecipare","askingLetIn":"Chiedo di essere fatto entrare...","cameraDisabled":"Fotocamera \xe8 spenta","cameraEnabled":"Fotocamera \xe8 accesa","canceledCallRequest":"La richiesta di chiamata verr\xe0 annullata e verrai reindirizzato alla pagina di pianificazione delle chiamate","cantJoinCall":"Non puoi partecipare a questa chiamata","cantWait":"Non vedo l\'ora?","cantWaitLeaveMessage":"Non vedi l\'ora? Puoi lasciare un messaggio e sarai contattato il prima possibile.","clickOnLock":"Fai clic sull\'icona del lucchetto <1></1> nella barra del browser.","footerDescription":"Incontrare SnapCall, il modo pi\xf9 semplice per aggiungere video in tempo reale a piattaforma, prodotto o servizio.","footerTitle":"Offerto da SnapCall","leaveMessage":"Lascia un messaggio","mainTitle":"Benvenuto a SnapCall","mediaDenied":"Accesso al microfono e alla fotocamera negato","microphoneDisabled":"Microfono \xe8 spento","microphoneEnabled":"Microfono \xe8 acceso","name":"Nome","nameDescription":"Questo nome verr\xe0 visualizzato a tutti i partecipanti alla chiamata.","namePlaceholder":"Per esempio. Lucia o Pietro","nameSubmit":"Partecipa alla conversazione","recordVideo":"Registra video","recordVoice":"Registra voce","requestACall":"Richiedi una chiamata","scheduleACall":"Pianifica una chiamata","setting":"Impostazioni","sideDescription":"Inserisci il tuo nome e regola la fotocamera e il microfono","sideTitle":"Tieni duro, il prossimo sei tu!","someoneDenied":"Qualcuno nella chiamata ha rifiutato la tua richiesta di partecipazione.","takeFewMinute":"L\'operazione potrebbe richiedere alcuni minuti a seconda della disponibilit\xe0 dei partecipanti.","whatYouCanDo":"Ecco cosa puoi fare","youWillJoinWhenSomeoneLetsYou":"Parteciperai alla chiamata quando qualcuno di {{ companyName }} ti far\xe0 entrare."},"header":{"free":"Versione gratuita"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Aggiungi un\'e-mail per invitare.","addEmails":"Aggiungi email...","copyCallLinkDescription":"Copia questo link e invialo a chiunque desideri invitare a partecipare alla chiamata.","copyClipLinkDescription":"Copia questo collegamento e invialo a chiunque desideri invitare a registrare una clip.","email":"Email","emailPlaceholder":"Es. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Impossibile inviare, riprova pi\xf9 tardi.","invalidEmail":"Formato email non valido.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Inviato a {{ name }}","invitationSentTo_other":"Inviato a {{ name }} e {{ otherEmailsCount }}+","invite":"Invita","inviteByEmail":"Invita via email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invita a partecipare alla chiamata","inviteCallDefaultMessage":"Sei invitato a partecipare alla nostra videochiamata. Fare clic sul collegamento per connettersi immediatamente.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Registra subito il tuo videoclip e forniscici pi\xf9 contesto per assisterti meglio.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invita a registrare la clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link per partecipare alla chiamata","linkToRecordAClip":"Collegamento per registrare una clip","message":"Messaggio","sharePublicLink":"Condividi link"},"leave":{"endCall":"Termina la chiamata per tutti","leaveCall":"Lascia la chiamata","title":"Lasciare"},"loader":{"connection":"Connessione..."},"menu":{"new":"NUOVO","openNewTab":"Apri una nuova scheda","pictureInPicture":"Immagine nell\'immagine","quickConnect":"Connessione Rapida","screenSharing":"Condivisione dello schermo","startRecord":"Registra chiamata","stopRecord":"Interrompere la registrazione","title":"Men\xf9"},"misc":{"accept":"Accettare","audio":"Audio","camera":"Telecamera","cancel":"Annulla","confirm":"Confermare","decline":"Declinare","from":"Da","microphone":"Microfono","open":"Aprire","photo":"Foto","proceed":"Procedere","remove":"Rimuovere","screen":"Schermo","screenshot":"Schermata","someone":"Qualcuno","speaker":"Altoparlante","user":"Utente","video":"Video","you":"Voi"},"notifications":{"agentJoinError":"Si \xe8 verificato un errore cercando di entrare nella conversazione come agente","blockedMicrophonePopup":"SnapCall ha bisogno di accedere alla fotocamera e al microfono. Fare clic sull\'icona della fotocamera bloccata nella barra degli indirizzi del browser.","blockedMicrophonePopupTitle":"La tua fotocamera e il tuo microfono sono bloccati","cameraError":"Si \xe8 verificato un errore durante l\'attivazione della fotocamera","cameraRotateError":"Si \xe8 verificato un errore durante la rotazione della fotocamera","close":"Chiudere","connectedTo":"Connesso a {{name}}","criticalError":"Si \xe8 verificato un errore critico (errore {{code}}).","error":"Error","errorOccuredCode":"An error occured (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"Si \xe8 verificato un errore durante l\'attivazione del microfono","noCamera":"Nessuna fotocamera disponibile","recording":"Registrazione in corso","reload":"Ricaricare","screensharingError":"Si \xe8 verificato un errore durante l\'attivazione della condivisione dello schermo","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scansiona questo codice QR con il telefono per aprire la chiamata.","scanTitle":"Scansiona il codice QR","title":"Connessione Rapida"},"recorder":{"addMore":"Aggiungere altro","addNewClip":"Aggiungi una nuova clip","allowAccess":"Consenti accesso","allowCamMicAccess":"Consenti l\'accesso a cam/mic","allowScreenShareAccess":"Consenti accesso alla condivisione dello schermo","attachElements_one":"Allega {{ type }} al biglietto","attachElements_other":"Allega {{ count }} elementi","audioInstructionsTitle":"Pronti per registrare un messaggio vocale?","audioLevelNotification":{"noSound":{"description":"Assicurati che il microfono sia attivato.","title":"Nessun suono rilevato."},"shortVideo":{"description":"Questo video \xe8 troppo breve per avere un contesto.","title":"Breve video."},"spokenWordsQuestion":{"description":"Il tuo video include abbastanza dettagli parlati?","title":"Parole pronunciate."},"spokenWordsWarning":{"description":"La clip include a malapena parole pronunciate.","title":"Nessuna parola detta."}},"audioLevelToast":{"continueSpeaking":"Continua a parlare per un contesto pi\xf9 chiaro.","noSound":"Nessun suono rilevato.","rememberSpeaking":"Ricordati di parlare per fornire il contesto."},"chooseWhatYouWantToShare":"Choose what you want to share","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Grazie per aver utilizzato SnapCall.","clipSubmissionTitle_one":"La tua clip \xe8 stata inviata","clipSubmissionTitle_other":"I tuoi clip sono stati inviati","confirmRemovalDescription":"Sei sicuro di voler rimuovere questa foto/video? Questa azione non pu\xf2 essere annullata.","confirmRemovalTitle":"Conferma rimozione","elementBeingProcessed":"Attendi un momento mentre il tuo {{ type }} viene elaborato...","elementCaptureSuccess":"{{ type }} catturato con successo","elementRecordedAndAttached":"La tua clip \xe8 stata inviata e allegata al thread.","goBackToTicket":"Torna al biglietto","instructions":{"allowAccessOnPrompt":"<bold>Consenti l\'accesso</bold> alla fotocamera e al microfono.","multiplePhotos":"Scatta <bold>una foto o pi\xf9</bold> di una per i dettagli.","privacyPolicy":"Procedendo, accetti la nostra <bold>Politica sulla Privacy.</bold>","reviewAndSendAudios":"<bold>Rivedi i tuoi audio</bold> e verranno inviati automaticamente a noi.","reviewAndSendPhotos":"<bold>Convalida le tue foto</bold> e verranno inviate automaticamente a noi.","reviewAndSendVideos":"<bold>Convalida i tuoi video</bold> e verranno inviati automaticamente a noi.","screenShareInstruction":"Seleziona lo schermo o la finestra che desideri registrare.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Parla chiaramente</bold> e d\xec ci\xf2 che devi comunicare.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Premi il pulsante di registrazione</bold> per iniziare a registrare il tuo messaggio vocale.","tapStopVideoButton":"<bold>Premi Stop</bold> quando hai finito.","tapVideoButton":"<bold>Premi Registra</bold>. Ricordati di commentare.","videoSpeech":"Puoi <bold>parlare durante</bold> la registrazione per aggiungere dettagli."},"limit":"Registrazione video limitata a 5 min.","logIn":"Login","loggedAs":"Registrato come","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAccessDescription":"No camera access Allow camera access in your browser.","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccess":"No microphone access","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","okay":"Okay","openThread":"Apri il thread","permissionDeniedDescription":"Senza l\'accesso alla fotocamera e al microfono, non \xe8 possibile scattare foto o registrare video da condividere con il team di supporto. Si prega di concedere l\'accesso nelle impostazioni del browser.","permissionDeniedTitle":"Qualcosa \xe8 andato storto!","photoInstructionsTitle":"Pronto a scattare una foto?","replyAttached":"La tua risposta \xe8 stata allegata","scanQRCode":"Scansiona questo codice QR con un dispositivo compatibile.","screenShareInstructionsTitle":"Pronto a condividere il tuo schermo?","screenTitle":"Pronto a catturare il tuo schermo?","send":"Invia","sendElements_one":"Invia {{ type }}","sendElements_other":"Invia {{ count }} elementi","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Registra il mio schermo","stopScreenShareButton":"Ferma registrazione","submissionDescription":"La tua foto/video \xe8 stata inviata con successo. La esamineremo e ti risponderemo al pi\xf9 presto.","submissionTitle":"Grazie per il tuo invio!","switchToMobileDescription":"Goditi un\'esperienza ancora pi\xf9 pratica utilizzando il tuo telefono per scattare foto e registrare video.","switchToMobileTitle":"Passa al tuo dispositivo mobile","takeNewElement":"Cattura un nuovo {{ type }}","upload":"Upload","useDesktopVersion":"Usa la versione desktop","videoInstructionsTitle":"Pronto a registrare un video?","waitVideo":"Potrebbero essere necessari fino a 15 secondi affinch\xe9 un video sia pronto."},"recordingPopup":{"dismiss":"Chiudi","recordingStartText":"Questa chiamata verr\xe0 registrata a breve. Se preferisci non essere registrato, sei libero di lasciare la chiamata in questo momento.","recordingStartTitle":"Registrazione in procinto di iniziare."},"requestAccess":{"admit":"Ammettere","defaultName":"Un utente","deny":"Negare","wantToJoin":"<bold>{{name}}</bold> vuole unirsi!"},"requestDevice":{"declined":"La tua richiesta \xe8 stata rifiutata.","request":"{{user}} vorrebbe condividere il tuo {{device}}","requestInput":"Richiesta di attivazione","timedOut":"La tua richiesta non ha ricevuto risposta","userDeclined":"{{user}} ha rifiutato la tua richiesta"},"settings":{"devices":"Dispositivi","help":"Aiuto","helpCenter":"Accedi all\'Assistenza","language":"Linguaggio","preferences":"Preferenze","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language","selectYourMicrophone":"Select your preferred microphone","title":"Impostazioni"},"shareLink":{"failed":"Si \xe8 verificato un errore durante l\'invio del link","invalid":"Collegamento non valido","invoice":"{{user}} ti ha inviato una fattura.","pay":"Paga","poweredBy":"Proposto da","sentToUser":"Link inviato a {{user}}","sentToUsers":"Link inviato ai partecipanti","title":"Condividi un link","title2":"Condividi un link"},"sharedHistory":{"shared":"Condiviso con te"},"snapshot":{"error":"Si \xe8 verificato un errore durante l\'invio della schermata","save":"Salva l\'immagine","sentToUser":"Schermata inviata a {{user}}","sentToUsers":"Schermanta inviata ai partecipanti","shared":"Schermata inviata","title":"Schermata"},"videoMenu":{"blockedCamera":"La fotocamera \xe8 bloccata.","cameraPermissions":"Si prega di accettare la condivisione della fotocamera prima di accedere a queste opzioni.","highDef":"Alta definizione (720p)","lowDef":"Definizione bassa (240p)","sendResolution":"Risoluzione inviata (max)","standardDef":"Definizione standard (480p)","title":"Video"},"virtualBackground":{"setBackground":"Imposta sfondo","title":"Sfondo virtuale"},"youtube":{"invalid":"URL YouTube non valido","share":"Guarda ora","title":"Vedere Assieme","url":"URL YOUTUBE"}}');
|
|
372
369
|
|
|
373
370
|
|
|
374
371
|
var $888696145bca5c4a$exports = {};
|
|
375
|
-
$888696145bca5c4a$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"El micr\xf3fono est\xe1 bloqueado.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call is now ended","callIsOver":"The call is over or deleted","callLeft":"You left the call","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAndMicrophoneAccess":"No camera & microphone access","noMicrophoneAccess":"No microphone access","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
|
|
372
|
+
$888696145bca5c4a$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"El micr\xf3fono est\xe1 bloqueado.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call has ended","callIsOver":"The call is over or deleted","callLeft":"You have left the call","callNoLongerActive":"This call is no longer active. Thank you for participating.","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","error":"Error","errorOccuredCode":"An error occured (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAccessDescription":"No camera access Allow camera access in your browser.","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccess":"No microphone access","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language","selectYourMicrophone":"Select your preferred microphone","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
|
|
376
373
|
|
|
377
374
|
|
|
378
375
|
var $3167241121ea3627$exports = {};
|
|
379
|
-
$3167241121ea3627$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Mikrofon jest zablokowany.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call is now ended","callIsOver":"The call is over or deleted","callLeft":"You left the call","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAndMicrophoneAccess":"No camera & microphone access","noMicrophoneAccess":"No microphone access","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
|
|
376
|
+
$3167241121ea3627$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Mikrofon jest zablokowany.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call has ended","callIsOver":"The call is over or deleted","callLeft":"You have left the call","callNoLongerActive":"This call is no longer active. Thank you for participating.","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","error":"Error","errorOccuredCode":"An error occured (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAccessDescription":"No camera access Allow camera access in your browser.","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccess":"No microphone access","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language","selectYourMicrophone":"Select your preferred microphone","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
|
|
380
377
|
|
|
381
378
|
|
|
382
379
|
const $384d985bb9605c35$export$150b732325d14d04 = {
|
|
@@ -427,7 +424,6 @@ var $384d985bb9605c35$export$2e2bcd8739ae039 = (0, $3Sbms$i18next);
|
|
|
427
424
|
|
|
428
425
|
|
|
429
426
|
|
|
430
|
-
|
|
431
427
|
/* eslint-disable no-console */
|
|
432
428
|
const $0f65a9eaf4a1e910$var$LogLevel = {
|
|
433
429
|
error: 1,
|
|
@@ -520,6 +516,12 @@ class $67e45b2e30dcc030$export$ea669869acd8f177 {
|
|
|
520
516
|
this.listener = listener;
|
|
521
517
|
this.stream = stream;
|
|
522
518
|
this.audioContext = new $67e45b2e30dcc030$var$audioContextConstructor();
|
|
519
|
+
this.voiceAnalyser = this.audioContext.createAnalyser();
|
|
520
|
+
this.voiceAudioStreamSource = this.audioContext.createMediaStreamSource(this.stream);
|
|
521
|
+
this.voiceAnalyser.fftSize = 32;
|
|
522
|
+
this.voiceAnalyser.minDecibels = -90;
|
|
523
|
+
this.voiceAnalyser.maxDecibels = -10;
|
|
524
|
+
this.voiceAudioStreamSource.connect(this.voiceAnalyser);
|
|
523
525
|
this.analyser = this.audioContext.createAnalyser();
|
|
524
526
|
this.audioStreamSource = this.audioContext.createMediaStreamSource(this.stream);
|
|
525
527
|
this.analyser.fftSize = 512;
|
|
@@ -576,7 +578,7 @@ class $67e45b2e30dcc030$export$ea669869acd8f177 {
|
|
|
576
578
|
}
|
|
577
579
|
getInstantAudioLevel() {
|
|
578
580
|
const FFTDataArray = new Uint8Array(this.analyser.frequencyBinCount);
|
|
579
|
-
this.
|
|
581
|
+
this.voiceAnalyser.getByteFrequencyData(FFTDataArray);
|
|
580
582
|
const rms = this.computeRMS(FFTDataArray);
|
|
581
583
|
return rms > 0 ? 100 * rms / 255 : 0;
|
|
582
584
|
}
|
|
@@ -628,6 +630,7 @@ class $67e45b2e30dcc030$export$ea669869acd8f177 {
|
|
|
628
630
|
});
|
|
629
631
|
try {
|
|
630
632
|
this.audioStreamSource.disconnect(this.analyser);
|
|
633
|
+
this.voiceAudioStreamSource.disconnect(this.voiceAnalyser);
|
|
631
634
|
} catch (err) {
|
|
632
635
|
$67e45b2e30dcc030$var$log.error("release", "audioStreamSource failed to disconnect", err);
|
|
633
636
|
}
|
|
@@ -1246,7 +1249,10 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1246
1249
|
min: 0,
|
|
1247
1250
|
max: 0
|
|
1248
1251
|
};
|
|
1249
|
-
this.
|
|
1252
|
+
this.microphone = {
|
|
1253
|
+
device: null,
|
|
1254
|
+
muted: false
|
|
1255
|
+
};
|
|
1250
1256
|
this.roomId = "";
|
|
1251
1257
|
this.companyId = 0;
|
|
1252
1258
|
this.peerId = "";
|
|
@@ -1292,7 +1298,6 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1292
1298
|
peerId: this.peerId,
|
|
1293
1299
|
profile: this.profile,
|
|
1294
1300
|
joinOptions: this.joinOptions,
|
|
1295
|
-
callId: undefined,
|
|
1296
1301
|
deviceState: this.getDevicesState(),
|
|
1297
1302
|
peers: peers
|
|
1298
1303
|
};
|
|
@@ -1363,10 +1368,8 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1363
1368
|
let url;
|
|
1364
1369
|
try {
|
|
1365
1370
|
const urlParams = new URLSearchParams();
|
|
1366
|
-
if (options.flowToken)
|
|
1367
|
-
|
|
1368
|
-
if (options.languageCode) urlParams.append("languageCode", options.languageCode);
|
|
1369
|
-
}
|
|
1371
|
+
if (options.flowToken) urlParams.append("flowToken", options.flowToken);
|
|
1372
|
+
if (options.languageCode) urlParams.append("languageCode", options.languageCode);
|
|
1370
1373
|
const { streamer_instance: instanceId, plan: { permissions: permissions, name: name }, flow: flow, flow_v0: flow_v0, recordings: recordings, company_id: company_id, company: company, defaultPublicPage: defaultPublicPage } = await fetch(`${this.config.apiUrl}/streams/${room}/info?${urlParams}`, {
|
|
1371
1374
|
method: "get",
|
|
1372
1375
|
headers: {
|
|
@@ -1423,10 +1426,6 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1423
1426
|
});
|
|
1424
1427
|
open = true;
|
|
1425
1428
|
onOpen();
|
|
1426
|
-
if (this.joinOptions.recorder) {
|
|
1427
|
-
await this.joinRecorder();
|
|
1428
|
-
return;
|
|
1429
|
-
}
|
|
1430
1429
|
});
|
|
1431
1430
|
this.protoo.on("failed", ()=>{
|
|
1432
1431
|
err = new Error("failure");
|
|
@@ -1631,6 +1630,9 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1631
1630
|
};
|
|
1632
1631
|
if (open) onOpen(err);
|
|
1633
1632
|
});
|
|
1633
|
+
this.dispatchEvent(new $c31e3fb4360572af$var$SnapcallEvent("initialized", {
|
|
1634
|
+
detail: initResult
|
|
1635
|
+
}));
|
|
1634
1636
|
return initResult;
|
|
1635
1637
|
}
|
|
1636
1638
|
closeWebrtcTransport(key) {
|
|
@@ -1715,9 +1717,9 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1715
1717
|
}
|
|
1716
1718
|
}
|
|
1717
1719
|
}
|
|
1718
|
-
|
|
1720
|
+
acceptAccessRequest(id) {
|
|
1719
1721
|
if (!this.protoo) throw new Error("not connected");
|
|
1720
|
-
|
|
1722
|
+
return this.protoo.request("acceptAccessRequest", {
|
|
1721
1723
|
id: id
|
|
1722
1724
|
});
|
|
1723
1725
|
}
|
|
@@ -1728,9 +1730,9 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1728
1730
|
token: stepToken
|
|
1729
1731
|
});
|
|
1730
1732
|
}
|
|
1731
|
-
|
|
1733
|
+
denyAccessRequest(id) {
|
|
1732
1734
|
if (!this.protoo) throw new Error("stream client not initiated");
|
|
1733
|
-
|
|
1735
|
+
return this.protoo.request("denyAccessRequest", {
|
|
1734
1736
|
id: id
|
|
1735
1737
|
});
|
|
1736
1738
|
}
|
|
@@ -1760,28 +1762,20 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1760
1762
|
if (!this.protoo) throw new Error("stream client not initiated");
|
|
1761
1763
|
this.streamerMediasoup = await (0, $a2f0e3c29b11c88e$export$2e2bcd8739ae039).create(this.protoo, this.config);
|
|
1762
1764
|
// now we join
|
|
1763
|
-
const { peers: peers, videoRecordStarted: videoRecordStarted, videoRecording: videoRecording
|
|
1765
|
+
const { peers: peers, videoRecordStarted: videoRecordStarted, videoRecording: videoRecording } = await this.protoo.request("getRoomPeers");
|
|
1764
1766
|
this.peers = new Map(peers.map((peer)=>[
|
|
1765
|
-
peer.id
|
|
1767
|
+
peer.id,
|
|
1766
1768
|
{
|
|
1767
1769
|
...peer,
|
|
1768
|
-
peerId: peer.id
|
|
1770
|
+
peerId: peer.id
|
|
1769
1771
|
}
|
|
1770
1772
|
]));
|
|
1771
|
-
const callId = await this.getCallId();
|
|
1772
1773
|
this.dispatchEvent(new $c31e3fb4360572af$var$SnapcallEvent("enterRoom", {
|
|
1773
1774
|
detail: {
|
|
1774
|
-
waitingRequests: waitingRequests,
|
|
1775
1775
|
videoRecording: videoRecording,
|
|
1776
1776
|
videoRecordStarted: videoRecordStarted,
|
|
1777
1777
|
peerId: this.peerId,
|
|
1778
|
-
peers: peers.
|
|
1779
|
-
return {
|
|
1780
|
-
...peer,
|
|
1781
|
-
peerId: peer.id || peer.peerId
|
|
1782
|
-
};
|
|
1783
|
-
}),
|
|
1784
|
-
callId: callId,
|
|
1778
|
+
peers: Array.from(this.peers.values()),
|
|
1785
1779
|
plan: this.plan,
|
|
1786
1780
|
permissions: this.permissions
|
|
1787
1781
|
}
|
|
@@ -1792,7 +1786,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1792
1786
|
// Consume Peers
|
|
1793
1787
|
peers.forEach((peer)=>{
|
|
1794
1788
|
this.consumePeer({
|
|
1795
|
-
peerId: peer.id
|
|
1789
|
+
peerId: peer.id,
|
|
1796
1790
|
producersData: peer.producersData
|
|
1797
1791
|
});
|
|
1798
1792
|
});
|
|
@@ -1800,7 +1794,6 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1800
1794
|
async joinRecorder() {
|
|
1801
1795
|
if (!this.protoo) throw new Error("stream client not initiated");
|
|
1802
1796
|
this.streamerMediasoup = await (0, $a2f0e3c29b11c88e$export$2e2bcd8739ae039).create(this.protoo, this.config);
|
|
1803
|
-
const callId = await this.getCallId();
|
|
1804
1797
|
if (this.joinOptions.apiKey) this.setAgentIdentity({
|
|
1805
1798
|
apiKey: this.joinOptions.apiKey
|
|
1806
1799
|
});
|
|
@@ -1813,10 +1806,8 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1813
1806
|
videoRecordStarted: false,
|
|
1814
1807
|
peerId: this.peerId,
|
|
1815
1808
|
peers: [],
|
|
1816
|
-
callId: callId,
|
|
1817
1809
|
plan: this.plan,
|
|
1818
|
-
permissions: this.permissions
|
|
1819
|
-
waitingRequests: []
|
|
1810
|
+
permissions: this.permissions
|
|
1820
1811
|
}
|
|
1821
1812
|
}));
|
|
1822
1813
|
}
|
|
@@ -1846,6 +1837,9 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1846
1837
|
track: track
|
|
1847
1838
|
});
|
|
1848
1839
|
$c31e3fb4360572af$var$log.log("switchMicrophone", "switched Microphone");
|
|
1840
|
+
const trackSettings = track.getSettings();
|
|
1841
|
+
const device = this.devicesList.find((it)=>it.deviceId === trackSettings.deviceId);
|
|
1842
|
+
this.microphone.device = device || null;
|
|
1849
1843
|
} catch (error) {
|
|
1850
1844
|
$c31e3fb4360572af$var$log.error("switchMicrophone error", error);
|
|
1851
1845
|
await this.closeMicrophoneProducer();
|
|
@@ -1921,6 +1915,8 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1921
1915
|
this.audioMedia = this.audioMedia || new (0, $107ba89b5d0109ab$export$22ddc20344c01547)();
|
|
1922
1916
|
const track = stream.getAudioTracks()[0];
|
|
1923
1917
|
this.audioMedia.addTrack("mic", track);
|
|
1918
|
+
const trackSettings = track.getSettings();
|
|
1919
|
+
const device = this.devicesList.find((it)=>it.deviceId === trackSettings.deviceId && it.kind === "audioinput");
|
|
1924
1920
|
const deviceType = "microphone";
|
|
1925
1921
|
const micProducer = await transport.produce({
|
|
1926
1922
|
track: this.audioMedia.getFinalTrack(),
|
|
@@ -1943,7 +1939,8 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1943
1939
|
if (navigator.mediaDevices.ondevicechange === undefined) this.closeMicrophoneProducer();
|
|
1944
1940
|
});
|
|
1945
1941
|
this.micProducer = micProducer;
|
|
1946
|
-
this.
|
|
1942
|
+
this.microphone.device = device || null;
|
|
1943
|
+
this.microphone.muted = false;
|
|
1947
1944
|
const event = new $c31e3fb4360572af$var$SnapcallEvent("microphoneEnabled", {
|
|
1948
1945
|
detail: {}
|
|
1949
1946
|
});
|
|
@@ -1954,7 +1951,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1954
1951
|
if (this.micProducer) {
|
|
1955
1952
|
this.onStopSpeak();
|
|
1956
1953
|
this.micProducer.pause();
|
|
1957
|
-
this.muted = true;
|
|
1954
|
+
this.microphone.muted = true;
|
|
1958
1955
|
const device = "microphone";
|
|
1959
1956
|
this.protoo?.notify("mute", {
|
|
1960
1957
|
device: device
|
|
@@ -1969,7 +1966,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1969
1966
|
if (this.micProducer) {
|
|
1970
1967
|
this.micProducer.resume();
|
|
1971
1968
|
this.resolvePendingDeviceRequest("microphone", true);
|
|
1972
|
-
this.muted = false;
|
|
1969
|
+
this.microphone.muted = false;
|
|
1973
1970
|
const device = "microphone";
|
|
1974
1971
|
this.protoo?.notify("unmute", {
|
|
1975
1972
|
device: device
|
|
@@ -1981,7 +1978,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
1981
1978
|
}
|
|
1982
1979
|
}
|
|
1983
1980
|
async toggleMute() {
|
|
1984
|
-
if (this.muted) {
|
|
1981
|
+
if (this.microphone.muted) {
|
|
1985
1982
|
await this.unMuteMicrophone();
|
|
1986
1983
|
return {
|
|
1987
1984
|
muted: false
|
|
@@ -2258,11 +2255,11 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
2258
2255
|
...usedResolution
|
|
2259
2256
|
}
|
|
2260
2257
|
}));
|
|
2258
|
+
const trackSettings = mediaStream.getVideoTracks()[0].getSettings();
|
|
2259
|
+
if (trackSettings.deviceId) this.webcam.device = this.webcams.get(trackSettings.deviceId) || null;
|
|
2261
2260
|
if (config?.facingMode) try {
|
|
2262
|
-
|
|
2263
|
-
if (!capabilities?.facingMode || capabilities.facingMode.length === 0) throw new Error("no facing mod");
|
|
2261
|
+
if (!trackSettings.facingMode) throw new Error("no facing mode");
|
|
2264
2262
|
} catch {
|
|
2265
|
-
this.webcam.device = this.webcams.values().next().value;
|
|
2266
2263
|
this.webcam.facingMode = undefined;
|
|
2267
2264
|
}
|
|
2268
2265
|
if (this.useVideoBackground) {
|
|
@@ -2621,15 +2618,6 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
2621
2618
|
denyDeviceRequest(deviceType) {
|
|
2622
2619
|
this.resolvePendingDeviceRequest(deviceType, false, "user denied permission");
|
|
2623
2620
|
}
|
|
2624
|
-
async getCallId() {
|
|
2625
|
-
try {
|
|
2626
|
-
const { callId: callId } = await this.protoo?.request("getCallId");
|
|
2627
|
-
return callId;
|
|
2628
|
-
} catch (err) {
|
|
2629
|
-
$c31e3fb4360572af$var$log.error("getCallId", "Failed to get callId");
|
|
2630
|
-
throw err;
|
|
2631
|
-
}
|
|
2632
|
-
}
|
|
2633
2621
|
getConsumers() {
|
|
2634
2622
|
return this.consumers;
|
|
2635
2623
|
}
|
|
@@ -2640,10 +2628,12 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
2640
2628
|
return {
|
|
2641
2629
|
microphone: {
|
|
2642
2630
|
enabled: microphoneEnabled,
|
|
2643
|
-
muted: this.muted
|
|
2631
|
+
muted: this.microphone.muted,
|
|
2632
|
+
device: this.microphone.device
|
|
2644
2633
|
},
|
|
2645
2634
|
camera: {
|
|
2646
|
-
enabled: cameraEnabled
|
|
2635
|
+
enabled: cameraEnabled,
|
|
2636
|
+
device: this.webcam.device
|
|
2647
2637
|
},
|
|
2648
2638
|
screenshare: {
|
|
2649
2639
|
enabled: screenshareEnabled
|
|
@@ -2798,6 +2788,10 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
|
|
|
2798
2788
|
}
|
|
2799
2789
|
})).json();
|
|
2800
2790
|
}
|
|
2791
|
+
getWaitingRequests() {
|
|
2792
|
+
if (!this.protoo) throw new Error("not connected");
|
|
2793
|
+
return this.protoo?.request("waitingRequests");
|
|
2794
|
+
}
|
|
2801
2795
|
}
|
|
2802
2796
|
|
|
2803
2797
|
|
|
@@ -3824,7 +3818,6 @@ const $4731637db263b767$export$d9f09da0f8d1c822 = ()=>/*#__PURE__*/ (0, $3Sbms$j
|
|
|
3824
3818
|
|
|
3825
3819
|
|
|
3826
3820
|
|
|
3827
|
-
|
|
3828
3821
|
const $1ec1d06e0a21fdaa$var$Link = ({ color: color })=>{
|
|
3829
3822
|
return /*#__PURE__*/ (0, $3Sbms$jsx)("svg", {
|
|
3830
3823
|
width: "24",
|
|
@@ -4405,7 +4398,6 @@ const $98933bbc579a3e66$var$LinksharePopup = ()=>{
|
|
|
4405
4398
|
if (!linkshareInputValue) return;
|
|
4406
4399
|
setErrorMessage(null);
|
|
4407
4400
|
setStatus("loading");
|
|
4408
|
-
(0, $3Sbms$hotjarbrowser).event("linkshareShare");
|
|
4409
4401
|
let url;
|
|
4410
4402
|
try {
|
|
4411
4403
|
url = new URL(linkshareInputValue);
|
|
@@ -5016,6 +5008,7 @@ const $379a4f4f561a4720$export$1712c8fcb05f49a6 = ({ modalState: modalState, ...
|
|
|
5016
5008
|
children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Button), {
|
|
5017
5009
|
size: "sm",
|
|
5018
5010
|
disabled: requestRunning,
|
|
5011
|
+
type: "submit",
|
|
5019
5012
|
children: [
|
|
5020
5013
|
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Send3Icon), {
|
|
5021
5014
|
size: 16,
|
|
@@ -5094,10 +5087,8 @@ const $f235befa4cdc42d6$var$Header = ()=>{
|
|
|
5094
5087
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).endCall();
|
|
5095
5088
|
};
|
|
5096
5089
|
const onScanQuickConnectClick = ()=>{
|
|
5097
|
-
if (permissions.find((permission)=>permission === "quick_connect"))
|
|
5098
|
-
|
|
5099
|
-
(0, $3Sbms$hotjarbrowser).event("quickConnectClick");
|
|
5100
|
-
} else setBlockedFeaturePopupOpen(true);
|
|
5090
|
+
if (permissions.find((permission)=>permission === "quick_connect")) setIsQuickConnectPopupVisible(true);
|
|
5091
|
+
else setBlockedFeaturePopupOpen(true);
|
|
5101
5092
|
};
|
|
5102
5093
|
const onSettingsMenuClick = ()=>{
|
|
5103
5094
|
setIsSettingsMenuVisible(true);
|
|
@@ -7803,6 +7794,23 @@ const $cdab47bb8796991e$var$Video = ()=>{
|
|
|
7803
7794
|
}, [
|
|
7804
7795
|
dispatch
|
|
7805
7796
|
]);
|
|
7797
|
+
(0, $3Sbms$useEffect)(()=>{
|
|
7798
|
+
const initTiles = async ()=>{
|
|
7799
|
+
const getRoomPeersResult = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getRoomPeers();
|
|
7800
|
+
const roomStreams = getRoomPeersResult.peers.map((peer)=>({
|
|
7801
|
+
id: peer.id,
|
|
7802
|
+
profile: peer.profile,
|
|
7803
|
+
muted: peer.muted
|
|
7804
|
+
}));
|
|
7805
|
+
dispatch({
|
|
7806
|
+
type: (0, $2884da8a64948e35$export$96a9662a3eda31f6).SET_STREAMS,
|
|
7807
|
+
payload: roomStreams
|
|
7808
|
+
});
|
|
7809
|
+
};
|
|
7810
|
+
initTiles();
|
|
7811
|
+
}, [
|
|
7812
|
+
dispatch
|
|
7813
|
+
]);
|
|
7806
7814
|
return /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $7ec04c1818c68245$export$b302ef9d8310f71), {
|
|
7807
7815
|
ref: videosContainerRef,
|
|
7808
7816
|
direction: orientation === "portrait" ? "column" : "row",
|
|
@@ -7856,7 +7864,6 @@ var $cdab47bb8796991e$export$2e2bcd8739ae039 = $cdab47bb8796991e$var$Video;
|
|
|
7856
7864
|
|
|
7857
7865
|
|
|
7858
7866
|
|
|
7859
|
-
|
|
7860
7867
|
const $f0e90fb231c59fab$var$HangUp = ()=>/*#__PURE__*/ (0, $3Sbms$jsx)("svg", {
|
|
7861
7868
|
width: "25",
|
|
7862
7869
|
height: "24",
|
|
@@ -7912,7 +7919,6 @@ var $58d405d56c1abe95$export$2e2bcd8739ae039 = $58d405d56c1abe95$var$Rotate;
|
|
|
7912
7919
|
|
|
7913
7920
|
|
|
7914
7921
|
|
|
7915
|
-
|
|
7916
7922
|
const $a2d206a438475087$var$YoutubeIcon = ({ color: color })=>/*#__PURE__*/ (0, $3Sbms$jsx)("svg", {
|
|
7917
7923
|
width: "24",
|
|
7918
7924
|
height: "25",
|
|
@@ -8027,12 +8033,9 @@ const $db92fac48417791a$var$HighlightButton = ()=>{
|
|
|
8027
8033
|
if (permissions.find((permission)=>permission === "screen_sharing")) {
|
|
8028
8034
|
setIsHighlightMenuOpen(false);
|
|
8029
8035
|
try {
|
|
8030
|
-
(0, $3Sbms$hotjarbrowser).event("screenshareClick");
|
|
8031
8036
|
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableScreenshare();
|
|
8032
|
-
(0, $3Sbms$hotjarbrowser).event("enableScreenshare");
|
|
8033
8037
|
} catch (screenshareError) {
|
|
8034
8038
|
console.warn(screenshareError);
|
|
8035
|
-
(0, $3Sbms$hotjarbrowser).event("screenshareCancel");
|
|
8036
8039
|
(0, $3Sbms$reacthottoast)(t("notifications.screensharingError"), {
|
|
8037
8040
|
className: "error"
|
|
8038
8041
|
});
|
|
@@ -8042,13 +8045,11 @@ const $db92fac48417791a$var$HighlightButton = ()=>{
|
|
|
8042
8045
|
const onYoutubeClick = ()=>{
|
|
8043
8046
|
setIsHighlightMenuOpen(false);
|
|
8044
8047
|
setIsYoutubePopupVisible(true);
|
|
8045
|
-
(0, $3Sbms$hotjarbrowser).event("youtubeClick");
|
|
8046
8048
|
};
|
|
8047
8049
|
const onLinkshareClick = ()=>{
|
|
8048
8050
|
if (permissions.find((permission)=>permission === "share_link")) {
|
|
8049
8051
|
setIsHighlightMenuOpen(false);
|
|
8050
8052
|
setIsLinksharePopupVisible(true);
|
|
8051
|
-
(0, $3Sbms$hotjarbrowser).event("linkshareClick");
|
|
8052
8053
|
} else setBlockedFeaturePopupOpen(true);
|
|
8053
8054
|
};
|
|
8054
8055
|
const menuCategories = [
|
|
@@ -8117,13 +8118,8 @@ const $69a9c49ece80e773$var$ControlBar = ()=>{
|
|
|
8117
8118
|
const onMicrophoneClick = async ()=>{
|
|
8118
8119
|
try {
|
|
8119
8120
|
const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
|
|
8120
|
-
if (devicesState.microphone.enabled)
|
|
8121
|
-
|
|
8122
|
-
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).toggleMute();
|
|
8123
|
-
} else {
|
|
8124
|
-
(0, $3Sbms$hotjarbrowser).event("enableMicrophone");
|
|
8125
|
-
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
|
|
8126
|
-
}
|
|
8121
|
+
if (devicesState.microphone.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).toggleMute();
|
|
8122
|
+
else await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
|
|
8127
8123
|
} catch (muteError) {
|
|
8128
8124
|
console.warn(muteError);
|
|
8129
8125
|
(0, $3Sbms$reacthottoast)(t("notifications.microphoneError"), {
|
|
@@ -8133,12 +8129,9 @@ const $69a9c49ece80e773$var$ControlBar = ()=>{
|
|
|
8133
8129
|
};
|
|
8134
8130
|
const onCameraClick = async ()=>{
|
|
8135
8131
|
try {
|
|
8136
|
-
if (streaming)
|
|
8137
|
-
|
|
8138
|
-
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableVideo();
|
|
8139
|
-
} else {
|
|
8132
|
+
if (streaming) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableVideo();
|
|
8133
|
+
else {
|
|
8140
8134
|
setIsCameraLoading(true);
|
|
8141
|
-
(0, $3Sbms$hotjarbrowser).event("enableCamera");
|
|
8142
8135
|
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo();
|
|
8143
8136
|
}
|
|
8144
8137
|
} catch (cameraError) {
|
|
@@ -8152,7 +8145,6 @@ const $69a9c49ece80e773$var$ControlBar = ()=>{
|
|
|
8152
8145
|
};
|
|
8153
8146
|
const onRotateClick = async ()=>{
|
|
8154
8147
|
try {
|
|
8155
|
-
(0, $3Sbms$hotjarbrowser).event("rotateCamera");
|
|
8156
8148
|
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).rotateVideo();
|
|
8157
8149
|
} catch (rotateError) {
|
|
8158
8150
|
console.warn(rotateError);
|
|
@@ -9383,7 +9375,6 @@ var $c11e4c21ca692a16$export$2e2bcd8739ae039 = $c11e4c21ca692a16$var$Menu;
|
|
|
9383
9375
|
|
|
9384
9376
|
|
|
9385
9377
|
|
|
9386
|
-
|
|
9387
9378
|
const $d677836e2f373a45$var$modalHeight = (desktop)=>desktop ? "215px" : "227px";
|
|
9388
9379
|
const $d677836e2f373a45$export$b679a9a7caefa4b1 = (0, $3Sbms$styledcomponents).div`
|
|
9389
9380
|
position: absolute;
|
|
@@ -9534,7 +9525,6 @@ const $49372cd9190da903$var$YoutubePopup = ()=>{
|
|
|
9534
9525
|
const onShareClick = (event)=>{
|
|
9535
9526
|
event.preventDefault();
|
|
9536
9527
|
setErrorMessage(null);
|
|
9537
|
-
(0, $3Sbms$hotjarbrowser).event("youtubeShare");
|
|
9538
9528
|
const [, videoId] = youtubeInputValue.match($49372cd9190da903$var$youtubeIDRegExp) || [];
|
|
9539
9529
|
if (videoId) {
|
|
9540
9530
|
dispatch({
|
|
@@ -9773,7 +9763,7 @@ const $30e857a4d83ba073$export$1058440c16b3a127 = (0, $3Sbms$styledcomponents).l
|
|
|
9773
9763
|
}
|
|
9774
9764
|
`;
|
|
9775
9765
|
const $30e857a4d83ba073$export$dfc919b3320e9811 = (0, $3Sbms$styledcomponents).button`
|
|
9776
|
-
background-color: ${({ theme: theme })=>theme.primaryColor};
|
|
9766
|
+
background-color: ${({ theme: theme })=>theme.primaryColor} !important;
|
|
9777
9767
|
padding: 8px 18px;
|
|
9778
9768
|
width: 280px;
|
|
9779
9769
|
height: 46px;
|
|
@@ -10289,55 +10279,36 @@ var $01986a58bfba8001$export$2e2bcd8739ae039 = $01986a58bfba8001$var$Settings;
|
|
|
10289
10279
|
|
|
10290
10280
|
|
|
10291
10281
|
|
|
10292
|
-
const $
|
|
10293
|
-
display: flex;
|
|
10294
|
-
flex: 1;
|
|
10295
|
-
flex-direction: column;
|
|
10296
|
-
justify-content: center;
|
|
10297
|
-
align-items: center;
|
|
10298
|
-
background-color: #000;
|
|
10299
|
-
color: #fff;
|
|
10300
|
-
padding-top: 70px;
|
|
10301
|
-
`;
|
|
10302
|
-
const $61b9018279e658f9$export$51071a7ce784448 = (0, $3Sbms$styledcomponents).span`
|
|
10303
|
-
font-size: 60px;
|
|
10304
|
-
`;
|
|
10305
|
-
const $61b9018279e658f9$export$eebc018855fb0cb6 = (0, $3Sbms$styledcomponents).h1`
|
|
10306
|
-
font-size: 28px;
|
|
10307
|
-
font-weight: 600;
|
|
10308
|
-
line-height: 33.6px;
|
|
10309
|
-
`;
|
|
10310
|
-
const $61b9018279e658f9$export$f4e7b895a81715e9 = (0, $3Sbms$styledcomponents).p`
|
|
10311
|
-
font-size: 22px;
|
|
10312
|
-
font-weight: 500;
|
|
10313
|
-
line-height: 26.4px;
|
|
10314
|
-
margin: 0;
|
|
10315
|
-
`;
|
|
10316
|
-
const $61b9018279e658f9$export$3a4deda42b6182b7 = (0, $3Sbms$styledcomponents).button`
|
|
10317
|
-
background-color: ${({ theme: theme })=>theme.primaryColor};
|
|
10318
|
-
border: none;
|
|
10319
|
-
border-radius: 50px;
|
|
10320
|
-
padding: 12px 18px;
|
|
10321
|
-
font-size: 16px;
|
|
10322
|
-
font-weight: 600;
|
|
10323
|
-
line-height: 18px;
|
|
10324
|
-
color: #fff;
|
|
10325
|
-
margin-top: 30px;
|
|
10326
|
-
`;
|
|
10327
|
-
|
|
10328
|
-
|
|
10329
|
-
const $df41bfe6da05853a$var$EndView = ()=>{
|
|
10282
|
+
const $df41bfe6da05853a$var$EndView = ({ state: state })=>{
|
|
10330
10283
|
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
10331
|
-
const {
|
|
10332
|
-
const
|
|
10333
|
-
|
|
10334
|
-
|
|
10335
|
-
|
|
10284
|
+
const { setStreamState: setStreamState, options: options } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
|
|
10285
|
+
const statesData = {
|
|
10286
|
+
ended: {
|
|
10287
|
+
title: t("endView.callLeft"),
|
|
10288
|
+
description: t("endView.ifMistakeRejoin"),
|
|
10289
|
+
icon: "\uD83D\uDC4B"
|
|
10290
|
+
},
|
|
10291
|
+
terminated: {
|
|
10292
|
+
title: t("endView.callEnded"),
|
|
10293
|
+
description: t("endView.callNoLongerActive"),
|
|
10294
|
+
icon: "\u260E\uFE0F"
|
|
10295
|
+
},
|
|
10296
|
+
expired: {
|
|
10297
|
+
title: t("endView.invalidLink"),
|
|
10298
|
+
description: t("endView.invalidOrExpired"),
|
|
10299
|
+
icon: "\uD83D\uDEAB"
|
|
10300
|
+
},
|
|
10301
|
+
full: {
|
|
10302
|
+
title: t("endView.full"),
|
|
10303
|
+
description: t("endView.fullDescription"),
|
|
10304
|
+
icon: "\uD83D\uDD12"
|
|
10305
|
+
}
|
|
10306
|
+
};
|
|
10307
|
+
const stateData = statesData[state];
|
|
10336
10308
|
const onGoBackClick = async ()=>{
|
|
10337
10309
|
try {
|
|
10338
10310
|
setStreamState("loading");
|
|
10339
10311
|
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).init();
|
|
10340
|
-
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).joinRoom();
|
|
10341
10312
|
if (options.controls?.microphone?.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone().catch((error)=>{
|
|
10342
10313
|
console.error("enable microphone", error);
|
|
10343
10314
|
});
|
|
@@ -10352,33 +10323,79 @@ const $df41bfe6da05853a$var$EndView = ()=>{
|
|
|
10352
10323
|
(0, $3Sbms$useEffect)(()=>{
|
|
10353
10324
|
if (document.pictureInPictureElement) document.exitPictureInPicture();
|
|
10354
10325
|
}, []);
|
|
10355
|
-
return /*#__PURE__*/ (0, $3Sbms$jsxs)(
|
|
10326
|
+
return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
10327
|
+
className: "flex flex-col w-full h-full bg-gray-25 dark-theme p-4 md:p-6",
|
|
10356
10328
|
children: [
|
|
10357
|
-
/*#__PURE__*/ (0, $3Sbms$
|
|
10358
|
-
children:
|
|
10359
|
-
|
|
10360
|
-
|
|
10361
|
-
|
|
10329
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)("div", {
|
|
10330
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $a1ac29d50bdaa837$export$194e6397ae7c260), {})
|
|
10331
|
+
}),
|
|
10332
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)("div", {
|
|
10333
|
+
className: "flex flex-1 justify-center items-center",
|
|
10334
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
10335
|
+
className: "flex flex-col items-center gap-6 w-full p-4 md:w-[500px] md:p-6 bg-gray-50 border-2 border-gray-100 rounded-lg",
|
|
10336
|
+
children: [
|
|
10337
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)("div", {
|
|
10338
|
+
className: "text-4xl",
|
|
10339
|
+
children: stateData.icon
|
|
10340
|
+
}),
|
|
10341
|
+
/*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
10342
|
+
className: "flex flex-col items-center gap-1",
|
|
10343
|
+
children: [
|
|
10344
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)("h2", {
|
|
10345
|
+
className: "text-2xl font-medium text-gray-1000",
|
|
10346
|
+
children: stateData.title
|
|
10347
|
+
}),
|
|
10348
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)("p", {
|
|
10349
|
+
className: "text-sm text-gray-700",
|
|
10350
|
+
children: stateData.description
|
|
10351
|
+
})
|
|
10352
|
+
]
|
|
10353
|
+
}),
|
|
10354
|
+
/*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
10355
|
+
className: "flex gap-2",
|
|
10356
|
+
children: [
|
|
10357
|
+
state === "ended" && /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Button), {
|
|
10358
|
+
variant: "outline",
|
|
10359
|
+
size: "sm",
|
|
10360
|
+
className: "bg-gray-25 select-none",
|
|
10361
|
+
onClick: onGoBackClick,
|
|
10362
|
+
children: [
|
|
10363
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$FlipBackwardIcon), {
|
|
10364
|
+
size: 16,
|
|
10365
|
+
className: "text-gray-1000"
|
|
10366
|
+
}),
|
|
10367
|
+
t("endView.goBack")
|
|
10368
|
+
]
|
|
10369
|
+
}),
|
|
10370
|
+
options.apiKey && /*#__PURE__*/ (0, $3Sbms$jsx)("a", {
|
|
10371
|
+
href: "https://app.snapcall.io",
|
|
10372
|
+
target: "_blank",
|
|
10373
|
+
rel: "noreferrer",
|
|
10374
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Button), {
|
|
10375
|
+
variant: "outline",
|
|
10376
|
+
size: "sm",
|
|
10377
|
+
className: "bg-gray-25 select-none",
|
|
10378
|
+
children: [
|
|
10379
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ArrowUpRightIcon), {
|
|
10380
|
+
size: 16,
|
|
10381
|
+
className: "text-gray-1000"
|
|
10382
|
+
}),
|
|
10383
|
+
t("endView.openDashboard")
|
|
10384
|
+
]
|
|
10385
|
+
})
|
|
10386
|
+
})
|
|
10387
|
+
]
|
|
10388
|
+
})
|
|
10389
|
+
]
|
|
10390
|
+
})
|
|
10362
10391
|
}),
|
|
10363
|
-
/*#__PURE__*/ (0, $3Sbms$jsxs)(
|
|
10392
|
+
/*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
10393
|
+
className: "flex gap-2 justify-center items-center text-xs text-gray-1000 [&>svg]:h-4 [&>svg]:w-auto",
|
|
10364
10394
|
children: [
|
|
10365
|
-
|
|
10366
|
-
|
|
10367
|
-
expired && t("endView.tooLate"),
|
|
10368
|
-
full && t("endView.full")
|
|
10395
|
+
t("shareLink.poweredBy"),
|
|
10396
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $a1ac29d50bdaa837$export$194e6397ae7c260), {})
|
|
10369
10397
|
]
|
|
10370
|
-
})
|
|
10371
|
-
expired && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $61b9018279e658f9$export$f4e7b895a81715e9), {
|
|
10372
|
-
children: t("endView.callIsOver")
|
|
10373
|
-
}),
|
|
10374
|
-
full && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $61b9018279e658f9$export$f4e7b895a81715e9), {
|
|
10375
|
-
children: t("endView.fullDescription")
|
|
10376
|
-
}),
|
|
10377
|
-
(ended || full) && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $61b9018279e658f9$export$3a4deda42b6182b7), {
|
|
10378
|
-
onClick: onGoBackClick,
|
|
10379
|
-
children: t("endView.goBack")
|
|
10380
|
-
}),
|
|
10381
|
-
!full && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $f81bfa56534026c2$export$ad5f39c592532e2d), {})
|
|
10398
|
+
})
|
|
10382
10399
|
]
|
|
10383
10400
|
});
|
|
10384
10401
|
};
|
|
@@ -11025,6 +11042,17 @@ const $15a01b611391c1e7$export$494039379563c94d = async (options)=>{
|
|
|
11025
11042
|
|
|
11026
11043
|
|
|
11027
11044
|
|
|
11045
|
+
const $648652ea36cc4fd9$export$5964c316e853650f = ()=>{
|
|
11046
|
+
const renderRef = (0, $3Sbms$useRef)(true);
|
|
11047
|
+
if (renderRef.current === true) {
|
|
11048
|
+
renderRef.current = false;
|
|
11049
|
+
return true;
|
|
11050
|
+
}
|
|
11051
|
+
return renderRef.current;
|
|
11052
|
+
};
|
|
11053
|
+
|
|
11054
|
+
|
|
11055
|
+
|
|
11028
11056
|
const $4fb4815baa04b470$export$20f257fc407da7a3 = (0, $3Sbms$createGlobalStyle)`
|
|
11029
11057
|
::-webkit-scrollbar {
|
|
11030
11058
|
display: none;
|
|
@@ -11131,6 +11159,30 @@ const $fd863da1a2907300$export$7f78f4f57f8852d5 = (seconds)=>{
|
|
|
11131
11159
|
|
|
11132
11160
|
|
|
11133
11161
|
|
|
11162
|
+
|
|
11163
|
+
|
|
11164
|
+
|
|
11165
|
+
const $946223bbb2c552ef$export$5a5695b638d078e7 = ()=>{
|
|
11166
|
+
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
11167
|
+
const { toast: toast } = (0, $3Sbms$useToast)();
|
|
11168
|
+
const reportError = (0, $3Sbms$useCallback)(({ code: code, error: error })=>{
|
|
11169
|
+
toast({
|
|
11170
|
+
title: t("notifications.error"),
|
|
11171
|
+
description: t("notifications.errorOccuredCode", {
|
|
11172
|
+
code: code
|
|
11173
|
+
}),
|
|
11174
|
+
variant: "destructive",
|
|
11175
|
+
duration: Infinity
|
|
11176
|
+
});
|
|
11177
|
+
console.error(`An error occured (${code}): ${error || "/"}`);
|
|
11178
|
+
}, [
|
|
11179
|
+
toast,
|
|
11180
|
+
t
|
|
11181
|
+
]);
|
|
11182
|
+
return reportError;
|
|
11183
|
+
};
|
|
11184
|
+
|
|
11185
|
+
|
|
11134
11186
|
const $20431dc869bb21e0$var$fileToDataUrl = (file)=>{
|
|
11135
11187
|
return new Promise((resolve, reject)=>{
|
|
11136
11188
|
const reader = new FileReader();
|
|
@@ -11142,7 +11194,7 @@ const $20431dc869bb21e0$var$fileToDataUrl = (file)=>{
|
|
|
11142
11194
|
const $20431dc869bb21e0$export$b3fd96a52c80b3af = ()=>{
|
|
11143
11195
|
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
11144
11196
|
const { openAssetsModal: openAssetsModal, addAsset: addAsset, setIncomingAsset: setIncomingAsset, isRecording: isRecording } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
|
|
11145
|
-
const
|
|
11197
|
+
const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
|
|
11146
11198
|
const fileInputRef = (0, $3Sbms$useRef)(null);
|
|
11147
11199
|
const isMedium = window.matchMedia("(min-width: 768px)").matches;
|
|
11148
11200
|
const onUploadClick = async (event)=>{
|
|
@@ -11165,13 +11217,12 @@ const $20431dc869bb21e0$export$b3fd96a52c80b3af = ()=>{
|
|
|
11165
11217
|
createdAt: createdAt
|
|
11166
11218
|
});
|
|
11167
11219
|
openAssetsModal();
|
|
11168
|
-
} catch (
|
|
11169
|
-
|
|
11170
|
-
|
|
11171
|
-
|
|
11220
|
+
} catch (error) {
|
|
11221
|
+
reportError({
|
|
11222
|
+
code: "UPLD_1",
|
|
11223
|
+
error: error
|
|
11172
11224
|
});
|
|
11173
11225
|
setIncomingAsset(null);
|
|
11174
|
-
console.error(err);
|
|
11175
11226
|
}
|
|
11176
11227
|
}
|
|
11177
11228
|
};
|
|
@@ -11180,7 +11231,7 @@ const $20431dc869bb21e0$export$b3fd96a52c80b3af = ()=>{
|
|
|
11180
11231
|
/*#__PURE__*/ (0, $3Sbms$jsx)("input", {
|
|
11181
11232
|
ref: fileInputRef,
|
|
11182
11233
|
type: "file",
|
|
11183
|
-
accept: ".jpg,.JPG,.png,.PNG",
|
|
11234
|
+
accept: ".jpg,.JPG,.png,.PNG,.jpeg,.JPEG",
|
|
11184
11235
|
className: "hidden",
|
|
11185
11236
|
onChange: onUploadClick
|
|
11186
11237
|
}),
|
|
@@ -11203,75 +11254,6 @@ const $20431dc869bb21e0$export$b3fd96a52c80b3af = ()=>{
|
|
|
11203
11254
|
};
|
|
11204
11255
|
|
|
11205
11256
|
|
|
11206
|
-
const $b4057e63640314b7$var$browser = (0, $3Sbms$bowser).parse(window.navigator.userAgent);
|
|
11207
|
-
const $b4057e63640314b7$export$aa00db7a33d4c484 = ()=>{
|
|
11208
|
-
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
11209
|
-
const { mode: mode, hasVideo: hasVideo, isRecording: isRecording, openQRCodeModal: openQRCodeModal } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
|
|
11210
|
-
const [showQrCodeToast, setShowQrCodeToast] = (0, $3Sbms$useState)($b4057e63640314b7$var$browser.platform.type === "desktop");
|
|
11211
|
-
const [timer, setTimer] = (0, $3Sbms$useState)(0);
|
|
11212
|
-
const timerInterval = (0, $3Sbms$useRef)(0);
|
|
11213
|
-
const isMedium = window.matchMedia("(min-width: 768px)").matches;
|
|
11214
|
-
(0, $3Sbms$useEffect)(()=>{
|
|
11215
|
-
if (isRecording) {
|
|
11216
|
-
clearInterval(timerInterval.current);
|
|
11217
|
-
timerInterval.current = window.setInterval(()=>setTimer((t)=>t + 1), 1000);
|
|
11218
|
-
} else {
|
|
11219
|
-
clearInterval(timerInterval.current);
|
|
11220
|
-
setTimer(0);
|
|
11221
|
-
}
|
|
11222
|
-
}, [
|
|
11223
|
-
isRecording
|
|
11224
|
-
]);
|
|
11225
|
-
return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11226
|
-
className: "flex items-start justify-between z-50",
|
|
11227
|
-
children: [
|
|
11228
|
-
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $20431dc869bb21e0$export$b3fd96a52c80b3af), {}),
|
|
11229
|
-
/*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11230
|
-
className: "flex flex-col items-center gap-4",
|
|
11231
|
-
children: [
|
|
11232
|
-
mode !== "photo" && /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11233
|
-
className: (0, $3Sbms$classnames)("flex items-center gap-2.5 px-3.5 py-2 text-md text-white font-medium border rounded-full", hasVideo ? "bg-gray-25/50 border-white/10 backdrop-blur-lg" : "bg-gray-50 border-gray-200"),
|
|
11234
|
-
children: [
|
|
11235
|
-
isRecording && /*#__PURE__*/ (0, $3Sbms$jsx)("span", {
|
|
11236
|
-
className: "w-2 h-2 rounded-full bg-red-700 pulse-red-700"
|
|
11237
|
-
}),
|
|
11238
|
-
(0, $fd863da1a2907300$export$7f78f4f57f8852d5)(timer)
|
|
11239
|
-
]
|
|
11240
|
-
}),
|
|
11241
|
-
showQrCodeToast && mode !== "screen" && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$RawToast), {
|
|
11242
|
-
className: "bg-gray-25",
|
|
11243
|
-
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ToastContent), {
|
|
11244
|
-
title: t("recorder.switchToMobileTitle"),
|
|
11245
|
-
icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$QrCode1Icon), {
|
|
11246
|
-
className: "text-white"
|
|
11247
|
-
}),
|
|
11248
|
-
onClose: ()=>setShowQrCodeToast(false),
|
|
11249
|
-
actions: [
|
|
11250
|
-
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ToastAction), {
|
|
11251
|
-
altText: t("recorder.showQrCode"),
|
|
11252
|
-
variant: "primary",
|
|
11253
|
-
onClick: openQRCodeModal,
|
|
11254
|
-
children: t("recorder.showQrCode")
|
|
11255
|
-
}, "showQrCode")
|
|
11256
|
-
]
|
|
11257
|
-
})
|
|
11258
|
-
})
|
|
11259
|
-
]
|
|
11260
|
-
}),
|
|
11261
|
-
/*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Button), {
|
|
11262
|
-
className: "bg-gray-25/50 hover:bg-gray-25/60 active:bg-gray-25/70 rounded-full invisible",
|
|
11263
|
-
icon: !isMedium,
|
|
11264
|
-
children: [
|
|
11265
|
-
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Settings1Icon), {
|
|
11266
|
-
size: 18,
|
|
11267
|
-
className: "text-white"
|
|
11268
|
-
}),
|
|
11269
|
-
isMedium && t("settings.title")
|
|
11270
|
-
]
|
|
11271
|
-
})
|
|
11272
|
-
]
|
|
11273
|
-
});
|
|
11274
|
-
};
|
|
11275
11257
|
|
|
11276
11258
|
|
|
11277
11259
|
|
|
@@ -11280,51 +11262,295 @@ const $b4057e63640314b7$export$aa00db7a33d4c484 = ()=>{
|
|
|
11280
11262
|
|
|
11281
11263
|
|
|
11282
11264
|
|
|
11283
|
-
const $
|
|
11284
|
-
|
|
11285
|
-
|
|
11286
|
-
|
|
11265
|
+
const $79bae5c9904f9029$var$SheetDialogContext = /*#__PURE__*/ (0, $3Sbms$createContext)({
|
|
11266
|
+
type: "dialog",
|
|
11267
|
+
showClose: true
|
|
11268
|
+
});
|
|
11269
|
+
const $79bae5c9904f9029$export$56d72fe406945300 = ({ type: type = "dialog", showClose: showClose = true, children: children })=>{
|
|
11270
|
+
return /*#__PURE__*/ (0, $3Sbms$jsx)($79bae5c9904f9029$var$SheetDialogContext.Provider, {
|
|
11271
|
+
value: {
|
|
11272
|
+
type: type,
|
|
11273
|
+
showClose: showClose
|
|
11274
|
+
},
|
|
11275
|
+
children: children
|
|
11287
11276
|
});
|
|
11288
|
-
|
|
11289
|
-
|
|
11290
|
-
})
|
|
11291
|
-
|
|
11292
|
-
|
|
11293
|
-
|
|
11294
|
-
|
|
11295
|
-
|
|
11296
|
-
|
|
11297
|
-
|
|
11298
|
-
|
|
11299
|
-
|
|
11300
|
-
|
|
11301
|
-
|
|
11302
|
-
|
|
11303
|
-
|
|
11304
|
-
|
|
11305
|
-
|
|
11306
|
-
|
|
11307
|
-
|
|
11308
|
-
|
|
11309
|
-
|
|
11310
|
-
|
|
11311
|
-
|
|
11312
|
-
|
|
11313
|
-
|
|
11314
|
-
|
|
11315
|
-
|
|
11316
|
-
|
|
11317
|
-
|
|
11318
|
-
|
|
11319
|
-
|
|
11320
|
-
|
|
11321
|
-
|
|
11322
|
-
|
|
11323
|
-
|
|
11324
|
-
|
|
11325
|
-
|
|
11326
|
-
|
|
11327
|
-
|
|
11277
|
+
};
|
|
11278
|
+
const $79bae5c9904f9029$export$e943710ec76a9465 = (props)=>{
|
|
11279
|
+
const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11280
|
+
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Dialog), {
|
|
11281
|
+
...props
|
|
11282
|
+
});
|
|
11283
|
+
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Sheet), {
|
|
11284
|
+
...props
|
|
11285
|
+
});
|
|
11286
|
+
};
|
|
11287
|
+
const $79bae5c9904f9029$export$76259cff208cccae = (props)=>{
|
|
11288
|
+
const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11289
|
+
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogTrigger), {
|
|
11290
|
+
...props
|
|
11291
|
+
});
|
|
11292
|
+
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetTrigger), {
|
|
11293
|
+
...props
|
|
11294
|
+
});
|
|
11295
|
+
};
|
|
11296
|
+
const $79bae5c9904f9029$export$ae085f72dad73e20 = (props)=>{
|
|
11297
|
+
const { type: type, showClose: showClose } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11298
|
+
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogHeader), {
|
|
11299
|
+
...props
|
|
11300
|
+
});
|
|
11301
|
+
else {
|
|
11302
|
+
const { children: children, ...other } = props;
|
|
11303
|
+
return /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$SheetHeader), {
|
|
11304
|
+
...other,
|
|
11305
|
+
children: [
|
|
11306
|
+
children,
|
|
11307
|
+
showClose && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetClose), {})
|
|
11308
|
+
]
|
|
11309
|
+
});
|
|
11310
|
+
}
|
|
11311
|
+
};
|
|
11312
|
+
const $79bae5c9904f9029$export$4cf67c05c32f37ce = (props)=>{
|
|
11313
|
+
const { type: type, showClose: showClose } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11314
|
+
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogContent), {
|
|
11315
|
+
showClose: showClose,
|
|
11316
|
+
...props
|
|
11317
|
+
});
|
|
11318
|
+
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetContent), {
|
|
11319
|
+
side: "bottom",
|
|
11320
|
+
...props
|
|
11321
|
+
});
|
|
11322
|
+
};
|
|
11323
|
+
const $79bae5c9904f9029$export$5e9fc1357420b7eb = (props)=>{
|
|
11324
|
+
const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11325
|
+
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogTitle), {
|
|
11326
|
+
...props
|
|
11327
|
+
});
|
|
11328
|
+
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetTitle), {
|
|
11329
|
+
...props
|
|
11330
|
+
});
|
|
11331
|
+
};
|
|
11332
|
+
const $79bae5c9904f9029$export$51c201eb88940e0f = (props)=>{
|
|
11333
|
+
const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11334
|
+
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogDescription), {
|
|
11335
|
+
...props
|
|
11336
|
+
});
|
|
11337
|
+
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetDescription), {
|
|
11338
|
+
...props
|
|
11339
|
+
});
|
|
11340
|
+
};
|
|
11341
|
+
const $79bae5c9904f9029$export$2cf3a8077f66b4f6 = (props)=>{
|
|
11342
|
+
const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11343
|
+
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogDescription), {
|
|
11344
|
+
...props
|
|
11345
|
+
});
|
|
11346
|
+
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetDescription), {
|
|
11347
|
+
...props
|
|
11348
|
+
});
|
|
11349
|
+
};
|
|
11350
|
+
|
|
11351
|
+
|
|
11352
|
+
|
|
11353
|
+
|
|
11354
|
+
|
|
11355
|
+
const $1a0b12b84e5cae94$export$3315c1cc2d5487ba = ({ title: title, icon: icon, isActive: isActive, onClick: onClick })=>{
|
|
11356
|
+
return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11357
|
+
className: (0, $3Sbms$classnames)("flex items-center justify-center md:justify-start gap-2.5 p-2 rounded-lg cursor-pointer select-none", "bg-gray-50 hover:bg-gray-50 border border-gray-200 md:border-0", isActive ? "md:bg-gray-50" : "md:bg-transparent"),
|
|
11358
|
+
onClick: onClick,
|
|
11359
|
+
children: [
|
|
11360
|
+
icon && /*#__PURE__*/ (0, $3Sbms$cloneElement)(icon, {
|
|
11361
|
+
size: 18,
|
|
11362
|
+
className: (0, $3Sbms$classnames)("text-gray-1000 shrink-0", icon.props.className)
|
|
11363
|
+
}),
|
|
11364
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)("label", {
|
|
11365
|
+
className: "text-sm font-semibold truncate cursor-pointer",
|
|
11366
|
+
children: title
|
|
11367
|
+
})
|
|
11368
|
+
]
|
|
11369
|
+
});
|
|
11370
|
+
};
|
|
11371
|
+
|
|
11372
|
+
|
|
11373
|
+
|
|
11374
|
+
|
|
11375
|
+
|
|
11376
|
+
|
|
11377
|
+
const $4dcd5d5b4dfa966e$export$50a2cb5c859687d3 = ({ id: id, title: title, description: description, action: action })=>{
|
|
11378
|
+
return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11379
|
+
className: "flex flex-col gap-1 items-start md:flex-row md:gap-8 md:items-center",
|
|
11380
|
+
children: [
|
|
11381
|
+
/*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11382
|
+
className: "flex flex-col gap-1 flex-1",
|
|
11383
|
+
children: [
|
|
11384
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)("label", {
|
|
11385
|
+
className: "text-sm font-medium truncate",
|
|
11386
|
+
htmlFor: id,
|
|
11387
|
+
children: title
|
|
11388
|
+
}),
|
|
11389
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)("p", {
|
|
11390
|
+
className: "text-sm text-gray-700 truncate hidden md:block",
|
|
11391
|
+
children: description
|
|
11392
|
+
})
|
|
11393
|
+
]
|
|
11394
|
+
}),
|
|
11395
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)("div", {
|
|
11396
|
+
className: "shrink-0 w-full md:w-auto",
|
|
11397
|
+
children: action
|
|
11398
|
+
})
|
|
11399
|
+
]
|
|
11400
|
+
});
|
|
11401
|
+
};
|
|
11402
|
+
|
|
11403
|
+
|
|
11404
|
+
|
|
11405
|
+
|
|
11406
|
+
|
|
11407
|
+
const $cbe12d51333f02bd$var$languages = Object.keys((0, $384d985bb9605c35$export$150b732325d14d04)).filter((it)=>it !== "dev").map((it)=>({
|
|
11408
|
+
id: it,
|
|
11409
|
+
name: (0, $384d985bb9605c35$export$150b732325d14d04)[it].name
|
|
11410
|
+
}));
|
|
11411
|
+
const $cbe12d51333f02bd$export$9ee2a145b590ce4b = ()=>{
|
|
11412
|
+
const { i18n: i18n, t: t } = (0, $3Sbms$useTranslation)();
|
|
11413
|
+
const { setLanguage: setLanguage } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
|
|
11414
|
+
return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
|
|
11415
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $4dcd5d5b4dfa966e$export$50a2cb5c859687d3), {
|
|
11416
|
+
id: "language",
|
|
11417
|
+
title: t("settings.language"),
|
|
11418
|
+
description: t("settings.selectYourLanguage"),
|
|
11419
|
+
action: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Select), {
|
|
11420
|
+
value: i18n.language,
|
|
11421
|
+
onValueChange: (value)=>setLanguage(value),
|
|
11422
|
+
children: [
|
|
11423
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectTrigger), {
|
|
11424
|
+
className: "bg-gray-50",
|
|
11425
|
+
id: "language",
|
|
11426
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectValue), {})
|
|
11427
|
+
}),
|
|
11428
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectContent), {
|
|
11429
|
+
children: $cbe12d51333f02bd$var$languages.map((language)=>/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectItem), {
|
|
11430
|
+
value: language.id,
|
|
11431
|
+
children: language.name
|
|
11432
|
+
}, language.id))
|
|
11433
|
+
})
|
|
11434
|
+
]
|
|
11435
|
+
})
|
|
11436
|
+
})
|
|
11437
|
+
});
|
|
11438
|
+
};
|
|
11439
|
+
|
|
11440
|
+
|
|
11441
|
+
|
|
11442
|
+
|
|
11443
|
+
|
|
11444
|
+
|
|
11445
|
+
|
|
11446
|
+
const $29e2063f6bd67bba$export$6aa26f5ebe6471fc = ({ kind: kind, includeDefault: includeDefault = false } = {})=>{
|
|
11447
|
+
const getMediaDevices = async ()=>{
|
|
11448
|
+
const devices = await navigator.mediaDevices.enumerateDevices();
|
|
11449
|
+
const filteredDevices = devices.filter((device)=>{
|
|
11450
|
+
if (device.deviceId === "default" && !includeDefault) return false;
|
|
11451
|
+
if (kind && kind !== device.kind) return false;
|
|
11452
|
+
return true;
|
|
11453
|
+
});
|
|
11454
|
+
return filteredDevices;
|
|
11455
|
+
};
|
|
11456
|
+
return (0, $3Sbms$useQuery)({
|
|
11457
|
+
queryKey: [
|
|
11458
|
+
"mediaDevices",
|
|
11459
|
+
kind || "all",
|
|
11460
|
+
includeDefault
|
|
11461
|
+
],
|
|
11462
|
+
queryFn: getMediaDevices,
|
|
11463
|
+
retry: false,
|
|
11464
|
+
refetchOnWindowFocus: false,
|
|
11465
|
+
staleTime: Infinity
|
|
11466
|
+
});
|
|
11467
|
+
};
|
|
11468
|
+
|
|
11469
|
+
|
|
11470
|
+
|
|
11471
|
+
|
|
11472
|
+
const $a0cdb77427f37cfe$export$9f1846b6ccad1893 = ()=>{
|
|
11473
|
+
return (0, $3Sbms$useQuery)({
|
|
11474
|
+
queryKey: [
|
|
11475
|
+
"devicesState"
|
|
11476
|
+
],
|
|
11477
|
+
queryFn: ()=>(0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState(),
|
|
11478
|
+
retry: false,
|
|
11479
|
+
refetchOnWindowFocus: false,
|
|
11480
|
+
staleTime: Infinity
|
|
11481
|
+
});
|
|
11482
|
+
};
|
|
11483
|
+
|
|
11484
|
+
|
|
11485
|
+
|
|
11486
|
+
|
|
11487
|
+
const $ea6c91cf7e6319d8$export$20144d37f30919ab = ()=>{
|
|
11488
|
+
const queryClient = (0, $3Sbms$useQueryClient)();
|
|
11489
|
+
return (0, $3Sbms$useMutation)({
|
|
11490
|
+
mutationFn: (device)=>{
|
|
11491
|
+
if (device.kind === "audioinput") return (0, $c9e496369b59be7a$export$2f377c2162fd02b2).switchMicrophone(device.deviceId);
|
|
11492
|
+
else if (device.kind === "videoinput") return (0, $c9e496369b59be7a$export$2f377c2162fd02b2).switchWebcam({
|
|
11493
|
+
device: device
|
|
11494
|
+
});
|
|
11495
|
+
else if (device.kind === "audiooutput") throw new Error("Audio output not supported");
|
|
11496
|
+
throw new Error("Unsupported device info");
|
|
11497
|
+
},
|
|
11498
|
+
onSettled: ()=>queryClient.invalidateQueries([
|
|
11499
|
+
"devicesState"
|
|
11500
|
+
])
|
|
11501
|
+
});
|
|
11502
|
+
};
|
|
11503
|
+
|
|
11504
|
+
|
|
11505
|
+
|
|
11506
|
+
|
|
11507
|
+
|
|
11508
|
+
|
|
11509
|
+
const $a1e420d03bf4c491$export$15073df9b5e6c63e = (constraints)=>{
|
|
11510
|
+
const optimisticPermissions = (0, $3Sbms$useRef)({
|
|
11511
|
+
audio: false,
|
|
11512
|
+
video: false
|
|
11513
|
+
});
|
|
11514
|
+
const handleVideoState = (0, $3Sbms$useCallback)(async ({ optimisticVideoState: optimisticVideoState } = {
|
|
11515
|
+
optimisticVideoState: false
|
|
11516
|
+
})=>{
|
|
11517
|
+
const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
|
|
11518
|
+
if (constraints.video && !devicesState.camera.enabled && !optimisticVideoState) {
|
|
11519
|
+
optimisticPermissions.current.video = true;
|
|
11520
|
+
try {
|
|
11521
|
+
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo({
|
|
11522
|
+
resolution: "vga",
|
|
11523
|
+
frameRate: 20,
|
|
11524
|
+
facingMode: "environment"
|
|
11525
|
+
});
|
|
11526
|
+
} catch (err) {
|
|
11527
|
+
console.error(err);
|
|
11528
|
+
optimisticPermissions.current.video = false;
|
|
11529
|
+
}
|
|
11530
|
+
} else if (!constraints.video && devicesState.camera.enabled) try {
|
|
11531
|
+
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableVideo();
|
|
11532
|
+
optimisticPermissions.current.video = false;
|
|
11533
|
+
} catch (err) {
|
|
11534
|
+
console.error(err);
|
|
11535
|
+
}
|
|
11536
|
+
}, [
|
|
11537
|
+
constraints.video
|
|
11538
|
+
]);
|
|
11539
|
+
const handleMicrophoneState = (0, $3Sbms$useCallback)(async ({ optimisticAudioState: optimisticAudioState } = {
|
|
11540
|
+
optimisticAudioState: false
|
|
11541
|
+
})=>{
|
|
11542
|
+
const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
|
|
11543
|
+
if (constraints.audio && !devicesState.microphone.enabled && !optimisticAudioState) {
|
|
11544
|
+
optimisticPermissions.current.audio = true;
|
|
11545
|
+
try {
|
|
11546
|
+
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
|
|
11547
|
+
} catch (err) {
|
|
11548
|
+
console.error(err);
|
|
11549
|
+
optimisticPermissions.current.audio = false;
|
|
11550
|
+
}
|
|
11551
|
+
}
|
|
11552
|
+
}, [
|
|
11553
|
+
constraints.audio
|
|
11328
11554
|
]);
|
|
11329
11555
|
const query = (0, $3Sbms$useQuery)({
|
|
11330
11556
|
queryKey: [
|
|
@@ -11382,6 +11608,371 @@ const $a1e420d03bf4c491$export$15073df9b5e6c63e = (constraints)=>{
|
|
|
11382
11608
|
};
|
|
11383
11609
|
|
|
11384
11610
|
|
|
11611
|
+
const $2ff9d0247afca2f1$export$75b44b566abc4e9c = ()=>{
|
|
11612
|
+
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
11613
|
+
const audioGUM = (0, $a1e420d03bf4c491$export$15073df9b5e6c63e)({
|
|
11614
|
+
audio: true,
|
|
11615
|
+
video: true
|
|
11616
|
+
});
|
|
11617
|
+
const audioInputDevices = (0, $29e2063f6bd67bba$export$6aa26f5ebe6471fc)({
|
|
11618
|
+
kind: "audioinput",
|
|
11619
|
+
includeDefault: true
|
|
11620
|
+
});
|
|
11621
|
+
const devicesState = (0, $a0cdb77427f37cfe$export$9f1846b6ccad1893)();
|
|
11622
|
+
const updateDevice = (0, $ea6c91cf7e6319d8$export$20144d37f30919ab)();
|
|
11623
|
+
const filteredAudioInputDevices = (0, $3Sbms$useMemo)(()=>{
|
|
11624
|
+
if (audioInputDevices.data) return audioInputDevices.data.filter((it)=>it.deviceId !== "default");
|
|
11625
|
+
return [];
|
|
11626
|
+
}, [
|
|
11627
|
+
audioInputDevices.data
|
|
11628
|
+
]);
|
|
11629
|
+
const selectedAudioDevice = (0, $3Sbms$useMemo)(()=>{
|
|
11630
|
+
const deviceId = devicesState.data?.microphone.device?.deviceId;
|
|
11631
|
+
if (audioInputDevices.data && deviceId === "default") {
|
|
11632
|
+
const defaultDevice = audioInputDevices.data.find((it)=>it.deviceId === "default");
|
|
11633
|
+
const realDevice = audioInputDevices.data.find((it)=>it.groupId === defaultDevice?.groupId && it.deviceId !== "default");
|
|
11634
|
+
if (realDevice) return realDevice.deviceId;
|
|
11635
|
+
}
|
|
11636
|
+
return deviceId || "";
|
|
11637
|
+
}, [
|
|
11638
|
+
audioInputDevices.data,
|
|
11639
|
+
devicesState.data
|
|
11640
|
+
]);
|
|
11641
|
+
return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
|
|
11642
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $4dcd5d5b4dfa966e$export$50a2cb5c859687d3), {
|
|
11643
|
+
id: "microphone",
|
|
11644
|
+
title: t("misc.microphone"),
|
|
11645
|
+
description: t("settings.selectYourMicrophone"),
|
|
11646
|
+
action: audioGUM.isSuccess ? /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Select), {
|
|
11647
|
+
value: selectedAudioDevice,
|
|
11648
|
+
onValueChange: (deviceId)=>{
|
|
11649
|
+
const device = filteredAudioInputDevices.find((it)=>it.deviceId === deviceId);
|
|
11650
|
+
if (device) updateDevice.mutate(device);
|
|
11651
|
+
},
|
|
11652
|
+
children: [
|
|
11653
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectTrigger), {
|
|
11654
|
+
className: "bg-gray-50",
|
|
11655
|
+
id: "microphone",
|
|
11656
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectValue), {
|
|
11657
|
+
children: updateDevice.isLoading ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
|
|
11658
|
+
children: updateDevice.variables?.label
|
|
11659
|
+
}) : undefined
|
|
11660
|
+
})
|
|
11661
|
+
}),
|
|
11662
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectContent), {
|
|
11663
|
+
children: filteredAudioInputDevices.map((device)=>/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectItem), {
|
|
11664
|
+
value: device.deviceId,
|
|
11665
|
+
children: device.label
|
|
11666
|
+
}, device.deviceId))
|
|
11667
|
+
})
|
|
11668
|
+
]
|
|
11669
|
+
}) : audioGUM.isError ? /*#__PURE__*/ (0, $3Sbms$jsx)("span", {
|
|
11670
|
+
children: t("recorder.allowCamMicAccess")
|
|
11671
|
+
}) : /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SpinnerIcon), {
|
|
11672
|
+
size: 28,
|
|
11673
|
+
className: "animate-spin text-blue-700"
|
|
11674
|
+
})
|
|
11675
|
+
})
|
|
11676
|
+
});
|
|
11677
|
+
};
|
|
11678
|
+
|
|
11679
|
+
|
|
11680
|
+
|
|
11681
|
+
|
|
11682
|
+
|
|
11683
|
+
|
|
11684
|
+
|
|
11685
|
+
|
|
11686
|
+
|
|
11687
|
+
|
|
11688
|
+
|
|
11689
|
+
const $c00f86b929ef980e$export$40214e6b2a12030d = ()=>{
|
|
11690
|
+
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
11691
|
+
const videoGUM = (0, $a1e420d03bf4c491$export$15073df9b5e6c63e)({
|
|
11692
|
+
audio: true,
|
|
11693
|
+
video: true
|
|
11694
|
+
});
|
|
11695
|
+
const videoInputDevices = (0, $29e2063f6bd67bba$export$6aa26f5ebe6471fc)({
|
|
11696
|
+
kind: "videoinput"
|
|
11697
|
+
});
|
|
11698
|
+
const devicesState = (0, $a0cdb77427f37cfe$export$9f1846b6ccad1893)();
|
|
11699
|
+
const updateDevice = (0, $ea6c91cf7e6319d8$export$20144d37f30919ab)();
|
|
11700
|
+
return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
|
|
11701
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $4dcd5d5b4dfa966e$export$50a2cb5c859687d3), {
|
|
11702
|
+
id: "camera",
|
|
11703
|
+
title: t("misc.camera"),
|
|
11704
|
+
description: t("settings.selectYourCamera"),
|
|
11705
|
+
action: videoGUM.isSuccess ? /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Select), {
|
|
11706
|
+
value: devicesState.data?.camera.device?.deviceId,
|
|
11707
|
+
onValueChange: (deviceId)=>{
|
|
11708
|
+
const device = videoInputDevices.data?.find((it)=>it.deviceId === deviceId);
|
|
11709
|
+
if (device) updateDevice.mutate(device);
|
|
11710
|
+
},
|
|
11711
|
+
children: [
|
|
11712
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectTrigger), {
|
|
11713
|
+
className: "bg-gray-50",
|
|
11714
|
+
id: "camera",
|
|
11715
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectValue), {
|
|
11716
|
+
placeholder: "/",
|
|
11717
|
+
children: updateDevice.isLoading ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
|
|
11718
|
+
children: updateDevice.variables?.label
|
|
11719
|
+
}) : undefined
|
|
11720
|
+
})
|
|
11721
|
+
}),
|
|
11722
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectContent), {
|
|
11723
|
+
children: videoInputDevices.data && videoInputDevices.data.map((device)=>/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectItem), {
|
|
11724
|
+
value: device.deviceId,
|
|
11725
|
+
children: device.label
|
|
11726
|
+
}, device.deviceId))
|
|
11727
|
+
})
|
|
11728
|
+
]
|
|
11729
|
+
}) : videoGUM.isError ? /*#__PURE__*/ (0, $3Sbms$jsx)("span", {
|
|
11730
|
+
children: t("recorder.allowCamMicAccess")
|
|
11731
|
+
}) : /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SpinnerIcon), {
|
|
11732
|
+
size: 28,
|
|
11733
|
+
className: "animate-spin text-blue-700"
|
|
11734
|
+
})
|
|
11735
|
+
})
|
|
11736
|
+
});
|
|
11737
|
+
};
|
|
11738
|
+
|
|
11739
|
+
|
|
11740
|
+
const $1299919e02395903$export$c197ce1a352372f = ({ state: state })=>{
|
|
11741
|
+
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
11742
|
+
const menuItems = (0, $3Sbms$useMemo)(()=>[
|
|
11743
|
+
{
|
|
11744
|
+
id: "audio",
|
|
11745
|
+
title: t("misc.audio"),
|
|
11746
|
+
icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$VolumeMaxIcon), {
|
|
11747
|
+
duotone: true
|
|
11748
|
+
}),
|
|
11749
|
+
content: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $2ff9d0247afca2f1$export$75b44b566abc4e9c), {})
|
|
11750
|
+
},
|
|
11751
|
+
{
|
|
11752
|
+
id: "video",
|
|
11753
|
+
title: t("misc.video"),
|
|
11754
|
+
icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$VideoRecorderIcon), {
|
|
11755
|
+
duotone: true
|
|
11756
|
+
}),
|
|
11757
|
+
content: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $c00f86b929ef980e$export$40214e6b2a12030d), {})
|
|
11758
|
+
},
|
|
11759
|
+
{
|
|
11760
|
+
id: "preferences",
|
|
11761
|
+
title: t("settings.preferences"),
|
|
11762
|
+
icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Settings3Icon), {
|
|
11763
|
+
duotone: true
|
|
11764
|
+
}),
|
|
11765
|
+
content: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $cbe12d51333f02bd$export$9ee2a145b590ce4b), {})
|
|
11766
|
+
}
|
|
11767
|
+
], [
|
|
11768
|
+
t
|
|
11769
|
+
]);
|
|
11770
|
+
const isMedium = window.matchMedia("(min-width: 768px)").matches;
|
|
11771
|
+
const [selectedMenuItem, setSelectedMenuItem] = (0, $3Sbms$useState)(isMedium ? menuItems[0] : null);
|
|
11772
|
+
(0, $3Sbms$useEffect)(()=>{
|
|
11773
|
+
if (isMedium && !selectedMenuItem) setSelectedMenuItem(menuItems[0]);
|
|
11774
|
+
}, [
|
|
11775
|
+
isMedium,
|
|
11776
|
+
selectedMenuItem,
|
|
11777
|
+
menuItems
|
|
11778
|
+
]);
|
|
11779
|
+
return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $79bae5c9904f9029$export$e943710ec76a9465), {
|
|
11780
|
+
open: state.isOpen,
|
|
11781
|
+
onOpenChange: state.setOpen,
|
|
11782
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $79bae5c9904f9029$export$56d72fe406945300), {
|
|
11783
|
+
type: isMedium ? "dialog" : "sheet",
|
|
11784
|
+
showClose: !isMedium,
|
|
11785
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $79bae5c9904f9029$export$4cf67c05c32f37ce), {
|
|
11786
|
+
className: (0, $3Sbms$classnames)("dark-theme flex flex-col md:w-[1000px] md:h-[550px] md:max-w-[90vw] bg-gray-100", "md:gap-0 md:p-0 md:divide-y divide-gray-200 text-gray-1000"),
|
|
11787
|
+
children: [
|
|
11788
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $79bae5c9904f9029$export$ae085f72dad73e20), {
|
|
11789
|
+
children: isMedium ? /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11790
|
+
className: "flex justify-between items-center p-3",
|
|
11791
|
+
children: [
|
|
11792
|
+
/*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11793
|
+
className: "flex gap-2 items-center",
|
|
11794
|
+
children: [
|
|
11795
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Settings1Icon), {
|
|
11796
|
+
size: 18,
|
|
11797
|
+
className: "text-white"
|
|
11798
|
+
}),
|
|
11799
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $79bae5c9904f9029$export$5e9fc1357420b7eb), {
|
|
11800
|
+
className: "text-sm",
|
|
11801
|
+
children: t("settings.title")
|
|
11802
|
+
})
|
|
11803
|
+
]
|
|
11804
|
+
}),
|
|
11805
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Button), {
|
|
11806
|
+
variant: "outline",
|
|
11807
|
+
size: "xs",
|
|
11808
|
+
className: "bg-gray-25",
|
|
11809
|
+
onClick: state.close,
|
|
11810
|
+
icon: true,
|
|
11811
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$XCloseIcon), {
|
|
11812
|
+
size: 12
|
|
11813
|
+
})
|
|
11814
|
+
})
|
|
11815
|
+
]
|
|
11816
|
+
}) : /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11817
|
+
className: "flex gap-4 items-center",
|
|
11818
|
+
children: [
|
|
11819
|
+
selectedMenuItem && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Button), {
|
|
11820
|
+
variant: "secondary",
|
|
11821
|
+
size: "sm",
|
|
11822
|
+
onClick: ()=>setSelectedMenuItem(null),
|
|
11823
|
+
icon: true,
|
|
11824
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ArrowLeftIcon), {
|
|
11825
|
+
size: 12,
|
|
11826
|
+
className: "text-white"
|
|
11827
|
+
})
|
|
11828
|
+
}),
|
|
11829
|
+
/*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11830
|
+
className: "flex gap-2 items-center",
|
|
11831
|
+
children: [
|
|
11832
|
+
!selectedMenuItem && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Settings1Icon), {
|
|
11833
|
+
size: 18,
|
|
11834
|
+
className: "text-white"
|
|
11835
|
+
}),
|
|
11836
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $79bae5c9904f9029$export$5e9fc1357420b7eb), {
|
|
11837
|
+
className: "text-lg",
|
|
11838
|
+
children: selectedMenuItem ? selectedMenuItem.title : t("settings.title")
|
|
11839
|
+
})
|
|
11840
|
+
]
|
|
11841
|
+
})
|
|
11842
|
+
]
|
|
11843
|
+
})
|
|
11844
|
+
}),
|
|
11845
|
+
/*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11846
|
+
className: "w-full h-full flex divide-x divide-gray-200",
|
|
11847
|
+
children: [
|
|
11848
|
+
(isMedium || !selectedMenuItem) && /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11849
|
+
className: "flex flex-col w-full md:w-[300px] md:p-4 shrink-0",
|
|
11850
|
+
children: [
|
|
11851
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)("div", {
|
|
11852
|
+
className: "flex flex-col gap-2 flex-1",
|
|
11853
|
+
children: menuItems.map((item)=>/*#__PURE__*/ (0, $3Sbms$jsx)((0, $1a0b12b84e5cae94$export$3315c1cc2d5487ba), {
|
|
11854
|
+
title: item.title,
|
|
11855
|
+
icon: item.icon,
|
|
11856
|
+
isActive: item.id === selectedMenuItem?.id,
|
|
11857
|
+
onClick: ()=>setSelectedMenuItem(item)
|
|
11858
|
+
}, item.id))
|
|
11859
|
+
}),
|
|
11860
|
+
isMedium && /*#__PURE__*/ (0, $3Sbms$jsx)("a", {
|
|
11861
|
+
href: "https://help.snapcall.io",
|
|
11862
|
+
target: "_blank",
|
|
11863
|
+
rel: "noreferrer",
|
|
11864
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $1a0b12b84e5cae94$export$3315c1cc2d5487ba), {
|
|
11865
|
+
title: t("settings.helpCenter"),
|
|
11866
|
+
icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$HelpCircleIcon), {
|
|
11867
|
+
duotone: true
|
|
11868
|
+
})
|
|
11869
|
+
})
|
|
11870
|
+
})
|
|
11871
|
+
]
|
|
11872
|
+
}),
|
|
11873
|
+
selectedMenuItem && /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11874
|
+
className: "w-full md:p-8 divide-y divide-gray-200",
|
|
11875
|
+
children: [
|
|
11876
|
+
isMedium && /*#__PURE__*/ (0, $3Sbms$jsx)("h2", {
|
|
11877
|
+
className: "text-md font-semibold mb-2",
|
|
11878
|
+
children: selectedMenuItem.title
|
|
11879
|
+
}),
|
|
11880
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)("div", {
|
|
11881
|
+
className: "md:pt-4",
|
|
11882
|
+
children: selectedMenuItem.content
|
|
11883
|
+
})
|
|
11884
|
+
]
|
|
11885
|
+
})
|
|
11886
|
+
]
|
|
11887
|
+
})
|
|
11888
|
+
]
|
|
11889
|
+
})
|
|
11890
|
+
})
|
|
11891
|
+
});
|
|
11892
|
+
};
|
|
11893
|
+
|
|
11894
|
+
|
|
11895
|
+
const $b4057e63640314b7$var$browser = (0, $3Sbms$bowser).parse(window.navigator.userAgent);
|
|
11896
|
+
const $b4057e63640314b7$export$aa00db7a33d4c484 = ()=>{
|
|
11897
|
+
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
11898
|
+
const { mode: mode, hasVideo: hasVideo, isRecording: isRecording, openQRCodeModal: openQRCodeModal } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
|
|
11899
|
+
const [showQrCodeToast, setShowQrCodeToast] = (0, $3Sbms$useState)($b4057e63640314b7$var$browser.platform.type === "desktop");
|
|
11900
|
+
const [timer, setTimer] = (0, $3Sbms$useState)(0);
|
|
11901
|
+
const timerInterval = (0, $3Sbms$useRef)(0);
|
|
11902
|
+
const settingsDialogState = (0, $3Sbms$useOverlayTriggerState)({});
|
|
11903
|
+
const isMedium = window.matchMedia("(min-width: 768px)").matches;
|
|
11904
|
+
(0, $3Sbms$useEffect)(()=>{
|
|
11905
|
+
if (isRecording) {
|
|
11906
|
+
clearInterval(timerInterval.current);
|
|
11907
|
+
timerInterval.current = window.setInterval(()=>setTimer((t)=>t + 1), 1000);
|
|
11908
|
+
} else {
|
|
11909
|
+
clearInterval(timerInterval.current);
|
|
11910
|
+
setTimer(0);
|
|
11911
|
+
}
|
|
11912
|
+
}, [
|
|
11913
|
+
isRecording
|
|
11914
|
+
]);
|
|
11915
|
+
return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11916
|
+
className: "flex items-start justify-between z-50",
|
|
11917
|
+
children: [
|
|
11918
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $20431dc869bb21e0$export$b3fd96a52c80b3af), {}),
|
|
11919
|
+
/*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11920
|
+
className: "flex flex-col items-center gap-4 overflow-hidden",
|
|
11921
|
+
children: [
|
|
11922
|
+
mode !== "photo" && /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
11923
|
+
className: (0, $3Sbms$classnames)("flex items-center gap-2.5 px-3.5 py-2 text-md text-white font-medium border rounded-full", hasVideo ? "bg-gray-25/50 border-white/10 backdrop-blur-lg" : "bg-gray-50 border-gray-200"),
|
|
11924
|
+
children: [
|
|
11925
|
+
isRecording && /*#__PURE__*/ (0, $3Sbms$jsx)("span", {
|
|
11926
|
+
className: "w-2 h-2 rounded-full bg-red-700 pulse-red-700"
|
|
11927
|
+
}),
|
|
11928
|
+
(0, $fd863da1a2907300$export$7f78f4f57f8852d5)(timer)
|
|
11929
|
+
]
|
|
11930
|
+
}),
|
|
11931
|
+
showQrCodeToast && mode !== "screen" && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$RawToast), {
|
|
11932
|
+
className: "bg-gray-25",
|
|
11933
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ToastContent), {
|
|
11934
|
+
title: t("recorder.switchToMobileTitle"),
|
|
11935
|
+
icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$QrCode1Icon), {
|
|
11936
|
+
className: "text-white"
|
|
11937
|
+
}),
|
|
11938
|
+
onClose: ()=>setShowQrCodeToast(false),
|
|
11939
|
+
actions: [
|
|
11940
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ToastAction), {
|
|
11941
|
+
altText: t("recorder.showQrCode"),
|
|
11942
|
+
variant: "primary",
|
|
11943
|
+
onClick: openQRCodeModal,
|
|
11944
|
+
children: t("recorder.showQrCode")
|
|
11945
|
+
}, "showQrCode")
|
|
11946
|
+
]
|
|
11947
|
+
})
|
|
11948
|
+
})
|
|
11949
|
+
]
|
|
11950
|
+
}),
|
|
11951
|
+
/*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Button), {
|
|
11952
|
+
className: "bg-gray-25/50 hover:bg-gray-25/60 active:bg-gray-25/70 rounded-full",
|
|
11953
|
+
icon: !isMedium,
|
|
11954
|
+
onClick: settingsDialogState.open,
|
|
11955
|
+
children: [
|
|
11956
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Settings1Icon), {
|
|
11957
|
+
size: 18,
|
|
11958
|
+
className: "text-white"
|
|
11959
|
+
}),
|
|
11960
|
+
isMedium && t("settings.title")
|
|
11961
|
+
]
|
|
11962
|
+
}),
|
|
11963
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $1299919e02395903$export$c197ce1a352372f), {
|
|
11964
|
+
state: settingsDialogState
|
|
11965
|
+
})
|
|
11966
|
+
]
|
|
11967
|
+
});
|
|
11968
|
+
};
|
|
11969
|
+
|
|
11970
|
+
|
|
11971
|
+
|
|
11972
|
+
|
|
11973
|
+
|
|
11974
|
+
|
|
11975
|
+
|
|
11385
11976
|
|
|
11386
11977
|
|
|
11387
11978
|
const $2231be1261227854$var$audioModes = [
|
|
@@ -11396,6 +11987,7 @@ const $2231be1261227854$var$videoModes = [
|
|
|
11396
11987
|
];
|
|
11397
11988
|
const $2231be1261227854$export$ca9d588768f0d0da = ({ children: children })=>{
|
|
11398
11989
|
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
11990
|
+
const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
|
|
11399
11991
|
const { mode: mode } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
|
|
11400
11992
|
const hasAudio = $2231be1261227854$var$audioModes.includes(mode);
|
|
11401
11993
|
const hasVideo = $2231be1261227854$var$videoModes.includes(mode);
|
|
@@ -11418,7 +12010,7 @@ const $2231be1261227854$export$ca9d588768f0d0da = ({ children: children })=>{
|
|
|
11418
12010
|
}),
|
|
11419
12011
|
/*#__PURE__*/ (0, $3Sbms$jsx)("p", {
|
|
11420
12012
|
className: "text-sm text-gray-900",
|
|
11421
|
-
children: "
|
|
12013
|
+
children: mode === "screen" ? t("recorder.chooseWhatYouWantToShareDescription") : hasAudio && hasVideo ? t("recorder.noCameraAndMicrophoneAccessDescription") : hasAudio ? t("recorder.noMicrophoneAccessDescription") : hasVideo ? t("recorder.noCameraAccessDescription") : "/"
|
|
11422
12014
|
})
|
|
11423
12015
|
]
|
|
11424
12016
|
}),
|
|
@@ -11432,7 +12024,10 @@ const $2231be1261227854$export$ca9d588768f0d0da = ({ children: children })=>{
|
|
|
11432
12024
|
onClick: ()=>{
|
|
11433
12025
|
if (mode === "screen") (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableScreenshare({
|
|
11434
12026
|
audioTransportOption: "mix"
|
|
11435
|
-
})
|
|
12027
|
+
}).catch((error)=>reportError({
|
|
12028
|
+
code: "SC_3",
|
|
12029
|
+
error: error
|
|
12030
|
+
}));
|
|
11436
12031
|
else getUserMedia.refetch();
|
|
11437
12032
|
},
|
|
11438
12033
|
children: mode === "screen" ? t("recorder.startScreenRecording") : t("recorder.allowAccess")
|
|
@@ -11588,95 +12183,6 @@ const $5b15985a93e05fe7$export$e9b744e15e8fe06f = ()=>{
|
|
|
11588
12183
|
|
|
11589
12184
|
|
|
11590
12185
|
|
|
11591
|
-
const $79bae5c9904f9029$var$SheetDialogContext = /*#__PURE__*/ (0, $3Sbms$createContext)({
|
|
11592
|
-
type: "dialog",
|
|
11593
|
-
showClose: true
|
|
11594
|
-
});
|
|
11595
|
-
const $79bae5c9904f9029$export$56d72fe406945300 = ({ type: type = "dialog", showClose: showClose = true, children: children })=>{
|
|
11596
|
-
return /*#__PURE__*/ (0, $3Sbms$jsx)($79bae5c9904f9029$var$SheetDialogContext.Provider, {
|
|
11597
|
-
value: {
|
|
11598
|
-
type: type,
|
|
11599
|
-
showClose: showClose
|
|
11600
|
-
},
|
|
11601
|
-
children: children
|
|
11602
|
-
});
|
|
11603
|
-
};
|
|
11604
|
-
const $79bae5c9904f9029$export$e943710ec76a9465 = (props)=>{
|
|
11605
|
-
const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11606
|
-
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Dialog), {
|
|
11607
|
-
...props
|
|
11608
|
-
});
|
|
11609
|
-
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Sheet), {
|
|
11610
|
-
...props
|
|
11611
|
-
});
|
|
11612
|
-
};
|
|
11613
|
-
const $79bae5c9904f9029$export$76259cff208cccae = (props)=>{
|
|
11614
|
-
const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11615
|
-
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogTrigger), {
|
|
11616
|
-
...props
|
|
11617
|
-
});
|
|
11618
|
-
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetTrigger), {
|
|
11619
|
-
...props
|
|
11620
|
-
});
|
|
11621
|
-
};
|
|
11622
|
-
const $79bae5c9904f9029$export$ae085f72dad73e20 = (props)=>{
|
|
11623
|
-
const { type: type, showClose: showClose } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11624
|
-
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogHeader), {
|
|
11625
|
-
...props
|
|
11626
|
-
});
|
|
11627
|
-
else {
|
|
11628
|
-
const { children: children, ...other } = props;
|
|
11629
|
-
return /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$SheetHeader), {
|
|
11630
|
-
...other,
|
|
11631
|
-
children: [
|
|
11632
|
-
children,
|
|
11633
|
-
showClose && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetClose), {})
|
|
11634
|
-
]
|
|
11635
|
-
});
|
|
11636
|
-
}
|
|
11637
|
-
};
|
|
11638
|
-
const $79bae5c9904f9029$export$4cf67c05c32f37ce = (props)=>{
|
|
11639
|
-
const { type: type, showClose: showClose } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11640
|
-
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogContent), {
|
|
11641
|
-
showClose: showClose,
|
|
11642
|
-
...props
|
|
11643
|
-
});
|
|
11644
|
-
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetContent), {
|
|
11645
|
-
side: "bottom",
|
|
11646
|
-
...props
|
|
11647
|
-
});
|
|
11648
|
-
};
|
|
11649
|
-
const $79bae5c9904f9029$export$5e9fc1357420b7eb = (props)=>{
|
|
11650
|
-
const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11651
|
-
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogTitle), {
|
|
11652
|
-
...props
|
|
11653
|
-
});
|
|
11654
|
-
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetTitle), {
|
|
11655
|
-
...props
|
|
11656
|
-
});
|
|
11657
|
-
};
|
|
11658
|
-
const $79bae5c9904f9029$export$51c201eb88940e0f = (props)=>{
|
|
11659
|
-
const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11660
|
-
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogDescription), {
|
|
11661
|
-
...props
|
|
11662
|
-
});
|
|
11663
|
-
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetDescription), {
|
|
11664
|
-
...props
|
|
11665
|
-
});
|
|
11666
|
-
};
|
|
11667
|
-
const $79bae5c9904f9029$export$2cf3a8077f66b4f6 = (props)=>{
|
|
11668
|
-
const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
|
|
11669
|
-
if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogDescription), {
|
|
11670
|
-
...props
|
|
11671
|
-
});
|
|
11672
|
-
else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetDescription), {
|
|
11673
|
-
...props
|
|
11674
|
-
});
|
|
11675
|
-
};
|
|
11676
|
-
|
|
11677
|
-
|
|
11678
|
-
|
|
11679
|
-
|
|
11680
12186
|
|
|
11681
12187
|
|
|
11682
12188
|
|
|
@@ -12069,9 +12575,9 @@ const $3ecacdd28d707ec1$export$c01bb29adf88f117 = ({ state: state })=>{
|
|
|
12069
12575
|
|
|
12070
12576
|
const $0bd5dc59be85fdb8$export$aab864ee9e2aed8d = ()=>{
|
|
12071
12577
|
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
12072
|
-
const {
|
|
12578
|
+
const { recorderOptions: recorderOptions } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
|
|
12073
12579
|
const { mode: mode, setMode: setMode, hasVideo: hasVideo } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
|
|
12074
|
-
const enabledModes =
|
|
12580
|
+
const enabledModes = recorderOptions?.enabledModes || [
|
|
12075
12581
|
"photo",
|
|
12076
12582
|
"video",
|
|
12077
12583
|
"audio",
|
|
@@ -12110,6 +12616,7 @@ const $0bd5dc59be85fdb8$export$aab864ee9e2aed8d = ()=>{
|
|
|
12110
12616
|
|
|
12111
12617
|
|
|
12112
12618
|
|
|
12619
|
+
|
|
12113
12620
|
const $e17d510229c71a56$var$zoomOptions = [
|
|
12114
12621
|
"1",
|
|
12115
12622
|
"2"
|
|
@@ -12117,15 +12624,23 @@ const $e17d510229c71a56$var$zoomOptions = [
|
|
|
12117
12624
|
const $e17d510229c71a56$export$50c18ae22f50c0e = ()=>{
|
|
12118
12625
|
const [isZoomAvailable, setIsZoomAvailable] = (0, $3Sbms$useState)(false);
|
|
12119
12626
|
const [zoom, setZoom] = (0, $3Sbms$useState)("1");
|
|
12627
|
+
const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
|
|
12120
12628
|
(0, $3Sbms$useEffect)(()=>{
|
|
12121
12629
|
if (isZoomAvailable) {
|
|
12122
12630
|
const numberZoom = Number(zoom);
|
|
12123
|
-
if (numberZoom > 1) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).zoomVideo()
|
|
12124
|
-
|
|
12631
|
+
if (numberZoom > 1) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).zoomVideo().catch((error)=>reportError({
|
|
12632
|
+
code: "ZM_1",
|
|
12633
|
+
error: error
|
|
12634
|
+
}));
|
|
12635
|
+
else (0, $c9e496369b59be7a$export$2f377c2162fd02b2).unzoomVideo().catch((error)=>reportError({
|
|
12636
|
+
code: "ZM_2",
|
|
12637
|
+
error: error
|
|
12638
|
+
}));
|
|
12125
12639
|
}
|
|
12126
12640
|
}, [
|
|
12127
12641
|
zoom,
|
|
12128
|
-
isZoomAvailable
|
|
12642
|
+
isZoomAvailable,
|
|
12643
|
+
reportError
|
|
12129
12644
|
]);
|
|
12130
12645
|
(0, $3Sbms$useEffect)(()=>{
|
|
12131
12646
|
const onLocalVideo = ()=>{
|
|
@@ -12195,9 +12710,11 @@ const $209863c2c7a7b6c0$export$53819c0e58f98d49 = (props)=>{
|
|
|
12195
12710
|
|
|
12196
12711
|
|
|
12197
12712
|
|
|
12713
|
+
|
|
12198
12714
|
const $24e31aa1532c4049$export$f9da3144ae2525a3 = ()=>{
|
|
12199
12715
|
const { streamUIContainerRef: streamUIContainerRef } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
|
|
12200
12716
|
const { mode: mode, isRecording: isRecording, setIsRecording: setIsRecording, videoElementRef: videoElementRef, addAsset: addAsset, setIncomingAsset: setIncomingAsset, openAssetsModal: openAssetsModal } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
|
|
12717
|
+
const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
|
|
12201
12718
|
const recordButtonRef = (0, $3Sbms$useRef)(null);
|
|
12202
12719
|
const [showFlashAnimation, setShowFlashAnimation] = (0, $3Sbms$useState)(false);
|
|
12203
12720
|
const [showCountdown, setShowCountdown] = (0, $3Sbms$useState)(false);
|
|
@@ -12213,45 +12730,79 @@ const $24e31aa1532c4049$export$f9da3144ae2525a3 = ()=>{
|
|
|
12213
12730
|
createdAt: createdAt
|
|
12214
12731
|
});
|
|
12215
12732
|
openAssetsModal();
|
|
12216
|
-
|
|
12217
|
-
|
|
12218
|
-
|
|
12219
|
-
|
|
12220
|
-
|
|
12221
|
-
|
|
12222
|
-
|
|
12223
|
-
|
|
12224
|
-
|
|
12733
|
+
try {
|
|
12734
|
+
const image = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo(videoElementRef.current);
|
|
12735
|
+
const { url: url, assetId: assetId } = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).saveCapture(image);
|
|
12736
|
+
addAsset({
|
|
12737
|
+
id: assetId,
|
|
12738
|
+
mode: "photo",
|
|
12739
|
+
url: url,
|
|
12740
|
+
thumbnailUrl: url,
|
|
12741
|
+
createdAt: createdAt
|
|
12742
|
+
});
|
|
12743
|
+
} catch (error) {
|
|
12744
|
+
reportError({
|
|
12745
|
+
code: "CAP_1",
|
|
12746
|
+
error: error
|
|
12747
|
+
});
|
|
12748
|
+
setIncomingAsset(null);
|
|
12749
|
+
}
|
|
12225
12750
|
openAssetsModal();
|
|
12226
12751
|
}
|
|
12227
12752
|
};
|
|
12228
12753
|
const onRecordClick = async ()=>{
|
|
12229
12754
|
if (isRecording) {
|
|
12230
12755
|
openAssetsModal();
|
|
12231
|
-
|
|
12756
|
+
try {
|
|
12757
|
+
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).stopRecord();
|
|
12758
|
+
if (mode === "screen") (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare().catch((error)=>reportError({
|
|
12759
|
+
code: "REC_3",
|
|
12760
|
+
error: error
|
|
12761
|
+
}));
|
|
12762
|
+
} catch (error) {
|
|
12763
|
+
reportError({
|
|
12764
|
+
code: "REC_1",
|
|
12765
|
+
error: error
|
|
12766
|
+
});
|
|
12767
|
+
}
|
|
12232
12768
|
} else setShowCountdown((prev)=>{
|
|
12233
12769
|
const next = !prev;
|
|
12234
12770
|
const { screenshare: screenshare } = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
|
|
12235
|
-
if (next === false && screenshare.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare()
|
|
12771
|
+
if (next === false && screenshare.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare().catch((error)=>reportError({
|
|
12772
|
+
code: "SC_2",
|
|
12773
|
+
error: error
|
|
12774
|
+
}));
|
|
12236
12775
|
return next;
|
|
12237
12776
|
});
|
|
12238
12777
|
};
|
|
12239
12778
|
const onCountdownFinish = async ()=>{
|
|
12240
|
-
|
|
12241
|
-
|
|
12242
|
-
|
|
12243
|
-
|
|
12244
|
-
|
|
12245
|
-
|
|
12246
|
-
|
|
12247
|
-
|
|
12248
|
-
|
|
12779
|
+
try {
|
|
12780
|
+
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).startRecord();
|
|
12781
|
+
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).audioLevel?.startAverageAnalysis();
|
|
12782
|
+
setShowCountdown(false);
|
|
12783
|
+
setIsRecording(true);
|
|
12784
|
+
const createdAt = Date.now();
|
|
12785
|
+
let thumbnail;
|
|
12786
|
+
try {
|
|
12787
|
+
if (mode !== "audio" && videoElementRef.current) {
|
|
12788
|
+
thumbnail = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo(undefined).catch(console.error);
|
|
12789
|
+
if (!thumbnail) thumbnail = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo(videoElementRef.current).catch(console.error);
|
|
12790
|
+
}
|
|
12791
|
+
} catch (err) {
|
|
12792
|
+
console.warn("Couldn't capture video for thumbnail", err);
|
|
12793
|
+
}
|
|
12794
|
+
setIncomingAsset({
|
|
12795
|
+
mode: mode,
|
|
12796
|
+
thumbnailUrl: thumbnail || undefined,
|
|
12797
|
+
createdAt: createdAt
|
|
12798
|
+
});
|
|
12799
|
+
} catch (error) {
|
|
12800
|
+
reportError({
|
|
12801
|
+
code: "REC_2",
|
|
12802
|
+
error: error
|
|
12803
|
+
});
|
|
12804
|
+
setShowCountdown(false);
|
|
12249
12805
|
}
|
|
12250
|
-
setIncomingAsset({
|
|
12251
|
-
mode: mode,
|
|
12252
|
-
thumbnailUrl: thumbnail || undefined,
|
|
12253
|
-
createdAt: createdAt
|
|
12254
|
-
});
|
|
12255
12806
|
};
|
|
12256
12807
|
(0, $3Sbms$useEffect)(()=>{
|
|
12257
12808
|
if (devicesState.screenshare.enabled && mode === "screen") recordButtonRef.current?.click();
|
|
@@ -12264,12 +12815,6 @@ const $24e31aa1532c4049$export$f9da3144ae2525a3 = ()=>{
|
|
|
12264
12815
|
}, [
|
|
12265
12816
|
mode
|
|
12266
12817
|
]);
|
|
12267
|
-
(0, $3Sbms$useEffect)(()=>{
|
|
12268
|
-
const { screenshare: screenshare } = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
|
|
12269
|
-
if (!isRecording && screenshare.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare();
|
|
12270
|
-
}, [
|
|
12271
|
-
isRecording
|
|
12272
|
-
]);
|
|
12273
12818
|
return /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Fragment), {
|
|
12274
12819
|
children: [
|
|
12275
12820
|
showFlashAnimation && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $6efc75079651494a$export$2b501aee548bae06), {
|
|
@@ -12359,12 +12904,17 @@ const $7f5b5a40ab7d19c2$export$9ea2b4f70e201d7f = ({ className: className })=>{
|
|
|
12359
12904
|
|
|
12360
12905
|
|
|
12361
12906
|
|
|
12907
|
+
|
|
12362
12908
|
const $9dfc3b1c2f703629$export$c7c44baae9d9f25f = ()=>{
|
|
12363
12909
|
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
12910
|
+
const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
|
|
12364
12911
|
const { mode: mode, isRecording: isRecording, assets: assets, openAssetsModal: openAssetsModal } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
|
|
12365
12912
|
const rotateVideo = ()=>{
|
|
12366
12913
|
const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
|
|
12367
|
-
if (devicesState.camera.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).rotateVideo()
|
|
12914
|
+
if (devicesState.camera.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).rotateVideo().catch((error)=>reportError({
|
|
12915
|
+
code: "ROTT_1",
|
|
12916
|
+
error: error
|
|
12917
|
+
}));
|
|
12368
12918
|
};
|
|
12369
12919
|
return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
|
|
12370
12920
|
className: "flex flex-col items-center gap-6 md:gap-4 w-full max-w-[500px] mx-auto z-50",
|
|
@@ -12698,10 +13248,11 @@ const $a272d78208225664$export$54c6bcb39df9c9b9 = ({ state: state, flow: flow })
|
|
|
12698
13248
|
};
|
|
12699
13249
|
|
|
12700
13250
|
|
|
13251
|
+
|
|
12701
13252
|
const $d6943d128e6c8399$var$browser = (0, $3Sbms$bowser).parse(window.navigator.userAgent);
|
|
12702
13253
|
const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
|
|
12703
|
-
const {
|
|
12704
|
-
const [mode, setMode] = (0, $3Sbms$useState)(
|
|
13254
|
+
const { flow: flow, flowV0: flowV0, recorderOptions: recorderOptions } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
|
|
13255
|
+
const [mode, setMode] = (0, $3Sbms$useState)(recorderOptions?.defaultMode || "photo");
|
|
12705
13256
|
const [assets, setAssets] = (0, $3Sbms$useState)([]);
|
|
12706
13257
|
const [isRecording, setIsRecording] = (0, $3Sbms$useState)(false);
|
|
12707
13258
|
const [incomingAsset, setIncomingAsset] = (0, $3Sbms$useState)(null);
|
|
@@ -12716,6 +13267,7 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
|
|
|
12716
13267
|
const switchToMobileModalState = (0, $3Sbms$useOverlayTriggerState)({
|
|
12717
13268
|
defaultOpen: $d6943d128e6c8399$var$browser.platform.type === "desktop" && !flow && !flowV0
|
|
12718
13269
|
});
|
|
13270
|
+
const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
|
|
12719
13271
|
const { company: company } = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getState();
|
|
12720
13272
|
const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
|
|
12721
13273
|
const hasVideo = devicesState.camera.enabled || devicesState.screenshare.enabled;
|
|
@@ -12727,8 +13279,15 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
|
|
|
12727
13279
|
setIncomingAsset(null);
|
|
12728
13280
|
}, []);
|
|
12729
13281
|
const removeAsset = async (assetId)=>{
|
|
12730
|
-
|
|
12731
|
-
|
|
13282
|
+
try {
|
|
13283
|
+
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).deleteCapture(assetId);
|
|
13284
|
+
setAssets((currentAssets)=>currentAssets.filter((asset)=>asset.id !== assetId));
|
|
13285
|
+
} catch (error) {
|
|
13286
|
+
reportError({
|
|
13287
|
+
code: "DEL_CAP_1",
|
|
13288
|
+
error: error
|
|
13289
|
+
});
|
|
13290
|
+
}
|
|
12732
13291
|
};
|
|
12733
13292
|
(0, $3Sbms$useEffect)(()=>{
|
|
12734
13293
|
const onRecordStopped = (event)=>{
|
|
@@ -12769,9 +13328,13 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
|
|
|
12769
13328
|
]);
|
|
12770
13329
|
(0, $3Sbms$useEffect)(()=>{
|
|
12771
13330
|
const screenshareState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState().screenshare;
|
|
12772
|
-
if (screenshareState.enabled && mode !== "screen") (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare()
|
|
13331
|
+
if (screenshareState.enabled && mode !== "screen") (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare().catch((error)=>reportError({
|
|
13332
|
+
code: "SC_1",
|
|
13333
|
+
error: error
|
|
13334
|
+
}));
|
|
12773
13335
|
}, [
|
|
12774
|
-
mode
|
|
13336
|
+
mode,
|
|
13337
|
+
reportError
|
|
12775
13338
|
]);
|
|
12776
13339
|
return /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
|
|
12777
13340
|
className: "antialiased inter dark-theme h-full",
|
|
@@ -12836,65 +13399,12 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
|
|
|
12836
13399
|
|
|
12837
13400
|
|
|
12838
13401
|
|
|
12839
|
-
|
|
12840
|
-
const $759492438a7a357d$export$7f7cbe89f1eacd2 = (0, $3Sbms$styledcomponents).div`
|
|
12841
|
-
border: 2px solid #ffffff;
|
|
12842
|
-
border-top: 2px solid #000000;
|
|
12843
|
-
border-radius: 50%;
|
|
12844
|
-
width: 24px;
|
|
12845
|
-
height: 24px;
|
|
12846
|
-
animation: spin 1s linear infinite;
|
|
12847
|
-
@keyframes spin {
|
|
12848
|
-
0% {
|
|
12849
|
-
transform: rotate(0deg);
|
|
12850
|
-
}
|
|
12851
|
-
100% {
|
|
12852
|
-
transform: rotate(360deg);
|
|
12853
|
-
}
|
|
12854
|
-
}
|
|
12855
|
-
`;
|
|
12856
|
-
const $759492438a7a357d$export$3b0d6d7590275603 = (0, $3Sbms$styledcomponents).div`
|
|
12857
|
-
position: absolute;
|
|
12858
|
-
background-color: #000000;
|
|
12859
|
-
opacity: 0.9;
|
|
12860
|
-
z-index: 999999;
|
|
12861
|
-
display: flex;
|
|
12862
|
-
vertical-align: middle;
|
|
12863
|
-
align-items: center;
|
|
12864
|
-
top: 0px;
|
|
12865
|
-
right: 0px;
|
|
12866
|
-
bottom: 0px;
|
|
12867
|
-
left: 0px;
|
|
12868
|
-
gap: 0.25rem;
|
|
12869
|
-
`;
|
|
12870
|
-
const $759492438a7a357d$export$42a852a2b6b56249 = (0, $3Sbms$styledcomponents).div`
|
|
12871
|
-
display: flex;
|
|
12872
|
-
gap: 25px;
|
|
12873
|
-
width: 100%;
|
|
12874
|
-
margin-left: auto;
|
|
12875
|
-
margin-right: auto;
|
|
12876
|
-
justify-content: center;
|
|
12877
|
-
align-items: center;
|
|
12878
|
-
vertical-align: middle;
|
|
12879
|
-
`;
|
|
12880
|
-
const $759492438a7a357d$export$52e284bf30d0364a = (0, $3Sbms$styledcomponents).h2`
|
|
12881
|
-
color: #ffffff;
|
|
12882
|
-
font-weight: 500;
|
|
12883
|
-
font-size: 14px;
|
|
12884
|
-
font-family: 'Lato';
|
|
12885
|
-
`;
|
|
12886
|
-
|
|
12887
|
-
|
|
12888
13402
|
const $91d20ee7d2ade85c$export$669f6ea7d267feaf = ()=>{
|
|
12889
|
-
|
|
12890
|
-
|
|
12891
|
-
children: /*#__PURE__*/ (0, $3Sbms$
|
|
12892
|
-
|
|
12893
|
-
|
|
12894
|
-
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $759492438a7a357d$export$52e284bf30d0364a), {
|
|
12895
|
-
children: t("loader.connection")
|
|
12896
|
-
})
|
|
12897
|
-
]
|
|
13403
|
+
return /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
|
|
13404
|
+
className: "w-full h-full flex justify-center items-center bg-gray-1000",
|
|
13405
|
+
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SpinnerIcon), {
|
|
13406
|
+
className: "animate-spin text-blue-700",
|
|
13407
|
+
size: 48
|
|
12898
13408
|
})
|
|
12899
13409
|
});
|
|
12900
13410
|
};
|
|
@@ -13637,62 +14147,63 @@ const $c6a143d1088045e0$var$Bold = ({ children: children })=>/*#__PURE__*/ (0, $
|
|
|
13637
14147
|
});
|
|
13638
14148
|
const $c6a143d1088045e0$export$ed71079a84f20635 = ()=>{
|
|
13639
14149
|
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
13640
|
-
const
|
|
13641
|
-
const
|
|
13642
|
-
|
|
13643
|
-
|
|
13644
|
-
|
|
13645
|
-
|
|
13646
|
-
|
|
13647
|
-
|
|
14150
|
+
const queryClient = (0, $3Sbms$useQueryClient)();
|
|
14151
|
+
const waitingRequests = (0, $3Sbms$useQuery)({
|
|
14152
|
+
queryKey: [
|
|
14153
|
+
"waitingRequests"
|
|
14154
|
+
],
|
|
14155
|
+
queryFn: ()=>(0, $c9e496369b59be7a$export$2f377c2162fd02b2).getWaitingRequests(),
|
|
14156
|
+
retry: false,
|
|
14157
|
+
refetchOnWindowFocus: false
|
|
14158
|
+
});
|
|
14159
|
+
const acceptWaitingRequest = (0, $3Sbms$useMutation)({
|
|
14160
|
+
mutationFn: (id)=>(0, $c9e496369b59be7a$export$2f377c2162fd02b2).acceptAccessRequest(id),
|
|
14161
|
+
onSettled: ()=>queryClient.invalidateQueries([
|
|
14162
|
+
"waitingRequests"
|
|
14163
|
+
])
|
|
14164
|
+
});
|
|
14165
|
+
const denyWaitingRequest = (0, $3Sbms$useMutation)({
|
|
14166
|
+
mutationFn: (id)=>(0, $c9e496369b59be7a$export$2f377c2162fd02b2).denyAccessRequest(id),
|
|
14167
|
+
onSettled: ()=>queryClient.invalidateQueries([
|
|
14168
|
+
"waitingRequests"
|
|
14169
|
+
])
|
|
14170
|
+
});
|
|
14171
|
+
const hasWaitingRequests = (waitingRequests.data?.length || 0) > 0;
|
|
14172
|
+
const firstWaitingRequest = waitingRequests.data?.[0];
|
|
14173
|
+
const isProcessingWaitingRequest = acceptWaitingRequest.isLoading || denyWaitingRequest.isLoading;
|
|
13648
14174
|
(0, $3Sbms$useEffect)(()=>{
|
|
13649
14175
|
const onAccessRequest = (event)=>{
|
|
13650
|
-
|
|
13651
|
-
|
|
13652
|
-
|
|
13653
|
-
|
|
13654
|
-
|
|
13655
|
-
|
|
13656
|
-
|
|
13657
|
-
|
|
13658
|
-
|
|
13659
|
-
|
|
13660
|
-
|
|
13661
|
-
modalState,
|
|
13662
|
-
requests
|
|
13663
|
-
]);
|
|
13664
|
-
(0, $3Sbms$useEffect)(()=>{
|
|
13665
|
-
const onEnterRoom = async (event)=>{
|
|
13666
|
-
setRequests(event.detail.waitingRequests);
|
|
13667
|
-
};
|
|
13668
|
-
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("enterRoom", onEnterRoom);
|
|
13669
|
-
return ()=>{
|
|
13670
|
-
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("enterRoom", onEnterRoom);
|
|
14176
|
+
queryClient.setQueryData([
|
|
14177
|
+
"waitingRequests"
|
|
14178
|
+
], (oldData)=>{
|
|
14179
|
+
if (oldData) return [
|
|
14180
|
+
...oldData,
|
|
14181
|
+
event.detail
|
|
14182
|
+
];
|
|
14183
|
+
return [
|
|
14184
|
+
event.detail
|
|
14185
|
+
];
|
|
14186
|
+
});
|
|
13671
14187
|
};
|
|
13672
|
-
}, [
|
|
13673
|
-
modalState
|
|
13674
|
-
]);
|
|
13675
|
-
(0, $3Sbms$useEffect)(()=>{
|
|
13676
14188
|
const onCancelAccessRequest = async (event)=>{
|
|
13677
|
-
|
|
13678
|
-
|
|
13679
|
-
|
|
14189
|
+
queryClient.setQueryData([
|
|
14190
|
+
"waitingRequests"
|
|
14191
|
+
], (oldData)=>{
|
|
14192
|
+
if (oldData) return oldData.filter((data)=>data.id !== event.detail.id);
|
|
14193
|
+
return [];
|
|
13680
14194
|
});
|
|
13681
|
-
setRequests(removeCanceled);
|
|
13682
14195
|
};
|
|
14196
|
+
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("accessRequest", onAccessRequest);
|
|
13683
14197
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("cancelAccessRequest", onCancelAccessRequest);
|
|
13684
14198
|
return ()=>{
|
|
14199
|
+
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("accessRequest", onAccessRequest);
|
|
13685
14200
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("cancelAccessRequest", onCancelAccessRequest);
|
|
13686
14201
|
};
|
|
13687
14202
|
}, [
|
|
13688
|
-
|
|
13689
|
-
requests
|
|
14203
|
+
queryClient
|
|
13690
14204
|
]);
|
|
13691
14205
|
return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$AlertDialog), {
|
|
13692
|
-
open:
|
|
13693
|
-
onOpenChange: (open)=>{
|
|
13694
|
-
modalState.setOpen(open);
|
|
13695
|
-
},
|
|
14206
|
+
open: hasWaitingRequests,
|
|
13696
14207
|
children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$AlertDialogContent), {
|
|
13697
14208
|
children: [
|
|
13698
14209
|
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$AlertDialogHeader), {
|
|
@@ -13701,14 +14212,14 @@ const $c6a143d1088045e0$export$ed71079a84f20635 = ()=>{
|
|
|
13701
14212
|
children: [
|
|
13702
14213
|
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Avatar), {
|
|
13703
14214
|
className: "w-[54px] h-[54px] text-3xl font-semibold",
|
|
13704
|
-
name:
|
|
14215
|
+
name: firstWaitingRequest?.profile?.name || t("requestAccess.defaultName")
|
|
13705
14216
|
}),
|
|
13706
14217
|
/*#__PURE__*/ (0, $3Sbms$jsx)("span", {
|
|
13707
14218
|
className: "w-full text-center text-lg font-normal",
|
|
13708
14219
|
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Trans), {
|
|
13709
14220
|
i18nKey: "requestAccess.wantToJoin",
|
|
13710
14221
|
values: {
|
|
13711
|
-
name:
|
|
14222
|
+
name: firstWaitingRequest?.profile?.name || t("requestAccess.defaultName")
|
|
13712
14223
|
},
|
|
13713
14224
|
components: {
|
|
13714
14225
|
bold: /*#__PURE__*/ (0, $3Sbms$jsx)($c6a143d1088045e0$var$Bold, {})
|
|
@@ -13723,19 +14234,17 @@ const $c6a143d1088045e0$export$ed71079a84f20635 = ()=>{
|
|
|
13723
14234
|
children: [
|
|
13724
14235
|
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$AlertDialogCancel), {
|
|
13725
14236
|
className: "w-full",
|
|
14237
|
+
disabled: isProcessingWaitingRequest,
|
|
13726
14238
|
onClick: ()=>{
|
|
13727
|
-
(
|
|
13728
|
-
requests.shift();
|
|
13729
|
-
setRequests(requests);
|
|
14239
|
+
if (firstWaitingRequest) denyWaitingRequest.mutate(firstWaitingRequest.id);
|
|
13730
14240
|
},
|
|
13731
14241
|
children: t("requestAccess.deny")
|
|
13732
14242
|
}),
|
|
13733
14243
|
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$AlertDialogAction), {
|
|
13734
14244
|
className: "w-full",
|
|
14245
|
+
disabled: isProcessingWaitingRequest,
|
|
13735
14246
|
onClick: ()=>{
|
|
13736
|
-
(
|
|
13737
|
-
requests.shift();
|
|
13738
|
-
setRequests(requests);
|
|
14247
|
+
if (firstWaitingRequest) acceptWaitingRequest.mutate(firstWaitingRequest.id);
|
|
13739
14248
|
},
|
|
13740
14249
|
variant: "primary",
|
|
13741
14250
|
children: t("requestAccess.admit")
|
|
@@ -13752,13 +14261,19 @@ const $26ed036cbc17809a$var$currentTheme = (0, $52580db2e49cdd90$export$3bfd0d52
|
|
|
13752
14261
|
const $26ed036cbc17809a$var$currentLanguage = (0, $a3e657fb86ae23f3$export$604ba5624273df44)();
|
|
13753
14262
|
const $26ed036cbc17809a$var$queryClient = new (0, $3Sbms$QueryClient)();
|
|
13754
14263
|
let $26ed036cbc17809a$var$timestampCriticalError = -1;
|
|
13755
|
-
const $26ed036cbc17809a$var$
|
|
14264
|
+
const $26ed036cbc17809a$var$endViewStates = [
|
|
14265
|
+
"ended",
|
|
14266
|
+
"terminated",
|
|
14267
|
+
"expired",
|
|
14268
|
+
"full"
|
|
14269
|
+
];
|
|
14270
|
+
const $26ed036cbc17809a$var$StreamUI = ({ options: options })=>{
|
|
13756
14271
|
const { t: t } = (0, $3Sbms$useTranslation)();
|
|
13757
14272
|
const [selfPeerId, setSelfPeerId] = (0, $3Sbms$useState)(undefined);
|
|
13758
14273
|
const streamUIContainerRef = (0, $3Sbms$useRef)(null);
|
|
13759
14274
|
const videosContainerRef = (0, $3Sbms$useRef)(null);
|
|
13760
14275
|
const remoteTilesContainerRef = (0, $3Sbms$useRef)(null);
|
|
13761
|
-
const [streamState, setStreamState] = (0, $3Sbms$useState)(options.
|
|
14276
|
+
const [streamState, setStreamState] = (0, $3Sbms$useState)(options.greeting ? "greeting" : "loading");
|
|
13762
14277
|
const [isQuickConnectPopupVisible, setIsQuickConnectPopupVisible] = (0, $3Sbms$useState)(false);
|
|
13763
14278
|
const [isSettingsMenuVisible, setIsSettingsMenuVisible] = (0, $3Sbms$useState)(false);
|
|
13764
14279
|
const [isYoutubePopupVisible, setIsYoutubePopupVisible] = (0, $3Sbms$useState)(false);
|
|
@@ -13782,6 +14297,9 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
|
|
|
13782
14297
|
const [isRecordingStartPopupOpen, setRecordingStartPopupOpen] = (0, $3Sbms$useState)(false);
|
|
13783
14298
|
const [permissions, setPermissions] = (0, $3Sbms$useState)([]);
|
|
13784
14299
|
const [plan, setPlan] = (0, $3Sbms$useState)(undefined);
|
|
14300
|
+
const [flows, setFlows] = (0, $3Sbms$useState)({});
|
|
14301
|
+
const [recorderOptions, setRecorderOptions] = (0, $3Sbms$useState)(options.recorder);
|
|
14302
|
+
const isFirstRender = (0, $648652ea36cc4fd9$export$5964c316e853650f)();
|
|
13785
14303
|
const orientation = (containerWidth || window.screen.width) > (containerHeight || window.screen.height) ? "landscape" : "portrait";
|
|
13786
14304
|
const styledTheme = theme === "dark" ? (0, $52580db2e49cdd90$export$3e936a8db52a10a0) : (0, $52580db2e49cdd90$export$f30cb9bc4f736419);
|
|
13787
14305
|
const onWebcamUpdate = (event)=>{
|
|
@@ -13862,9 +14380,6 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
|
|
|
13862
14380
|
name: name,
|
|
13863
14381
|
avatarUrl: avatarUrl
|
|
13864
14382
|
});
|
|
13865
|
-
if (email) (0, $3Sbms$hotjarbrowser).identify(null, {
|
|
13866
|
-
email: email
|
|
13867
|
-
});
|
|
13868
14383
|
} else (0, $3Sbms$reacthottoast)("An error occured while trying to join the room as an agent", {
|
|
13869
14384
|
className: "error"
|
|
13870
14385
|
});
|
|
@@ -13889,6 +14404,49 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
|
|
|
13889
14404
|
duration: duration
|
|
13890
14405
|
});
|
|
13891
14406
|
};
|
|
14407
|
+
const onClientInitialized = (0, $3Sbms$useCallback)(async (event)=>{
|
|
14408
|
+
const { flow: flow, flowV0: flowV0 } = event.detail;
|
|
14409
|
+
const flowStep = flow?.steps[0];
|
|
14410
|
+
if (flowStep) {
|
|
14411
|
+
const flowStepMode = flowStep.type === "image" ? "photo" : flowStep.type;
|
|
14412
|
+
setRecorderOptions({
|
|
14413
|
+
enabledModes: [
|
|
14414
|
+
flowStepMode
|
|
14415
|
+
],
|
|
14416
|
+
enabled: true,
|
|
14417
|
+
defaultMode: flowStepMode,
|
|
14418
|
+
skipOnboarding: false
|
|
14419
|
+
});
|
|
14420
|
+
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).setStep(flowStep.token);
|
|
14421
|
+
}
|
|
14422
|
+
const isRecorder = options.recorder?.enabled || Boolean(flowStep);
|
|
14423
|
+
if (!options.greeting) {
|
|
14424
|
+
if (isRecorder) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).joinRecorder();
|
|
14425
|
+
else await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).joinRoom();
|
|
14426
|
+
}
|
|
14427
|
+
const state = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getState();
|
|
14428
|
+
const peerId = state.peerId;
|
|
14429
|
+
setPlan(state.plan);
|
|
14430
|
+
setPermissions(state.permissions);
|
|
14431
|
+
setSelfPeerId(peerId);
|
|
14432
|
+
setFlows({
|
|
14433
|
+
flow: flow,
|
|
14434
|
+
flowV0: flowV0
|
|
14435
|
+
});
|
|
14436
|
+
if (!isRecorder && !options.greeting) try {
|
|
14437
|
+
if (!options.headless) await (0, $15a01b611391c1e7$export$494039379563c94d)(options);
|
|
14438
|
+
if (options.controls?.microphone?.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
|
|
14439
|
+
if (options.controls?.camera?.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo();
|
|
14440
|
+
setUserInteractionTriggered(true);
|
|
14441
|
+
} catch (userInteractionError) {
|
|
14442
|
+
setBlockedDevicesPopupOpen(true);
|
|
14443
|
+
console.error("User interaction trigger failed", userInteractionError);
|
|
14444
|
+
} finally{
|
|
14445
|
+
setStreamState("streaming");
|
|
14446
|
+
}
|
|
14447
|
+
}, [
|
|
14448
|
+
options
|
|
14449
|
+
]);
|
|
13892
14450
|
(0, $3Sbms$useEffect)(()=>{
|
|
13893
14451
|
try {
|
|
13894
14452
|
localStorage.setItem("stream_ui_theme", theme);
|
|
@@ -13899,7 +14457,9 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
|
|
|
13899
14457
|
theme
|
|
13900
14458
|
]);
|
|
13901
14459
|
(0, $3Sbms$useEffect)(()=>{
|
|
13902
|
-
|
|
14460
|
+
const translationLanguage = (0, $384d985bb9605c35$export$150b732325d14d04)[language];
|
|
14461
|
+
if (!translationLanguage) setLanguage("en");
|
|
14462
|
+
else try {
|
|
13903
14463
|
localStorage.setItem("stream_ui_language", language);
|
|
13904
14464
|
(0, $384d985bb9605c35$export$2e2bcd8739ae039).changeLanguage(language);
|
|
13905
14465
|
} catch (localStorageError) {
|
|
@@ -13909,6 +14469,7 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
|
|
|
13909
14469
|
language
|
|
13910
14470
|
]);
|
|
13911
14471
|
(0, $3Sbms$useEffect)(()=>{
|
|
14472
|
+
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("initialized", onClientInitialized);
|
|
13912
14473
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("localVideoAvailable", onWebcamUpdate);
|
|
13913
14474
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("localVideoUnavailable", onWebcamUpdate);
|
|
13914
14475
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("screenshareEnabled", onScreenshareUpdate);
|
|
@@ -13927,6 +14488,7 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
|
|
|
13927
14488
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("videoRecordingStopped", onVideoRecordingStopped);
|
|
13928
14489
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("videoRecordingRequested", onVideoRecordingRequested);
|
|
13929
14490
|
return ()=>{
|
|
14491
|
+
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("initialized", onClientInitialized);
|
|
13930
14492
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("localVideoAvailable", onWebcamUpdate);
|
|
13931
14493
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("localVideoUnavailable", onWebcamUpdate);
|
|
13932
14494
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("screenshareEnabled", onScreenshareUpdate);
|
|
@@ -13946,30 +14508,9 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
|
|
|
13946
14508
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("videoRecordingRequested", onVideoRecordingRequested);
|
|
13947
14509
|
};
|
|
13948
14510
|
}, [
|
|
13949
|
-
onVideoRecordingRequested
|
|
14511
|
+
onVideoRecordingRequested,
|
|
14512
|
+
onClientInitialized
|
|
13950
14513
|
]);
|
|
13951
|
-
(0, $3Sbms$useEffect)(()=>{
|
|
13952
|
-
const startStreaming = async ()=>{
|
|
13953
|
-
if (!options.greeting && !options.recorder?.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).joinRoom();
|
|
13954
|
-
const state = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getState();
|
|
13955
|
-
const peerId = state.peerId;
|
|
13956
|
-
setPlan(state.plan);
|
|
13957
|
-
setPermissions(state.permissions);
|
|
13958
|
-
setSelfPeerId(peerId);
|
|
13959
|
-
if (!options.recorder?.enabled && !options.greeting) try {
|
|
13960
|
-
if (!options.headless) await (0, $15a01b611391c1e7$export$494039379563c94d)(options);
|
|
13961
|
-
if (options.controls?.microphone?.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
|
|
13962
|
-
if (options.controls?.camera?.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo();
|
|
13963
|
-
setUserInteractionTriggered(true);
|
|
13964
|
-
} catch (userInteractionError) {
|
|
13965
|
-
setBlockedDevicesPopupOpen(true);
|
|
13966
|
-
console.error("User interaction trigger failed", userInteractionError);
|
|
13967
|
-
} finally{
|
|
13968
|
-
setStreamState("streaming");
|
|
13969
|
-
}
|
|
13970
|
-
};
|
|
13971
|
-
startStreaming();
|
|
13972
|
-
}, []);
|
|
13973
14514
|
(0, $3Sbms$useEffect)(()=>{
|
|
13974
14515
|
const onEnterRoom = async (event)=>{
|
|
13975
14516
|
setVideoRecording(event.detail.videoRecording || {
|
|
@@ -13983,21 +14524,38 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
|
|
|
13983
14524
|
fontWeight: 600
|
|
13984
14525
|
}
|
|
13985
14526
|
});
|
|
13986
|
-
if (
|
|
14527
|
+
if (recorderOptions?.enabled) setStreamState("recorder");
|
|
14528
|
+
else setStreamState("streaming");
|
|
13987
14529
|
};
|
|
13988
14530
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("enterRoom", onEnterRoom);
|
|
13989
14531
|
return ()=>{
|
|
13990
14532
|
(0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("enterRoom", onEnterRoom);
|
|
13991
14533
|
};
|
|
13992
14534
|
}, [
|
|
13993
|
-
|
|
14535
|
+
recorderOptions,
|
|
13994
14536
|
t
|
|
13995
14537
|
]);
|
|
14538
|
+
(0, $3Sbms$useEffect)(()=>{
|
|
14539
|
+
if (isFirstRender) {
|
|
14540
|
+
if (options.token) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).init(options.token, {
|
|
14541
|
+
languageCode: options.language,
|
|
14542
|
+
flowToken: options.flowToken,
|
|
14543
|
+
recorder: options.recorder?.enabled,
|
|
14544
|
+
apiKey: options.apiKey,
|
|
14545
|
+
email: options.email,
|
|
14546
|
+
profile: options.profile,
|
|
14547
|
+
authKey: options.authKey
|
|
14548
|
+
}).catch((err)=>console.error(err));
|
|
14549
|
+
else setStreamState("expired");
|
|
14550
|
+
}
|
|
14551
|
+
}, [
|
|
14552
|
+
options,
|
|
14553
|
+
isFirstRender
|
|
14554
|
+
]);
|
|
13996
14555
|
return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$QueryClientProvider), {
|
|
13997
14556
|
client: $26ed036cbc17809a$var$queryClient,
|
|
13998
14557
|
children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039).Provider, {
|
|
13999
14558
|
value: {
|
|
14000
|
-
token: options.token || "",
|
|
14001
14559
|
videoRecording: videoRecording,
|
|
14002
14560
|
setVideoRecording: setVideoRecording,
|
|
14003
14561
|
headless: Boolean(options.headless),
|
|
@@ -14035,9 +14593,9 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
|
|
|
14035
14593
|
isAgent: isAgent,
|
|
14036
14594
|
userInteractionTriggered: userInteractionTriggered,
|
|
14037
14595
|
orientation: orientation,
|
|
14038
|
-
flow: flow,
|
|
14039
|
-
flowV0: flowV0,
|
|
14040
|
-
|
|
14596
|
+
flow: flows.flow,
|
|
14597
|
+
flowV0: flows.flowV0,
|
|
14598
|
+
recorderOptions: recorderOptions
|
|
14041
14599
|
},
|
|
14042
14600
|
children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$ThemeProvider), {
|
|
14043
14601
|
theme: styledTheme,
|
|
@@ -14047,7 +14605,6 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
|
|
|
14047
14605
|
/*#__PURE__*/ (0, $3Sbms$jsxs)((0, $4fb4815baa04b470$export$914ddf2021ea8ee6), {
|
|
14048
14606
|
ref: streamUIContainerRef,
|
|
14049
14607
|
children: [
|
|
14050
|
-
streamState === "loading" && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $91d20ee7d2ade85c$export$669f6ea7d267feaf), {}),
|
|
14051
14608
|
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3a42b2ef7646d035$export$2e2bcd8739ae039), {}),
|
|
14052
14609
|
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Toaster), {
|
|
14053
14610
|
duration: 3000,
|
|
@@ -14060,20 +14617,17 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
|
|
|
14060
14617
|
setBlockedDevicesPopupOpen(false);
|
|
14061
14618
|
}
|
|
14062
14619
|
}),
|
|
14063
|
-
streamState === "greeting"
|
|
14064
|
-
|
|
14065
|
-
|
|
14066
|
-
|
|
14067
|
-
|
|
14068
|
-
|
|
14069
|
-
|
|
14070
|
-
|
|
14071
|
-
|
|
14072
|
-
|
|
14073
|
-
|
|
14074
|
-
})
|
|
14075
|
-
}),
|
|
14076
|
-
(streamState === "ended" || streamState === "terminated" || streamState === "full" || streamState === "expired") && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $df41bfe6da05853a$export$2e2bcd8739ae039), {})
|
|
14620
|
+
streamState === "loading" ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $91d20ee7d2ade85c$export$669f6ea7d267feaf), {}) : streamState === "greeting" ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $8f7af36c0532a6c4$export$2e2bcd8739ae039), {}) : streamState === "recorder" ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $d6943d128e6c8399$export$336a011955157f9a), {}) : streamState === "streaming" ? /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $cce9fd41d8a55a18$export$74636703cfe1eecf), {
|
|
14621
|
+
children: [
|
|
14622
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $c6a143d1088045e0$export$ed71079a84f20635), {}),
|
|
14623
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $f235befa4cdc42d6$export$2e2bcd8739ae039), {}),
|
|
14624
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $cdab47bb8796991e$export$2e2bcd8739ae039), {}),
|
|
14625
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $69a9c49ece80e773$export$2e2bcd8739ae039), {}),
|
|
14626
|
+
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $01986a58bfba8001$export$2e2bcd8739ae039), {})
|
|
14627
|
+
]
|
|
14628
|
+
}) : $26ed036cbc17809a$var$endViewStates.includes(streamState) ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $df41bfe6da05853a$export$2e2bcd8739ae039), {
|
|
14629
|
+
state: streamState
|
|
14630
|
+
}) : /*#__PURE__*/ (0, $3Sbms$jsx)((0, $91d20ee7d2ade85c$export$669f6ea7d267feaf), {})
|
|
14077
14631
|
]
|
|
14078
14632
|
})
|
|
14079
14633
|
]
|
|
@@ -14085,17 +14639,9 @@ var $26ed036cbc17809a$export$2e2bcd8739ae039 = $26ed036cbc17809a$var$StreamUI;
|
|
|
14085
14639
|
|
|
14086
14640
|
|
|
14087
14641
|
|
|
14088
|
-
// https://help.hotjar.com/hc/en-us/articles/360033640653-Identify-API-Reference#01G2A279ZXW4JT60NKXKX69G49
|
|
14089
|
-
// prettier-ignore
|
|
14090
|
-
// @ts-ignore
|
|
14091
|
-
window.hj = window.hj || function() {
|
|
14092
|
-
(hj.q = hj.q || []).push(arguments);
|
|
14093
|
-
};
|
|
14094
|
-
|
|
14095
|
-
|
|
14096
14642
|
|
|
14097
14643
|
var $1e2747ca72d0ab49$exports = {};
|
|
14098
|
-
$1e2747ca72d0ab49$exports = "*, :before, :after, ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #93c5fd80;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n.container {\n width: 100%;\n}\n\n@media (width >= 640px) {\n .container {\n max-width: 640px;\n }\n}\n\n@media (width >= 768px) {\n .container {\n max-width: 768px;\n }\n}\n\n@media (width >= 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n\n@media (width >= 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n\n@media (width >= 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n\n.sr-only {\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden;\n}\n\n.pointer-events-auto {\n pointer-events: auto;\n}\n\n.visible {\n visibility: visible;\n}\n\n.invisible {\n visibility: hidden;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.inset-0 {\n inset: 0;\n}\n\n.inset-x-0 {\n left: 0;\n right: 0;\n}\n\n.inset-y-0 {\n top: 0;\n bottom: 0;\n}\n\n.-bottom-12 {\n bottom: -3rem;\n}\n\n.-left-12 {\n left: -3rem;\n}\n\n.-right-12 {\n right: -3rem;\n}\n\n.-top-12 {\n top: -3rem;\n}\n\n.bottom-0 {\n bottom: 0;\n}\n\n.bottom-2 {\n bottom: .5rem;\n}\n\n.left-0 {\n left: 0;\n}\n\n.left-1 {\n left: .25rem;\n}\n\n.left-1\\/2 {\n left: 50%;\n}\n\n.left-2 {\n left: .5rem;\n}\n\n.left-\\[50\\%\\] {\n left: 50%;\n}\n\n.right-0 {\n right: 0;\n}\n\n.right-1 {\n right: .25rem;\n}\n\n.right-2 {\n right: .5rem;\n}\n\n.right-6 {\n right: 1.5rem;\n}\n\n.top-0 {\n top: 0;\n}\n\n.top-1\\/2 {\n top: 50%;\n}\n\n.top-2 {\n top: .5rem;\n}\n\n.top-6 {\n top: 1.5rem;\n}\n\n.top-8 {\n top: 2rem;\n}\n\n.top-\\[50\\%\\] {\n top: 50%;\n}\n\n.top-auto {\n top: auto;\n}\n\n.z-40 {\n z-index: 40;\n}\n\n.z-50 {\n z-index: 50;\n}\n\n.z-\\[100\\] {\n z-index: 100;\n}\n\n.z-\\[150\\] {\n z-index: 150;\n}\n\n.-mx-1 {\n margin-left: -.25rem;\n margin-right: -.25rem;\n}\n\n.mx-1 {\n margin-left: .25rem;\n margin-right: .25rem;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.my-1 {\n margin-top: .25rem;\n margin-bottom: .25rem;\n}\n\n.-ml-4 {\n margin-left: -1rem;\n}\n\n.-mr-2 {\n margin-right: -.5rem;\n}\n\n.-mt-4 {\n margin-top: -1rem;\n}\n\n.mb-4 {\n margin-bottom: 1rem;\n}\n\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.mb-\\[9px\\] {\n margin-bottom: 9px;\n}\n\n.ml-1 {\n margin-left: .25rem;\n}\n\n.mr-2 {\n margin-right: .5rem;\n}\n\n.mr-2\\.5 {\n margin-right: .625rem;\n}\n\n.mr-9 {\n margin-right: 2.25rem;\n}\n\n.mt-1 {\n margin-top: .25rem;\n}\n\n.mt-2 {\n margin-top: .5rem;\n}\n\n.box-border {\n box-sizing: border-box;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.inline {\n display: inline;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.table {\n display: table;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.aspect-square {\n aspect-ratio: 1;\n}\n\n.h-1\\/3 {\n height: 33.3333%;\n}\n\n.h-10 {\n height: 2.5rem;\n}\n\n.h-12 {\n height: 3rem;\n}\n\n.h-14 {\n height: 3.5rem;\n}\n\n.h-16 {\n height: 4rem;\n}\n\n.h-2 {\n height: .5rem;\n}\n\n.h-3 {\n height: .75rem;\n}\n\n.h-4 {\n height: 1rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.h-9 {\n height: 2.25rem;\n}\n\n.h-\\[100px\\] {\n height: 100px;\n}\n\n.h-\\[16px\\] {\n height: 16px;\n}\n\n.h-\\[1px\\] {\n height: 1px;\n}\n\n.h-\\[200px\\] {\n height: 200px;\n}\n\n.h-\\[24px\\] {\n height: 24px;\n}\n\n.h-\\[36px\\] {\n height: 36px;\n}\n\n.h-\\[400px\\] {\n height: 400px;\n}\n\n.h-\\[45px\\] {\n height: 45px;\n}\n\n.h-\\[54px\\] {\n height: 54px;\n}\n\n.h-\\[70px\\] {\n height: 70px;\n}\n\n.h-\\[72px\\] {\n height: 72px;\n}\n\n.h-\\[8px\\] {\n height: 8px;\n}\n\n.h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n}\n\n.h-full {\n height: 100%;\n}\n\n.h-px {\n height: 1px;\n}\n\n.h-screen {\n height: 100vh;\n}\n\n.max-h-\\[180px\\] {\n max-height: 180px;\n}\n\n.max-h-\\[300px\\] {\n max-height: 300px;\n}\n\n.max-h-\\[70px\\] {\n max-height: 70px;\n}\n\n.max-h-\\[90\\%\\] {\n max-height: 90%;\n}\n\n.max-h-\\[90vh\\] {\n max-height: 90vh;\n}\n\n.max-h-screen {\n max-height: 100vh;\n}\n\n.min-h-0 {\n min-height: 0;\n}\n\n.min-h-9 {\n min-height: 2.25rem;\n}\n\n.min-h-\\[20px\\] {\n min-height: 20px;\n}\n\n.min-h-\\[80px\\] {\n min-height: 80px;\n}\n\n.w-1\\/3 {\n width: 33.3333%;\n}\n\n.w-10 {\n width: 2.5rem;\n}\n\n.w-12 {\n width: 3rem;\n}\n\n.w-16 {\n width: 4rem;\n}\n\n.w-2 {\n width: .5rem;\n}\n\n.w-3 {\n width: .75rem;\n}\n\n.w-3\\/4 {\n width: 75%;\n}\n\n.w-4 {\n width: 1rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-72 {\n width: 18rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.w-\\[100px\\] {\n width: 100px;\n}\n\n.w-\\[16px\\] {\n width: 16px;\n}\n\n.w-\\[24px\\] {\n width: 24px;\n}\n\n.w-\\[334px\\] {\n width: 334px;\n}\n\n.w-\\[36px\\] {\n width: 36px;\n}\n\n.w-\\[400px\\] {\n width: 400px;\n}\n\n.w-\\[42px\\] {\n width: 42px;\n}\n\n.w-\\[45px\\] {\n width: 45px;\n}\n\n.w-\\[54px\\] {\n width: 54px;\n}\n\n.w-\\[70px\\] {\n width: 70px;\n}\n\n.w-\\[72px\\] {\n width: 72px;\n}\n\n.w-\\[8px\\] {\n width: 8px;\n}\n\n.w-auto {\n width: auto;\n}\n\n.w-full {\n width: 100%;\n}\n\n.w-max {\n width: max-content;\n}\n\n.min-w-0 {\n min-width: 0;\n}\n\n.min-w-\\[144px\\] {\n min-width: 144px;\n}\n\n.min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n}\n\n.min-w-full {\n min-width: 100%;\n}\n\n.max-w-\\[315px\\] {\n max-width: 315px;\n}\n\n.max-w-\\[400px\\] {\n max-width: 400px;\n}\n\n.max-w-\\[500px\\] {\n max-width: 500px;\n}\n\n.max-w-\\[70px\\] {\n max-width: 70px;\n}\n\n.max-w-\\[800px\\] {\n max-width: 800px;\n}\n\n.max-w-\\[90\\%\\] {\n max-width: 90%;\n}\n\n.max-w-\\[90vw\\] {\n max-width: 90vw;\n}\n\n.max-w-full {\n max-width: 100%;\n}\n\n.flex-1 {\n flex: 1;\n}\n\n.flex-shrink-0, .shrink-0 {\n flex-shrink: 0;\n}\n\n.flex-grow, .grow {\n flex-grow: 1;\n}\n\n.grow-0 {\n flex-grow: 0;\n}\n\n.basis-full {\n flex-basis: 100%;\n}\n\n.caption-bottom {\n caption-side: bottom;\n}\n\n.border-collapse {\n border-collapse: collapse;\n}\n\n.-translate-x-1\\/2 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -50%;\n}\n\n.-translate-y-1\\/2 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -50%;\n}\n\n.translate-x-0 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 0px;\n}\n\n.translate-x-0\\.5 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: .125rem;\n}\n\n.translate-x-\\[-50\\%\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -50%;\n}\n\n.translate-y-0 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: 0px;\n}\n\n.translate-y-\\[-50\\%\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -50%;\n}\n\n.-scale-x-\\[1\\], .scale-x-\\[-1\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-scale-x: -1;\n}\n\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n.animate-pulse {\n animation: 2s cubic-bezier(.4, 0, .6, 1) infinite pulse;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.animate-spin {\n animation: 1s linear infinite spin;\n}\n\n.cursor-default {\n cursor: default;\n}\n\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.select-none {\n -webkit-user-select: none;\n user-select: none;\n}\n\n.resize {\n resize: both;\n}\n\n.appearance-none {\n appearance: none;\n}\n\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.flex-row {\n flex-direction: row;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-start {\n align-items: flex-start;\n}\n\n.items-end {\n align-items: flex-end;\n}\n\n.items-center {\n align-items: center;\n}\n\n.items-stretch {\n align-items: stretch;\n}\n\n.justify-end {\n justify-content: flex-end;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-0 {\n gap: 0;\n}\n\n.gap-0\\.5 {\n gap: .125rem;\n}\n\n.gap-1 {\n gap: .25rem;\n}\n\n.gap-1\\.5 {\n gap: .375rem;\n}\n\n.gap-12 {\n gap: 3rem;\n}\n\n.gap-2 {\n gap: .5rem;\n}\n\n.gap-2\\.5 {\n gap: .625rem;\n}\n\n.gap-3 {\n gap: .75rem;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.gap-6 {\n gap: 1.5rem;\n}\n\n.gap-8 {\n gap: 2rem;\n}\n\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(.25rem * var(--tw-space-x-reverse));\n margin-left: calc(.25rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n}\n\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(.25rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(.375rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-5 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.self-center {\n align-self: center;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-visible {\n overflow: visible;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.whitespace-nowrap {\n white-space: nowrap;\n}\n\n.whitespace-pre-line {\n white-space: pre-line;\n}\n\n.rounded {\n border-radius: .25rem;\n}\n\n.rounded-2xl {\n border-radius: 1rem;\n}\n\n.rounded-\\[10px\\] {\n border-radius: 10px;\n}\n\n.rounded-\\[3px\\] {\n border-radius: 3px;\n}\n\n.rounded-\\[4px\\] {\n border-radius: 4px;\n}\n\n.rounded-\\[6px\\] {\n border-radius: 6px;\n}\n\n.rounded-\\[8px\\] {\n border-radius: 8px;\n}\n\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-lg {\n border-radius: .5rem;\n}\n\n.rounded-md {\n border-radius: .375rem;\n}\n\n.rounded-xl {\n border-radius: .75rem;\n}\n\n.rounded-b-3xl {\n border-bottom-right-radius: 1.5rem;\n border-bottom-left-radius: 1.5rem;\n}\n\n.rounded-t-3xl {\n border-top-left-radius: 1.5rem;\n border-top-right-radius: 1.5rem;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-b {\n border-bottom-width: 1px;\n}\n\n.border-l {\n border-left-width: 1px;\n}\n\n.border-r {\n border-right-width: 1px;\n}\n\n.border-t {\n border-top-width: 1px;\n}\n\n.border-amber-700 {\n border-color: rgb(var(--color-amber-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-blue-700 {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-1000 {\n border-color: rgb(var(--color-gray-1000) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-200 {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-600 {\n border-color: rgb(var(--color-gray-600) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-red-700 {\n border-color: rgb(var(--color-red-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-white\\/10 {\n border-color: #ffffff1a;\n}\n\n.bg-\\[\\#292929\\] {\n background-color: rgb(41 41 41 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-100 {\n background-color: rgb(var(--color-amber-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-200 {\n background-color: rgb(var(--color-amber-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-700 {\n background-color: rgb(var(--color-amber-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-black\\/25 {\n background-color: #00000040;\n}\n\n.bg-black\\/60 {\n background-color: #0009;\n}\n\n.bg-blue-100 {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-blue-300 {\n background-color: rgb(var(--color-blue-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-blue-700 {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-bronze-300 {\n background-color: rgb(var(--color-bronze-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-100 {\n background-color: rgb(var(--color-brown-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-300 {\n background-color: rgb(var(--color-brown-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-700 {\n background-color: rgb(var(--color-brown-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-100 {\n background-color: rgb(var(--color-crimson-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-300 {\n background-color: rgb(var(--color-crimson-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-700 {\n background-color: rgb(var(--color-crimson-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-100 {\n background-color: rgb(var(--color-cyan-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-300 {\n background-color: rgb(var(--color-cyan-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-700 {\n background-color: rgb(var(--color-cyan-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gold-300 {\n background-color: rgb(var(--color-gold-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-grass-300 {\n background-color: rgb(var(--color-grass-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-1000 {\n background-color: rgb(var(--color-gray-1000) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-1000\\/25 {\n background-color: rgb(var(--color-gray-1000) / .25);\n}\n\n.bg-gray-1000\\/80 {\n background-color: rgb(var(--color-gray-1000) / .8);\n}\n\n.bg-gray-200 {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-25 {\n background-color: rgb(var(--color-gray-25) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-25\\/50 {\n background-color: rgb(var(--color-gray-25) / .5);\n}\n\n.bg-gray-300 {\n background-color: rgb(var(--color-gray-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-600 {\n background-color: rgb(var(--color-gray-600) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-900 {\n background-color: rgb(var(--color-gray-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-100 {\n background-color: rgb(var(--color-green-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-300 {\n background-color: rgb(var(--color-green-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-700 {\n background-color: rgb(var(--color-green-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-indigo-300 {\n background-color: rgb(var(--color-indigo-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-lime-300 {\n background-color: rgb(var(--color-lime-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-orange-100 {\n background-color: rgb(var(--color-orange-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-orange-700 {\n background-color: rgb(var(--color-orange-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-plum-300 {\n background-color: rgb(var(--color-plum-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-purple-300 {\n background-color: rgb(var(--color-purple-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-100 {\n background-color: rgb(var(--color-red-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-300 {\n background-color: rgb(var(--color-red-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-700 {\n background-color: rgb(var(--color-red-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-700\\/60 {\n background-color: rgb(var(--color-red-700) / .6);\n}\n\n.bg-teal-100 {\n background-color: rgb(var(--color-teal-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-teal-300 {\n background-color: rgb(var(--color-teal-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-teal-700 {\n background-color: rgb(var(--color-teal-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-transparent {\n background-color: #0000;\n}\n\n.bg-violet-100 {\n background-color: rgb(var(--color-violet-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-violet-300 {\n background-color: rgb(var(--color-violet-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-violet-700 {\n background-color: rgb(var(--color-violet-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-white {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-yellow-300 {\n background-color: rgb(var(--color-yellow-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cover {\n background-size: cover;\n}\n\n.bg-center {\n background-position: center;\n}\n\n.object-contain {\n object-fit: contain;\n}\n\n.object-cover {\n object-fit: cover;\n}\n\n.p-0 {\n padding: 0;\n}\n\n.p-1 {\n padding: .25rem;\n}\n\n.p-1\\.5 {\n padding: .375rem;\n}\n\n.p-2 {\n padding: .5rem;\n}\n\n.p-2\\.5 {\n padding: .625rem;\n}\n\n.p-3 {\n padding: .75rem;\n}\n\n.p-4 {\n padding: 1rem;\n}\n\n.p-5 {\n padding: 1.25rem;\n}\n\n.p-6 {\n padding: 1.5rem;\n}\n\n.p-8 {\n padding: 2rem;\n}\n\n.p-\\[11px\\] {\n padding: 11px;\n}\n\n.px-2 {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.px-2\\.5 {\n padding-left: .625rem;\n padding-right: .625rem;\n}\n\n.px-3 {\n padding-left: .75rem;\n padding-right: .75rem;\n}\n\n.px-3\\.5 {\n padding-left: .875rem;\n padding-right: .875rem;\n}\n\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.py-0\\.5 {\n padding-top: .125rem;\n padding-bottom: .125rem;\n}\n\n.py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n.py-1\\.5 {\n padding-top: .375rem;\n padding-bottom: .375rem;\n}\n\n.py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n.py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.py-2\\.5 {\n padding-top: .625rem;\n padding-bottom: .625rem;\n}\n\n.py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.pb-2 {\n padding-bottom: .5rem;\n}\n\n.pb-\\[9px\\] {\n padding-bottom: 9px;\n}\n\n.pl-2 {\n padding-left: .5rem;\n}\n\n.pl-4 {\n padding-left: 1rem;\n}\n\n.pr-2 {\n padding-right: .5rem;\n}\n\n.pt-1 {\n padding-top: .25rem;\n}\n\n.pt-10 {\n padding-top: 2.5rem;\n}\n\n.pt-4 {\n padding-top: 1rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.align-middle {\n vertical-align: middle;\n}\n\n.text-2xl {\n letter-spacing: -.02em;\n font-size: 24px;\n line-height: 32px;\n}\n\n.text-3xl {\n letter-spacing: -.02em;\n font-size: 30px;\n line-height: 38px;\n}\n\n.text-\\[10px\\] {\n font-size: 10px;\n}\n\n.text-\\[112px\\] {\n font-size: 112px;\n}\n\n.text-\\[30px\\] {\n font-size: 30px;\n}\n\n.text-lg {\n letter-spacing: -.02em;\n font-size: 18px;\n line-height: 22px;\n}\n\n.text-md {\n letter-spacing: -.02em;\n font-size: 16px;\n line-height: 20px;\n}\n\n.text-sm {\n letter-spacing: -.02em;\n font-size: 14px;\n line-height: 20px;\n}\n\n.text-xs {\n letter-spacing: -.02em;\n font-size: 12px;\n line-height: 16px;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.font-normal {\n font-weight: 400;\n}\n\n.font-semibold {\n font-weight: 600;\n}\n\n.leading-none {\n line-height: 1;\n}\n\n.text-\\[\\#707070\\] {\n color: rgb(112 112 112 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-amber-700 {\n color: rgb(var(--color-amber-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-blue-700 {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-bronze-700 {\n color: rgb(var(--color-bronze-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-brown-700 {\n color: rgb(var(--color-brown-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-crimson-700 {\n color: rgb(var(--color-crimson-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-current {\n color: currentColor;\n}\n\n.text-cyan-700 {\n color: rgb(var(--color-cyan-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gold-700 {\n color: rgb(var(--color-gold-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-grass-700 {\n color: rgb(var(--color-grass-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-1000 {\n color: rgb(var(--color-gray-1000) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-700 {\n color: rgb(var(--color-gray-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-900 {\n color: rgb(var(--color-gray-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-green-700 {\n color: rgb(var(--color-green-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-indigo-700 {\n color: rgb(var(--color-indigo-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-lime-700 {\n color: rgb(var(--color-lime-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-orange-700 {\n color: rgb(var(--color-orange-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-plum-700 {\n color: rgb(var(--color-plum-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-primary {\n color: rgb(29 28 32 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-purple-700 {\n color: rgb(var(--color-purple-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-red-700 {\n color: rgb(var(--color-red-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-teal-700 {\n color: rgb(var(--color-teal-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-violet-700 {\n color: rgb(var(--color-violet-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-white {\n color: rgb(255 255 255 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-white\\/80 {\n color: #fffc;\n}\n\n.text-yellow-700 {\n color: rgb(var(--color-yellow-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.underline {\n text-decoration-line: underline;\n}\n\n.underline-offset-8 {\n text-underline-offset: 8px;\n}\n\n.antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.opacity-50 {\n opacity: .5;\n}\n\n.shadow-dropdown-sm {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0px 1px 2px 0px #1018280f, 0px 1px 3px 0px #1018281a;\n --tw-shadow-colored: 0px 1px 2px 0px var(--tw-shadow-color), 0px 1px 3px 0px var(--tw-shadow-color);\n}\n\n.shadow-lg {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n}\n\n.shadow-md {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n}\n\n.shadow-sm {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 1px 2px 0 #0000000d;\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n}\n\n.outline-none {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.outline {\n outline-style: solid;\n}\n\n.ring-1 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-2 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-4 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-\\[3px\\] {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-inset {\n --tw-ring-inset: inset;\n}\n\n.ring-amber-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-amber-300) / var(--tw-ring-opacity));\n}\n\n.ring-blue-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-300) / var(--tw-ring-opacity));\n}\n\n.ring-blue-700 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-700) / var(--tw-ring-opacity));\n}\n\n.ring-brown-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-brown-300) / var(--tw-ring-opacity));\n}\n\n.ring-crimson-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-crimson-300) / var(--tw-ring-opacity));\n}\n\n.ring-cyan-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-cyan-300) / var(--tw-ring-opacity));\n}\n\n.ring-gray-200 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-gray-200) / var(--tw-ring-opacity));\n}\n\n.ring-green-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-green-300) / var(--tw-ring-opacity));\n}\n\n.ring-orange-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-orange-300) / var(--tw-ring-opacity));\n}\n\n.ring-red-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-300) / var(--tw-ring-opacity));\n}\n\n.ring-teal-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-teal-300) / var(--tw-ring-opacity));\n}\n\n.ring-violet-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-violet-300) / var(--tw-ring-opacity));\n}\n\n.ring-white {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity));\n}\n\n.ring-white\\/20 {\n --tw-ring-color: #fff3;\n}\n\n.ring-offset-0 {\n --tw-ring-offset-width: 0px;\n}\n\n.ring-offset-white {\n --tw-ring-offset-color: #fff;\n}\n\n.blur {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n --tw-blur: blur(8px);\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.backdrop-blur-\\[30px\\] {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(30px);\n}\n\n.backdrop-blur-lg {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(16px);\n}\n\n.backdrop-blur-sm {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(4px);\n}\n\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-all {\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-transform {\n transition-property: transform;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.duration-200 {\n transition-duration: .2s;\n}\n\n.duration-500 {\n transition-duration: .5s;\n}\n\n.duration-700 {\n transition-duration: .7s;\n}\n\n.ease-in-out {\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.ease-linear {\n transition-timing-function: linear;\n}\n\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, .2, 1);\n}\n\n.will-change-transform {\n will-change: transform;\n}\n\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n.animate-in {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n}\n\n.fade-in, .fade-in-0 {\n --tw-enter-opacity: 0;\n}\n\n.fade-out {\n --tw-exit-opacity: 0;\n}\n\n.zoom-in-95 {\n --tw-enter-scale: .95;\n}\n\n.duration-200 {\n animation-duration: .2s;\n}\n\n.duration-500 {\n animation-duration: .5s;\n}\n\n.duration-700 {\n animation-duration: .7s;\n}\n\n.ease-in-out {\n animation-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.ease-linear {\n animation-timing-function: linear;\n}\n\n.ease-out {\n animation-timing-function: cubic-bezier(0, 0, .2, 1);\n}\n\n.paused {\n animation-play-state: paused;\n}\n\n.inter {\n font-family: Inter, sans-serif;\n}\n\n@supports (font-variation-settings: normal) {\n .inter {\n font-family: Inter var, sans-serif;\n }\n}\n\n.pulse-red-700 {\n animation: 2s infinite pulse-red-700;\n transform: scale(1);\n box-shadow: 0 0 #e5484d;\n}\n\n@keyframes pulse-red-700 {\n 0% {\n transform: scale(.95);\n box-shadow: 0 0 #e5484db3;\n }\n\n 70% {\n transform: scale(1);\n box-shadow: 0 0 0 6px #e5484d00;\n }\n\n 100% {\n transform: scale(.95);\n box-shadow: 0 0 #e5484d00;\n }\n}\n\n.placeholder\\:text-gray-700::placeholder {\n color: rgb(var(--color-gray-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.placeholder\\:text-gray-900::placeholder {\n color: rgb(var(--color-gray-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.focus-within\\:relative:focus-within {\n position: relative;\n}\n\n.focus-within\\:z-20:focus-within {\n z-index: 20;\n}\n\n.focus-within\\:border-gray-200:focus-within {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.focus-within\\:bg-gray-100:focus-within {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.focus-within\\:outline:focus-within {\n outline-style: solid;\n}\n\n.focus-within\\:outline-\\[2px\\]:focus-within {\n outline-width: 2px;\n}\n\n.focus-within\\:outline-offset-\\[2px\\]:focus-within {\n outline-offset: 2px;\n}\n\n.focus-within\\:outline-blue-300:focus-within {\n outline-color: rgb(var(--color-blue-300) / 1);\n}\n\n.focus-within\\:outline-red-700:focus-within {\n outline-color: rgb(var(--color-red-700) / 1);\n}\n\n.hover\\:bg-black\\/10:hover {\n background-color: #0000001a;\n}\n\n.hover\\:bg-blue-100:hover {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-50:hover {\n background-color: rgb(var(--color-blue-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-700:hover {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-800:hover {\n background-color: rgb(var(--color-blue-800) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-100:hover {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-200:hover {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-25\\/60:hover {\n background-color: rgb(var(--color-gray-25) / .6);\n}\n\n.hover\\:bg-gray-50:hover {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-red-100:hover {\n background-color: rgb(var(--color-red-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-red-800:hover {\n background-color: rgb(var(--color-red-800) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:text-blue-700:hover {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.hover\\:text-white:hover {\n color: rgb(255 255 255 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n\n.focus\\:bg-gray-100:focus {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.focus\\:outline-none:focus {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.focus\\:ring-1:focus {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus\\:ring-2:focus {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n\n.focus-visible\\:outline-none:focus-visible {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.focus-visible\\:ring-2:focus-visible {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus-visible\\:ring-blue-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-blue-300:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-300) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-blue-700:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-700) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-gray-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-gray-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-red-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-red-700:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-700) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n\n.active\\:bg-blue-200:active {\n background-color: rgb(var(--color-blue-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-blue-900:active {\n background-color: rgb(var(--color-blue-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-100:active {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-200:active {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-25\\/70:active {\n background-color: rgb(var(--color-gray-25) / .7);\n}\n\n.active\\:bg-gray-500:active {\n background-color: rgb(var(--color-gray-500) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-red-200:active {\n background-color: rgb(var(--color-red-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-red-900:active {\n background-color: rgb(var(--color-red-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:text-blue-700:active {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.active\\:text-blue-900:active {\n color: rgb(var(--color-blue-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n\n.disabled\\:opacity-40:disabled {\n opacity: .4;\n}\n\n.disabled\\:opacity-50:disabled {\n opacity: .5;\n}\n\n.group:focus-within .group-focus-within\\:bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group:hover .group-hover\\:bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group:active .group-active\\:bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.peer:disabled ~ .peer-disabled\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.peer:disabled ~ .peer-disabled\\:opacity-70 {\n opacity: .7;\n}\n\n.aria-selected\\:bg-blue-100[aria-selected=\"true\"] {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.aria-selected\\:text-blue-700[aria-selected=\"true\"] {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.aria-selected\\:opacity-100[aria-selected=\"true\"] {\n opacity: 1;\n}\n\n.data-\\[disabled\\]\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n\n.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=\"bottom\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: .25rem;\n}\n\n.data-\\[side\\=left\\]\\:-translate-x-1[data-side=\"left\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -.25rem;\n}\n\n.data-\\[side\\=right\\]\\:translate-x-1[data-side=\"right\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: .25rem;\n}\n\n.data-\\[side\\=top\\]\\:-translate-y-1[data-side=\"top\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -.25rem;\n}\n\n.data-\\[state\\=checked\\]\\:translate-x-5[data-state=\"checked\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 1.25rem;\n}\n\n.data-\\[swipe\\=cancel\\]\\:translate-x-0[data-swipe=\"cancel\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 0px;\n}\n\n.data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\][data-swipe=\"end\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n}\n\n.data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\][data-swipe=\"move\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n}\n\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n\n to {\n height: 0;\n }\n}\n\n.data-\\[state\\=closed\\]\\:animate-accordion-up[data-state=\"closed\"] {\n animation: .2s ease-out accordion-up;\n}\n\n@keyframes accordion-down {\n from {\n height: 0;\n }\n\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n\n.data-\\[state\\=open\\]\\:animate-accordion-down[data-state=\"open\"] {\n animation: .2s ease-out accordion-down;\n}\n\n.data-\\[disabled\\]\\:cursor-not-allowed[data-disabled] {\n cursor: not-allowed;\n}\n\n.data-\\[state\\=checked\\]\\:border-blue-700[data-state=\"checked\"], .data-\\[state\\=on\\]\\:border-blue-700[data-state=\"on\"] {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.data-\\[disabled\\]\\:data-\\[state\\=unchecked\\]\\:bg-gray-300[data-state=\"unchecked\"][data-disabled] {\n background-color: rgb(var(--color-gray-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[selected\\=true\\]\\:bg-gray-50[data-selected=\"true\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-amber-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-amber-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-blue-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-bronze-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-bronze-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-brown-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-brown-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-crimson-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-crimson-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-cyan-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-cyan-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-gold-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-gold-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-grass-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-grass-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-gray-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-gray-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-green-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-green-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-indigo-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-indigo-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-lime-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-lime-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-plum-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-plum-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-purple-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-purple-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-red-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-red-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-teal-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-teal-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-violet-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-violet-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-yellow-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-yellow-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:bg-white[data-state=\"active\"] {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-blue-700[data-state=\"checked\"] {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-gray-50[data-state=\"checked\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-white[data-state=\"checked\"] {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=selected\\]\\:bg-gray-50[data-state=\"selected\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:text-blue-700[data-state=\"active\"] {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:text-gray-25[data-state=\"active\"] {\n color: rgb(var(--color-gray-25) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.data-\\[disabled\\]\\:opacity-40[data-disabled] {\n opacity: .4;\n}\n\n.data-\\[disabled\\]\\:opacity-50[data-disabled] {\n opacity: .5;\n}\n\n.data-\\[state\\=active\\]\\:shadow-sm[data-state=\"active\"] {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 1px 2px 0 #0000000d;\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n}\n\n.data-\\[swipe\\=move\\]\\:transition-none[data-swipe=\"move\"] {\n transition-property: none;\n}\n\n.data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n transition-duration: .3s;\n}\n\n.data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n transition-duration: .5s;\n}\n\n.data-\\[state\\=open\\]\\:animate-in[data-state=\"open\"] {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n}\n\n.data-\\[state\\=closed\\]\\:animate-out[data-state=\"closed\"], .data-\\[swipe\\=end\\]\\:animate-out[data-swipe=\"end\"] {\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n animation-name: exit;\n animation-duration: .15s;\n}\n\n.data-\\[state\\=closed\\]\\:fade-out[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:fade-out-0[data-state=\"closed\"] {\n --tw-exit-opacity: 0;\n}\n\n.data-\\[state\\=closed\\]\\:fade-out-80[data-state=\"closed\"] {\n --tw-exit-opacity: .8;\n}\n\n.data-\\[state\\=open\\]\\:fade-in-0[data-state=\"open\"] {\n --tw-enter-opacity: 0;\n}\n\n.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=\"closed\"] {\n --tw-exit-scale: .95;\n}\n\n.data-\\[state\\=open\\]\\:zoom-in-95[data-state=\"open\"] {\n --tw-enter-scale: .95;\n}\n\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=\"bottom\"] {\n --tw-enter-translate-y: -.5rem;\n}\n\n.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=\"left\"] {\n --tw-enter-translate-x: .5rem;\n}\n\n.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=\"right\"] {\n --tw-enter-translate-x: -.5rem;\n}\n\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=\"top\"] {\n --tw-enter-translate-y: .5rem;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:slide-out-to-bottom-\\[100\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-y: 100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-left[data-state=\"closed\"] {\n --tw-exit-translate-x: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:slide-out-to-left-\\[50\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-x: -50%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-right[data-state=\"closed\"] {\n --tw-exit-translate-x: 100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-top[data-state=\"closed\"] {\n --tw-exit-translate-y: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-y: -48%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-bottom-\\[100\\%\\][data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-left[data-state=\"open\"] {\n --tw-enter-translate-x: -100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-left-\\[50\\%\\][data-state=\"open\"] {\n --tw-enter-translate-x: -50%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-right[data-state=\"open\"] {\n --tw-enter-translate-x: 100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state=\"open\"] {\n --tw-enter-translate-y: -48%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top-full[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n animation-duration: .3s;\n}\n\n.data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n animation-duration: .5s;\n}\n\n.group[data-state=\"open\"] .group-data-\\[state\\=open\\]\\:rotate-180 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-rotate: 180deg;\n}\n\n.group[data-disabled] .group-data-\\[disabled\\]\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.group[data-state=\"on\"] .group-data-\\[state\\=on\\]\\:border-blue-700 {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.group[data-state=\"checked\"] .group-data-\\[state\\=checked\\]\\:bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group[data-state=\"off\"] .group-data-\\[state\\=off\\]\\:bg-transparent {\n background-color: #0000;\n}\n\n.group[data-state=\"off\"] .group-data-\\[state\\=off\\]\\:text-transparent {\n color: #0000;\n}\n\n.group[data-disabled] .group-data-\\[disabled\\]\\:opacity-50 {\n opacity: .5;\n}\n\n@media not all and (width >= 1024px) {\n .max-lg\\:mt-8 {\n margin-top: 2rem;\n }\n\n .max-lg\\:hidden {\n display: none;\n }\n\n .max-lg\\:h-\\[250px\\] {\n height: 250px;\n }\n\n .max-lg\\:w-full {\n width: 100%;\n }\n\n .max-lg\\:flex-col {\n flex-direction: column;\n }\n}\n\n@media not all and (width >= 640px) {\n .max-sm\\:gap-4 {\n gap: 1rem;\n }\n\n .max-sm\\:p-4 {\n padding: 1rem;\n }\n}\n\n@media (width >= 640px) {\n .sm\\:mt-0 {\n margin-top: 0;\n }\n\n .sm\\:w-1\\/2 {\n width: 50%;\n }\n\n .sm\\:max-w-sm {\n max-width: 24rem;\n }\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:flex-col {\n flex-direction: column;\n }\n\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n\n .sm\\:justify-center {\n justify-content: center;\n }\n\n .sm\\:space-x-2 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(.5rem * var(--tw-space-x-reverse));\n margin-left: calc(.5rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n }\n\n .sm\\:space-x-4 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(1rem * var(--tw-space-x-reverse));\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n }\n\n .sm\\:space-y-0 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0px * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n }\n\n .data-\\[state\\=open\\]\\:sm\\:slide-in-from-bottom-full[data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n}\n\n@media (width >= 768px) {\n .md\\:w-\\[334px\\] {\n width: 334px;\n }\n\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:w-screen {\n width: 100vw;\n }\n\n .md\\:max-w-\\[420px\\] {\n max-width: 420px;\n }\n\n .md\\:gap-4 {\n gap: 1rem;\n }\n}\n\n@media (width >= 1024px) {\n .lg\\:flex-col {\n flex-direction: column;\n }\n\n .lg\\:items-center {\n align-items: center;\n }\n\n .lg\\:gap-2 {\n gap: .5rem;\n }\n\n .lg\\:gap-8 {\n gap: 2rem;\n }\n\n .lg\\:rounded-lg {\n border-radius: .5rem;\n }\n\n .lg\\:border {\n border-width: 1px;\n }\n\n .lg\\:border-gray-200 {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n }\n\n .lg\\:bg-pattern {\n background-image: radial-gradient(50% 50%, #006aff33 0%, #006aff00 100%), linear-gradient(#0000 0%, #fff 100%), linear-gradient(0deg, #0000 0%, #ffffffbf 100%), url(\"data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M40 40V41H41V40H40ZM39 0V40H41V0H39ZM40 39H0V41H40V39Z' fill='%23E8E8E8' mask='url(%23path-1-inside-1_124_242)'/%3E%3C/svg%3E\");\n }\n\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n\n .lg\\:text-center {\n text-align: center;\n }\n\n .lg\\:text-4xl {\n letter-spacing: -.02em;\n font-size: 36px;\n line-height: 44px;\n }\n}\n\n@media (width >= 1280px) {\n .xl\\:rounded-none {\n border-radius: 0;\n }\n}\n\n.\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:bg-blue-100:has([aria-selected]) {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.first\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-l-md:has([aria-selected]):first-child {\n border-top-left-radius: .375rem;\n border-bottom-left-radius: .375rem;\n}\n\n.last\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-r-md:has([aria-selected]):last-child {\n border-top-right-radius: .375rem;\n border-bottom-right-radius: .375rem;\n}\n\n.\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0:has([role=\"checkbox\"]) {\n padding-right: 0;\n}\n\n.\\[\\&\\:not\\(\\[aria-selected\\]\\)\\]\\:hover\\:bg-gray-100:hover:not([aria-selected]) {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&\\>\\*\\]\\:fill-white > * {\n fill: #fff;\n}\n\n.\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] > [role=\"checkbox\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: 2px;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 [cmdk-group-heading] {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 [cmdk-group-heading] {\n padding-top: .375rem;\n padding-bottom: .375rem;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-sm [cmdk-group-heading] {\n letter-spacing: -.02em;\n font-size: 14px;\n line-height: 20px;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium [cmdk-group-heading] {\n font-weight: 500;\n}\n\n.\\[\\&_tr\\:active\\]\\:bg-gray-50 tr:active, .\\[\\&_tr\\:hover\\:active\\]\\:bg-gray-50 tr:hover:active {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&_tr\\:hover\\]\\:bg-gray-25 tr:hover {\n background-color: rgb(var(--color-gray-25) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&_tr\\:last-child\\]\\:border-0 tr:last-child {\n border-width: 0;\n}\n\n.\\[\\&_tr\\]\\:border-b tr {\n border-bottom-width: 1px;\n}\n";
|
|
14644
|
+
$1e2747ca72d0ab49$exports = "*, :before, :after, ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #93c5fd80;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n.container {\n width: 100%;\n}\n\n@media (width >= 640px) {\n .container {\n max-width: 640px;\n }\n}\n\n@media (width >= 768px) {\n .container {\n max-width: 768px;\n }\n}\n\n@media (width >= 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n\n@media (width >= 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n\n@media (width >= 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n\n.sr-only {\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden;\n}\n\n.pointer-events-auto {\n pointer-events: auto;\n}\n\n.visible {\n visibility: visible;\n}\n\n.invisible {\n visibility: hidden;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.inset-0 {\n inset: 0;\n}\n\n.inset-x-0 {\n left: 0;\n right: 0;\n}\n\n.inset-y-0 {\n top: 0;\n bottom: 0;\n}\n\n.-bottom-12 {\n bottom: -3rem;\n}\n\n.-left-12 {\n left: -3rem;\n}\n\n.-right-12 {\n right: -3rem;\n}\n\n.-top-12 {\n top: -3rem;\n}\n\n.bottom-0 {\n bottom: 0;\n}\n\n.bottom-2 {\n bottom: .5rem;\n}\n\n.left-0 {\n left: 0;\n}\n\n.left-1 {\n left: .25rem;\n}\n\n.left-1\\/2 {\n left: 50%;\n}\n\n.left-2 {\n left: .5rem;\n}\n\n.left-\\[50\\%\\] {\n left: 50%;\n}\n\n.right-0 {\n right: 0;\n}\n\n.right-1 {\n right: .25rem;\n}\n\n.right-2 {\n right: .5rem;\n}\n\n.right-6 {\n right: 1.5rem;\n}\n\n.top-0 {\n top: 0;\n}\n\n.top-1\\/2 {\n top: 50%;\n}\n\n.top-2 {\n top: .5rem;\n}\n\n.top-6 {\n top: 1.5rem;\n}\n\n.top-8 {\n top: 2rem;\n}\n\n.top-\\[50\\%\\] {\n top: 50%;\n}\n\n.top-auto {\n top: auto;\n}\n\n.z-40 {\n z-index: 40;\n}\n\n.z-50 {\n z-index: 50;\n}\n\n.z-\\[100\\] {\n z-index: 100;\n}\n\n.z-\\[150\\] {\n z-index: 150;\n}\n\n.-mx-1 {\n margin-left: -.25rem;\n margin-right: -.25rem;\n}\n\n.mx-1 {\n margin-left: .25rem;\n margin-right: .25rem;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.my-1 {\n margin-top: .25rem;\n margin-bottom: .25rem;\n}\n\n.-ml-4 {\n margin-left: -1rem;\n}\n\n.-mr-2 {\n margin-right: -.5rem;\n}\n\n.-mt-4 {\n margin-top: -1rem;\n}\n\n.mb-2 {\n margin-bottom: .5rem;\n}\n\n.mb-4 {\n margin-bottom: 1rem;\n}\n\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.mb-\\[9px\\] {\n margin-bottom: 9px;\n}\n\n.ml-1 {\n margin-left: .25rem;\n}\n\n.mr-2 {\n margin-right: .5rem;\n}\n\n.mr-2\\.5 {\n margin-right: .625rem;\n}\n\n.mr-9 {\n margin-right: 2.25rem;\n}\n\n.mt-1 {\n margin-top: .25rem;\n}\n\n.mt-2 {\n margin-top: .5rem;\n}\n\n.box-border {\n box-sizing: border-box;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.inline {\n display: inline;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.table {\n display: table;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.aspect-square {\n aspect-ratio: 1;\n}\n\n.h-1\\/3 {\n height: 33.3333%;\n}\n\n.h-10 {\n height: 2.5rem;\n}\n\n.h-12 {\n height: 3rem;\n}\n\n.h-14 {\n height: 3.5rem;\n}\n\n.h-16 {\n height: 4rem;\n}\n\n.h-2 {\n height: .5rem;\n}\n\n.h-3 {\n height: .75rem;\n}\n\n.h-4 {\n height: 1rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.h-9 {\n height: 2.25rem;\n}\n\n.h-\\[100px\\] {\n height: 100px;\n}\n\n.h-\\[16px\\] {\n height: 16px;\n}\n\n.h-\\[1px\\] {\n height: 1px;\n}\n\n.h-\\[200px\\] {\n height: 200px;\n}\n\n.h-\\[24px\\] {\n height: 24px;\n}\n\n.h-\\[36px\\] {\n height: 36px;\n}\n\n.h-\\[400px\\] {\n height: 400px;\n}\n\n.h-\\[45px\\] {\n height: 45px;\n}\n\n.h-\\[54px\\] {\n height: 54px;\n}\n\n.h-\\[70px\\] {\n height: 70px;\n}\n\n.h-\\[72px\\] {\n height: 72px;\n}\n\n.h-\\[8px\\] {\n height: 8px;\n}\n\n.h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n}\n\n.h-full {\n height: 100%;\n}\n\n.h-px {\n height: 1px;\n}\n\n.h-screen {\n height: 100vh;\n}\n\n.max-h-\\[180px\\] {\n max-height: 180px;\n}\n\n.max-h-\\[300px\\] {\n max-height: 300px;\n}\n\n.max-h-\\[70px\\] {\n max-height: 70px;\n}\n\n.max-h-\\[90\\%\\] {\n max-height: 90%;\n}\n\n.max-h-\\[90vh\\] {\n max-height: 90vh;\n}\n\n.max-h-screen {\n max-height: 100vh;\n}\n\n.min-h-0 {\n min-height: 0;\n}\n\n.min-h-9 {\n min-height: 2.25rem;\n}\n\n.min-h-\\[20px\\] {\n min-height: 20px;\n}\n\n.min-h-\\[80px\\] {\n min-height: 80px;\n}\n\n.w-1\\/3 {\n width: 33.3333%;\n}\n\n.w-10 {\n width: 2.5rem;\n}\n\n.w-12 {\n width: 3rem;\n}\n\n.w-16 {\n width: 4rem;\n}\n\n.w-2 {\n width: .5rem;\n}\n\n.w-3 {\n width: .75rem;\n}\n\n.w-3\\/4 {\n width: 75%;\n}\n\n.w-4 {\n width: 1rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-72 {\n width: 18rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.w-\\[100px\\] {\n width: 100px;\n}\n\n.w-\\[16px\\] {\n width: 16px;\n}\n\n.w-\\[24px\\] {\n width: 24px;\n}\n\n.w-\\[334px\\] {\n width: 334px;\n}\n\n.w-\\[36px\\] {\n width: 36px;\n}\n\n.w-\\[400px\\] {\n width: 400px;\n}\n\n.w-\\[42px\\] {\n width: 42px;\n}\n\n.w-\\[45px\\] {\n width: 45px;\n}\n\n.w-\\[54px\\] {\n width: 54px;\n}\n\n.w-\\[70px\\] {\n width: 70px;\n}\n\n.w-\\[72px\\] {\n width: 72px;\n}\n\n.w-\\[8px\\] {\n width: 8px;\n}\n\n.w-auto {\n width: auto;\n}\n\n.w-full {\n width: 100%;\n}\n\n.w-max {\n width: max-content;\n}\n\n.min-w-0 {\n min-width: 0;\n}\n\n.min-w-\\[144px\\] {\n min-width: 144px;\n}\n\n.min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n}\n\n.min-w-full {\n min-width: 100%;\n}\n\n.max-w-\\[315px\\] {\n max-width: 315px;\n}\n\n.max-w-\\[400px\\] {\n max-width: 400px;\n}\n\n.max-w-\\[500px\\] {\n max-width: 500px;\n}\n\n.max-w-\\[70px\\] {\n max-width: 70px;\n}\n\n.max-w-\\[800px\\] {\n max-width: 800px;\n}\n\n.max-w-\\[90\\%\\] {\n max-width: 90%;\n}\n\n.max-w-\\[90vw\\] {\n max-width: 90vw;\n}\n\n.max-w-full {\n max-width: 100%;\n}\n\n.flex-1 {\n flex: 1;\n}\n\n.flex-shrink-0, .shrink-0 {\n flex-shrink: 0;\n}\n\n.flex-grow, .grow {\n flex-grow: 1;\n}\n\n.grow-0 {\n flex-grow: 0;\n}\n\n.basis-full {\n flex-basis: 100%;\n}\n\n.caption-bottom {\n caption-side: bottom;\n}\n\n.border-collapse {\n border-collapse: collapse;\n}\n\n.-translate-x-1\\/2 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -50%;\n}\n\n.-translate-y-1\\/2 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -50%;\n}\n\n.translate-x-0 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 0px;\n}\n\n.translate-x-0\\.5 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: .125rem;\n}\n\n.translate-x-\\[-50\\%\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -50%;\n}\n\n.translate-y-0 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: 0px;\n}\n\n.translate-y-\\[-50\\%\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -50%;\n}\n\n.-scale-x-\\[1\\], .scale-x-\\[-1\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-scale-x: -1;\n}\n\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n.animate-pulse {\n animation: 2s cubic-bezier(.4, 0, .6, 1) infinite pulse;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.animate-spin {\n animation: 1s linear infinite spin;\n}\n\n.cursor-default {\n cursor: default;\n}\n\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.select-none {\n -webkit-user-select: none;\n user-select: none;\n}\n\n.resize {\n resize: both;\n}\n\n.appearance-none {\n appearance: none;\n}\n\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.flex-row {\n flex-direction: row;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-start {\n align-items: flex-start;\n}\n\n.items-end {\n align-items: flex-end;\n}\n\n.items-center {\n align-items: center;\n}\n\n.items-stretch {\n align-items: stretch;\n}\n\n.justify-end {\n justify-content: flex-end;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-0 {\n gap: 0;\n}\n\n.gap-0\\.5 {\n gap: .125rem;\n}\n\n.gap-1 {\n gap: .25rem;\n}\n\n.gap-1\\.5 {\n gap: .375rem;\n}\n\n.gap-12 {\n gap: 3rem;\n}\n\n.gap-2 {\n gap: .5rem;\n}\n\n.gap-2\\.5 {\n gap: .625rem;\n}\n\n.gap-3 {\n gap: .75rem;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.gap-6 {\n gap: 1.5rem;\n}\n\n.gap-8 {\n gap: 2rem;\n}\n\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(.25rem * var(--tw-space-x-reverse));\n margin-left: calc(.25rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n}\n\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(.25rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(.375rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-5 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.divide-x > :not([hidden]) ~ :not([hidden]) {\n border-right-width: calc(1px * var(--tw-divide-x-reverse));\n border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));\n --tw-divide-x-reverse: 0;\n}\n\n.divide-y > :not([hidden]) ~ :not([hidden]) {\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n --tw-divide-y-reverse: 0;\n}\n\n.divide-gray-200 > :not([hidden]) ~ :not([hidden]) {\n border-color: rgb(var(--color-gray-200) / var(--tw-divide-opacity));\n --tw-divide-opacity: 1;\n}\n\n.self-center {\n align-self: center;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-visible {\n overflow: visible;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.whitespace-nowrap {\n white-space: nowrap;\n}\n\n.whitespace-pre-line {\n white-space: pre-line;\n}\n\n.rounded {\n border-radius: .25rem;\n}\n\n.rounded-2xl {\n border-radius: 1rem;\n}\n\n.rounded-\\[10px\\] {\n border-radius: 10px;\n}\n\n.rounded-\\[3px\\] {\n border-radius: 3px;\n}\n\n.rounded-\\[4px\\] {\n border-radius: 4px;\n}\n\n.rounded-\\[6px\\] {\n border-radius: 6px;\n}\n\n.rounded-\\[8px\\] {\n border-radius: 8px;\n}\n\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-lg {\n border-radius: .5rem;\n}\n\n.rounded-md {\n border-radius: .375rem;\n}\n\n.rounded-xl {\n border-radius: .75rem;\n}\n\n.rounded-b-3xl {\n border-bottom-right-radius: 1.5rem;\n border-bottom-left-radius: 1.5rem;\n}\n\n.rounded-t-3xl {\n border-top-left-radius: 1.5rem;\n border-top-right-radius: 1.5rem;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-b {\n border-bottom-width: 1px;\n}\n\n.border-l {\n border-left-width: 1px;\n}\n\n.border-r {\n border-right-width: 1px;\n}\n\n.border-t {\n border-top-width: 1px;\n}\n\n.border-amber-700 {\n border-color: rgb(var(--color-amber-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-blue-700 {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-100 {\n border-color: rgb(var(--color-gray-100) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-1000 {\n border-color: rgb(var(--color-gray-1000) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-200 {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-600 {\n border-color: rgb(var(--color-gray-600) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-red-700 {\n border-color: rgb(var(--color-red-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-white\\/10 {\n border-color: #ffffff1a;\n}\n\n.bg-\\[\\#292929\\] {\n background-color: rgb(41 41 41 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-100 {\n background-color: rgb(var(--color-amber-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-200 {\n background-color: rgb(var(--color-amber-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-700 {\n background-color: rgb(var(--color-amber-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-black\\/25 {\n background-color: #00000040;\n}\n\n.bg-black\\/60 {\n background-color: #0009;\n}\n\n.bg-blue-100 {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-blue-300 {\n background-color: rgb(var(--color-blue-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-blue-700 {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-bronze-300 {\n background-color: rgb(var(--color-bronze-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-100 {\n background-color: rgb(var(--color-brown-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-300 {\n background-color: rgb(var(--color-brown-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-700 {\n background-color: rgb(var(--color-brown-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-100 {\n background-color: rgb(var(--color-crimson-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-300 {\n background-color: rgb(var(--color-crimson-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-700 {\n background-color: rgb(var(--color-crimson-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-100 {\n background-color: rgb(var(--color-cyan-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-300 {\n background-color: rgb(var(--color-cyan-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-700 {\n background-color: rgb(var(--color-cyan-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gold-300 {\n background-color: rgb(var(--color-gold-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-grass-300 {\n background-color: rgb(var(--color-grass-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-1000 {\n background-color: rgb(var(--color-gray-1000) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-1000\\/25 {\n background-color: rgb(var(--color-gray-1000) / .25);\n}\n\n.bg-gray-1000\\/80 {\n background-color: rgb(var(--color-gray-1000) / .8);\n}\n\n.bg-gray-200 {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-25 {\n background-color: rgb(var(--color-gray-25) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-25\\/50 {\n background-color: rgb(var(--color-gray-25) / .5);\n}\n\n.bg-gray-300 {\n background-color: rgb(var(--color-gray-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-600 {\n background-color: rgb(var(--color-gray-600) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-900 {\n background-color: rgb(var(--color-gray-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-100 {\n background-color: rgb(var(--color-green-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-300 {\n background-color: rgb(var(--color-green-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-700 {\n background-color: rgb(var(--color-green-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-indigo-300 {\n background-color: rgb(var(--color-indigo-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-lime-300 {\n background-color: rgb(var(--color-lime-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-orange-100 {\n background-color: rgb(var(--color-orange-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-orange-700 {\n background-color: rgb(var(--color-orange-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-plum-300 {\n background-color: rgb(var(--color-plum-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-purple-300 {\n background-color: rgb(var(--color-purple-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-100 {\n background-color: rgb(var(--color-red-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-300 {\n background-color: rgb(var(--color-red-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-700 {\n background-color: rgb(var(--color-red-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-700\\/60 {\n background-color: rgb(var(--color-red-700) / .6);\n}\n\n.bg-teal-100 {\n background-color: rgb(var(--color-teal-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-teal-300 {\n background-color: rgb(var(--color-teal-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-teal-700 {\n background-color: rgb(var(--color-teal-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-transparent {\n background-color: #0000;\n}\n\n.bg-violet-100 {\n background-color: rgb(var(--color-violet-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-violet-300 {\n background-color: rgb(var(--color-violet-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-violet-700 {\n background-color: rgb(var(--color-violet-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-white {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-yellow-300 {\n background-color: rgb(var(--color-yellow-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cover {\n background-size: cover;\n}\n\n.bg-center {\n background-position: center;\n}\n\n.object-contain {\n object-fit: contain;\n}\n\n.object-cover {\n object-fit: cover;\n}\n\n.p-0 {\n padding: 0;\n}\n\n.p-1 {\n padding: .25rem;\n}\n\n.p-1\\.5 {\n padding: .375rem;\n}\n\n.p-2 {\n padding: .5rem;\n}\n\n.p-2\\.5 {\n padding: .625rem;\n}\n\n.p-3 {\n padding: .75rem;\n}\n\n.p-4 {\n padding: 1rem;\n}\n\n.p-5 {\n padding: 1.25rem;\n}\n\n.p-6 {\n padding: 1.5rem;\n}\n\n.p-8 {\n padding: 2rem;\n}\n\n.p-\\[11px\\] {\n padding: 11px;\n}\n\n.px-2 {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.px-2\\.5 {\n padding-left: .625rem;\n padding-right: .625rem;\n}\n\n.px-3 {\n padding-left: .75rem;\n padding-right: .75rem;\n}\n\n.px-3\\.5 {\n padding-left: .875rem;\n padding-right: .875rem;\n}\n\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.py-0\\.5 {\n padding-top: .125rem;\n padding-bottom: .125rem;\n}\n\n.py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n.py-1\\.5 {\n padding-top: .375rem;\n padding-bottom: .375rem;\n}\n\n.py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n.py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.py-2\\.5 {\n padding-top: .625rem;\n padding-bottom: .625rem;\n}\n\n.py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.pb-2 {\n padding-bottom: .5rem;\n}\n\n.pb-\\[9px\\] {\n padding-bottom: 9px;\n}\n\n.pl-2 {\n padding-left: .5rem;\n}\n\n.pl-4 {\n padding-left: 1rem;\n}\n\n.pr-2 {\n padding-right: .5rem;\n}\n\n.pt-1 {\n padding-top: .25rem;\n}\n\n.pt-10 {\n padding-top: 2.5rem;\n}\n\n.pt-4 {\n padding-top: 1rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.align-middle {\n vertical-align: middle;\n}\n\n.text-2xl {\n letter-spacing: -.02em;\n font-size: 24px;\n line-height: 32px;\n}\n\n.text-3xl {\n letter-spacing: -.02em;\n font-size: 30px;\n line-height: 38px;\n}\n\n.text-4xl {\n letter-spacing: -.02em;\n font-size: 36px;\n line-height: 44px;\n}\n\n.text-\\[10px\\] {\n font-size: 10px;\n}\n\n.text-\\[112px\\] {\n font-size: 112px;\n}\n\n.text-\\[30px\\] {\n font-size: 30px;\n}\n\n.text-lg {\n letter-spacing: -.02em;\n font-size: 18px;\n line-height: 22px;\n}\n\n.text-md {\n letter-spacing: -.02em;\n font-size: 16px;\n line-height: 20px;\n}\n\n.text-sm {\n letter-spacing: -.02em;\n font-size: 14px;\n line-height: 20px;\n}\n\n.text-xs {\n letter-spacing: -.02em;\n font-size: 12px;\n line-height: 16px;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.font-normal {\n font-weight: 400;\n}\n\n.font-semibold {\n font-weight: 600;\n}\n\n.leading-none {\n line-height: 1;\n}\n\n.text-\\[\\#707070\\] {\n color: rgb(112 112 112 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-amber-700 {\n color: rgb(var(--color-amber-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-blue-700 {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-bronze-700 {\n color: rgb(var(--color-bronze-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-brown-700 {\n color: rgb(var(--color-brown-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-crimson-700 {\n color: rgb(var(--color-crimson-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-current {\n color: currentColor;\n}\n\n.text-cyan-700 {\n color: rgb(var(--color-cyan-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gold-700 {\n color: rgb(var(--color-gold-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-grass-700 {\n color: rgb(var(--color-grass-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-1000 {\n color: rgb(var(--color-gray-1000) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-700 {\n color: rgb(var(--color-gray-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-900 {\n color: rgb(var(--color-gray-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-green-700 {\n color: rgb(var(--color-green-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-indigo-700 {\n color: rgb(var(--color-indigo-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-inherit {\n color: inherit;\n}\n\n.text-lime-700 {\n color: rgb(var(--color-lime-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-orange-700 {\n color: rgb(var(--color-orange-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-plum-700 {\n color: rgb(var(--color-plum-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-primary {\n color: rgb(29 28 32 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-purple-700 {\n color: rgb(var(--color-purple-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-red-700 {\n color: rgb(var(--color-red-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-teal-700 {\n color: rgb(var(--color-teal-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-violet-700 {\n color: rgb(var(--color-violet-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-white {\n color: rgb(255 255 255 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-white\\/80 {\n color: #fffc;\n}\n\n.text-yellow-700 {\n color: rgb(var(--color-yellow-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.underline {\n text-decoration-line: underline;\n}\n\n.underline-offset-8 {\n text-underline-offset: 8px;\n}\n\n.antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.opacity-50 {\n opacity: .5;\n}\n\n.shadow-dropdown-sm {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0px 1px 2px 0px #1018280f, 0px 1px 3px 0px #1018281a;\n --tw-shadow-colored: 0px 1px 2px 0px var(--tw-shadow-color), 0px 1px 3px 0px var(--tw-shadow-color);\n}\n\n.shadow-lg {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n}\n\n.shadow-md {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n}\n\n.shadow-sm {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 1px 2px 0 #0000000d;\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n}\n\n.outline-none {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.outline {\n outline-style: solid;\n}\n\n.ring-1 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-2 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-4 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-\\[3px\\] {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-inset {\n --tw-ring-inset: inset;\n}\n\n.ring-amber-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-amber-300) / var(--tw-ring-opacity));\n}\n\n.ring-blue-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-300) / var(--tw-ring-opacity));\n}\n\n.ring-blue-700 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-700) / var(--tw-ring-opacity));\n}\n\n.ring-brown-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-brown-300) / var(--tw-ring-opacity));\n}\n\n.ring-crimson-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-crimson-300) / var(--tw-ring-opacity));\n}\n\n.ring-cyan-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-cyan-300) / var(--tw-ring-opacity));\n}\n\n.ring-gray-200 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-gray-200) / var(--tw-ring-opacity));\n}\n\n.ring-green-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-green-300) / var(--tw-ring-opacity));\n}\n\n.ring-orange-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-orange-300) / var(--tw-ring-opacity));\n}\n\n.ring-red-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-300) / var(--tw-ring-opacity));\n}\n\n.ring-teal-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-teal-300) / var(--tw-ring-opacity));\n}\n\n.ring-violet-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-violet-300) / var(--tw-ring-opacity));\n}\n\n.ring-white {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity));\n}\n\n.ring-white\\/20 {\n --tw-ring-color: #fff3;\n}\n\n.ring-offset-0 {\n --tw-ring-offset-width: 0px;\n}\n\n.ring-offset-white {\n --tw-ring-offset-color: #fff;\n}\n\n.blur {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n --tw-blur: blur(8px);\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.backdrop-blur-\\[30px\\] {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(30px);\n}\n\n.backdrop-blur-lg {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(16px);\n}\n\n.backdrop-blur-sm {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(4px);\n}\n\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-all {\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-transform {\n transition-property: transform;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.duration-200 {\n transition-duration: .2s;\n}\n\n.duration-500 {\n transition-duration: .5s;\n}\n\n.duration-700 {\n transition-duration: .7s;\n}\n\n.ease-in-out {\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.ease-linear {\n transition-timing-function: linear;\n}\n\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, .2, 1);\n}\n\n.will-change-transform {\n will-change: transform;\n}\n\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n.animate-in {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n}\n\n.fade-in, .fade-in-0 {\n --tw-enter-opacity: 0;\n}\n\n.fade-out {\n --tw-exit-opacity: 0;\n}\n\n.zoom-in-95 {\n --tw-enter-scale: .95;\n}\n\n.duration-200 {\n animation-duration: .2s;\n}\n\n.duration-500 {\n animation-duration: .5s;\n}\n\n.duration-700 {\n animation-duration: .7s;\n}\n\n.ease-in-out {\n animation-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.ease-linear {\n animation-timing-function: linear;\n}\n\n.ease-out {\n animation-timing-function: cubic-bezier(0, 0, .2, 1);\n}\n\n.paused {\n animation-play-state: paused;\n}\n\n.inter {\n font-family: Inter, sans-serif;\n}\n\n@supports (font-variation-settings: normal) {\n .inter {\n font-family: Inter var, sans-serif;\n }\n}\n\n.pulse-red-700 {\n animation: 2s infinite pulse-red-700;\n transform: scale(1);\n box-shadow: 0 0 #e5484d;\n}\n\n@keyframes pulse-red-700 {\n 0% {\n transform: scale(.95);\n box-shadow: 0 0 #e5484db3;\n }\n\n 70% {\n transform: scale(1);\n box-shadow: 0 0 0 6px #e5484d00;\n }\n\n 100% {\n transform: scale(.95);\n box-shadow: 0 0 #e5484d00;\n }\n}\n\n.placeholder\\:text-gray-700::placeholder {\n color: rgb(var(--color-gray-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.placeholder\\:text-gray-900::placeholder {\n color: rgb(var(--color-gray-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.focus-within\\:relative:focus-within {\n position: relative;\n}\n\n.focus-within\\:z-20:focus-within {\n z-index: 20;\n}\n\n.focus-within\\:border-gray-200:focus-within {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.focus-within\\:bg-gray-100:focus-within {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.focus-within\\:outline:focus-within {\n outline-style: solid;\n}\n\n.focus-within\\:outline-\\[2px\\]:focus-within {\n outline-width: 2px;\n}\n\n.focus-within\\:outline-offset-\\[2px\\]:focus-within {\n outline-offset: 2px;\n}\n\n.focus-within\\:outline-blue-300:focus-within {\n outline-color: rgb(var(--color-blue-300) / 1);\n}\n\n.focus-within\\:outline-red-700:focus-within {\n outline-color: rgb(var(--color-red-700) / 1);\n}\n\n.hover\\:bg-black\\/10:hover {\n background-color: #0000001a;\n}\n\n.hover\\:bg-blue-100:hover {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-50:hover {\n background-color: rgb(var(--color-blue-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-700:hover {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-800:hover {\n background-color: rgb(var(--color-blue-800) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-100:hover {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-200:hover {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-25\\/60:hover {\n background-color: rgb(var(--color-gray-25) / .6);\n}\n\n.hover\\:bg-gray-50:hover {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-red-100:hover {\n background-color: rgb(var(--color-red-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-red-800:hover {\n background-color: rgb(var(--color-red-800) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:text-blue-700:hover {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.hover\\:text-white:hover {\n color: rgb(255 255 255 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n\n.focus\\:bg-gray-100:focus {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.focus\\:outline-none:focus {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.focus\\:ring-1:focus {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus\\:ring-2:focus {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n\n.focus-visible\\:outline-none:focus-visible {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.focus-visible\\:ring-2:focus-visible {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus-visible\\:ring-blue-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-blue-300:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-300) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-blue-700:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-700) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-gray-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-gray-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-red-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-red-700:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-700) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n\n.active\\:bg-blue-200:active {\n background-color: rgb(var(--color-blue-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-blue-900:active {\n background-color: rgb(var(--color-blue-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-100:active {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-200:active {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-25\\/70:active {\n background-color: rgb(var(--color-gray-25) / .7);\n}\n\n.active\\:bg-gray-500:active {\n background-color: rgb(var(--color-gray-500) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-red-200:active {\n background-color: rgb(var(--color-red-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-red-900:active {\n background-color: rgb(var(--color-red-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:text-blue-700:active {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.active\\:text-blue-900:active {\n color: rgb(var(--color-blue-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n\n.disabled\\:select-none:disabled {\n -webkit-user-select: none;\n user-select: none;\n}\n\n.disabled\\:opacity-40:disabled {\n opacity: .4;\n}\n\n.disabled\\:opacity-50:disabled {\n opacity: .5;\n}\n\n.group:focus-within .group-focus-within\\:bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group:hover .group-hover\\:bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group:active .group-active\\:bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.peer:disabled ~ .peer-disabled\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.peer:disabled ~ .peer-disabled\\:opacity-70 {\n opacity: .7;\n}\n\n.aria-selected\\:bg-blue-100[aria-selected=\"true\"] {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.aria-selected\\:text-blue-700[aria-selected=\"true\"] {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.aria-selected\\:opacity-100[aria-selected=\"true\"] {\n opacity: 1;\n}\n\n.data-\\[disabled\\]\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n\n.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=\"bottom\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: .25rem;\n}\n\n.data-\\[side\\=left\\]\\:-translate-x-1[data-side=\"left\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -.25rem;\n}\n\n.data-\\[side\\=right\\]\\:translate-x-1[data-side=\"right\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: .25rem;\n}\n\n.data-\\[side\\=top\\]\\:-translate-y-1[data-side=\"top\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -.25rem;\n}\n\n.data-\\[state\\=checked\\]\\:translate-x-5[data-state=\"checked\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 1.25rem;\n}\n\n.data-\\[swipe\\=cancel\\]\\:translate-x-0[data-swipe=\"cancel\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 0px;\n}\n\n.data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\][data-swipe=\"end\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n}\n\n.data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\][data-swipe=\"move\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n}\n\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n\n to {\n height: 0;\n }\n}\n\n.data-\\[state\\=closed\\]\\:animate-accordion-up[data-state=\"closed\"] {\n animation: .2s ease-out accordion-up;\n}\n\n@keyframes accordion-down {\n from {\n height: 0;\n }\n\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n\n.data-\\[state\\=open\\]\\:animate-accordion-down[data-state=\"open\"] {\n animation: .2s ease-out accordion-down;\n}\n\n.data-\\[disabled\\]\\:cursor-not-allowed[data-disabled] {\n cursor: not-allowed;\n}\n\n.data-\\[state\\=checked\\]\\:border-blue-700[data-state=\"checked\"], .data-\\[state\\=on\\]\\:border-blue-700[data-state=\"on\"] {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.data-\\[disabled\\]\\:data-\\[state\\=unchecked\\]\\:bg-gray-300[data-state=\"unchecked\"][data-disabled] {\n background-color: rgb(var(--color-gray-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[selected\\=true\\]\\:bg-gray-50[data-selected=\"true\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-amber-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-amber-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-blue-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-bronze-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-bronze-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-brown-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-brown-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-crimson-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-crimson-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-cyan-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-cyan-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-gold-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-gold-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-grass-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-grass-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-gray-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-gray-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-green-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-green-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-indigo-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-indigo-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-lime-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-lime-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-plum-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-plum-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-purple-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-purple-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-red-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-red-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-teal-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-teal-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-violet-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-violet-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-yellow-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-yellow-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:bg-white[data-state=\"active\"] {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-blue-700[data-state=\"checked\"] {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-gray-50[data-state=\"checked\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-white[data-state=\"checked\"] {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=selected\\]\\:bg-gray-50[data-state=\"selected\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:text-blue-700[data-state=\"active\"] {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:text-gray-25[data-state=\"active\"] {\n color: rgb(var(--color-gray-25) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.data-\\[disabled\\]\\:opacity-40[data-disabled] {\n opacity: .4;\n}\n\n.data-\\[disabled\\]\\:opacity-50[data-disabled] {\n opacity: .5;\n}\n\n.data-\\[state\\=active\\]\\:shadow-sm[data-state=\"active\"] {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 1px 2px 0 #0000000d;\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n}\n\n.data-\\[swipe\\=move\\]\\:transition-none[data-swipe=\"move\"] {\n transition-property: none;\n}\n\n.data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n transition-duration: .3s;\n}\n\n.data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n transition-duration: .5s;\n}\n\n.data-\\[state\\=open\\]\\:animate-in[data-state=\"open\"] {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n}\n\n.data-\\[state\\=closed\\]\\:animate-out[data-state=\"closed\"], .data-\\[swipe\\=end\\]\\:animate-out[data-swipe=\"end\"] {\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n animation-name: exit;\n animation-duration: .15s;\n}\n\n.data-\\[state\\=closed\\]\\:fade-out[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:fade-out-0[data-state=\"closed\"] {\n --tw-exit-opacity: 0;\n}\n\n.data-\\[state\\=closed\\]\\:fade-out-80[data-state=\"closed\"] {\n --tw-exit-opacity: .8;\n}\n\n.data-\\[state\\=open\\]\\:fade-in-0[data-state=\"open\"] {\n --tw-enter-opacity: 0;\n}\n\n.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=\"closed\"] {\n --tw-exit-scale: .95;\n}\n\n.data-\\[state\\=open\\]\\:zoom-in-95[data-state=\"open\"] {\n --tw-enter-scale: .95;\n}\n\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=\"bottom\"] {\n --tw-enter-translate-y: -.5rem;\n}\n\n.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=\"left\"] {\n --tw-enter-translate-x: .5rem;\n}\n\n.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=\"right\"] {\n --tw-enter-translate-x: -.5rem;\n}\n\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=\"top\"] {\n --tw-enter-translate-y: .5rem;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:slide-out-to-bottom-\\[100\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-y: 100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-left[data-state=\"closed\"] {\n --tw-exit-translate-x: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:slide-out-to-left-\\[50\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-x: -50%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-right[data-state=\"closed\"] {\n --tw-exit-translate-x: 100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-top[data-state=\"closed\"] {\n --tw-exit-translate-y: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-y: -48%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-bottom-\\[100\\%\\][data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-left[data-state=\"open\"] {\n --tw-enter-translate-x: -100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-left-\\[50\\%\\][data-state=\"open\"] {\n --tw-enter-translate-x: -50%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-right[data-state=\"open\"] {\n --tw-enter-translate-x: 100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state=\"open\"] {\n --tw-enter-translate-y: -48%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top-full[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n animation-duration: .3s;\n}\n\n.data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n animation-duration: .5s;\n}\n\n.group[data-state=\"open\"] .group-data-\\[state\\=open\\]\\:rotate-180 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-rotate: 180deg;\n}\n\n.group[data-disabled] .group-data-\\[disabled\\]\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.group[data-state=\"on\"] .group-data-\\[state\\=on\\]\\:border-blue-700 {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.group[data-state=\"checked\"] .group-data-\\[state\\=checked\\]\\:bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group[data-state=\"off\"] .group-data-\\[state\\=off\\]\\:bg-transparent {\n background-color: #0000;\n}\n\n.group[data-state=\"off\"] .group-data-\\[state\\=off\\]\\:text-transparent {\n color: #0000;\n}\n\n.group[data-disabled] .group-data-\\[disabled\\]\\:opacity-50 {\n opacity: .5;\n}\n\n@media not all and (width >= 1024px) {\n .max-lg\\:mt-8 {\n margin-top: 2rem;\n }\n\n .max-lg\\:hidden {\n display: none;\n }\n\n .max-lg\\:h-\\[250px\\] {\n height: 250px;\n }\n\n .max-lg\\:w-full {\n width: 100%;\n }\n\n .max-lg\\:flex-col {\n flex-direction: column;\n }\n}\n\n@media not all and (width >= 640px) {\n .max-sm\\:gap-4 {\n gap: 1rem;\n }\n\n .max-sm\\:p-4 {\n padding: 1rem;\n }\n}\n\n@media (width >= 640px) {\n .sm\\:mt-0 {\n margin-top: 0;\n }\n\n .sm\\:w-1\\/2 {\n width: 50%;\n }\n\n .sm\\:max-w-sm {\n max-width: 24rem;\n }\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:flex-col {\n flex-direction: column;\n }\n\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n\n .sm\\:justify-center {\n justify-content: center;\n }\n\n .sm\\:space-x-2 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(.5rem * var(--tw-space-x-reverse));\n margin-left: calc(.5rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n }\n\n .sm\\:space-x-4 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(1rem * var(--tw-space-x-reverse));\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n }\n\n .sm\\:space-y-0 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0px * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n }\n\n .data-\\[state\\=open\\]\\:sm\\:slide-in-from-bottom-full[data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n}\n\n@media (width >= 768px) {\n .md\\:block {\n display: block;\n }\n\n .md\\:h-\\[550px\\] {\n height: 550px;\n }\n\n .md\\:w-\\[1000px\\] {\n width: 1000px;\n }\n\n .md\\:w-\\[300px\\] {\n width: 300px;\n }\n\n .md\\:w-\\[334px\\] {\n width: 334px;\n }\n\n .md\\:w-\\[500px\\] {\n width: 500px;\n }\n\n .md\\:w-auto {\n width: auto;\n }\n\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:w-screen {\n width: 100vw;\n }\n\n .md\\:max-w-\\[420px\\] {\n max-width: 420px;\n }\n\n .md\\:max-w-\\[90vw\\] {\n max-width: 90vw;\n }\n\n .md\\:flex-row {\n flex-direction: row;\n }\n\n .md\\:items-center {\n align-items: center;\n }\n\n .md\\:justify-start {\n justify-content: flex-start;\n }\n\n .md\\:gap-0 {\n gap: 0;\n }\n\n .md\\:gap-4 {\n gap: 1rem;\n }\n\n .md\\:gap-8 {\n gap: 2rem;\n }\n\n .md\\:divide-y > :not([hidden]) ~ :not([hidden]) {\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n --tw-divide-y-reverse: 0;\n }\n\n .md\\:border-0 {\n border-width: 0;\n }\n\n .md\\:bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n }\n\n .md\\:bg-transparent {\n background-color: #0000;\n }\n\n .md\\:p-0 {\n padding: 0;\n }\n\n .md\\:p-4 {\n padding: 1rem;\n }\n\n .md\\:p-6 {\n padding: 1.5rem;\n }\n\n .md\\:p-8 {\n padding: 2rem;\n }\n\n .md\\:pt-4 {\n padding-top: 1rem;\n }\n}\n\n@media (width >= 1024px) {\n .lg\\:flex-col {\n flex-direction: column;\n }\n\n .lg\\:items-center {\n align-items: center;\n }\n\n .lg\\:gap-2 {\n gap: .5rem;\n }\n\n .lg\\:gap-8 {\n gap: 2rem;\n }\n\n .lg\\:rounded-lg {\n border-radius: .5rem;\n }\n\n .lg\\:border {\n border-width: 1px;\n }\n\n .lg\\:border-gray-200 {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n }\n\n .lg\\:bg-pattern {\n background-image: radial-gradient(50% 50%, #006aff33 0%, #006aff00 100%), linear-gradient(#0000 0%, #fff 100%), linear-gradient(0deg, #0000 0%, #ffffffbf 100%), url(\"data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M40 40V41H41V40H40ZM39 0V40H41V0H39ZM40 39H0V41H40V39Z' fill='%23E8E8E8' mask='url(%23path-1-inside-1_124_242)'/%3E%3C/svg%3E\");\n }\n\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n\n .lg\\:text-center {\n text-align: center;\n }\n\n .lg\\:text-4xl {\n letter-spacing: -.02em;\n font-size: 36px;\n line-height: 44px;\n }\n}\n\n@media (width >= 1280px) {\n .xl\\:rounded-none {\n border-radius: 0;\n }\n}\n\n.\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:bg-blue-100:has([aria-selected]) {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.first\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-l-md:has([aria-selected]):first-child {\n border-top-left-radius: .375rem;\n border-bottom-left-radius: .375rem;\n}\n\n.last\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-r-md:has([aria-selected]):last-child {\n border-top-right-radius: .375rem;\n border-bottom-right-radius: .375rem;\n}\n\n.\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0:has([role=\"checkbox\"]) {\n padding-right: 0;\n}\n\n.\\[\\&\\:not\\(\\[aria-selected\\]\\)\\]\\:hover\\:bg-gray-100:hover:not([aria-selected]) {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&\\>\\*\\]\\:fill-white > * {\n fill: #fff;\n}\n\n.\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] > [role=\"checkbox\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: 2px;\n}\n\n.\\[\\&\\>svg\\]\\:h-4 > svg {\n height: 1rem;\n}\n\n.\\[\\&\\>svg\\]\\:w-auto > svg {\n width: auto;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 [cmdk-group-heading] {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 [cmdk-group-heading] {\n padding-top: .375rem;\n padding-bottom: .375rem;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-sm [cmdk-group-heading] {\n letter-spacing: -.02em;\n font-size: 14px;\n line-height: 20px;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium [cmdk-group-heading] {\n font-weight: 500;\n}\n\n.\\[\\&_tr\\:active\\]\\:bg-gray-50 tr:active, .\\[\\&_tr\\:hover\\:active\\]\\:bg-gray-50 tr:hover:active {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&_tr\\:hover\\]\\:bg-gray-25 tr:hover {\n background-color: rgb(var(--color-gray-25) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&_tr\\:last-child\\]\\:border-0 tr:last-child {\n border-width: 0;\n}\n\n.\\[\\&_tr\\]\\:border-b tr {\n border-bottom-width: 1px;\n}\n";
|
|
14099
14645
|
|
|
14100
14646
|
|
|
14101
14647
|
var $9554d945ad3f220e$exports = {};
|
|
@@ -14147,15 +14693,12 @@ const $24075a5d702d64b3$var$defaultOptions = {
|
|
|
14147
14693
|
},
|
|
14148
14694
|
streamApiURL: String("https://apistream.snapcall.io"),
|
|
14149
14695
|
apiUrl: String("https://api.snapcall.io/v2"),
|
|
14150
|
-
tracking: false
|
|
14151
|
-
token: undefined,
|
|
14152
|
-
profile: undefined,
|
|
14153
|
-
apiKey: undefined
|
|
14696
|
+
tracking: false
|
|
14154
14697
|
};
|
|
14155
14698
|
let $24075a5d702d64b3$var$streamUIOption = {};
|
|
14156
14699
|
const $24075a5d702d64b3$export$3f94917203ab7078 = {
|
|
14157
|
-
init: (
|
|
14158
|
-
$24075a5d702d64b3$var$streamUIOption =
|
|
14700
|
+
init: (options)=>{
|
|
14701
|
+
$24075a5d702d64b3$var$streamUIOption = options;
|
|
14159
14702
|
},
|
|
14160
14703
|
joinRoom: async (token, option)=>{
|
|
14161
14704
|
return $24075a5d702d64b3$export$3f94917203ab7078.initV2({
|
|
@@ -14177,29 +14720,6 @@ const $24075a5d702d64b3$export$3f94917203ab7078 = {
|
|
|
14177
14720
|
defaultMode: "video",
|
|
14178
14721
|
skipOnboarding: false
|
|
14179
14722
|
};
|
|
14180
|
-
const { flow: flow, flowV0: flowV0 } = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).init(options.token, {
|
|
14181
|
-
languageCode: options.language,
|
|
14182
|
-
flowToken: options.flowToken,
|
|
14183
|
-
recorder: options.recorder?.enabled,
|
|
14184
|
-
apiKey: options.apiKey,
|
|
14185
|
-
email: options.email,
|
|
14186
|
-
profile: options.profile,
|
|
14187
|
-
authKey: options.authKey
|
|
14188
|
-
});
|
|
14189
|
-
if (flow) {
|
|
14190
|
-
const step = flow.steps[0];
|
|
14191
|
-
if (step) {
|
|
14192
|
-
options.recorder = {
|
|
14193
|
-
enabledModes: [
|
|
14194
|
-
step.type === "image" ? "photo" : step.type
|
|
14195
|
-
],
|
|
14196
|
-
enabled: true,
|
|
14197
|
-
defaultMode: step.type === "image" ? "photo" : step.type,
|
|
14198
|
-
skipOnboarding: false
|
|
14199
|
-
};
|
|
14200
|
-
await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).setStep(flow?.steps[0].token);
|
|
14201
|
-
}
|
|
14202
|
-
}
|
|
14203
14723
|
if (options.recorder?.defaultMode === "screen" && !isDesktop) options.recorder.defaultMode = "video";
|
|
14204
14724
|
if (element?.nodeType !== window.Node.ELEMENT_NODE) throw new Error('The "element" property must be a valid element!');
|
|
14205
14725
|
const mergedOptions = (0, $365e765f9890497b$export$6969335ea1e4e77c)($24075a5d702d64b3$var$defaultOptions, options);
|
|
@@ -14230,13 +14750,10 @@ const $24075a5d702d64b3$export$3f94917203ab7078 = {
|
|
|
14230
14750
|
href: "https://rsms.me/inter/inter.css"
|
|
14231
14751
|
}),
|
|
14232
14752
|
/*#__PURE__*/ (0, $3Sbms$jsx)((0, $26ed036cbc17809a$export$2e2bcd8739ae039), {
|
|
14233
|
-
options: mergedOptions
|
|
14234
|
-
flow: flow,
|
|
14235
|
-
flowV0: flowV0
|
|
14753
|
+
options: mergedOptions
|
|
14236
14754
|
})
|
|
14237
14755
|
]
|
|
14238
14756
|
}));
|
|
14239
|
-
if (mergedOptions.tracking) (0, $3Sbms$hotjarbrowser).init(3111933, 6);
|
|
14240
14757
|
(0, $35b37252690084e8$export$1cbfb36c1655a9a)(rootElement, element);
|
|
14241
14758
|
},
|
|
14242
14759
|
setExtraSettingsOptions: (extraOptions)=>{
|