@snapcall/stream-ui 1.24.1 → 1.25.1

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.js CHANGED
@@ -1,6 +1,5 @@
1
1
  var $jQDcL$reactjsxruntime = require("react/jsx-runtime");
2
2
  var $jQDcL$reactdomclient = require("react-dom/client");
3
- var $jQDcL$hotjarbrowser = require("@hotjar/browser");
4
3
  var $jQDcL$bowser = require("bowser");
5
4
  var $jQDcL$reacthottoast = require("react-hot-toast");
6
5
  var $jQDcL$styledcomponents = require("styled-components");
@@ -37,7 +36,6 @@ $parcel$export(module.exports, "streamUI", () => $e68207026aca356b$export$3f9491
37
36
 
38
37
 
39
38
 
40
-
41
39
  // https://github.com/voodoocreation/ts-deepmerge/blob/master/src/index.ts
42
40
  const $6b4cf4c12c735fdf$var$isObject = (obj)=>{
43
41
  if (typeof obj === "object" && obj !== null) {
@@ -348,7 +346,6 @@ const $57b7750d9786bf6f$export$1cbfb36c1655a9a = (root, element)=>{
348
346
 
349
347
 
350
348
 
351
-
352
349
  const $393bda1b33846dfc$export$604ba5624273df44 = ()=>{
353
350
  try {
354
351
  const storedTheme = localStorage.getItem("stream_ui_language");
@@ -362,27 +359,27 @@ const $393bda1b33846dfc$export$604ba5624273df44 = ()=>{
362
359
 
363
360
 
364
361
  var $20859e1dad0fd138$exports = {};
365
- $20859e1dad0fd138$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"}}');
362
+ $20859e1dad0fd138$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"}}');
366
363
 
367
364
 
368
365
  var $a8febdc80ac5353b$exports = {};
369
- $a8febdc80ac5353b$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"}}');
366
+ $a8febdc80ac5353b$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"}}');
370
367
 
371
368
 
372
369
  var $32156cf38812b83d$exports = {};
373
- $32156cf38812b83d$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"}}');
370
+ $32156cf38812b83d$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"}}');
374
371
 
375
372
 
376
373
  var $2cbf9baa8030dfd2$exports = {};
377
- $2cbf9baa8030dfd2$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"}}');
374
+ $2cbf9baa8030dfd2$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"}}');
378
375
 
379
376
 
380
377
  var $22b1236afc8abe7b$exports = {};
381
- $22b1236afc8abe7b$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"}}');
378
+ $22b1236afc8abe7b$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"}}');
382
379
 
383
380
 
384
381
  var $f712a7b52924c1d6$exports = {};
385
- $f712a7b52924c1d6$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"}}');
382
+ $f712a7b52924c1d6$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"}}');
386
383
 
387
384
 
388
385
  const $b45c0bcc142f0b5e$export$150b732325d14d04 = {
@@ -433,7 +430,6 @@ var $b45c0bcc142f0b5e$export$2e2bcd8739ae039 = (0, ($parcel$interopDefault($jQDc
433
430
 
434
431
 
435
432
 
436
-
437
433
  /* eslint-disable no-console */
438
434
  const $d0c6baf97675ab49$var$LogLevel = {
439
435
  error: 1,
@@ -526,6 +522,12 @@ class $6a90fae7e584afd4$export$ea669869acd8f177 {
526
522
  this.listener = listener;
527
523
  this.stream = stream;
528
524
  this.audioContext = new $6a90fae7e584afd4$var$audioContextConstructor();
525
+ this.voiceAnalyser = this.audioContext.createAnalyser();
526
+ this.voiceAudioStreamSource = this.audioContext.createMediaStreamSource(this.stream);
527
+ this.voiceAnalyser.fftSize = 32;
528
+ this.voiceAnalyser.minDecibels = -90;
529
+ this.voiceAnalyser.maxDecibels = -10;
530
+ this.voiceAudioStreamSource.connect(this.voiceAnalyser);
529
531
  this.analyser = this.audioContext.createAnalyser();
530
532
  this.audioStreamSource = this.audioContext.createMediaStreamSource(this.stream);
531
533
  this.analyser.fftSize = 512;
@@ -582,7 +584,7 @@ class $6a90fae7e584afd4$export$ea669869acd8f177 {
582
584
  }
583
585
  getInstantAudioLevel() {
584
586
  const FFTDataArray = new Uint8Array(this.analyser.frequencyBinCount);
585
- this.analyser.getByteFrequencyData(FFTDataArray);
587
+ this.voiceAnalyser.getByteFrequencyData(FFTDataArray);
586
588
  const rms = this.computeRMS(FFTDataArray);
587
589
  return rms > 0 ? 100 * rms / 255 : 0;
588
590
  }
@@ -634,6 +636,7 @@ class $6a90fae7e584afd4$export$ea669869acd8f177 {
634
636
  });
635
637
  try {
636
638
  this.audioStreamSource.disconnect(this.analyser);
639
+ this.voiceAudioStreamSource.disconnect(this.voiceAnalyser);
637
640
  } catch (err) {
638
641
  $6a90fae7e584afd4$var$log.error("release", "audioStreamSource failed to disconnect", err);
639
642
  }
@@ -1252,7 +1255,10 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1252
1255
  min: 0,
1253
1256
  max: 0
1254
1257
  };
1255
- this.muted = false;
1258
+ this.microphone = {
1259
+ device: null,
1260
+ muted: false
1261
+ };
1256
1262
  this.roomId = "";
1257
1263
  this.companyId = 0;
1258
1264
  this.peerId = "";
@@ -1298,7 +1304,6 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1298
1304
  peerId: this.peerId,
1299
1305
  profile: this.profile,
1300
1306
  joinOptions: this.joinOptions,
1301
- callId: undefined,
1302
1307
  deviceState: this.getDevicesState(),
1303
1308
  peers: peers
1304
1309
  };
@@ -1427,10 +1432,6 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1427
1432
  });
1428
1433
  open = true;
1429
1434
  onOpen();
1430
- if (this.joinOptions.recorder) {
1431
- await this.joinRecorder();
1432
- return;
1433
- }
1434
1435
  });
1435
1436
  this.protoo.on("failed", ()=>{
1436
1437
  err = new Error("failure");
@@ -1635,6 +1636,9 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1635
1636
  };
1636
1637
  if (open) onOpen(err);
1637
1638
  });
1639
+ this.dispatchEvent(new $1dedebd5ff3002eb$var$SnapcallEvent("initialized", {
1640
+ detail: initResult
1641
+ }));
1638
1642
  return initResult;
1639
1643
  }
1640
1644
  closeWebrtcTransport(key) {
@@ -1719,9 +1723,9 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1719
1723
  }
1720
1724
  }
1721
1725
  }
1722
- async acceptAccessRequest(id) {
1726
+ acceptAccessRequest(id) {
1723
1727
  if (!this.protoo) throw new Error("not connected");
1724
- await this.protoo.request("acceptAccessRequest", {
1728
+ return this.protoo.request("acceptAccessRequest", {
1725
1729
  id: id
1726
1730
  });
1727
1731
  }
@@ -1732,9 +1736,9 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1732
1736
  token: stepToken
1733
1737
  });
1734
1738
  }
1735
- async denyAccessRequest(id) {
1739
+ denyAccessRequest(id) {
1736
1740
  if (!this.protoo) throw new Error("stream client not initiated");
1737
- await this.protoo.request("denyAccessRequest", {
1741
+ return this.protoo.request("denyAccessRequest", {
1738
1742
  id: id
1739
1743
  });
1740
1744
  }
@@ -1764,28 +1768,20 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1764
1768
  if (!this.protoo) throw new Error("stream client not initiated");
1765
1769
  this.streamerMediasoup = await (0, $a62e7f17be5cf3a0$export$2e2bcd8739ae039).create(this.protoo, this.config);
1766
1770
  // now we join
1767
- const { peers: peers, videoRecordStarted: videoRecordStarted, videoRecording: videoRecording, waitingRequests: waitingRequests } = await this.protoo.request("getRoomPeers");
1771
+ const { peers: peers, videoRecordStarted: videoRecordStarted, videoRecording: videoRecording } = await this.protoo.request("getRoomPeers");
1768
1772
  this.peers = new Map(peers.map((peer)=>[
1769
- peer.id || peer.peerId,
1773
+ peer.id,
1770
1774
  {
1771
1775
  ...peer,
1772
- peerId: peer.id || peer.peerId
1776
+ peerId: peer.id
1773
1777
  }
1774
1778
  ]));
1775
- const callId = await this.getCallId();
1776
1779
  this.dispatchEvent(new $1dedebd5ff3002eb$var$SnapcallEvent("enterRoom", {
1777
1780
  detail: {
1778
- waitingRequests: waitingRequests,
1779
1781
  videoRecording: videoRecording,
1780
1782
  videoRecordStarted: videoRecordStarted,
1781
1783
  peerId: this.peerId,
1782
- peers: peers.map((peer)=>{
1783
- return {
1784
- ...peer,
1785
- peerId: peer.id || peer.peerId
1786
- };
1787
- }),
1788
- callId: callId,
1784
+ peers: Array.from(this.peers.values()),
1789
1785
  plan: this.plan,
1790
1786
  permissions: this.permissions
1791
1787
  }
@@ -1796,7 +1792,7 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1796
1792
  // Consume Peers
1797
1793
  peers.forEach((peer)=>{
1798
1794
  this.consumePeer({
1799
- peerId: peer.id || peer.peerId,
1795
+ peerId: peer.id,
1800
1796
  producersData: peer.producersData
1801
1797
  });
1802
1798
  });
@@ -1804,7 +1800,6 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1804
1800
  async joinRecorder() {
1805
1801
  if (!this.protoo) throw new Error("stream client not initiated");
1806
1802
  this.streamerMediasoup = await (0, $a62e7f17be5cf3a0$export$2e2bcd8739ae039).create(this.protoo, this.config);
1807
- const callId = await this.getCallId();
1808
1803
  if (this.joinOptions.apiKey) this.setAgentIdentity({
1809
1804
  apiKey: this.joinOptions.apiKey
1810
1805
  });
@@ -1817,10 +1812,8 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1817
1812
  videoRecordStarted: false,
1818
1813
  peerId: this.peerId,
1819
1814
  peers: [],
1820
- callId: callId,
1821
1815
  plan: this.plan,
1822
- permissions: this.permissions,
1823
- waitingRequests: []
1816
+ permissions: this.permissions
1824
1817
  }
1825
1818
  }));
1826
1819
  }
@@ -1850,6 +1843,9 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1850
1843
  track: track
1851
1844
  });
1852
1845
  $1dedebd5ff3002eb$var$log.log("switchMicrophone", "switched Microphone");
1846
+ const trackSettings = track.getSettings();
1847
+ const device = this.devicesList.find((it)=>it.deviceId === trackSettings.deviceId);
1848
+ this.microphone.device = device || null;
1853
1849
  } catch (error) {
1854
1850
  $1dedebd5ff3002eb$var$log.error("switchMicrophone error", error);
1855
1851
  await this.closeMicrophoneProducer();
@@ -1925,6 +1921,8 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1925
1921
  this.audioMedia = this.audioMedia || new (0, $93041e14f6aa3f24$export$22ddc20344c01547)();
1926
1922
  const track = stream.getAudioTracks()[0];
1927
1923
  this.audioMedia.addTrack("mic", track);
1924
+ const trackSettings = track.getSettings();
1925
+ const device = this.devicesList.find((it)=>it.deviceId === trackSettings.deviceId && it.kind === "audioinput");
1928
1926
  const deviceType = "microphone";
1929
1927
  const micProducer = await transport.produce({
1930
1928
  track: this.audioMedia.getFinalTrack(),
@@ -1947,7 +1945,8 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1947
1945
  if (navigator.mediaDevices.ondevicechange === undefined) this.closeMicrophoneProducer();
1948
1946
  });
1949
1947
  this.micProducer = micProducer;
1950
- this.muted = false;
1948
+ this.microphone.device = device || null;
1949
+ this.microphone.muted = false;
1951
1950
  const event = new $1dedebd5ff3002eb$var$SnapcallEvent("microphoneEnabled", {
1952
1951
  detail: {}
1953
1952
  });
@@ -1958,7 +1957,7 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1958
1957
  if (this.micProducer) {
1959
1958
  this.onStopSpeak();
1960
1959
  this.micProducer.pause();
1961
- this.muted = true;
1960
+ this.microphone.muted = true;
1962
1961
  const device = "microphone";
1963
1962
  this.protoo?.notify("mute", {
1964
1963
  device: device
@@ -1973,7 +1972,7 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1973
1972
  if (this.micProducer) {
1974
1973
  this.micProducer.resume();
1975
1974
  this.resolvePendingDeviceRequest("microphone", true);
1976
- this.muted = false;
1975
+ this.microphone.muted = false;
1977
1976
  const device = "microphone";
1978
1977
  this.protoo?.notify("unmute", {
1979
1978
  device: device
@@ -1985,7 +1984,7 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
1985
1984
  }
1986
1985
  }
1987
1986
  async toggleMute() {
1988
- if (this.muted) {
1987
+ if (this.microphone.muted) {
1989
1988
  await this.unMuteMicrophone();
1990
1989
  return {
1991
1990
  muted: false
@@ -2262,11 +2261,11 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
2262
2261
  ...usedResolution
2263
2262
  }
2264
2263
  }));
2264
+ const trackSettings = mediaStream.getVideoTracks()[0].getSettings();
2265
+ if (trackSettings.deviceId) this.webcam.device = this.webcams.get(trackSettings.deviceId) || null;
2265
2266
  if (config?.facingMode) try {
2266
- const capabilities = mediaStream.getVideoTracks()[0].getCapabilities();
2267
- if (!capabilities?.facingMode || capabilities.facingMode.length === 0) throw new Error("no facing mod");
2267
+ if (!trackSettings.facingMode) throw new Error("no facing mode");
2268
2268
  } catch {
2269
- this.webcam.device = this.webcams.values().next().value;
2270
2269
  this.webcam.facingMode = undefined;
2271
2270
  }
2272
2271
  if (this.useVideoBackground) {
@@ -2625,15 +2624,6 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
2625
2624
  denyDeviceRequest(deviceType) {
2626
2625
  this.resolvePendingDeviceRequest(deviceType, false, "user denied permission");
2627
2626
  }
2628
- async getCallId() {
2629
- try {
2630
- const { callId: callId } = await this.protoo?.request("getCallId");
2631
- return callId;
2632
- } catch (err) {
2633
- $1dedebd5ff3002eb$var$log.error("getCallId", "Failed to get callId");
2634
- throw err;
2635
- }
2636
- }
2637
2627
  getConsumers() {
2638
2628
  return this.consumers;
2639
2629
  }
@@ -2644,10 +2634,12 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
2644
2634
  return {
2645
2635
  microphone: {
2646
2636
  enabled: microphoneEnabled,
2647
- muted: this.muted
2637
+ muted: this.microphone.muted,
2638
+ device: this.microphone.device
2648
2639
  },
2649
2640
  camera: {
2650
- enabled: cameraEnabled
2641
+ enabled: cameraEnabled,
2642
+ device: this.webcam.device
2651
2643
  },
2652
2644
  screenshare: {
2653
2645
  enabled: screenshareEnabled
@@ -2802,6 +2794,10 @@ class $1dedebd5ff3002eb$export$2e2bcd8739ae039 extends $1dedebd5ff3002eb$var$Str
2802
2794
  }
2803
2795
  })).json();
2804
2796
  }
2797
+ getWaitingRequests() {
2798
+ if (!this.protoo) throw new Error("not connected");
2799
+ return this.protoo?.request("waitingRequests");
2800
+ }
2805
2801
  }
2806
2802
 
2807
2803
 
@@ -3828,7 +3824,6 @@ const $24108d3063533819$export$d9f09da0f8d1c822 = ()=>/*#__PURE__*/ (0, $jQDcL$r
3828
3824
 
3829
3825
 
3830
3826
 
3831
-
3832
3827
  const $daca1602b495441e$var$Link = ({ color: color })=>{
3833
3828
  return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("svg", {
3834
3829
  width: "24",
@@ -4409,7 +4404,6 @@ const $e38290b50aaba0e3$var$LinksharePopup = ()=>{
4409
4404
  if (!linkshareInputValue) return;
4410
4405
  setErrorMessage(null);
4411
4406
  setStatus("loading");
4412
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("linkshareShare");
4413
4407
  let url;
4414
4408
  try {
4415
4409
  url = new URL(linkshareInputValue);
@@ -5020,6 +5014,7 @@ const $bdd080364d556ec5$export$1712c8fcb05f49a6 = ({ modalState: modalState, ...
5020
5014
  children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$snapcalldesignsystem.Button), {
5021
5015
  size: "sm",
5022
5016
  disabled: requestRunning,
5017
+ type: "submit",
5023
5018
  children: [
5024
5019
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Send3Icon), {
5025
5020
  size: 16,
@@ -5098,10 +5093,8 @@ const $e1930b467e7d8845$var$Header = ()=>{
5098
5093
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).endCall();
5099
5094
  };
5100
5095
  const onScanQuickConnectClick = ()=>{
5101
- if (permissions.find((permission)=>permission === "quick_connect")) {
5102
- setIsQuickConnectPopupVisible(true);
5103
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("quickConnectClick");
5104
- } else setBlockedFeaturePopupOpen(true);
5096
+ if (permissions.find((permission)=>permission === "quick_connect")) setIsQuickConnectPopupVisible(true);
5097
+ else setBlockedFeaturePopupOpen(true);
5105
5098
  };
5106
5099
  const onSettingsMenuClick = ()=>{
5107
5100
  setIsSettingsMenuVisible(true);
@@ -7807,6 +7800,23 @@ const $88b23a8428e67b66$var$Video = ()=>{
7807
7800
  }, [
7808
7801
  dispatch
7809
7802
  ]);
7803
+ (0, $jQDcL$react.useEffect)(()=>{
7804
+ const initTiles = async ()=>{
7805
+ const getRoomPeersResult = await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getRoomPeers();
7806
+ const roomStreams = getRoomPeersResult.peers.map((peer)=>({
7807
+ id: peer.id,
7808
+ profile: peer.profile,
7809
+ muted: peer.muted
7810
+ }));
7811
+ dispatch({
7812
+ type: (0, $a4027a5418fcd07a$export$96a9662a3eda31f6).SET_STREAMS,
7813
+ payload: roomStreams
7814
+ });
7815
+ };
7816
+ initTiles();
7817
+ }, [
7818
+ dispatch
7819
+ ]);
7810
7820
  return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $66c45b20958474ec$export$b302ef9d8310f71), {
7811
7821
  ref: videosContainerRef,
7812
7822
  direction: orientation === "portrait" ? "column" : "row",
@@ -7860,7 +7870,6 @@ var $88b23a8428e67b66$export$2e2bcd8739ae039 = $88b23a8428e67b66$var$Video;
7860
7870
 
7861
7871
 
7862
7872
 
7863
-
7864
7873
  const $f09948cc22419e6e$var$HangUp = ()=>/*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("svg", {
7865
7874
  width: "25",
7866
7875
  height: "24",
@@ -7916,7 +7925,6 @@ var $ec8eb252693ca260$export$2e2bcd8739ae039 = $ec8eb252693ca260$var$Rotate;
7916
7925
 
7917
7926
 
7918
7927
 
7919
-
7920
7928
  const $3b6953f72db3bb17$var$YoutubeIcon = ({ color: color })=>/*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("svg", {
7921
7929
  width: "24",
7922
7930
  height: "25",
@@ -8031,12 +8039,9 @@ const $9dfd9e2286cffa66$var$HighlightButton = ()=>{
8031
8039
  if (permissions.find((permission)=>permission === "screen_sharing")) {
8032
8040
  setIsHighlightMenuOpen(false);
8033
8041
  try {
8034
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("screenshareClick");
8035
8042
  await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableScreenshare();
8036
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("enableScreenshare");
8037
8043
  } catch (screenshareError) {
8038
8044
  console.warn(screenshareError);
8039
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("screenshareCancel");
8040
8045
  (0, ($parcel$interopDefault($jQDcL$reacthottoast)))(t("notifications.screensharingError"), {
8041
8046
  className: "error"
8042
8047
  });
@@ -8046,13 +8051,11 @@ const $9dfd9e2286cffa66$var$HighlightButton = ()=>{
8046
8051
  const onYoutubeClick = ()=>{
8047
8052
  setIsHighlightMenuOpen(false);
8048
8053
  setIsYoutubePopupVisible(true);
8049
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("youtubeClick");
8050
8054
  };
8051
8055
  const onLinkshareClick = ()=>{
8052
8056
  if (permissions.find((permission)=>permission === "share_link")) {
8053
8057
  setIsHighlightMenuOpen(false);
8054
8058
  setIsLinksharePopupVisible(true);
8055
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("linkshareClick");
8056
8059
  } else setBlockedFeaturePopupOpen(true);
8057
8060
  };
8058
8061
  const menuCategories = [
@@ -8121,13 +8124,8 @@ const $a21b2aa064cb6c32$var$ControlBar = ()=>{
8121
8124
  const onMicrophoneClick = async ()=>{
8122
8125
  try {
8123
8126
  const devicesState = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getDevicesState();
8124
- if (devicesState.microphone.enabled) {
8125
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("toggleMicrophone");
8126
- await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).toggleMute();
8127
- } else {
8128
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("enableMicrophone");
8129
- await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableMicrophone();
8130
- }
8127
+ if (devicesState.microphone.enabled) await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).toggleMute();
8128
+ else await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableMicrophone();
8131
8129
  } catch (muteError) {
8132
8130
  console.warn(muteError);
8133
8131
  (0, ($parcel$interopDefault($jQDcL$reacthottoast)))(t("notifications.microphoneError"), {
@@ -8137,12 +8135,9 @@ const $a21b2aa064cb6c32$var$ControlBar = ()=>{
8137
8135
  };
8138
8136
  const onCameraClick = async ()=>{
8139
8137
  try {
8140
- if (streaming) {
8141
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("disableCamera");
8142
- await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).disableVideo();
8143
- } else {
8138
+ if (streaming) await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).disableVideo();
8139
+ else {
8144
8140
  setIsCameraLoading(true);
8145
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("enableCamera");
8146
8141
  await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableVideo();
8147
8142
  }
8148
8143
  } catch (cameraError) {
@@ -8156,7 +8151,6 @@ const $a21b2aa064cb6c32$var$ControlBar = ()=>{
8156
8151
  };
8157
8152
  const onRotateClick = async ()=>{
8158
8153
  try {
8159
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("rotateCamera");
8160
8154
  await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).rotateVideo();
8161
8155
  } catch (rotateError) {
8162
8156
  console.warn(rotateError);
@@ -9387,7 +9381,6 @@ var $7d4fa7ceb4c29739$export$2e2bcd8739ae039 = $7d4fa7ceb4c29739$var$Menu;
9387
9381
 
9388
9382
 
9389
9383
 
9390
-
9391
9384
  const $219bb3131afe1272$var$modalHeight = (desktop)=>desktop ? "215px" : "227px";
9392
9385
  const $219bb3131afe1272$export$b679a9a7caefa4b1 = (0, ($parcel$interopDefault($jQDcL$styledcomponents))).div`
9393
9386
  position: absolute;
@@ -9538,7 +9531,6 @@ const $696ded7a5399bcd4$var$YoutubePopup = ()=>{
9538
9531
  const onShareClick = (event)=>{
9539
9532
  event.preventDefault();
9540
9533
  setErrorMessage(null);
9541
- (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).event("youtubeShare");
9542
9534
  const [, videoId] = youtubeInputValue.match($696ded7a5399bcd4$var$youtubeIDRegExp) || [];
9543
9535
  if (videoId) {
9544
9536
  dispatch({
@@ -9777,7 +9769,7 @@ const $32119bad9969854e$export$1058440c16b3a127 = (0, ($parcel$interopDefault($j
9777
9769
  }
9778
9770
  `;
9779
9771
  const $32119bad9969854e$export$dfc919b3320e9811 = (0, ($parcel$interopDefault($jQDcL$styledcomponents))).button`
9780
- background-color: ${({ theme: theme })=>theme.primaryColor};
9772
+ background-color: ${({ theme: theme })=>theme.primaryColor} !important;
9781
9773
  padding: 8px 18px;
9782
9774
  width: 280px;
9783
9775
  height: 46px;
@@ -10293,55 +10285,36 @@ var $5f509eaff0d9c05a$export$2e2bcd8739ae039 = $5f509eaff0d9c05a$var$Settings;
10293
10285
 
10294
10286
 
10295
10287
 
10296
- const $bbe4b943c376008e$export$104f28dc79f055f4 = (0, ($parcel$interopDefault($jQDcL$styledcomponents))).div`
10297
- display: flex;
10298
- flex: 1;
10299
- flex-direction: column;
10300
- justify-content: center;
10301
- align-items: center;
10302
- background-color: #000;
10303
- color: #fff;
10304
- padding-top: 70px;
10305
- `;
10306
- const $bbe4b943c376008e$export$51071a7ce784448 = (0, ($parcel$interopDefault($jQDcL$styledcomponents))).span`
10307
- font-size: 60px;
10308
- `;
10309
- const $bbe4b943c376008e$export$eebc018855fb0cb6 = (0, ($parcel$interopDefault($jQDcL$styledcomponents))).h1`
10310
- font-size: 28px;
10311
- font-weight: 600;
10312
- line-height: 33.6px;
10313
- `;
10314
- const $bbe4b943c376008e$export$f4e7b895a81715e9 = (0, ($parcel$interopDefault($jQDcL$styledcomponents))).p`
10315
- font-size: 22px;
10316
- font-weight: 500;
10317
- line-height: 26.4px;
10318
- margin: 0;
10319
- `;
10320
- const $bbe4b943c376008e$export$3a4deda42b6182b7 = (0, ($parcel$interopDefault($jQDcL$styledcomponents))).button`
10321
- background-color: ${({ theme: theme })=>theme.primaryColor};
10322
- border: none;
10323
- border-radius: 50px;
10324
- padding: 12px 18px;
10325
- font-size: 16px;
10326
- font-weight: 600;
10327
- line-height: 18px;
10328
- color: #fff;
10329
- margin-top: 30px;
10330
- `;
10331
-
10332
-
10333
- const $3d1bfd8f074b99b1$var$EndView = ()=>{
10288
+ const $3d1bfd8f074b99b1$var$EndView = ({ state: state })=>{
10334
10289
  const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
10335
- const { streamState: streamState, setStreamState: setStreamState, options: options } = (0, $jQDcL$react.useContext)((0, $8b39f32976a7698a$export$2e2bcd8739ae039));
10336
- const ended = streamState === "ended";
10337
- const terminated = streamState === "terminated";
10338
- const expired = streamState === "expired";
10339
- const full = streamState === "full";
10290
+ const { setStreamState: setStreamState, options: options } = (0, $jQDcL$react.useContext)((0, $8b39f32976a7698a$export$2e2bcd8739ae039));
10291
+ const statesData = {
10292
+ ended: {
10293
+ title: t("endView.callLeft"),
10294
+ description: t("endView.ifMistakeRejoin"),
10295
+ icon: "\uD83D\uDC4B"
10296
+ },
10297
+ terminated: {
10298
+ title: t("endView.callEnded"),
10299
+ description: t("endView.callNoLongerActive"),
10300
+ icon: "\u260E\uFE0F"
10301
+ },
10302
+ expired: {
10303
+ title: t("endView.invalidLink"),
10304
+ description: t("endView.invalidOrExpired"),
10305
+ icon: "\uD83D\uDEAB"
10306
+ },
10307
+ full: {
10308
+ title: t("endView.full"),
10309
+ description: t("endView.fullDescription"),
10310
+ icon: "\uD83D\uDD12"
10311
+ }
10312
+ };
10313
+ const stateData = statesData[state];
10340
10314
  const onGoBackClick = async ()=>{
10341
10315
  try {
10342
10316
  setStreamState("loading");
10343
10317
  await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).init();
10344
- await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).joinRoom();
10345
10318
  if (options.controls?.microphone?.enabled) (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableMicrophone().catch((error)=>{
10346
10319
  console.error("enable microphone", error);
10347
10320
  });
@@ -10356,33 +10329,79 @@ const $3d1bfd8f074b99b1$var$EndView = ()=>{
10356
10329
  (0, $jQDcL$react.useEffect)(()=>{
10357
10330
  if (document.pictureInPictureElement) document.exitPictureInPicture();
10358
10331
  }, []);
10359
- return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $bbe4b943c376008e$export$104f28dc79f055f4), {
10332
+ return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
10333
+ className: "flex flex-col w-full h-full bg-gray-25 dark-theme p-4 md:p-6",
10360
10334
  children: [
10361
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $bbe4b943c376008e$export$51071a7ce784448), {
10362
- children: [
10363
- (ended || terminated) && "\uD83D\uDC4B",
10364
- (expired || full) && "\uD83E\uDD7A"
10365
- ]
10335
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("div", {
10336
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $6d8b37b4bd2444ef$export$194e6397ae7c260), {})
10337
+ }),
10338
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("div", {
10339
+ className: "flex flex-1 justify-center items-center",
10340
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
10341
+ 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",
10342
+ children: [
10343
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("div", {
10344
+ className: "text-4xl",
10345
+ children: stateData.icon
10346
+ }),
10347
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
10348
+ className: "flex flex-col items-center gap-1",
10349
+ children: [
10350
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("h2", {
10351
+ className: "text-2xl font-medium text-gray-1000",
10352
+ children: stateData.title
10353
+ }),
10354
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("p", {
10355
+ className: "text-sm text-gray-700",
10356
+ children: stateData.description
10357
+ })
10358
+ ]
10359
+ }),
10360
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
10361
+ className: "flex gap-2",
10362
+ children: [
10363
+ state === "ended" && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$snapcalldesignsystem.Button), {
10364
+ variant: "outline",
10365
+ size: "sm",
10366
+ className: "bg-gray-25 select-none",
10367
+ onClick: onGoBackClick,
10368
+ children: [
10369
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.FlipBackwardIcon), {
10370
+ size: 16,
10371
+ className: "text-gray-1000"
10372
+ }),
10373
+ t("endView.goBack")
10374
+ ]
10375
+ }),
10376
+ options.apiKey && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("a", {
10377
+ href: "https://app.snapcall.io",
10378
+ target: "_blank",
10379
+ rel: "noreferrer",
10380
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$snapcalldesignsystem.Button), {
10381
+ variant: "outline",
10382
+ size: "sm",
10383
+ className: "bg-gray-25 select-none",
10384
+ children: [
10385
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.ArrowUpRightIcon), {
10386
+ size: 16,
10387
+ className: "text-gray-1000"
10388
+ }),
10389
+ t("endView.openDashboard")
10390
+ ]
10391
+ })
10392
+ })
10393
+ ]
10394
+ })
10395
+ ]
10396
+ })
10366
10397
  }),
10367
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $bbe4b943c376008e$export$eebc018855fb0cb6), {
10398
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
10399
+ className: "flex gap-2 justify-center items-center text-xs text-gray-1000 [&>svg]:h-4 [&>svg]:w-auto",
10368
10400
  children: [
10369
- ended && t("endView.callLeft"),
10370
- terminated && t("endView.callEnded"),
10371
- expired && t("endView.tooLate"),
10372
- full && t("endView.full")
10401
+ t("shareLink.poweredBy"),
10402
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $6d8b37b4bd2444ef$export$194e6397ae7c260), {})
10373
10403
  ]
10374
- }),
10375
- expired && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $bbe4b943c376008e$export$f4e7b895a81715e9), {
10376
- children: t("endView.callIsOver")
10377
- }),
10378
- full && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $bbe4b943c376008e$export$f4e7b895a81715e9), {
10379
- children: t("endView.fullDescription")
10380
- }),
10381
- (ended || full) && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $bbe4b943c376008e$export$3a4deda42b6182b7), {
10382
- onClick: onGoBackClick,
10383
- children: t("endView.goBack")
10384
- }),
10385
- !full && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $65bf10a117819168$export$ad5f39c592532e2d), {})
10404
+ })
10386
10405
  ]
10387
10406
  });
10388
10407
  };
@@ -11029,6 +11048,17 @@ const $c3d5253d9d597eb5$export$494039379563c94d = async (options)=>{
11029
11048
 
11030
11049
 
11031
11050
 
11051
+ const $67040444b405b263$export$5964c316e853650f = ()=>{
11052
+ const renderRef = (0, $jQDcL$react.useRef)(true);
11053
+ if (renderRef.current === true) {
11054
+ renderRef.current = false;
11055
+ return true;
11056
+ }
11057
+ return renderRef.current;
11058
+ };
11059
+
11060
+
11061
+
11032
11062
  const $e3bb2c5d0e5b45b5$export$20f257fc407da7a3 = (0, $jQDcL$styledcomponents.createGlobalStyle)`
11033
11063
  ::-webkit-scrollbar {
11034
11064
  display: none;
@@ -11135,6 +11165,30 @@ const $30ad72ee44a52bf1$export$7f78f4f57f8852d5 = (seconds)=>{
11135
11165
 
11136
11166
 
11137
11167
 
11168
+
11169
+
11170
+
11171
+ const $8dfcca373a03b9e8$export$5a5695b638d078e7 = ()=>{
11172
+ const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
11173
+ const { toast: toast } = (0, $jQDcL$snapcalldesignsystem.useToast)();
11174
+ const reportError = (0, $jQDcL$react.useCallback)(({ code: code, error: error })=>{
11175
+ toast({
11176
+ title: t("notifications.error"),
11177
+ description: t("notifications.errorOccuredCode", {
11178
+ code: code
11179
+ }),
11180
+ variant: "destructive",
11181
+ duration: Infinity
11182
+ });
11183
+ console.error(`An error occured (${code}): ${error || "/"}`);
11184
+ }, [
11185
+ toast,
11186
+ t
11187
+ ]);
11188
+ return reportError;
11189
+ };
11190
+
11191
+
11138
11192
  const $ccbd73eb953b0bd0$var$fileToDataUrl = (file)=>{
11139
11193
  return new Promise((resolve, reject)=>{
11140
11194
  const reader = new FileReader();
@@ -11146,7 +11200,7 @@ const $ccbd73eb953b0bd0$var$fileToDataUrl = (file)=>{
11146
11200
  const $ccbd73eb953b0bd0$export$b3fd96a52c80b3af = ()=>{
11147
11201
  const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
11148
11202
  const { openAssetsModal: openAssetsModal, addAsset: addAsset, setIncomingAsset: setIncomingAsset, isRecording: isRecording } = (0, $098350f721a0bb52$export$2174f25d572f9f31)();
11149
- const { toast: toast } = (0, $jQDcL$snapcalldesignsystem.useToast)();
11203
+ const reportError = (0, $8dfcca373a03b9e8$export$5a5695b638d078e7)();
11150
11204
  const fileInputRef = (0, $jQDcL$react.useRef)(null);
11151
11205
  const isMedium = window.matchMedia("(min-width: 768px)").matches;
11152
11206
  const onUploadClick = async (event)=>{
@@ -11169,13 +11223,12 @@ const $ccbd73eb953b0bd0$export$b3fd96a52c80b3af = ()=>{
11169
11223
  createdAt: createdAt
11170
11224
  });
11171
11225
  openAssetsModal();
11172
- } catch (err) {
11173
- toast({
11174
- title: t("notifications.uploadError"),
11175
- variant: "destructive"
11226
+ } catch (error) {
11227
+ reportError({
11228
+ code: "UPLD_1",
11229
+ error: error
11176
11230
  });
11177
11231
  setIncomingAsset(null);
11178
- console.error(err);
11179
11232
  }
11180
11233
  }
11181
11234
  };
@@ -11184,7 +11237,7 @@ const $ccbd73eb953b0bd0$export$b3fd96a52c80b3af = ()=>{
11184
11237
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("input", {
11185
11238
  ref: fileInputRef,
11186
11239
  type: "file",
11187
- accept: ".jpg,.JPG,.png,.PNG",
11240
+ accept: ".jpg,.JPG,.png,.PNG,.jpeg,.JPEG",
11188
11241
  className: "hidden",
11189
11242
  onChange: onUploadClick
11190
11243
  }),
@@ -11207,75 +11260,6 @@ const $ccbd73eb953b0bd0$export$b3fd96a52c80b3af = ()=>{
11207
11260
  };
11208
11261
 
11209
11262
 
11210
- const $48ac80173d63a751$var$browser = (0, ($parcel$interopDefault($jQDcL$bowser))).parse(window.navigator.userAgent);
11211
- const $48ac80173d63a751$export$aa00db7a33d4c484 = ()=>{
11212
- const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
11213
- const { mode: mode, hasVideo: hasVideo, isRecording: isRecording, openQRCodeModal: openQRCodeModal } = (0, $098350f721a0bb52$export$2174f25d572f9f31)();
11214
- const [showQrCodeToast, setShowQrCodeToast] = (0, $jQDcL$react.useState)($48ac80173d63a751$var$browser.platform.type === "desktop");
11215
- const [timer, setTimer] = (0, $jQDcL$react.useState)(0);
11216
- const timerInterval = (0, $jQDcL$react.useRef)(0);
11217
- const isMedium = window.matchMedia("(min-width: 768px)").matches;
11218
- (0, $jQDcL$react.useEffect)(()=>{
11219
- if (isRecording) {
11220
- clearInterval(timerInterval.current);
11221
- timerInterval.current = window.setInterval(()=>setTimer((t)=>t + 1), 1000);
11222
- } else {
11223
- clearInterval(timerInterval.current);
11224
- setTimer(0);
11225
- }
11226
- }, [
11227
- isRecording
11228
- ]);
11229
- return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11230
- className: "flex items-start justify-between z-50",
11231
- children: [
11232
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $ccbd73eb953b0bd0$export$b3fd96a52c80b3af), {}),
11233
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11234
- className: "flex flex-col items-center gap-4",
11235
- children: [
11236
- mode !== "photo" && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11237
- className: (0, ($parcel$interopDefault($jQDcL$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"),
11238
- children: [
11239
- isRecording && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("span", {
11240
- className: "w-2 h-2 rounded-full bg-red-700 pulse-red-700"
11241
- }),
11242
- (0, $30ad72ee44a52bf1$export$7f78f4f57f8852d5)(timer)
11243
- ]
11244
- }),
11245
- showQrCodeToast && mode !== "screen" && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.RawToast), {
11246
- className: "bg-gray-25",
11247
- children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.ToastContent), {
11248
- title: t("recorder.switchToMobileTitle"),
11249
- icon: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.QrCode1Icon), {
11250
- className: "text-white"
11251
- }),
11252
- onClose: ()=>setShowQrCodeToast(false),
11253
- actions: [
11254
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.ToastAction), {
11255
- altText: t("recorder.showQrCode"),
11256
- variant: "primary",
11257
- onClick: openQRCodeModal,
11258
- children: t("recorder.showQrCode")
11259
- }, "showQrCode")
11260
- ]
11261
- })
11262
- })
11263
- ]
11264
- }),
11265
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$snapcalldesignsystem.Button), {
11266
- className: "bg-gray-25/50 hover:bg-gray-25/60 active:bg-gray-25/70 rounded-full invisible",
11267
- icon: !isMedium,
11268
- children: [
11269
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Settings1Icon), {
11270
- size: 18,
11271
- className: "text-white"
11272
- }),
11273
- isMedium && t("settings.title")
11274
- ]
11275
- })
11276
- ]
11277
- });
11278
- };
11279
11263
 
11280
11264
 
11281
11265
 
@@ -11284,52 +11268,296 @@ const $48ac80173d63a751$export$aa00db7a33d4c484 = ()=>{
11284
11268
 
11285
11269
 
11286
11270
 
11287
- const $8229feab219a258c$export$15073df9b5e6c63e = (constraints)=>{
11288
- const optimisticPermissions = (0, $jQDcL$react.useRef)({
11289
- audio: false,
11290
- video: false
11271
+ const $9277d94be7423d29$var$SheetDialogContext = /*#__PURE__*/ (0, $jQDcL$react.createContext)({
11272
+ type: "dialog",
11273
+ showClose: true
11274
+ });
11275
+ const $9277d94be7423d29$export$56d72fe406945300 = ({ type: type = "dialog", showClose: showClose = true, children: children })=>{
11276
+ return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)($9277d94be7423d29$var$SheetDialogContext.Provider, {
11277
+ value: {
11278
+ type: type,
11279
+ showClose: showClose
11280
+ },
11281
+ children: children
11291
11282
  });
11292
- const handleVideoState = (0, $jQDcL$react.useCallback)(async ({ optimisticVideoState: optimisticVideoState } = {
11293
- optimisticVideoState: false
11294
- })=>{
11295
- const devicesState = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getDevicesState();
11296
- if (constraints.video && !devicesState.camera.enabled && !optimisticVideoState) {
11297
- optimisticPermissions.current.video = true;
11298
- try {
11299
- await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableVideo({
11300
- resolution: "vga",
11301
- frameRate: 20,
11302
- facingMode: "environment"
11303
- });
11304
- } catch (err) {
11305
- console.error(err);
11306
- optimisticPermissions.current.video = false;
11307
- }
11308
- } else if (!constraints.video && devicesState.camera.enabled) try {
11309
- await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).disableVideo();
11310
- optimisticPermissions.current.video = false;
11311
- } catch (err) {
11312
- console.error(err);
11313
- }
11314
- }, [
11315
- constraints.video
11316
- ]);
11317
- const handleMicrophoneState = (0, $jQDcL$react.useCallback)(async ({ optimisticAudioState: optimisticAudioState } = {
11318
- optimisticAudioState: false
11319
- })=>{
11320
- const devicesState = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getDevicesState();
11321
- if (constraints.audio && !devicesState.microphone.enabled && !optimisticAudioState) {
11322
- optimisticPermissions.current.audio = true;
11323
- try {
11324
- await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableMicrophone();
11325
- } catch (err) {
11326
- console.error(err);
11327
- optimisticPermissions.current.audio = false;
11328
- }
11329
- }
11330
- }, [
11331
- constraints.audio
11332
- ]);
11283
+ };
11284
+ const $9277d94be7423d29$export$e943710ec76a9465 = (props)=>{
11285
+ const { type: type } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11286
+ if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Dialog), {
11287
+ ...props
11288
+ });
11289
+ else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Sheet), {
11290
+ ...props
11291
+ });
11292
+ };
11293
+ const $9277d94be7423d29$export$76259cff208cccae = (props)=>{
11294
+ const { type: type } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11295
+ if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogTrigger), {
11296
+ ...props
11297
+ });
11298
+ else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetTrigger), {
11299
+ ...props
11300
+ });
11301
+ };
11302
+ const $9277d94be7423d29$export$ae085f72dad73e20 = (props)=>{
11303
+ const { type: type, showClose: showClose } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11304
+ if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogHeader), {
11305
+ ...props
11306
+ });
11307
+ else {
11308
+ const { children: children, ...other } = props;
11309
+ return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$snapcalldesignsystem.SheetHeader), {
11310
+ ...other,
11311
+ children: [
11312
+ children,
11313
+ showClose && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetClose), {})
11314
+ ]
11315
+ });
11316
+ }
11317
+ };
11318
+ const $9277d94be7423d29$export$4cf67c05c32f37ce = (props)=>{
11319
+ const { type: type, showClose: showClose } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11320
+ if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogContent), {
11321
+ showClose: showClose,
11322
+ ...props
11323
+ });
11324
+ else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetContent), {
11325
+ side: "bottom",
11326
+ ...props
11327
+ });
11328
+ };
11329
+ const $9277d94be7423d29$export$5e9fc1357420b7eb = (props)=>{
11330
+ const { type: type } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11331
+ if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogTitle), {
11332
+ ...props
11333
+ });
11334
+ else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetTitle), {
11335
+ ...props
11336
+ });
11337
+ };
11338
+ const $9277d94be7423d29$export$51c201eb88940e0f = (props)=>{
11339
+ const { type: type } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11340
+ if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogDescription), {
11341
+ ...props
11342
+ });
11343
+ else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetDescription), {
11344
+ ...props
11345
+ });
11346
+ };
11347
+ const $9277d94be7423d29$export$2cf3a8077f66b4f6 = (props)=>{
11348
+ const { type: type } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11349
+ if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogDescription), {
11350
+ ...props
11351
+ });
11352
+ else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetDescription), {
11353
+ ...props
11354
+ });
11355
+ };
11356
+
11357
+
11358
+
11359
+
11360
+
11361
+ const $f718706dd298ae4f$export$3315c1cc2d5487ba = ({ title: title, icon: icon, isActive: isActive, onClick: onClick })=>{
11362
+ return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11363
+ className: (0, ($parcel$interopDefault($jQDcL$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"),
11364
+ onClick: onClick,
11365
+ children: [
11366
+ icon && /*#__PURE__*/ (0, $jQDcL$react.cloneElement)(icon, {
11367
+ size: 18,
11368
+ className: (0, ($parcel$interopDefault($jQDcL$classnames)))("text-gray-1000 shrink-0", icon.props.className)
11369
+ }),
11370
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("label", {
11371
+ className: "text-sm font-semibold truncate cursor-pointer",
11372
+ children: title
11373
+ })
11374
+ ]
11375
+ });
11376
+ };
11377
+
11378
+
11379
+
11380
+
11381
+
11382
+
11383
+ const $01fe82556a919c03$export$50a2cb5c859687d3 = ({ id: id, title: title, description: description, action: action })=>{
11384
+ return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11385
+ className: "flex flex-col gap-1 items-start md:flex-row md:gap-8 md:items-center",
11386
+ children: [
11387
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11388
+ className: "flex flex-col gap-1 flex-1",
11389
+ children: [
11390
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("label", {
11391
+ className: "text-sm font-medium truncate",
11392
+ htmlFor: id,
11393
+ children: title
11394
+ }),
11395
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("p", {
11396
+ className: "text-sm text-gray-700 truncate hidden md:block",
11397
+ children: description
11398
+ })
11399
+ ]
11400
+ }),
11401
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("div", {
11402
+ className: "shrink-0 w-full md:w-auto",
11403
+ children: action
11404
+ })
11405
+ ]
11406
+ });
11407
+ };
11408
+
11409
+
11410
+
11411
+
11412
+
11413
+ const $8f65e34d23588915$var$languages = Object.keys((0, $b45c0bcc142f0b5e$export$150b732325d14d04)).filter((it)=>it !== "dev").map((it)=>({
11414
+ id: it,
11415
+ name: (0, $b45c0bcc142f0b5e$export$150b732325d14d04)[it].name
11416
+ }));
11417
+ const $8f65e34d23588915$export$9ee2a145b590ce4b = ()=>{
11418
+ const { i18n: i18n, t: t } = (0, $jQDcL$reacti18next.useTranslation)();
11419
+ const { setLanguage: setLanguage } = (0, $jQDcL$react.useContext)((0, $8b39f32976a7698a$export$2e2bcd8739ae039));
11420
+ return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$reactjsxruntime.Fragment), {
11421
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $01fe82556a919c03$export$50a2cb5c859687d3), {
11422
+ id: "language",
11423
+ title: t("settings.language"),
11424
+ description: t("settings.selectYourLanguage"),
11425
+ action: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$snapcalldesignsystem.Select), {
11426
+ value: i18n.language,
11427
+ onValueChange: (value)=>setLanguage(value),
11428
+ children: [
11429
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectTrigger), {
11430
+ className: "bg-gray-50",
11431
+ id: "language",
11432
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectValue), {})
11433
+ }),
11434
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectContent), {
11435
+ children: $8f65e34d23588915$var$languages.map((language)=>/*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectItem), {
11436
+ value: language.id,
11437
+ children: language.name
11438
+ }, language.id))
11439
+ })
11440
+ ]
11441
+ })
11442
+ })
11443
+ });
11444
+ };
11445
+
11446
+
11447
+
11448
+
11449
+
11450
+
11451
+
11452
+ const $cf45aa5122d1e9ea$export$6aa26f5ebe6471fc = ({ kind: kind, includeDefault: includeDefault = false } = {})=>{
11453
+ const getMediaDevices = async ()=>{
11454
+ const devices = await navigator.mediaDevices.enumerateDevices();
11455
+ const filteredDevices = devices.filter((device)=>{
11456
+ if (device.deviceId === "default" && !includeDefault) return false;
11457
+ if (kind && kind !== device.kind) return false;
11458
+ return true;
11459
+ });
11460
+ return filteredDevices;
11461
+ };
11462
+ return (0, $jQDcL$reactquery.useQuery)({
11463
+ queryKey: [
11464
+ "mediaDevices",
11465
+ kind || "all",
11466
+ includeDefault
11467
+ ],
11468
+ queryFn: getMediaDevices,
11469
+ retry: false,
11470
+ refetchOnWindowFocus: false,
11471
+ staleTime: Infinity
11472
+ });
11473
+ };
11474
+
11475
+
11476
+
11477
+
11478
+ const $c1f57aebcca9b882$export$9f1846b6ccad1893 = ()=>{
11479
+ return (0, $jQDcL$reactquery.useQuery)({
11480
+ queryKey: [
11481
+ "devicesState"
11482
+ ],
11483
+ queryFn: ()=>(0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getDevicesState(),
11484
+ retry: false,
11485
+ refetchOnWindowFocus: false,
11486
+ staleTime: Infinity
11487
+ });
11488
+ };
11489
+
11490
+
11491
+
11492
+
11493
+ const $e10783d7d081fd73$export$20144d37f30919ab = ()=>{
11494
+ const queryClient = (0, $jQDcL$reactquery.useQueryClient)();
11495
+ return (0, $jQDcL$reactquery.useMutation)({
11496
+ mutationFn: (device)=>{
11497
+ if (device.kind === "audioinput") return (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).switchMicrophone(device.deviceId);
11498
+ else if (device.kind === "videoinput") return (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).switchWebcam({
11499
+ device: device
11500
+ });
11501
+ else if (device.kind === "audiooutput") throw new Error("Audio output not supported");
11502
+ throw new Error("Unsupported device info");
11503
+ },
11504
+ onSettled: ()=>queryClient.invalidateQueries([
11505
+ "devicesState"
11506
+ ])
11507
+ });
11508
+ };
11509
+
11510
+
11511
+
11512
+
11513
+
11514
+
11515
+ const $8229feab219a258c$export$15073df9b5e6c63e = (constraints)=>{
11516
+ const optimisticPermissions = (0, $jQDcL$react.useRef)({
11517
+ audio: false,
11518
+ video: false
11519
+ });
11520
+ const handleVideoState = (0, $jQDcL$react.useCallback)(async ({ optimisticVideoState: optimisticVideoState } = {
11521
+ optimisticVideoState: false
11522
+ })=>{
11523
+ const devicesState = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getDevicesState();
11524
+ if (constraints.video && !devicesState.camera.enabled && !optimisticVideoState) {
11525
+ optimisticPermissions.current.video = true;
11526
+ try {
11527
+ await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableVideo({
11528
+ resolution: "vga",
11529
+ frameRate: 20,
11530
+ facingMode: "environment"
11531
+ });
11532
+ } catch (err) {
11533
+ console.error(err);
11534
+ optimisticPermissions.current.video = false;
11535
+ }
11536
+ } else if (!constraints.video && devicesState.camera.enabled) try {
11537
+ await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).disableVideo();
11538
+ optimisticPermissions.current.video = false;
11539
+ } catch (err) {
11540
+ console.error(err);
11541
+ }
11542
+ }, [
11543
+ constraints.video
11544
+ ]);
11545
+ const handleMicrophoneState = (0, $jQDcL$react.useCallback)(async ({ optimisticAudioState: optimisticAudioState } = {
11546
+ optimisticAudioState: false
11547
+ })=>{
11548
+ const devicesState = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getDevicesState();
11549
+ if (constraints.audio && !devicesState.microphone.enabled && !optimisticAudioState) {
11550
+ optimisticPermissions.current.audio = true;
11551
+ try {
11552
+ await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableMicrophone();
11553
+ } catch (err) {
11554
+ console.error(err);
11555
+ optimisticPermissions.current.audio = false;
11556
+ }
11557
+ }
11558
+ }, [
11559
+ constraints.audio
11560
+ ]);
11333
11561
  const query = (0, $jQDcL$reactquery.useQuery)({
11334
11562
  queryKey: [
11335
11563
  constraints
@@ -11386,6 +11614,371 @@ const $8229feab219a258c$export$15073df9b5e6c63e = (constraints)=>{
11386
11614
  };
11387
11615
 
11388
11616
 
11617
+ const $8dc2b756952b64e5$export$75b44b566abc4e9c = ()=>{
11618
+ const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
11619
+ const audioGUM = (0, $8229feab219a258c$export$15073df9b5e6c63e)({
11620
+ audio: true,
11621
+ video: true
11622
+ });
11623
+ const audioInputDevices = (0, $cf45aa5122d1e9ea$export$6aa26f5ebe6471fc)({
11624
+ kind: "audioinput",
11625
+ includeDefault: true
11626
+ });
11627
+ const devicesState = (0, $c1f57aebcca9b882$export$9f1846b6ccad1893)();
11628
+ const updateDevice = (0, $e10783d7d081fd73$export$20144d37f30919ab)();
11629
+ const filteredAudioInputDevices = (0, $jQDcL$react.useMemo)(()=>{
11630
+ if (audioInputDevices.data) return audioInputDevices.data.filter((it)=>it.deviceId !== "default");
11631
+ return [];
11632
+ }, [
11633
+ audioInputDevices.data
11634
+ ]);
11635
+ const selectedAudioDevice = (0, $jQDcL$react.useMemo)(()=>{
11636
+ const deviceId = devicesState.data?.microphone.device?.deviceId;
11637
+ if (audioInputDevices.data && deviceId === "default") {
11638
+ const defaultDevice = audioInputDevices.data.find((it)=>it.deviceId === "default");
11639
+ const realDevice = audioInputDevices.data.find((it)=>it.groupId === defaultDevice?.groupId && it.deviceId !== "default");
11640
+ if (realDevice) return realDevice.deviceId;
11641
+ }
11642
+ return deviceId || "";
11643
+ }, [
11644
+ audioInputDevices.data,
11645
+ devicesState.data
11646
+ ]);
11647
+ return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$reactjsxruntime.Fragment), {
11648
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $01fe82556a919c03$export$50a2cb5c859687d3), {
11649
+ id: "microphone",
11650
+ title: t("misc.microphone"),
11651
+ description: t("settings.selectYourMicrophone"),
11652
+ action: audioGUM.isSuccess ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$snapcalldesignsystem.Select), {
11653
+ value: selectedAudioDevice,
11654
+ onValueChange: (deviceId)=>{
11655
+ const device = filteredAudioInputDevices.find((it)=>it.deviceId === deviceId);
11656
+ if (device) updateDevice.mutate(device);
11657
+ },
11658
+ children: [
11659
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectTrigger), {
11660
+ className: "bg-gray-50",
11661
+ id: "microphone",
11662
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectValue), {
11663
+ children: updateDevice.isLoading ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$reactjsxruntime.Fragment), {
11664
+ children: updateDevice.variables?.label
11665
+ }) : undefined
11666
+ })
11667
+ }),
11668
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectContent), {
11669
+ children: filteredAudioInputDevices.map((device)=>/*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectItem), {
11670
+ value: device.deviceId,
11671
+ children: device.label
11672
+ }, device.deviceId))
11673
+ })
11674
+ ]
11675
+ }) : audioGUM.isError ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("span", {
11676
+ children: t("recorder.allowCamMicAccess")
11677
+ }) : /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SpinnerIcon), {
11678
+ size: 28,
11679
+ className: "animate-spin text-blue-700"
11680
+ })
11681
+ })
11682
+ });
11683
+ };
11684
+
11685
+
11686
+
11687
+
11688
+
11689
+
11690
+
11691
+
11692
+
11693
+
11694
+
11695
+ const $2736f94642df39f3$export$40214e6b2a12030d = ()=>{
11696
+ const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
11697
+ const videoGUM = (0, $8229feab219a258c$export$15073df9b5e6c63e)({
11698
+ audio: true,
11699
+ video: true
11700
+ });
11701
+ const videoInputDevices = (0, $cf45aa5122d1e9ea$export$6aa26f5ebe6471fc)({
11702
+ kind: "videoinput"
11703
+ });
11704
+ const devicesState = (0, $c1f57aebcca9b882$export$9f1846b6ccad1893)();
11705
+ const updateDevice = (0, $e10783d7d081fd73$export$20144d37f30919ab)();
11706
+ return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$reactjsxruntime.Fragment), {
11707
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $01fe82556a919c03$export$50a2cb5c859687d3), {
11708
+ id: "camera",
11709
+ title: t("misc.camera"),
11710
+ description: t("settings.selectYourCamera"),
11711
+ action: videoGUM.isSuccess ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$snapcalldesignsystem.Select), {
11712
+ value: devicesState.data?.camera.device?.deviceId,
11713
+ onValueChange: (deviceId)=>{
11714
+ const device = videoInputDevices.data?.find((it)=>it.deviceId === deviceId);
11715
+ if (device) updateDevice.mutate(device);
11716
+ },
11717
+ children: [
11718
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectTrigger), {
11719
+ className: "bg-gray-50",
11720
+ id: "camera",
11721
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectValue), {
11722
+ placeholder: "/",
11723
+ children: updateDevice.isLoading ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$reactjsxruntime.Fragment), {
11724
+ children: updateDevice.variables?.label
11725
+ }) : undefined
11726
+ })
11727
+ }),
11728
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectContent), {
11729
+ children: videoInputDevices.data && videoInputDevices.data.map((device)=>/*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SelectItem), {
11730
+ value: device.deviceId,
11731
+ children: device.label
11732
+ }, device.deviceId))
11733
+ })
11734
+ ]
11735
+ }) : videoGUM.isError ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("span", {
11736
+ children: t("recorder.allowCamMicAccess")
11737
+ }) : /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SpinnerIcon), {
11738
+ size: 28,
11739
+ className: "animate-spin text-blue-700"
11740
+ })
11741
+ })
11742
+ });
11743
+ };
11744
+
11745
+
11746
+ const $e9d4b4657e98cb84$export$c197ce1a352372f = ({ state: state })=>{
11747
+ const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
11748
+ const menuItems = (0, $jQDcL$react.useMemo)(()=>[
11749
+ {
11750
+ id: "audio",
11751
+ title: t("misc.audio"),
11752
+ icon: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.VolumeMaxIcon), {
11753
+ duotone: true
11754
+ }),
11755
+ content: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $8dc2b756952b64e5$export$75b44b566abc4e9c), {})
11756
+ },
11757
+ {
11758
+ id: "video",
11759
+ title: t("misc.video"),
11760
+ icon: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.VideoRecorderIcon), {
11761
+ duotone: true
11762
+ }),
11763
+ content: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $2736f94642df39f3$export$40214e6b2a12030d), {})
11764
+ },
11765
+ {
11766
+ id: "preferences",
11767
+ title: t("settings.preferences"),
11768
+ icon: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Settings3Icon), {
11769
+ duotone: true
11770
+ }),
11771
+ content: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $8f65e34d23588915$export$9ee2a145b590ce4b), {})
11772
+ }
11773
+ ], [
11774
+ t
11775
+ ]);
11776
+ const isMedium = window.matchMedia("(min-width: 768px)").matches;
11777
+ const [selectedMenuItem, setSelectedMenuItem] = (0, $jQDcL$react.useState)(isMedium ? menuItems[0] : null);
11778
+ (0, $jQDcL$react.useEffect)(()=>{
11779
+ if (isMedium && !selectedMenuItem) setSelectedMenuItem(menuItems[0]);
11780
+ }, [
11781
+ isMedium,
11782
+ selectedMenuItem,
11783
+ menuItems
11784
+ ]);
11785
+ return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $9277d94be7423d29$export$e943710ec76a9465), {
11786
+ open: state.isOpen,
11787
+ onOpenChange: state.setOpen,
11788
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $9277d94be7423d29$export$56d72fe406945300), {
11789
+ type: isMedium ? "dialog" : "sheet",
11790
+ showClose: !isMedium,
11791
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $9277d94be7423d29$export$4cf67c05c32f37ce), {
11792
+ className: (0, ($parcel$interopDefault($jQDcL$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"),
11793
+ children: [
11794
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $9277d94be7423d29$export$ae085f72dad73e20), {
11795
+ children: isMedium ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11796
+ className: "flex justify-between items-center p-3",
11797
+ children: [
11798
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11799
+ className: "flex gap-2 items-center",
11800
+ children: [
11801
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Settings1Icon), {
11802
+ size: 18,
11803
+ className: "text-white"
11804
+ }),
11805
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $9277d94be7423d29$export$5e9fc1357420b7eb), {
11806
+ className: "text-sm",
11807
+ children: t("settings.title")
11808
+ })
11809
+ ]
11810
+ }),
11811
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Button), {
11812
+ variant: "outline",
11813
+ size: "xs",
11814
+ className: "bg-gray-25",
11815
+ onClick: state.close,
11816
+ icon: true,
11817
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.XCloseIcon), {
11818
+ size: 12
11819
+ })
11820
+ })
11821
+ ]
11822
+ }) : /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11823
+ className: "flex gap-4 items-center",
11824
+ children: [
11825
+ selectedMenuItem && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Button), {
11826
+ variant: "secondary",
11827
+ size: "sm",
11828
+ onClick: ()=>setSelectedMenuItem(null),
11829
+ icon: true,
11830
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.ArrowLeftIcon), {
11831
+ size: 12,
11832
+ className: "text-white"
11833
+ })
11834
+ }),
11835
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11836
+ className: "flex gap-2 items-center",
11837
+ children: [
11838
+ !selectedMenuItem && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Settings1Icon), {
11839
+ size: 18,
11840
+ className: "text-white"
11841
+ }),
11842
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $9277d94be7423d29$export$5e9fc1357420b7eb), {
11843
+ className: "text-lg",
11844
+ children: selectedMenuItem ? selectedMenuItem.title : t("settings.title")
11845
+ })
11846
+ ]
11847
+ })
11848
+ ]
11849
+ })
11850
+ }),
11851
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11852
+ className: "w-full h-full flex divide-x divide-gray-200",
11853
+ children: [
11854
+ (isMedium || !selectedMenuItem) && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11855
+ className: "flex flex-col w-full md:w-[300px] md:p-4 shrink-0",
11856
+ children: [
11857
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("div", {
11858
+ className: "flex flex-col gap-2 flex-1",
11859
+ children: menuItems.map((item)=>/*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $f718706dd298ae4f$export$3315c1cc2d5487ba), {
11860
+ title: item.title,
11861
+ icon: item.icon,
11862
+ isActive: item.id === selectedMenuItem?.id,
11863
+ onClick: ()=>setSelectedMenuItem(item)
11864
+ }, item.id))
11865
+ }),
11866
+ isMedium && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("a", {
11867
+ href: "https://help.snapcall.io",
11868
+ target: "_blank",
11869
+ rel: "noreferrer",
11870
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $f718706dd298ae4f$export$3315c1cc2d5487ba), {
11871
+ title: t("settings.helpCenter"),
11872
+ icon: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.HelpCircleIcon), {
11873
+ duotone: true
11874
+ })
11875
+ })
11876
+ })
11877
+ ]
11878
+ }),
11879
+ selectedMenuItem && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11880
+ className: "w-full md:p-8 divide-y divide-gray-200",
11881
+ children: [
11882
+ isMedium && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("h2", {
11883
+ className: "text-md font-semibold mb-2",
11884
+ children: selectedMenuItem.title
11885
+ }),
11886
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("div", {
11887
+ className: "md:pt-4",
11888
+ children: selectedMenuItem.content
11889
+ })
11890
+ ]
11891
+ })
11892
+ ]
11893
+ })
11894
+ ]
11895
+ })
11896
+ })
11897
+ });
11898
+ };
11899
+
11900
+
11901
+ const $48ac80173d63a751$var$browser = (0, ($parcel$interopDefault($jQDcL$bowser))).parse(window.navigator.userAgent);
11902
+ const $48ac80173d63a751$export$aa00db7a33d4c484 = ()=>{
11903
+ const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
11904
+ const { mode: mode, hasVideo: hasVideo, isRecording: isRecording, openQRCodeModal: openQRCodeModal } = (0, $098350f721a0bb52$export$2174f25d572f9f31)();
11905
+ const [showQrCodeToast, setShowQrCodeToast] = (0, $jQDcL$react.useState)($48ac80173d63a751$var$browser.platform.type === "desktop");
11906
+ const [timer, setTimer] = (0, $jQDcL$react.useState)(0);
11907
+ const timerInterval = (0, $jQDcL$react.useRef)(0);
11908
+ const settingsDialogState = (0, $jQDcL$reactstately.useOverlayTriggerState)({});
11909
+ const isMedium = window.matchMedia("(min-width: 768px)").matches;
11910
+ (0, $jQDcL$react.useEffect)(()=>{
11911
+ if (isRecording) {
11912
+ clearInterval(timerInterval.current);
11913
+ timerInterval.current = window.setInterval(()=>setTimer((t)=>t + 1), 1000);
11914
+ } else {
11915
+ clearInterval(timerInterval.current);
11916
+ setTimer(0);
11917
+ }
11918
+ }, [
11919
+ isRecording
11920
+ ]);
11921
+ return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11922
+ className: "flex items-start justify-between z-50",
11923
+ children: [
11924
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $ccbd73eb953b0bd0$export$b3fd96a52c80b3af), {}),
11925
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11926
+ className: "flex flex-col items-center gap-4 overflow-hidden",
11927
+ children: [
11928
+ mode !== "photo" && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
11929
+ className: (0, ($parcel$interopDefault($jQDcL$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"),
11930
+ children: [
11931
+ isRecording && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("span", {
11932
+ className: "w-2 h-2 rounded-full bg-red-700 pulse-red-700"
11933
+ }),
11934
+ (0, $30ad72ee44a52bf1$export$7f78f4f57f8852d5)(timer)
11935
+ ]
11936
+ }),
11937
+ showQrCodeToast && mode !== "screen" && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.RawToast), {
11938
+ className: "bg-gray-25",
11939
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.ToastContent), {
11940
+ title: t("recorder.switchToMobileTitle"),
11941
+ icon: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.QrCode1Icon), {
11942
+ className: "text-white"
11943
+ }),
11944
+ onClose: ()=>setShowQrCodeToast(false),
11945
+ actions: [
11946
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.ToastAction), {
11947
+ altText: t("recorder.showQrCode"),
11948
+ variant: "primary",
11949
+ onClick: openQRCodeModal,
11950
+ children: t("recorder.showQrCode")
11951
+ }, "showQrCode")
11952
+ ]
11953
+ })
11954
+ })
11955
+ ]
11956
+ }),
11957
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$snapcalldesignsystem.Button), {
11958
+ className: "bg-gray-25/50 hover:bg-gray-25/60 active:bg-gray-25/70 rounded-full",
11959
+ icon: !isMedium,
11960
+ onClick: settingsDialogState.open,
11961
+ children: [
11962
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Settings1Icon), {
11963
+ size: 18,
11964
+ className: "text-white"
11965
+ }),
11966
+ isMedium && t("settings.title")
11967
+ ]
11968
+ }),
11969
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $e9d4b4657e98cb84$export$c197ce1a352372f), {
11970
+ state: settingsDialogState
11971
+ })
11972
+ ]
11973
+ });
11974
+ };
11975
+
11976
+
11977
+
11978
+
11979
+
11980
+
11981
+
11389
11982
 
11390
11983
 
11391
11984
  const $a33432a0233f49a9$var$audioModes = [
@@ -11400,6 +11993,7 @@ const $a33432a0233f49a9$var$videoModes = [
11400
11993
  ];
11401
11994
  const $a33432a0233f49a9$export$ca9d588768f0d0da = ({ children: children })=>{
11402
11995
  const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
11996
+ const reportError = (0, $8dfcca373a03b9e8$export$5a5695b638d078e7)();
11403
11997
  const { mode: mode } = (0, $098350f721a0bb52$export$2174f25d572f9f31)();
11404
11998
  const hasAudio = $a33432a0233f49a9$var$audioModes.includes(mode);
11405
11999
  const hasVideo = $a33432a0233f49a9$var$videoModes.includes(mode);
@@ -11422,7 +12016,7 @@ const $a33432a0233f49a9$export$ca9d588768f0d0da = ({ children: children })=>{
11422
12016
  }),
11423
12017
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("p", {
11424
12018
  className: "text-sm text-gray-900",
11425
- children: "Lorem ipsum dolor sit amet consectetur. Arcu massa neque."
12019
+ children: mode === "screen" ? t("recorder.chooseWhatYouWantToShareDescription") : hasAudio && hasVideo ? t("recorder.noCameraAndMicrophoneAccessDescription") : hasAudio ? t("recorder.noMicrophoneAccessDescription") : hasVideo ? t("recorder.noCameraAccessDescription") : "/"
11426
12020
  })
11427
12021
  ]
11428
12022
  }),
@@ -11436,7 +12030,10 @@ const $a33432a0233f49a9$export$ca9d588768f0d0da = ({ children: children })=>{
11436
12030
  onClick: ()=>{
11437
12031
  if (mode === "screen") (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableScreenshare({
11438
12032
  audioTransportOption: "mix"
11439
- });
12033
+ }).catch((error)=>reportError({
12034
+ code: "SC_3",
12035
+ error: error
12036
+ }));
11440
12037
  else getUserMedia.refetch();
11441
12038
  },
11442
12039
  children: mode === "screen" ? t("recorder.startScreenRecording") : t("recorder.allowAccess")
@@ -11592,95 +12189,6 @@ const $c6c03cb1324fb0c3$export$e9b744e15e8fe06f = ()=>{
11592
12189
 
11593
12190
 
11594
12191
 
11595
- const $9277d94be7423d29$var$SheetDialogContext = /*#__PURE__*/ (0, $jQDcL$react.createContext)({
11596
- type: "dialog",
11597
- showClose: true
11598
- });
11599
- const $9277d94be7423d29$export$56d72fe406945300 = ({ type: type = "dialog", showClose: showClose = true, children: children })=>{
11600
- return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)($9277d94be7423d29$var$SheetDialogContext.Provider, {
11601
- value: {
11602
- type: type,
11603
- showClose: showClose
11604
- },
11605
- children: children
11606
- });
11607
- };
11608
- const $9277d94be7423d29$export$e943710ec76a9465 = (props)=>{
11609
- const { type: type } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11610
- if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Dialog), {
11611
- ...props
11612
- });
11613
- else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Sheet), {
11614
- ...props
11615
- });
11616
- };
11617
- const $9277d94be7423d29$export$76259cff208cccae = (props)=>{
11618
- const { type: type } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11619
- if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogTrigger), {
11620
- ...props
11621
- });
11622
- else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetTrigger), {
11623
- ...props
11624
- });
11625
- };
11626
- const $9277d94be7423d29$export$ae085f72dad73e20 = (props)=>{
11627
- const { type: type, showClose: showClose } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11628
- if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogHeader), {
11629
- ...props
11630
- });
11631
- else {
11632
- const { children: children, ...other } = props;
11633
- return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$snapcalldesignsystem.SheetHeader), {
11634
- ...other,
11635
- children: [
11636
- children,
11637
- showClose && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetClose), {})
11638
- ]
11639
- });
11640
- }
11641
- };
11642
- const $9277d94be7423d29$export$4cf67c05c32f37ce = (props)=>{
11643
- const { type: type, showClose: showClose } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11644
- if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogContent), {
11645
- showClose: showClose,
11646
- ...props
11647
- });
11648
- else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetContent), {
11649
- side: "bottom",
11650
- ...props
11651
- });
11652
- };
11653
- const $9277d94be7423d29$export$5e9fc1357420b7eb = (props)=>{
11654
- const { type: type } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11655
- if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogTitle), {
11656
- ...props
11657
- });
11658
- else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetTitle), {
11659
- ...props
11660
- });
11661
- };
11662
- const $9277d94be7423d29$export$51c201eb88940e0f = (props)=>{
11663
- const { type: type } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11664
- if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogDescription), {
11665
- ...props
11666
- });
11667
- else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetDescription), {
11668
- ...props
11669
- });
11670
- };
11671
- const $9277d94be7423d29$export$2cf3a8077f66b4f6 = (props)=>{
11672
- const { type: type } = (0, $jQDcL$react.useContext)($9277d94be7423d29$var$SheetDialogContext);
11673
- if (type === "dialog") return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.DialogDescription), {
11674
- ...props
11675
- });
11676
- else return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SheetDescription), {
11677
- ...props
11678
- });
11679
- };
11680
-
11681
-
11682
-
11683
-
11684
12192
 
11685
12193
 
11686
12194
 
@@ -12073,9 +12581,9 @@ const $e399416dd32d3252$export$c01bb29adf88f117 = ({ state: state })=>{
12073
12581
 
12074
12582
  const $d0ded347a490aa03$export$aab864ee9e2aed8d = ()=>{
12075
12583
  const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
12076
- const { options: options } = (0, $jQDcL$react.useContext)((0, $8b39f32976a7698a$export$2e2bcd8739ae039));
12584
+ const { recorderOptions: recorderOptions } = (0, $jQDcL$react.useContext)((0, $8b39f32976a7698a$export$2e2bcd8739ae039));
12077
12585
  const { mode: mode, setMode: setMode, hasVideo: hasVideo } = (0, $098350f721a0bb52$export$2174f25d572f9f31)();
12078
- const enabledModes = options.recorder?.enabledModes || [
12586
+ const enabledModes = recorderOptions?.enabledModes || [
12079
12587
  "photo",
12080
12588
  "video",
12081
12589
  "audio",
@@ -12114,6 +12622,7 @@ const $d0ded347a490aa03$export$aab864ee9e2aed8d = ()=>{
12114
12622
 
12115
12623
 
12116
12624
 
12625
+
12117
12626
  const $a9c4bfaa4df801e6$var$zoomOptions = [
12118
12627
  "1",
12119
12628
  "2"
@@ -12121,15 +12630,23 @@ const $a9c4bfaa4df801e6$var$zoomOptions = [
12121
12630
  const $a9c4bfaa4df801e6$export$50c18ae22f50c0e = ()=>{
12122
12631
  const [isZoomAvailable, setIsZoomAvailable] = (0, $jQDcL$react.useState)(false);
12123
12632
  const [zoom, setZoom] = (0, $jQDcL$react.useState)("1");
12633
+ const reportError = (0, $8dfcca373a03b9e8$export$5a5695b638d078e7)();
12124
12634
  (0, $jQDcL$react.useEffect)(()=>{
12125
12635
  if (isZoomAvailable) {
12126
12636
  const numberZoom = Number(zoom);
12127
- if (numberZoom > 1) (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).zoomVideo();
12128
- else (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).unzoomVideo();
12637
+ if (numberZoom > 1) (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).zoomVideo().catch((error)=>reportError({
12638
+ code: "ZM_1",
12639
+ error: error
12640
+ }));
12641
+ else (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).unzoomVideo().catch((error)=>reportError({
12642
+ code: "ZM_2",
12643
+ error: error
12644
+ }));
12129
12645
  }
12130
12646
  }, [
12131
12647
  zoom,
12132
- isZoomAvailable
12648
+ isZoomAvailable,
12649
+ reportError
12133
12650
  ]);
12134
12651
  (0, $jQDcL$react.useEffect)(()=>{
12135
12652
  const onLocalVideo = ()=>{
@@ -12199,9 +12716,11 @@ const $9a3d89191e7070cd$export$53819c0e58f98d49 = (props)=>{
12199
12716
 
12200
12717
 
12201
12718
 
12719
+
12202
12720
  const $e86e3e83467d5bba$export$f9da3144ae2525a3 = ()=>{
12203
12721
  const { streamUIContainerRef: streamUIContainerRef } = (0, $jQDcL$react.useContext)((0, $8b39f32976a7698a$export$2e2bcd8739ae039));
12204
12722
  const { mode: mode, isRecording: isRecording, setIsRecording: setIsRecording, videoElementRef: videoElementRef, addAsset: addAsset, setIncomingAsset: setIncomingAsset, openAssetsModal: openAssetsModal } = (0, $098350f721a0bb52$export$2174f25d572f9f31)();
12723
+ const reportError = (0, $8dfcca373a03b9e8$export$5a5695b638d078e7)();
12205
12724
  const recordButtonRef = (0, $jQDcL$react.useRef)(null);
12206
12725
  const [showFlashAnimation, setShowFlashAnimation] = (0, $jQDcL$react.useState)(false);
12207
12726
  const [showCountdown, setShowCountdown] = (0, $jQDcL$react.useState)(false);
@@ -12217,45 +12736,79 @@ const $e86e3e83467d5bba$export$f9da3144ae2525a3 = ()=>{
12217
12736
  createdAt: createdAt
12218
12737
  });
12219
12738
  openAssetsModal();
12220
- const image = await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).captureVideo(videoElementRef.current);
12221
- const { url: url, assetId: assetId } = await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).saveCapture(image);
12222
- addAsset({
12223
- id: assetId,
12224
- mode: "photo",
12225
- url: url,
12226
- thumbnailUrl: url,
12227
- createdAt: createdAt
12228
- });
12739
+ try {
12740
+ const image = await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).captureVideo(videoElementRef.current);
12741
+ const { url: url, assetId: assetId } = await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).saveCapture(image);
12742
+ addAsset({
12743
+ id: assetId,
12744
+ mode: "photo",
12745
+ url: url,
12746
+ thumbnailUrl: url,
12747
+ createdAt: createdAt
12748
+ });
12749
+ } catch (error) {
12750
+ reportError({
12751
+ code: "CAP_1",
12752
+ error: error
12753
+ });
12754
+ setIncomingAsset(null);
12755
+ }
12229
12756
  openAssetsModal();
12230
12757
  }
12231
12758
  };
12232
12759
  const onRecordClick = async ()=>{
12233
12760
  if (isRecording) {
12234
12761
  openAssetsModal();
12235
- await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).stopRecord();
12762
+ try {
12763
+ await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).stopRecord();
12764
+ if (mode === "screen") (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).disableScreenshare().catch((error)=>reportError({
12765
+ code: "REC_3",
12766
+ error: error
12767
+ }));
12768
+ } catch (error) {
12769
+ reportError({
12770
+ code: "REC_1",
12771
+ error: error
12772
+ });
12773
+ }
12236
12774
  } else setShowCountdown((prev)=>{
12237
12775
  const next = !prev;
12238
12776
  const { screenshare: screenshare } = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getDevicesState();
12239
- if (next === false && screenshare.enabled) (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).disableScreenshare();
12777
+ if (next === false && screenshare.enabled) (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).disableScreenshare().catch((error)=>reportError({
12778
+ code: "SC_2",
12779
+ error: error
12780
+ }));
12240
12781
  return next;
12241
12782
  });
12242
12783
  };
12243
12784
  const onCountdownFinish = async ()=>{
12244
- await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).startRecord();
12245
- (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).audioLevel?.startAverageAnalysis();
12246
- setShowCountdown(false);
12247
- setIsRecording(true);
12248
- const createdAt = Date.now();
12249
- let thumbnail;
12250
- if (mode !== "audio" && videoElementRef.current) {
12251
- thumbnail = await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).captureVideo(undefined).catch(console.error);
12252
- if (!thumbnail) thumbnail = await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).captureVideo(videoElementRef.current).catch(console.error);
12785
+ try {
12786
+ await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).startRecord();
12787
+ (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).audioLevel?.startAverageAnalysis();
12788
+ setShowCountdown(false);
12789
+ setIsRecording(true);
12790
+ const createdAt = Date.now();
12791
+ let thumbnail;
12792
+ try {
12793
+ if (mode !== "audio" && videoElementRef.current) {
12794
+ thumbnail = await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).captureVideo(undefined).catch(console.error);
12795
+ if (!thumbnail) thumbnail = await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).captureVideo(videoElementRef.current).catch(console.error);
12796
+ }
12797
+ } catch (err) {
12798
+ console.warn("Couldn't capture video for thumbnail", err);
12799
+ }
12800
+ setIncomingAsset({
12801
+ mode: mode,
12802
+ thumbnailUrl: thumbnail || undefined,
12803
+ createdAt: createdAt
12804
+ });
12805
+ } catch (error) {
12806
+ reportError({
12807
+ code: "REC_2",
12808
+ error: error
12809
+ });
12810
+ setShowCountdown(false);
12253
12811
  }
12254
- setIncomingAsset({
12255
- mode: mode,
12256
- thumbnailUrl: thumbnail || undefined,
12257
- createdAt: createdAt
12258
- });
12259
12812
  };
12260
12813
  (0, $jQDcL$react.useEffect)(()=>{
12261
12814
  if (devicesState.screenshare.enabled && mode === "screen") recordButtonRef.current?.click();
@@ -12268,12 +12821,6 @@ const $e86e3e83467d5bba$export$f9da3144ae2525a3 = ()=>{
12268
12821
  }, [
12269
12822
  mode
12270
12823
  ]);
12271
- (0, $jQDcL$react.useEffect)(()=>{
12272
- const { screenshare: screenshare } = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getDevicesState();
12273
- if (!isRecording && screenshare.enabled) (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).disableScreenshare();
12274
- }, [
12275
- isRecording
12276
- ]);
12277
12824
  return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$reactjsxruntime.Fragment), {
12278
12825
  children: [
12279
12826
  showFlashAnimation && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $2c45d365ee8aa1ab$export$2b501aee548bae06), {
@@ -12363,12 +12910,17 @@ const $d2c20674130d0e96$export$9ea2b4f70e201d7f = ({ className: className })=>{
12363
12910
 
12364
12911
 
12365
12912
 
12913
+
12366
12914
  const $385bdeffb4b25e1f$export$c7c44baae9d9f25f = ()=>{
12367
12915
  const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
12916
+ const reportError = (0, $8dfcca373a03b9e8$export$5a5695b638d078e7)();
12368
12917
  const { mode: mode, isRecording: isRecording, assets: assets, openAssetsModal: openAssetsModal } = (0, $098350f721a0bb52$export$2174f25d572f9f31)();
12369
12918
  const rotateVideo = ()=>{
12370
12919
  const devicesState = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getDevicesState();
12371
- if (devicesState.camera.enabled) (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).rotateVideo();
12920
+ if (devicesState.camera.enabled) (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).rotateVideo().catch((error)=>reportError({
12921
+ code: "ROTT_1",
12922
+ error: error
12923
+ }));
12372
12924
  };
12373
12925
  return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)("div", {
12374
12926
  className: "flex flex-col items-center gap-6 md:gap-4 w-full max-w-[500px] mx-auto z-50",
@@ -12702,10 +13254,11 @@ const $ae4a316f3f6b930e$export$54c6bcb39df9c9b9 = ({ state: state, flow: flow })
12702
13254
  };
12703
13255
 
12704
13256
 
13257
+
12705
13258
  const $3753c01d669182c5$var$browser = (0, ($parcel$interopDefault($jQDcL$bowser))).parse(window.navigator.userAgent);
12706
13259
  const $3753c01d669182c5$export$336a011955157f9a = ()=>{
12707
- const { options: options, flow: flow, flowV0: flowV0 } = (0, $jQDcL$react.useContext)((0, $8b39f32976a7698a$export$2e2bcd8739ae039));
12708
- const [mode, setMode] = (0, $jQDcL$react.useState)(options?.recorder?.defaultMode || "photo");
13260
+ const { flow: flow, flowV0: flowV0, recorderOptions: recorderOptions } = (0, $jQDcL$react.useContext)((0, $8b39f32976a7698a$export$2e2bcd8739ae039));
13261
+ const [mode, setMode] = (0, $jQDcL$react.useState)(recorderOptions?.defaultMode || "photo");
12709
13262
  const [assets, setAssets] = (0, $jQDcL$react.useState)([]);
12710
13263
  const [isRecording, setIsRecording] = (0, $jQDcL$react.useState)(false);
12711
13264
  const [incomingAsset, setIncomingAsset] = (0, $jQDcL$react.useState)(null);
@@ -12720,6 +13273,7 @@ const $3753c01d669182c5$export$336a011955157f9a = ()=>{
12720
13273
  const switchToMobileModalState = (0, $jQDcL$reactstately.useOverlayTriggerState)({
12721
13274
  defaultOpen: $3753c01d669182c5$var$browser.platform.type === "desktop" && !flow && !flowV0
12722
13275
  });
13276
+ const reportError = (0, $8dfcca373a03b9e8$export$5a5695b638d078e7)();
12723
13277
  const { company: company } = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getState();
12724
13278
  const devicesState = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getDevicesState();
12725
13279
  const hasVideo = devicesState.camera.enabled || devicesState.screenshare.enabled;
@@ -12731,8 +13285,15 @@ const $3753c01d669182c5$export$336a011955157f9a = ()=>{
12731
13285
  setIncomingAsset(null);
12732
13286
  }, []);
12733
13287
  const removeAsset = async (assetId)=>{
12734
- await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).deleteCapture(assetId);
12735
- setAssets((currentAssets)=>currentAssets.filter((asset)=>asset.id !== assetId));
13288
+ try {
13289
+ await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).deleteCapture(assetId);
13290
+ setAssets((currentAssets)=>currentAssets.filter((asset)=>asset.id !== assetId));
13291
+ } catch (error) {
13292
+ reportError({
13293
+ code: "DEL_CAP_1",
13294
+ error: error
13295
+ });
13296
+ }
12736
13297
  };
12737
13298
  (0, $jQDcL$react.useEffect)(()=>{
12738
13299
  const onRecordStopped = (event)=>{
@@ -12773,9 +13334,13 @@ const $3753c01d669182c5$export$336a011955157f9a = ()=>{
12773
13334
  ]);
12774
13335
  (0, $jQDcL$react.useEffect)(()=>{
12775
13336
  const screenshareState = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getDevicesState().screenshare;
12776
- if (screenshareState.enabled && mode !== "screen") (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).disableScreenshare();
13337
+ if (screenshareState.enabled && mode !== "screen") (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).disableScreenshare().catch((error)=>reportError({
13338
+ code: "SC_1",
13339
+ error: error
13340
+ }));
12777
13341
  }, [
12778
- mode
13342
+ mode,
13343
+ reportError
12779
13344
  ]);
12780
13345
  return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("div", {
12781
13346
  className: "antialiased inter dark-theme h-full",
@@ -12840,65 +13405,12 @@ const $3753c01d669182c5$export$336a011955157f9a = ()=>{
12840
13405
 
12841
13406
 
12842
13407
 
12843
-
12844
- const $c5be709b60f6ba50$export$7f7cbe89f1eacd2 = (0, ($parcel$interopDefault($jQDcL$styledcomponents))).div`
12845
- border: 2px solid #ffffff;
12846
- border-top: 2px solid #000000;
12847
- border-radius: 50%;
12848
- width: 24px;
12849
- height: 24px;
12850
- animation: spin 1s linear infinite;
12851
- @keyframes spin {
12852
- 0% {
12853
- transform: rotate(0deg);
12854
- }
12855
- 100% {
12856
- transform: rotate(360deg);
12857
- }
12858
- }
12859
- `;
12860
- const $c5be709b60f6ba50$export$3b0d6d7590275603 = (0, ($parcel$interopDefault($jQDcL$styledcomponents))).div`
12861
- position: absolute;
12862
- background-color: #000000;
12863
- opacity: 0.9;
12864
- z-index: 999999;
12865
- display: flex;
12866
- vertical-align: middle;
12867
- align-items: center;
12868
- top: 0px;
12869
- right: 0px;
12870
- bottom: 0px;
12871
- left: 0px;
12872
- gap: 0.25rem;
12873
- `;
12874
- const $c5be709b60f6ba50$export$42a852a2b6b56249 = (0, ($parcel$interopDefault($jQDcL$styledcomponents))).div`
12875
- display: flex;
12876
- gap: 25px;
12877
- width: 100%;
12878
- margin-left: auto;
12879
- margin-right: auto;
12880
- justify-content: center;
12881
- align-items: center;
12882
- vertical-align: middle;
12883
- `;
12884
- const $c5be709b60f6ba50$export$52e284bf30d0364a = (0, ($parcel$interopDefault($jQDcL$styledcomponents))).h2`
12885
- color: #ffffff;
12886
- font-weight: 500;
12887
- font-size: 14px;
12888
- font-family: 'Lato';
12889
- `;
12890
-
12891
-
12892
13408
  const $7ce296d839195d38$export$669f6ea7d267feaf = ()=>{
12893
- const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
12894
- return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $c5be709b60f6ba50$export$3b0d6d7590275603), {
12895
- children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $c5be709b60f6ba50$export$42a852a2b6b56249), {
12896
- children: [
12897
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $c5be709b60f6ba50$export$7f7cbe89f1eacd2), {}),
12898
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $c5be709b60f6ba50$export$52e284bf30d0364a), {
12899
- children: t("loader.connection")
12900
- })
12901
- ]
13409
+ return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("div", {
13410
+ className: "w-full h-full flex justify-center items-center bg-gray-1000",
13411
+ children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.SpinnerIcon), {
13412
+ className: "animate-spin text-blue-700",
13413
+ size: 48
12902
13414
  })
12903
13415
  });
12904
13416
  };
@@ -13641,62 +14153,63 @@ const $151f85d85248cda3$var$Bold = ({ children: children })=>/*#__PURE__*/ (0, $
13641
14153
  });
13642
14154
  const $151f85d85248cda3$export$ed71079a84f20635 = ()=>{
13643
14155
  const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
13644
- const modalState = (0, $jQDcL$reactstately.useOverlayTriggerState)({});
13645
- const [requests, setRequests] = (0, $jQDcL$react.useState)([]);
13646
- (0, $jQDcL$react.useEffect)(()=>{
13647
- modalState.setOpen(requests.length !== 0);
13648
- }, [
13649
- modalState,
13650
- requests.length
13651
- ]);
14156
+ const queryClient = (0, $jQDcL$reactquery.useQueryClient)();
14157
+ const waitingRequests = (0, $jQDcL$reactquery.useQuery)({
14158
+ queryKey: [
14159
+ "waitingRequests"
14160
+ ],
14161
+ queryFn: ()=>(0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getWaitingRequests(),
14162
+ retry: false,
14163
+ refetchOnWindowFocus: false
14164
+ });
14165
+ const acceptWaitingRequest = (0, $jQDcL$reactquery.useMutation)({
14166
+ mutationFn: (id)=>(0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).acceptAccessRequest(id),
14167
+ onSettled: ()=>queryClient.invalidateQueries([
14168
+ "waitingRequests"
14169
+ ])
14170
+ });
14171
+ const denyWaitingRequest = (0, $jQDcL$reactquery.useMutation)({
14172
+ mutationFn: (id)=>(0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).denyAccessRequest(id),
14173
+ onSettled: ()=>queryClient.invalidateQueries([
14174
+ "waitingRequests"
14175
+ ])
14176
+ });
14177
+ const hasWaitingRequests = (waitingRequests.data?.length || 0) > 0;
14178
+ const firstWaitingRequest = waitingRequests.data?.[0];
14179
+ const isProcessingWaitingRequest = acceptWaitingRequest.isLoading || denyWaitingRequest.isLoading;
13652
14180
  (0, $jQDcL$react.useEffect)(()=>{
13653
14181
  const onAccessRequest = (event)=>{
13654
- setRequests([
13655
- ...requests,
13656
- event.detail
13657
- ]);
13658
- };
13659
- (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).addEventListener("accessRequest", onAccessRequest);
13660
- return ()=>{
13661
- (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).removeEventListener("accessRequest", onAccessRequest);
13662
- };
13663
- }, [
13664
- setRequests,
13665
- modalState,
13666
- requests
13667
- ]);
13668
- (0, $jQDcL$react.useEffect)(()=>{
13669
- const onEnterRoom = async (event)=>{
13670
- setRequests(event.detail.waitingRequests);
13671
- };
13672
- (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).addEventListener("enterRoom", onEnterRoom);
13673
- return ()=>{
13674
- (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).removeEventListener("enterRoom", onEnterRoom);
14182
+ queryClient.setQueryData([
14183
+ "waitingRequests"
14184
+ ], (oldData)=>{
14185
+ if (oldData) return [
14186
+ ...oldData,
14187
+ event.detail
14188
+ ];
14189
+ return [
14190
+ event.detail
14191
+ ];
14192
+ });
13675
14193
  };
13676
- }, [
13677
- modalState
13678
- ]);
13679
- (0, $jQDcL$react.useEffect)(()=>{
13680
14194
  const onCancelAccessRequest = async (event)=>{
13681
- const id = event.detail.id;
13682
- const removeCanceled = requests.filter((rq)=>{
13683
- return id !== rq.id;
14195
+ queryClient.setQueryData([
14196
+ "waitingRequests"
14197
+ ], (oldData)=>{
14198
+ if (oldData) return oldData.filter((data)=>data.id !== event.detail.id);
14199
+ return [];
13684
14200
  });
13685
- setRequests(removeCanceled);
13686
14201
  };
14202
+ (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).addEventListener("accessRequest", onAccessRequest);
13687
14203
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).addEventListener("cancelAccessRequest", onCancelAccessRequest);
13688
14204
  return ()=>{
14205
+ (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).removeEventListener("accessRequest", onAccessRequest);
13689
14206
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).removeEventListener("cancelAccessRequest", onCancelAccessRequest);
13690
14207
  };
13691
14208
  }, [
13692
- modalState,
13693
- requests
14209
+ queryClient
13694
14210
  ]);
13695
14211
  return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.AlertDialog), {
13696
- open: modalState.isOpen,
13697
- onOpenChange: (open)=>{
13698
- modalState.setOpen(open);
13699
- },
14212
+ open: hasWaitingRequests,
13700
14213
  children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$snapcalldesignsystem.AlertDialogContent), {
13701
14214
  children: [
13702
14215
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.AlertDialogHeader), {
@@ -13705,14 +14218,14 @@ const $151f85d85248cda3$export$ed71079a84f20635 = ()=>{
13705
14218
  children: [
13706
14219
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Avatar), {
13707
14220
  className: "w-[54px] h-[54px] text-3xl font-semibold",
13708
- name: requests[0]?.profile?.name || t("requestAccess.defaultName")
14221
+ name: firstWaitingRequest?.profile?.name || t("requestAccess.defaultName")
13709
14222
  }),
13710
14223
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)("span", {
13711
14224
  className: "w-full text-center text-lg font-normal",
13712
14225
  children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$reacti18next.Trans), {
13713
14226
  i18nKey: "requestAccess.wantToJoin",
13714
14227
  values: {
13715
- name: requests[0]?.profile?.name || t("requestAccess.defaultName")
14228
+ name: firstWaitingRequest?.profile?.name || t("requestAccess.defaultName")
13716
14229
  },
13717
14230
  components: {
13718
14231
  bold: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)($151f85d85248cda3$var$Bold, {})
@@ -13727,19 +14240,17 @@ const $151f85d85248cda3$export$ed71079a84f20635 = ()=>{
13727
14240
  children: [
13728
14241
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.AlertDialogCancel), {
13729
14242
  className: "w-full",
14243
+ disabled: isProcessingWaitingRequest,
13730
14244
  onClick: ()=>{
13731
- (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).denyAccessRequest(requests[0]?.id);
13732
- requests.shift();
13733
- setRequests(requests);
14245
+ if (firstWaitingRequest) denyWaitingRequest.mutate(firstWaitingRequest.id);
13734
14246
  },
13735
14247
  children: t("requestAccess.deny")
13736
14248
  }),
13737
14249
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.AlertDialogAction), {
13738
14250
  className: "w-full",
14251
+ disabled: isProcessingWaitingRequest,
13739
14252
  onClick: ()=>{
13740
- (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).acceptAccessRequest(requests[0]?.id);
13741
- requests.shift();
13742
- setRequests(requests);
14253
+ if (firstWaitingRequest) acceptWaitingRequest.mutate(firstWaitingRequest.id);
13743
14254
  },
13744
14255
  variant: "primary",
13745
14256
  children: t("requestAccess.admit")
@@ -13756,13 +14267,19 @@ const $ee8cb448c2c74888$var$currentTheme = (0, $9295e87e6b93e693$export$3bfd0d52
13756
14267
  const $ee8cb448c2c74888$var$currentLanguage = (0, $393bda1b33846dfc$export$604ba5624273df44)();
13757
14268
  const $ee8cb448c2c74888$var$queryClient = new (0, $jQDcL$reactquery.QueryClient)();
13758
14269
  let $ee8cb448c2c74888$var$timestampCriticalError = -1;
13759
- const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0: flowV0 })=>{
14270
+ const $ee8cb448c2c74888$var$endViewStates = [
14271
+ "ended",
14272
+ "terminated",
14273
+ "expired",
14274
+ "full"
14275
+ ];
14276
+ const $ee8cb448c2c74888$var$StreamUI = ({ options: options })=>{
13760
14277
  const { t: t } = (0, $jQDcL$reacti18next.useTranslation)();
13761
14278
  const [selfPeerId, setSelfPeerId] = (0, $jQDcL$react.useState)(undefined);
13762
14279
  const streamUIContainerRef = (0, $jQDcL$react.useRef)(null);
13763
14280
  const videosContainerRef = (0, $jQDcL$react.useRef)(null);
13764
14281
  const remoteTilesContainerRef = (0, $jQDcL$react.useRef)(null);
13765
- const [streamState, setStreamState] = (0, $jQDcL$react.useState)(options.recorder?.enabled ? "recorder" : options.greeting ? "greeting" : "loading");
14282
+ const [streamState, setStreamState] = (0, $jQDcL$react.useState)(options.greeting ? "greeting" : "loading");
13766
14283
  const [isQuickConnectPopupVisible, setIsQuickConnectPopupVisible] = (0, $jQDcL$react.useState)(false);
13767
14284
  const [isSettingsMenuVisible, setIsSettingsMenuVisible] = (0, $jQDcL$react.useState)(false);
13768
14285
  const [isYoutubePopupVisible, setIsYoutubePopupVisible] = (0, $jQDcL$react.useState)(false);
@@ -13786,6 +14303,9 @@ const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0:
13786
14303
  const [isRecordingStartPopupOpen, setRecordingStartPopupOpen] = (0, $jQDcL$react.useState)(false);
13787
14304
  const [permissions, setPermissions] = (0, $jQDcL$react.useState)([]);
13788
14305
  const [plan, setPlan] = (0, $jQDcL$react.useState)(undefined);
14306
+ const [flows, setFlows] = (0, $jQDcL$react.useState)({});
14307
+ const [recorderOptions, setRecorderOptions] = (0, $jQDcL$react.useState)(options.recorder);
14308
+ const isFirstRender = (0, $67040444b405b263$export$5964c316e853650f)();
13789
14309
  const orientation = (containerWidth || window.screen.width) > (containerHeight || window.screen.height) ? "landscape" : "portrait";
13790
14310
  const styledTheme = theme === "dark" ? (0, $9295e87e6b93e693$export$3e936a8db52a10a0) : (0, $9295e87e6b93e693$export$f30cb9bc4f736419);
13791
14311
  const onWebcamUpdate = (event)=>{
@@ -13866,9 +14386,6 @@ const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0:
13866
14386
  name: name,
13867
14387
  avatarUrl: avatarUrl
13868
14388
  });
13869
- if (email) (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).identify(null, {
13870
- email: email
13871
- });
13872
14389
  } else (0, ($parcel$interopDefault($jQDcL$reacthottoast)))("An error occured while trying to join the room as an agent", {
13873
14390
  className: "error"
13874
14391
  });
@@ -13893,6 +14410,49 @@ const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0:
13893
14410
  duration: duration
13894
14411
  });
13895
14412
  };
14413
+ const onClientInitialized = (0, $jQDcL$react.useCallback)(async (event)=>{
14414
+ const { flow: flow, flowV0: flowV0 } = event.detail;
14415
+ const flowStep = flow?.steps[0];
14416
+ if (flowStep) {
14417
+ const flowStepMode = flowStep.type === "image" ? "photo" : flowStep.type;
14418
+ setRecorderOptions({
14419
+ enabledModes: [
14420
+ flowStepMode
14421
+ ],
14422
+ enabled: true,
14423
+ defaultMode: flowStepMode,
14424
+ skipOnboarding: false
14425
+ });
14426
+ await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).setStep(flowStep.token);
14427
+ }
14428
+ const isRecorder = options.recorder?.enabled || Boolean(flowStep);
14429
+ if (!options.greeting) {
14430
+ if (isRecorder) await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).joinRecorder();
14431
+ else await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).joinRoom();
14432
+ }
14433
+ const state = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getState();
14434
+ const peerId = state.peerId;
14435
+ setPlan(state.plan);
14436
+ setPermissions(state.permissions);
14437
+ setSelfPeerId(peerId);
14438
+ setFlows({
14439
+ flow: flow,
14440
+ flowV0: flowV0
14441
+ });
14442
+ if (!isRecorder && !options.greeting) try {
14443
+ if (!options.headless) await (0, $c3d5253d9d597eb5$export$494039379563c94d)(options);
14444
+ if (options.controls?.microphone?.enabled) await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableMicrophone();
14445
+ if (options.controls?.camera?.enabled) await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableVideo();
14446
+ setUserInteractionTriggered(true);
14447
+ } catch (userInteractionError) {
14448
+ setBlockedDevicesPopupOpen(true);
14449
+ console.error("User interaction trigger failed", userInteractionError);
14450
+ } finally{
14451
+ setStreamState("streaming");
14452
+ }
14453
+ }, [
14454
+ options
14455
+ ]);
13896
14456
  (0, $jQDcL$react.useEffect)(()=>{
13897
14457
  try {
13898
14458
  localStorage.setItem("stream_ui_theme", theme);
@@ -13903,7 +14463,9 @@ const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0:
13903
14463
  theme
13904
14464
  ]);
13905
14465
  (0, $jQDcL$react.useEffect)(()=>{
13906
- try {
14466
+ const translationLanguage = (0, $b45c0bcc142f0b5e$export$150b732325d14d04)[language];
14467
+ if (!translationLanguage) setLanguage("en");
14468
+ else try {
13907
14469
  localStorage.setItem("stream_ui_language", language);
13908
14470
  (0, $b45c0bcc142f0b5e$export$2e2bcd8739ae039).changeLanguage(language);
13909
14471
  } catch (localStorageError) {
@@ -13913,6 +14475,7 @@ const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0:
13913
14475
  language
13914
14476
  ]);
13915
14477
  (0, $jQDcL$react.useEffect)(()=>{
14478
+ (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).addEventListener("initialized", onClientInitialized);
13916
14479
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).addEventListener("localVideoAvailable", onWebcamUpdate);
13917
14480
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).addEventListener("localVideoUnavailable", onWebcamUpdate);
13918
14481
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).addEventListener("screenshareEnabled", onScreenshareUpdate);
@@ -13931,6 +14494,7 @@ const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0:
13931
14494
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).addEventListener("videoRecordingStopped", onVideoRecordingStopped);
13932
14495
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).addEventListener("videoRecordingRequested", onVideoRecordingRequested);
13933
14496
  return ()=>{
14497
+ (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).removeEventListener("initialized", onClientInitialized);
13934
14498
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).removeEventListener("localVideoAvailable", onWebcamUpdate);
13935
14499
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).removeEventListener("localVideoUnavailable", onWebcamUpdate);
13936
14500
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).removeEventListener("screenshareEnabled", onScreenshareUpdate);
@@ -13950,30 +14514,9 @@ const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0:
13950
14514
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).removeEventListener("videoRecordingRequested", onVideoRecordingRequested);
13951
14515
  };
13952
14516
  }, [
13953
- onVideoRecordingRequested
14517
+ onVideoRecordingRequested,
14518
+ onClientInitialized
13954
14519
  ]);
13955
- (0, $jQDcL$react.useEffect)(()=>{
13956
- const startStreaming = async ()=>{
13957
- if (!options.greeting && !options.recorder?.enabled) await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).joinRoom();
13958
- const state = (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).getState();
13959
- const peerId = state.peerId;
13960
- setPlan(state.plan);
13961
- setPermissions(state.permissions);
13962
- setSelfPeerId(peerId);
13963
- if (!options.recorder?.enabled && !options.greeting) try {
13964
- if (!options.headless) await (0, $c3d5253d9d597eb5$export$494039379563c94d)(options);
13965
- if (options.controls?.microphone?.enabled) await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableMicrophone();
13966
- if (options.controls?.camera?.enabled) await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).enableVideo();
13967
- setUserInteractionTriggered(true);
13968
- } catch (userInteractionError) {
13969
- setBlockedDevicesPopupOpen(true);
13970
- console.error("User interaction trigger failed", userInteractionError);
13971
- } finally{
13972
- setStreamState("streaming");
13973
- }
13974
- };
13975
- startStreaming();
13976
- }, []);
13977
14520
  (0, $jQDcL$react.useEffect)(()=>{
13978
14521
  const onEnterRoom = async (event)=>{
13979
14522
  setVideoRecording(event.detail.videoRecording || {
@@ -13987,21 +14530,38 @@ const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0:
13987
14530
  fontWeight: 600
13988
14531
  }
13989
14532
  });
13990
- if (!options.recorder?.enabled) setStreamState("streaming");
14533
+ if (recorderOptions?.enabled) setStreamState("recorder");
14534
+ else setStreamState("streaming");
13991
14535
  };
13992
14536
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).addEventListener("enterRoom", onEnterRoom);
13993
14537
  return ()=>{
13994
14538
  (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).removeEventListener("enterRoom", onEnterRoom);
13995
14539
  };
13996
14540
  }, [
13997
- options,
14541
+ recorderOptions,
13998
14542
  t
13999
14543
  ]);
14544
+ (0, $jQDcL$react.useEffect)(()=>{
14545
+ if (isFirstRender) {
14546
+ if (options.token) (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).init(options.token, {
14547
+ languageCode: options.language,
14548
+ flowToken: options.flowToken,
14549
+ recorder: options.recorder?.enabled,
14550
+ apiKey: options.apiKey,
14551
+ email: options.email,
14552
+ profile: options.profile,
14553
+ authKey: options.authKey
14554
+ }).catch((err)=>console.error(err));
14555
+ else setStreamState("expired");
14556
+ }
14557
+ }, [
14558
+ options,
14559
+ isFirstRender
14560
+ ]);
14000
14561
  return /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$reactquery.QueryClientProvider), {
14001
14562
  client: $ee8cb448c2c74888$var$queryClient,
14002
14563
  children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $8b39f32976a7698a$export$2e2bcd8739ae039).Provider, {
14003
14564
  value: {
14004
- token: options.token || "",
14005
14565
  videoRecording: videoRecording,
14006
14566
  setVideoRecording: setVideoRecording,
14007
14567
  headless: Boolean(options.headless),
@@ -14039,9 +14599,9 @@ const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0:
14039
14599
  isAgent: isAgent,
14040
14600
  userInteractionTriggered: userInteractionTriggered,
14041
14601
  orientation: orientation,
14042
- flow: flow,
14043
- flowV0: flowV0,
14044
- hideSwitchToMobilePopup: options.hideSwitchToMobilePopup
14602
+ flow: flows.flow,
14603
+ flowV0: flows.flowV0,
14604
+ recorderOptions: recorderOptions
14045
14605
  },
14046
14606
  children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $jQDcL$styledcomponents.ThemeProvider), {
14047
14607
  theme: styledTheme,
@@ -14051,7 +14611,6 @@ const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0:
14051
14611
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $e3bb2c5d0e5b45b5$export$914ddf2021ea8ee6), {
14052
14612
  ref: streamUIContainerRef,
14053
14613
  children: [
14054
- streamState === "loading" && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $7ce296d839195d38$export$669f6ea7d267feaf), {}),
14055
14614
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $e66cc5db58913155$export$2e2bcd8739ae039), {}),
14056
14615
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$snapcalldesignsystem.Toaster), {
14057
14616
  duration: 3000,
@@ -14064,20 +14623,17 @@ const $ee8cb448c2c74888$var$StreamUI = ({ options: options, flow: flow, flowV0:
14064
14623
  setBlockedDevicesPopupOpen(false);
14065
14624
  }
14066
14625
  }),
14067
- streamState === "greeting" && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $317aa81f07421dfd$export$2e2bcd8739ae039), {}),
14068
- streamState === "recorder" && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $3753c01d669182c5$export$336a011955157f9a), {}),
14069
- (streamState === "streaming" || streamState === "loading") && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $jQDcL$reactjsxruntime.Fragment), {
14070
- children: /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $3f6e908c45fcc5b3$export$74636703cfe1eecf), {
14071
- children: [
14072
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $151f85d85248cda3$export$ed71079a84f20635), {}),
14073
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $e1930b467e7d8845$export$2e2bcd8739ae039), {}),
14074
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $88b23a8428e67b66$export$2e2bcd8739ae039), {}),
14075
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $a21b2aa064cb6c32$export$2e2bcd8739ae039), {}),
14076
- /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $5f509eaff0d9c05a$export$2e2bcd8739ae039), {})
14077
- ]
14078
- })
14079
- }),
14080
- (streamState === "ended" || streamState === "terminated" || streamState === "full" || streamState === "expired") && /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $3d1bfd8f074b99b1$export$2e2bcd8739ae039), {})
14626
+ streamState === "loading" ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $7ce296d839195d38$export$669f6ea7d267feaf), {}) : streamState === "greeting" ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $317aa81f07421dfd$export$2e2bcd8739ae039), {}) : streamState === "recorder" ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $3753c01d669182c5$export$336a011955157f9a), {}) : streamState === "streaming" ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsxs)((0, $3f6e908c45fcc5b3$export$74636703cfe1eecf), {
14627
+ children: [
14628
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $151f85d85248cda3$export$ed71079a84f20635), {}),
14629
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $e1930b467e7d8845$export$2e2bcd8739ae039), {}),
14630
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $88b23a8428e67b66$export$2e2bcd8739ae039), {}),
14631
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $a21b2aa064cb6c32$export$2e2bcd8739ae039), {}),
14632
+ /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $5f509eaff0d9c05a$export$2e2bcd8739ae039), {})
14633
+ ]
14634
+ }) : $ee8cb448c2c74888$var$endViewStates.includes(streamState) ? /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $3d1bfd8f074b99b1$export$2e2bcd8739ae039), {
14635
+ state: streamState
14636
+ }) : /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $7ce296d839195d38$export$669f6ea7d267feaf), {})
14081
14637
  ]
14082
14638
  })
14083
14639
  ]
@@ -14089,17 +14645,9 @@ var $ee8cb448c2c74888$export$2e2bcd8739ae039 = $ee8cb448c2c74888$var$StreamUI;
14089
14645
 
14090
14646
 
14091
14647
 
14092
- // https://help.hotjar.com/hc/en-us/articles/360033640653-Identify-API-Reference#01G2A279ZXW4JT60NKXKX69G49
14093
- // prettier-ignore
14094
- // @ts-ignore
14095
- window.hj = window.hj || function() {
14096
- (hj.q = hj.q || []).push(arguments);
14097
- };
14098
-
14099
-
14100
14648
 
14101
14649
  var $54541b0286afc2de$exports = {};
14102
- $54541b0286afc2de$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";
14650
+ $54541b0286afc2de$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";
14103
14651
 
14104
14652
 
14105
14653
  var $3243e6167f48b6be$exports = {};
@@ -14151,15 +14699,12 @@ const $e68207026aca356b$var$defaultOptions = {
14151
14699
  },
14152
14700
  streamApiURL: String("https://apistream.snapcall.io"),
14153
14701
  apiUrl: String("https://api.snapcall.io/v2"),
14154
- tracking: false,
14155
- token: undefined,
14156
- profile: undefined,
14157
- apiKey: undefined
14702
+ tracking: false
14158
14703
  };
14159
14704
  let $e68207026aca356b$var$streamUIOption = {};
14160
14705
  const $e68207026aca356b$export$3f94917203ab7078 = {
14161
- init: (option)=>{
14162
- $e68207026aca356b$var$streamUIOption = option;
14706
+ init: (options)=>{
14707
+ $e68207026aca356b$var$streamUIOption = options;
14163
14708
  },
14164
14709
  joinRoom: async (token, option)=>{
14165
14710
  return $e68207026aca356b$export$3f94917203ab7078.initV2({
@@ -14181,29 +14726,6 @@ const $e68207026aca356b$export$3f94917203ab7078 = {
14181
14726
  defaultMode: "video",
14182
14727
  skipOnboarding: false
14183
14728
  };
14184
- const { flow: flow, flowV0: flowV0 } = await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).init(options.token, {
14185
- languageCode: options.language,
14186
- flowToken: options.flowToken,
14187
- recorder: options.recorder?.enabled,
14188
- apiKey: options.apiKey,
14189
- email: options.email,
14190
- profile: options.profile,
14191
- authKey: options.authKey
14192
- });
14193
- if (flow) {
14194
- const step = flow.steps[0];
14195
- if (step) {
14196
- options.recorder = {
14197
- enabledModes: [
14198
- step.type === "image" ? "photo" : step.type
14199
- ],
14200
- enabled: true,
14201
- defaultMode: step.type === "image" ? "photo" : step.type,
14202
- skipOnboarding: false
14203
- };
14204
- await (0, $c48c1ecc38fed4e9$export$2f377c2162fd02b2).setStep(flow?.steps[0].token);
14205
- }
14206
- }
14207
14729
  if (options.recorder?.defaultMode === "screen" && !isDesktop) options.recorder.defaultMode = "video";
14208
14730
  if (element?.nodeType !== window.Node.ELEMENT_NODE) throw new Error('The "element" property must be a valid element!');
14209
14731
  const mergedOptions = (0, $6b4cf4c12c735fdf$export$6969335ea1e4e77c)($e68207026aca356b$var$defaultOptions, options);
@@ -14234,13 +14756,10 @@ const $e68207026aca356b$export$3f94917203ab7078 = {
14234
14756
  href: "https://rsms.me/inter/inter.css"
14235
14757
  }),
14236
14758
  /*#__PURE__*/ (0, $jQDcL$reactjsxruntime.jsx)((0, $ee8cb448c2c74888$export$2e2bcd8739ae039), {
14237
- options: mergedOptions,
14238
- flow: flow,
14239
- flowV0: flowV0
14759
+ options: mergedOptions
14240
14760
  })
14241
14761
  ]
14242
14762
  }));
14243
- if (mergedOptions.tracking) (0, ($parcel$interopDefault($jQDcL$hotjarbrowser))).init(3111933, 6);
14244
14763
  (0, $57b7750d9786bf6f$export$1cbfb36c1655a9a)(rootElement, element);
14245
14764
  },
14246
14765
  setExtraSettingsOptions: (extraOptions)=>{