@snapcall/stream-ui 1.24.0 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,12 @@
1
1
  import {jsxs as $3Sbms$jsxs, Fragment as $3Sbms$Fragment, jsx as $3Sbms$jsx} from "react/jsx-runtime";
2
2
  import {createRoot as $3Sbms$createRoot} from "react-dom/client";
3
- import $3Sbms$hotjarbrowser from "@hotjar/browser";
4
3
  import $3Sbms$bowser, {parse as $3Sbms$parse, getParser as $3Sbms$getParser} from "bowser";
5
4
  import $3Sbms$reacthottoast, {toast as $3Sbms$toast, Toaster as $3Sbms$Toaster1, ToastBar as $3Sbms$ToastBar} from "react-hot-toast";
6
5
  import $3Sbms$styledcomponents, {keyframes as $3Sbms$keyframes, ThemeProvider as $3Sbms$ThemeProvider, ThemeContext as $3Sbms$ThemeContext, css as $3Sbms$css, createGlobalStyle as $3Sbms$createGlobalStyle} from "styled-components";
7
- import {useState as $3Sbms$useState, useRef as $3Sbms$useRef, useCallback as $3Sbms$useCallback, useEffect as $3Sbms$useEffect, useContext as $3Sbms$useContext, useMemo as $3Sbms$useMemo, createContext as $3Sbms$createContext, useReducer as $3Sbms$useReducer, useLayoutEffect as $3Sbms$useLayoutEffect, forwardRef as $3Sbms$forwardRef, cloneElement as $3Sbms$cloneElement} from "react";
8
- import {Toaster as $3Sbms$Toaster, UserPlus1Icon as $3Sbms$UserPlus1Icon, PhoneCall1Icon as $3Sbms$PhoneCall1Icon, VideoRecorderIcon as $3Sbms$VideoRecorderIcon, Recording2Icon as $3Sbms$Recording2Icon, Monitor2Icon as $3Sbms$Monitor2Icon, Camera2Icon as $3Sbms$Camera2Icon, Select as $3Sbms$Select, SelectTrigger as $3Sbms$SelectTrigger, SelectValue as $3Sbms$SelectValue, SelectContent as $3Sbms$SelectContent, SelectGroup as $3Sbms$SelectGroup, SelectItem as $3Sbms$SelectItem, useToast as $3Sbms$useToast, Copy5Icon as $3Sbms$Copy5Icon, CheckIcon as $3Sbms$CheckIcon, XCircleIcon as $3Sbms$XCircleIcon, Send3Icon as $3Sbms$Send3Icon, AlertTriangleIcon as $3Sbms$AlertTriangleIcon, Dialog as $3Sbms$Dialog, DialogContent as $3Sbms$DialogContent, DialogHeader as $3Sbms$DialogHeader, DialogTitle as $3Sbms$DialogTitle, Tabs as $3Sbms$Tabs, TabsList as $3Sbms$TabsList, TabsTrigger as $3Sbms$TabsTrigger, TabsContent as $3Sbms$TabsContent, Input as $3Sbms$Input, Button as $3Sbms$Button, CopyIcon as $3Sbms$CopyIcon, Form as $3Sbms$Form, FormField as $3Sbms$FormField, FormItem as $3Sbms$FormItem, FormLabel as $3Sbms$FormLabel, FormControl as $3Sbms$FormControl, CreatableSelect as $3Sbms$CreatableSelect, FormMessage as $3Sbms$FormMessage, Textarea as $3Sbms$Textarea, ToastAction as $3Sbms$ToastAction, InfoCircleIcon as $3Sbms$InfoCircleIcon, RawToast as $3Sbms$RawToast, ToastContent as $3Sbms$ToastContent, QrCode1Icon as $3Sbms$QrCode1Icon, Settings1Icon as $3Sbms$Settings1Icon, Upload1Icon as $3Sbms$Upload1Icon, SpinnerIcon as $3Sbms$SpinnerIcon, CheckCircleIcon as $3Sbms$CheckCircleIcon, PlusCircleIcon as $3Sbms$PlusCircleIcon, Sheet as $3Sbms$Sheet, DialogTrigger as $3Sbms$DialogTrigger, SheetTrigger as $3Sbms$SheetTrigger, SheetHeader as $3Sbms$SheetHeader, SheetClose as $3Sbms$SheetClose, SheetContent as $3Sbms$SheetContent, SheetTitle as $3Sbms$SheetTitle, DialogDescription as $3Sbms$DialogDescription, SheetDescription as $3Sbms$SheetDescription, Camera1Icon as $3Sbms$Camera1Icon, PlayIcon as $3Sbms$PlayIcon, Trash3Icon as $3Sbms$Trash3Icon, DialogFooter as $3Sbms$DialogFooter, AlertDialog as $3Sbms$AlertDialog, AlertDialogContent as $3Sbms$AlertDialogContent, AlertDialogHeader as $3Sbms$AlertDialogHeader, AlertDialogTitle as $3Sbms$AlertDialogTitle, AlertDialogDescription as $3Sbms$AlertDialogDescription, AlertDialogFooter as $3Sbms$AlertDialogFooter, AlertDialogCancel as $3Sbms$AlertDialogCancel, AlertDialogAction as $3Sbms$AlertDialogAction, TrashIcon as $3Sbms$TrashIcon, Hourglass3Icon as $3Sbms$Hourglass3Icon, MicrophoneOffIcon as $3Sbms$MicrophoneOffIcon, RefreshCw3Icon as $3Sbms$RefreshCw3Icon, QrCodeIcon as $3Sbms$QrCodeIcon, Avatar as $3Sbms$Avatar, SlashCircle1Icon as $3Sbms$SlashCircle1Icon, CalendarIcon as $3Sbms$CalendarIcon, Microphone1Icon as $3Sbms$Microphone1Icon, VolumeMaxIcon as $3Sbms$VolumeMaxIcon, VideoRecorderOffIcon as $3Sbms$VideoRecorderOffIcon, MicrophoneOff1Icon as $3Sbms$MicrophoneOff1Icon, AlertCircleIcon as $3Sbms$AlertCircleIcon, Lock1Icon as $3Sbms$Lock1Icon, Lock3Icon as $3Sbms$Lock3Icon, VoicemailIcon as $3Sbms$VoicemailIcon} from "@snapcall/design-system";
6
+ import {useState as $3Sbms$useState, useRef as $3Sbms$useRef, useCallback as $3Sbms$useCallback, useEffect as $3Sbms$useEffect, useContext as $3Sbms$useContext, useMemo as $3Sbms$useMemo, createContext as $3Sbms$createContext, useReducer as $3Sbms$useReducer, useLayoutEffect as $3Sbms$useLayoutEffect, cloneElement as $3Sbms$cloneElement, forwardRef as $3Sbms$forwardRef} from "react";
7
+ import {Toaster as $3Sbms$Toaster, UserPlus1Icon as $3Sbms$UserPlus1Icon, PhoneCall1Icon as $3Sbms$PhoneCall1Icon, VideoRecorderIcon as $3Sbms$VideoRecorderIcon, Recording2Icon as $3Sbms$Recording2Icon, Monitor2Icon as $3Sbms$Monitor2Icon, Camera2Icon as $3Sbms$Camera2Icon, Select as $3Sbms$Select, SelectTrigger as $3Sbms$SelectTrigger, SelectValue as $3Sbms$SelectValue, SelectContent as $3Sbms$SelectContent, SelectGroup as $3Sbms$SelectGroup, SelectItem as $3Sbms$SelectItem, useToast as $3Sbms$useToast, Copy5Icon as $3Sbms$Copy5Icon, CheckIcon as $3Sbms$CheckIcon, XCircleIcon as $3Sbms$XCircleIcon, Send3Icon as $3Sbms$Send3Icon, AlertTriangleIcon as $3Sbms$AlertTriangleIcon, Dialog as $3Sbms$Dialog, DialogContent as $3Sbms$DialogContent, DialogHeader as $3Sbms$DialogHeader, DialogTitle as $3Sbms$DialogTitle, Tabs as $3Sbms$Tabs, TabsList as $3Sbms$TabsList, TabsTrigger as $3Sbms$TabsTrigger, TabsContent as $3Sbms$TabsContent, Input as $3Sbms$Input, Button as $3Sbms$Button, CopyIcon as $3Sbms$CopyIcon, Form as $3Sbms$Form, FormField as $3Sbms$FormField, FormItem as $3Sbms$FormItem, FormLabel as $3Sbms$FormLabel, FormControl as $3Sbms$FormControl, CreatableSelect as $3Sbms$CreatableSelect, FormMessage as $3Sbms$FormMessage, Textarea as $3Sbms$Textarea, ToastAction as $3Sbms$ToastAction, InfoCircleIcon as $3Sbms$InfoCircleIcon, FlipBackwardIcon as $3Sbms$FlipBackwardIcon, ArrowUpRightIcon as $3Sbms$ArrowUpRightIcon, RawToast as $3Sbms$RawToast, ToastContent as $3Sbms$ToastContent, QrCode1Icon as $3Sbms$QrCode1Icon, Settings1Icon as $3Sbms$Settings1Icon, Upload1Icon as $3Sbms$Upload1Icon, VolumeMaxIcon as $3Sbms$VolumeMaxIcon, Settings3Icon as $3Sbms$Settings3Icon, XCloseIcon as $3Sbms$XCloseIcon, ArrowLeftIcon as $3Sbms$ArrowLeftIcon, HelpCircleIcon as $3Sbms$HelpCircleIcon, Sheet as $3Sbms$Sheet, DialogTrigger as $3Sbms$DialogTrigger, SheetTrigger as $3Sbms$SheetTrigger, SheetHeader as $3Sbms$SheetHeader, SheetClose as $3Sbms$SheetClose, SheetContent as $3Sbms$SheetContent, SheetTitle as $3Sbms$SheetTitle, DialogDescription as $3Sbms$DialogDescription, SheetDescription as $3Sbms$SheetDescription, SpinnerIcon as $3Sbms$SpinnerIcon, CheckCircleIcon as $3Sbms$CheckCircleIcon, PlusCircleIcon as $3Sbms$PlusCircleIcon, Camera1Icon as $3Sbms$Camera1Icon, PlayIcon as $3Sbms$PlayIcon, Trash3Icon as $3Sbms$Trash3Icon, DialogFooter as $3Sbms$DialogFooter, AlertDialog as $3Sbms$AlertDialog, AlertDialogContent as $3Sbms$AlertDialogContent, AlertDialogHeader as $3Sbms$AlertDialogHeader, AlertDialogTitle as $3Sbms$AlertDialogTitle, AlertDialogDescription as $3Sbms$AlertDialogDescription, AlertDialogFooter as $3Sbms$AlertDialogFooter, AlertDialogCancel as $3Sbms$AlertDialogCancel, AlertDialogAction as $3Sbms$AlertDialogAction, TrashIcon as $3Sbms$TrashIcon, Hourglass3Icon as $3Sbms$Hourglass3Icon, MicrophoneOffIcon as $3Sbms$MicrophoneOffIcon, RefreshCw3Icon as $3Sbms$RefreshCw3Icon, QrCodeIcon as $3Sbms$QrCodeIcon, Avatar as $3Sbms$Avatar, SlashCircle1Icon as $3Sbms$SlashCircle1Icon, CalendarIcon as $3Sbms$CalendarIcon, Microphone1Icon as $3Sbms$Microphone1Icon, VideoRecorderOffIcon as $3Sbms$VideoRecorderOffIcon, MicrophoneOff1Icon as $3Sbms$MicrophoneOff1Icon, AlertCircleIcon as $3Sbms$AlertCircleIcon, Lock1Icon as $3Sbms$Lock1Icon, Lock3Icon as $3Sbms$Lock3Icon, VoicemailIcon as $3Sbms$VoicemailIcon} from "@snapcall/design-system";
9
8
  import "inobounce";
10
- import {QueryClient as $3Sbms$QueryClient, QueryClientProvider as $3Sbms$QueryClientProvider, useQuery as $3Sbms$useQuery} from "react-query";
9
+ import {QueryClient as $3Sbms$QueryClient, QueryClientProvider as $3Sbms$QueryClientProvider, useQuery as $3Sbms$useQuery, useQueryClient as $3Sbms$useQueryClient, useMutation as $3Sbms$useMutation} from "react-query";
11
10
  import {useTranslation as $3Sbms$useTranslation, initReactI18next as $3Sbms$initReactI18next, Trans as $3Sbms$Trans} from "react-i18next";
12
11
  import $3Sbms$i18next from "i18next";
13
12
  import {useOverlayTriggerState as $3Sbms$useOverlayTriggerState} from "react-stately";
@@ -31,7 +30,6 @@ function $parcel$interopDefault(a) {
31
30
 
32
31
 
33
32
 
34
-
35
33
  // https://github.com/voodoocreation/ts-deepmerge/blob/master/src/index.ts
36
34
  const $365e765f9890497b$var$isObject = (obj)=>{
37
35
  if (typeof obj === "object" && obj !== null) {
@@ -342,7 +340,6 @@ const $35b37252690084e8$export$1cbfb36c1655a9a = (root, element)=>{
342
340
 
343
341
 
344
342
 
345
-
346
343
  const $a3e657fb86ae23f3$export$604ba5624273df44 = ()=>{
347
344
  try {
348
345
  const storedTheme = localStorage.getItem("stream_ui_language");
@@ -356,27 +353,27 @@ const $a3e657fb86ae23f3$export$604ba5624273df44 = ()=>{
356
353
 
357
354
 
358
355
  var $cdb0576f0fea19f0$exports = {};
359
- $cdb0576f0fea19f0$exports = JSON.parse('{"header":{"free":"Free version"},"loader":{"connection":"Connecting..."},"common":{"new":"new"},"notifications":{"screensharingError":"An error occured when trying to toggle screensharing","microphoneError":"An error occured when trying to toggle the microphone","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","noCamera":"No camera available","blockedMicrophonePopupTitle":"Camera and microphone are blocked","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","reload":"Reload","criticalError":"A critical error has occurred (error {{code}}).","agentJoinError":"An error occured while trying to join the room as an agent","close":"Close","connectedTo":"Connected to {{name}}","recording":"Recording in progress","invitationSentToFailed":"Sent to {{ name }} failed.","uploadError":"An error occured during the upload, please try again later."},"recordingPopup":{"recordingStartTitle":"Recording about to start.","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","dismiss":"Dismiss"},"requestAccess":{"wantToJoin":"<bold>{{name}}</bold> wants to join!","deny":"Deny","admit":"Admit","defaultName":"An user"},"endView":{"goBack":"Go back to call","tooLate":"You arrived too late","callIsOver":"The call is over or deleted","callEnded":"The call is now ended","callLeft":"You left the call","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later."},"menu":{"title":"Menu","new":"NEW","openNewTab":"Open new tab","quickConnect":"Quick Connect","pictureInPicture":"Picture-in-Picture","screenSharing":"Screen sharing","stopRecord":"Stop record","startRecord":"Record call"},"blockedFeature":{"titleConnected":"Upgrade to Pro","titleGuest":"Feature not available","descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissGuest":"Okay","dismissConnected":"Upgrade to Pro"},"copyLink":{"title":"Copy link","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","copied":"Link copied to clipboard","copy":"Copy"},"quickConnect":{"title":"Quick Connect","scanTitle":"Scan QR Code","scan":"Scan this QR code with your phone camera to open the call."},"settings":{"title":"Settings","preferences":"Preferences","language":"Language","devices":"Devices","help":"Help","helpCenter":"Go to help center"},"audioMenu":{"title":"Audio","blockedMicrophone":"Microphone is blocked.","microphonePermissions":"Please accept microphone sharing before accessing these options."},"videoMenu":{"title":"Video","lowDef":"Low definition (240p)","standardDef":"Standard definition (480p)","highDef":"High definition (720p)","blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","sendResolution":"Send Resolution (maximum)"},"shareLink":{"title":"Share link","title2":"Share a link","invalid":"Invalid link","sentToUsers":"Link sent to users","sentToUser":"Link sent to {{user}}","failed":"Failed to send link","poweredBy":"Powered by","invoice":"{{user}} sent you an invoice.","pay":"Pay"},"invitePeople":{"PublicLink":"Public link","invitePeople":"Invite people","joinTheCall":"Join the call","inviteRecordClip":"Invite to record clip","inviteRecordVideo":"Record a video","inviteRecordAudio":"Record an audio","inviteRecordScreen":"Record a screen","inviteRecordPhoto":"Take a photo","inviteCall":"Invite to join call","sharePublicLink":"Share public link","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","addEmailToInvite":"Add an email to invite.","email":"Email","emailPlaceholder":"Eg. john@acme.com","invite":"Invite","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","addEmails":"Add emails...","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","error":"Failed to send, please try again later.","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","message":"Message"},"youtube":{"title":"Watch Together","url":"YOUTUBE URL","invalid":"Invalid YouTube URL","share":"Watch now"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"title":"Snapshot","shared":"Snapshot shared.","sentToUsers":"Snapshot sent to users.","sentToUser":"Snapshot sent to {{user}}","save":"Save photo","error":"An error occured when trying to send the snapshot"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"requestDevice":{"requestInput":"Request input devices","request":"{{user}} would like you to share your {{device}}","timedOut":"Your request has timed out.","declined":"Your request has been declined.","userDeclined":"{{user}} has declined your request."},"leave":{"title":"Leave","leaveCall":"Leave call","endCall":"End call for all"},"virtualBackground":{"title":"Virtual Background","setBackground":"Set Background"},"misc":{"someone":"Someone","camera":"Camera","microphone":"Microphone","photo":"Photo","video":"Video","screen":"Screen","screenshot":"Screenshot","speaker":"Speaker","user":"User","open":"Open","from":"From","accept":"Accept","decline":"Decline","you":"You","cancel":"Cancel","confirm":"Confirm","remove":"Remove","proceed":"Proceed","audio":"Audio"},"greeting":{"mainTitle":"Welcome to SnapCall","sideTitle":"Hold tight, you\'re next!","sideDescription":"Please enter your name and adjust your camera and microphone","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","footerTitle":"Powered by SnapCall","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","cameraDisabled":"Camera is Off","microphoneDisabled":"Microphone is Off","cameraEnabled":"Camera is On","microphoneEnabled":"Microphone is On","scheduleACall":"Schedule a call","requestACall":"Request a call","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","setting":"Settings","askToJoin":"Ask to join","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in.","cantJoinCall":"You can\u2019t join this call","someoneDenied":"Someone in the call denied your request to join.","askingLetIn":"Asking to be let in...","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","cantWait":"Can\'t wait?","whatYouCanDo":"Here\u2019s what you can do","leaveMessage":"Leave a message","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","recordVideo":"Record video","recordVoice":"Record voice","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","mediaDenied":"Microphone and camera access denied","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar."},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","limit":"Video recording limited to 5 min.","replyAttached":"Your reply has been attached","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","openThread":"Open thread","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","clipSubmissionDescription":"Thank you for using SnapCall.","submissionTitle":"Thank you for your submission!","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","confirmRemovalTitle":"Confirm deletion","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","waitVideo":"A video may take up to 15 seconds to be ready.","elementCaptureSuccess":"{{ type }} captured successfully","takeNewElement":"Capture a new {{ type }}","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","allowAccess":"Allow access","okay":"Okay","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","permissionDeniedTitle":"Something went wrong!","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","photoInstructionsTitle":"Ready to snap a photo?","videoInstructionsTitle":"Ready to record a video?","screenShareInstructionsTitle":"Ready to share your screen?","audioInstructionsTitle":"Ready to record a voice message?","instructions":{"selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically."},"switchToMobileTitle":"Switch to your mobile device","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","useDesktopVersion":"Use the desktop version","scanQRCode":"Scan this QR code with a compatible device.","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","screenTitle":"Ready to capture your screen?","loggedAs":"Logged as","logIn":"Log in","audioLevelNotification":{"shortVideo":{"title":"Short video.","description":"This video is too short to get context."},"noSound":{"title":"No sound detected.","description":"Make sure your microphone is activated."},"spokenWordsQuestion":{"title":"Spoken words.","description":"Does your video include enough spoken details?"},"spokenWordsWarning":{"title":"No spoken words.","description":"The clip includes barely any spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","rememberSpeaking":"Remember to speak to provide context.","noSound":"No sound detected."},"chooseWhatYouWantToShare":"Choose what you want to share","startScreenRecording":"Start screen recording","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAccess":"No camera access","noMicrophoneAccess":"No microphone access","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","showQrCode":"Show QR code","upload":"Upload"}}');
356
+ $cdb0576f0fea19f0$exports = JSON.parse('{"header":{"free":"Free version"},"loader":{"connection":"Connecting..."},"common":{"new":"new"},"notifications":{"error":"Error","screensharingError":"An error occured when trying to toggle screensharing","microphoneError":"An error occured when trying to toggle the microphone","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","noCamera":"No camera available","blockedMicrophonePopupTitle":"Camera and microphone are blocked","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","reload":"Reload","criticalError":"A critical error has occurred (error {{code}}).","agentJoinError":"An error occured while trying to join the room as an agent","close":"Close","connectedTo":"Connected to {{name}}","recording":"Recording in progress","invitationSentToFailed":"Sent to {{ name }} failed.","errorOccuredCode":"An error occured (error {{code}})."},"recordingPopup":{"recordingStartTitle":"Recording about to start.","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","dismiss":"Dismiss"},"requestAccess":{"wantToJoin":"<bold>{{name}}</bold> wants to join!","deny":"Deny","admit":"Admit","defaultName":"An user"},"endView":{"goBack":"Go back to call","callEnded":"The call has ended","callNoLongerActive":"This call is no longer active. Thank you for participating.","callLeft":"You have left the call","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard"},"menu":{"title":"Menu","new":"NEW","openNewTab":"Open new tab","quickConnect":"Quick Connect","pictureInPicture":"Picture-in-Picture","screenSharing":"Screen sharing","stopRecord":"Stop record","startRecord":"Record call"},"blockedFeature":{"titleConnected":"Upgrade to Pro","titleGuest":"Feature not available","descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissGuest":"Okay","dismissConnected":"Upgrade to Pro"},"copyLink":{"title":"Copy link","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","copied":"Link copied to clipboard","copy":"Copy"},"quickConnect":{"title":"Quick Connect","scanTitle":"Scan QR Code","scan":"Scan this QR code with your phone camera to open the call."},"settings":{"title":"Settings","preferences":"Preferences","language":"Language","devices":"Devices","help":"Help","helpCenter":"Go to help center","selectYourMicrophone":"Select your preferred microphone","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language"},"audioMenu":{"title":"Audio","blockedMicrophone":"Microphone is blocked.","microphonePermissions":"Please accept microphone sharing before accessing these options."},"videoMenu":{"title":"Video","lowDef":"Low definition (240p)","standardDef":"Standard definition (480p)","highDef":"High definition (720p)","blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","sendResolution":"Send Resolution (maximum)"},"shareLink":{"title":"Share link","title2":"Share a link","invalid":"Invalid link","sentToUsers":"Link sent to users","sentToUser":"Link sent to {{user}}","failed":"Failed to send link","poweredBy":"Powered by","invoice":"{{user}} sent you an invoice.","pay":"Pay"},"invitePeople":{"PublicLink":"Public link","invitePeople":"Invite people","joinTheCall":"Join the call","inviteRecordClip":"Invite to record clip","inviteRecordVideo":"Record a video","inviteRecordAudio":"Record an audio","inviteRecordScreen":"Record a screen","inviteRecordPhoto":"Take a photo","inviteCall":"Invite to join call","sharePublicLink":"Share public link","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","addEmailToInvite":"Add an email to invite.","email":"Email","emailPlaceholder":"Eg. john@acme.com","invite":"Invite","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","addEmails":"Add emails...","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","error":"Failed to send, please try again later.","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","message":"Message"},"youtube":{"title":"Watch Together","url":"YOUTUBE URL","invalid":"Invalid YouTube URL","share":"Watch now"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"title":"Snapshot","shared":"Snapshot shared.","sentToUsers":"Snapshot sent to users.","sentToUser":"Snapshot sent to {{user}}","save":"Save photo","error":"An error occured when trying to send the snapshot"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"requestDevice":{"requestInput":"Request input devices","request":"{{user}} would like you to share your {{device}}","timedOut":"Your request has timed out.","declined":"Your request has been declined.","userDeclined":"{{user}} has declined your request."},"leave":{"title":"Leave","leaveCall":"Leave call","endCall":"End call for all"},"virtualBackground":{"title":"Virtual Background","setBackground":"Set Background"},"misc":{"someone":"Someone","camera":"Camera","microphone":"Microphone","photo":"Photo","video":"Video","screen":"Screen","screenshot":"Screenshot","speaker":"Speaker","user":"User","open":"Open","from":"From","accept":"Accept","decline":"Decline","you":"You","cancel":"Cancel","confirm":"Confirm","remove":"Remove","proceed":"Proceed","audio":"Audio"},"greeting":{"mainTitle":"Welcome to SnapCall","sideTitle":"Hold tight, you\'re next!","sideDescription":"Please enter your name and adjust your camera and microphone","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","footerTitle":"Powered by SnapCall","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","cameraDisabled":"Camera is Off","microphoneDisabled":"Microphone is Off","cameraEnabled":"Camera is On","microphoneEnabled":"Microphone is On","scheduleACall":"Schedule a call","requestACall":"Request a call","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","setting":"Settings","askToJoin":"Ask to join","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in.","cantJoinCall":"You can\u2019t join this call","someoneDenied":"Someone in the call denied your request to join.","askingLetIn":"Asking to be let in...","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","cantWait":"Can\'t wait?","whatYouCanDo":"Here\u2019s what you can do","leaveMessage":"Leave a message","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","recordVideo":"Record video","recordVoice":"Record voice","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","mediaDenied":"Microphone and camera access denied","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar."},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","limit":"Video recording limited to 5 min.","replyAttached":"Your reply has been attached","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","openThread":"Open thread","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","clipSubmissionDescription":"Thank you for using SnapCall.","submissionTitle":"Thank you for your submission!","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","confirmRemovalTitle":"Confirm deletion","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","waitVideo":"A video may take up to 15 seconds to be ready.","elementCaptureSuccess":"{{ type }} captured successfully","takeNewElement":"Capture a new {{ type }}","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","allowAccess":"Allow access","okay":"Okay","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","permissionDeniedTitle":"Something went wrong!","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","photoInstructionsTitle":"Ready to snap a photo?","videoInstructionsTitle":"Ready to record a video?","screenShareInstructionsTitle":"Ready to share your screen?","audioInstructionsTitle":"Ready to record a voice message?","instructions":{"selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically."},"switchToMobileTitle":"Switch to your mobile device","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","useDesktopVersion":"Use the desktop version","scanQRCode":"Scan this QR code with a compatible device.","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","screenTitle":"Ready to capture your screen?","loggedAs":"Logged as","logIn":"Log in","audioLevelNotification":{"shortVideo":{"title":"Short video.","description":"This video is too short to get context."},"noSound":{"title":"No sound detected.","description":"Make sure your microphone is activated."},"spokenWordsQuestion":{"title":"Spoken words.","description":"Does your video include enough spoken details?"},"spokenWordsWarning":{"title":"No spoken words.","description":"The clip includes barely any spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","rememberSpeaking":"Remember to speak to provide context.","noSound":"No sound detected."},"chooseWhatYouWantToShare":"Choose what you want to share","startScreenRecording":"Start screen recording","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAccess":"No camera access","noMicrophoneAccess":"No microphone access","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","noCameraAccessDescription":"No camera access Allow camera access in your browser.","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","showQrCode":"Show QR code","upload":"Upload"}}');
360
357
 
361
358
 
362
359
  var $d94166210f763d5e$exports = {};
363
- $d94166210f763d5e$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Microphone is blocked.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call is now ended","callIsOver":"The call is over or deleted","callLeft":"You left the call","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video clip now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAndMicrophoneAccess":"No camera & microphone access","noMicrophoneAccess":"No microphone access","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
360
+ $d94166210f763d5e$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Microphone is blocked.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call is now ended","callIsOver":"The call is over or deleted","callLeft":"You left the call","callNoLongerActive":"This call is no longer active. Thank you for participating.","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video clip now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","error":"Error","errorOccuredCode":"An error occured (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAccessDescription":"No camera access Allow camera access in your browser.","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccess":"No microphone access","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language","selectYourMicrophone":"Select your preferred microphone","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
364
361
 
365
362
 
366
363
  var $dcf57489ec338826$exports = {};
367
- $dcf57489ec338826$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Votre micro est bloqu\xe9.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"Vous n\'avez pas acc\xe8s \xe0 cette fonctionnalit\xe9. Souscrivez au plan Pro pour d\xe9bloquer toutes les fonctionnalit\xe9s de SnapCall.","descriptionGuest":"Vous participez \xe0 un appel cr\xe9\xe9 avec la version gratuite de SnapCall. Cette fonctionnalit\xe9 n\'est disponible qu\'avec une version Pro.","dismissConnected":"Souscrire \xe0 Pro","dismissGuest":"D\'accord","titleConnected":"Souscrire au plan Pro","titleGuest":"Fonctionnalit\xe9 non disponible"},"common":{"new":"new"},"copyLink":{"copied":"Lien copi\xe9 dans le presse-papier","copy":"Copier","description":"Copier le lien dans le presse-papiers","error":"Une erreur est survenue pendant la copie du lien dans le presse-papier","title":"Copier le lien"},"endView":{"callEnded":"Cet appel est termin\xe9","callIsOver":"Cet appel est termin\xe9 ou supprim\xe9","callLeft":"Vous avez quitt\xe9 l\'appel","full":"Impossible de rejoindre l\'appel","fullDescription":"Limite d\'utilisateurs atteinte. Merci de rejoindre l\'appel ult\xe9rieurement.","goBack":"Retourner dans l\'appel","tooLate":"Vous \xeates arriv\xe9 trop tard"},"gdpr":{"recordedWarning":"Pour am\xe9liorer la qualit\xe9 de notre service, cet appel va \xeatre enregistr\xe9."},"greeting":{"askToJoin":"Demander \xe0 rejoindre","askingLetIn":"Demande de participation...","cameraDisabled":"Cam\xe9ra d\xe9sactiv\xe9e","cameraEnabled":"Cam\xe9ra activ\xe9e","canceledCallRequest":"La demande d\'appel sera annul\xe9e et vous serez redirig\xe9 vers la page de planification des appels.","cantJoinCall":"Vous ne pouvez pas rejoindre cet appel","cantWait":"Vous ne souhaitez pas attendre ?","cantWaitLeaveMessage":"Vous ne pouvez pas attendre ? Vous pouvez laisser un message et vous serez contact\xe9 dans les plus brefs d\xe9lais.","clickOnLock":"Cliquez sur l\'ic\xf4ne de verrouillage <1></1> dans la barre de votre navigateur.","footerDescription":"D\xe9couvrez SnapCall, ajoutez de la vid\xe9o en temps r\xe9el \xe0 n\'importe quelle plateforme, produit ou service.","footerTitle":"Propuls\xe9 par SnapCall","leaveMessage":"Laisser un message","mainTitle":"Bienvenue sur SnapCall","mediaDenied":"Acc\xe8s au microphone et \xe0 la cam\xe9ra refus\xe9","microphoneDisabled":"Microphone d\xe9sactiv\xe9","microphoneEnabled":"Microphone activ\xe9","name":"Nom","nameDescription":"Ce nom sera affich\xe9 \xe0 tous les participants","namePlaceholder":"Ex. Lucie ou Pierre","nameSubmit":"Rejoindre la conversation","recordVideo":"Enregistrer une vid\xe9o","recordVoice":"Enregistrer un message vocal","requestACall":"Solliciter un appel maintenant","scheduleACall":"Planifier un appel","setting":"Param\xe8tres","sideDescription":"Veuillez entrer votre nom et configurer votre cam\xe9ra et microphone.","sideTitle":"C\'est bient\xf4t votre tour !","someoneDenied":"Quelqu\'un lors de l\'appel a refus\xe9 votre demande de participation.","takeFewMinute":"Cela peut prendre quelques minutes selon la disponibilit\xe9 des participants.","whatYouCanDo":"Voici ce que vous pouvez faire","youWillJoinWhenSomeoneLetsYou":"Votre acc\xe8s \xe0 l\'appel sera autoris\xe9 par un membre de l\'\xe9quipe {{ companyName }}."},"header":{"free":"Version gratuite"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Ajoutez un e-mail pour inviter.","addEmails":"Ajouter des e-mails...","copyCallLinkDescription":"Copiez ce lien et envoyez-le \xe0 toute personne que vous souhaitez inviter \xe0 rejoindre l\'appel.","copyClipLinkDescription":"Copiez ce lien et envoyez-le \xe0 toute personne que vous souhaitez inviter \xe0 enregistrer un clip.","email":"Email","emailPlaceholder":"Ex. jean@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"\xc9chec de l\'envoi, veuillez r\xe9essayer plus tard.","invalidEmail":"Format d\'email invalide.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Envoy\xe9 \xe0 {{ name }}","invitationSentTo_other":"Envoy\xe9 \xe0 {{ name }} et {{ otherEmailsCount }}+","invite":"Inviter","inviteByEmail":"Inviter par email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Inviter \xe0 rejoindre l\'appel","inviteCallDefaultMessage":"Vous \xeates invit\xe9 \xe0 rejoindre notre appel vid\xe9o. Cliquez sur le lien pour vous connecter instantan\xe9ment.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Veuillez enregistrer votre clip vid\xe9o maintenant et nous fournir plus de contexte pour mieux vous aider.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Inviter \xe0 enregistrer un clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Lien pour rejoindre l\'appel","linkToRecordAClip":"Lien pour enregistrer un clip","message":"Message","sharePublicLink":"Partager le lien public"},"leave":{"endCall":"Terminer l\'appel","leaveCall":"Quitter l\'appel","title":"Quitter"},"loader":{"connection":"Connexion..."},"menu":{"new":"NOUVEAU","openNewTab":"Ouvrir un nouvel onglet","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Partage d\'\xe9cran","startRecord":"Enregistrer l\'appel","stopRecord":"Arr\xeater l\'enregistrement","title":"Menu"},"misc":{"accept":"Accepter","audio":"Audio","camera":"Cam\xe9ra","cancel":"Annuler","confirm":"Confirmer","decline":"D\xe9cliner","from":"Depuis","microphone":"Micro","open":"Ouvrir","photo":"Photo","proceed":"Proc\xe9der","remove":"Enlever","screen":"\xc9cran","screenshot":"Capture d\'\xe9cran","someone":"Quelqu\'un","speaker":"Haut-parleur","user":"Utilisateur","video":"Vid\xe9o","you":"Vous"},"notifications":{"agentJoinError":"Une erreur est survenue en essayant de rejoindre la salle en tant qu\'agent","blockedMicrophonePopup":"SnapCall a besoin d\'acc\xe9der \xe0 votre cam\xe9ra et micro. Cliquez sur l\'ic\xf4ne de cam\xe9ra bloqu\xe9e dans la barre d\'adresse du navigateur.","blockedMicrophonePopupTitle":"Votre cam\xe9ra et micro sont bloqu\xe9s","cameraError":"Une erreur est survenue pendant l\'activation de la cam\xe9ra","cameraRotateError":"Une erreur est survenue pendant la rotation de la cam\xe9ra","close":"Fermer","connectedTo":"Connect\xe9 \xe0 {{name}}","criticalError":"Une erreur critique est survenue (erreur {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"Une erreur est survenue pendant l\'activation du micro","noCamera":"Aucune cam\xe9ra disponible","recording":"Enregistrement en cours","reload":"Recharger","screensharingError":"Une erreur est survenue pendant l\'activation du partage d\'\xe9cran","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scannez ce QR code avec votre t\xe9l\xe9phone pour ouvrir l\'appel.","scanTitle":"Scannez le QR Code","title":"Quick Connect"},"recorder":{"addMore":"Ajouter plus","addNewClip":"Ajouter un nouveau clip","allowAccess":"Autoriser l\'acc\xe8s","allowCamMicAccess":"Autoriser acc\xe8s cam\xe9ra/micro","allowScreenShareAccess":"Autoriser l\'acc\xe8s au partage d\'\xe9cran","attachElements_one":"Joindre {{ type }} au ticket","attachElements_other":"Joindre {{ count }} \xe9l\xe9ments","audioInstructionsTitle":"Pr\xeat \xe0 enregistrer un message vocal\xa0?","audioLevelNotification":{"noSound":{"description":"Assurez-vous que votre microphone est activ\xe9.","title":"Aucun son d\xe9tect\xe9."},"shortVideo":{"description":"Cette vid\xe9o semble assez courte, ne fournit pas assez de d\xe9tails.","title":"Vid\xe9o courte."},"spokenWordsQuestion":{"description":"Votre vid\xe9o offre-t-elle une explication d\xe9taill\xe9e et claire ?","title":"Avez-vous tout expliqu\xe9 ?"},"spokenWordsWarning":{"description":"La vid\xe9o ne comprend pratiquement aucun mot prononc\xe9.","title":"Aucun mot prononc\xe9."}},"audioLevelToast":{"continueSpeaking":"Continuez \xe0 parler pour expliquer.","noSound":"Aucun son d\xe9tect\xe9.","rememberSpeaking":"Veuillez parler \xe0 voix-haute."},"chooseWhatYouWantToShare":"Choose what you want to share","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Merci d\'utiliser SnapCall.","clipSubmissionTitle_one":"Votre clip a \xe9t\xe9 envoy\xe9","clipSubmissionTitle_other":"Vos clips ont \xe9t\xe9 envoy\xe9s","confirmRemovalDescription":"Voulez-vous vraiment supprimer cette photo/vid\xe9o ? Cette action ne peut pas \xeatre annul\xe9e.","confirmRemovalTitle":"Confirmer la suppression","elementBeingProcessed":"Veuillez patienter un moment pendant que votre {{ type }} est en cours de traitement...","elementCaptureSuccess":"{{ type }} captur\xe9(e) avec succ\xe8s","elementRecordedAndAttached":"Votre clip a \xe9t\xe9 envoy\xe9 et joint au fil de discussion.","goBackToTicket":"Revenir au billet","instructions":{"allowAccessOnPrompt":"<bold>Autorisez l\'acc\xe8s</bold> \xe0 la cam\xe9ra et au micro lorsque demand\xe9.","multiplePhotos":"Prenez <bold>une ou plusieurs photos</bold> pour donner plus de d\xe9tails.","privacyPolicy":"En continuant, vous acceptez notre <bold>Politique de confidentialit\xe9</bold>.","reviewAndSendAudios":"<bold>V\xe9rifiez vos audios</bold>, et ils seront envoy\xe9s automatiquement \xe0 nous.","reviewAndSendPhotos":"<bold>Validez vos photos</bold>, et elles nous seront envoy\xe9es automatiquement.","reviewAndSendVideos":"<bold>Validez vos vid\xe9os</bold>, et elles nous seront envoy\xe9es automatiquement.","screenShareInstruction":"S\xe9lectionnez l\'\xe9cran ou la fen\xeatre que vous souhaitez enregistrer.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Parlez clairement</bold> et dites ce que vous devez transmettre.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Appuyez sur le bouton d\'enregistrement</bold> pour commencer \xe0 enregistrer votre message audio.","tapStopVideoButton":"<bold>Appuyez sur Arr\xeat</bold> lorsque vous avez termin\xe9.","tapVideoButton":"<bold>Appuyez sur Enregistrer</bold>. Pensez \xe0 commenter.","videoSpeech":"Vous pouvez <bold>parler pendant</bold> l\'enregistrement pour ajouter des d\xe9tails."},"limit":"Enregistrement vid\xe9o limit\xe9 \xe0 5 min.","logIn":"Se connecter","loggedAs":"Connect\xe9 en tant que","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAndMicrophoneAccess":"No camera & microphone access","noMicrophoneAccess":"No microphone access","okay":"D\'accord","openThread":"Ouvrir le fil de discussion","permissionDeniedDescription":"Sans acc\xe8s \xe0 la cam\xe9ra et au microphone, vous ne pouvez pas prendre de photos ou de vid\xe9os \xe0 partager avec l\'\xe9quipe d\'assistance. Veuillez accorder l\'acc\xe8s dans les param\xe8tres de votre navigateur.","permissionDeniedTitle":"Quelque chose s\'est mal pass\xe9 !","photoInstructionsTitle":"Pr\xeat \xe0 prendre une photo ?","replyAttached":"Votre r\xe9ponse a \xe9t\xe9 jointe","scanQRCode":"Scannez ce code QR avec un appareil compatible.","screenShareInstructionsTitle":"Pr\xeat \xe0 partager votre \xe9cran ?","screenTitle":"Pr\xeat \xe0 capturer votre \xe9cran ?","send":"Envoyer","sendElements_one":"Envoyer la {{ type }}","sendElements_other":"Envoyer {{ count }} \xe9l\xe9ments","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Enregistrer \xe9cran","stopScreenShareButton":"Stop enregistrement","submissionDescription":"Votre photo/vid\xe9o a \xe9t\xe9 envoy\xe9e avec succ\xe8s. Nous l\'examinerons et reviendrons vers vous bient\xf4t.","submissionTitle":"Merci pour votre soumission !","switchToMobileDescription":"Profitez d\'une exp\xe9rience encore plus pratique en utilisant votre t\xe9l\xe9phone pour prendre des photos et enregistrer des vid\xe9os.","switchToMobileTitle":"Passez sur votre mobile","takeNewElement":"Prendre une nouvelle {{ type }}","upload":"Upload","useDesktopVersion":"Continuer","videoInstructionsTitle":"Pr\xeat \xe0 enregistrer une vid\xe9o ?","waitVideo":"Cela peut prendre jusqu\'\xe0 15 secondes pour qu\'une vid\xe9o soit pr\xeate."},"recordingPopup":{"dismiss":"Fermer","recordingStartText":"Cet appel sera enregistr\xe9 sous peu. Si vous pr\xe9f\xe9rez ne pas \xeatre enregistr\xe9, vous \xeates libre de quitter l\'appel \xe0 tout moment.","recordingStartTitle":"L\'enregistrement va commencer."},"requestAccess":{"admit":"Accepter","defaultName":"Un utilisateur","deny":"Refuser","wantToJoin":"{{name}} souhaite rejoindre!"},"requestDevice":{"declined":"Votre requ\xeate a \xe9t\xe9 refus\xe9.","request":"{{user}} voudrait que vous partagiez votre {{device}}","requestInput":"Demander l\'activation","timedOut":"Votre requ\xeate n\'a pas eu de r\xe9ponse","userDeclined":"{{user}} a d\xe9clin\xe9 votre requ\xeate."},"settings":{"devices":"Appareils","help":"Aide","helpCenter":"Acc\xe9der au centre d\'aide","language":"Langage","preferences":"Pr\xe9f\xe9rences","title":"Param\xe8tres"},"shareLink":{"failed":"Une erreur est survenue pendant l\'envoi du lien","invalid":"Lien invalide","invoice":"{{user}} vous a envoy\xe9 une facture.","pay":"Payer","poweredBy":"Propos\xe9 par","sentToUser":"Lien envoy\xe9 \xe0 {{user}}","sentToUsers":"Lien envoy\xe9 aux participants","title":"Partager un lien","title2":"Partager un lien"},"sharedHistory":{"shared":"Partag\xe9 avec vous"},"snapshot":{"error":"Une erreur est survenue pendant l\'envoi du snapshot","save":"Sauvegarder l\'image","sentToUser":"Snapshot envoy\xe9 \xe0 {{user}}","sentToUsers":"Snapshot envoy\xe9 aux participants.","shared":"Snapshot envoy\xe9.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Votre cam\xe9ra est bloqu\xe9.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"Haute d\xe9finition (720p)","lowDef":"Basse d\xe9finition (240p)","sendResolution":"R\xe9solution envoy\xe9e (max)","standardDef":"D\xe9finition standard (480p)","title":"Video"},"virtualBackground":{"setBackground":"Mettre l\'arri\xe8re plan","title":"Arri\xe8re plan virtuel"},"youtube":{"invalid":"URL YouTube invalide","share":"Regarder maintenant","title":"Regardons Ensemble","url":"URL YOUTUBE"}}');
364
+ $dcf57489ec338826$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Votre micro est bloqu\xe9.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"Vous n\'avez pas acc\xe8s \xe0 cette fonctionnalit\xe9. Souscrivez au plan Pro pour d\xe9bloquer toutes les fonctionnalit\xe9s de SnapCall.","descriptionGuest":"Vous participez \xe0 un appel cr\xe9\xe9 avec la version gratuite de SnapCall. Cette fonctionnalit\xe9 n\'est disponible qu\'avec une version Pro.","dismissConnected":"Souscrire \xe0 Pro","dismissGuest":"D\'accord","titleConnected":"Souscrire au plan Pro","titleGuest":"Fonctionnalit\xe9 non disponible"},"common":{"new":"new"},"copyLink":{"copied":"Lien copi\xe9 dans le presse-papier","copy":"Copier","description":"Copier le lien dans le presse-papiers","error":"Une erreur est survenue pendant la copie du lien dans le presse-papier","title":"Copier le lien"},"endView":{"callEnded":"Cet appel est termin\xe9","callIsOver":"Cet appel est termin\xe9 ou supprim\xe9","callLeft":"Vous avez quitt\xe9 l\'appel","callNoLongerActive":"This call is no longer active. Thank you for participating.","full":"Impossible de rejoindre l\'appel","fullDescription":"Limite d\'utilisateurs atteinte. Merci de rejoindre l\'appel ult\xe9rieurement.","goBack":"Retourner dans l\'appel","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard","tooLate":"Vous \xeates arriv\xe9 trop tard"},"gdpr":{"recordedWarning":"Pour am\xe9liorer la qualit\xe9 de notre service, cet appel va \xeatre enregistr\xe9."},"greeting":{"askToJoin":"Demander \xe0 rejoindre","askingLetIn":"Demande de participation...","cameraDisabled":"Cam\xe9ra d\xe9sactiv\xe9e","cameraEnabled":"Cam\xe9ra activ\xe9e","canceledCallRequest":"La demande d\'appel sera annul\xe9e et vous serez redirig\xe9 vers la page de planification des appels.","cantJoinCall":"Vous ne pouvez pas rejoindre cet appel","cantWait":"Vous ne souhaitez pas attendre ?","cantWaitLeaveMessage":"Vous ne pouvez pas attendre ? Vous pouvez laisser un message et vous serez contact\xe9 dans les plus brefs d\xe9lais.","clickOnLock":"Cliquez sur l\'ic\xf4ne de verrouillage <1></1> dans la barre de votre navigateur.","footerDescription":"D\xe9couvrez SnapCall, ajoutez de la vid\xe9o en temps r\xe9el \xe0 n\'importe quelle plateforme, produit ou service.","footerTitle":"Propuls\xe9 par SnapCall","leaveMessage":"Laisser un message","mainTitle":"Bienvenue sur SnapCall","mediaDenied":"Acc\xe8s au microphone et \xe0 la cam\xe9ra refus\xe9","microphoneDisabled":"Microphone d\xe9sactiv\xe9","microphoneEnabled":"Microphone activ\xe9","name":"Nom","nameDescription":"Ce nom sera affich\xe9 \xe0 tous les participants","namePlaceholder":"Ex. Lucie ou Pierre","nameSubmit":"Rejoindre la conversation","recordVideo":"Enregistrer une vid\xe9o","recordVoice":"Enregistrer un message vocal","requestACall":"Solliciter un appel maintenant","scheduleACall":"Planifier un appel","setting":"Param\xe8tres","sideDescription":"Veuillez entrer votre nom et configurer votre cam\xe9ra et microphone.","sideTitle":"C\'est bient\xf4t votre tour !","someoneDenied":"Quelqu\'un lors de l\'appel a refus\xe9 votre demande de participation.","takeFewMinute":"Cela peut prendre quelques minutes selon la disponibilit\xe9 des participants.","whatYouCanDo":"Voici ce que vous pouvez faire","youWillJoinWhenSomeoneLetsYou":"Votre acc\xe8s \xe0 l\'appel sera autoris\xe9 par un membre de l\'\xe9quipe {{ companyName }}."},"header":{"free":"Version gratuite"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Ajoutez un e-mail pour inviter.","addEmails":"Ajouter des e-mails...","copyCallLinkDescription":"Copiez ce lien et envoyez-le \xe0 toute personne que vous souhaitez inviter \xe0 rejoindre l\'appel.","copyClipLinkDescription":"Copiez ce lien et envoyez-le \xe0 toute personne que vous souhaitez inviter \xe0 enregistrer un clip.","email":"Email","emailPlaceholder":"Ex. jean@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"\xc9chec de l\'envoi, veuillez r\xe9essayer plus tard.","invalidEmail":"Format d\'email invalide.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Envoy\xe9 \xe0 {{ name }}","invitationSentTo_other":"Envoy\xe9 \xe0 {{ name }} et {{ otherEmailsCount }}+","invite":"Inviter","inviteByEmail":"Inviter par email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Inviter \xe0 rejoindre l\'appel","inviteCallDefaultMessage":"Vous \xeates invit\xe9 \xe0 rejoindre notre appel vid\xe9o. Cliquez sur le lien pour vous connecter instantan\xe9ment.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Veuillez enregistrer votre clip vid\xe9o maintenant et nous fournir plus de contexte pour mieux vous aider.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Inviter \xe0 enregistrer un clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Lien pour rejoindre l\'appel","linkToRecordAClip":"Lien pour enregistrer un clip","message":"Message","sharePublicLink":"Partager le lien public"},"leave":{"endCall":"Terminer l\'appel","leaveCall":"Quitter l\'appel","title":"Quitter"},"loader":{"connection":"Connexion..."},"menu":{"new":"NOUVEAU","openNewTab":"Ouvrir un nouvel onglet","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Partage d\'\xe9cran","startRecord":"Enregistrer l\'appel","stopRecord":"Arr\xeater l\'enregistrement","title":"Menu"},"misc":{"accept":"Accepter","audio":"Audio","camera":"Cam\xe9ra","cancel":"Annuler","confirm":"Confirmer","decline":"D\xe9cliner","from":"Depuis","microphone":"Micro","open":"Ouvrir","photo":"Photo","proceed":"Proc\xe9der","remove":"Enlever","screen":"\xc9cran","screenshot":"Capture d\'\xe9cran","someone":"Quelqu\'un","speaker":"Haut-parleur","user":"Utilisateur","video":"Vid\xe9o","you":"Vous"},"notifications":{"agentJoinError":"Une erreur est survenue en essayant de rejoindre la salle en tant qu\'agent","blockedMicrophonePopup":"SnapCall a besoin d\'acc\xe9der \xe0 votre cam\xe9ra et micro. Cliquez sur l\'ic\xf4ne de cam\xe9ra bloqu\xe9e dans la barre d\'adresse du navigateur.","blockedMicrophonePopupTitle":"Votre cam\xe9ra et micro sont bloqu\xe9s","cameraError":"Une erreur est survenue pendant l\'activation de la cam\xe9ra","cameraRotateError":"Une erreur est survenue pendant la rotation de la cam\xe9ra","close":"Fermer","connectedTo":"Connect\xe9 \xe0 {{name}}","criticalError":"Une erreur critique est survenue (erreur {{code}}).","error":"Error","errorOccuredCode":"An error occured (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"Une erreur est survenue pendant l\'activation du micro","noCamera":"Aucune cam\xe9ra disponible","recording":"Enregistrement en cours","reload":"Recharger","screensharingError":"Une erreur est survenue pendant l\'activation du partage d\'\xe9cran","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scannez ce QR code avec votre t\xe9l\xe9phone pour ouvrir l\'appel.","scanTitle":"Scannez le QR Code","title":"Quick Connect"},"recorder":{"addMore":"Ajouter plus","addNewClip":"Ajouter un nouveau clip","allowAccess":"Autoriser l\'acc\xe8s","allowCamMicAccess":"Autoriser acc\xe8s cam\xe9ra/micro","allowScreenShareAccess":"Autoriser l\'acc\xe8s au partage d\'\xe9cran","attachElements_one":"Joindre {{ type }} au ticket","attachElements_other":"Joindre {{ count }} \xe9l\xe9ments","audioInstructionsTitle":"Pr\xeat \xe0 enregistrer un message vocal\xa0?","audioLevelNotification":{"noSound":{"description":"Assurez-vous que votre microphone est activ\xe9.","title":"Aucun son d\xe9tect\xe9."},"shortVideo":{"description":"Cette vid\xe9o semble assez courte, ne fournit pas assez de d\xe9tails.","title":"Vid\xe9o courte."},"spokenWordsQuestion":{"description":"Votre vid\xe9o offre-t-elle une explication d\xe9taill\xe9e et claire ?","title":"Avez-vous tout expliqu\xe9 ?"},"spokenWordsWarning":{"description":"La vid\xe9o ne comprend pratiquement aucun mot prononc\xe9.","title":"Aucun mot prononc\xe9."}},"audioLevelToast":{"continueSpeaking":"Continuez \xe0 parler pour expliquer.","noSound":"Aucun son d\xe9tect\xe9.","rememberSpeaking":"Veuillez parler \xe0 voix-haute."},"chooseWhatYouWantToShare":"Choose what you want to share","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Merci d\'utiliser SnapCall.","clipSubmissionTitle_one":"Votre clip a \xe9t\xe9 envoy\xe9","clipSubmissionTitle_other":"Vos clips ont \xe9t\xe9 envoy\xe9s","confirmRemovalDescription":"Voulez-vous vraiment supprimer cette photo/vid\xe9o ? Cette action ne peut pas \xeatre annul\xe9e.","confirmRemovalTitle":"Confirmer la suppression","elementBeingProcessed":"Veuillez patienter un moment pendant que votre {{ type }} est en cours de traitement...","elementCaptureSuccess":"{{ type }} captur\xe9(e) avec succ\xe8s","elementRecordedAndAttached":"Votre clip a \xe9t\xe9 envoy\xe9 et joint au fil de discussion.","goBackToTicket":"Revenir au billet","instructions":{"allowAccessOnPrompt":"<bold>Autorisez l\'acc\xe8s</bold> \xe0 la cam\xe9ra et au micro lorsque demand\xe9.","multiplePhotos":"Prenez <bold>une ou plusieurs photos</bold> pour donner plus de d\xe9tails.","privacyPolicy":"En continuant, vous acceptez notre <bold>Politique de confidentialit\xe9</bold>.","reviewAndSendAudios":"<bold>V\xe9rifiez vos audios</bold>, et ils seront envoy\xe9s automatiquement \xe0 nous.","reviewAndSendPhotos":"<bold>Validez vos photos</bold>, et elles nous seront envoy\xe9es automatiquement.","reviewAndSendVideos":"<bold>Validez vos vid\xe9os</bold>, et elles nous seront envoy\xe9es automatiquement.","screenShareInstruction":"S\xe9lectionnez l\'\xe9cran ou la fen\xeatre que vous souhaitez enregistrer.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Parlez clairement</bold> et dites ce que vous devez transmettre.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Appuyez sur le bouton d\'enregistrement</bold> pour commencer \xe0 enregistrer votre message audio.","tapStopVideoButton":"<bold>Appuyez sur Arr\xeat</bold> lorsque vous avez termin\xe9.","tapVideoButton":"<bold>Appuyez sur Enregistrer</bold>. Pensez \xe0 commenter.","videoSpeech":"Vous pouvez <bold>parler pendant</bold> l\'enregistrement pour ajouter des d\xe9tails."},"limit":"Enregistrement vid\xe9o limit\xe9 \xe0 5 min.","logIn":"Se connecter","loggedAs":"Connect\xe9 en tant que","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAccessDescription":"No camera access Allow camera access in your browser.","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccess":"No microphone access","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","okay":"D\'accord","openThread":"Ouvrir le fil de discussion","permissionDeniedDescription":"Sans acc\xe8s \xe0 la cam\xe9ra et au microphone, vous ne pouvez pas prendre de photos ou de vid\xe9os \xe0 partager avec l\'\xe9quipe d\'assistance. Veuillez accorder l\'acc\xe8s dans les param\xe8tres de votre navigateur.","permissionDeniedTitle":"Quelque chose s\'est mal pass\xe9 !","photoInstructionsTitle":"Pr\xeat \xe0 prendre une photo ?","replyAttached":"Votre r\xe9ponse a \xe9t\xe9 jointe","scanQRCode":"Scannez ce code QR avec un appareil compatible.","screenShareInstructionsTitle":"Pr\xeat \xe0 partager votre \xe9cran ?","screenTitle":"Pr\xeat \xe0 capturer votre \xe9cran ?","send":"Envoyer","sendElements_one":"Envoyer la {{ type }}","sendElements_other":"Envoyer {{ count }} \xe9l\xe9ments","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Enregistrer \xe9cran","stopScreenShareButton":"Stop enregistrement","submissionDescription":"Votre photo/vid\xe9o a \xe9t\xe9 envoy\xe9e avec succ\xe8s. Nous l\'examinerons et reviendrons vers vous bient\xf4t.","submissionTitle":"Merci pour votre soumission !","switchToMobileDescription":"Profitez d\'une exp\xe9rience encore plus pratique en utilisant votre t\xe9l\xe9phone pour prendre des photos et enregistrer des vid\xe9os.","switchToMobileTitle":"Passez sur votre mobile","takeNewElement":"Prendre une nouvelle {{ type }}","upload":"Upload","useDesktopVersion":"Continuer","videoInstructionsTitle":"Pr\xeat \xe0 enregistrer une vid\xe9o ?","waitVideo":"Cela peut prendre jusqu\'\xe0 15 secondes pour qu\'une vid\xe9o soit pr\xeate."},"recordingPopup":{"dismiss":"Fermer","recordingStartText":"Cet appel sera enregistr\xe9 sous peu. Si vous pr\xe9f\xe9rez ne pas \xeatre enregistr\xe9, vous \xeates libre de quitter l\'appel \xe0 tout moment.","recordingStartTitle":"L\'enregistrement va commencer."},"requestAccess":{"admit":"Accepter","defaultName":"Un utilisateur","deny":"Refuser","wantToJoin":"{{name}} souhaite rejoindre!"},"requestDevice":{"declined":"Votre requ\xeate a \xe9t\xe9 refus\xe9.","request":"{{user}} voudrait que vous partagiez votre {{device}}","requestInput":"Demander l\'activation","timedOut":"Votre requ\xeate n\'a pas eu de r\xe9ponse","userDeclined":"{{user}} a d\xe9clin\xe9 votre requ\xeate."},"settings":{"devices":"Appareils","help":"Aide","helpCenter":"Acc\xe9der au centre d\'aide","language":"Langage","preferences":"Pr\xe9f\xe9rences","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language","selectYourMicrophone":"Select your preferred microphone","title":"Param\xe8tres"},"shareLink":{"failed":"Une erreur est survenue pendant l\'envoi du lien","invalid":"Lien invalide","invoice":"{{user}} vous a envoy\xe9 une facture.","pay":"Payer","poweredBy":"Propos\xe9 par","sentToUser":"Lien envoy\xe9 \xe0 {{user}}","sentToUsers":"Lien envoy\xe9 aux participants","title":"Partager un lien","title2":"Partager un lien"},"sharedHistory":{"shared":"Partag\xe9 avec vous"},"snapshot":{"error":"Une erreur est survenue pendant l\'envoi du snapshot","save":"Sauvegarder l\'image","sentToUser":"Snapshot envoy\xe9 \xe0 {{user}}","sentToUsers":"Snapshot envoy\xe9 aux participants.","shared":"Snapshot envoy\xe9.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Votre cam\xe9ra est bloqu\xe9.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"Haute d\xe9finition (720p)","lowDef":"Basse d\xe9finition (240p)","sendResolution":"R\xe9solution envoy\xe9e (max)","standardDef":"D\xe9finition standard (480p)","title":"Video"},"virtualBackground":{"setBackground":"Mettre l\'arri\xe8re plan","title":"Arri\xe8re plan virtuel"},"youtube":{"invalid":"URL YouTube invalide","share":"Regarder maintenant","title":"Regardons Ensemble","url":"URL YOUTUBE"}}');
368
365
 
369
366
 
370
367
  var $8af7f345a966aef3$exports = {};
371
- $8af7f345a966aef3$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Il tuo microfono \xe8 bloccato.","microphonePermissions":"Si prega di accettare la condivisione del microfono prima di accedere a queste opzioni.","title":"Audio"},"blockedFeature":{"descriptionConnected":"Su un piano gratuito, non puoi utilizzare questa funzione. Aggiorna il tuo piano per usufruire di tutte le funzionalit\xe0 in chiamata.","descriptionGuest":"Stai partecipando a una chiamata creata con una versione gratuita di SnapCall. Questa funzione \xe8 disponibile solo con una versione Pro.","dismissConnected":"L\'aggiornamento a Pro","dismissGuest":"Okay","titleConnected":"L\'aggiornamento a Pro","titleGuest":"Funzione non disponibile"},"common":{"new":"new"},"copyLink":{"copied":"Link copiato negli Appunti","copy":"Copia","description":"Copia il link negli appunti","error":"Si \xe8 verificato un errore durante la copia negli Appunti","title":"Copia il link"},"endView":{"callEnded":"Questa chiamata \xe8 finita","callIsOver":"Questa chiamata \xe8 finita o \xe8 stata eliminata","callLeft":"Hai lasciato la chiamata","full":"Impossibile partecipare alla chiamata","fullDescription":"Limite d\'uso attenente.","goBack":"Torna alla chiamata","tooLate":"Sei arrivato troppo tardi"},"gdpr":{"recordedWarning":"Per migliorare la qualit\xe0 del nostro servizio, questa chiamata verr\xe0 registrata."},"greeting":{"askToJoin":"Chiedi di partecipare","askingLetIn":"Chiedo di essere fatto entrare...","cameraDisabled":"Fotocamera \xe8 spenta","cameraEnabled":"Fotocamera \xe8 accesa","canceledCallRequest":"La richiesta di chiamata verr\xe0 annullata e verrai reindirizzato alla pagina di pianificazione delle chiamate","cantJoinCall":"Non puoi partecipare a questa chiamata","cantWait":"Non vedo l\'ora?","cantWaitLeaveMessage":"Non vedi l\'ora? Puoi lasciare un messaggio e sarai contattato il prima possibile.","clickOnLock":"Fai clic sull\'icona del lucchetto <1></1> nella barra del browser.","footerDescription":"Incontrare SnapCall, il modo pi\xf9 semplice per aggiungere video in tempo reale a piattaforma, prodotto o servizio.","footerTitle":"Offerto da SnapCall","leaveMessage":"Lascia un messaggio","mainTitle":"Benvenuto a SnapCall","mediaDenied":"Accesso al microfono e alla fotocamera negato","microphoneDisabled":"Microfono \xe8 spento","microphoneEnabled":"Microfono \xe8 acceso","name":"Nome","nameDescription":"Questo nome verr\xe0 visualizzato a tutti i partecipanti alla chiamata.","namePlaceholder":"Per esempio. Lucia o Pietro","nameSubmit":"Partecipa alla conversazione","recordVideo":"Registra video","recordVoice":"Registra voce","requestACall":"Richiedi una chiamata","scheduleACall":"Pianifica una chiamata","setting":"Impostazioni","sideDescription":"Inserisci il tuo nome e regola la fotocamera e il microfono","sideTitle":"Tieni duro, il prossimo sei tu!","someoneDenied":"Qualcuno nella chiamata ha rifiutato la tua richiesta di partecipazione.","takeFewMinute":"L\'operazione potrebbe richiedere alcuni minuti a seconda della disponibilit\xe0 dei partecipanti.","whatYouCanDo":"Ecco cosa puoi fare","youWillJoinWhenSomeoneLetsYou":"Parteciperai alla chiamata quando qualcuno di {{ companyName }} ti far\xe0 entrare."},"header":{"free":"Versione gratuita"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Aggiungi un\'e-mail per invitare.","addEmails":"Aggiungi email...","copyCallLinkDescription":"Copia questo link e invialo a chiunque desideri invitare a partecipare alla chiamata.","copyClipLinkDescription":"Copia questo collegamento e invialo a chiunque desideri invitare a registrare una clip.","email":"Email","emailPlaceholder":"Es. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Impossibile inviare, riprova pi\xf9 tardi.","invalidEmail":"Formato email non valido.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Inviato a {{ name }}","invitationSentTo_other":"Inviato a {{ name }} e {{ otherEmailsCount }}+","invite":"Invita","inviteByEmail":"Invita via email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invita a partecipare alla chiamata","inviteCallDefaultMessage":"Sei invitato a partecipare alla nostra videochiamata. Fare clic sul collegamento per connettersi immediatamente.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Registra subito il tuo videoclip e forniscici pi\xf9 contesto per assisterti meglio.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invita a registrare la clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link per partecipare alla chiamata","linkToRecordAClip":"Collegamento per registrare una clip","message":"Messaggio","sharePublicLink":"Condividi link"},"leave":{"endCall":"Termina la chiamata per tutti","leaveCall":"Lascia la chiamata","title":"Lasciare"},"loader":{"connection":"Connessione..."},"menu":{"new":"NUOVO","openNewTab":"Apri una nuova scheda","pictureInPicture":"Immagine nell\'immagine","quickConnect":"Connessione Rapida","screenSharing":"Condivisione dello schermo","startRecord":"Registra chiamata","stopRecord":"Interrompere la registrazione","title":"Men\xf9"},"misc":{"accept":"Accettare","audio":"Audio","camera":"Telecamera","cancel":"Annulla","confirm":"Confermare","decline":"Declinare","from":"Da","microphone":"Microfono","open":"Aprire","photo":"Foto","proceed":"Procedere","remove":"Rimuovere","screen":"Schermo","screenshot":"Schermata","someone":"Qualcuno","speaker":"Altoparlante","user":"Utente","video":"Video","you":"Voi"},"notifications":{"agentJoinError":"Si \xe8 verificato un errore cercando di entrare nella conversazione come agente","blockedMicrophonePopup":"SnapCall ha bisogno di accedere alla fotocamera e al microfono. Fare clic sull\'icona della fotocamera bloccata nella barra degli indirizzi del browser.","blockedMicrophonePopupTitle":"La tua fotocamera e il tuo microfono sono bloccati","cameraError":"Si \xe8 verificato un errore durante l\'attivazione della fotocamera","cameraRotateError":"Si \xe8 verificato un errore durante la rotazione della fotocamera","close":"Chiudere","connectedTo":"Connesso a {{name}}","criticalError":"Si \xe8 verificato un errore critico (errore {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"Si \xe8 verificato un errore durante l\'attivazione del microfono","noCamera":"Nessuna fotocamera disponibile","recording":"Registrazione in corso","reload":"Ricaricare","screensharingError":"Si \xe8 verificato un errore durante l\'attivazione della condivisione dello schermo","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scansiona questo codice QR con il telefono per aprire la chiamata.","scanTitle":"Scansiona il codice QR","title":"Connessione Rapida"},"recorder":{"addMore":"Aggiungere altro","addNewClip":"Aggiungi una nuova clip","allowAccess":"Consenti accesso","allowCamMicAccess":"Consenti l\'accesso a cam/mic","allowScreenShareAccess":"Consenti accesso alla condivisione dello schermo","attachElements_one":"Allega {{ type }} al biglietto","attachElements_other":"Allega {{ count }} elementi","audioInstructionsTitle":"Pronti per registrare un messaggio vocale?","audioLevelNotification":{"noSound":{"description":"Assicurati che il microfono sia attivato.","title":"Nessun suono rilevato."},"shortVideo":{"description":"Questo video \xe8 troppo breve per avere un contesto.","title":"Breve video."},"spokenWordsQuestion":{"description":"Il tuo video include abbastanza dettagli parlati?","title":"Parole pronunciate."},"spokenWordsWarning":{"description":"La clip include a malapena parole pronunciate.","title":"Nessuna parola detta."}},"audioLevelToast":{"continueSpeaking":"Continua a parlare per un contesto pi\xf9 chiaro.","noSound":"Nessun suono rilevato.","rememberSpeaking":"Ricordati di parlare per fornire il contesto."},"chooseWhatYouWantToShare":"Choose what you want to share","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Grazie per aver utilizzato SnapCall.","clipSubmissionTitle_one":"La tua clip \xe8 stata inviata","clipSubmissionTitle_other":"I tuoi clip sono stati inviati","confirmRemovalDescription":"Sei sicuro di voler rimuovere questa foto/video? Questa azione non pu\xf2 essere annullata.","confirmRemovalTitle":"Conferma rimozione","elementBeingProcessed":"Attendi un momento mentre il tuo {{ type }} viene elaborato...","elementCaptureSuccess":"{{ type }} catturato con successo","elementRecordedAndAttached":"La tua clip \xe8 stata inviata e allegata al thread.","goBackToTicket":"Torna al biglietto","instructions":{"allowAccessOnPrompt":"<bold>Consenti l\'accesso</bold> alla fotocamera e al microfono.","multiplePhotos":"Scatta <bold>una foto o pi\xf9</bold> di una per i dettagli.","privacyPolicy":"Procedendo, accetti la nostra <bold>Politica sulla Privacy.</bold>","reviewAndSendAudios":"<bold>Rivedi i tuoi audio</bold> e verranno inviati automaticamente a noi.","reviewAndSendPhotos":"<bold>Convalida le tue foto</bold> e verranno inviate automaticamente a noi.","reviewAndSendVideos":"<bold>Convalida i tuoi video</bold> e verranno inviati automaticamente a noi.","screenShareInstruction":"Seleziona lo schermo o la finestra che desideri registrare.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Parla chiaramente</bold> e d\xec ci\xf2 che devi comunicare.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Premi il pulsante di registrazione</bold> per iniziare a registrare il tuo messaggio vocale.","tapStopVideoButton":"<bold>Premi Stop</bold> quando hai finito.","tapVideoButton":"<bold>Premi Registra</bold>. Ricordati di commentare.","videoSpeech":"Puoi <bold>parlare durante</bold> la registrazione per aggiungere dettagli."},"limit":"Registrazione video limitata a 5 min.","logIn":"Login","loggedAs":"Registrato come","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAndMicrophoneAccess":"No camera & microphone access","noMicrophoneAccess":"No microphone access","okay":"Okay","openThread":"Apri il thread","permissionDeniedDescription":"Senza l\'accesso alla fotocamera e al microfono, non \xe8 possibile scattare foto o registrare video da condividere con il team di supporto. Si prega di concedere l\'accesso nelle impostazioni del browser.","permissionDeniedTitle":"Qualcosa \xe8 andato storto!","photoInstructionsTitle":"Pronto a scattare una foto?","replyAttached":"La tua risposta \xe8 stata allegata","scanQRCode":"Scansiona questo codice QR con un dispositivo compatibile.","screenShareInstructionsTitle":"Pronto a condividere il tuo schermo?","screenTitle":"Pronto a catturare il tuo schermo?","send":"Invia","sendElements_one":"Invia {{ type }}","sendElements_other":"Invia {{ count }} elementi","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Registra il mio schermo","stopScreenShareButton":"Ferma registrazione","submissionDescription":"La tua foto/video \xe8 stata inviata con successo. La esamineremo e ti risponderemo al pi\xf9 presto.","submissionTitle":"Grazie per il tuo invio!","switchToMobileDescription":"Goditi un\'esperienza ancora pi\xf9 pratica utilizzando il tuo telefono per scattare foto e registrare video.","switchToMobileTitle":"Passa al tuo dispositivo mobile","takeNewElement":"Cattura un nuovo {{ type }}","upload":"Upload","useDesktopVersion":"Usa la versione desktop","videoInstructionsTitle":"Pronto a registrare un video?","waitVideo":"Potrebbero essere necessari fino a 15 secondi affinch\xe9 un video sia pronto."},"recordingPopup":{"dismiss":"Chiudi","recordingStartText":"Questa chiamata verr\xe0 registrata a breve. Se preferisci non essere registrato, sei libero di lasciare la chiamata in questo momento.","recordingStartTitle":"Registrazione in procinto di iniziare."},"requestAccess":{"admit":"Ammettere","defaultName":"Un utente","deny":"Negare","wantToJoin":"<bold>{{name}}</bold> vuole unirsi!"},"requestDevice":{"declined":"La tua richiesta \xe8 stata rifiutata.","request":"{{user}} vorrebbe condividere il tuo {{device}}","requestInput":"Richiesta di attivazione","timedOut":"La tua richiesta non ha ricevuto risposta","userDeclined":"{{user}} ha rifiutato la tua richiesta"},"settings":{"devices":"Dispositivi","help":"Aiuto","helpCenter":"Accedi all\'Assistenza","language":"Linguaggio","preferences":"Preferenze","title":"Impostazioni"},"shareLink":{"failed":"Si \xe8 verificato un errore durante l\'invio del link","invalid":"Collegamento non valido","invoice":"{{user}} ti ha inviato una fattura.","pay":"Paga","poweredBy":"Proposto da","sentToUser":"Link inviato a {{user}}","sentToUsers":"Link inviato ai partecipanti","title":"Condividi un link","title2":"Condividi un link"},"sharedHistory":{"shared":"Condiviso con te"},"snapshot":{"error":"Si \xe8 verificato un errore durante l\'invio della schermata","save":"Salva l\'immagine","sentToUser":"Schermata inviata a {{user}}","sentToUsers":"Schermanta inviata ai partecipanti","shared":"Schermata inviata","title":"Schermata"},"videoMenu":{"blockedCamera":"La fotocamera \xe8 bloccata.","cameraPermissions":"Si prega di accettare la condivisione della fotocamera prima di accedere a queste opzioni.","highDef":"Alta definizione (720p)","lowDef":"Definizione bassa (240p)","sendResolution":"Risoluzione inviata (max)","standardDef":"Definizione standard (480p)","title":"Video"},"virtualBackground":{"setBackground":"Imposta sfondo","title":"Sfondo virtuale"},"youtube":{"invalid":"URL YouTube non valido","share":"Guarda ora","title":"Vedere Assieme","url":"URL YOUTUBE"}}');
368
+ $8af7f345a966aef3$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Il tuo microfono \xe8 bloccato.","microphonePermissions":"Si prega di accettare la condivisione del microfono prima di accedere a queste opzioni.","title":"Audio"},"blockedFeature":{"descriptionConnected":"Su un piano gratuito, non puoi utilizzare questa funzione. Aggiorna il tuo piano per usufruire di tutte le funzionalit\xe0 in chiamata.","descriptionGuest":"Stai partecipando a una chiamata creata con una versione gratuita di SnapCall. Questa funzione \xe8 disponibile solo con una versione Pro.","dismissConnected":"L\'aggiornamento a Pro","dismissGuest":"Okay","titleConnected":"L\'aggiornamento a Pro","titleGuest":"Funzione non disponibile"},"common":{"new":"new"},"copyLink":{"copied":"Link copiato negli Appunti","copy":"Copia","description":"Copia il link negli appunti","error":"Si \xe8 verificato un errore durante la copia negli Appunti","title":"Copia il link"},"endView":{"callEnded":"Questa chiamata \xe8 finita","callIsOver":"Questa chiamata \xe8 finita o \xe8 stata eliminata","callLeft":"Hai lasciato la chiamata","callNoLongerActive":"This call is no longer active. Thank you for participating.","full":"Impossibile partecipare alla chiamata","fullDescription":"Limite d\'uso attenente.","goBack":"Torna alla chiamata","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard","tooLate":"Sei arrivato troppo tardi"},"gdpr":{"recordedWarning":"Per migliorare la qualit\xe0 del nostro servizio, questa chiamata verr\xe0 registrata."},"greeting":{"askToJoin":"Chiedi di partecipare","askingLetIn":"Chiedo di essere fatto entrare...","cameraDisabled":"Fotocamera \xe8 spenta","cameraEnabled":"Fotocamera \xe8 accesa","canceledCallRequest":"La richiesta di chiamata verr\xe0 annullata e verrai reindirizzato alla pagina di pianificazione delle chiamate","cantJoinCall":"Non puoi partecipare a questa chiamata","cantWait":"Non vedo l\'ora?","cantWaitLeaveMessage":"Non vedi l\'ora? Puoi lasciare un messaggio e sarai contattato il prima possibile.","clickOnLock":"Fai clic sull\'icona del lucchetto <1></1> nella barra del browser.","footerDescription":"Incontrare SnapCall, il modo pi\xf9 semplice per aggiungere video in tempo reale a piattaforma, prodotto o servizio.","footerTitle":"Offerto da SnapCall","leaveMessage":"Lascia un messaggio","mainTitle":"Benvenuto a SnapCall","mediaDenied":"Accesso al microfono e alla fotocamera negato","microphoneDisabled":"Microfono \xe8 spento","microphoneEnabled":"Microfono \xe8 acceso","name":"Nome","nameDescription":"Questo nome verr\xe0 visualizzato a tutti i partecipanti alla chiamata.","namePlaceholder":"Per esempio. Lucia o Pietro","nameSubmit":"Partecipa alla conversazione","recordVideo":"Registra video","recordVoice":"Registra voce","requestACall":"Richiedi una chiamata","scheduleACall":"Pianifica una chiamata","setting":"Impostazioni","sideDescription":"Inserisci il tuo nome e regola la fotocamera e il microfono","sideTitle":"Tieni duro, il prossimo sei tu!","someoneDenied":"Qualcuno nella chiamata ha rifiutato la tua richiesta di partecipazione.","takeFewMinute":"L\'operazione potrebbe richiedere alcuni minuti a seconda della disponibilit\xe0 dei partecipanti.","whatYouCanDo":"Ecco cosa puoi fare","youWillJoinWhenSomeoneLetsYou":"Parteciperai alla chiamata quando qualcuno di {{ companyName }} ti far\xe0 entrare."},"header":{"free":"Versione gratuita"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Aggiungi un\'e-mail per invitare.","addEmails":"Aggiungi email...","copyCallLinkDescription":"Copia questo link e invialo a chiunque desideri invitare a partecipare alla chiamata.","copyClipLinkDescription":"Copia questo collegamento e invialo a chiunque desideri invitare a registrare una clip.","email":"Email","emailPlaceholder":"Es. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Impossibile inviare, riprova pi\xf9 tardi.","invalidEmail":"Formato email non valido.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Inviato a {{ name }}","invitationSentTo_other":"Inviato a {{ name }} e {{ otherEmailsCount }}+","invite":"Invita","inviteByEmail":"Invita via email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invita a partecipare alla chiamata","inviteCallDefaultMessage":"Sei invitato a partecipare alla nostra videochiamata. Fare clic sul collegamento per connettersi immediatamente.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Registra subito il tuo videoclip e forniscici pi\xf9 contesto per assisterti meglio.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invita a registrare la clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link per partecipare alla chiamata","linkToRecordAClip":"Collegamento per registrare una clip","message":"Messaggio","sharePublicLink":"Condividi link"},"leave":{"endCall":"Termina la chiamata per tutti","leaveCall":"Lascia la chiamata","title":"Lasciare"},"loader":{"connection":"Connessione..."},"menu":{"new":"NUOVO","openNewTab":"Apri una nuova scheda","pictureInPicture":"Immagine nell\'immagine","quickConnect":"Connessione Rapida","screenSharing":"Condivisione dello schermo","startRecord":"Registra chiamata","stopRecord":"Interrompere la registrazione","title":"Men\xf9"},"misc":{"accept":"Accettare","audio":"Audio","camera":"Telecamera","cancel":"Annulla","confirm":"Confermare","decline":"Declinare","from":"Da","microphone":"Microfono","open":"Aprire","photo":"Foto","proceed":"Procedere","remove":"Rimuovere","screen":"Schermo","screenshot":"Schermata","someone":"Qualcuno","speaker":"Altoparlante","user":"Utente","video":"Video","you":"Voi"},"notifications":{"agentJoinError":"Si \xe8 verificato un errore cercando di entrare nella conversazione come agente","blockedMicrophonePopup":"SnapCall ha bisogno di accedere alla fotocamera e al microfono. Fare clic sull\'icona della fotocamera bloccata nella barra degli indirizzi del browser.","blockedMicrophonePopupTitle":"La tua fotocamera e il tuo microfono sono bloccati","cameraError":"Si \xe8 verificato un errore durante l\'attivazione della fotocamera","cameraRotateError":"Si \xe8 verificato un errore durante la rotazione della fotocamera","close":"Chiudere","connectedTo":"Connesso a {{name}}","criticalError":"Si \xe8 verificato un errore critico (errore {{code}}).","error":"Error","errorOccuredCode":"An error occured (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"Si \xe8 verificato un errore durante l\'attivazione del microfono","noCamera":"Nessuna fotocamera disponibile","recording":"Registrazione in corso","reload":"Ricaricare","screensharingError":"Si \xe8 verificato un errore durante l\'attivazione della condivisione dello schermo","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scansiona questo codice QR con il telefono per aprire la chiamata.","scanTitle":"Scansiona il codice QR","title":"Connessione Rapida"},"recorder":{"addMore":"Aggiungere altro","addNewClip":"Aggiungi una nuova clip","allowAccess":"Consenti accesso","allowCamMicAccess":"Consenti l\'accesso a cam/mic","allowScreenShareAccess":"Consenti accesso alla condivisione dello schermo","attachElements_one":"Allega {{ type }} al biglietto","attachElements_other":"Allega {{ count }} elementi","audioInstructionsTitle":"Pronti per registrare un messaggio vocale?","audioLevelNotification":{"noSound":{"description":"Assicurati che il microfono sia attivato.","title":"Nessun suono rilevato."},"shortVideo":{"description":"Questo video \xe8 troppo breve per avere un contesto.","title":"Breve video."},"spokenWordsQuestion":{"description":"Il tuo video include abbastanza dettagli parlati?","title":"Parole pronunciate."},"spokenWordsWarning":{"description":"La clip include a malapena parole pronunciate.","title":"Nessuna parola detta."}},"audioLevelToast":{"continueSpeaking":"Continua a parlare per un contesto pi\xf9 chiaro.","noSound":"Nessun suono rilevato.","rememberSpeaking":"Ricordati di parlare per fornire il contesto."},"chooseWhatYouWantToShare":"Choose what you want to share","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Grazie per aver utilizzato SnapCall.","clipSubmissionTitle_one":"La tua clip \xe8 stata inviata","clipSubmissionTitle_other":"I tuoi clip sono stati inviati","confirmRemovalDescription":"Sei sicuro di voler rimuovere questa foto/video? Questa azione non pu\xf2 essere annullata.","confirmRemovalTitle":"Conferma rimozione","elementBeingProcessed":"Attendi un momento mentre il tuo {{ type }} viene elaborato...","elementCaptureSuccess":"{{ type }} catturato con successo","elementRecordedAndAttached":"La tua clip \xe8 stata inviata e allegata al thread.","goBackToTicket":"Torna al biglietto","instructions":{"allowAccessOnPrompt":"<bold>Consenti l\'accesso</bold> alla fotocamera e al microfono.","multiplePhotos":"Scatta <bold>una foto o pi\xf9</bold> di una per i dettagli.","privacyPolicy":"Procedendo, accetti la nostra <bold>Politica sulla Privacy.</bold>","reviewAndSendAudios":"<bold>Rivedi i tuoi audio</bold> e verranno inviati automaticamente a noi.","reviewAndSendPhotos":"<bold>Convalida le tue foto</bold> e verranno inviate automaticamente a noi.","reviewAndSendVideos":"<bold>Convalida i tuoi video</bold> e verranno inviati automaticamente a noi.","screenShareInstruction":"Seleziona lo schermo o la finestra che desideri registrare.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Parla chiaramente</bold> e d\xec ci\xf2 che devi comunicare.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Premi il pulsante di registrazione</bold> per iniziare a registrare il tuo messaggio vocale.","tapStopVideoButton":"<bold>Premi Stop</bold> quando hai finito.","tapVideoButton":"<bold>Premi Registra</bold>. Ricordati di commentare.","videoSpeech":"Puoi <bold>parlare durante</bold> la registrazione per aggiungere dettagli."},"limit":"Registrazione video limitata a 5 min.","logIn":"Login","loggedAs":"Registrato come","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAccessDescription":"No camera access Allow camera access in your browser.","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccess":"No microphone access","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","okay":"Okay","openThread":"Apri il thread","permissionDeniedDescription":"Senza l\'accesso alla fotocamera e al microfono, non \xe8 possibile scattare foto o registrare video da condividere con il team di supporto. Si prega di concedere l\'accesso nelle impostazioni del browser.","permissionDeniedTitle":"Qualcosa \xe8 andato storto!","photoInstructionsTitle":"Pronto a scattare una foto?","replyAttached":"La tua risposta \xe8 stata allegata","scanQRCode":"Scansiona questo codice QR con un dispositivo compatibile.","screenShareInstructionsTitle":"Pronto a condividere il tuo schermo?","screenTitle":"Pronto a catturare il tuo schermo?","send":"Invia","sendElements_one":"Invia {{ type }}","sendElements_other":"Invia {{ count }} elementi","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Registra il mio schermo","stopScreenShareButton":"Ferma registrazione","submissionDescription":"La tua foto/video \xe8 stata inviata con successo. La esamineremo e ti risponderemo al pi\xf9 presto.","submissionTitle":"Grazie per il tuo invio!","switchToMobileDescription":"Goditi un\'esperienza ancora pi\xf9 pratica utilizzando il tuo telefono per scattare foto e registrare video.","switchToMobileTitle":"Passa al tuo dispositivo mobile","takeNewElement":"Cattura un nuovo {{ type }}","upload":"Upload","useDesktopVersion":"Usa la versione desktop","videoInstructionsTitle":"Pronto a registrare un video?","waitVideo":"Potrebbero essere necessari fino a 15 secondi affinch\xe9 un video sia pronto."},"recordingPopup":{"dismiss":"Chiudi","recordingStartText":"Questa chiamata verr\xe0 registrata a breve. Se preferisci non essere registrato, sei libero di lasciare la chiamata in questo momento.","recordingStartTitle":"Registrazione in procinto di iniziare."},"requestAccess":{"admit":"Ammettere","defaultName":"Un utente","deny":"Negare","wantToJoin":"<bold>{{name}}</bold> vuole unirsi!"},"requestDevice":{"declined":"La tua richiesta \xe8 stata rifiutata.","request":"{{user}} vorrebbe condividere il tuo {{device}}","requestInput":"Richiesta di attivazione","timedOut":"La tua richiesta non ha ricevuto risposta","userDeclined":"{{user}} ha rifiutato la tua richiesta"},"settings":{"devices":"Dispositivi","help":"Aiuto","helpCenter":"Accedi all\'Assistenza","language":"Linguaggio","preferences":"Preferenze","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language","selectYourMicrophone":"Select your preferred microphone","title":"Impostazioni"},"shareLink":{"failed":"Si \xe8 verificato un errore durante l\'invio del link","invalid":"Collegamento non valido","invoice":"{{user}} ti ha inviato una fattura.","pay":"Paga","poweredBy":"Proposto da","sentToUser":"Link inviato a {{user}}","sentToUsers":"Link inviato ai partecipanti","title":"Condividi un link","title2":"Condividi un link"},"sharedHistory":{"shared":"Condiviso con te"},"snapshot":{"error":"Si \xe8 verificato un errore durante l\'invio della schermata","save":"Salva l\'immagine","sentToUser":"Schermata inviata a {{user}}","sentToUsers":"Schermanta inviata ai partecipanti","shared":"Schermata inviata","title":"Schermata"},"videoMenu":{"blockedCamera":"La fotocamera \xe8 bloccata.","cameraPermissions":"Si prega di accettare la condivisione della fotocamera prima di accedere a queste opzioni.","highDef":"Alta definizione (720p)","lowDef":"Definizione bassa (240p)","sendResolution":"Risoluzione inviata (max)","standardDef":"Definizione standard (480p)","title":"Video"},"virtualBackground":{"setBackground":"Imposta sfondo","title":"Sfondo virtuale"},"youtube":{"invalid":"URL YouTube non valido","share":"Guarda ora","title":"Vedere Assieme","url":"URL YOUTUBE"}}');
372
369
 
373
370
 
374
371
  var $888696145bca5c4a$exports = {};
375
- $888696145bca5c4a$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"El micr\xf3fono est\xe1 bloqueado.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call is now ended","callIsOver":"The call is over or deleted","callLeft":"You left the call","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAndMicrophoneAccess":"No camera & microphone access","noMicrophoneAccess":"No microphone access","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
372
+ $888696145bca5c4a$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"El micr\xf3fono est\xe1 bloqueado.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call has ended","callIsOver":"The call is over or deleted","callLeft":"You have left the call","callNoLongerActive":"This call is no longer active. Thank you for participating.","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","error":"Error","errorOccuredCode":"An error occured (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAccessDescription":"No camera access Allow camera access in your browser.","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccess":"No microphone access","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language","selectYourMicrophone":"Select your preferred microphone","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
376
373
 
377
374
 
378
375
  var $3167241121ea3627$exports = {};
379
- $3167241121ea3627$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Mikrofon jest zablokowany.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call is now ended","callIsOver":"The call is over or deleted","callLeft":"You left the call","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAndMicrophoneAccess":"No camera & microphone access","noMicrophoneAccess":"No microphone access","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
376
+ $3167241121ea3627$exports = JSON.parse('{"audioMenu":{"blockedMicrophone":"Mikrofon jest zablokowany.","microphonePermissions":"Please accept microphone sharing before accessing these options.","title":"Audio"},"blockedFeature":{"descriptionConnected":"On a free plan, you can\'t use this feature. Upgrade your plan to enjoy all in-call features.","descriptionGuest":"You are participating in a call created with a free version of SnapCall. This feature is only available with a Pro version.","dismissConnected":"Upgrade to Pro","dismissGuest":"Okay","titleConnected":"Upgrade to Pro","titleGuest":"Feature not available"},"common":{"new":"new"},"copyLink":{"copied":"Link copied to clipboard","copy":"Copy","description":"Copy link into clipboard","error":"An error occured when trying to copy to clipboard","title":"Copy link"},"endView":{"callEnded":"The call has ended","callIsOver":"The call is over or deleted","callLeft":"You have left the call","callNoLongerActive":"This call is no longer active. Thank you for participating.","full":"You can\'t join this call","fullDescription":"The room is full. Please try to join the call later.","goBack":"Go back to call","ifMistakeRejoin":"If this was a mistake, you can rejoin using the button below.","invalidLink":"Invalid link","invalidOrExpired":"This link is invalid or expired.","openDashboard":"Open dashboard","tooLate":"You arrived too late"},"gdpr":{"recordedWarning":"To improve the quality of our service, this call will be recorded."},"greeting":{"askToJoin":"Ask to join","askingLetIn":"Asking to be let in...","cameraDisabled":"Camera is Off","cameraEnabled":"Camera is On","canceledCallRequest":"The call request will be canceled and you will be redirected to the call scheduling page.","cantJoinCall":"You can\u2019t join this call","cantWait":"Can\'t wait?","cantWaitLeaveMessage":"Can\u2019t wait? You can leave a message and you will be contacted as soon as possible.","clickOnLock":"Click on the <1></1> lock icon in your browser\'s bar.","footerDescription":"Meet SnapCall, the easiest way to add real-time video to platform, product or service.","footerTitle":"Powered by SnapCall","leaveMessage":"Leave a message","mainTitle":"Welcome to SnapCall","mediaDenied":"Microphone and camera access denied","microphoneDisabled":"Microphone is Off","microphoneEnabled":"Microphone is On","name":"Name","nameDescription":"This name will be displayed to all participants in the call.","namePlaceholder":"Eg. Lucy or Peter","nameSubmit":"Join Conversation","recordVideo":"Record video","recordVoice":"Record voice","requestACall":"Request a call","scheduleACall":"Schedule a call","setting":"Settings","sideDescription":"Please enter your name and adjust your camera and microphone","sideTitle":"Hold tight, you\'re next!","someoneDenied":"Someone in the call denied your request to join.","takeFewMinute":"This may take a few minutes depending on the availability of the participants.","whatYouCanDo":"Here\u2019s what you can do","youWillJoinWhenSomeoneLetsYou":"You will join the call when someone from {{ companyName }} lets you in."},"header":{"free":"Free version"},"invitePeople":{"PublicLink":"Public link","addEmailToInvite":"Add an email to invite.","addEmails":"Add emails...","copyCallLinkDescription":"Copy this link and send it to anyone you wish to invite to join the call.","copyClipLinkDescription":"Copy this link and send it to anyone you wish to invite to record a clip.","email":"Email","emailPlaceholder":"Eg. john@acme.com","emailsOrNumberPlaceholder":"Eg. john@acme.com or +33612345678","error":"Failed to send, please try again later.","invalidEmail":"Invalid email format.","invalidEmailOrNumber":"Invalid email or number format.","invitationSentTo_one":"Sent to {{ name }}","invitationSentTo_other":"Sent to {{ name }} and {{ otherEmailsCount }}+","invite":"Invite","inviteByEmail":"Invite by email","inviteByEmailOrNumber":"Invite by email or sms","inviteCall":"Invite to join call","inviteCallDefaultMessage":"Hey! You\'re invited to join our video call. Click the link to connect instantly.","inviteClipAudioDefaultMessage":"Hey! Please record an audio message now and provide us with more context to assist you better.","inviteClipDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","inviteClipPhotoDefaultMessage":"Hey! Please take a photo and provide us with more context to assist you better.","inviteClipScreenDefaultMessage":"Hey! Please record your screen now and provide us with more context to assist you better.","inviteClipVideoDefaultMessage":"Hey! Please record your video now and provide us with more context to assist you better.","invitePeople":"Invite people","inviteRecordAudio":"Record an audio","inviteRecordClip":"Invite to record clip","inviteRecordPhoto":"Take a photo","inviteRecordScreen":"Record a screen","inviteRecordVideo":"Record a video","joinTheCall":"Join the call","linkToJoinCall":"Link to join the call","linkToRecordAClip":"Link to record a clip","message":"Message","sharePublicLink":"Share public link"},"leave":{"endCall":"End call for all","leaveCall":"Leave call","title":"Leave"},"loader":{"connection":"Connecting..."},"menu":{"new":"NEW","openNewTab":"Open new tab","pictureInPicture":"Picture-in-Picture","quickConnect":"Quick Connect","screenSharing":"Screen sharing","startRecord":"Record call","stopRecord":"Stop record","title":"Menu"},"misc":{"accept":"Accept","audio":"Audio","camera":"Camera","cancel":"Cancel","confirm":"Confirm","decline":"Decline","from":"From","microphone":"Microphone","open":"Open","photo":"Photo","proceed":"Proceed","remove":"Remove","screen":"Screen","screenshot":"Screenshot","someone":"Someone","speaker":"Speaker","user":"User","video":"Video","you":"You"},"notifications":{"agentJoinError":"An error occured while trying to join the room as an agent","blockedMicrophonePopup":"SnapCall requires access to your camera and microphone. Click the camera blocked icon in your browser\'s address bar.","blockedMicrophonePopupTitle":"Camera and microphone are blocked","cameraError":"An error occured when trying to toggle the camera","cameraRotateError":"An error occured when trying to rotate the camera","close":"Close","connectedTo":"Connected to {{name}}","criticalError":"A critical error has occurred (error {{code}}).","error":"Error","errorOccuredCode":"An error occured (error {{code}}).","invitationSentToFailed":"Sent to {{ name }} failed.","microphoneError":"An error occured when trying to toggle the microphone","noCamera":"No camera available","recording":"Recording in progress","reload":"Reload","screensharingError":"An error occured when trying to toggle screensharing","uploadError":"An error occured during the upload, please try again later."},"quickConnect":{"scan":"Scan this QR code with your phone camera to open the call.","scanTitle":"Scan QR Code","title":"Quick Connect"},"recorder":{"addMore":"Add more","addNewClip":"Add new clip","allowAccess":"Allow access","allowCamMicAccess":"Allow access to cam/mic","allowScreenShareAccess":"Allow access to screen sharing","attachElements_one":"Attach {{ type }} to ticket","attachElements_other":"Attach {{ count }} elements","audioInstructionsTitle":"Ready to record a voice message?","audioLevelNotification":{"noSound":{"description":"Make sure your microphone is activated.","title":"No sound detected."},"shortVideo":{"description":"This video is too short to get context.","title":"Short video."},"spokenWordsQuestion":{"description":"Does your video include enough spoken details?","title":"Spoken words."},"spokenWordsWarning":{"description":"The clip includes barely any spoken words.","title":"No spoken words."}},"audioLevelToast":{"continueSpeaking":"Continue speaking for clearer context.","noSound":"No sound detected.","rememberSpeaking":"Remember to speak to provide context."},"chooseWhatYouWantToShare":"Choose what you want to share","chooseWhatYouWantToShareDescription":"Select the screen or tab you want to share and start recording.","clipCount_one":"{{ count }} clip","clipCount_other":"{{ count }} clips","clipSubmissionDescription":"Thank you for using SnapCall.","clipSubmissionTitle_one":"Your clip has been sent","clipSubmissionTitle_other":"Your clips have been sent","confirmRemovalDescription":"Are you sure you want to delete this photo/video? This action cannot be undone.","confirmRemovalTitle":"Confirm deletion","elementBeingProcessed":"Please wait while your {{ type }} is being processed...","elementCaptureSuccess":"{{ type }} captured successfully","elementRecordedAndAttached":"Your clip has been sent and attached to the thread.","goBackToTicket":"Go back to ticket","instructions":{"allowAccessOnPrompt":"When prompted, <bold>allow access</bold> to camera and microphone.","multiplePhotos":"Take a <bold>photo or multiple</bold> for detail, then review.","privacyPolicy":"By proceeding, you agree to our <bold>Privacy Policy</bold>.","reviewAndSendAudios":"<bold>Review your audios</bold>, and they will be sent to us automatically.","reviewAndSendPhotos":"<bold>Validate your photos</bold>, and they will be sent to us automatically.","reviewAndSendVideos":"<bold>Review your videos</bold>, and they will be sent to us automatically.","screenShareInstruction":"Select the screen or window you wish to record.","selectScreenshare":"Tap Record my screen and select the screen or window you want to record.","speakClearly":"<bold>Speak clearly</bold> and say what you need to convey.","speakDuringRecord":"You can speak while recording to add details.","stopScreenOnFinish":"Press the Stop button when finished. The video will be sent to us automatically.","tapAudioButton":"<bold>Tap the record button</bold> to start recording your audio message.","tapStopVideoButton":"<bold>Tap stop</bold> when you are done.","tapVideoButton":"<bold>Tap the record button</bold> to begin and feel free to provide commentary.","videoSpeech":"You can <bold>talk during</bold> the recording to provide additional information."},"limit":"Video recording limited to 5 min.","logIn":"Log in","loggedAs":"Logged as","mediaCount_one":"{{ count }} media","mediaCount_other":"{{ count }} media","mediaSent_one":"Your media has been sent","mediaSent_other":"Your media has been sent","noCameraAccess":"No camera access","noCameraAccessDescription":"No camera access Allow camera access in your browser.","noCameraAndMicrophoneAccess":"No camera & microphone access","noCameraAndMicrophoneAccessDescription":"No camera & microphone access Allow microphone and camera access in your browser.","noMicrophoneAccess":"No microphone access","noMicrophoneAccessDescription":"No microphone access Allow microphone access in your browser.","okay":"Okay","openThread":"Open thread","permissionDeniedDescription":"Without access to the camera and microphone, you won\'t be able to capture photos or videos to share with the support team. Please grant access in your browser settings.","permissionDeniedTitle":"Something went wrong!","photoInstructionsTitle":"Ready to snap a photo?","replyAttached":"Your reply has been attached","scanQRCode":"Scan this QR code with a compatible device.","screenShareInstructionsTitle":"Ready to share your screen?","screenTitle":"Ready to capture your screen?","send":"Send","sendElements_one":"Send {{ type }}","sendElements_other":"Send {{ count }} elements","showQrCode":"Show QR code","startScreenRecording":"Start screen recording","startScreenShareButton":"Record my screen","stopScreenShareButton":"Stop recording","submissionDescription":"Your photo/video has been successfully submitted. We will review it and get back to you shortly.","submissionTitle":"Thank you for your submission!","switchToMobileDescription":"Experience greater convenience by using your phone to take photos and record videos.","switchToMobileTitle":"Switch to your mobile device","takeNewElement":"Capture a new {{ type }}","upload":"Upload","useDesktopVersion":"Use the desktop version","videoInstructionsTitle":"Ready to record a video?","waitVideo":"A video may take up to 15 seconds to be ready."},"recordingPopup":{"dismiss":"Dismiss","recordingStartText":"This call will be recorded shortly. If you\u2019d rather not be recorded, you\u2019re welcome to leave the call at this time.","recordingStartTitle":"Recording about to start."},"requestAccess":{"admit":"Admit","defaultName":"An user","deny":"Deny","wantToJoin":"<bold>{{name}}</bold> wants to join!"},"requestDevice":{"declined":"Your request has been declined.","request":"{{user}} would like you to share your {{device}}","requestInput":"Request input devices","timedOut":"Your request has timed out.","userDeclined":"{{user}} has declined your request."},"settings":{"devices":"Devices","help":"Help","helpCenter":"Go to help center","language":"Language","preferences":"Preferences","selectYourCamera":"Select your preferred camera","selectYourLanguage":"Select your preferred language","selectYourMicrophone":"Select your preferred microphone","title":"Settings"},"shareLink":{"failed":"Failed to send link","invalid":"Invalid link","invoice":"{{user}} sent you an invoice.","pay":"Pay","poweredBy":"Powered by","sentToUser":"Link sent to {{user}}","sentToUsers":"Link sent to users","title":"Share link","title2":"Share a link"},"sharedHistory":{"shared":"Shared with you"},"snapshot":{"error":"An error occured when trying to send the snapshot","save":"Save photo","sentToUser":"Snapshot sent to {{user}}","sentToUsers":"Snapshot sent to users.","shared":"Snapshot shared.","title":"Snapshot"},"videoMenu":{"blockedCamera":"Camera is blocked.","cameraPermissions":"Please accept camera sharing before accessing these options.","highDef":"High definition (720p)","lowDef":"Low definition (240p)","sendResolution":"Send Resolution (maximum)","standardDef":"Standard definition (480p)","title":"Video"},"virtualBackground":{"setBackground":"Set Background","title":"Virtual Background"},"youtube":{"invalid":"Invalid YouTube URL","share":"Watch now","title":"Watch Together","url":"YOUTUBE URL"}}');
380
377
 
381
378
 
382
379
  const $384d985bb9605c35$export$150b732325d14d04 = {
@@ -427,7 +424,6 @@ var $384d985bb9605c35$export$2e2bcd8739ae039 = (0, $3Sbms$i18next);
427
424
 
428
425
 
429
426
 
430
-
431
427
  /* eslint-disable no-console */
432
428
  const $0f65a9eaf4a1e910$var$LogLevel = {
433
429
  error: 1,
@@ -520,6 +516,12 @@ class $67e45b2e30dcc030$export$ea669869acd8f177 {
520
516
  this.listener = listener;
521
517
  this.stream = stream;
522
518
  this.audioContext = new $67e45b2e30dcc030$var$audioContextConstructor();
519
+ this.voiceAnalyser = this.audioContext.createAnalyser();
520
+ this.voiceAudioStreamSource = this.audioContext.createMediaStreamSource(this.stream);
521
+ this.voiceAnalyser.fftSize = 32;
522
+ this.voiceAnalyser.minDecibels = -90;
523
+ this.voiceAnalyser.maxDecibels = -10;
524
+ this.voiceAudioStreamSource.connect(this.voiceAnalyser);
523
525
  this.analyser = this.audioContext.createAnalyser();
524
526
  this.audioStreamSource = this.audioContext.createMediaStreamSource(this.stream);
525
527
  this.analyser.fftSize = 512;
@@ -576,7 +578,7 @@ class $67e45b2e30dcc030$export$ea669869acd8f177 {
576
578
  }
577
579
  getInstantAudioLevel() {
578
580
  const FFTDataArray = new Uint8Array(this.analyser.frequencyBinCount);
579
- this.analyser.getByteFrequencyData(FFTDataArray);
581
+ this.voiceAnalyser.getByteFrequencyData(FFTDataArray);
580
582
  const rms = this.computeRMS(FFTDataArray);
581
583
  return rms > 0 ? 100 * rms / 255 : 0;
582
584
  }
@@ -628,6 +630,7 @@ class $67e45b2e30dcc030$export$ea669869acd8f177 {
628
630
  });
629
631
  try {
630
632
  this.audioStreamSource.disconnect(this.analyser);
633
+ this.voiceAudioStreamSource.disconnect(this.voiceAnalyser);
631
634
  } catch (err) {
632
635
  $67e45b2e30dcc030$var$log.error("release", "audioStreamSource failed to disconnect", err);
633
636
  }
@@ -1246,7 +1249,10 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1246
1249
  min: 0,
1247
1250
  max: 0
1248
1251
  };
1249
- this.muted = false;
1252
+ this.microphone = {
1253
+ device: null,
1254
+ muted: false
1255
+ };
1250
1256
  this.roomId = "";
1251
1257
  this.companyId = 0;
1252
1258
  this.peerId = "";
@@ -1292,7 +1298,6 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1292
1298
  peerId: this.peerId,
1293
1299
  profile: this.profile,
1294
1300
  joinOptions: this.joinOptions,
1295
- callId: undefined,
1296
1301
  deviceState: this.getDevicesState(),
1297
1302
  peers: peers
1298
1303
  };
@@ -1363,10 +1368,8 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1363
1368
  let url;
1364
1369
  try {
1365
1370
  const urlParams = new URLSearchParams();
1366
- if (options.flowToken) {
1367
- urlParams.append("flowToken", options.flowToken);
1368
- if (options.languageCode) urlParams.append("languageCode", options.languageCode);
1369
- }
1371
+ if (options.flowToken) urlParams.append("flowToken", options.flowToken);
1372
+ if (options.languageCode) urlParams.append("languageCode", options.languageCode);
1370
1373
  const { streamer_instance: instanceId, plan: { permissions: permissions, name: name }, flow: flow, flow_v0: flow_v0, recordings: recordings, company_id: company_id, company: company, defaultPublicPage: defaultPublicPage } = await fetch(`${this.config.apiUrl}/streams/${room}/info?${urlParams}`, {
1371
1374
  method: "get",
1372
1375
  headers: {
@@ -1423,10 +1426,6 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1423
1426
  });
1424
1427
  open = true;
1425
1428
  onOpen();
1426
- if (this.joinOptions.recorder) {
1427
- await this.joinRecorder();
1428
- return;
1429
- }
1430
1429
  });
1431
1430
  this.protoo.on("failed", ()=>{
1432
1431
  err = new Error("failure");
@@ -1631,6 +1630,9 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1631
1630
  };
1632
1631
  if (open) onOpen(err);
1633
1632
  });
1633
+ this.dispatchEvent(new $c31e3fb4360572af$var$SnapcallEvent("initialized", {
1634
+ detail: initResult
1635
+ }));
1634
1636
  return initResult;
1635
1637
  }
1636
1638
  closeWebrtcTransport(key) {
@@ -1715,9 +1717,9 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1715
1717
  }
1716
1718
  }
1717
1719
  }
1718
- async acceptAccessRequest(id) {
1720
+ acceptAccessRequest(id) {
1719
1721
  if (!this.protoo) throw new Error("not connected");
1720
- await this.protoo.request("acceptAccessRequest", {
1722
+ return this.protoo.request("acceptAccessRequest", {
1721
1723
  id: id
1722
1724
  });
1723
1725
  }
@@ -1728,9 +1730,9 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1728
1730
  token: stepToken
1729
1731
  });
1730
1732
  }
1731
- async denyAccessRequest(id) {
1733
+ denyAccessRequest(id) {
1732
1734
  if (!this.protoo) throw new Error("stream client not initiated");
1733
- await this.protoo.request("denyAccessRequest", {
1735
+ return this.protoo.request("denyAccessRequest", {
1734
1736
  id: id
1735
1737
  });
1736
1738
  }
@@ -1760,28 +1762,20 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1760
1762
  if (!this.protoo) throw new Error("stream client not initiated");
1761
1763
  this.streamerMediasoup = await (0, $a2f0e3c29b11c88e$export$2e2bcd8739ae039).create(this.protoo, this.config);
1762
1764
  // now we join
1763
- const { peers: peers, videoRecordStarted: videoRecordStarted, videoRecording: videoRecording, waitingRequests: waitingRequests } = await this.protoo.request("getRoomPeers");
1765
+ const { peers: peers, videoRecordStarted: videoRecordStarted, videoRecording: videoRecording } = await this.protoo.request("getRoomPeers");
1764
1766
  this.peers = new Map(peers.map((peer)=>[
1765
- peer.id || peer.peerId,
1767
+ peer.id,
1766
1768
  {
1767
1769
  ...peer,
1768
- peerId: peer.id || peer.peerId
1770
+ peerId: peer.id
1769
1771
  }
1770
1772
  ]));
1771
- const callId = await this.getCallId();
1772
1773
  this.dispatchEvent(new $c31e3fb4360572af$var$SnapcallEvent("enterRoom", {
1773
1774
  detail: {
1774
- waitingRequests: waitingRequests,
1775
1775
  videoRecording: videoRecording,
1776
1776
  videoRecordStarted: videoRecordStarted,
1777
1777
  peerId: this.peerId,
1778
- peers: peers.map((peer)=>{
1779
- return {
1780
- ...peer,
1781
- peerId: peer.id || peer.peerId
1782
- };
1783
- }),
1784
- callId: callId,
1778
+ peers: Array.from(this.peers.values()),
1785
1779
  plan: this.plan,
1786
1780
  permissions: this.permissions
1787
1781
  }
@@ -1792,7 +1786,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1792
1786
  // Consume Peers
1793
1787
  peers.forEach((peer)=>{
1794
1788
  this.consumePeer({
1795
- peerId: peer.id || peer.peerId,
1789
+ peerId: peer.id,
1796
1790
  producersData: peer.producersData
1797
1791
  });
1798
1792
  });
@@ -1800,7 +1794,6 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1800
1794
  async joinRecorder() {
1801
1795
  if (!this.protoo) throw new Error("stream client not initiated");
1802
1796
  this.streamerMediasoup = await (0, $a2f0e3c29b11c88e$export$2e2bcd8739ae039).create(this.protoo, this.config);
1803
- const callId = await this.getCallId();
1804
1797
  if (this.joinOptions.apiKey) this.setAgentIdentity({
1805
1798
  apiKey: this.joinOptions.apiKey
1806
1799
  });
@@ -1813,10 +1806,8 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1813
1806
  videoRecordStarted: false,
1814
1807
  peerId: this.peerId,
1815
1808
  peers: [],
1816
- callId: callId,
1817
1809
  plan: this.plan,
1818
- permissions: this.permissions,
1819
- waitingRequests: []
1810
+ permissions: this.permissions
1820
1811
  }
1821
1812
  }));
1822
1813
  }
@@ -1846,6 +1837,9 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1846
1837
  track: track
1847
1838
  });
1848
1839
  $c31e3fb4360572af$var$log.log("switchMicrophone", "switched Microphone");
1840
+ const trackSettings = track.getSettings();
1841
+ const device = this.devicesList.find((it)=>it.deviceId === trackSettings.deviceId);
1842
+ this.microphone.device = device || null;
1849
1843
  } catch (error) {
1850
1844
  $c31e3fb4360572af$var$log.error("switchMicrophone error", error);
1851
1845
  await this.closeMicrophoneProducer();
@@ -1921,6 +1915,8 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1921
1915
  this.audioMedia = this.audioMedia || new (0, $107ba89b5d0109ab$export$22ddc20344c01547)();
1922
1916
  const track = stream.getAudioTracks()[0];
1923
1917
  this.audioMedia.addTrack("mic", track);
1918
+ const trackSettings = track.getSettings();
1919
+ const device = this.devicesList.find((it)=>it.deviceId === trackSettings.deviceId && it.kind === "audioinput");
1924
1920
  const deviceType = "microphone";
1925
1921
  const micProducer = await transport.produce({
1926
1922
  track: this.audioMedia.getFinalTrack(),
@@ -1943,7 +1939,8 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1943
1939
  if (navigator.mediaDevices.ondevicechange === undefined) this.closeMicrophoneProducer();
1944
1940
  });
1945
1941
  this.micProducer = micProducer;
1946
- this.muted = false;
1942
+ this.microphone.device = device || null;
1943
+ this.microphone.muted = false;
1947
1944
  const event = new $c31e3fb4360572af$var$SnapcallEvent("microphoneEnabled", {
1948
1945
  detail: {}
1949
1946
  });
@@ -1954,7 +1951,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1954
1951
  if (this.micProducer) {
1955
1952
  this.onStopSpeak();
1956
1953
  this.micProducer.pause();
1957
- this.muted = true;
1954
+ this.microphone.muted = true;
1958
1955
  const device = "microphone";
1959
1956
  this.protoo?.notify("mute", {
1960
1957
  device: device
@@ -1969,7 +1966,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1969
1966
  if (this.micProducer) {
1970
1967
  this.micProducer.resume();
1971
1968
  this.resolvePendingDeviceRequest("microphone", true);
1972
- this.muted = false;
1969
+ this.microphone.muted = false;
1973
1970
  const device = "microphone";
1974
1971
  this.protoo?.notify("unmute", {
1975
1972
  device: device
@@ -1981,7 +1978,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1981
1978
  }
1982
1979
  }
1983
1980
  async toggleMute() {
1984
- if (this.muted) {
1981
+ if (this.microphone.muted) {
1985
1982
  await this.unMuteMicrophone();
1986
1983
  return {
1987
1984
  muted: false
@@ -2258,11 +2255,11 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2258
2255
  ...usedResolution
2259
2256
  }
2260
2257
  }));
2258
+ const trackSettings = mediaStream.getVideoTracks()[0].getSettings();
2259
+ if (trackSettings.deviceId) this.webcam.device = this.webcams.get(trackSettings.deviceId) || null;
2261
2260
  if (config?.facingMode) try {
2262
- const capabilities = mediaStream.getVideoTracks()[0].getCapabilities();
2263
- if (!capabilities?.facingMode || capabilities.facingMode.length === 0) throw new Error("no facing mod");
2261
+ if (!trackSettings.facingMode) throw new Error("no facing mode");
2264
2262
  } catch {
2265
- this.webcam.device = this.webcams.values().next().value;
2266
2263
  this.webcam.facingMode = undefined;
2267
2264
  }
2268
2265
  if (this.useVideoBackground) {
@@ -2621,15 +2618,6 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2621
2618
  denyDeviceRequest(deviceType) {
2622
2619
  this.resolvePendingDeviceRequest(deviceType, false, "user denied permission");
2623
2620
  }
2624
- async getCallId() {
2625
- try {
2626
- const { callId: callId } = await this.protoo?.request("getCallId");
2627
- return callId;
2628
- } catch (err) {
2629
- $c31e3fb4360572af$var$log.error("getCallId", "Failed to get callId");
2630
- throw err;
2631
- }
2632
- }
2633
2621
  getConsumers() {
2634
2622
  return this.consumers;
2635
2623
  }
@@ -2640,10 +2628,12 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2640
2628
  return {
2641
2629
  microphone: {
2642
2630
  enabled: microphoneEnabled,
2643
- muted: this.muted
2631
+ muted: this.microphone.muted,
2632
+ device: this.microphone.device
2644
2633
  },
2645
2634
  camera: {
2646
- enabled: cameraEnabled
2635
+ enabled: cameraEnabled,
2636
+ device: this.webcam.device
2647
2637
  },
2648
2638
  screenshare: {
2649
2639
  enabled: screenshareEnabled
@@ -2798,6 +2788,10 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2798
2788
  }
2799
2789
  })).json();
2800
2790
  }
2791
+ getWaitingRequests() {
2792
+ if (!this.protoo) throw new Error("not connected");
2793
+ return this.protoo?.request("waitingRequests");
2794
+ }
2801
2795
  }
2802
2796
 
2803
2797
 
@@ -3824,7 +3818,6 @@ const $4731637db263b767$export$d9f09da0f8d1c822 = ()=>/*#__PURE__*/ (0, $3Sbms$j
3824
3818
 
3825
3819
 
3826
3820
 
3827
-
3828
3821
  const $1ec1d06e0a21fdaa$var$Link = ({ color: color })=>{
3829
3822
  return /*#__PURE__*/ (0, $3Sbms$jsx)("svg", {
3830
3823
  width: "24",
@@ -4405,7 +4398,6 @@ const $98933bbc579a3e66$var$LinksharePopup = ()=>{
4405
4398
  if (!linkshareInputValue) return;
4406
4399
  setErrorMessage(null);
4407
4400
  setStatus("loading");
4408
- (0, $3Sbms$hotjarbrowser).event("linkshareShare");
4409
4401
  let url;
4410
4402
  try {
4411
4403
  url = new URL(linkshareInputValue);
@@ -5016,6 +5008,7 @@ const $379a4f4f561a4720$export$1712c8fcb05f49a6 = ({ modalState: modalState, ...
5016
5008
  children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Button), {
5017
5009
  size: "sm",
5018
5010
  disabled: requestRunning,
5011
+ type: "submit",
5019
5012
  children: [
5020
5013
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Send3Icon), {
5021
5014
  size: 16,
@@ -5094,10 +5087,8 @@ const $f235befa4cdc42d6$var$Header = ()=>{
5094
5087
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).endCall();
5095
5088
  };
5096
5089
  const onScanQuickConnectClick = ()=>{
5097
- if (permissions.find((permission)=>permission === "quick_connect")) {
5098
- setIsQuickConnectPopupVisible(true);
5099
- (0, $3Sbms$hotjarbrowser).event("quickConnectClick");
5100
- } else setBlockedFeaturePopupOpen(true);
5090
+ if (permissions.find((permission)=>permission === "quick_connect")) setIsQuickConnectPopupVisible(true);
5091
+ else setBlockedFeaturePopupOpen(true);
5101
5092
  };
5102
5093
  const onSettingsMenuClick = ()=>{
5103
5094
  setIsSettingsMenuVisible(true);
@@ -7803,6 +7794,23 @@ const $cdab47bb8796991e$var$Video = ()=>{
7803
7794
  }, [
7804
7795
  dispatch
7805
7796
  ]);
7797
+ (0, $3Sbms$useEffect)(()=>{
7798
+ const initTiles = async ()=>{
7799
+ const getRoomPeersResult = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getRoomPeers();
7800
+ const roomStreams = getRoomPeersResult.peers.map((peer)=>({
7801
+ id: peer.id,
7802
+ profile: peer.profile,
7803
+ muted: peer.muted
7804
+ }));
7805
+ dispatch({
7806
+ type: (0, $2884da8a64948e35$export$96a9662a3eda31f6).SET_STREAMS,
7807
+ payload: roomStreams
7808
+ });
7809
+ };
7810
+ initTiles();
7811
+ }, [
7812
+ dispatch
7813
+ ]);
7806
7814
  return /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $7ec04c1818c68245$export$b302ef9d8310f71), {
7807
7815
  ref: videosContainerRef,
7808
7816
  direction: orientation === "portrait" ? "column" : "row",
@@ -7856,7 +7864,6 @@ var $cdab47bb8796991e$export$2e2bcd8739ae039 = $cdab47bb8796991e$var$Video;
7856
7864
 
7857
7865
 
7858
7866
 
7859
-
7860
7867
  const $f0e90fb231c59fab$var$HangUp = ()=>/*#__PURE__*/ (0, $3Sbms$jsx)("svg", {
7861
7868
  width: "25",
7862
7869
  height: "24",
@@ -7912,7 +7919,6 @@ var $58d405d56c1abe95$export$2e2bcd8739ae039 = $58d405d56c1abe95$var$Rotate;
7912
7919
 
7913
7920
 
7914
7921
 
7915
-
7916
7922
  const $a2d206a438475087$var$YoutubeIcon = ({ color: color })=>/*#__PURE__*/ (0, $3Sbms$jsx)("svg", {
7917
7923
  width: "24",
7918
7924
  height: "25",
@@ -8027,12 +8033,9 @@ const $db92fac48417791a$var$HighlightButton = ()=>{
8027
8033
  if (permissions.find((permission)=>permission === "screen_sharing")) {
8028
8034
  setIsHighlightMenuOpen(false);
8029
8035
  try {
8030
- (0, $3Sbms$hotjarbrowser).event("screenshareClick");
8031
8036
  await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableScreenshare();
8032
- (0, $3Sbms$hotjarbrowser).event("enableScreenshare");
8033
8037
  } catch (screenshareError) {
8034
8038
  console.warn(screenshareError);
8035
- (0, $3Sbms$hotjarbrowser).event("screenshareCancel");
8036
8039
  (0, $3Sbms$reacthottoast)(t("notifications.screensharingError"), {
8037
8040
  className: "error"
8038
8041
  });
@@ -8042,13 +8045,11 @@ const $db92fac48417791a$var$HighlightButton = ()=>{
8042
8045
  const onYoutubeClick = ()=>{
8043
8046
  setIsHighlightMenuOpen(false);
8044
8047
  setIsYoutubePopupVisible(true);
8045
- (0, $3Sbms$hotjarbrowser).event("youtubeClick");
8046
8048
  };
8047
8049
  const onLinkshareClick = ()=>{
8048
8050
  if (permissions.find((permission)=>permission === "share_link")) {
8049
8051
  setIsHighlightMenuOpen(false);
8050
8052
  setIsLinksharePopupVisible(true);
8051
- (0, $3Sbms$hotjarbrowser).event("linkshareClick");
8052
8053
  } else setBlockedFeaturePopupOpen(true);
8053
8054
  };
8054
8055
  const menuCategories = [
@@ -8117,13 +8118,8 @@ const $69a9c49ece80e773$var$ControlBar = ()=>{
8117
8118
  const onMicrophoneClick = async ()=>{
8118
8119
  try {
8119
8120
  const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
8120
- if (devicesState.microphone.enabled) {
8121
- (0, $3Sbms$hotjarbrowser).event("toggleMicrophone");
8122
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).toggleMute();
8123
- } else {
8124
- (0, $3Sbms$hotjarbrowser).event("enableMicrophone");
8125
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
8126
- }
8121
+ if (devicesState.microphone.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).toggleMute();
8122
+ else await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
8127
8123
  } catch (muteError) {
8128
8124
  console.warn(muteError);
8129
8125
  (0, $3Sbms$reacthottoast)(t("notifications.microphoneError"), {
@@ -8133,12 +8129,9 @@ const $69a9c49ece80e773$var$ControlBar = ()=>{
8133
8129
  };
8134
8130
  const onCameraClick = async ()=>{
8135
8131
  try {
8136
- if (streaming) {
8137
- (0, $3Sbms$hotjarbrowser).event("disableCamera");
8138
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableVideo();
8139
- } else {
8132
+ if (streaming) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableVideo();
8133
+ else {
8140
8134
  setIsCameraLoading(true);
8141
- (0, $3Sbms$hotjarbrowser).event("enableCamera");
8142
8135
  await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo();
8143
8136
  }
8144
8137
  } catch (cameraError) {
@@ -8152,7 +8145,6 @@ const $69a9c49ece80e773$var$ControlBar = ()=>{
8152
8145
  };
8153
8146
  const onRotateClick = async ()=>{
8154
8147
  try {
8155
- (0, $3Sbms$hotjarbrowser).event("rotateCamera");
8156
8148
  await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).rotateVideo();
8157
8149
  } catch (rotateError) {
8158
8150
  console.warn(rotateError);
@@ -9383,7 +9375,6 @@ var $c11e4c21ca692a16$export$2e2bcd8739ae039 = $c11e4c21ca692a16$var$Menu;
9383
9375
 
9384
9376
 
9385
9377
 
9386
-
9387
9378
  const $d677836e2f373a45$var$modalHeight = (desktop)=>desktop ? "215px" : "227px";
9388
9379
  const $d677836e2f373a45$export$b679a9a7caefa4b1 = (0, $3Sbms$styledcomponents).div`
9389
9380
  position: absolute;
@@ -9534,7 +9525,6 @@ const $49372cd9190da903$var$YoutubePopup = ()=>{
9534
9525
  const onShareClick = (event)=>{
9535
9526
  event.preventDefault();
9536
9527
  setErrorMessage(null);
9537
- (0, $3Sbms$hotjarbrowser).event("youtubeShare");
9538
9528
  const [, videoId] = youtubeInputValue.match($49372cd9190da903$var$youtubeIDRegExp) || [];
9539
9529
  if (videoId) {
9540
9530
  dispatch({
@@ -9773,7 +9763,7 @@ const $30e857a4d83ba073$export$1058440c16b3a127 = (0, $3Sbms$styledcomponents).l
9773
9763
  }
9774
9764
  `;
9775
9765
  const $30e857a4d83ba073$export$dfc919b3320e9811 = (0, $3Sbms$styledcomponents).button`
9776
- background-color: ${({ theme: theme })=>theme.primaryColor};
9766
+ background-color: ${({ theme: theme })=>theme.primaryColor} !important;
9777
9767
  padding: 8px 18px;
9778
9768
  width: 280px;
9779
9769
  height: 46px;
@@ -10289,55 +10279,36 @@ var $01986a58bfba8001$export$2e2bcd8739ae039 = $01986a58bfba8001$var$Settings;
10289
10279
 
10290
10280
 
10291
10281
 
10292
- const $61b9018279e658f9$export$104f28dc79f055f4 = (0, $3Sbms$styledcomponents).div`
10293
- display: flex;
10294
- flex: 1;
10295
- flex-direction: column;
10296
- justify-content: center;
10297
- align-items: center;
10298
- background-color: #000;
10299
- color: #fff;
10300
- padding-top: 70px;
10301
- `;
10302
- const $61b9018279e658f9$export$51071a7ce784448 = (0, $3Sbms$styledcomponents).span`
10303
- font-size: 60px;
10304
- `;
10305
- const $61b9018279e658f9$export$eebc018855fb0cb6 = (0, $3Sbms$styledcomponents).h1`
10306
- font-size: 28px;
10307
- font-weight: 600;
10308
- line-height: 33.6px;
10309
- `;
10310
- const $61b9018279e658f9$export$f4e7b895a81715e9 = (0, $3Sbms$styledcomponents).p`
10311
- font-size: 22px;
10312
- font-weight: 500;
10313
- line-height: 26.4px;
10314
- margin: 0;
10315
- `;
10316
- const $61b9018279e658f9$export$3a4deda42b6182b7 = (0, $3Sbms$styledcomponents).button`
10317
- background-color: ${({ theme: theme })=>theme.primaryColor};
10318
- border: none;
10319
- border-radius: 50px;
10320
- padding: 12px 18px;
10321
- font-size: 16px;
10322
- font-weight: 600;
10323
- line-height: 18px;
10324
- color: #fff;
10325
- margin-top: 30px;
10326
- `;
10327
-
10328
-
10329
- const $df41bfe6da05853a$var$EndView = ()=>{
10282
+ const $df41bfe6da05853a$var$EndView = ({ state: state })=>{
10330
10283
  const { t: t } = (0, $3Sbms$useTranslation)();
10331
- const { streamState: streamState, setStreamState: setStreamState, options: options } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
10332
- const ended = streamState === "ended";
10333
- const terminated = streamState === "terminated";
10334
- const expired = streamState === "expired";
10335
- const full = streamState === "full";
10284
+ const { setStreamState: setStreamState, options: options } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
10285
+ const statesData = {
10286
+ ended: {
10287
+ title: t("endView.callLeft"),
10288
+ description: t("endView.ifMistakeRejoin"),
10289
+ icon: "\uD83D\uDC4B"
10290
+ },
10291
+ terminated: {
10292
+ title: t("endView.callEnded"),
10293
+ description: t("endView.callNoLongerActive"),
10294
+ icon: "\u260E\uFE0F"
10295
+ },
10296
+ expired: {
10297
+ title: t("endView.invalidLink"),
10298
+ description: t("endView.invalidOrExpired"),
10299
+ icon: "\uD83D\uDEAB"
10300
+ },
10301
+ full: {
10302
+ title: t("endView.full"),
10303
+ description: t("endView.fullDescription"),
10304
+ icon: "\uD83D\uDD12"
10305
+ }
10306
+ };
10307
+ const stateData = statesData[state];
10336
10308
  const onGoBackClick = async ()=>{
10337
10309
  try {
10338
10310
  setStreamState("loading");
10339
10311
  await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).init();
10340
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).joinRoom();
10341
10312
  if (options.controls?.microphone?.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone().catch((error)=>{
10342
10313
  console.error("enable microphone", error);
10343
10314
  });
@@ -10352,33 +10323,79 @@ const $df41bfe6da05853a$var$EndView = ()=>{
10352
10323
  (0, $3Sbms$useEffect)(()=>{
10353
10324
  if (document.pictureInPictureElement) document.exitPictureInPicture();
10354
10325
  }, []);
10355
- return /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $61b9018279e658f9$export$104f28dc79f055f4), {
10326
+ return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10327
+ className: "flex flex-col w-full h-full bg-gray-25 dark-theme p-4 md:p-6",
10356
10328
  children: [
10357
- /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $61b9018279e658f9$export$51071a7ce784448), {
10358
- children: [
10359
- (ended || terminated) && "\uD83D\uDC4B",
10360
- (expired || full) && "\uD83E\uDD7A"
10361
- ]
10329
+ /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
10330
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $a1ac29d50bdaa837$export$194e6397ae7c260), {})
10331
+ }),
10332
+ /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
10333
+ className: "flex flex-1 justify-center items-center",
10334
+ children: /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10335
+ className: "flex flex-col items-center gap-6 w-full p-4 md:w-[500px] md:p-6 bg-gray-50 border-2 border-gray-100 rounded-lg",
10336
+ children: [
10337
+ /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
10338
+ className: "text-4xl",
10339
+ children: stateData.icon
10340
+ }),
10341
+ /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10342
+ className: "flex flex-col items-center gap-1",
10343
+ children: [
10344
+ /*#__PURE__*/ (0, $3Sbms$jsx)("h2", {
10345
+ className: "text-2xl font-medium text-gray-1000",
10346
+ children: stateData.title
10347
+ }),
10348
+ /*#__PURE__*/ (0, $3Sbms$jsx)("p", {
10349
+ className: "text-sm text-gray-700",
10350
+ children: stateData.description
10351
+ })
10352
+ ]
10353
+ }),
10354
+ /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10355
+ className: "flex gap-2",
10356
+ children: [
10357
+ state === "ended" && /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Button), {
10358
+ variant: "outline",
10359
+ size: "sm",
10360
+ className: "bg-gray-25 select-none",
10361
+ onClick: onGoBackClick,
10362
+ children: [
10363
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$FlipBackwardIcon), {
10364
+ size: 16,
10365
+ className: "text-gray-1000"
10366
+ }),
10367
+ t("endView.goBack")
10368
+ ]
10369
+ }),
10370
+ options.apiKey && /*#__PURE__*/ (0, $3Sbms$jsx)("a", {
10371
+ href: "https://app.snapcall.io",
10372
+ target: "_blank",
10373
+ rel: "noreferrer",
10374
+ children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Button), {
10375
+ variant: "outline",
10376
+ size: "sm",
10377
+ className: "bg-gray-25 select-none",
10378
+ children: [
10379
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ArrowUpRightIcon), {
10380
+ size: 16,
10381
+ className: "text-gray-1000"
10382
+ }),
10383
+ t("endView.openDashboard")
10384
+ ]
10385
+ })
10386
+ })
10387
+ ]
10388
+ })
10389
+ ]
10390
+ })
10362
10391
  }),
10363
- /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $61b9018279e658f9$export$eebc018855fb0cb6), {
10392
+ /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10393
+ className: "flex gap-2 justify-center items-center text-xs text-gray-1000 [&>svg]:h-4 [&>svg]:w-auto",
10364
10394
  children: [
10365
- ended && t("endView.callLeft"),
10366
- terminated && t("endView.callEnded"),
10367
- expired && t("endView.tooLate"),
10368
- full && t("endView.full")
10395
+ t("shareLink.poweredBy"),
10396
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $a1ac29d50bdaa837$export$194e6397ae7c260), {})
10369
10397
  ]
10370
- }),
10371
- expired && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $61b9018279e658f9$export$f4e7b895a81715e9), {
10372
- children: t("endView.callIsOver")
10373
- }),
10374
- full && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $61b9018279e658f9$export$f4e7b895a81715e9), {
10375
- children: t("endView.fullDescription")
10376
- }),
10377
- (ended || full) && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $61b9018279e658f9$export$3a4deda42b6182b7), {
10378
- onClick: onGoBackClick,
10379
- children: t("endView.goBack")
10380
- }),
10381
- !full && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $f81bfa56534026c2$export$ad5f39c592532e2d), {})
10398
+ })
10382
10399
  ]
10383
10400
  });
10384
10401
  };
@@ -11025,6 +11042,17 @@ const $15a01b611391c1e7$export$494039379563c94d = async (options)=>{
11025
11042
 
11026
11043
 
11027
11044
 
11045
+ const $648652ea36cc4fd9$export$5964c316e853650f = ()=>{
11046
+ const renderRef = (0, $3Sbms$useRef)(true);
11047
+ if (renderRef.current === true) {
11048
+ renderRef.current = false;
11049
+ return true;
11050
+ }
11051
+ return renderRef.current;
11052
+ };
11053
+
11054
+
11055
+
11028
11056
  const $4fb4815baa04b470$export$20f257fc407da7a3 = (0, $3Sbms$createGlobalStyle)`
11029
11057
  ::-webkit-scrollbar {
11030
11058
  display: none;
@@ -11131,6 +11159,30 @@ const $fd863da1a2907300$export$7f78f4f57f8852d5 = (seconds)=>{
11131
11159
 
11132
11160
 
11133
11161
 
11162
+
11163
+
11164
+
11165
+ const $946223bbb2c552ef$export$5a5695b638d078e7 = ()=>{
11166
+ const { t: t } = (0, $3Sbms$useTranslation)();
11167
+ const { toast: toast } = (0, $3Sbms$useToast)();
11168
+ const reportError = (0, $3Sbms$useCallback)(({ code: code, error: error })=>{
11169
+ toast({
11170
+ title: t("notifications.error"),
11171
+ description: t("notifications.errorOccuredCode", {
11172
+ code: code
11173
+ }),
11174
+ variant: "destructive",
11175
+ duration: Infinity
11176
+ });
11177
+ console.error(`An error occured (${code}): ${error || "/"}`);
11178
+ }, [
11179
+ toast,
11180
+ t
11181
+ ]);
11182
+ return reportError;
11183
+ };
11184
+
11185
+
11134
11186
  const $20431dc869bb21e0$var$fileToDataUrl = (file)=>{
11135
11187
  return new Promise((resolve, reject)=>{
11136
11188
  const reader = new FileReader();
@@ -11142,7 +11194,7 @@ const $20431dc869bb21e0$var$fileToDataUrl = (file)=>{
11142
11194
  const $20431dc869bb21e0$export$b3fd96a52c80b3af = ()=>{
11143
11195
  const { t: t } = (0, $3Sbms$useTranslation)();
11144
11196
  const { openAssetsModal: openAssetsModal, addAsset: addAsset, setIncomingAsset: setIncomingAsset, isRecording: isRecording } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
11145
- const { toast: toast } = (0, $3Sbms$useToast)();
11197
+ const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
11146
11198
  const fileInputRef = (0, $3Sbms$useRef)(null);
11147
11199
  const isMedium = window.matchMedia("(min-width: 768px)").matches;
11148
11200
  const onUploadClick = async (event)=>{
@@ -11165,13 +11217,12 @@ const $20431dc869bb21e0$export$b3fd96a52c80b3af = ()=>{
11165
11217
  createdAt: createdAt
11166
11218
  });
11167
11219
  openAssetsModal();
11168
- } catch (err) {
11169
- toast({
11170
- title: t("notifications.uploadError"),
11171
- variant: "destructive"
11220
+ } catch (error) {
11221
+ reportError({
11222
+ code: "UPLD_1",
11223
+ error: error
11172
11224
  });
11173
11225
  setIncomingAsset(null);
11174
- console.error(err);
11175
11226
  }
11176
11227
  }
11177
11228
  };
@@ -11180,7 +11231,7 @@ const $20431dc869bb21e0$export$b3fd96a52c80b3af = ()=>{
11180
11231
  /*#__PURE__*/ (0, $3Sbms$jsx)("input", {
11181
11232
  ref: fileInputRef,
11182
11233
  type: "file",
11183
- accept: ".jpg,.JPG,.png,.PNG",
11234
+ accept: ".jpg,.JPG,.png,.PNG,.jpeg,.JPEG",
11184
11235
  className: "hidden",
11185
11236
  onChange: onUploadClick
11186
11237
  }),
@@ -11203,75 +11254,6 @@ const $20431dc869bb21e0$export$b3fd96a52c80b3af = ()=>{
11203
11254
  };
11204
11255
 
11205
11256
 
11206
- const $b4057e63640314b7$var$browser = (0, $3Sbms$bowser).parse(window.navigator.userAgent);
11207
- const $b4057e63640314b7$export$aa00db7a33d4c484 = ()=>{
11208
- const { t: t } = (0, $3Sbms$useTranslation)();
11209
- const { mode: mode, hasVideo: hasVideo, isRecording: isRecording, openQRCodeModal: openQRCodeModal } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
11210
- const [showQrCodeToast, setShowQrCodeToast] = (0, $3Sbms$useState)($b4057e63640314b7$var$browser.platform.type === "desktop");
11211
- const [timer, setTimer] = (0, $3Sbms$useState)(0);
11212
- const timerInterval = (0, $3Sbms$useRef)(0);
11213
- const isMedium = window.matchMedia("(min-width: 768px)").matches;
11214
- (0, $3Sbms$useEffect)(()=>{
11215
- if (isRecording) {
11216
- clearInterval(timerInterval.current);
11217
- timerInterval.current = window.setInterval(()=>setTimer((t)=>t + 1), 1000);
11218
- } else {
11219
- clearInterval(timerInterval.current);
11220
- setTimer(0);
11221
- }
11222
- }, [
11223
- isRecording
11224
- ]);
11225
- return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11226
- className: "flex items-start justify-between z-50",
11227
- children: [
11228
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $20431dc869bb21e0$export$b3fd96a52c80b3af), {}),
11229
- /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11230
- className: "flex flex-col items-center gap-4",
11231
- children: [
11232
- mode !== "photo" && /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11233
- className: (0, $3Sbms$classnames)("flex items-center gap-2.5 px-3.5 py-2 text-md text-white font-medium border rounded-full", hasVideo ? "bg-gray-25/50 border-white/10 backdrop-blur-lg" : "bg-gray-50 border-gray-200"),
11234
- children: [
11235
- isRecording && /*#__PURE__*/ (0, $3Sbms$jsx)("span", {
11236
- className: "w-2 h-2 rounded-full bg-red-700 pulse-red-700"
11237
- }),
11238
- (0, $fd863da1a2907300$export$7f78f4f57f8852d5)(timer)
11239
- ]
11240
- }),
11241
- showQrCodeToast && mode !== "screen" && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$RawToast), {
11242
- className: "bg-gray-25",
11243
- children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ToastContent), {
11244
- title: t("recorder.switchToMobileTitle"),
11245
- icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$QrCode1Icon), {
11246
- className: "text-white"
11247
- }),
11248
- onClose: ()=>setShowQrCodeToast(false),
11249
- actions: [
11250
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ToastAction), {
11251
- altText: t("recorder.showQrCode"),
11252
- variant: "primary",
11253
- onClick: openQRCodeModal,
11254
- children: t("recorder.showQrCode")
11255
- }, "showQrCode")
11256
- ]
11257
- })
11258
- })
11259
- ]
11260
- }),
11261
- /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Button), {
11262
- className: "bg-gray-25/50 hover:bg-gray-25/60 active:bg-gray-25/70 rounded-full invisible",
11263
- icon: !isMedium,
11264
- children: [
11265
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Settings1Icon), {
11266
- size: 18,
11267
- className: "text-white"
11268
- }),
11269
- isMedium && t("settings.title")
11270
- ]
11271
- })
11272
- ]
11273
- });
11274
- };
11275
11257
 
11276
11258
 
11277
11259
 
@@ -11280,51 +11262,295 @@ const $b4057e63640314b7$export$aa00db7a33d4c484 = ()=>{
11280
11262
 
11281
11263
 
11282
11264
 
11283
- const $a1e420d03bf4c491$export$15073df9b5e6c63e = (constraints)=>{
11284
- const optimisticPermissions = (0, $3Sbms$useRef)({
11285
- audio: false,
11286
- video: false
11265
+ const $79bae5c9904f9029$var$SheetDialogContext = /*#__PURE__*/ (0, $3Sbms$createContext)({
11266
+ type: "dialog",
11267
+ showClose: true
11268
+ });
11269
+ const $79bae5c9904f9029$export$56d72fe406945300 = ({ type: type = "dialog", showClose: showClose = true, children: children })=>{
11270
+ return /*#__PURE__*/ (0, $3Sbms$jsx)($79bae5c9904f9029$var$SheetDialogContext.Provider, {
11271
+ value: {
11272
+ type: type,
11273
+ showClose: showClose
11274
+ },
11275
+ children: children
11287
11276
  });
11288
- const handleVideoState = (0, $3Sbms$useCallback)(async ({ optimisticVideoState: optimisticVideoState } = {
11289
- optimisticVideoState: false
11290
- })=>{
11291
- const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
11292
- if (constraints.video && !devicesState.camera.enabled && !optimisticVideoState) {
11293
- optimisticPermissions.current.video = true;
11294
- try {
11295
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo({
11296
- resolution: "vga",
11297
- frameRate: 20,
11298
- facingMode: "environment"
11299
- });
11300
- } catch (err) {
11301
- console.error(err);
11302
- optimisticPermissions.current.video = false;
11303
- }
11304
- } else if (!constraints.video && devicesState.camera.enabled) try {
11305
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableVideo();
11306
- optimisticPermissions.current.video = false;
11307
- } catch (err) {
11308
- console.error(err);
11309
- }
11310
- }, [
11311
- constraints.video
11312
- ]);
11313
- const handleMicrophoneState = (0, $3Sbms$useCallback)(async ({ optimisticAudioState: optimisticAudioState } = {
11314
- optimisticAudioState: false
11315
- })=>{
11316
- const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
11317
- if (constraints.audio && !devicesState.microphone.enabled && !optimisticAudioState) {
11318
- optimisticPermissions.current.audio = true;
11319
- try {
11320
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
11321
- } catch (err) {
11322
- console.error(err);
11323
- optimisticPermissions.current.audio = false;
11324
- }
11325
- }
11326
- }, [
11327
- constraints.audio
11277
+ };
11278
+ const $79bae5c9904f9029$export$e943710ec76a9465 = (props)=>{
11279
+ const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11280
+ if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Dialog), {
11281
+ ...props
11282
+ });
11283
+ else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Sheet), {
11284
+ ...props
11285
+ });
11286
+ };
11287
+ const $79bae5c9904f9029$export$76259cff208cccae = (props)=>{
11288
+ const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11289
+ if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogTrigger), {
11290
+ ...props
11291
+ });
11292
+ else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetTrigger), {
11293
+ ...props
11294
+ });
11295
+ };
11296
+ const $79bae5c9904f9029$export$ae085f72dad73e20 = (props)=>{
11297
+ const { type: type, showClose: showClose } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11298
+ if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogHeader), {
11299
+ ...props
11300
+ });
11301
+ else {
11302
+ const { children: children, ...other } = props;
11303
+ return /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$SheetHeader), {
11304
+ ...other,
11305
+ children: [
11306
+ children,
11307
+ showClose && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetClose), {})
11308
+ ]
11309
+ });
11310
+ }
11311
+ };
11312
+ const $79bae5c9904f9029$export$4cf67c05c32f37ce = (props)=>{
11313
+ const { type: type, showClose: showClose } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11314
+ if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogContent), {
11315
+ showClose: showClose,
11316
+ ...props
11317
+ });
11318
+ else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetContent), {
11319
+ side: "bottom",
11320
+ ...props
11321
+ });
11322
+ };
11323
+ const $79bae5c9904f9029$export$5e9fc1357420b7eb = (props)=>{
11324
+ const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11325
+ if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogTitle), {
11326
+ ...props
11327
+ });
11328
+ else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetTitle), {
11329
+ ...props
11330
+ });
11331
+ };
11332
+ const $79bae5c9904f9029$export$51c201eb88940e0f = (props)=>{
11333
+ const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11334
+ if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogDescription), {
11335
+ ...props
11336
+ });
11337
+ else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetDescription), {
11338
+ ...props
11339
+ });
11340
+ };
11341
+ const $79bae5c9904f9029$export$2cf3a8077f66b4f6 = (props)=>{
11342
+ const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11343
+ if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogDescription), {
11344
+ ...props
11345
+ });
11346
+ else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetDescription), {
11347
+ ...props
11348
+ });
11349
+ };
11350
+
11351
+
11352
+
11353
+
11354
+
11355
+ const $1a0b12b84e5cae94$export$3315c1cc2d5487ba = ({ title: title, icon: icon, isActive: isActive, onClick: onClick })=>{
11356
+ return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11357
+ className: (0, $3Sbms$classnames)("flex items-center justify-center md:justify-start gap-2.5 p-2 rounded-lg cursor-pointer select-none", "bg-gray-50 hover:bg-gray-50 border border-gray-200 md:border-0", isActive ? "md:bg-gray-50" : "md:bg-transparent"),
11358
+ onClick: onClick,
11359
+ children: [
11360
+ icon && /*#__PURE__*/ (0, $3Sbms$cloneElement)(icon, {
11361
+ size: 18,
11362
+ className: (0, $3Sbms$classnames)("text-gray-1000 shrink-0", icon.props.className)
11363
+ }),
11364
+ /*#__PURE__*/ (0, $3Sbms$jsx)("label", {
11365
+ className: "text-sm font-semibold truncate cursor-pointer",
11366
+ children: title
11367
+ })
11368
+ ]
11369
+ });
11370
+ };
11371
+
11372
+
11373
+
11374
+
11375
+
11376
+
11377
+ const $4dcd5d5b4dfa966e$export$50a2cb5c859687d3 = ({ id: id, title: title, description: description, action: action })=>{
11378
+ return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11379
+ className: "flex flex-col gap-1 items-start md:flex-row md:gap-8 md:items-center",
11380
+ children: [
11381
+ /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11382
+ className: "flex flex-col gap-1 flex-1",
11383
+ children: [
11384
+ /*#__PURE__*/ (0, $3Sbms$jsx)("label", {
11385
+ className: "text-sm font-medium truncate",
11386
+ htmlFor: id,
11387
+ children: title
11388
+ }),
11389
+ /*#__PURE__*/ (0, $3Sbms$jsx)("p", {
11390
+ className: "text-sm text-gray-700 truncate hidden md:block",
11391
+ children: description
11392
+ })
11393
+ ]
11394
+ }),
11395
+ /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
11396
+ className: "shrink-0 w-full md:w-auto",
11397
+ children: action
11398
+ })
11399
+ ]
11400
+ });
11401
+ };
11402
+
11403
+
11404
+
11405
+
11406
+
11407
+ const $cbe12d51333f02bd$var$languages = Object.keys((0, $384d985bb9605c35$export$150b732325d14d04)).filter((it)=>it !== "dev").map((it)=>({
11408
+ id: it,
11409
+ name: (0, $384d985bb9605c35$export$150b732325d14d04)[it].name
11410
+ }));
11411
+ const $cbe12d51333f02bd$export$9ee2a145b590ce4b = ()=>{
11412
+ const { i18n: i18n, t: t } = (0, $3Sbms$useTranslation)();
11413
+ const { setLanguage: setLanguage } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
11414
+ return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
11415
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $4dcd5d5b4dfa966e$export$50a2cb5c859687d3), {
11416
+ id: "language",
11417
+ title: t("settings.language"),
11418
+ description: t("settings.selectYourLanguage"),
11419
+ action: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Select), {
11420
+ value: i18n.language,
11421
+ onValueChange: (value)=>setLanguage(value),
11422
+ children: [
11423
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectTrigger), {
11424
+ className: "bg-gray-50",
11425
+ id: "language",
11426
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectValue), {})
11427
+ }),
11428
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectContent), {
11429
+ children: $cbe12d51333f02bd$var$languages.map((language)=>/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectItem), {
11430
+ value: language.id,
11431
+ children: language.name
11432
+ }, language.id))
11433
+ })
11434
+ ]
11435
+ })
11436
+ })
11437
+ });
11438
+ };
11439
+
11440
+
11441
+
11442
+
11443
+
11444
+
11445
+
11446
+ const $29e2063f6bd67bba$export$6aa26f5ebe6471fc = ({ kind: kind, includeDefault: includeDefault = false } = {})=>{
11447
+ const getMediaDevices = async ()=>{
11448
+ const devices = await navigator.mediaDevices.enumerateDevices();
11449
+ const filteredDevices = devices.filter((device)=>{
11450
+ if (device.deviceId === "default" && !includeDefault) return false;
11451
+ if (kind && kind !== device.kind) return false;
11452
+ return true;
11453
+ });
11454
+ return filteredDevices;
11455
+ };
11456
+ return (0, $3Sbms$useQuery)({
11457
+ queryKey: [
11458
+ "mediaDevices",
11459
+ kind || "all",
11460
+ includeDefault
11461
+ ],
11462
+ queryFn: getMediaDevices,
11463
+ retry: false,
11464
+ refetchOnWindowFocus: false,
11465
+ staleTime: Infinity
11466
+ });
11467
+ };
11468
+
11469
+
11470
+
11471
+
11472
+ const $a0cdb77427f37cfe$export$9f1846b6ccad1893 = ()=>{
11473
+ return (0, $3Sbms$useQuery)({
11474
+ queryKey: [
11475
+ "devicesState"
11476
+ ],
11477
+ queryFn: ()=>(0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState(),
11478
+ retry: false,
11479
+ refetchOnWindowFocus: false,
11480
+ staleTime: Infinity
11481
+ });
11482
+ };
11483
+
11484
+
11485
+
11486
+
11487
+ const $ea6c91cf7e6319d8$export$20144d37f30919ab = ()=>{
11488
+ const queryClient = (0, $3Sbms$useQueryClient)();
11489
+ return (0, $3Sbms$useMutation)({
11490
+ mutationFn: (device)=>{
11491
+ if (device.kind === "audioinput") return (0, $c9e496369b59be7a$export$2f377c2162fd02b2).switchMicrophone(device.deviceId);
11492
+ else if (device.kind === "videoinput") return (0, $c9e496369b59be7a$export$2f377c2162fd02b2).switchWebcam({
11493
+ device: device
11494
+ });
11495
+ else if (device.kind === "audiooutput") throw new Error("Audio output not supported");
11496
+ throw new Error("Unsupported device info");
11497
+ },
11498
+ onSettled: ()=>queryClient.invalidateQueries([
11499
+ "devicesState"
11500
+ ])
11501
+ });
11502
+ };
11503
+
11504
+
11505
+
11506
+
11507
+
11508
+
11509
+ const $a1e420d03bf4c491$export$15073df9b5e6c63e = (constraints)=>{
11510
+ const optimisticPermissions = (0, $3Sbms$useRef)({
11511
+ audio: false,
11512
+ video: false
11513
+ });
11514
+ const handleVideoState = (0, $3Sbms$useCallback)(async ({ optimisticVideoState: optimisticVideoState } = {
11515
+ optimisticVideoState: false
11516
+ })=>{
11517
+ const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
11518
+ if (constraints.video && !devicesState.camera.enabled && !optimisticVideoState) {
11519
+ optimisticPermissions.current.video = true;
11520
+ try {
11521
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo({
11522
+ resolution: "vga",
11523
+ frameRate: 20,
11524
+ facingMode: "environment"
11525
+ });
11526
+ } catch (err) {
11527
+ console.error(err);
11528
+ optimisticPermissions.current.video = false;
11529
+ }
11530
+ } else if (!constraints.video && devicesState.camera.enabled) try {
11531
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableVideo();
11532
+ optimisticPermissions.current.video = false;
11533
+ } catch (err) {
11534
+ console.error(err);
11535
+ }
11536
+ }, [
11537
+ constraints.video
11538
+ ]);
11539
+ const handleMicrophoneState = (0, $3Sbms$useCallback)(async ({ optimisticAudioState: optimisticAudioState } = {
11540
+ optimisticAudioState: false
11541
+ })=>{
11542
+ const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
11543
+ if (constraints.audio && !devicesState.microphone.enabled && !optimisticAudioState) {
11544
+ optimisticPermissions.current.audio = true;
11545
+ try {
11546
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
11547
+ } catch (err) {
11548
+ console.error(err);
11549
+ optimisticPermissions.current.audio = false;
11550
+ }
11551
+ }
11552
+ }, [
11553
+ constraints.audio
11328
11554
  ]);
11329
11555
  const query = (0, $3Sbms$useQuery)({
11330
11556
  queryKey: [
@@ -11382,6 +11608,371 @@ const $a1e420d03bf4c491$export$15073df9b5e6c63e = (constraints)=>{
11382
11608
  };
11383
11609
 
11384
11610
 
11611
+ const $2ff9d0247afca2f1$export$75b44b566abc4e9c = ()=>{
11612
+ const { t: t } = (0, $3Sbms$useTranslation)();
11613
+ const audioGUM = (0, $a1e420d03bf4c491$export$15073df9b5e6c63e)({
11614
+ audio: true,
11615
+ video: true
11616
+ });
11617
+ const audioInputDevices = (0, $29e2063f6bd67bba$export$6aa26f5ebe6471fc)({
11618
+ kind: "audioinput",
11619
+ includeDefault: true
11620
+ });
11621
+ const devicesState = (0, $a0cdb77427f37cfe$export$9f1846b6ccad1893)();
11622
+ const updateDevice = (0, $ea6c91cf7e6319d8$export$20144d37f30919ab)();
11623
+ const filteredAudioInputDevices = (0, $3Sbms$useMemo)(()=>{
11624
+ if (audioInputDevices.data) return audioInputDevices.data.filter((it)=>it.deviceId !== "default");
11625
+ return [];
11626
+ }, [
11627
+ audioInputDevices.data
11628
+ ]);
11629
+ const selectedAudioDevice = (0, $3Sbms$useMemo)(()=>{
11630
+ const deviceId = devicesState.data?.microphone.device?.deviceId;
11631
+ if (audioInputDevices.data && deviceId === "default") {
11632
+ const defaultDevice = audioInputDevices.data.find((it)=>it.deviceId === "default");
11633
+ const realDevice = audioInputDevices.data.find((it)=>it.groupId === defaultDevice?.groupId && it.deviceId !== "default");
11634
+ if (realDevice) return realDevice.deviceId;
11635
+ }
11636
+ return deviceId || "";
11637
+ }, [
11638
+ audioInputDevices.data,
11639
+ devicesState.data
11640
+ ]);
11641
+ return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
11642
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $4dcd5d5b4dfa966e$export$50a2cb5c859687d3), {
11643
+ id: "microphone",
11644
+ title: t("misc.microphone"),
11645
+ description: t("settings.selectYourMicrophone"),
11646
+ action: audioGUM.isSuccess ? /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Select), {
11647
+ value: selectedAudioDevice,
11648
+ onValueChange: (deviceId)=>{
11649
+ const device = filteredAudioInputDevices.find((it)=>it.deviceId === deviceId);
11650
+ if (device) updateDevice.mutate(device);
11651
+ },
11652
+ children: [
11653
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectTrigger), {
11654
+ className: "bg-gray-50",
11655
+ id: "microphone",
11656
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectValue), {
11657
+ children: updateDevice.isLoading ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
11658
+ children: updateDevice.variables?.label
11659
+ }) : undefined
11660
+ })
11661
+ }),
11662
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectContent), {
11663
+ children: filteredAudioInputDevices.map((device)=>/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectItem), {
11664
+ value: device.deviceId,
11665
+ children: device.label
11666
+ }, device.deviceId))
11667
+ })
11668
+ ]
11669
+ }) : audioGUM.isError ? /*#__PURE__*/ (0, $3Sbms$jsx)("span", {
11670
+ children: t("recorder.allowCamMicAccess")
11671
+ }) : /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SpinnerIcon), {
11672
+ size: 28,
11673
+ className: "animate-spin text-blue-700"
11674
+ })
11675
+ })
11676
+ });
11677
+ };
11678
+
11679
+
11680
+
11681
+
11682
+
11683
+
11684
+
11685
+
11686
+
11687
+
11688
+
11689
+ const $c00f86b929ef980e$export$40214e6b2a12030d = ()=>{
11690
+ const { t: t } = (0, $3Sbms$useTranslation)();
11691
+ const videoGUM = (0, $a1e420d03bf4c491$export$15073df9b5e6c63e)({
11692
+ audio: true,
11693
+ video: true
11694
+ });
11695
+ const videoInputDevices = (0, $29e2063f6bd67bba$export$6aa26f5ebe6471fc)({
11696
+ kind: "videoinput"
11697
+ });
11698
+ const devicesState = (0, $a0cdb77427f37cfe$export$9f1846b6ccad1893)();
11699
+ const updateDevice = (0, $ea6c91cf7e6319d8$export$20144d37f30919ab)();
11700
+ return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
11701
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $4dcd5d5b4dfa966e$export$50a2cb5c859687d3), {
11702
+ id: "camera",
11703
+ title: t("misc.camera"),
11704
+ description: t("settings.selectYourCamera"),
11705
+ action: videoGUM.isSuccess ? /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Select), {
11706
+ value: devicesState.data?.camera.device?.deviceId,
11707
+ onValueChange: (deviceId)=>{
11708
+ const device = videoInputDevices.data?.find((it)=>it.deviceId === deviceId);
11709
+ if (device) updateDevice.mutate(device);
11710
+ },
11711
+ children: [
11712
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectTrigger), {
11713
+ className: "bg-gray-50",
11714
+ id: "camera",
11715
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectValue), {
11716
+ placeholder: "/",
11717
+ children: updateDevice.isLoading ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
11718
+ children: updateDevice.variables?.label
11719
+ }) : undefined
11720
+ })
11721
+ }),
11722
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectContent), {
11723
+ children: videoInputDevices.data && videoInputDevices.data.map((device)=>/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SelectItem), {
11724
+ value: device.deviceId,
11725
+ children: device.label
11726
+ }, device.deviceId))
11727
+ })
11728
+ ]
11729
+ }) : videoGUM.isError ? /*#__PURE__*/ (0, $3Sbms$jsx)("span", {
11730
+ children: t("recorder.allowCamMicAccess")
11731
+ }) : /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SpinnerIcon), {
11732
+ size: 28,
11733
+ className: "animate-spin text-blue-700"
11734
+ })
11735
+ })
11736
+ });
11737
+ };
11738
+
11739
+
11740
+ const $1299919e02395903$export$c197ce1a352372f = ({ state: state })=>{
11741
+ const { t: t } = (0, $3Sbms$useTranslation)();
11742
+ const menuItems = (0, $3Sbms$useMemo)(()=>[
11743
+ {
11744
+ id: "audio",
11745
+ title: t("misc.audio"),
11746
+ icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$VolumeMaxIcon), {
11747
+ duotone: true
11748
+ }),
11749
+ content: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $2ff9d0247afca2f1$export$75b44b566abc4e9c), {})
11750
+ },
11751
+ {
11752
+ id: "video",
11753
+ title: t("misc.video"),
11754
+ icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$VideoRecorderIcon), {
11755
+ duotone: true
11756
+ }),
11757
+ content: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $c00f86b929ef980e$export$40214e6b2a12030d), {})
11758
+ },
11759
+ {
11760
+ id: "preferences",
11761
+ title: t("settings.preferences"),
11762
+ icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Settings3Icon), {
11763
+ duotone: true
11764
+ }),
11765
+ content: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $cbe12d51333f02bd$export$9ee2a145b590ce4b), {})
11766
+ }
11767
+ ], [
11768
+ t
11769
+ ]);
11770
+ const isMedium = window.matchMedia("(min-width: 768px)").matches;
11771
+ const [selectedMenuItem, setSelectedMenuItem] = (0, $3Sbms$useState)(isMedium ? menuItems[0] : null);
11772
+ (0, $3Sbms$useEffect)(()=>{
11773
+ if (isMedium && !selectedMenuItem) setSelectedMenuItem(menuItems[0]);
11774
+ }, [
11775
+ isMedium,
11776
+ selectedMenuItem,
11777
+ menuItems
11778
+ ]);
11779
+ return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $79bae5c9904f9029$export$e943710ec76a9465), {
11780
+ open: state.isOpen,
11781
+ onOpenChange: state.setOpen,
11782
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $79bae5c9904f9029$export$56d72fe406945300), {
11783
+ type: isMedium ? "dialog" : "sheet",
11784
+ showClose: !isMedium,
11785
+ children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $79bae5c9904f9029$export$4cf67c05c32f37ce), {
11786
+ className: (0, $3Sbms$classnames)("dark-theme flex flex-col md:w-[1000px] md:h-[550px] md:max-w-[90vw] bg-gray-100", "md:gap-0 md:p-0 md:divide-y divide-gray-200 text-gray-1000"),
11787
+ children: [
11788
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $79bae5c9904f9029$export$ae085f72dad73e20), {
11789
+ children: isMedium ? /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11790
+ className: "flex justify-between items-center p-3",
11791
+ children: [
11792
+ /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11793
+ className: "flex gap-2 items-center",
11794
+ children: [
11795
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Settings1Icon), {
11796
+ size: 18,
11797
+ className: "text-white"
11798
+ }),
11799
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $79bae5c9904f9029$export$5e9fc1357420b7eb), {
11800
+ className: "text-sm",
11801
+ children: t("settings.title")
11802
+ })
11803
+ ]
11804
+ }),
11805
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Button), {
11806
+ variant: "outline",
11807
+ size: "xs",
11808
+ className: "bg-gray-25",
11809
+ onClick: state.close,
11810
+ icon: true,
11811
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$XCloseIcon), {
11812
+ size: 12
11813
+ })
11814
+ })
11815
+ ]
11816
+ }) : /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11817
+ className: "flex gap-4 items-center",
11818
+ children: [
11819
+ selectedMenuItem && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Button), {
11820
+ variant: "secondary",
11821
+ size: "sm",
11822
+ onClick: ()=>setSelectedMenuItem(null),
11823
+ icon: true,
11824
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ArrowLeftIcon), {
11825
+ size: 12,
11826
+ className: "text-white"
11827
+ })
11828
+ }),
11829
+ /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11830
+ className: "flex gap-2 items-center",
11831
+ children: [
11832
+ !selectedMenuItem && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Settings1Icon), {
11833
+ size: 18,
11834
+ className: "text-white"
11835
+ }),
11836
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $79bae5c9904f9029$export$5e9fc1357420b7eb), {
11837
+ className: "text-lg",
11838
+ children: selectedMenuItem ? selectedMenuItem.title : t("settings.title")
11839
+ })
11840
+ ]
11841
+ })
11842
+ ]
11843
+ })
11844
+ }),
11845
+ /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11846
+ className: "w-full h-full flex divide-x divide-gray-200",
11847
+ children: [
11848
+ (isMedium || !selectedMenuItem) && /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11849
+ className: "flex flex-col w-full md:w-[300px] md:p-4 shrink-0",
11850
+ children: [
11851
+ /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
11852
+ className: "flex flex-col gap-2 flex-1",
11853
+ children: menuItems.map((item)=>/*#__PURE__*/ (0, $3Sbms$jsx)((0, $1a0b12b84e5cae94$export$3315c1cc2d5487ba), {
11854
+ title: item.title,
11855
+ icon: item.icon,
11856
+ isActive: item.id === selectedMenuItem?.id,
11857
+ onClick: ()=>setSelectedMenuItem(item)
11858
+ }, item.id))
11859
+ }),
11860
+ isMedium && /*#__PURE__*/ (0, $3Sbms$jsx)("a", {
11861
+ href: "https://help.snapcall.io",
11862
+ target: "_blank",
11863
+ rel: "noreferrer",
11864
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $1a0b12b84e5cae94$export$3315c1cc2d5487ba), {
11865
+ title: t("settings.helpCenter"),
11866
+ icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$HelpCircleIcon), {
11867
+ duotone: true
11868
+ })
11869
+ })
11870
+ })
11871
+ ]
11872
+ }),
11873
+ selectedMenuItem && /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11874
+ className: "w-full md:p-8 divide-y divide-gray-200",
11875
+ children: [
11876
+ isMedium && /*#__PURE__*/ (0, $3Sbms$jsx)("h2", {
11877
+ className: "text-md font-semibold mb-2",
11878
+ children: selectedMenuItem.title
11879
+ }),
11880
+ /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
11881
+ className: "md:pt-4",
11882
+ children: selectedMenuItem.content
11883
+ })
11884
+ ]
11885
+ })
11886
+ ]
11887
+ })
11888
+ ]
11889
+ })
11890
+ })
11891
+ });
11892
+ };
11893
+
11894
+
11895
+ const $b4057e63640314b7$var$browser = (0, $3Sbms$bowser).parse(window.navigator.userAgent);
11896
+ const $b4057e63640314b7$export$aa00db7a33d4c484 = ()=>{
11897
+ const { t: t } = (0, $3Sbms$useTranslation)();
11898
+ const { mode: mode, hasVideo: hasVideo, isRecording: isRecording, openQRCodeModal: openQRCodeModal } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
11899
+ const [showQrCodeToast, setShowQrCodeToast] = (0, $3Sbms$useState)($b4057e63640314b7$var$browser.platform.type === "desktop");
11900
+ const [timer, setTimer] = (0, $3Sbms$useState)(0);
11901
+ const timerInterval = (0, $3Sbms$useRef)(0);
11902
+ const settingsDialogState = (0, $3Sbms$useOverlayTriggerState)({});
11903
+ const isMedium = window.matchMedia("(min-width: 768px)").matches;
11904
+ (0, $3Sbms$useEffect)(()=>{
11905
+ if (isRecording) {
11906
+ clearInterval(timerInterval.current);
11907
+ timerInterval.current = window.setInterval(()=>setTimer((t)=>t + 1), 1000);
11908
+ } else {
11909
+ clearInterval(timerInterval.current);
11910
+ setTimer(0);
11911
+ }
11912
+ }, [
11913
+ isRecording
11914
+ ]);
11915
+ return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11916
+ className: "flex items-start justify-between z-50",
11917
+ children: [
11918
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $20431dc869bb21e0$export$b3fd96a52c80b3af), {}),
11919
+ /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11920
+ className: "flex flex-col items-center gap-4 overflow-hidden",
11921
+ children: [
11922
+ mode !== "photo" && /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11923
+ className: (0, $3Sbms$classnames)("flex items-center gap-2.5 px-3.5 py-2 text-md text-white font-medium border rounded-full", hasVideo ? "bg-gray-25/50 border-white/10 backdrop-blur-lg" : "bg-gray-50 border-gray-200"),
11924
+ children: [
11925
+ isRecording && /*#__PURE__*/ (0, $3Sbms$jsx)("span", {
11926
+ className: "w-2 h-2 rounded-full bg-red-700 pulse-red-700"
11927
+ }),
11928
+ (0, $fd863da1a2907300$export$7f78f4f57f8852d5)(timer)
11929
+ ]
11930
+ }),
11931
+ showQrCodeToast && mode !== "screen" && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$RawToast), {
11932
+ className: "bg-gray-25",
11933
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ToastContent), {
11934
+ title: t("recorder.switchToMobileTitle"),
11935
+ icon: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$QrCode1Icon), {
11936
+ className: "text-white"
11937
+ }),
11938
+ onClose: ()=>setShowQrCodeToast(false),
11939
+ actions: [
11940
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$ToastAction), {
11941
+ altText: t("recorder.showQrCode"),
11942
+ variant: "primary",
11943
+ onClick: openQRCodeModal,
11944
+ children: t("recorder.showQrCode")
11945
+ }, "showQrCode")
11946
+ ]
11947
+ })
11948
+ })
11949
+ ]
11950
+ }),
11951
+ /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Button), {
11952
+ className: "bg-gray-25/50 hover:bg-gray-25/60 active:bg-gray-25/70 rounded-full",
11953
+ icon: !isMedium,
11954
+ onClick: settingsDialogState.open,
11955
+ children: [
11956
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Settings1Icon), {
11957
+ size: 18,
11958
+ className: "text-white"
11959
+ }),
11960
+ isMedium && t("settings.title")
11961
+ ]
11962
+ }),
11963
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $1299919e02395903$export$c197ce1a352372f), {
11964
+ state: settingsDialogState
11965
+ })
11966
+ ]
11967
+ });
11968
+ };
11969
+
11970
+
11971
+
11972
+
11973
+
11974
+
11975
+
11385
11976
 
11386
11977
 
11387
11978
  const $2231be1261227854$var$audioModes = [
@@ -11396,6 +11987,7 @@ const $2231be1261227854$var$videoModes = [
11396
11987
  ];
11397
11988
  const $2231be1261227854$export$ca9d588768f0d0da = ({ children: children })=>{
11398
11989
  const { t: t } = (0, $3Sbms$useTranslation)();
11990
+ const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
11399
11991
  const { mode: mode } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
11400
11992
  const hasAudio = $2231be1261227854$var$audioModes.includes(mode);
11401
11993
  const hasVideo = $2231be1261227854$var$videoModes.includes(mode);
@@ -11418,7 +12010,7 @@ const $2231be1261227854$export$ca9d588768f0d0da = ({ children: children })=>{
11418
12010
  }),
11419
12011
  /*#__PURE__*/ (0, $3Sbms$jsx)("p", {
11420
12012
  className: "text-sm text-gray-900",
11421
- children: "Lorem ipsum dolor sit amet consectetur. Arcu massa neque."
12013
+ children: mode === "screen" ? t("recorder.chooseWhatYouWantToShareDescription") : hasAudio && hasVideo ? t("recorder.noCameraAndMicrophoneAccessDescription") : hasAudio ? t("recorder.noMicrophoneAccessDescription") : hasVideo ? t("recorder.noCameraAccessDescription") : "/"
11422
12014
  })
11423
12015
  ]
11424
12016
  }),
@@ -11432,7 +12024,10 @@ const $2231be1261227854$export$ca9d588768f0d0da = ({ children: children })=>{
11432
12024
  onClick: ()=>{
11433
12025
  if (mode === "screen") (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableScreenshare({
11434
12026
  audioTransportOption: "mix"
11435
- });
12027
+ }).catch((error)=>reportError({
12028
+ code: "SC_3",
12029
+ error: error
12030
+ }));
11436
12031
  else getUserMedia.refetch();
11437
12032
  },
11438
12033
  children: mode === "screen" ? t("recorder.startScreenRecording") : t("recorder.allowAccess")
@@ -11588,95 +12183,6 @@ const $5b15985a93e05fe7$export$e9b744e15e8fe06f = ()=>{
11588
12183
 
11589
12184
 
11590
12185
 
11591
- const $79bae5c9904f9029$var$SheetDialogContext = /*#__PURE__*/ (0, $3Sbms$createContext)({
11592
- type: "dialog",
11593
- showClose: true
11594
- });
11595
- const $79bae5c9904f9029$export$56d72fe406945300 = ({ type: type = "dialog", showClose: showClose = true, children: children })=>{
11596
- return /*#__PURE__*/ (0, $3Sbms$jsx)($79bae5c9904f9029$var$SheetDialogContext.Provider, {
11597
- value: {
11598
- type: type,
11599
- showClose: showClose
11600
- },
11601
- children: children
11602
- });
11603
- };
11604
- const $79bae5c9904f9029$export$e943710ec76a9465 = (props)=>{
11605
- const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11606
- if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Dialog), {
11607
- ...props
11608
- });
11609
- else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Sheet), {
11610
- ...props
11611
- });
11612
- };
11613
- const $79bae5c9904f9029$export$76259cff208cccae = (props)=>{
11614
- const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11615
- if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogTrigger), {
11616
- ...props
11617
- });
11618
- else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetTrigger), {
11619
- ...props
11620
- });
11621
- };
11622
- const $79bae5c9904f9029$export$ae085f72dad73e20 = (props)=>{
11623
- const { type: type, showClose: showClose } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11624
- if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogHeader), {
11625
- ...props
11626
- });
11627
- else {
11628
- const { children: children, ...other } = props;
11629
- return /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$SheetHeader), {
11630
- ...other,
11631
- children: [
11632
- children,
11633
- showClose && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetClose), {})
11634
- ]
11635
- });
11636
- }
11637
- };
11638
- const $79bae5c9904f9029$export$4cf67c05c32f37ce = (props)=>{
11639
- const { type: type, showClose: showClose } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11640
- if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogContent), {
11641
- showClose: showClose,
11642
- ...props
11643
- });
11644
- else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetContent), {
11645
- side: "bottom",
11646
- ...props
11647
- });
11648
- };
11649
- const $79bae5c9904f9029$export$5e9fc1357420b7eb = (props)=>{
11650
- const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11651
- if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogTitle), {
11652
- ...props
11653
- });
11654
- else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetTitle), {
11655
- ...props
11656
- });
11657
- };
11658
- const $79bae5c9904f9029$export$51c201eb88940e0f = (props)=>{
11659
- const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11660
- if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogDescription), {
11661
- ...props
11662
- });
11663
- else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetDescription), {
11664
- ...props
11665
- });
11666
- };
11667
- const $79bae5c9904f9029$export$2cf3a8077f66b4f6 = (props)=>{
11668
- const { type: type } = (0, $3Sbms$useContext)($79bae5c9904f9029$var$SheetDialogContext);
11669
- if (type === "dialog") return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DialogDescription), {
11670
- ...props
11671
- });
11672
- else return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SheetDescription), {
11673
- ...props
11674
- });
11675
- };
11676
-
11677
-
11678
-
11679
-
11680
12186
 
11681
12187
 
11682
12188
 
@@ -12069,9 +12575,9 @@ const $3ecacdd28d707ec1$export$c01bb29adf88f117 = ({ state: state })=>{
12069
12575
 
12070
12576
  const $0bd5dc59be85fdb8$export$aab864ee9e2aed8d = ()=>{
12071
12577
  const { t: t } = (0, $3Sbms$useTranslation)();
12072
- const { options: options } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
12578
+ const { recorderOptions: recorderOptions } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
12073
12579
  const { mode: mode, setMode: setMode, hasVideo: hasVideo } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
12074
- const enabledModes = options.recorder?.enabledModes || [
12580
+ const enabledModes = recorderOptions?.enabledModes || [
12075
12581
  "photo",
12076
12582
  "video",
12077
12583
  "audio",
@@ -12110,6 +12616,7 @@ const $0bd5dc59be85fdb8$export$aab864ee9e2aed8d = ()=>{
12110
12616
 
12111
12617
 
12112
12618
 
12619
+
12113
12620
  const $e17d510229c71a56$var$zoomOptions = [
12114
12621
  "1",
12115
12622
  "2"
@@ -12117,15 +12624,23 @@ const $e17d510229c71a56$var$zoomOptions = [
12117
12624
  const $e17d510229c71a56$export$50c18ae22f50c0e = ()=>{
12118
12625
  const [isZoomAvailable, setIsZoomAvailable] = (0, $3Sbms$useState)(false);
12119
12626
  const [zoom, setZoom] = (0, $3Sbms$useState)("1");
12627
+ const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
12120
12628
  (0, $3Sbms$useEffect)(()=>{
12121
12629
  if (isZoomAvailable) {
12122
12630
  const numberZoom = Number(zoom);
12123
- if (numberZoom > 1) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).zoomVideo();
12124
- else (0, $c9e496369b59be7a$export$2f377c2162fd02b2).unzoomVideo();
12631
+ if (numberZoom > 1) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).zoomVideo().catch((error)=>reportError({
12632
+ code: "ZM_1",
12633
+ error: error
12634
+ }));
12635
+ else (0, $c9e496369b59be7a$export$2f377c2162fd02b2).unzoomVideo().catch((error)=>reportError({
12636
+ code: "ZM_2",
12637
+ error: error
12638
+ }));
12125
12639
  }
12126
12640
  }, [
12127
12641
  zoom,
12128
- isZoomAvailable
12642
+ isZoomAvailable,
12643
+ reportError
12129
12644
  ]);
12130
12645
  (0, $3Sbms$useEffect)(()=>{
12131
12646
  const onLocalVideo = ()=>{
@@ -12195,9 +12710,11 @@ const $209863c2c7a7b6c0$export$53819c0e58f98d49 = (props)=>{
12195
12710
 
12196
12711
 
12197
12712
 
12713
+
12198
12714
  const $24e31aa1532c4049$export$f9da3144ae2525a3 = ()=>{
12199
12715
  const { streamUIContainerRef: streamUIContainerRef } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
12200
12716
  const { mode: mode, isRecording: isRecording, setIsRecording: setIsRecording, videoElementRef: videoElementRef, addAsset: addAsset, setIncomingAsset: setIncomingAsset, openAssetsModal: openAssetsModal } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
12717
+ const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
12201
12718
  const recordButtonRef = (0, $3Sbms$useRef)(null);
12202
12719
  const [showFlashAnimation, setShowFlashAnimation] = (0, $3Sbms$useState)(false);
12203
12720
  const [showCountdown, setShowCountdown] = (0, $3Sbms$useState)(false);
@@ -12213,45 +12730,79 @@ const $24e31aa1532c4049$export$f9da3144ae2525a3 = ()=>{
12213
12730
  createdAt: createdAt
12214
12731
  });
12215
12732
  openAssetsModal();
12216
- const image = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo(videoElementRef.current);
12217
- const { url: url, assetId: assetId } = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).saveCapture(image);
12218
- addAsset({
12219
- id: assetId,
12220
- mode: "photo",
12221
- url: url,
12222
- thumbnailUrl: url,
12223
- createdAt: createdAt
12224
- });
12733
+ try {
12734
+ const image = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo(videoElementRef.current);
12735
+ const { url: url, assetId: assetId } = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).saveCapture(image);
12736
+ addAsset({
12737
+ id: assetId,
12738
+ mode: "photo",
12739
+ url: url,
12740
+ thumbnailUrl: url,
12741
+ createdAt: createdAt
12742
+ });
12743
+ } catch (error) {
12744
+ reportError({
12745
+ code: "CAP_1",
12746
+ error: error
12747
+ });
12748
+ setIncomingAsset(null);
12749
+ }
12225
12750
  openAssetsModal();
12226
12751
  }
12227
12752
  };
12228
12753
  const onRecordClick = async ()=>{
12229
12754
  if (isRecording) {
12230
12755
  openAssetsModal();
12231
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).stopRecord();
12756
+ try {
12757
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).stopRecord();
12758
+ if (mode === "screen") (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare().catch((error)=>reportError({
12759
+ code: "REC_3",
12760
+ error: error
12761
+ }));
12762
+ } catch (error) {
12763
+ reportError({
12764
+ code: "REC_1",
12765
+ error: error
12766
+ });
12767
+ }
12232
12768
  } else setShowCountdown((prev)=>{
12233
12769
  const next = !prev;
12234
12770
  const { screenshare: screenshare } = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
12235
- if (next === false && screenshare.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare();
12771
+ if (next === false && screenshare.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare().catch((error)=>reportError({
12772
+ code: "SC_2",
12773
+ error: error
12774
+ }));
12236
12775
  return next;
12237
12776
  });
12238
12777
  };
12239
12778
  const onCountdownFinish = async ()=>{
12240
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).startRecord();
12241
- (0, $c9e496369b59be7a$export$2f377c2162fd02b2).audioLevel?.startAverageAnalysis();
12242
- setShowCountdown(false);
12243
- setIsRecording(true);
12244
- const createdAt = Date.now();
12245
- let thumbnail;
12246
- if (mode !== "audio" && videoElementRef.current) {
12247
- thumbnail = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo(undefined).catch(console.error);
12248
- if (!thumbnail) thumbnail = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo(videoElementRef.current).catch(console.error);
12779
+ try {
12780
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).startRecord();
12781
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).audioLevel?.startAverageAnalysis();
12782
+ setShowCountdown(false);
12783
+ setIsRecording(true);
12784
+ const createdAt = Date.now();
12785
+ let thumbnail;
12786
+ try {
12787
+ if (mode !== "audio" && videoElementRef.current) {
12788
+ thumbnail = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo(undefined).catch(console.error);
12789
+ if (!thumbnail) thumbnail = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo(videoElementRef.current).catch(console.error);
12790
+ }
12791
+ } catch (err) {
12792
+ console.warn("Couldn't capture video for thumbnail", err);
12793
+ }
12794
+ setIncomingAsset({
12795
+ mode: mode,
12796
+ thumbnailUrl: thumbnail || undefined,
12797
+ createdAt: createdAt
12798
+ });
12799
+ } catch (error) {
12800
+ reportError({
12801
+ code: "REC_2",
12802
+ error: error
12803
+ });
12804
+ setShowCountdown(false);
12249
12805
  }
12250
- setIncomingAsset({
12251
- mode: mode,
12252
- thumbnailUrl: thumbnail || undefined,
12253
- createdAt: createdAt
12254
- });
12255
12806
  };
12256
12807
  (0, $3Sbms$useEffect)(()=>{
12257
12808
  if (devicesState.screenshare.enabled && mode === "screen") recordButtonRef.current?.click();
@@ -12264,12 +12815,6 @@ const $24e31aa1532c4049$export$f9da3144ae2525a3 = ()=>{
12264
12815
  }, [
12265
12816
  mode
12266
12817
  ]);
12267
- (0, $3Sbms$useEffect)(()=>{
12268
- const { screenshare: screenshare } = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
12269
- if (!isRecording && screenshare.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare();
12270
- }, [
12271
- isRecording
12272
- ]);
12273
12818
  return /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Fragment), {
12274
12819
  children: [
12275
12820
  showFlashAnimation && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $6efc75079651494a$export$2b501aee548bae06), {
@@ -12359,12 +12904,17 @@ const $7f5b5a40ab7d19c2$export$9ea2b4f70e201d7f = ({ className: className })=>{
12359
12904
 
12360
12905
 
12361
12906
 
12907
+
12362
12908
  const $9dfc3b1c2f703629$export$c7c44baae9d9f25f = ()=>{
12363
12909
  const { t: t } = (0, $3Sbms$useTranslation)();
12910
+ const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
12364
12911
  const { mode: mode, isRecording: isRecording, assets: assets, openAssetsModal: openAssetsModal } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
12365
12912
  const rotateVideo = ()=>{
12366
12913
  const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
12367
- if (devicesState.camera.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).rotateVideo();
12914
+ if (devicesState.camera.enabled) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).rotateVideo().catch((error)=>reportError({
12915
+ code: "ROTT_1",
12916
+ error: error
12917
+ }));
12368
12918
  };
12369
12919
  return /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
12370
12920
  className: "flex flex-col items-center gap-6 md:gap-4 w-full max-w-[500px] mx-auto z-50",
@@ -12698,10 +13248,11 @@ const $a272d78208225664$export$54c6bcb39df9c9b9 = ({ state: state, flow: flow })
12698
13248
  };
12699
13249
 
12700
13250
 
13251
+
12701
13252
  const $d6943d128e6c8399$var$browser = (0, $3Sbms$bowser).parse(window.navigator.userAgent);
12702
13253
  const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
12703
- const { options: options, flow: flow, flowV0: flowV0 } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
12704
- const [mode, setMode] = (0, $3Sbms$useState)(options?.recorder?.defaultMode || "photo");
13254
+ const { flow: flow, flowV0: flowV0, recorderOptions: recorderOptions } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
13255
+ const [mode, setMode] = (0, $3Sbms$useState)(recorderOptions?.defaultMode || "photo");
12705
13256
  const [assets, setAssets] = (0, $3Sbms$useState)([]);
12706
13257
  const [isRecording, setIsRecording] = (0, $3Sbms$useState)(false);
12707
13258
  const [incomingAsset, setIncomingAsset] = (0, $3Sbms$useState)(null);
@@ -12716,6 +13267,7 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
12716
13267
  const switchToMobileModalState = (0, $3Sbms$useOverlayTriggerState)({
12717
13268
  defaultOpen: $d6943d128e6c8399$var$browser.platform.type === "desktop" && !flow && !flowV0
12718
13269
  });
13270
+ const reportError = (0, $946223bbb2c552ef$export$5a5695b638d078e7)();
12719
13271
  const { company: company } = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getState();
12720
13272
  const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
12721
13273
  const hasVideo = devicesState.camera.enabled || devicesState.screenshare.enabled;
@@ -12727,8 +13279,15 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
12727
13279
  setIncomingAsset(null);
12728
13280
  }, []);
12729
13281
  const removeAsset = async (assetId)=>{
12730
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).deleteCapture(assetId);
12731
- setAssets((currentAssets)=>currentAssets.filter((asset)=>asset.id !== assetId));
13282
+ try {
13283
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).deleteCapture(assetId);
13284
+ setAssets((currentAssets)=>currentAssets.filter((asset)=>asset.id !== assetId));
13285
+ } catch (error) {
13286
+ reportError({
13287
+ code: "DEL_CAP_1",
13288
+ error: error
13289
+ });
13290
+ }
12732
13291
  };
12733
13292
  (0, $3Sbms$useEffect)(()=>{
12734
13293
  const onRecordStopped = (event)=>{
@@ -12769,9 +13328,13 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
12769
13328
  ]);
12770
13329
  (0, $3Sbms$useEffect)(()=>{
12771
13330
  const screenshareState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState().screenshare;
12772
- if (screenshareState.enabled && mode !== "screen") (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare();
13331
+ if (screenshareState.enabled && mode !== "screen") (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare().catch((error)=>reportError({
13332
+ code: "SC_1",
13333
+ error: error
13334
+ }));
12773
13335
  }, [
12774
- mode
13336
+ mode,
13337
+ reportError
12775
13338
  ]);
12776
13339
  return /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
12777
13340
  className: "antialiased inter dark-theme h-full",
@@ -12836,65 +13399,12 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
12836
13399
 
12837
13400
 
12838
13401
 
12839
-
12840
- const $759492438a7a357d$export$7f7cbe89f1eacd2 = (0, $3Sbms$styledcomponents).div`
12841
- border: 2px solid #ffffff;
12842
- border-top: 2px solid #000000;
12843
- border-radius: 50%;
12844
- width: 24px;
12845
- height: 24px;
12846
- animation: spin 1s linear infinite;
12847
- @keyframes spin {
12848
- 0% {
12849
- transform: rotate(0deg);
12850
- }
12851
- 100% {
12852
- transform: rotate(360deg);
12853
- }
12854
- }
12855
- `;
12856
- const $759492438a7a357d$export$3b0d6d7590275603 = (0, $3Sbms$styledcomponents).div`
12857
- position: absolute;
12858
- background-color: #000000;
12859
- opacity: 0.9;
12860
- z-index: 999999;
12861
- display: flex;
12862
- vertical-align: middle;
12863
- align-items: center;
12864
- top: 0px;
12865
- right: 0px;
12866
- bottom: 0px;
12867
- left: 0px;
12868
- gap: 0.25rem;
12869
- `;
12870
- const $759492438a7a357d$export$42a852a2b6b56249 = (0, $3Sbms$styledcomponents).div`
12871
- display: flex;
12872
- gap: 25px;
12873
- width: 100%;
12874
- margin-left: auto;
12875
- margin-right: auto;
12876
- justify-content: center;
12877
- align-items: center;
12878
- vertical-align: middle;
12879
- `;
12880
- const $759492438a7a357d$export$52e284bf30d0364a = (0, $3Sbms$styledcomponents).h2`
12881
- color: #ffffff;
12882
- font-weight: 500;
12883
- font-size: 14px;
12884
- font-family: 'Lato';
12885
- `;
12886
-
12887
-
12888
13402
  const $91d20ee7d2ade85c$export$669f6ea7d267feaf = ()=>{
12889
- const { t: t } = (0, $3Sbms$useTranslation)();
12890
- return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $759492438a7a357d$export$3b0d6d7590275603), {
12891
- children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $759492438a7a357d$export$42a852a2b6b56249), {
12892
- children: [
12893
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $759492438a7a357d$export$7f7cbe89f1eacd2), {}),
12894
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $759492438a7a357d$export$52e284bf30d0364a), {
12895
- children: t("loader.connection")
12896
- })
12897
- ]
13403
+ return /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
13404
+ className: "w-full h-full flex justify-center items-center bg-gray-1000",
13405
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$SpinnerIcon), {
13406
+ className: "animate-spin text-blue-700",
13407
+ size: 48
12898
13408
  })
12899
13409
  });
12900
13410
  };
@@ -13637,62 +14147,63 @@ const $c6a143d1088045e0$var$Bold = ({ children: children })=>/*#__PURE__*/ (0, $
13637
14147
  });
13638
14148
  const $c6a143d1088045e0$export$ed71079a84f20635 = ()=>{
13639
14149
  const { t: t } = (0, $3Sbms$useTranslation)();
13640
- const modalState = (0, $3Sbms$useOverlayTriggerState)({});
13641
- const [requests, setRequests] = (0, $3Sbms$useState)([]);
13642
- (0, $3Sbms$useEffect)(()=>{
13643
- modalState.setOpen(requests.length !== 0);
13644
- }, [
13645
- modalState,
13646
- requests.length
13647
- ]);
14150
+ const queryClient = (0, $3Sbms$useQueryClient)();
14151
+ const waitingRequests = (0, $3Sbms$useQuery)({
14152
+ queryKey: [
14153
+ "waitingRequests"
14154
+ ],
14155
+ queryFn: ()=>(0, $c9e496369b59be7a$export$2f377c2162fd02b2).getWaitingRequests(),
14156
+ retry: false,
14157
+ refetchOnWindowFocus: false
14158
+ });
14159
+ const acceptWaitingRequest = (0, $3Sbms$useMutation)({
14160
+ mutationFn: (id)=>(0, $c9e496369b59be7a$export$2f377c2162fd02b2).acceptAccessRequest(id),
14161
+ onSettled: ()=>queryClient.invalidateQueries([
14162
+ "waitingRequests"
14163
+ ])
14164
+ });
14165
+ const denyWaitingRequest = (0, $3Sbms$useMutation)({
14166
+ mutationFn: (id)=>(0, $c9e496369b59be7a$export$2f377c2162fd02b2).denyAccessRequest(id),
14167
+ onSettled: ()=>queryClient.invalidateQueries([
14168
+ "waitingRequests"
14169
+ ])
14170
+ });
14171
+ const hasWaitingRequests = (waitingRequests.data?.length || 0) > 0;
14172
+ const firstWaitingRequest = waitingRequests.data?.[0];
14173
+ const isProcessingWaitingRequest = acceptWaitingRequest.isLoading || denyWaitingRequest.isLoading;
13648
14174
  (0, $3Sbms$useEffect)(()=>{
13649
14175
  const onAccessRequest = (event)=>{
13650
- setRequests([
13651
- ...requests,
13652
- event.detail
13653
- ]);
13654
- };
13655
- (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("accessRequest", onAccessRequest);
13656
- return ()=>{
13657
- (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("accessRequest", onAccessRequest);
13658
- };
13659
- }, [
13660
- setRequests,
13661
- modalState,
13662
- requests
13663
- ]);
13664
- (0, $3Sbms$useEffect)(()=>{
13665
- const onEnterRoom = async (event)=>{
13666
- setRequests(event.detail.waitingRequests);
13667
- };
13668
- (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("enterRoom", onEnterRoom);
13669
- return ()=>{
13670
- (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("enterRoom", onEnterRoom);
14176
+ queryClient.setQueryData([
14177
+ "waitingRequests"
14178
+ ], (oldData)=>{
14179
+ if (oldData) return [
14180
+ ...oldData,
14181
+ event.detail
14182
+ ];
14183
+ return [
14184
+ event.detail
14185
+ ];
14186
+ });
13671
14187
  };
13672
- }, [
13673
- modalState
13674
- ]);
13675
- (0, $3Sbms$useEffect)(()=>{
13676
14188
  const onCancelAccessRequest = async (event)=>{
13677
- const id = event.detail.id;
13678
- const removeCanceled = requests.filter((rq)=>{
13679
- return id !== rq.id;
14189
+ queryClient.setQueryData([
14190
+ "waitingRequests"
14191
+ ], (oldData)=>{
14192
+ if (oldData) return oldData.filter((data)=>data.id !== event.detail.id);
14193
+ return [];
13680
14194
  });
13681
- setRequests(removeCanceled);
13682
14195
  };
14196
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("accessRequest", onAccessRequest);
13683
14197
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("cancelAccessRequest", onCancelAccessRequest);
13684
14198
  return ()=>{
14199
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("accessRequest", onAccessRequest);
13685
14200
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("cancelAccessRequest", onCancelAccessRequest);
13686
14201
  };
13687
14202
  }, [
13688
- modalState,
13689
- requests
14203
+ queryClient
13690
14204
  ]);
13691
14205
  return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$AlertDialog), {
13692
- open: modalState.isOpen,
13693
- onOpenChange: (open)=>{
13694
- modalState.setOpen(open);
13695
- },
14206
+ open: hasWaitingRequests,
13696
14207
  children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$AlertDialogContent), {
13697
14208
  children: [
13698
14209
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$AlertDialogHeader), {
@@ -13701,14 +14212,14 @@ const $c6a143d1088045e0$export$ed71079a84f20635 = ()=>{
13701
14212
  children: [
13702
14213
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Avatar), {
13703
14214
  className: "w-[54px] h-[54px] text-3xl font-semibold",
13704
- name: requests[0]?.profile?.name || t("requestAccess.defaultName")
14215
+ name: firstWaitingRequest?.profile?.name || t("requestAccess.defaultName")
13705
14216
  }),
13706
14217
  /*#__PURE__*/ (0, $3Sbms$jsx)("span", {
13707
14218
  className: "w-full text-center text-lg font-normal",
13708
14219
  children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Trans), {
13709
14220
  i18nKey: "requestAccess.wantToJoin",
13710
14221
  values: {
13711
- name: requests[0]?.profile?.name || t("requestAccess.defaultName")
14222
+ name: firstWaitingRequest?.profile?.name || t("requestAccess.defaultName")
13712
14223
  },
13713
14224
  components: {
13714
14225
  bold: /*#__PURE__*/ (0, $3Sbms$jsx)($c6a143d1088045e0$var$Bold, {})
@@ -13723,19 +14234,17 @@ const $c6a143d1088045e0$export$ed71079a84f20635 = ()=>{
13723
14234
  children: [
13724
14235
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$AlertDialogCancel), {
13725
14236
  className: "w-full",
14237
+ disabled: isProcessingWaitingRequest,
13726
14238
  onClick: ()=>{
13727
- (0, $c9e496369b59be7a$export$2f377c2162fd02b2).denyAccessRequest(requests[0]?.id);
13728
- requests.shift();
13729
- setRequests(requests);
14239
+ if (firstWaitingRequest) denyWaitingRequest.mutate(firstWaitingRequest.id);
13730
14240
  },
13731
14241
  children: t("requestAccess.deny")
13732
14242
  }),
13733
14243
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$AlertDialogAction), {
13734
14244
  className: "w-full",
14245
+ disabled: isProcessingWaitingRequest,
13735
14246
  onClick: ()=>{
13736
- (0, $c9e496369b59be7a$export$2f377c2162fd02b2).acceptAccessRequest(requests[0]?.id);
13737
- requests.shift();
13738
- setRequests(requests);
14247
+ if (firstWaitingRequest) acceptWaitingRequest.mutate(firstWaitingRequest.id);
13739
14248
  },
13740
14249
  variant: "primary",
13741
14250
  children: t("requestAccess.admit")
@@ -13752,13 +14261,19 @@ const $26ed036cbc17809a$var$currentTheme = (0, $52580db2e49cdd90$export$3bfd0d52
13752
14261
  const $26ed036cbc17809a$var$currentLanguage = (0, $a3e657fb86ae23f3$export$604ba5624273df44)();
13753
14262
  const $26ed036cbc17809a$var$queryClient = new (0, $3Sbms$QueryClient)();
13754
14263
  let $26ed036cbc17809a$var$timestampCriticalError = -1;
13755
- const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0: flowV0 })=>{
14264
+ const $26ed036cbc17809a$var$endViewStates = [
14265
+ "ended",
14266
+ "terminated",
14267
+ "expired",
14268
+ "full"
14269
+ ];
14270
+ const $26ed036cbc17809a$var$StreamUI = ({ options: options })=>{
13756
14271
  const { t: t } = (0, $3Sbms$useTranslation)();
13757
14272
  const [selfPeerId, setSelfPeerId] = (0, $3Sbms$useState)(undefined);
13758
14273
  const streamUIContainerRef = (0, $3Sbms$useRef)(null);
13759
14274
  const videosContainerRef = (0, $3Sbms$useRef)(null);
13760
14275
  const remoteTilesContainerRef = (0, $3Sbms$useRef)(null);
13761
- const [streamState, setStreamState] = (0, $3Sbms$useState)(options.recorder?.enabled ? "recorder" : options.greeting ? "greeting" : "loading");
14276
+ const [streamState, setStreamState] = (0, $3Sbms$useState)(options.greeting ? "greeting" : "loading");
13762
14277
  const [isQuickConnectPopupVisible, setIsQuickConnectPopupVisible] = (0, $3Sbms$useState)(false);
13763
14278
  const [isSettingsMenuVisible, setIsSettingsMenuVisible] = (0, $3Sbms$useState)(false);
13764
14279
  const [isYoutubePopupVisible, setIsYoutubePopupVisible] = (0, $3Sbms$useState)(false);
@@ -13782,6 +14297,9 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
13782
14297
  const [isRecordingStartPopupOpen, setRecordingStartPopupOpen] = (0, $3Sbms$useState)(false);
13783
14298
  const [permissions, setPermissions] = (0, $3Sbms$useState)([]);
13784
14299
  const [plan, setPlan] = (0, $3Sbms$useState)(undefined);
14300
+ const [flows, setFlows] = (0, $3Sbms$useState)({});
14301
+ const [recorderOptions, setRecorderOptions] = (0, $3Sbms$useState)(options.recorder);
14302
+ const isFirstRender = (0, $648652ea36cc4fd9$export$5964c316e853650f)();
13785
14303
  const orientation = (containerWidth || window.screen.width) > (containerHeight || window.screen.height) ? "landscape" : "portrait";
13786
14304
  const styledTheme = theme === "dark" ? (0, $52580db2e49cdd90$export$3e936a8db52a10a0) : (0, $52580db2e49cdd90$export$f30cb9bc4f736419);
13787
14305
  const onWebcamUpdate = (event)=>{
@@ -13862,9 +14380,6 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
13862
14380
  name: name,
13863
14381
  avatarUrl: avatarUrl
13864
14382
  });
13865
- if (email) (0, $3Sbms$hotjarbrowser).identify(null, {
13866
- email: email
13867
- });
13868
14383
  } else (0, $3Sbms$reacthottoast)("An error occured while trying to join the room as an agent", {
13869
14384
  className: "error"
13870
14385
  });
@@ -13889,6 +14404,49 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
13889
14404
  duration: duration
13890
14405
  });
13891
14406
  };
14407
+ const onClientInitialized = (0, $3Sbms$useCallback)(async (event)=>{
14408
+ const { flow: flow, flowV0: flowV0 } = event.detail;
14409
+ const flowStep = flow?.steps[0];
14410
+ if (flowStep) {
14411
+ const flowStepMode = flowStep.type === "image" ? "photo" : flowStep.type;
14412
+ setRecorderOptions({
14413
+ enabledModes: [
14414
+ flowStepMode
14415
+ ],
14416
+ enabled: true,
14417
+ defaultMode: flowStepMode,
14418
+ skipOnboarding: false
14419
+ });
14420
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).setStep(flowStep.token);
14421
+ }
14422
+ const isRecorder = options.recorder?.enabled || Boolean(flowStep);
14423
+ if (!options.greeting) {
14424
+ if (isRecorder) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).joinRecorder();
14425
+ else await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).joinRoom();
14426
+ }
14427
+ const state = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getState();
14428
+ const peerId = state.peerId;
14429
+ setPlan(state.plan);
14430
+ setPermissions(state.permissions);
14431
+ setSelfPeerId(peerId);
14432
+ setFlows({
14433
+ flow: flow,
14434
+ flowV0: flowV0
14435
+ });
14436
+ if (!isRecorder && !options.greeting) try {
14437
+ if (!options.headless) await (0, $15a01b611391c1e7$export$494039379563c94d)(options);
14438
+ if (options.controls?.microphone?.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
14439
+ if (options.controls?.camera?.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo();
14440
+ setUserInteractionTriggered(true);
14441
+ } catch (userInteractionError) {
14442
+ setBlockedDevicesPopupOpen(true);
14443
+ console.error("User interaction trigger failed", userInteractionError);
14444
+ } finally{
14445
+ setStreamState("streaming");
14446
+ }
14447
+ }, [
14448
+ options
14449
+ ]);
13892
14450
  (0, $3Sbms$useEffect)(()=>{
13893
14451
  try {
13894
14452
  localStorage.setItem("stream_ui_theme", theme);
@@ -13899,7 +14457,9 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
13899
14457
  theme
13900
14458
  ]);
13901
14459
  (0, $3Sbms$useEffect)(()=>{
13902
- try {
14460
+ const translationLanguage = (0, $384d985bb9605c35$export$150b732325d14d04)[language];
14461
+ if (!translationLanguage) setLanguage("en");
14462
+ else try {
13903
14463
  localStorage.setItem("stream_ui_language", language);
13904
14464
  (0, $384d985bb9605c35$export$2e2bcd8739ae039).changeLanguage(language);
13905
14465
  } catch (localStorageError) {
@@ -13909,6 +14469,7 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
13909
14469
  language
13910
14470
  ]);
13911
14471
  (0, $3Sbms$useEffect)(()=>{
14472
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("initialized", onClientInitialized);
13912
14473
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("localVideoAvailable", onWebcamUpdate);
13913
14474
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("localVideoUnavailable", onWebcamUpdate);
13914
14475
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("screenshareEnabled", onScreenshareUpdate);
@@ -13927,6 +14488,7 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
13927
14488
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("videoRecordingStopped", onVideoRecordingStopped);
13928
14489
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("videoRecordingRequested", onVideoRecordingRequested);
13929
14490
  return ()=>{
14491
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("initialized", onClientInitialized);
13930
14492
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("localVideoAvailable", onWebcamUpdate);
13931
14493
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("localVideoUnavailable", onWebcamUpdate);
13932
14494
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("screenshareEnabled", onScreenshareUpdate);
@@ -13946,30 +14508,9 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
13946
14508
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("videoRecordingRequested", onVideoRecordingRequested);
13947
14509
  };
13948
14510
  }, [
13949
- onVideoRecordingRequested
14511
+ onVideoRecordingRequested,
14512
+ onClientInitialized
13950
14513
  ]);
13951
- (0, $3Sbms$useEffect)(()=>{
13952
- const startStreaming = async ()=>{
13953
- if (!options.greeting && !options.recorder?.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).joinRoom();
13954
- const state = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getState();
13955
- const peerId = state.peerId;
13956
- setPlan(state.plan);
13957
- setPermissions(state.permissions);
13958
- setSelfPeerId(peerId);
13959
- if (!options.recorder?.enabled && !options.greeting) try {
13960
- if (!options.headless) await (0, $15a01b611391c1e7$export$494039379563c94d)(options);
13961
- if (options.controls?.microphone?.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
13962
- if (options.controls?.camera?.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo();
13963
- setUserInteractionTriggered(true);
13964
- } catch (userInteractionError) {
13965
- setBlockedDevicesPopupOpen(true);
13966
- console.error("User interaction trigger failed", userInteractionError);
13967
- } finally{
13968
- setStreamState("streaming");
13969
- }
13970
- };
13971
- startStreaming();
13972
- }, []);
13973
14514
  (0, $3Sbms$useEffect)(()=>{
13974
14515
  const onEnterRoom = async (event)=>{
13975
14516
  setVideoRecording(event.detail.videoRecording || {
@@ -13983,21 +14524,38 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
13983
14524
  fontWeight: 600
13984
14525
  }
13985
14526
  });
13986
- if (!options.recorder?.enabled) setStreamState("streaming");
14527
+ if (recorderOptions?.enabled) setStreamState("recorder");
14528
+ else setStreamState("streaming");
13987
14529
  };
13988
14530
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener("enterRoom", onEnterRoom);
13989
14531
  return ()=>{
13990
14532
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener("enterRoom", onEnterRoom);
13991
14533
  };
13992
14534
  }, [
13993
- options,
14535
+ recorderOptions,
13994
14536
  t
13995
14537
  ]);
14538
+ (0, $3Sbms$useEffect)(()=>{
14539
+ if (isFirstRender) {
14540
+ if (options.token) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).init(options.token, {
14541
+ languageCode: options.language,
14542
+ flowToken: options.flowToken,
14543
+ recorder: options.recorder?.enabled,
14544
+ apiKey: options.apiKey,
14545
+ email: options.email,
14546
+ profile: options.profile,
14547
+ authKey: options.authKey
14548
+ }).catch((err)=>console.error(err));
14549
+ else setStreamState("expired");
14550
+ }
14551
+ }, [
14552
+ options,
14553
+ isFirstRender
14554
+ ]);
13996
14555
  return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$QueryClientProvider), {
13997
14556
  client: $26ed036cbc17809a$var$queryClient,
13998
14557
  children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039).Provider, {
13999
14558
  value: {
14000
- token: options.token || "",
14001
14559
  videoRecording: videoRecording,
14002
14560
  setVideoRecording: setVideoRecording,
14003
14561
  headless: Boolean(options.headless),
@@ -14035,9 +14593,9 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
14035
14593
  isAgent: isAgent,
14036
14594
  userInteractionTriggered: userInteractionTriggered,
14037
14595
  orientation: orientation,
14038
- flow: flow,
14039
- flowV0: flowV0,
14040
- hideSwitchToMobilePopup: options.hideSwitchToMobilePopup
14596
+ flow: flows.flow,
14597
+ flowV0: flows.flowV0,
14598
+ recorderOptions: recorderOptions
14041
14599
  },
14042
14600
  children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$ThemeProvider), {
14043
14601
  theme: styledTheme,
@@ -14047,7 +14605,6 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
14047
14605
  /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $4fb4815baa04b470$export$914ddf2021ea8ee6), {
14048
14606
  ref: streamUIContainerRef,
14049
14607
  children: [
14050
- streamState === "loading" && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $91d20ee7d2ade85c$export$669f6ea7d267feaf), {}),
14051
14608
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3a42b2ef7646d035$export$2e2bcd8739ae039), {}),
14052
14609
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Toaster), {
14053
14610
  duration: 3000,
@@ -14060,20 +14617,17 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options, flow: flow, flowV0:
14060
14617
  setBlockedDevicesPopupOpen(false);
14061
14618
  }
14062
14619
  }),
14063
- streamState === "greeting" && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $8f7af36c0532a6c4$export$2e2bcd8739ae039), {}),
14064
- streamState === "recorder" && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $d6943d128e6c8399$export$336a011955157f9a), {}),
14065
- (streamState === "streaming" || streamState === "loading") && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
14066
- children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $cce9fd41d8a55a18$export$74636703cfe1eecf), {
14067
- children: [
14068
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $c6a143d1088045e0$export$ed71079a84f20635), {}),
14069
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $f235befa4cdc42d6$export$2e2bcd8739ae039), {}),
14070
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $cdab47bb8796991e$export$2e2bcd8739ae039), {}),
14071
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $69a9c49ece80e773$export$2e2bcd8739ae039), {}),
14072
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $01986a58bfba8001$export$2e2bcd8739ae039), {})
14073
- ]
14074
- })
14075
- }),
14076
- (streamState === "ended" || streamState === "terminated" || streamState === "full" || streamState === "expired") && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $df41bfe6da05853a$export$2e2bcd8739ae039), {})
14620
+ streamState === "loading" ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $91d20ee7d2ade85c$export$669f6ea7d267feaf), {}) : streamState === "greeting" ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $8f7af36c0532a6c4$export$2e2bcd8739ae039), {}) : streamState === "recorder" ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $d6943d128e6c8399$export$336a011955157f9a), {}) : streamState === "streaming" ? /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $cce9fd41d8a55a18$export$74636703cfe1eecf), {
14621
+ children: [
14622
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $c6a143d1088045e0$export$ed71079a84f20635), {}),
14623
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $f235befa4cdc42d6$export$2e2bcd8739ae039), {}),
14624
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $cdab47bb8796991e$export$2e2bcd8739ae039), {}),
14625
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $69a9c49ece80e773$export$2e2bcd8739ae039), {}),
14626
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $01986a58bfba8001$export$2e2bcd8739ae039), {})
14627
+ ]
14628
+ }) : $26ed036cbc17809a$var$endViewStates.includes(streamState) ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $df41bfe6da05853a$export$2e2bcd8739ae039), {
14629
+ state: streamState
14630
+ }) : /*#__PURE__*/ (0, $3Sbms$jsx)((0, $91d20ee7d2ade85c$export$669f6ea7d267feaf), {})
14077
14631
  ]
14078
14632
  })
14079
14633
  ]
@@ -14085,17 +14639,9 @@ var $26ed036cbc17809a$export$2e2bcd8739ae039 = $26ed036cbc17809a$var$StreamUI;
14085
14639
 
14086
14640
 
14087
14641
 
14088
- // https://help.hotjar.com/hc/en-us/articles/360033640653-Identify-API-Reference#01G2A279ZXW4JT60NKXKX69G49
14089
- // prettier-ignore
14090
- // @ts-ignore
14091
- window.hj = window.hj || function() {
14092
- (hj.q = hj.q || []).push(arguments);
14093
- };
14094
-
14095
-
14096
14642
 
14097
14643
  var $1e2747ca72d0ab49$exports = {};
14098
- $1e2747ca72d0ab49$exports = "*, :before, :after, ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #93c5fd80;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n.container {\n width: 100%;\n}\n\n@media (width >= 640px) {\n .container {\n max-width: 640px;\n }\n}\n\n@media (width >= 768px) {\n .container {\n max-width: 768px;\n }\n}\n\n@media (width >= 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n\n@media (width >= 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n\n@media (width >= 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n\n.sr-only {\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden;\n}\n\n.pointer-events-auto {\n pointer-events: auto;\n}\n\n.visible {\n visibility: visible;\n}\n\n.invisible {\n visibility: hidden;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.inset-0 {\n inset: 0;\n}\n\n.inset-x-0 {\n left: 0;\n right: 0;\n}\n\n.inset-y-0 {\n top: 0;\n bottom: 0;\n}\n\n.-bottom-12 {\n bottom: -3rem;\n}\n\n.-left-12 {\n left: -3rem;\n}\n\n.-right-12 {\n right: -3rem;\n}\n\n.-top-12 {\n top: -3rem;\n}\n\n.bottom-0 {\n bottom: 0;\n}\n\n.bottom-2 {\n bottom: .5rem;\n}\n\n.left-0 {\n left: 0;\n}\n\n.left-1 {\n left: .25rem;\n}\n\n.left-1\\/2 {\n left: 50%;\n}\n\n.left-2 {\n left: .5rem;\n}\n\n.left-\\[50\\%\\] {\n left: 50%;\n}\n\n.right-0 {\n right: 0;\n}\n\n.right-1 {\n right: .25rem;\n}\n\n.right-2 {\n right: .5rem;\n}\n\n.right-6 {\n right: 1.5rem;\n}\n\n.top-0 {\n top: 0;\n}\n\n.top-1\\/2 {\n top: 50%;\n}\n\n.top-2 {\n top: .5rem;\n}\n\n.top-6 {\n top: 1.5rem;\n}\n\n.top-8 {\n top: 2rem;\n}\n\n.top-\\[50\\%\\] {\n top: 50%;\n}\n\n.top-auto {\n top: auto;\n}\n\n.z-40 {\n z-index: 40;\n}\n\n.z-50 {\n z-index: 50;\n}\n\n.z-\\[100\\] {\n z-index: 100;\n}\n\n.z-\\[150\\] {\n z-index: 150;\n}\n\n.-mx-1 {\n margin-left: -.25rem;\n margin-right: -.25rem;\n}\n\n.mx-1 {\n margin-left: .25rem;\n margin-right: .25rem;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.my-1 {\n margin-top: .25rem;\n margin-bottom: .25rem;\n}\n\n.-ml-4 {\n margin-left: -1rem;\n}\n\n.-mr-2 {\n margin-right: -.5rem;\n}\n\n.-mt-4 {\n margin-top: -1rem;\n}\n\n.mb-4 {\n margin-bottom: 1rem;\n}\n\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.mb-\\[9px\\] {\n margin-bottom: 9px;\n}\n\n.ml-1 {\n margin-left: .25rem;\n}\n\n.mr-2 {\n margin-right: .5rem;\n}\n\n.mr-2\\.5 {\n margin-right: .625rem;\n}\n\n.mr-9 {\n margin-right: 2.25rem;\n}\n\n.mt-1 {\n margin-top: .25rem;\n}\n\n.mt-2 {\n margin-top: .5rem;\n}\n\n.box-border {\n box-sizing: border-box;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.inline {\n display: inline;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.table {\n display: table;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.aspect-square {\n aspect-ratio: 1;\n}\n\n.h-1\\/3 {\n height: 33.3333%;\n}\n\n.h-10 {\n height: 2.5rem;\n}\n\n.h-12 {\n height: 3rem;\n}\n\n.h-14 {\n height: 3.5rem;\n}\n\n.h-16 {\n height: 4rem;\n}\n\n.h-2 {\n height: .5rem;\n}\n\n.h-3 {\n height: .75rem;\n}\n\n.h-4 {\n height: 1rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.h-9 {\n height: 2.25rem;\n}\n\n.h-\\[100px\\] {\n height: 100px;\n}\n\n.h-\\[16px\\] {\n height: 16px;\n}\n\n.h-\\[1px\\] {\n height: 1px;\n}\n\n.h-\\[200px\\] {\n height: 200px;\n}\n\n.h-\\[24px\\] {\n height: 24px;\n}\n\n.h-\\[36px\\] {\n height: 36px;\n}\n\n.h-\\[400px\\] {\n height: 400px;\n}\n\n.h-\\[45px\\] {\n height: 45px;\n}\n\n.h-\\[54px\\] {\n height: 54px;\n}\n\n.h-\\[70px\\] {\n height: 70px;\n}\n\n.h-\\[72px\\] {\n height: 72px;\n}\n\n.h-\\[8px\\] {\n height: 8px;\n}\n\n.h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n}\n\n.h-full {\n height: 100%;\n}\n\n.h-px {\n height: 1px;\n}\n\n.h-screen {\n height: 100vh;\n}\n\n.max-h-\\[180px\\] {\n max-height: 180px;\n}\n\n.max-h-\\[300px\\] {\n max-height: 300px;\n}\n\n.max-h-\\[70px\\] {\n max-height: 70px;\n}\n\n.max-h-\\[90\\%\\] {\n max-height: 90%;\n}\n\n.max-h-\\[90vh\\] {\n max-height: 90vh;\n}\n\n.max-h-screen {\n max-height: 100vh;\n}\n\n.min-h-0 {\n min-height: 0;\n}\n\n.min-h-9 {\n min-height: 2.25rem;\n}\n\n.min-h-\\[20px\\] {\n min-height: 20px;\n}\n\n.min-h-\\[80px\\] {\n min-height: 80px;\n}\n\n.w-1\\/3 {\n width: 33.3333%;\n}\n\n.w-10 {\n width: 2.5rem;\n}\n\n.w-12 {\n width: 3rem;\n}\n\n.w-16 {\n width: 4rem;\n}\n\n.w-2 {\n width: .5rem;\n}\n\n.w-3 {\n width: .75rem;\n}\n\n.w-3\\/4 {\n width: 75%;\n}\n\n.w-4 {\n width: 1rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-72 {\n width: 18rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.w-\\[100px\\] {\n width: 100px;\n}\n\n.w-\\[16px\\] {\n width: 16px;\n}\n\n.w-\\[24px\\] {\n width: 24px;\n}\n\n.w-\\[334px\\] {\n width: 334px;\n}\n\n.w-\\[36px\\] {\n width: 36px;\n}\n\n.w-\\[400px\\] {\n width: 400px;\n}\n\n.w-\\[42px\\] {\n width: 42px;\n}\n\n.w-\\[45px\\] {\n width: 45px;\n}\n\n.w-\\[54px\\] {\n width: 54px;\n}\n\n.w-\\[70px\\] {\n width: 70px;\n}\n\n.w-\\[72px\\] {\n width: 72px;\n}\n\n.w-\\[8px\\] {\n width: 8px;\n}\n\n.w-auto {\n width: auto;\n}\n\n.w-full {\n width: 100%;\n}\n\n.w-max {\n width: max-content;\n}\n\n.min-w-0 {\n min-width: 0;\n}\n\n.min-w-\\[144px\\] {\n min-width: 144px;\n}\n\n.min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n}\n\n.min-w-full {\n min-width: 100%;\n}\n\n.max-w-\\[315px\\] {\n max-width: 315px;\n}\n\n.max-w-\\[400px\\] {\n max-width: 400px;\n}\n\n.max-w-\\[500px\\] {\n max-width: 500px;\n}\n\n.max-w-\\[70px\\] {\n max-width: 70px;\n}\n\n.max-w-\\[800px\\] {\n max-width: 800px;\n}\n\n.max-w-\\[90\\%\\] {\n max-width: 90%;\n}\n\n.max-w-\\[90vw\\] {\n max-width: 90vw;\n}\n\n.max-w-full {\n max-width: 100%;\n}\n\n.flex-1 {\n flex: 1;\n}\n\n.flex-shrink-0, .shrink-0 {\n flex-shrink: 0;\n}\n\n.flex-grow, .grow {\n flex-grow: 1;\n}\n\n.grow-0 {\n flex-grow: 0;\n}\n\n.basis-full {\n flex-basis: 100%;\n}\n\n.caption-bottom {\n caption-side: bottom;\n}\n\n.border-collapse {\n border-collapse: collapse;\n}\n\n.-translate-x-1\\/2 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -50%;\n}\n\n.-translate-y-1\\/2 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -50%;\n}\n\n.translate-x-0 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 0px;\n}\n\n.translate-x-0\\.5 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: .125rem;\n}\n\n.translate-x-\\[-50\\%\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -50%;\n}\n\n.translate-y-0 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: 0px;\n}\n\n.translate-y-\\[-50\\%\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -50%;\n}\n\n.-scale-x-\\[1\\], .scale-x-\\[-1\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-scale-x: -1;\n}\n\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n.animate-pulse {\n animation: 2s cubic-bezier(.4, 0, .6, 1) infinite pulse;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.animate-spin {\n animation: 1s linear infinite spin;\n}\n\n.cursor-default {\n cursor: default;\n}\n\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.select-none {\n -webkit-user-select: none;\n user-select: none;\n}\n\n.resize {\n resize: both;\n}\n\n.appearance-none {\n appearance: none;\n}\n\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.flex-row {\n flex-direction: row;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-start {\n align-items: flex-start;\n}\n\n.items-end {\n align-items: flex-end;\n}\n\n.items-center {\n align-items: center;\n}\n\n.items-stretch {\n align-items: stretch;\n}\n\n.justify-end {\n justify-content: flex-end;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-0 {\n gap: 0;\n}\n\n.gap-0\\.5 {\n gap: .125rem;\n}\n\n.gap-1 {\n gap: .25rem;\n}\n\n.gap-1\\.5 {\n gap: .375rem;\n}\n\n.gap-12 {\n gap: 3rem;\n}\n\n.gap-2 {\n gap: .5rem;\n}\n\n.gap-2\\.5 {\n gap: .625rem;\n}\n\n.gap-3 {\n gap: .75rem;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.gap-6 {\n gap: 1.5rem;\n}\n\n.gap-8 {\n gap: 2rem;\n}\n\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(.25rem * var(--tw-space-x-reverse));\n margin-left: calc(.25rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n}\n\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(.25rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(.375rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-5 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.self-center {\n align-self: center;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-visible {\n overflow: visible;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.whitespace-nowrap {\n white-space: nowrap;\n}\n\n.whitespace-pre-line {\n white-space: pre-line;\n}\n\n.rounded {\n border-radius: .25rem;\n}\n\n.rounded-2xl {\n border-radius: 1rem;\n}\n\n.rounded-\\[10px\\] {\n border-radius: 10px;\n}\n\n.rounded-\\[3px\\] {\n border-radius: 3px;\n}\n\n.rounded-\\[4px\\] {\n border-radius: 4px;\n}\n\n.rounded-\\[6px\\] {\n border-radius: 6px;\n}\n\n.rounded-\\[8px\\] {\n border-radius: 8px;\n}\n\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-lg {\n border-radius: .5rem;\n}\n\n.rounded-md {\n border-radius: .375rem;\n}\n\n.rounded-xl {\n border-radius: .75rem;\n}\n\n.rounded-b-3xl {\n border-bottom-right-radius: 1.5rem;\n border-bottom-left-radius: 1.5rem;\n}\n\n.rounded-t-3xl {\n border-top-left-radius: 1.5rem;\n border-top-right-radius: 1.5rem;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-b {\n border-bottom-width: 1px;\n}\n\n.border-l {\n border-left-width: 1px;\n}\n\n.border-r {\n border-right-width: 1px;\n}\n\n.border-t {\n border-top-width: 1px;\n}\n\n.border-amber-700 {\n border-color: rgb(var(--color-amber-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-blue-700 {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-1000 {\n border-color: rgb(var(--color-gray-1000) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-200 {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-600 {\n border-color: rgb(var(--color-gray-600) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-red-700 {\n border-color: rgb(var(--color-red-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-white\\/10 {\n border-color: #ffffff1a;\n}\n\n.bg-\\[\\#292929\\] {\n background-color: rgb(41 41 41 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-100 {\n background-color: rgb(var(--color-amber-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-200 {\n background-color: rgb(var(--color-amber-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-700 {\n background-color: rgb(var(--color-amber-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-black\\/25 {\n background-color: #00000040;\n}\n\n.bg-black\\/60 {\n background-color: #0009;\n}\n\n.bg-blue-100 {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-blue-300 {\n background-color: rgb(var(--color-blue-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-blue-700 {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-bronze-300 {\n background-color: rgb(var(--color-bronze-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-100 {\n background-color: rgb(var(--color-brown-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-300 {\n background-color: rgb(var(--color-brown-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-700 {\n background-color: rgb(var(--color-brown-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-100 {\n background-color: rgb(var(--color-crimson-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-300 {\n background-color: rgb(var(--color-crimson-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-700 {\n background-color: rgb(var(--color-crimson-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-100 {\n background-color: rgb(var(--color-cyan-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-300 {\n background-color: rgb(var(--color-cyan-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-700 {\n background-color: rgb(var(--color-cyan-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gold-300 {\n background-color: rgb(var(--color-gold-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-grass-300 {\n background-color: rgb(var(--color-grass-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-1000 {\n background-color: rgb(var(--color-gray-1000) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-1000\\/25 {\n background-color: rgb(var(--color-gray-1000) / .25);\n}\n\n.bg-gray-1000\\/80 {\n background-color: rgb(var(--color-gray-1000) / .8);\n}\n\n.bg-gray-200 {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-25 {\n background-color: rgb(var(--color-gray-25) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-25\\/50 {\n background-color: rgb(var(--color-gray-25) / .5);\n}\n\n.bg-gray-300 {\n background-color: rgb(var(--color-gray-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-600 {\n background-color: rgb(var(--color-gray-600) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-900 {\n background-color: rgb(var(--color-gray-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-100 {\n background-color: rgb(var(--color-green-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-300 {\n background-color: rgb(var(--color-green-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-700 {\n background-color: rgb(var(--color-green-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-indigo-300 {\n background-color: rgb(var(--color-indigo-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-lime-300 {\n background-color: rgb(var(--color-lime-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-orange-100 {\n background-color: rgb(var(--color-orange-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-orange-700 {\n background-color: rgb(var(--color-orange-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-plum-300 {\n background-color: rgb(var(--color-plum-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-purple-300 {\n background-color: rgb(var(--color-purple-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-100 {\n background-color: rgb(var(--color-red-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-300 {\n background-color: rgb(var(--color-red-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-700 {\n background-color: rgb(var(--color-red-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-700\\/60 {\n background-color: rgb(var(--color-red-700) / .6);\n}\n\n.bg-teal-100 {\n background-color: rgb(var(--color-teal-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-teal-300 {\n background-color: rgb(var(--color-teal-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-teal-700 {\n background-color: rgb(var(--color-teal-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-transparent {\n background-color: #0000;\n}\n\n.bg-violet-100 {\n background-color: rgb(var(--color-violet-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-violet-300 {\n background-color: rgb(var(--color-violet-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-violet-700 {\n background-color: rgb(var(--color-violet-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-white {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-yellow-300 {\n background-color: rgb(var(--color-yellow-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cover {\n background-size: cover;\n}\n\n.bg-center {\n background-position: center;\n}\n\n.object-contain {\n object-fit: contain;\n}\n\n.object-cover {\n object-fit: cover;\n}\n\n.p-0 {\n padding: 0;\n}\n\n.p-1 {\n padding: .25rem;\n}\n\n.p-1\\.5 {\n padding: .375rem;\n}\n\n.p-2 {\n padding: .5rem;\n}\n\n.p-2\\.5 {\n padding: .625rem;\n}\n\n.p-3 {\n padding: .75rem;\n}\n\n.p-4 {\n padding: 1rem;\n}\n\n.p-5 {\n padding: 1.25rem;\n}\n\n.p-6 {\n padding: 1.5rem;\n}\n\n.p-8 {\n padding: 2rem;\n}\n\n.p-\\[11px\\] {\n padding: 11px;\n}\n\n.px-2 {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.px-2\\.5 {\n padding-left: .625rem;\n padding-right: .625rem;\n}\n\n.px-3 {\n padding-left: .75rem;\n padding-right: .75rem;\n}\n\n.px-3\\.5 {\n padding-left: .875rem;\n padding-right: .875rem;\n}\n\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.py-0\\.5 {\n padding-top: .125rem;\n padding-bottom: .125rem;\n}\n\n.py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n.py-1\\.5 {\n padding-top: .375rem;\n padding-bottom: .375rem;\n}\n\n.py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n.py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.py-2\\.5 {\n padding-top: .625rem;\n padding-bottom: .625rem;\n}\n\n.py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.pb-2 {\n padding-bottom: .5rem;\n}\n\n.pb-\\[9px\\] {\n padding-bottom: 9px;\n}\n\n.pl-2 {\n padding-left: .5rem;\n}\n\n.pl-4 {\n padding-left: 1rem;\n}\n\n.pr-2 {\n padding-right: .5rem;\n}\n\n.pt-1 {\n padding-top: .25rem;\n}\n\n.pt-10 {\n padding-top: 2.5rem;\n}\n\n.pt-4 {\n padding-top: 1rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.align-middle {\n vertical-align: middle;\n}\n\n.text-2xl {\n letter-spacing: -.02em;\n font-size: 24px;\n line-height: 32px;\n}\n\n.text-3xl {\n letter-spacing: -.02em;\n font-size: 30px;\n line-height: 38px;\n}\n\n.text-\\[10px\\] {\n font-size: 10px;\n}\n\n.text-\\[112px\\] {\n font-size: 112px;\n}\n\n.text-\\[30px\\] {\n font-size: 30px;\n}\n\n.text-lg {\n letter-spacing: -.02em;\n font-size: 18px;\n line-height: 22px;\n}\n\n.text-md {\n letter-spacing: -.02em;\n font-size: 16px;\n line-height: 20px;\n}\n\n.text-sm {\n letter-spacing: -.02em;\n font-size: 14px;\n line-height: 20px;\n}\n\n.text-xs {\n letter-spacing: -.02em;\n font-size: 12px;\n line-height: 16px;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.font-normal {\n font-weight: 400;\n}\n\n.font-semibold {\n font-weight: 600;\n}\n\n.leading-none {\n line-height: 1;\n}\n\n.text-\\[\\#707070\\] {\n color: rgb(112 112 112 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-amber-700 {\n color: rgb(var(--color-amber-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-blue-700 {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-bronze-700 {\n color: rgb(var(--color-bronze-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-brown-700 {\n color: rgb(var(--color-brown-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-crimson-700 {\n color: rgb(var(--color-crimson-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-current {\n color: currentColor;\n}\n\n.text-cyan-700 {\n color: rgb(var(--color-cyan-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gold-700 {\n color: rgb(var(--color-gold-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-grass-700 {\n color: rgb(var(--color-grass-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-1000 {\n color: rgb(var(--color-gray-1000) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-700 {\n color: rgb(var(--color-gray-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-900 {\n color: rgb(var(--color-gray-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-green-700 {\n color: rgb(var(--color-green-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-indigo-700 {\n color: rgb(var(--color-indigo-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-lime-700 {\n color: rgb(var(--color-lime-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-orange-700 {\n color: rgb(var(--color-orange-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-plum-700 {\n color: rgb(var(--color-plum-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-primary {\n color: rgb(29 28 32 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-purple-700 {\n color: rgb(var(--color-purple-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-red-700 {\n color: rgb(var(--color-red-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-teal-700 {\n color: rgb(var(--color-teal-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-violet-700 {\n color: rgb(var(--color-violet-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-white {\n color: rgb(255 255 255 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-white\\/80 {\n color: #fffc;\n}\n\n.text-yellow-700 {\n color: rgb(var(--color-yellow-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.underline {\n text-decoration-line: underline;\n}\n\n.underline-offset-8 {\n text-underline-offset: 8px;\n}\n\n.antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.opacity-50 {\n opacity: .5;\n}\n\n.shadow-dropdown-sm {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0px 1px 2px 0px #1018280f, 0px 1px 3px 0px #1018281a;\n --tw-shadow-colored: 0px 1px 2px 0px var(--tw-shadow-color), 0px 1px 3px 0px var(--tw-shadow-color);\n}\n\n.shadow-lg {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n}\n\n.shadow-md {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n}\n\n.shadow-sm {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 1px 2px 0 #0000000d;\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n}\n\n.outline-none {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.outline {\n outline-style: solid;\n}\n\n.ring-1 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-2 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-4 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-\\[3px\\] {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-inset {\n --tw-ring-inset: inset;\n}\n\n.ring-amber-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-amber-300) / var(--tw-ring-opacity));\n}\n\n.ring-blue-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-300) / var(--tw-ring-opacity));\n}\n\n.ring-blue-700 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-700) / var(--tw-ring-opacity));\n}\n\n.ring-brown-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-brown-300) / var(--tw-ring-opacity));\n}\n\n.ring-crimson-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-crimson-300) / var(--tw-ring-opacity));\n}\n\n.ring-cyan-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-cyan-300) / var(--tw-ring-opacity));\n}\n\n.ring-gray-200 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-gray-200) / var(--tw-ring-opacity));\n}\n\n.ring-green-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-green-300) / var(--tw-ring-opacity));\n}\n\n.ring-orange-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-orange-300) / var(--tw-ring-opacity));\n}\n\n.ring-red-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-300) / var(--tw-ring-opacity));\n}\n\n.ring-teal-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-teal-300) / var(--tw-ring-opacity));\n}\n\n.ring-violet-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-violet-300) / var(--tw-ring-opacity));\n}\n\n.ring-white {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity));\n}\n\n.ring-white\\/20 {\n --tw-ring-color: #fff3;\n}\n\n.ring-offset-0 {\n --tw-ring-offset-width: 0px;\n}\n\n.ring-offset-white {\n --tw-ring-offset-color: #fff;\n}\n\n.blur {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n --tw-blur: blur(8px);\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.backdrop-blur-\\[30px\\] {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(30px);\n}\n\n.backdrop-blur-lg {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(16px);\n}\n\n.backdrop-blur-sm {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(4px);\n}\n\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-all {\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-transform {\n transition-property: transform;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.duration-200 {\n transition-duration: .2s;\n}\n\n.duration-500 {\n transition-duration: .5s;\n}\n\n.duration-700 {\n transition-duration: .7s;\n}\n\n.ease-in-out {\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.ease-linear {\n transition-timing-function: linear;\n}\n\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, .2, 1);\n}\n\n.will-change-transform {\n will-change: transform;\n}\n\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n.animate-in {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n}\n\n.fade-in, .fade-in-0 {\n --tw-enter-opacity: 0;\n}\n\n.fade-out {\n --tw-exit-opacity: 0;\n}\n\n.zoom-in-95 {\n --tw-enter-scale: .95;\n}\n\n.duration-200 {\n animation-duration: .2s;\n}\n\n.duration-500 {\n animation-duration: .5s;\n}\n\n.duration-700 {\n animation-duration: .7s;\n}\n\n.ease-in-out {\n animation-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.ease-linear {\n animation-timing-function: linear;\n}\n\n.ease-out {\n animation-timing-function: cubic-bezier(0, 0, .2, 1);\n}\n\n.paused {\n animation-play-state: paused;\n}\n\n.inter {\n font-family: Inter, sans-serif;\n}\n\n@supports (font-variation-settings: normal) {\n .inter {\n font-family: Inter var, sans-serif;\n }\n}\n\n.pulse-red-700 {\n animation: 2s infinite pulse-red-700;\n transform: scale(1);\n box-shadow: 0 0 #e5484d;\n}\n\n@keyframes pulse-red-700 {\n 0% {\n transform: scale(.95);\n box-shadow: 0 0 #e5484db3;\n }\n\n 70% {\n transform: scale(1);\n box-shadow: 0 0 0 6px #e5484d00;\n }\n\n 100% {\n transform: scale(.95);\n box-shadow: 0 0 #e5484d00;\n }\n}\n\n.placeholder\\:text-gray-700::placeholder {\n color: rgb(var(--color-gray-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.placeholder\\:text-gray-900::placeholder {\n color: rgb(var(--color-gray-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.focus-within\\:relative:focus-within {\n position: relative;\n}\n\n.focus-within\\:z-20:focus-within {\n z-index: 20;\n}\n\n.focus-within\\:border-gray-200:focus-within {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.focus-within\\:bg-gray-100:focus-within {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.focus-within\\:outline:focus-within {\n outline-style: solid;\n}\n\n.focus-within\\:outline-\\[2px\\]:focus-within {\n outline-width: 2px;\n}\n\n.focus-within\\:outline-offset-\\[2px\\]:focus-within {\n outline-offset: 2px;\n}\n\n.focus-within\\:outline-blue-300:focus-within {\n outline-color: rgb(var(--color-blue-300) / 1);\n}\n\n.focus-within\\:outline-red-700:focus-within {\n outline-color: rgb(var(--color-red-700) / 1);\n}\n\n.hover\\:bg-black\\/10:hover {\n background-color: #0000001a;\n}\n\n.hover\\:bg-blue-100:hover {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-50:hover {\n background-color: rgb(var(--color-blue-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-700:hover {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-800:hover {\n background-color: rgb(var(--color-blue-800) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-100:hover {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-200:hover {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-25\\/60:hover {\n background-color: rgb(var(--color-gray-25) / .6);\n}\n\n.hover\\:bg-gray-50:hover {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-red-100:hover {\n background-color: rgb(var(--color-red-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-red-800:hover {\n background-color: rgb(var(--color-red-800) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:text-blue-700:hover {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.hover\\:text-white:hover {\n color: rgb(255 255 255 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n\n.focus\\:bg-gray-100:focus {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.focus\\:outline-none:focus {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.focus\\:ring-1:focus {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus\\:ring-2:focus {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n\n.focus-visible\\:outline-none:focus-visible {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.focus-visible\\:ring-2:focus-visible {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus-visible\\:ring-blue-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-blue-300:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-300) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-blue-700:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-700) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-gray-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-gray-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-red-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-red-700:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-700) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n\n.active\\:bg-blue-200:active {\n background-color: rgb(var(--color-blue-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-blue-900:active {\n background-color: rgb(var(--color-blue-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-100:active {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-200:active {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-25\\/70:active {\n background-color: rgb(var(--color-gray-25) / .7);\n}\n\n.active\\:bg-gray-500:active {\n background-color: rgb(var(--color-gray-500) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-red-200:active {\n background-color: rgb(var(--color-red-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-red-900:active {\n background-color: rgb(var(--color-red-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:text-blue-700:active {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.active\\:text-blue-900:active {\n color: rgb(var(--color-blue-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n\n.disabled\\:opacity-40:disabled {\n opacity: .4;\n}\n\n.disabled\\:opacity-50:disabled {\n opacity: .5;\n}\n\n.group:focus-within .group-focus-within\\:bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group:hover .group-hover\\:bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group:active .group-active\\:bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.peer:disabled ~ .peer-disabled\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.peer:disabled ~ .peer-disabled\\:opacity-70 {\n opacity: .7;\n}\n\n.aria-selected\\:bg-blue-100[aria-selected=\"true\"] {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.aria-selected\\:text-blue-700[aria-selected=\"true\"] {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.aria-selected\\:opacity-100[aria-selected=\"true\"] {\n opacity: 1;\n}\n\n.data-\\[disabled\\]\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n\n.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=\"bottom\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: .25rem;\n}\n\n.data-\\[side\\=left\\]\\:-translate-x-1[data-side=\"left\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -.25rem;\n}\n\n.data-\\[side\\=right\\]\\:translate-x-1[data-side=\"right\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: .25rem;\n}\n\n.data-\\[side\\=top\\]\\:-translate-y-1[data-side=\"top\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -.25rem;\n}\n\n.data-\\[state\\=checked\\]\\:translate-x-5[data-state=\"checked\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 1.25rem;\n}\n\n.data-\\[swipe\\=cancel\\]\\:translate-x-0[data-swipe=\"cancel\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 0px;\n}\n\n.data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\][data-swipe=\"end\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n}\n\n.data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\][data-swipe=\"move\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n}\n\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n\n to {\n height: 0;\n }\n}\n\n.data-\\[state\\=closed\\]\\:animate-accordion-up[data-state=\"closed\"] {\n animation: .2s ease-out accordion-up;\n}\n\n@keyframes accordion-down {\n from {\n height: 0;\n }\n\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n\n.data-\\[state\\=open\\]\\:animate-accordion-down[data-state=\"open\"] {\n animation: .2s ease-out accordion-down;\n}\n\n.data-\\[disabled\\]\\:cursor-not-allowed[data-disabled] {\n cursor: not-allowed;\n}\n\n.data-\\[state\\=checked\\]\\:border-blue-700[data-state=\"checked\"], .data-\\[state\\=on\\]\\:border-blue-700[data-state=\"on\"] {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.data-\\[disabled\\]\\:data-\\[state\\=unchecked\\]\\:bg-gray-300[data-state=\"unchecked\"][data-disabled] {\n background-color: rgb(var(--color-gray-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[selected\\=true\\]\\:bg-gray-50[data-selected=\"true\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-amber-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-amber-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-blue-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-bronze-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-bronze-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-brown-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-brown-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-crimson-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-crimson-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-cyan-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-cyan-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-gold-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-gold-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-grass-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-grass-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-gray-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-gray-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-green-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-green-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-indigo-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-indigo-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-lime-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-lime-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-plum-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-plum-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-purple-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-purple-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-red-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-red-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-teal-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-teal-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-violet-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-violet-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-yellow-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-yellow-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:bg-white[data-state=\"active\"] {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-blue-700[data-state=\"checked\"] {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-gray-50[data-state=\"checked\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-white[data-state=\"checked\"] {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=selected\\]\\:bg-gray-50[data-state=\"selected\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:text-blue-700[data-state=\"active\"] {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:text-gray-25[data-state=\"active\"] {\n color: rgb(var(--color-gray-25) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.data-\\[disabled\\]\\:opacity-40[data-disabled] {\n opacity: .4;\n}\n\n.data-\\[disabled\\]\\:opacity-50[data-disabled] {\n opacity: .5;\n}\n\n.data-\\[state\\=active\\]\\:shadow-sm[data-state=\"active\"] {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 1px 2px 0 #0000000d;\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n}\n\n.data-\\[swipe\\=move\\]\\:transition-none[data-swipe=\"move\"] {\n transition-property: none;\n}\n\n.data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n transition-duration: .3s;\n}\n\n.data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n transition-duration: .5s;\n}\n\n.data-\\[state\\=open\\]\\:animate-in[data-state=\"open\"] {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n}\n\n.data-\\[state\\=closed\\]\\:animate-out[data-state=\"closed\"], .data-\\[swipe\\=end\\]\\:animate-out[data-swipe=\"end\"] {\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n animation-name: exit;\n animation-duration: .15s;\n}\n\n.data-\\[state\\=closed\\]\\:fade-out[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:fade-out-0[data-state=\"closed\"] {\n --tw-exit-opacity: 0;\n}\n\n.data-\\[state\\=closed\\]\\:fade-out-80[data-state=\"closed\"] {\n --tw-exit-opacity: .8;\n}\n\n.data-\\[state\\=open\\]\\:fade-in-0[data-state=\"open\"] {\n --tw-enter-opacity: 0;\n}\n\n.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=\"closed\"] {\n --tw-exit-scale: .95;\n}\n\n.data-\\[state\\=open\\]\\:zoom-in-95[data-state=\"open\"] {\n --tw-enter-scale: .95;\n}\n\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=\"bottom\"] {\n --tw-enter-translate-y: -.5rem;\n}\n\n.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=\"left\"] {\n --tw-enter-translate-x: .5rem;\n}\n\n.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=\"right\"] {\n --tw-enter-translate-x: -.5rem;\n}\n\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=\"top\"] {\n --tw-enter-translate-y: .5rem;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:slide-out-to-bottom-\\[100\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-y: 100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-left[data-state=\"closed\"] {\n --tw-exit-translate-x: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:slide-out-to-left-\\[50\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-x: -50%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-right[data-state=\"closed\"] {\n --tw-exit-translate-x: 100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-top[data-state=\"closed\"] {\n --tw-exit-translate-y: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-y: -48%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-bottom-\\[100\\%\\][data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-left[data-state=\"open\"] {\n --tw-enter-translate-x: -100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-left-\\[50\\%\\][data-state=\"open\"] {\n --tw-enter-translate-x: -50%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-right[data-state=\"open\"] {\n --tw-enter-translate-x: 100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state=\"open\"] {\n --tw-enter-translate-y: -48%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top-full[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n animation-duration: .3s;\n}\n\n.data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n animation-duration: .5s;\n}\n\n.group[data-state=\"open\"] .group-data-\\[state\\=open\\]\\:rotate-180 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-rotate: 180deg;\n}\n\n.group[data-disabled] .group-data-\\[disabled\\]\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.group[data-state=\"on\"] .group-data-\\[state\\=on\\]\\:border-blue-700 {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.group[data-state=\"checked\"] .group-data-\\[state\\=checked\\]\\:bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group[data-state=\"off\"] .group-data-\\[state\\=off\\]\\:bg-transparent {\n background-color: #0000;\n}\n\n.group[data-state=\"off\"] .group-data-\\[state\\=off\\]\\:text-transparent {\n color: #0000;\n}\n\n.group[data-disabled] .group-data-\\[disabled\\]\\:opacity-50 {\n opacity: .5;\n}\n\n@media not all and (width >= 1024px) {\n .max-lg\\:mt-8 {\n margin-top: 2rem;\n }\n\n .max-lg\\:hidden {\n display: none;\n }\n\n .max-lg\\:h-\\[250px\\] {\n height: 250px;\n }\n\n .max-lg\\:w-full {\n width: 100%;\n }\n\n .max-lg\\:flex-col {\n flex-direction: column;\n }\n}\n\n@media not all and (width >= 640px) {\n .max-sm\\:gap-4 {\n gap: 1rem;\n }\n\n .max-sm\\:p-4 {\n padding: 1rem;\n }\n}\n\n@media (width >= 640px) {\n .sm\\:mt-0 {\n margin-top: 0;\n }\n\n .sm\\:w-1\\/2 {\n width: 50%;\n }\n\n .sm\\:max-w-sm {\n max-width: 24rem;\n }\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:flex-col {\n flex-direction: column;\n }\n\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n\n .sm\\:justify-center {\n justify-content: center;\n }\n\n .sm\\:space-x-2 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(.5rem * var(--tw-space-x-reverse));\n margin-left: calc(.5rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n }\n\n .sm\\:space-x-4 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(1rem * var(--tw-space-x-reverse));\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n }\n\n .sm\\:space-y-0 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0px * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n }\n\n .data-\\[state\\=open\\]\\:sm\\:slide-in-from-bottom-full[data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n}\n\n@media (width >= 768px) {\n .md\\:w-\\[334px\\] {\n width: 334px;\n }\n\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:w-screen {\n width: 100vw;\n }\n\n .md\\:max-w-\\[420px\\] {\n max-width: 420px;\n }\n\n .md\\:gap-4 {\n gap: 1rem;\n }\n}\n\n@media (width >= 1024px) {\n .lg\\:flex-col {\n flex-direction: column;\n }\n\n .lg\\:items-center {\n align-items: center;\n }\n\n .lg\\:gap-2 {\n gap: .5rem;\n }\n\n .lg\\:gap-8 {\n gap: 2rem;\n }\n\n .lg\\:rounded-lg {\n border-radius: .5rem;\n }\n\n .lg\\:border {\n border-width: 1px;\n }\n\n .lg\\:border-gray-200 {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n }\n\n .lg\\:bg-pattern {\n background-image: radial-gradient(50% 50%, #006aff33 0%, #006aff00 100%), linear-gradient(#0000 0%, #fff 100%), linear-gradient(0deg, #0000 0%, #ffffffbf 100%), url(\"data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M40 40V41H41V40H40ZM39 0V40H41V0H39ZM40 39H0V41H40V39Z' fill='%23E8E8E8' mask='url(%23path-1-inside-1_124_242)'/%3E%3C/svg%3E\");\n }\n\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n\n .lg\\:text-center {\n text-align: center;\n }\n\n .lg\\:text-4xl {\n letter-spacing: -.02em;\n font-size: 36px;\n line-height: 44px;\n }\n}\n\n@media (width >= 1280px) {\n .xl\\:rounded-none {\n border-radius: 0;\n }\n}\n\n.\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:bg-blue-100:has([aria-selected]) {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.first\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-l-md:has([aria-selected]):first-child {\n border-top-left-radius: .375rem;\n border-bottom-left-radius: .375rem;\n}\n\n.last\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-r-md:has([aria-selected]):last-child {\n border-top-right-radius: .375rem;\n border-bottom-right-radius: .375rem;\n}\n\n.\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0:has([role=\"checkbox\"]) {\n padding-right: 0;\n}\n\n.\\[\\&\\:not\\(\\[aria-selected\\]\\)\\]\\:hover\\:bg-gray-100:hover:not([aria-selected]) {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&\\>\\*\\]\\:fill-white > * {\n fill: #fff;\n}\n\n.\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] > [role=\"checkbox\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: 2px;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 [cmdk-group-heading] {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 [cmdk-group-heading] {\n padding-top: .375rem;\n padding-bottom: .375rem;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-sm [cmdk-group-heading] {\n letter-spacing: -.02em;\n font-size: 14px;\n line-height: 20px;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium [cmdk-group-heading] {\n font-weight: 500;\n}\n\n.\\[\\&_tr\\:active\\]\\:bg-gray-50 tr:active, .\\[\\&_tr\\:hover\\:active\\]\\:bg-gray-50 tr:hover:active {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&_tr\\:hover\\]\\:bg-gray-25 tr:hover {\n background-color: rgb(var(--color-gray-25) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&_tr\\:last-child\\]\\:border-0 tr:last-child {\n border-width: 0;\n}\n\n.\\[\\&_tr\\]\\:border-b tr {\n border-bottom-width: 1px;\n}\n";
14644
+ $1e2747ca72d0ab49$exports = "*, :before, :after, ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #93c5fd80;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n.container {\n width: 100%;\n}\n\n@media (width >= 640px) {\n .container {\n max-width: 640px;\n }\n}\n\n@media (width >= 768px) {\n .container {\n max-width: 768px;\n }\n}\n\n@media (width >= 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n\n@media (width >= 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n\n@media (width >= 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n\n.sr-only {\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden;\n}\n\n.pointer-events-auto {\n pointer-events: auto;\n}\n\n.visible {\n visibility: visible;\n}\n\n.invisible {\n visibility: hidden;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.inset-0 {\n inset: 0;\n}\n\n.inset-x-0 {\n left: 0;\n right: 0;\n}\n\n.inset-y-0 {\n top: 0;\n bottom: 0;\n}\n\n.-bottom-12 {\n bottom: -3rem;\n}\n\n.-left-12 {\n left: -3rem;\n}\n\n.-right-12 {\n right: -3rem;\n}\n\n.-top-12 {\n top: -3rem;\n}\n\n.bottom-0 {\n bottom: 0;\n}\n\n.bottom-2 {\n bottom: .5rem;\n}\n\n.left-0 {\n left: 0;\n}\n\n.left-1 {\n left: .25rem;\n}\n\n.left-1\\/2 {\n left: 50%;\n}\n\n.left-2 {\n left: .5rem;\n}\n\n.left-\\[50\\%\\] {\n left: 50%;\n}\n\n.right-0 {\n right: 0;\n}\n\n.right-1 {\n right: .25rem;\n}\n\n.right-2 {\n right: .5rem;\n}\n\n.right-6 {\n right: 1.5rem;\n}\n\n.top-0 {\n top: 0;\n}\n\n.top-1\\/2 {\n top: 50%;\n}\n\n.top-2 {\n top: .5rem;\n}\n\n.top-6 {\n top: 1.5rem;\n}\n\n.top-8 {\n top: 2rem;\n}\n\n.top-\\[50\\%\\] {\n top: 50%;\n}\n\n.top-auto {\n top: auto;\n}\n\n.z-40 {\n z-index: 40;\n}\n\n.z-50 {\n z-index: 50;\n}\n\n.z-\\[100\\] {\n z-index: 100;\n}\n\n.z-\\[150\\] {\n z-index: 150;\n}\n\n.-mx-1 {\n margin-left: -.25rem;\n margin-right: -.25rem;\n}\n\n.mx-1 {\n margin-left: .25rem;\n margin-right: .25rem;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.my-1 {\n margin-top: .25rem;\n margin-bottom: .25rem;\n}\n\n.-ml-4 {\n margin-left: -1rem;\n}\n\n.-mr-2 {\n margin-right: -.5rem;\n}\n\n.-mt-4 {\n margin-top: -1rem;\n}\n\n.mb-2 {\n margin-bottom: .5rem;\n}\n\n.mb-4 {\n margin-bottom: 1rem;\n}\n\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.mb-\\[9px\\] {\n margin-bottom: 9px;\n}\n\n.ml-1 {\n margin-left: .25rem;\n}\n\n.mr-2 {\n margin-right: .5rem;\n}\n\n.mr-2\\.5 {\n margin-right: .625rem;\n}\n\n.mr-9 {\n margin-right: 2.25rem;\n}\n\n.mt-1 {\n margin-top: .25rem;\n}\n\n.mt-2 {\n margin-top: .5rem;\n}\n\n.box-border {\n box-sizing: border-box;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.inline {\n display: inline;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.table {\n display: table;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.aspect-square {\n aspect-ratio: 1;\n}\n\n.h-1\\/3 {\n height: 33.3333%;\n}\n\n.h-10 {\n height: 2.5rem;\n}\n\n.h-12 {\n height: 3rem;\n}\n\n.h-14 {\n height: 3.5rem;\n}\n\n.h-16 {\n height: 4rem;\n}\n\n.h-2 {\n height: .5rem;\n}\n\n.h-3 {\n height: .75rem;\n}\n\n.h-4 {\n height: 1rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.h-9 {\n height: 2.25rem;\n}\n\n.h-\\[100px\\] {\n height: 100px;\n}\n\n.h-\\[16px\\] {\n height: 16px;\n}\n\n.h-\\[1px\\] {\n height: 1px;\n}\n\n.h-\\[200px\\] {\n height: 200px;\n}\n\n.h-\\[24px\\] {\n height: 24px;\n}\n\n.h-\\[36px\\] {\n height: 36px;\n}\n\n.h-\\[400px\\] {\n height: 400px;\n}\n\n.h-\\[45px\\] {\n height: 45px;\n}\n\n.h-\\[54px\\] {\n height: 54px;\n}\n\n.h-\\[70px\\] {\n height: 70px;\n}\n\n.h-\\[72px\\] {\n height: 72px;\n}\n\n.h-\\[8px\\] {\n height: 8px;\n}\n\n.h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n}\n\n.h-full {\n height: 100%;\n}\n\n.h-px {\n height: 1px;\n}\n\n.h-screen {\n height: 100vh;\n}\n\n.max-h-\\[180px\\] {\n max-height: 180px;\n}\n\n.max-h-\\[300px\\] {\n max-height: 300px;\n}\n\n.max-h-\\[70px\\] {\n max-height: 70px;\n}\n\n.max-h-\\[90\\%\\] {\n max-height: 90%;\n}\n\n.max-h-\\[90vh\\] {\n max-height: 90vh;\n}\n\n.max-h-screen {\n max-height: 100vh;\n}\n\n.min-h-0 {\n min-height: 0;\n}\n\n.min-h-9 {\n min-height: 2.25rem;\n}\n\n.min-h-\\[20px\\] {\n min-height: 20px;\n}\n\n.min-h-\\[80px\\] {\n min-height: 80px;\n}\n\n.w-1\\/3 {\n width: 33.3333%;\n}\n\n.w-10 {\n width: 2.5rem;\n}\n\n.w-12 {\n width: 3rem;\n}\n\n.w-16 {\n width: 4rem;\n}\n\n.w-2 {\n width: .5rem;\n}\n\n.w-3 {\n width: .75rem;\n}\n\n.w-3\\/4 {\n width: 75%;\n}\n\n.w-4 {\n width: 1rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-72 {\n width: 18rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.w-\\[100px\\] {\n width: 100px;\n}\n\n.w-\\[16px\\] {\n width: 16px;\n}\n\n.w-\\[24px\\] {\n width: 24px;\n}\n\n.w-\\[334px\\] {\n width: 334px;\n}\n\n.w-\\[36px\\] {\n width: 36px;\n}\n\n.w-\\[400px\\] {\n width: 400px;\n}\n\n.w-\\[42px\\] {\n width: 42px;\n}\n\n.w-\\[45px\\] {\n width: 45px;\n}\n\n.w-\\[54px\\] {\n width: 54px;\n}\n\n.w-\\[70px\\] {\n width: 70px;\n}\n\n.w-\\[72px\\] {\n width: 72px;\n}\n\n.w-\\[8px\\] {\n width: 8px;\n}\n\n.w-auto {\n width: auto;\n}\n\n.w-full {\n width: 100%;\n}\n\n.w-max {\n width: max-content;\n}\n\n.min-w-0 {\n min-width: 0;\n}\n\n.min-w-\\[144px\\] {\n min-width: 144px;\n}\n\n.min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n}\n\n.min-w-full {\n min-width: 100%;\n}\n\n.max-w-\\[315px\\] {\n max-width: 315px;\n}\n\n.max-w-\\[400px\\] {\n max-width: 400px;\n}\n\n.max-w-\\[500px\\] {\n max-width: 500px;\n}\n\n.max-w-\\[70px\\] {\n max-width: 70px;\n}\n\n.max-w-\\[800px\\] {\n max-width: 800px;\n}\n\n.max-w-\\[90\\%\\] {\n max-width: 90%;\n}\n\n.max-w-\\[90vw\\] {\n max-width: 90vw;\n}\n\n.max-w-full {\n max-width: 100%;\n}\n\n.flex-1 {\n flex: 1;\n}\n\n.flex-shrink-0, .shrink-0 {\n flex-shrink: 0;\n}\n\n.flex-grow, .grow {\n flex-grow: 1;\n}\n\n.grow-0 {\n flex-grow: 0;\n}\n\n.basis-full {\n flex-basis: 100%;\n}\n\n.caption-bottom {\n caption-side: bottom;\n}\n\n.border-collapse {\n border-collapse: collapse;\n}\n\n.-translate-x-1\\/2 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -50%;\n}\n\n.-translate-y-1\\/2 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -50%;\n}\n\n.translate-x-0 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 0px;\n}\n\n.translate-x-0\\.5 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: .125rem;\n}\n\n.translate-x-\\[-50\\%\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -50%;\n}\n\n.translate-y-0 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: 0px;\n}\n\n.translate-y-\\[-50\\%\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -50%;\n}\n\n.-scale-x-\\[1\\], .scale-x-\\[-1\\] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-scale-x: -1;\n}\n\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n.animate-pulse {\n animation: 2s cubic-bezier(.4, 0, .6, 1) infinite pulse;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.animate-spin {\n animation: 1s linear infinite spin;\n}\n\n.cursor-default {\n cursor: default;\n}\n\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.select-none {\n -webkit-user-select: none;\n user-select: none;\n}\n\n.resize {\n resize: both;\n}\n\n.appearance-none {\n appearance: none;\n}\n\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.flex-row {\n flex-direction: row;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-start {\n align-items: flex-start;\n}\n\n.items-end {\n align-items: flex-end;\n}\n\n.items-center {\n align-items: center;\n}\n\n.items-stretch {\n align-items: stretch;\n}\n\n.justify-end {\n justify-content: flex-end;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-0 {\n gap: 0;\n}\n\n.gap-0\\.5 {\n gap: .125rem;\n}\n\n.gap-1 {\n gap: .25rem;\n}\n\n.gap-1\\.5 {\n gap: .375rem;\n}\n\n.gap-12 {\n gap: 3rem;\n}\n\n.gap-2 {\n gap: .5rem;\n}\n\n.gap-2\\.5 {\n gap: .625rem;\n}\n\n.gap-3 {\n gap: .75rem;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.gap-6 {\n gap: 1.5rem;\n}\n\n.gap-8 {\n gap: 2rem;\n}\n\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(.25rem * var(--tw-space-x-reverse));\n margin-left: calc(.25rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n}\n\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(.25rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(.375rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-5 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n}\n\n.divide-x > :not([hidden]) ~ :not([hidden]) {\n border-right-width: calc(1px * var(--tw-divide-x-reverse));\n border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));\n --tw-divide-x-reverse: 0;\n}\n\n.divide-y > :not([hidden]) ~ :not([hidden]) {\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n --tw-divide-y-reverse: 0;\n}\n\n.divide-gray-200 > :not([hidden]) ~ :not([hidden]) {\n border-color: rgb(var(--color-gray-200) / var(--tw-divide-opacity));\n --tw-divide-opacity: 1;\n}\n\n.self-center {\n align-self: center;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-visible {\n overflow: visible;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.whitespace-nowrap {\n white-space: nowrap;\n}\n\n.whitespace-pre-line {\n white-space: pre-line;\n}\n\n.rounded {\n border-radius: .25rem;\n}\n\n.rounded-2xl {\n border-radius: 1rem;\n}\n\n.rounded-\\[10px\\] {\n border-radius: 10px;\n}\n\n.rounded-\\[3px\\] {\n border-radius: 3px;\n}\n\n.rounded-\\[4px\\] {\n border-radius: 4px;\n}\n\n.rounded-\\[6px\\] {\n border-radius: 6px;\n}\n\n.rounded-\\[8px\\] {\n border-radius: 8px;\n}\n\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-lg {\n border-radius: .5rem;\n}\n\n.rounded-md {\n border-radius: .375rem;\n}\n\n.rounded-xl {\n border-radius: .75rem;\n}\n\n.rounded-b-3xl {\n border-bottom-right-radius: 1.5rem;\n border-bottom-left-radius: 1.5rem;\n}\n\n.rounded-t-3xl {\n border-top-left-radius: 1.5rem;\n border-top-right-radius: 1.5rem;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-b {\n border-bottom-width: 1px;\n}\n\n.border-l {\n border-left-width: 1px;\n}\n\n.border-r {\n border-right-width: 1px;\n}\n\n.border-t {\n border-top-width: 1px;\n}\n\n.border-amber-700 {\n border-color: rgb(var(--color-amber-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-blue-700 {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-100 {\n border-color: rgb(var(--color-gray-100) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-1000 {\n border-color: rgb(var(--color-gray-1000) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-200 {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-gray-600 {\n border-color: rgb(var(--color-gray-600) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-red-700 {\n border-color: rgb(var(--color-red-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.border-white\\/10 {\n border-color: #ffffff1a;\n}\n\n.bg-\\[\\#292929\\] {\n background-color: rgb(41 41 41 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-100 {\n background-color: rgb(var(--color-amber-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-200 {\n background-color: rgb(var(--color-amber-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-amber-700 {\n background-color: rgb(var(--color-amber-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-black\\/25 {\n background-color: #00000040;\n}\n\n.bg-black\\/60 {\n background-color: #0009;\n}\n\n.bg-blue-100 {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-blue-300 {\n background-color: rgb(var(--color-blue-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-blue-700 {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-bronze-300 {\n background-color: rgb(var(--color-bronze-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-100 {\n background-color: rgb(var(--color-brown-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-300 {\n background-color: rgb(var(--color-brown-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-brown-700 {\n background-color: rgb(var(--color-brown-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-100 {\n background-color: rgb(var(--color-crimson-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-300 {\n background-color: rgb(var(--color-crimson-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-crimson-700 {\n background-color: rgb(var(--color-crimson-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-100 {\n background-color: rgb(var(--color-cyan-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-300 {\n background-color: rgb(var(--color-cyan-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cyan-700 {\n background-color: rgb(var(--color-cyan-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gold-300 {\n background-color: rgb(var(--color-gold-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-grass-300 {\n background-color: rgb(var(--color-grass-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-1000 {\n background-color: rgb(var(--color-gray-1000) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-1000\\/25 {\n background-color: rgb(var(--color-gray-1000) / .25);\n}\n\n.bg-gray-1000\\/80 {\n background-color: rgb(var(--color-gray-1000) / .8);\n}\n\n.bg-gray-200 {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-25 {\n background-color: rgb(var(--color-gray-25) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-25\\/50 {\n background-color: rgb(var(--color-gray-25) / .5);\n}\n\n.bg-gray-300 {\n background-color: rgb(var(--color-gray-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-600 {\n background-color: rgb(var(--color-gray-600) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-gray-900 {\n background-color: rgb(var(--color-gray-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-100 {\n background-color: rgb(var(--color-green-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-300 {\n background-color: rgb(var(--color-green-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-green-700 {\n background-color: rgb(var(--color-green-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-indigo-300 {\n background-color: rgb(var(--color-indigo-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-lime-300 {\n background-color: rgb(var(--color-lime-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-orange-100 {\n background-color: rgb(var(--color-orange-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-orange-700 {\n background-color: rgb(var(--color-orange-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-plum-300 {\n background-color: rgb(var(--color-plum-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-purple-300 {\n background-color: rgb(var(--color-purple-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-100 {\n background-color: rgb(var(--color-red-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-300 {\n background-color: rgb(var(--color-red-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-700 {\n background-color: rgb(var(--color-red-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-red-700\\/60 {\n background-color: rgb(var(--color-red-700) / .6);\n}\n\n.bg-teal-100 {\n background-color: rgb(var(--color-teal-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-teal-300 {\n background-color: rgb(var(--color-teal-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-teal-700 {\n background-color: rgb(var(--color-teal-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-transparent {\n background-color: #0000;\n}\n\n.bg-violet-100 {\n background-color: rgb(var(--color-violet-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-violet-300 {\n background-color: rgb(var(--color-violet-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-violet-700 {\n background-color: rgb(var(--color-violet-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-white {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-yellow-300 {\n background-color: rgb(var(--color-yellow-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.bg-cover {\n background-size: cover;\n}\n\n.bg-center {\n background-position: center;\n}\n\n.object-contain {\n object-fit: contain;\n}\n\n.object-cover {\n object-fit: cover;\n}\n\n.p-0 {\n padding: 0;\n}\n\n.p-1 {\n padding: .25rem;\n}\n\n.p-1\\.5 {\n padding: .375rem;\n}\n\n.p-2 {\n padding: .5rem;\n}\n\n.p-2\\.5 {\n padding: .625rem;\n}\n\n.p-3 {\n padding: .75rem;\n}\n\n.p-4 {\n padding: 1rem;\n}\n\n.p-5 {\n padding: 1.25rem;\n}\n\n.p-6 {\n padding: 1.5rem;\n}\n\n.p-8 {\n padding: 2rem;\n}\n\n.p-\\[11px\\] {\n padding: 11px;\n}\n\n.px-2 {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.px-2\\.5 {\n padding-left: .625rem;\n padding-right: .625rem;\n}\n\n.px-3 {\n padding-left: .75rem;\n padding-right: .75rem;\n}\n\n.px-3\\.5 {\n padding-left: .875rem;\n padding-right: .875rem;\n}\n\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.py-0\\.5 {\n padding-top: .125rem;\n padding-bottom: .125rem;\n}\n\n.py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n.py-1\\.5 {\n padding-top: .375rem;\n padding-bottom: .375rem;\n}\n\n.py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n.py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.py-2\\.5 {\n padding-top: .625rem;\n padding-bottom: .625rem;\n}\n\n.py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.pb-2 {\n padding-bottom: .5rem;\n}\n\n.pb-\\[9px\\] {\n padding-bottom: 9px;\n}\n\n.pl-2 {\n padding-left: .5rem;\n}\n\n.pl-4 {\n padding-left: 1rem;\n}\n\n.pr-2 {\n padding-right: .5rem;\n}\n\n.pt-1 {\n padding-top: .25rem;\n}\n\n.pt-10 {\n padding-top: 2.5rem;\n}\n\n.pt-4 {\n padding-top: 1rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.align-middle {\n vertical-align: middle;\n}\n\n.text-2xl {\n letter-spacing: -.02em;\n font-size: 24px;\n line-height: 32px;\n}\n\n.text-3xl {\n letter-spacing: -.02em;\n font-size: 30px;\n line-height: 38px;\n}\n\n.text-4xl {\n letter-spacing: -.02em;\n font-size: 36px;\n line-height: 44px;\n}\n\n.text-\\[10px\\] {\n font-size: 10px;\n}\n\n.text-\\[112px\\] {\n font-size: 112px;\n}\n\n.text-\\[30px\\] {\n font-size: 30px;\n}\n\n.text-lg {\n letter-spacing: -.02em;\n font-size: 18px;\n line-height: 22px;\n}\n\n.text-md {\n letter-spacing: -.02em;\n font-size: 16px;\n line-height: 20px;\n}\n\n.text-sm {\n letter-spacing: -.02em;\n font-size: 14px;\n line-height: 20px;\n}\n\n.text-xs {\n letter-spacing: -.02em;\n font-size: 12px;\n line-height: 16px;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.font-normal {\n font-weight: 400;\n}\n\n.font-semibold {\n font-weight: 600;\n}\n\n.leading-none {\n line-height: 1;\n}\n\n.text-\\[\\#707070\\] {\n color: rgb(112 112 112 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-amber-700 {\n color: rgb(var(--color-amber-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-blue-700 {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-bronze-700 {\n color: rgb(var(--color-bronze-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-brown-700 {\n color: rgb(var(--color-brown-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-crimson-700 {\n color: rgb(var(--color-crimson-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-current {\n color: currentColor;\n}\n\n.text-cyan-700 {\n color: rgb(var(--color-cyan-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gold-700 {\n color: rgb(var(--color-gold-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-grass-700 {\n color: rgb(var(--color-grass-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-1000 {\n color: rgb(var(--color-gray-1000) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-700 {\n color: rgb(var(--color-gray-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-gray-900 {\n color: rgb(var(--color-gray-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-green-700 {\n color: rgb(var(--color-green-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-indigo-700 {\n color: rgb(var(--color-indigo-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-inherit {\n color: inherit;\n}\n\n.text-lime-700 {\n color: rgb(var(--color-lime-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-orange-700 {\n color: rgb(var(--color-orange-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-plum-700 {\n color: rgb(var(--color-plum-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-primary {\n color: rgb(29 28 32 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-purple-700 {\n color: rgb(var(--color-purple-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-red-700 {\n color: rgb(var(--color-red-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-teal-700 {\n color: rgb(var(--color-teal-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-violet-700 {\n color: rgb(var(--color-violet-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-white {\n color: rgb(255 255 255 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.text-white\\/80 {\n color: #fffc;\n}\n\n.text-yellow-700 {\n color: rgb(var(--color-yellow-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.underline {\n text-decoration-line: underline;\n}\n\n.underline-offset-8 {\n text-underline-offset: 8px;\n}\n\n.antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.opacity-50 {\n opacity: .5;\n}\n\n.shadow-dropdown-sm {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0px 1px 2px 0px #1018280f, 0px 1px 3px 0px #1018281a;\n --tw-shadow-colored: 0px 1px 2px 0px var(--tw-shadow-color), 0px 1px 3px 0px var(--tw-shadow-color);\n}\n\n.shadow-lg {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n}\n\n.shadow-md {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n}\n\n.shadow-sm {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 1px 2px 0 #0000000d;\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n}\n\n.outline-none {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.outline {\n outline-style: solid;\n}\n\n.ring-1 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-2 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-4 {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-\\[3px\\] {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.ring-inset {\n --tw-ring-inset: inset;\n}\n\n.ring-amber-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-amber-300) / var(--tw-ring-opacity));\n}\n\n.ring-blue-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-300) / var(--tw-ring-opacity));\n}\n\n.ring-blue-700 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-700) / var(--tw-ring-opacity));\n}\n\n.ring-brown-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-brown-300) / var(--tw-ring-opacity));\n}\n\n.ring-crimson-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-crimson-300) / var(--tw-ring-opacity));\n}\n\n.ring-cyan-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-cyan-300) / var(--tw-ring-opacity));\n}\n\n.ring-gray-200 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-gray-200) / var(--tw-ring-opacity));\n}\n\n.ring-green-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-green-300) / var(--tw-ring-opacity));\n}\n\n.ring-orange-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-orange-300) / var(--tw-ring-opacity));\n}\n\n.ring-red-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-300) / var(--tw-ring-opacity));\n}\n\n.ring-teal-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-teal-300) / var(--tw-ring-opacity));\n}\n\n.ring-violet-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-violet-300) / var(--tw-ring-opacity));\n}\n\n.ring-white {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity));\n}\n\n.ring-white\\/20 {\n --tw-ring-color: #fff3;\n}\n\n.ring-offset-0 {\n --tw-ring-offset-width: 0px;\n}\n\n.ring-offset-white {\n --tw-ring-offset-color: #fff;\n}\n\n.blur {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n --tw-blur: blur(8px);\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.backdrop-blur-\\[30px\\] {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(30px);\n}\n\n.backdrop-blur-lg {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(16px);\n}\n\n.backdrop-blur-sm {\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n --tw-backdrop-blur: blur(4px);\n}\n\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-all {\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-transform {\n transition-property: transform;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.duration-200 {\n transition-duration: .2s;\n}\n\n.duration-500 {\n transition-duration: .5s;\n}\n\n.duration-700 {\n transition-duration: .7s;\n}\n\n.ease-in-out {\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.ease-linear {\n transition-timing-function: linear;\n}\n\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, .2, 1);\n}\n\n.will-change-transform {\n will-change: transform;\n}\n\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n.animate-in {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n}\n\n.fade-in, .fade-in-0 {\n --tw-enter-opacity: 0;\n}\n\n.fade-out {\n --tw-exit-opacity: 0;\n}\n\n.zoom-in-95 {\n --tw-enter-scale: .95;\n}\n\n.duration-200 {\n animation-duration: .2s;\n}\n\n.duration-500 {\n animation-duration: .5s;\n}\n\n.duration-700 {\n animation-duration: .7s;\n}\n\n.ease-in-out {\n animation-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.ease-linear {\n animation-timing-function: linear;\n}\n\n.ease-out {\n animation-timing-function: cubic-bezier(0, 0, .2, 1);\n}\n\n.paused {\n animation-play-state: paused;\n}\n\n.inter {\n font-family: Inter, sans-serif;\n}\n\n@supports (font-variation-settings: normal) {\n .inter {\n font-family: Inter var, sans-serif;\n }\n}\n\n.pulse-red-700 {\n animation: 2s infinite pulse-red-700;\n transform: scale(1);\n box-shadow: 0 0 #e5484d;\n}\n\n@keyframes pulse-red-700 {\n 0% {\n transform: scale(.95);\n box-shadow: 0 0 #e5484db3;\n }\n\n 70% {\n transform: scale(1);\n box-shadow: 0 0 0 6px #e5484d00;\n }\n\n 100% {\n transform: scale(.95);\n box-shadow: 0 0 #e5484d00;\n }\n}\n\n.placeholder\\:text-gray-700::placeholder {\n color: rgb(var(--color-gray-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.placeholder\\:text-gray-900::placeholder {\n color: rgb(var(--color-gray-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.focus-within\\:relative:focus-within {\n position: relative;\n}\n\n.focus-within\\:z-20:focus-within {\n z-index: 20;\n}\n\n.focus-within\\:border-gray-200:focus-within {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.focus-within\\:bg-gray-100:focus-within {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.focus-within\\:outline:focus-within {\n outline-style: solid;\n}\n\n.focus-within\\:outline-\\[2px\\]:focus-within {\n outline-width: 2px;\n}\n\n.focus-within\\:outline-offset-\\[2px\\]:focus-within {\n outline-offset: 2px;\n}\n\n.focus-within\\:outline-blue-300:focus-within {\n outline-color: rgb(var(--color-blue-300) / 1);\n}\n\n.focus-within\\:outline-red-700:focus-within {\n outline-color: rgb(var(--color-red-700) / 1);\n}\n\n.hover\\:bg-black\\/10:hover {\n background-color: #0000001a;\n}\n\n.hover\\:bg-blue-100:hover {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-50:hover {\n background-color: rgb(var(--color-blue-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-700:hover {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-blue-800:hover {\n background-color: rgb(var(--color-blue-800) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-100:hover {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-200:hover {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-gray-25\\/60:hover {\n background-color: rgb(var(--color-gray-25) / .6);\n}\n\n.hover\\:bg-gray-50:hover {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-red-100:hover {\n background-color: rgb(var(--color-red-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:bg-red-800:hover {\n background-color: rgb(var(--color-red-800) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.hover\\:text-blue-700:hover {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.hover\\:text-white:hover {\n color: rgb(255 255 255 / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n\n.focus\\:bg-gray-100:focus {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.focus\\:outline-none:focus {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.focus\\:ring-1:focus {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus\\:ring-2:focus {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n\n.focus-visible\\:outline-none:focus-visible {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.focus-visible\\:ring-2:focus-visible {\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n}\n\n.focus-visible\\:ring-blue-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-blue-300:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-300) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-blue-700:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-blue-700) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-gray-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-gray-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-red-1000:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-1000) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-red-700:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--color-red-700) / var(--tw-ring-opacity));\n}\n\n.focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n\n.active\\:bg-blue-200:active {\n background-color: rgb(var(--color-blue-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-blue-900:active {\n background-color: rgb(var(--color-blue-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-100:active {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-200:active {\n background-color: rgb(var(--color-gray-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-gray-25\\/70:active {\n background-color: rgb(var(--color-gray-25) / .7);\n}\n\n.active\\:bg-gray-500:active {\n background-color: rgb(var(--color-gray-500) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-red-200:active {\n background-color: rgb(var(--color-red-200) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:bg-red-900:active {\n background-color: rgb(var(--color-red-900) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.active\\:text-blue-700:active {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.active\\:text-blue-900:active {\n color: rgb(var(--color-blue-900) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n\n.disabled\\:select-none:disabled {\n -webkit-user-select: none;\n user-select: none;\n}\n\n.disabled\\:opacity-40:disabled {\n opacity: .4;\n}\n\n.disabled\\:opacity-50:disabled {\n opacity: .5;\n}\n\n.group:focus-within .group-focus-within\\:bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group:hover .group-hover\\:bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group:active .group-active\\:bg-gray-100 {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.peer:disabled ~ .peer-disabled\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.peer:disabled ~ .peer-disabled\\:opacity-70 {\n opacity: .7;\n}\n\n.aria-selected\\:bg-blue-100[aria-selected=\"true\"] {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.aria-selected\\:text-blue-700[aria-selected=\"true\"] {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.aria-selected\\:opacity-100[aria-selected=\"true\"] {\n opacity: 1;\n}\n\n.data-\\[disabled\\]\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n\n.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=\"bottom\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: .25rem;\n}\n\n.data-\\[side\\=left\\]\\:-translate-x-1[data-side=\"left\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: -.25rem;\n}\n\n.data-\\[side\\=right\\]\\:translate-x-1[data-side=\"right\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: .25rem;\n}\n\n.data-\\[side\\=top\\]\\:-translate-y-1[data-side=\"top\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: -.25rem;\n}\n\n.data-\\[state\\=checked\\]\\:translate-x-5[data-state=\"checked\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 1.25rem;\n}\n\n.data-\\[swipe\\=cancel\\]\\:translate-x-0[data-swipe=\"cancel\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: 0px;\n}\n\n.data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\][data-swipe=\"end\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n}\n\n.data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\][data-swipe=\"move\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n}\n\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n\n to {\n height: 0;\n }\n}\n\n.data-\\[state\\=closed\\]\\:animate-accordion-up[data-state=\"closed\"] {\n animation: .2s ease-out accordion-up;\n}\n\n@keyframes accordion-down {\n from {\n height: 0;\n }\n\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n\n.data-\\[state\\=open\\]\\:animate-accordion-down[data-state=\"open\"] {\n animation: .2s ease-out accordion-down;\n}\n\n.data-\\[disabled\\]\\:cursor-not-allowed[data-disabled] {\n cursor: not-allowed;\n}\n\n.data-\\[state\\=checked\\]\\:border-blue-700[data-state=\"checked\"], .data-\\[state\\=on\\]\\:border-blue-700[data-state=\"on\"] {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.data-\\[disabled\\]\\:data-\\[state\\=unchecked\\]\\:bg-gray-300[data-state=\"unchecked\"][data-disabled] {\n background-color: rgb(var(--color-gray-300) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[selected\\=true\\]\\:bg-gray-50[data-selected=\"true\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-amber-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-amber-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-blue-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-bronze-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-bronze-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-brown-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-brown-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-crimson-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-crimson-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-cyan-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-cyan-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-gold-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-gold-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-grass-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-grass-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-gray-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-gray-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-green-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-green-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-indigo-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-indigo-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-lime-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-lime-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-plum-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-plum-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-purple-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-purple-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-red-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-red-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-teal-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-teal-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-violet-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-violet-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[size\\=xxs\\]\\:bg-yellow-700[data-size=\"xxs\"] {\n background-color: rgb(var(--color-yellow-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:bg-white[data-state=\"active\"] {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-blue-700[data-state=\"checked\"] {\n background-color: rgb(var(--color-blue-700) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-gray-50[data-state=\"checked\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=checked\\]\\:bg-white[data-state=\"checked\"] {\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=selected\\]\\:bg-gray-50[data-state=\"selected\"] {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:text-blue-700[data-state=\"active\"] {\n color: rgb(var(--color-blue-700) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.data-\\[state\\=active\\]\\:text-gray-25[data-state=\"active\"] {\n color: rgb(var(--color-gray-25) / var(--tw-text-opacity));\n --tw-text-opacity: 1;\n}\n\n.data-\\[disabled\\]\\:opacity-40[data-disabled] {\n opacity: .4;\n}\n\n.data-\\[disabled\\]\\:opacity-50[data-disabled] {\n opacity: .5;\n}\n\n.data-\\[state\\=active\\]\\:shadow-sm[data-state=\"active\"] {\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n --tw-shadow: 0 1px 2px 0 #0000000d;\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n}\n\n.data-\\[swipe\\=move\\]\\:transition-none[data-swipe=\"move\"] {\n transition-property: none;\n}\n\n.data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n transition-duration: .3s;\n}\n\n.data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n transition-duration: .5s;\n}\n\n.data-\\[state\\=open\\]\\:animate-in[data-state=\"open\"] {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n}\n\n.data-\\[state\\=closed\\]\\:animate-out[data-state=\"closed\"], .data-\\[swipe\\=end\\]\\:animate-out[data-swipe=\"end\"] {\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n animation-name: exit;\n animation-duration: .15s;\n}\n\n.data-\\[state\\=closed\\]\\:fade-out[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:fade-out-0[data-state=\"closed\"] {\n --tw-exit-opacity: 0;\n}\n\n.data-\\[state\\=closed\\]\\:fade-out-80[data-state=\"closed\"] {\n --tw-exit-opacity: .8;\n}\n\n.data-\\[state\\=open\\]\\:fade-in-0[data-state=\"open\"] {\n --tw-enter-opacity: 0;\n}\n\n.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=\"closed\"] {\n --tw-exit-scale: .95;\n}\n\n.data-\\[state\\=open\\]\\:zoom-in-95[data-state=\"open\"] {\n --tw-enter-scale: .95;\n}\n\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=\"bottom\"] {\n --tw-enter-translate-y: -.5rem;\n}\n\n.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=\"left\"] {\n --tw-enter-translate-x: .5rem;\n}\n\n.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=\"right\"] {\n --tw-enter-translate-x: -.5rem;\n}\n\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=\"top\"] {\n --tw-enter-translate-y: .5rem;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:slide-out-to-bottom-\\[100\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-y: 100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-left[data-state=\"closed\"] {\n --tw-exit-translate-x: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:slide-out-to-left-\\[50\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-x: -50%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-right[data-state=\"closed\"] {\n --tw-exit-translate-x: 100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-top[data-state=\"closed\"] {\n --tw-exit-translate-y: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-y: -48%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-bottom-\\[100\\%\\][data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-left[data-state=\"open\"] {\n --tw-enter-translate-x: -100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-left-\\[50\\%\\][data-state=\"open\"] {\n --tw-enter-translate-x: -50%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-right[data-state=\"open\"] {\n --tw-enter-translate-x: 100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state=\"open\"] {\n --tw-enter-translate-y: -48%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top-full[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n animation-duration: .3s;\n}\n\n.data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n animation-duration: .5s;\n}\n\n.group[data-state=\"open\"] .group-data-\\[state\\=open\\]\\:rotate-180 {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-rotate: 180deg;\n}\n\n.group[data-disabled] .group-data-\\[disabled\\]\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.group[data-state=\"on\"] .group-data-\\[state\\=on\\]\\:border-blue-700 {\n border-color: rgb(var(--color-blue-700) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n}\n\n.group[data-state=\"checked\"] .group-data-\\[state\\=checked\\]\\:bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.group[data-state=\"off\"] .group-data-\\[state\\=off\\]\\:bg-transparent {\n background-color: #0000;\n}\n\n.group[data-state=\"off\"] .group-data-\\[state\\=off\\]\\:text-transparent {\n color: #0000;\n}\n\n.group[data-disabled] .group-data-\\[disabled\\]\\:opacity-50 {\n opacity: .5;\n}\n\n@media not all and (width >= 1024px) {\n .max-lg\\:mt-8 {\n margin-top: 2rem;\n }\n\n .max-lg\\:hidden {\n display: none;\n }\n\n .max-lg\\:h-\\[250px\\] {\n height: 250px;\n }\n\n .max-lg\\:w-full {\n width: 100%;\n }\n\n .max-lg\\:flex-col {\n flex-direction: column;\n }\n}\n\n@media not all and (width >= 640px) {\n .max-sm\\:gap-4 {\n gap: 1rem;\n }\n\n .max-sm\\:p-4 {\n padding: 1rem;\n }\n}\n\n@media (width >= 640px) {\n .sm\\:mt-0 {\n margin-top: 0;\n }\n\n .sm\\:w-1\\/2 {\n width: 50%;\n }\n\n .sm\\:max-w-sm {\n max-width: 24rem;\n }\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:flex-col {\n flex-direction: column;\n }\n\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n\n .sm\\:justify-center {\n justify-content: center;\n }\n\n .sm\\:space-x-2 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(.5rem * var(--tw-space-x-reverse));\n margin-left: calc(.5rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n }\n\n .sm\\:space-x-4 > :not([hidden]) ~ :not([hidden]) {\n margin-right: calc(1rem * var(--tw-space-x-reverse));\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\n --tw-space-x-reverse: 0;\n }\n\n .sm\\:space-y-0 > :not([hidden]) ~ :not([hidden]) {\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0px * var(--tw-space-y-reverse));\n --tw-space-y-reverse: 0;\n }\n\n .data-\\[state\\=open\\]\\:sm\\:slide-in-from-bottom-full[data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n}\n\n@media (width >= 768px) {\n .md\\:block {\n display: block;\n }\n\n .md\\:h-\\[550px\\] {\n height: 550px;\n }\n\n .md\\:w-\\[1000px\\] {\n width: 1000px;\n }\n\n .md\\:w-\\[300px\\] {\n width: 300px;\n }\n\n .md\\:w-\\[334px\\] {\n width: 334px;\n }\n\n .md\\:w-\\[500px\\] {\n width: 500px;\n }\n\n .md\\:w-auto {\n width: auto;\n }\n\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:w-screen {\n width: 100vw;\n }\n\n .md\\:max-w-\\[420px\\] {\n max-width: 420px;\n }\n\n .md\\:max-w-\\[90vw\\] {\n max-width: 90vw;\n }\n\n .md\\:flex-row {\n flex-direction: row;\n }\n\n .md\\:items-center {\n align-items: center;\n }\n\n .md\\:justify-start {\n justify-content: flex-start;\n }\n\n .md\\:gap-0 {\n gap: 0;\n }\n\n .md\\:gap-4 {\n gap: 1rem;\n }\n\n .md\\:gap-8 {\n gap: 2rem;\n }\n\n .md\\:divide-y > :not([hidden]) ~ :not([hidden]) {\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n --tw-divide-y-reverse: 0;\n }\n\n .md\\:border-0 {\n border-width: 0;\n }\n\n .md\\:bg-gray-50 {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n }\n\n .md\\:bg-transparent {\n background-color: #0000;\n }\n\n .md\\:p-0 {\n padding: 0;\n }\n\n .md\\:p-4 {\n padding: 1rem;\n }\n\n .md\\:p-6 {\n padding: 1.5rem;\n }\n\n .md\\:p-8 {\n padding: 2rem;\n }\n\n .md\\:pt-4 {\n padding-top: 1rem;\n }\n}\n\n@media (width >= 1024px) {\n .lg\\:flex-col {\n flex-direction: column;\n }\n\n .lg\\:items-center {\n align-items: center;\n }\n\n .lg\\:gap-2 {\n gap: .5rem;\n }\n\n .lg\\:gap-8 {\n gap: 2rem;\n }\n\n .lg\\:rounded-lg {\n border-radius: .5rem;\n }\n\n .lg\\:border {\n border-width: 1px;\n }\n\n .lg\\:border-gray-200 {\n border-color: rgb(var(--color-gray-200) / var(--tw-border-opacity));\n --tw-border-opacity: 1;\n }\n\n .lg\\:bg-pattern {\n background-image: radial-gradient(50% 50%, #006aff33 0%, #006aff00 100%), linear-gradient(#0000 0%, #fff 100%), linear-gradient(0deg, #0000 0%, #ffffffbf 100%), url(\"data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M40 40V41H41V40H40ZM39 0V40H41V0H39ZM40 39H0V41H40V39Z' fill='%23E8E8E8' mask='url(%23path-1-inside-1_124_242)'/%3E%3C/svg%3E\");\n }\n\n .lg\\:p-6 {\n padding: 1.5rem;\n }\n\n .lg\\:text-center {\n text-align: center;\n }\n\n .lg\\:text-4xl {\n letter-spacing: -.02em;\n font-size: 36px;\n line-height: 44px;\n }\n}\n\n@media (width >= 1280px) {\n .xl\\:rounded-none {\n border-radius: 0;\n }\n}\n\n.\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:bg-blue-100:has([aria-selected]) {\n background-color: rgb(var(--color-blue-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.first\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-l-md:has([aria-selected]):first-child {\n border-top-left-radius: .375rem;\n border-bottom-left-radius: .375rem;\n}\n\n.last\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:rounded-r-md:has([aria-selected]):last-child {\n border-top-right-radius: .375rem;\n border-bottom-right-radius: .375rem;\n}\n\n.\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0:has([role=\"checkbox\"]) {\n padding-right: 0;\n}\n\n.\\[\\&\\:not\\(\\[aria-selected\\]\\)\\]\\:hover\\:bg-gray-100:hover:not([aria-selected]) {\n background-color: rgb(var(--color-gray-100) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&\\>\\*\\]\\:fill-white > * {\n fill: #fff;\n}\n\n.\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] > [role=\"checkbox\"] {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-translate-y: 2px;\n}\n\n.\\[\\&\\>svg\\]\\:h-4 > svg {\n height: 1rem;\n}\n\n.\\[\\&\\>svg\\]\\:w-auto > svg {\n width: auto;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 [cmdk-group-heading] {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 [cmdk-group-heading] {\n padding-top: .375rem;\n padding-bottom: .375rem;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-sm [cmdk-group-heading] {\n letter-spacing: -.02em;\n font-size: 14px;\n line-height: 20px;\n}\n\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium [cmdk-group-heading] {\n font-weight: 500;\n}\n\n.\\[\\&_tr\\:active\\]\\:bg-gray-50 tr:active, .\\[\\&_tr\\:hover\\:active\\]\\:bg-gray-50 tr:hover:active {\n background-color: rgb(var(--color-gray-50) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&_tr\\:hover\\]\\:bg-gray-25 tr:hover {\n background-color: rgb(var(--color-gray-25) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n}\n\n.\\[\\&_tr\\:last-child\\]\\:border-0 tr:last-child {\n border-width: 0;\n}\n\n.\\[\\&_tr\\]\\:border-b tr {\n border-bottom-width: 1px;\n}\n";
14099
14645
 
14100
14646
 
14101
14647
  var $9554d945ad3f220e$exports = {};
@@ -14147,15 +14693,12 @@ const $24075a5d702d64b3$var$defaultOptions = {
14147
14693
  },
14148
14694
  streamApiURL: String("https://apistream.snapcall.io"),
14149
14695
  apiUrl: String("https://api.snapcall.io/v2"),
14150
- tracking: false,
14151
- token: undefined,
14152
- profile: undefined,
14153
- apiKey: undefined
14696
+ tracking: false
14154
14697
  };
14155
14698
  let $24075a5d702d64b3$var$streamUIOption = {};
14156
14699
  const $24075a5d702d64b3$export$3f94917203ab7078 = {
14157
- init: (option)=>{
14158
- $24075a5d702d64b3$var$streamUIOption = option;
14700
+ init: (options)=>{
14701
+ $24075a5d702d64b3$var$streamUIOption = options;
14159
14702
  },
14160
14703
  joinRoom: async (token, option)=>{
14161
14704
  return $24075a5d702d64b3$export$3f94917203ab7078.initV2({
@@ -14177,29 +14720,6 @@ const $24075a5d702d64b3$export$3f94917203ab7078 = {
14177
14720
  defaultMode: "video",
14178
14721
  skipOnboarding: false
14179
14722
  };
14180
- const { flow: flow, flowV0: flowV0 } = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).init(options.token, {
14181
- languageCode: options.language,
14182
- flowToken: options.flowToken,
14183
- recorder: options.recorder?.enabled,
14184
- apiKey: options.apiKey,
14185
- email: options.email,
14186
- profile: options.profile,
14187
- authKey: options.authKey
14188
- });
14189
- if (flow) {
14190
- const step = flow.steps[0];
14191
- if (step) {
14192
- options.recorder = {
14193
- enabledModes: [
14194
- step.type === "image" ? "photo" : step.type
14195
- ],
14196
- enabled: true,
14197
- defaultMode: step.type === "image" ? "photo" : step.type,
14198
- skipOnboarding: false
14199
- };
14200
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).setStep(flow?.steps[0].token);
14201
- }
14202
- }
14203
14723
  if (options.recorder?.defaultMode === "screen" && !isDesktop) options.recorder.defaultMode = "video";
14204
14724
  if (element?.nodeType !== window.Node.ELEMENT_NODE) throw new Error('The "element" property must be a valid element!');
14205
14725
  const mergedOptions = (0, $365e765f9890497b$export$6969335ea1e4e77c)($24075a5d702d64b3$var$defaultOptions, options);
@@ -14230,13 +14750,10 @@ const $24075a5d702d64b3$export$3f94917203ab7078 = {
14230
14750
  href: "https://rsms.me/inter/inter.css"
14231
14751
  }),
14232
14752
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $26ed036cbc17809a$export$2e2bcd8739ae039), {
14233
- options: mergedOptions,
14234
- flow: flow,
14235
- flowV0: flowV0
14753
+ options: mergedOptions
14236
14754
  })
14237
14755
  ]
14238
14756
  }));
14239
- if (mergedOptions.tracking) (0, $3Sbms$hotjarbrowser).init(3111933, 6);
14240
14757
  (0, $35b37252690084e8$export$1cbfb36c1655a9a)(rootElement, element);
14241
14758
  },
14242
14759
  setExtraSettingsOptions: (extraOptions)=>{