@skippr/live-agent-sdk 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/lib-exports.js +7 -0
- package/dist/skippr-sdk.js +1 -1
- package/package.json +1 -1
package/dist/skippr-sdk.js
CHANGED
|
@@ -271,5 +271,5 @@ a=extmap-allow-mixed`)!==-1){let K=q.sdp.split(`
|
|
|
271
271
|
`)+`\r
|
|
272
272
|
`},ZW}var Qn;function M70(){if(Qn)return L4;Qn=1;var $=U70(),Y=F70(),G=aW();return L4.grammar=G,L4.write=Y,L4.parse=$.parse,L4.parseParams=$.parseParams,L4.parseFmtpConfig=$.parseFmtpConfig,L4.parsePayloads=$.parsePayloads,L4.parseRemoteCandidates=$.parseRemoteCandidates,L4.parseImageAttributes=$.parseImageAttributes,L4.parseSimulcastStreamList=$.parseSimulcastStreamList,L4}var Y8=M70();function tW($,Y,G){var H,q,K;Y===void 0&&(Y=50),G===void 0&&(G={});var N=(H=G.isImmediate)!=null&&H,U=(q=G.callback)!=null&&q,F=G.maxWait,M=Date.now(),L=[];function k(){if(F!==void 0){var _=Date.now()-M;if(_+Y>=F)return F-_}return Y}var R=function(){var _=[].slice.call(arguments),S=this;return new Promise(function(T,y){var g=N&&K===void 0;if(K!==void 0&&clearTimeout(K),K=setTimeout(function(){if(K=void 0,M=Date.now(),!N){var c=$.apply(S,_);U&&U(c),L.forEach(function(C){return(0,C.resolve)(c)}),L=[]}},k()),g){var o=$.apply(S,_);return U&&U(o),T(o)}L.push({resolve:T,reject:y})})};return R.cancel=function(_){K!==void 0&&clearTimeout(K),L.forEach(function(S){return(0,S.reject)(_)}),L=[]},R}var O70=0.7,P70=20,a3={NegotiationStarted:"negotiationStarted",NegotiationComplete:"negotiationComplete",RTPVideoPayloadTypes:"rtpVideoPayloadTypes"};class EW extends J5.EventEmitter{get pc(){if(!this._pc)this._pc=this.createPC();return this._pc}constructor($){let Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var G;super();this.log=c0,this.ddExtID=0,this.latestOfferId=0,this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate=!1,this.trackBitrates=[],this.remoteStereoMids=[],this.remoteNackMids=[],this.negotiate=tW((H)=>E(this,void 0,void 0,function*(){this.emit(a3.NegotiationStarted);try{yield this.createAndSendOffer()}catch(q){if(H)H(q);else throw q}}),P70),this.close=()=>{if(!this._pc)return;this._pc.close(),this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc.onicegatheringstatechange=null,this._pc.ondatachannel=null,this._pc.onnegotiationneeded=null,this._pc.onsignalingstatechange=null,this._pc.onicecandidate=null,this._pc.ondatachannel=null,this._pc.ontrack=null,this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc=null},this.log=o5((G=Y.loggerName)!==null&&G!==void 0?G:_4.PCTransport),this.loggerOptions=Y,this.config=$,this._pc=this.createPC(),this.offerLock=new y2}createPC(){let $=new RTCPeerConnection(this.config);return $.onicecandidate=(Y)=>{var G;if(!Y.candidate)return;(G=this.onIceCandidate)===null||G===void 0||G.call(this,Y.candidate)},$.onicecandidateerror=(Y)=>{var G;(G=this.onIceCandidateError)===null||G===void 0||G.call(this,Y)},$.oniceconnectionstatechange=()=>{var Y;(Y=this.onIceConnectionStateChange)===null||Y===void 0||Y.call(this,$.iceConnectionState)},$.onsignalingstatechange=()=>{var Y;(Y=this.onSignalingStatechange)===null||Y===void 0||Y.call(this,$.signalingState)},$.onconnectionstatechange=()=>{var Y;(Y=this.onConnectionStateChange)===null||Y===void 0||Y.call(this,$.connectionState)},$.ondatachannel=(Y)=>{var G;(G=this.onDataChannel)===null||G===void 0||G.call(this,Y)},$.ontrack=(Y)=>{var G;(G=this.onTrack)===null||G===void 0||G.call(this,Y)},$}get logContext(){var $,Y;return Object.assign({},(Y=($=this.loggerOptions).loggerContextCb)===null||Y===void 0?void 0:Y.call($))}get isICEConnected(){return this._pc!==null&&(this.pc.iceConnectionState==="connected"||this.pc.iceConnectionState==="completed")}addIceCandidate($){return E(this,void 0,void 0,function*(){if(this.pc.remoteDescription&&!this.restartingIce)return this.pc.addIceCandidate($);this.pendingCandidates.push($)})}setRemoteDescription($,Y){return E(this,void 0,void 0,function*(){var G;if($.type==="answer"&&this.latestOfferId>0&&Y>0&&Y!==this.latestOfferId)return this.log.warn("ignoring answer for old offer",Object.assign(Object.assign({},this.logContext),{offerId:Y,latestOfferId:this.latestOfferId})),!1;let H=void 0;if($.type==="offer"){let{stereoMids:q,nackMids:K}=L70($);this.remoteStereoMids=q,this.remoteNackMids=K}else if($.type==="answer"){let q=Y8.parse((G=$.sdp)!==null&&G!==void 0?G:"");q.media.forEach((K)=>{let N=eW(K.mid);if(K.type==="audio")this.trackBitrates.some((U)=>{if(!U.transceiver||N!=U.transceiver.mid)return!1;let F=0;if(K.rtp.some((L)=>{if(L.codec.toUpperCase()===U.codec.toUpperCase())return F=L.payload,!0;return!1}),F===0)return!0;let M=!1;for(let L of K.fmtp)if(L.payload===F){if(L.config=L.config.split(";").filter((k)=>!k.includes("maxaveragebitrate")).join(";"),U.maxbr>0)L.config+=";maxaveragebitrate=".concat(U.maxbr*1000);M=!0;break}if(!M){if(U.maxbr>0)K.fmtp.push({payload:F,config:"maxaveragebitrate=".concat(U.maxbr*1000)})}return!0})}),H=Y8.write(q)}if(yield this.setMungedSDP($,H,!0),this.pendingCandidates.forEach((q)=>{this.pc.addIceCandidate(q)}),this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate)this.renegotiate=!1,yield this.createAndSendOffer();else if($.type==="answer"){if(this.emit(a3.NegotiationComplete),$.sdp)Y8.parse($.sdp).media.forEach((K)=>{if(K.type==="video")this.emit(a3.RTPVideoPayloadTypes,K.rtp)})}return!0})}createAndSendOffer($){return E(this,void 0,void 0,function*(){var Y;let G=yield this.offerLock.lock();try{if(this.onOffer===void 0)return;if($===null||$===void 0?void 0:$.iceRestart)this.log.debug("restarting ICE",this.logContext),this.restartingIce=!0;if(this._pc&&this._pc.signalingState==="have-local-offer"){let N=this._pc.remoteDescription;if(($===null||$===void 0?void 0:$.iceRestart)&&N)yield this._pc.setRemoteDescription(N);else{this.renegotiate=!0;return}}else if(!this._pc||this._pc.signalingState==="closed"){this.log.warn("could not createOffer with closed peer connection",this.logContext);return}this.log.debug("starting to negotiate",this.logContext);let H=this.latestOfferId+1;this.latestOfferId=H;let q=yield this.pc.createOffer($);this.log.debug("original offer",Object.assign({sdp:q.sdp},this.logContext));let K=Y8.parse((Y=q.sdp)!==null&&Y!==void 0?Y:"");if(K.media.forEach((N)=>{if(Hn(N),N.type==="audio")Gn(N,["all"],[]);else if(N.type==="video")this.trackBitrates.some((U)=>{if(!N.msid||!U.cid||!N.msid.includes(U.cid))return!1;let F=0;if(N.rtp.some((L)=>{if(L.codec.toUpperCase()===U.codec.toUpperCase())return F=L.payload,!0;return!1}),F===0)return!0;if(x4(U.codec)&&!w7())this.ensureVideoDDExtensionForSVC(N,K);if(!x4(U.codec))return!0;let M=Math.round(U.maxbr*O70);for(let L of N.fmtp)if(L.payload===F){if(!L.config.includes("x-google-start-bitrate"))L.config+=";x-google-start-bitrate=".concat(M);break}return!0})}),this.latestOfferId>H){this.log.warn("latestOfferId mismatch",Object.assign(Object.assign({},this.logContext),{latestOfferId:this.latestOfferId,offerId:H}));return}yield this.setMungedSDP(q,Y8.write(K)),this.onOffer(q,this.latestOfferId)}finally{G()}})}createAndSetAnswer(){return E(this,void 0,void 0,function*(){var $;let Y=yield this.pc.createAnswer(),G=Y8.parse(($=Y.sdp)!==null&&$!==void 0?$:"");return G.media.forEach((H)=>{if(Hn(H),H.type==="audio")Gn(H,this.remoteStereoMids,this.remoteNackMids)}),yield this.setMungedSDP(Y,Y8.write(G)),Y})}createDataChannel($,Y){return this.pc.createDataChannel($,Y)}addTransceiver($,Y){return this.pc.addTransceiver($,Y)}addTransceiverOfKind($,Y){return this.pc.addTransceiver($,Y)}addTrack($){if(!this._pc)throw new n1("PC closed, cannot add track");return this._pc.addTrack($)}setTrackCodecBitrate($){this.trackBitrates.push($)}setConfiguration($){var Y;if(!this._pc)throw new n1("PC closed, cannot configure");return(Y=this._pc)===null||Y===void 0?void 0:Y.setConfiguration($)}canRemoveTrack(){var $;return!!(($=this._pc)===null||$===void 0?void 0:$.removeTrack)}removeTrack($){var Y;return(Y=this._pc)===null||Y===void 0?void 0:Y.removeTrack($)}getConnectionState(){var $,Y;return(Y=($=this._pc)===null||$===void 0?void 0:$.connectionState)!==null&&Y!==void 0?Y:"closed"}getICEConnectionState(){var $,Y;return(Y=($=this._pc)===null||$===void 0?void 0:$.iceConnectionState)!==null&&Y!==void 0?Y:"closed"}getSignallingState(){var $,Y;return(Y=($=this._pc)===null||$===void 0?void 0:$.signalingState)!==null&&Y!==void 0?Y:"closed"}getTransceivers(){var $,Y;return(Y=($=this._pc)===null||$===void 0?void 0:$.getTransceivers())!==null&&Y!==void 0?Y:[]}getSenders(){var $,Y;return(Y=($=this._pc)===null||$===void 0?void 0:$.getSenders())!==null&&Y!==void 0?Y:[]}getLocalDescription(){var $;return($=this._pc)===null||$===void 0?void 0:$.localDescription}getRemoteDescription(){var $;return($=this.pc)===null||$===void 0?void 0:$.remoteDescription}getStats(){return this.pc.getStats()}getConnectedAddress(){return E(this,void 0,void 0,function*(){var $;if(!this._pc)return;let Y="",G=new Map,H=new Map;if((yield this._pc.getStats()).forEach((N)=>{switch(N.type){case"transport":Y=N.selectedCandidatePairId;break;case"candidate-pair":if(Y===""&&N.selected)Y=N.id;G.set(N.id,N);break;case"remote-candidate":H.set(N.id,"".concat(N.address,":").concat(N.port));break}}),Y==="")return;let K=($=G.get(Y))===null||$===void 0?void 0:$.remoteCandidateId;if(K===void 0)return;return H.get(K)})}setMungedSDP($,Y,G){return E(this,void 0,void 0,function*(){if(Y){let H=$.sdp;$.sdp=Y;try{if(this.log.debug("setting munged ".concat(G?"remote":"local"," description"),this.logContext),G)yield this.pc.setRemoteDescription($);else yield this.pc.setLocalDescription($);return}catch(q){this.log.warn("not able to set ".concat($.type,", falling back to unmodified sdp"),Object.assign(Object.assign({},this.logContext),{error:q,sdp:Y})),$.sdp=H}}try{if(G)yield this.pc.setRemoteDescription($);else yield this.pc.setLocalDescription($)}catch(H){let q="unknown error";if(H instanceof Error)q=H.message;else if(typeof H==="string")q=H;let K={error:q,sdp:$.sdp};if(!G&&this.pc.remoteDescription)K.remoteSdp=this.pc.remoteDescription;throw this.log.error("unable to set ".concat($.type),Object.assign(Object.assign({},this.logContext),{fields:K})),new L7(q)}})}ensureVideoDDExtensionForSVC($,Y){var G,H;if(!((G=$.ext)===null||G===void 0?void 0:G.some((K)=>{if(K.uri===dr)return!0;return!1}))){if(this.ddExtID===0){let K=0;Y.media.forEach((N)=>{var U;if(N.type!=="video")return;(U=N.ext)===null||U===void 0||U.forEach((F)=>{if(F.value>K)K=F.value})}),this.ddExtID=K+1}(H=$.ext)===null||H===void 0||H.push({value:this.ddExtID,uri:dr})}}}function Gn($,Y,G){let H=eW($.mid),q=0;if($.rtp.some((K)=>{if(K.codec==="opus")return q=K.payload,!0;return!1}),q>0){if(!$.rtcpFb)$.rtcpFb=[];if(G.includes(H)&&!$.rtcpFb.some((K)=>K.payload===q&&K.type==="nack"))$.rtcpFb.push({payload:q,type:"nack"});if(Y.includes(H)||Y.length===1&&Y[0]==="all")$.fmtp.some((K)=>{if(K.payload===q){if(!K.config.includes("stereo=1"))K.config+=";stereo=1";return!0}return!1})}}function L70($){var Y;let G=[],H=[],q=Y8.parse((Y=$.sdp)!==null&&Y!==void 0?Y:""),K=0;return q.media.forEach((N)=>{var U;let F=eW(N.mid);if(N.type==="audio"){if(N.rtp.some((M)=>{if(M.codec==="opus")return K=M.payload,!0;return!1}),(U=N.rtcpFb)===null||U===void 0?void 0:U.some((M)=>M.payload===K&&M.type==="nack"))H.push(F);N.fmtp.some((M)=>{if(M.payload===K){if(M.config.includes("sprop-stereo=1"))G.push(F);return!0}return!1})}}),{stereoMids:G,nackMids:H}}function Hn($){if($.connection){let Y=$.connection.ip.indexOf(":")>=0;if($.connection.version===4&&Y||$.connection.version===6&&!Y)$.connection.ip="0.0.0.0",$.connection.version=4}}function eW($){return typeof $==="number"?$.toFixed(0):$}var DW="vp8",k70={audioPreset:LW.music,dtx:!0,red:!0,forceStereo:!1,simulcast:!0,screenShareEncoding:V7.h1080fps15.encoding,stopMicTrackOnMute:!1,videoCodec:DW,backupCodec:!0,preConnectBuffer:!1},Kt={deviceId:{ideal:"default"},autoGainControl:!0,echoCancellation:!0,noiseSuppression:!0,voiceIsolation:!0},Nt={deviceId:{ideal:"default"},resolution:qH.h720.resolution},R70={adaptiveStream:!1,dynacast:!1,stopLocalTrackOnUnpublish:!0,reconnectPolicy:new Pa,disconnectOnPageLeave:!0,webAudioMix:!1,singlePeerConnection:!0},XU={autoSubscribe:!0,maxRetries:1,peerConnectionTimeout:15000,websocketTimeout:15000},a1;(function($){$[$.NEW=0]="NEW",$[$.CONNECTING=1]="CONNECTING",$[$.CONNECTED=2]="CONNECTED",$[$.FAILED=3]="FAILED",$[$.CLOSING=4]="CLOSING",$[$.CLOSED=5]="CLOSED"})(a1||(a1={}));class Wt{get needsPublisher(){return this.isPublisherConnectionRequired}get needsSubscriber(){return this.isSubscriberConnectionRequired}get currentState(){return this.state}get mode(){return this._mode}constructor($,Y,G){var H;if(this.peerConnectionTimeout=XU.peerConnectionTimeout,this.log=c0,this.updateState=()=>{var q,K;let N=this.state,U=this.requiredTransports.map((F)=>F.getConnectionState());if(U.every((F)=>F==="connected"))this.state=a1.CONNECTED;else if(U.some((F)=>F==="failed"))this.state=a1.FAILED;else if(U.some((F)=>F==="connecting"))this.state=a1.CONNECTING;else if(U.every((F)=>F==="closed"))this.state=a1.CLOSED;else if(U.some((F)=>F==="closed"))this.state=a1.CLOSING;else if(U.every((F)=>F==="new"))this.state=a1.NEW;if(N!==this.state)this.log.debug("pc state change: from ".concat(a1[N]," to ").concat(a1[this.state]),this.logContext),(q=this.onStateChange)===null||q===void 0||q.call(this,this.state,this.publisher.getConnectionState(),(K=this.subscriber)===null||K===void 0?void 0:K.getConnectionState())},this.log=o5((H=G.loggerName)!==null&&H!==void 0?H:_4.PCManager),this.loggerOptions=G,this.isPublisherConnectionRequired=Y!=="subscriber-primary",this.isSubscriberConnectionRequired=Y==="subscriber-primary",this.publisher=new EW($,G),this._mode=Y,Y!=="publisher-only")this.subscriber=new EW($,G),this.subscriber.onConnectionStateChange=this.updateState,this.subscriber.onIceConnectionStateChange=this.updateState,this.subscriber.onSignalingStatechange=this.updateState,this.subscriber.onIceCandidate=(q)=>{var K;(K=this.onIceCandidate)===null||K===void 0||K.call(this,q,w4.SUBSCRIBER)},this.subscriber.onDataChannel=(q)=>{var K;(K=this.onDataChannel)===null||K===void 0||K.call(this,q)},this.subscriber.onTrack=(q)=>{var K;(K=this.onTrack)===null||K===void 0||K.call(this,q)};this.publisher.onConnectionStateChange=this.updateState,this.publisher.onIceConnectionStateChange=this.updateState,this.publisher.onSignalingStatechange=this.updateState,this.publisher.onIceCandidate=(q)=>{var K;(K=this.onIceCandidate)===null||K===void 0||K.call(this,q,w4.PUBLISHER)},this.publisher.onTrack=(q)=>{var K;(K=this.onTrack)===null||K===void 0||K.call(this,q)},this.publisher.onOffer=(q,K)=>{var N;(N=this.onPublisherOffer)===null||N===void 0||N.call(this,q,K)},this.state=a1.NEW,this.connectionLock=new y2,this.remoteOfferLock=new y2}get logContext(){var $,Y;return Object.assign({},(Y=($=this.loggerOptions).loggerContextCb)===null||Y===void 0?void 0:Y.call($))}requirePublisher(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isPublisherConnectionRequired=$,this.updateState()}createAndSendPublisherOffer($){return this.publisher.createAndSendOffer($)}setPublisherAnswer($,Y){return this.publisher.setRemoteDescription($,Y)}removeTrack($){return this.publisher.removeTrack($)}close(){return E(this,void 0,void 0,function*(){var $;if(this.publisher&&this.publisher.getSignallingState()!=="closed"){let Y=this.publisher;for(let G of Y.getSenders())try{if(Y.canRemoveTrack())Y.removeTrack(G)}catch(H){this.log.warn("could not removeTrack",Object.assign(Object.assign({},this.logContext),{error:H}))}}yield Promise.all([this.publisher.close(),($=this.subscriber)===null||$===void 0?void 0:$.close()]),this.updateState()})}triggerIceRestart(){return E(this,void 0,void 0,function*(){if(this.subscriber)this.subscriber.restartingIce=!0;if(this.needsPublisher)yield this.createAndSendPublisherOffer({iceRestart:!0})})}addIceCandidate($,Y){return E(this,void 0,void 0,function*(){var G;if(Y===w4.PUBLISHER)yield this.publisher.addIceCandidate($);else yield(G=this.subscriber)===null||G===void 0?void 0:G.addIceCandidate($)})}createSubscriberAnswerFromOffer($,Y){return E(this,void 0,void 0,function*(){var G,H,q;this.log.debug("received server offer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:$.type,sdp:$.sdp,signalingState:(G=this.subscriber)===null||G===void 0?void 0:G.getSignallingState().toString()}));let K=yield this.remoteOfferLock.lock();try{if(!(yield(H=this.subscriber)===null||H===void 0?void 0:H.setRemoteDescription($,Y)))return;return yield(q=this.subscriber)===null||q===void 0?void 0:q.createAndSetAnswer()}finally{K()}})}updateConfiguration($,Y){var G;if(this.publisher.setConfiguration($),(G=this.subscriber)===null||G===void 0||G.setConfiguration($),Y)this.triggerIceRestart()}ensurePCTransportConnection($,Y){return E(this,void 0,void 0,function*(){var G;let H=yield this.connectionLock.lock();try{if(this.isPublisherConnectionRequired&&this.publisher.getConnectionState()!=="connected"&&this.publisher.getConnectionState()!=="connecting")this.log.debug("negotiation required, start negotiating",this.logContext),this.publisher.negotiate();yield Promise.all((G=this.requiredTransports)===null||G===void 0?void 0:G.map((q)=>this.ensureTransportConnected(q,$,Y)))}finally{H()}})}negotiate($){return E(this,void 0,void 0,function*(){return new g2((Y,G)=>E(this,void 0,void 0,function*(){let H=setTimeout(()=>{G(new L7("negotiation timed out"))},this.peerConnectionTimeout),q=()=>{clearTimeout(H),G(new L7("negotiation aborted"))};$.signal.addEventListener("abort",q),this.publisher.once(a3.NegotiationStarted,()=>{if($.signal.aborted)return;this.publisher.once(a3.NegotiationComplete,()=>{clearTimeout(H),Y()})}),yield this.publisher.negotiate((K)=>{if(clearTimeout(H),K instanceof Error)G(K);else G(Error(String(K)))})}))})}addPublisherTransceiver($,Y){return this.publisher.addTransceiver($,Y)}addPublisherTransceiverOfKind($,Y){return this.publisher.addTransceiverOfKind($,Y)}getMidForReceiver($){let G=(this.subscriber?this.subscriber.getTransceivers():this.publisher.getTransceivers()).find((H)=>H.receiver===$);return G===null||G===void 0?void 0:G.mid}addPublisherTrack($){return this.publisher.addTrack($)}createPublisherDataChannel($,Y){return this.publisher.createDataChannel($,Y)}getConnectedAddress($){if($===w4.PUBLISHER)return this.publisher.getConnectedAddress();else if($===w4.SUBSCRIBER)return this.publisher.getConnectedAddress();return this.requiredTransports[0].getConnectedAddress()}get requiredTransports(){let $=[];if(this.isPublisherConnectionRequired)$.push(this.publisher);if(this.isSubscriberConnectionRequired&&this.subscriber)$.push(this.subscriber);return $}ensureTransportConnected($,Y){return E(this,arguments,void 0,function(G,H){var q=this;let K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.peerConnectionTimeout;return function*(){if(G.getConnectionState()==="connected")return;return new Promise((U,F)=>E(q,void 0,void 0,function*(){let M=()=>{this.log.warn("abort transport connection",this.logContext),E2.clearTimeout(L),F(S0.cancelled("room connection has been cancelled"))};if(H===null||H===void 0?void 0:H.signal.aborted)M();H===null||H===void 0||H.signal.addEventListener("abort",M);let L=E2.setTimeout(()=>{H===null||H===void 0||H.signal.removeEventListener("abort",M),F(S0.internal("could not establish pc connection"))},K);while(this.state!==a1.CONNECTED)if(yield m2(50),H===null||H===void 0?void 0:H.signal.aborted){F(S0.cancelled("room connection has been cancelled"));return}E2.clearTimeout(L),H===null||H===void 0||H.signal.removeEventListener("abort",M),U()}))}()})}}var Ut=5000,w70=30000;class A1{static fetchRegionSettings($,Y,G){return E(this,void 0,void 0,function*(){let H=yield A1.fetchLock.lock();try{let q=yield fetch("".concat(x70($),"/regions"),{headers:{authorization:"Bearer ".concat(Y)},signal:G});if(q.ok){let K=n80(q.headers),N=K?K*1000:Ut;return{regionSettings:yield q.json(),updatedAtInMs:Date.now(),maxAgeInMs:N}}else if(q.status===401)throw S0.notAllowed("Could not fetch region settings: ".concat(q.statusText),q.status);else throw S0.internal("Could not fetch region settings: ".concat(q.statusText))}catch(q){if(q instanceof S0)throw q;else if(G===null||G===void 0?void 0:G.aborted)throw S0.cancelled("Region fetching was aborted");else throw S0.serverUnreachable("Could not fetch region settings, ".concat(q instanceof Error?"".concat(q.name,": ").concat(q.message):q))}finally{H()}})}static scheduleRefetch($,Y,G){return E(this,void 0,void 0,function*(){let H=A1.settingsTimeouts.get($.hostname);clearTimeout(H),A1.settingsTimeouts.set($.hostname,setTimeout(()=>E(this,void 0,void 0,function*(){try{let q=yield A1.fetchRegionSettings($,Y);A1.updateCachedRegionSettings($,Y,q)}catch(q){if(q instanceof S0&&q.reason===T1.NotAllowed){c0.debug("token is not valid, cancelling auto region refresh");return}c0.debug("auto refetching of region settings failed",{error:q}),A1.scheduleRefetch($,Y,G)}}),G))})}static updateCachedRegionSettings($,Y,G){A1.cache.set($.hostname,G),A1.scheduleRefetch($,Y,G.maxAgeInMs)}static stopRefetch($){let Y=A1.settingsTimeouts.get($);if(Y)clearTimeout(Y),A1.settingsTimeouts.delete($)}static scheduleCleanup($){let Y=A1.connectionTrackers.get($);if(!Y)return;if(Y.cleanupTimeout)clearTimeout(Y.cleanupTimeout);Y.cleanupTimeout=setTimeout(()=>{let G=A1.connectionTrackers.get($);if(G&&G.connectionCount===0)c0.debug("stopping region refetch after disconnect delay",{hostname:$}),A1.stopRefetch($);if(G)G.cleanupTimeout=void 0},w70)}static cancelCleanup($){let Y=A1.connectionTrackers.get($);if(Y===null||Y===void 0?void 0:Y.cleanupTimeout)clearTimeout(Y.cleanupTimeout),Y.cleanupTimeout=void 0}notifyConnected(){let $=this.serverUrl.hostname,Y=A1.connectionTrackers.get($);if(!Y)Y={connectionCount:0},A1.connectionTrackers.set($,Y);Y.connectionCount++,A1.cancelCleanup($)}notifyDisconnected(){let $=this.serverUrl.hostname,Y=A1.connectionTrackers.get($);if(!Y)return;if(Y.connectionCount=Math.max(0,Y.connectionCount-1),Y.connectionCount===0)A1.scheduleCleanup($)}constructor($,Y){this.attemptedRegions=[],this.serverUrl=new URL($),this.token=Y}updateToken($){this.token=$}isCloud(){return XX(this.serverUrl)}getServerUrl(){return this.serverUrl}fetchRegionSettings($){return E(this,void 0,void 0,function*(){return A1.fetchRegionSettings(this.serverUrl,this.token,$)})}getNextBestRegionUrl($){return E(this,void 0,void 0,function*(){if(!this.isCloud())throw Error("region availability is only supported for LiveKit Cloud domains");let Y=A1.cache.get(this.serverUrl.hostname);if(!Y||Date.now()-Y.updatedAtInMs>Y.maxAgeInMs)Y=yield this.fetchRegionSettings($),A1.updateCachedRegionSettings(this.serverUrl,this.token,Y);let G=Y.regionSettings.regions.filter((H)=>!this.attemptedRegions.find((q)=>q.url===H.url));if(G.length>0){let H=G[0];return this.attemptedRegions.push(H),c0.debug("next region: ".concat(H.region)),H.url}else return null})}resetAttempts(){this.attemptedRegions=[]}setServerReportedRegions($){A1.updateCachedRegionSettings(this.serverUrl,this.token,$)}}A1.cache=new Map;A1.settingsTimeouts=new Map;A1.connectionTrackers=new Map;A1.fetchLock=new y2;function x70($){return"".concat($.protocol.replace("ws","http"),"//").concat($.host,"/settings")}class e1 extends Error{constructor($,Y,G){super(Y);this.code=$,this.message=zn(Y,e1.MAX_MESSAGE_BYTES),this.data=G?zn(G,e1.MAX_DATA_BYTES):void 0}static fromProto($){return new e1($.code,$.message,$.data)}toProto(){return new nn({code:this.code,message:this.message,data:this.data})}static builtIn($,Y){return new e1(e1.ErrorCode[$],e1.ErrorMessage[$],Y)}}e1.MAX_MESSAGE_BYTES=256;e1.MAX_DATA_BYTES=15360;e1.ErrorCode={APPLICATION_ERROR:1500,CONNECTION_TIMEOUT:1501,RESPONSE_TIMEOUT:1502,RECIPIENT_DISCONNECTED:1503,RESPONSE_PAYLOAD_TOO_LARGE:1504,SEND_FAILED:1505,UNSUPPORTED_METHOD:1400,RECIPIENT_NOT_FOUND:1401,REQUEST_PAYLOAD_TOO_LARGE:1402,UNSUPPORTED_SERVER:1403,UNSUPPORTED_VERSION:1404};e1.ErrorMessage={APPLICATION_ERROR:"Application error in method handler",CONNECTION_TIMEOUT:"Connection timeout",RESPONSE_TIMEOUT:"Response timeout",RECIPIENT_DISCONNECTED:"Recipient disconnected",RESPONSE_PAYLOAD_TOO_LARGE:"Response payload too large",SEND_FAILED:"Failed to send",UNSUPPORTED_METHOD:"Method not supported at destination",RECIPIENT_NOT_FOUND:"Recipient not found",REQUEST_PAYLOAD_TOO_LARGE:"Request payload too large",UNSUPPORTED_SERVER:"RPC not supported by server",UNSUPPORTED_VERSION:"Unsupported RPC version"};var Ft=15360;function $U($){return new TextEncoder().encode($).length}function zn($,Y){if($U($)<=Y)return $;let G=0,H=$.length,q=new TextEncoder;while(G<H){let K=Math.floor((G+H+1)/2);if(q.encode($.slice(0,K)).length<=Y)G=K;else H=K-1}return $.slice(0,G)}var ZU=2000;function pB($,Y){if(!Y)return 0;let G,H;if("bytesReceived"in $)G=$.bytesReceived,H=Y.bytesReceived;else if("bytesSent"in $)G=$.bytesSent,H=Y.bytesSent;if(G===void 0||H===void 0||$.timestamp===void 0||Y.timestamp===void 0)return 0;return(G-H)*8*1000/($.timestamp-Y.timestamp)}var YU=typeof MediaRecorder<"u";class Mt{constructor(){throw Error("MediaRecorder is not available in this environment")}}var V70=YU?MediaRecorder:Mt;class Ot extends V70{constructor($,Y){if(!YU)throw Error("MediaRecorder is not available in this environment");super(new MediaStream([$.mediaStreamTrack]),Y);let G,H,q=()=>H===void 0,K=()=>{this.removeEventListener("dataavailable",G),this.removeEventListener("stop",K),this.removeEventListener("error",N),H===null||H===void 0||H.close(),H=void 0},N=(U)=>{H===null||H===void 0||H.error(U),this.removeEventListener("dataavailable",G),this.removeEventListener("stop",K),this.removeEventListener("error",N),H=void 0};this.byteStream=new ReadableStream({start:(U)=>{H=U,G=(F)=>E(this,void 0,void 0,function*(){let M;if(F.data.arrayBuffer){let L=yield F.data.arrayBuffer();M=new Uint8Array(L)}else if(F.data.byteArray)M=F.data.byteArray;else throw Error("no data available!");if(q())return;U.enqueue(M)}),this.addEventListener("dataavailable",G)},cancel:()=>{K()}}),this.addEventListener("stop",K),this.addEventListener("error",N)}}function _70(){return YU}var I70=1000,C70=1e4;class QU extends e{get sender(){return this._sender}set sender($){this._sender=$}get constraints(){return this._constraints}get hasPreConnectBuffer(){return!!this.localTrackRecorder}constructor($,Y,G){let H=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,q=arguments.length>4?arguments[4]:void 0;super($,Y,q);if(this.manuallyStopped=!1,this._isUpstreamPaused=!1,this.handleTrackMuteEvent=()=>this.debouncedTrackMuteHandler().catch(()=>this.log.debug("track mute bounce got cancelled by an unmute event",this.logContext)),this.debouncedTrackMuteHandler=tW(()=>E(this,void 0,void 0,function*(){yield this.pauseUpstream()}),5000),this.handleTrackUnmuteEvent=()=>E(this,void 0,void 0,function*(){this.debouncedTrackMuteHandler.cancel("unmute"),yield this.resumeUpstream()}),this.handleEnded=()=>{if(this.isInBackground)this.reacquireTrack=!0;this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),this.emit(B0.Ended,this)},this.reacquireTrack=!1,this.providedByUser=H,this.muteLock=new y2,this.pauseUpstreamLock=new y2,this.trackChangeLock=new y2,this.trackChangeLock.lock().then((K)=>E(this,void 0,void 0,function*(){try{yield this.setMediaStreamTrack($,!0)}finally{K()}})),this._constraints=$.getConstraints(),G)this._constraints=G}get id(){return this._mediaStreamTrack.id}get dimensions(){if(this.kind!==e.Kind.Video)return;let{width:$,height:Y}=this._mediaStreamTrack.getSettings();if($&&Y)return{width:$,height:Y};return}get isUpstreamPaused(){return this._isUpstreamPaused}get isUserProvided(){return this.providedByUser}get mediaStreamTrack(){var $,Y;return(Y=($=this.processor)===null||$===void 0?void 0:$.processedTrack)!==null&&Y!==void 0?Y:this._mediaStreamTrack}get isLocal(){return!0}getSourceTrackSettings(){return this._mediaStreamTrack.getSettings()}setMediaStreamTrack($,Y){return E(this,void 0,void 0,function*(){var G;if($===this._mediaStreamTrack&&!Y)return;if(this._mediaStreamTrack)this.attachedElements.forEach((q)=>{o3(this._mediaStreamTrack,q)}),this.debouncedTrackMuteHandler.cancel("new-track"),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent);if(this.mediaStream=new MediaStream([$]),$)$.addEventListener("ended",this.handleEnded),$.addEventListener("mute",this.handleTrackMuteEvent),$.addEventListener("unmute",this.handleTrackUnmuteEvent),this._constraints=$.getConstraints();let H;if(this.processor&&$){if(this.log.debug("restarting processor",this.logContext),this.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");if(this.processorElement)d3($,this.processorElement),this.processorElement.muted=!0;yield this.processor.restart({track:$,kind:this.kind,element:this.processorElement}),H=this.processor.processedTrack}if(this.sender&&((G=this.sender.transport)===null||G===void 0?void 0:G.state)!=="closed")yield this.sender.replaceTrack(H!==null&&H!==void 0?H:$);if(!this.providedByUser&&this._mediaStreamTrack!==$)this._mediaStreamTrack.stop();if(this._mediaStreamTrack=$,$)this._mediaStreamTrack.enabled=!this.isMuted,yield this.resumeUpstream(),this.attachedElements.forEach((q)=>{d3(H!==null&&H!==void 0?H:$,q)})})}waitForDimensions(){return E(this,arguments,void 0,function(){var $=this;let Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:I70;return function*(){var G;if($.kind===e.Kind.Audio)throw Error("cannot get dimensions for audio tracks");if(((G=G6())===null||G===void 0?void 0:G.os)==="iOS")yield m2(10);let H=Date.now();while(Date.now()-H<Y){let q=$.dimensions;if(q)return q;yield m2(50)}throw new z5("unable to get track dimensions after timeout")}()})}setDeviceId($){return E(this,void 0,void 0,function*(){if(this._constraints.deviceId===$&&this._mediaStreamTrack.getSettings().deviceId===B8($))return!0;if(this._constraints.deviceId=$,this.isMuted)return!0;return yield this.restartTrack(),B8($)===this._mediaStreamTrack.getSettings().deviceId})}getDeviceId(){return E(this,arguments,void 0,function(){var $=this;let Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){if($.source===e.Source.ScreenShare)return;let{deviceId:G,groupId:H}=$._mediaStreamTrack.getSettings(),q=$.kind===e.Kind.Audio?"audioinput":"videoinput";return Y?T2.getInstance().normalizeDeviceId(q,G,H):G}()})}mute(){return E(this,void 0,void 0,function*(){return this.setTrackMuted(!0),this})}unmute(){return E(this,void 0,void 0,function*(){return this.setTrackMuted(!1),this})}replaceTrack($,Y){return E(this,void 0,void 0,function*(){let G=yield this.trackChangeLock.lock();try{if(!this.sender)throw new z5("unable to replace an unpublished track");let H,q;if(typeof Y==="boolean")H=Y;else if(Y!==void 0)H=Y.userProvidedTrack,q=Y.stopProcessor;if(this.providedByUser=H!==null&&H!==void 0?H:!0,this.log.debug("replace MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack($),q&&this.processor)yield this.internalStopProcessor();return this}finally{G()}})}restart($){return E(this,void 0,void 0,function*(){this.manuallyStopped=!1;let Y=yield this.trackChangeLock.lock();try{if(!$)$=this._constraints;let{deviceId:G,facingMode:H}=$,q=Q80($,["deviceId","facingMode"]);this.log.debug("restarting track with constraints",Object.assign(Object.assign({},this.logContext),{constraints:$}));let K={audio:!1,video:!1};if(this.kind===e.Kind.Video)K.video=G||H?{deviceId:G,facingMode:H}:!0;else K.audio=G?Object.assign({deviceId:G},q):!0;this.attachedElements.forEach((F)=>{o3(this.mediaStreamTrack,F)}),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.stop();let U=(yield navigator.mediaDevices.getUserMedia(K)).getTracks()[0];if(this.kind===e.Kind.Video)yield U.applyConstraints(q);if(U.addEventListener("ended",this.handleEnded),this.log.debug("re-acquired MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(U),this._constraints=$,this.emit(B0.Restarted,this),this.manuallyStopped)this.log.warn("track was stopped during a restart, stopping restarted track",this.logContext),this.stop();return this}finally{Y()}})}setTrackMuted($){if(this.log.debug("setting ".concat(this.kind," track ").concat($?"muted":"unmuted"),this.logContext),this.isMuted===$&&this._mediaStreamTrack.enabled!==$)return;this.isMuted=$,this._mediaStreamTrack.enabled=!$,this.emit($?B0.Muted:B0.Unmuted,this)}get needsReAcquisition(){return this._mediaStreamTrack.readyState!=="live"||this._mediaStreamTrack.muted||!this._mediaStreamTrack.enabled||this.reacquireTrack}handleAppVisibilityChanged(){let $=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return E(this,void 0,void 0,function*(){if(yield $.handleAppVisibilityChanged.call(this),!Qt())return;if(this.log.debug("visibility changed, is in Background: ".concat(this.isInBackground),this.logContext),!this.isInBackground&&this.needsReAcquisition&&!this.isUserProvided&&!this.isMuted)this.log.debug("track needs to be reacquired, restarting ".concat(this.source),this.logContext),yield this.restart(),this.reacquireTrack=!1})}stop(){var $;this.manuallyStopped=!0,super.stop(),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),($=this.processor)===null||$===void 0||$.destroy(),this.processor=void 0}pauseUpstream(){return E(this,void 0,void 0,function*(){var $;let Y=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!0)return;if(!this.sender){this.log.warn("unable to pause upstream for an unpublished track",this.logContext);return}this._isUpstreamPaused=!0,this.emit(B0.UpstreamPaused,this);let G=G6();if((G===null||G===void 0?void 0:G.name)==="Safari"&&Y4(G.version,"12.0")<0)throw new vB("pauseUpstream is not supported on Safari < 12.");if((($=this.sender.transport)===null||$===void 0?void 0:$.state)!=="closed")yield this.sender.replaceTrack(null)}finally{Y()}})}resumeUpstream(){return E(this,void 0,void 0,function*(){var $;let Y=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!1)return;if(!this.sender){this.log.warn("unable to resume upstream for an unpublished track",this.logContext);return}if(this._isUpstreamPaused=!1,this.emit(B0.UpstreamResumed,this),(($=this.sender.transport)===null||$===void 0?void 0:$.state)!=="closed")yield this.sender.replaceTrack(this.mediaStreamTrack)}finally{Y()}})}getRTCStatsReport(){return E(this,void 0,void 0,function*(){var $;if(!(($=this.sender)===null||$===void 0?void 0:$.getStats))return;return yield this.sender.getStats()})}setProcessor($){return E(this,arguments,void 0,function(Y){var G=this;let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var q;let K=yield G.trackChangeLock.lock();try{G.log.debug("setting up processor",G.logContext);let N=document.createElement(G.kind),U={kind:G.kind,track:G._mediaStreamTrack,element:N,audioContext:G.audioContext};if(yield Y.init(U),G.log.debug("processor initialized",G.logContext),G.processor)yield G.internalStopProcessor();if(G.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");if(d3(G._mediaStreamTrack,N),N.muted=!0,N.play().catch((F)=>{if(F instanceof DOMException&&F.name==="AbortError")G.log.warn("failed to play processor element, retrying",Object.assign(Object.assign({},G.logContext),{error:F})),setTimeout(()=>{N.play().catch((M)=>{G.log.error("failed to play processor element",Object.assign(Object.assign({},G.logContext),{err:M}))})},100);else G.log.error("failed to play processor element",Object.assign(Object.assign({},G.logContext),{error:F}))}),G.processor=Y,G.processorElement=N,G.processor.processedTrack){for(let F of G.attachedElements)if(F!==G.processorElement&&H)o3(G._mediaStreamTrack,F),d3(G.processor.processedTrack,F);yield(q=G.sender)===null||q===void 0?void 0:q.replaceTrack(G.processor.processedTrack)}G.emit(B0.TrackProcessorUpdate,G.processor)}finally{K()}}()})}getProcessor(){return this.processor}stopProcessor(){return E(this,arguments,void 0,function(){var $=this;let Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){let G=yield $.trackChangeLock.lock();try{yield $.internalStopProcessor(Y)}finally{G()}}()})}internalStopProcessor(){return E(this,arguments,void 0,function(){var $=this;let Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var G,H;if(!$.processor)return;if($.log.debug("stopping processor",$.logContext),(G=$.processor.processedTrack)===null||G===void 0||G.stop(),yield $.processor.destroy(),$.processor=void 0,!Y)(H=$.processorElement)===null||H===void 0||H.remove(),$.processorElement=void 0;yield $._mediaStreamTrack.applyConstraints($._constraints),yield $.setMediaStreamTrack($._mediaStreamTrack,!0),$.emit(B0.TrackProcessorUpdate)}()})}startPreConnectBuffer(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:100;if(!_70()){this.log.warn("MediaRecorder is not available, cannot start preconnect buffer",this.logContext);return}if(!this.localTrackRecorder){let Y="audio/webm;codecs=opus";if(!MediaRecorder.isTypeSupported(Y))Y="video/mp4";this.localTrackRecorder=new Ot(this,{mimeType:Y})}else{this.log.warn("preconnect buffer already started");return}this.localTrackRecorder.start($),this.autoStopPreConnectBuffer=setTimeout(()=>{this.log.warn("preconnect buffer timed out, stopping recording automatically",this.logContext),this.stopPreConnectBuffer()},C70)}stopPreConnectBuffer(){if(clearTimeout(this.autoStopPreConnectBuffer),this.localTrackRecorder)this.localTrackRecorder.stop(),this.localTrackRecorder=void 0}getPreConnectBuffer(){var $;return($=this.localTrackRecorder)===null||$===void 0?void 0:$.byteStream}getPreConnectBufferMimeType(){var $;return($=this.localTrackRecorder)===null||$===void 0?void 0:$.mimeType}}class AH extends QU{get enhancedNoiseCancellation(){return this.isKrispNoiseFilterEnabled}constructor($,Y){let G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,H=arguments.length>3?arguments[3]:void 0,q=arguments.length>4?arguments[4]:void 0;super($,e.Kind.Audio,Y,G,q);this.stopOnMute=!1,this.isKrispNoiseFilterEnabled=!1,this.monitorSender=()=>E(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let K;try{K=yield this.getSenderStats()}catch(N){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:N}));return}if(K&&this.prevStats)this._currentBitrate=pB(K,this.prevStats);this.prevStats=K}),this.handleKrispNoiseFilterEnable=()=>{this.isKrispNoiseFilterEnabled=!0,this.log.debug("Krisp noise filter enabled",this.logContext),this.emit(B0.AudioTrackFeatureUpdate,this,C2.TF_ENHANCED_NOISE_CANCELLATION,!0)},this.handleKrispNoiseFilterDisable=()=>{this.isKrispNoiseFilterEnabled=!1,this.log.debug("Krisp noise filter disabled",this.logContext),this.emit(B0.AudioTrackFeatureUpdate,this,C2.TF_ENHANCED_NOISE_CANCELLATION,!1)},this.audioContext=H,this.checkForSilence()}mute(){let $=Object.create(null,{mute:{get:()=>super.mute}});return E(this,void 0,void 0,function*(){let Y=yield this.muteLock.lock();try{if(this.isMuted)return this.log.debug("Track already muted",this.logContext),this;if(this.source===e.Source.Microphone&&this.stopOnMute&&!this.isUserProvided)this.log.debug("stopping mic track",this.logContext),this._mediaStreamTrack.stop();return yield $.mute.call(this),this}finally{Y()}})}unmute(){let $=Object.create(null,{unmute:{get:()=>super.unmute}});return E(this,void 0,void 0,function*(){let Y=yield this.muteLock.lock();try{if(!this.isMuted)return this.log.debug("Track already unmuted",this.logContext),this;let G=this._constraints.deviceId&&this._mediaStreamTrack.getSettings().deviceId!==B8(this._constraints.deviceId);if(this.source===e.Source.Microphone&&(this.stopOnMute||this._mediaStreamTrack.readyState==="ended"||G)&&!this.isUserProvided)this.log.debug("reacquiring mic track",this.logContext),yield this.restartTrack();return yield $.unmute.call(this),this}finally{Y()}})}restartTrack($){return E(this,void 0,void 0,function*(){let Y;if($){let G=rW({audio:$});if(typeof G.audio!=="boolean")Y=G.audio}yield this.restart(Y)})}restart($){let Y=Object.create(null,{restart:{get:()=>super.restart}});return E(this,void 0,void 0,function*(){let G=yield Y.restart.call(this,$);return this.checkForSilence(),G})}startMonitor(){if(!M6())return;if(this.monitorInterval)return;this.monitorInterval=setInterval(()=>{this.monitorSender()},ZU)}setProcessor($){return E(this,void 0,void 0,function*(){var Y;let G=yield this.trackChangeLock.lock();try{if(!B5()&&!this.audioContext)throw Error("Audio context needs to be set on LocalAudioTrack in order to enable processors");if(this.processor)yield this.internalStopProcessor();let H={kind:this.kind,track:this._mediaStreamTrack,audioContext:this.audioContext};if(this.log.debug("setting up audio processor ".concat($.name),this.logContext),yield $.init(H),this.processor=$,this.processor.processedTrack)yield(Y=this.sender)===null||Y===void 0?void 0:Y.replaceTrack(this.processor.processedTrack),this.processor.processedTrack.addEventListener("enable-lk-krisp-noise-filter",this.handleKrispNoiseFilterEnable),this.processor.processedTrack.addEventListener("disable-lk-krisp-noise-filter",this.handleKrispNoiseFilterDisable);this.emit(B0.TrackProcessorUpdate,this.processor)}finally{G()}})}setAudioContext($){this.audioContext=$}getSenderStats(){return E(this,void 0,void 0,function*(){var $;if(!(($=this.sender)===null||$===void 0?void 0:$.getStats))return;let Y=yield this.sender.getStats(),G;return Y.forEach((H)=>{if(H.type==="outbound-rtp")G={type:"audio",streamId:H.id,packetsSent:H.packetsSent,packetsLost:H.packetsLost,bytesSent:H.bytesSent,timestamp:H.timestamp,roundTripTime:H.roundTripTime,jitter:H.jitter}}),G})}checkForSilence(){return E(this,void 0,void 0,function*(){let $=yield $t(this);if($){if(!this.isMuted)this.log.debug("silence detected on local audio track",this.logContext);this.emit(B0.AudioSilenceDetected)}return $})}}function T70($,Y,G){switch($.kind){case"audio":return new AH($,Y,!1,void 0,G);case"video":return new KH($,Y,!1,G);default:throw new z5("unsupported track type: ".concat($.kind))}}var E70=Object.values(qH),D70=Object.values(kW),S70=Object.values(V7),v70=[qH.h180,qH.h360],j70=[kW.h180,kW.h360],p70=($)=>{return[{scaleResolutionDownBy:2,fps:$.encoding.maxFramerate}].map((G)=>{var H,q;return new P1(Math.floor($.width/G.scaleResolutionDownBy),Math.floor($.height/G.scaleResolutionDownBy),Math.max(150000,Math.floor($.encoding.maxBitrate/(Math.pow(G.scaleResolutionDownBy,2)*(((H=$.encoding.maxFramerate)!==null&&H!==void 0?H:30)/((q=G.fps)!==null&&q!==void 0?q:30))))),G.fps,$.encoding.priority)})},SW=["q","h","f"];function vW($,Y,G,H){var q,K;let N=H===null||H===void 0?void 0:H.videoEncoding;if($)N=H===null||H===void 0?void 0:H.screenShareEncoding;let U=H===null||H===void 0?void 0:H.simulcast,F=H===null||H===void 0?void 0:H.scalabilityMode,M=H===null||H===void 0?void 0:H.videoCodec;if(!N&&!U&&!F||!Y||!G)return[{}];if(!N)N=g70($,Y,G,M),c0.debug("using video encoding",N);let L=N.maxFramerate,k=new P1(Y,G,N.maxBitrate,N.maxFramerate,N.priority);if(F&&x4(M)){let S=new GU(F),T=[];if(S.spatial>3)throw Error("unsupported scalabilityMode: ".concat(F));let y=G6();if(BH()||B5()||(y===null||y===void 0?void 0:y.name)==="Chrome"&&Y4(y===null||y===void 0?void 0:y.version,"113")<0){let g=S.suffix=="h"?2:3,o=m80(y);for(let c=0;c<S.spatial;c+=1)T.push({rid:SW[2-c],maxBitrate:N.maxBitrate/Math.pow(g,c),maxFramerate:k.encoding.maxFramerate,scaleResolutionDownBy:o?Math.pow(2,c):void 0});T[0].scalabilityMode=F}else T.push({maxBitrate:N.maxBitrate,maxFramerate:k.encoding.maxFramerate,scalabilityMode:F});if(k.encoding.priority)T[0].priority=k.encoding.priority,T[0].networkPriority=k.encoding.priority;return c0.debug("using svc encoding",{encodings:T}),T}if(!U)return[N];let R=[];if($)R=(q=Bn(H===null||H===void 0?void 0:H.screenShareSimulcastLayers))!==null&&q!==void 0?q:qn($,k);else R=(K=Bn(H===null||H===void 0?void 0:H.videoSimulcastLayers))!==null&&K!==void 0?K:qn($,k);let _;if(R.length>0){let S=R[0];if(R.length>1)[,_]=R;let T=Math.max(Y,G);if(T>=960&&_)return YW(Y,G,[S,_,k],L);if(T>=480)return YW(Y,G,[S,k],L)}return YW(Y,G,[k])}function f70($,Y,G){var H,q,K,N;if(!G.backupCodec||G.backupCodec===!0||G.backupCodec.codec===G.videoCodec)return;if(Y!==G.backupCodec.codec)c0.warn("requested a different codec than specified as backup",{serverRequested:Y,backup:G.backupCodec.codec});G.videoCodec=Y,G.videoEncoding=G.backupCodec.encoding;let U=$.mediaStreamTrack.getSettings(),F=(H=U.width)!==null&&H!==void 0?H:(q=$.dimensions)===null||q===void 0?void 0:q.width,M=(K=U.height)!==null&&K!==void 0?K:(N=$.dimensions)===null||N===void 0?void 0:N.height;if($.source===e.Source.ScreenShare&&G.simulcast)G.simulcast=!1;return vW($.source===e.Source.ScreenShare,F,M,G)}function g70($,Y,G,H){let q=m70($,Y,G),{encoding:K}=q[0],N=Math.max(Y,G);for(let U=0;U<q.length;U+=1){let F=q[U];if(K=F.encoding,F.width>=N)break}if(H)switch(H){case"av1":case"h265":K=Object.assign({},K),K.maxBitrate=K.maxBitrate*0.7;break;case"vp9":K=Object.assign({},K),K.maxBitrate=K.maxBitrate*0.85;break}return K}function m70($,Y,G){if($)return S70;let H=Y>G?Y/G:G/Y;if(Math.abs(H-1.7777777777777777)<Math.abs(H-1.3333333333333333))return E70;return D70}function qn($,Y){if($)return p70(Y);let{width:G,height:H}=Y,q=G>H?G/H:H/G;if(Math.abs(q-1.7777777777777777)<Math.abs(q-1.3333333333333333))return v70;return j70}function YW($,Y,G,H){let q=[];if(G.forEach((K,N)=>{if(N>=SW.length)return;let U=Math.min($,Y),M={rid:SW[N],scaleResolutionDownBy:Math.max(1,U/Math.min(K.width,K.height)),maxBitrate:K.encoding.maxBitrate},L=H&&K.encoding.maxFramerate?Math.min(H,K.encoding.maxFramerate):K.encoding.maxFramerate;if(L)M.maxFramerate=L;let k=R7()||N===0;if(K.encoding.priority&&k)M.priority=K.encoding.priority,M.networkPriority=K.encoding.priority;q.push(M)}),B5()&&Ht()==="ios"){let K=void 0;q.forEach((U)=>{if(!K)K=U.maxFramerate;else if(U.maxFramerate&&U.maxFramerate>K)K=U.maxFramerate});let N=!0;q.forEach((U)=>{var F;if(U.maxFramerate!=K){if(N)N=!1,c0.info("Simulcast on iOS React-Native requires all encodings to share the same framerate.");c0.info('Setting framerate of encoding "'.concat((F=U.rid)!==null&&F!==void 0?F:"",'" to ').concat(K)),U.maxFramerate=K}})}return q}function Bn($){if(!$)return;return $.sort((Y,G)=>{let{encoding:H}=Y,{encoding:q}=G;if(H.maxBitrate>q.maxBitrate)return 1;if(H.maxBitrate<q.maxBitrate)return-1;if(H.maxBitrate===q.maxBitrate&&H.maxFramerate&&q.maxFramerate)return H.maxFramerate>q.maxFramerate?1:-1;return 0})}class GU{constructor($){let Y=$.match(/^L(\d)T(\d)(h|_KEY|_KEY_SHIFT){0,1}$/);if(!Y)throw Error("invalid scalability mode");if(this.spatial=parseInt(Y[1]),this.temporal=parseInt(Y[2]),Y.length>3)switch(Y[3]){case"h":case"_KEY":case"_KEY_SHIFT":this.suffix=Y[3]}}toString(){var $;return"L".concat(this.spatial,"T").concat(this.temporal).concat(($=this.suffix)!==null&&$!==void 0?$:"")}}function y70($){if($.source===e.Source.ScreenShare||$.constraints.height&&B8($.constraints.height)>=1080)return"maintain-resolution";else return"balanced"}var b70=5000;class KH extends QU{get sender(){return this._sender}set sender($){if(this._sender=$,this.degradationPreference)this.setDegradationPreference(this.degradationPreference)}constructor($,Y){let G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,H=arguments.length>3?arguments[3]:void 0;super($,e.Kind.Video,Y,G,H);this.simulcastCodecs=new Map,this.degradationPreference="balanced",this.isCpuConstrained=!1,this.optimizeForPerformance=!1,this.monitorSender=()=>E(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let q;try{q=yield this.getSenderStats()}catch(U){this.log.error("could not get video sender stats",Object.assign(Object.assign({},this.logContext),{error:U}));return}let K=new Map(q.map((U)=>[U.rid,U])),N=q.some((U)=>U.qualityLimitationReason==="cpu");if(N!==this.isCpuConstrained){if(this.isCpuConstrained=N,this.isCpuConstrained)this.emit(B0.CpuConstrained)}if(this.prevStats){let U=0;K.forEach((F,M)=>{var L;let k=(L=this.prevStats)===null||L===void 0?void 0:L.get(M);U+=pB(F,k)}),this._currentBitrate=U}this.prevStats=K}),this.senderLock=new y2}get isSimulcast(){if(this.sender&&this.sender.getParameters().encodings.length>1)return!0;return!1}startMonitor($){var Y;if(this.signalClient=$,!M6())return;let G=(Y=this.sender)===null||Y===void 0?void 0:Y.getParameters();if(G)this.encodings=G.encodings;if(this.monitorInterval)return;this.monitorInterval=setInterval(()=>{this.monitorSender()},ZU)}stop(){this._mediaStreamTrack.getConstraints(),this.simulcastCodecs.forEach(($)=>{$.mediaStreamTrack.stop()}),super.stop()}pauseUpstream(){let $=Object.create(null,{pauseUpstream:{get:()=>super.pauseUpstream}});return E(this,void 0,void 0,function*(){var Y,G,H,q,K;yield $.pauseUpstream.call(this);try{for(var N=!0,U=c5(this.simulcastCodecs.values()),F;F=yield U.next(),Y=F.done,!Y;N=!0)q=F.value,N=!1,yield(K=q.sender)===null||K===void 0?void 0:K.replaceTrack(null)}catch(M){G={error:M}}finally{try{if(!N&&!Y&&(H=U.return))yield H.call(U)}finally{if(G)throw G.error}}})}resumeUpstream(){let $=Object.create(null,{resumeUpstream:{get:()=>super.resumeUpstream}});return E(this,void 0,void 0,function*(){var Y,G,H,q,K;yield $.resumeUpstream.call(this);try{for(var N=!0,U=c5(this.simulcastCodecs.values()),F;F=yield U.next(),Y=F.done,!Y;N=!0){q=F.value,N=!1;let M=q;yield(K=M.sender)===null||K===void 0?void 0:K.replaceTrack(M.mediaStreamTrack)}}catch(M){G={error:M}}finally{try{if(!N&&!Y&&(H=U.return))yield H.call(U)}finally{if(G)throw G.error}}})}mute(){let $=Object.create(null,{mute:{get:()=>super.mute}});return E(this,void 0,void 0,function*(){let Y=yield this.muteLock.lock();try{if(this.isMuted)return this.log.debug("Track already muted",this.logContext),this;if(this.source===e.Source.Camera&&!this.isUserProvided)this.log.debug("stopping camera track",this.logContext),this._mediaStreamTrack.stop();return yield $.mute.call(this),this}finally{Y()}})}unmute(){let $=Object.create(null,{unmute:{get:()=>super.unmute}});return E(this,void 0,void 0,function*(){let Y=yield this.muteLock.lock();try{if(!this.isMuted)return this.log.debug("Track already unmuted",this.logContext),this;if(this.source===e.Source.Camera&&!this.isUserProvided)this.log.debug("reacquiring camera track",this.logContext),yield this.restartTrack();return yield $.unmute.call(this),this}finally{Y()}})}setTrackMuted($){super.setTrackMuted($);for(let Y of this.simulcastCodecs.values())Y.mediaStreamTrack.enabled=!$}getSenderStats(){return E(this,void 0,void 0,function*(){var $;if(!(($=this.sender)===null||$===void 0?void 0:$.getStats))return[];let Y=[],G=yield this.sender.getStats();return G.forEach((H)=>{var q;if(H.type==="outbound-rtp"){let K={type:"video",streamId:H.id,frameHeight:H.frameHeight,frameWidth:H.frameWidth,framesPerSecond:H.framesPerSecond,framesSent:H.framesSent,firCount:H.firCount,pliCount:H.pliCount,nackCount:H.nackCount,packetsSent:H.packetsSent,bytesSent:H.bytesSent,qualityLimitationReason:H.qualityLimitationReason,qualityLimitationDurations:H.qualityLimitationDurations,qualityLimitationResolutionChanges:H.qualityLimitationResolutionChanges,rid:(q=H.rid)!==null&&q!==void 0?q:H.id,retransmittedPacketsSent:H.retransmittedPacketsSent,targetBitrate:H.targetBitrate,timestamp:H.timestamp},N=G.get(H.remoteId);if(N)K.jitter=N.jitter,K.packetsLost=N.packetsLost,K.roundTripTime=N.roundTripTime;Y.push(K)}}),Y.sort((H,q)=>{var K,N;return((K=q.frameWidth)!==null&&K!==void 0?K:0)-((N=H.frameWidth)!==null&&N!==void 0?N:0)}),Y})}setPublishingQuality($){let Y=[];for(let G=g6.LOW;G<=g6.HIGH;G+=1)Y.push(new lW({quality:G,enabled:G<=$}));this.log.debug("setting publishing quality. max quality ".concat($),this.logContext),this.setPublishingLayers(x4(this.codec),Y)}restartTrack($){return E(this,void 0,void 0,function*(){var Y,G,H,q,K;let N;if($){let L=rW({video:$});if(typeof L.video!=="boolean")N=L.video}yield this.restart(N),this.isCpuConstrained=!1;try{for(var U=!0,F=c5(this.simulcastCodecs.values()),M;M=yield F.next(),Y=M.done,!Y;U=!0){q=M.value,U=!1;let L=q;if(L.sender&&((K=L.sender.transport)===null||K===void 0?void 0:K.state)!=="closed")L.mediaStreamTrack=this.mediaStreamTrack.clone(),yield L.sender.replaceTrack(L.mediaStreamTrack)}}catch(L){G={error:L}}finally{try{if(!U&&!Y&&(H=F.return))yield H.call(F)}finally{if(G)throw G.error}}})}setProcessor($){let Y=Object.create(null,{setProcessor:{get:()=>super.setProcessor}});return E(this,arguments,void 0,function(G){var H=this;let q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var K,N,U,F,M,L;if(yield Y.setProcessor.call(H,G,q),(M=H.processor)===null||M===void 0?void 0:M.processedTrack)try{for(var k=!0,R=c5(H.simulcastCodecs.values()),_;_=yield R.next(),K=_.done,!K;k=!0)F=_.value,k=!1,yield(L=F.sender)===null||L===void 0?void 0:L.replaceTrack(H.processor.processedTrack)}catch(S){N={error:S}}finally{try{if(!k&&!K&&(U=R.return))yield U.call(R)}finally{if(N)throw N.error}}}()})}setDegradationPreference($){return E(this,void 0,void 0,function*(){if(this.degradationPreference=$,this.sender)try{this.log.debug("setting degradationPreference to ".concat($),this.logContext);let Y=this.sender.getParameters();Y.degradationPreference=$,this.sender.setParameters(Y)}catch(Y){this.log.warn("failed to set degradationPreference",Object.assign({error:Y},this.logContext))}})}addSimulcastTrack($,Y){if(this.simulcastCodecs.has($)){this.log.error("".concat($," already added, skipping adding simulcast codec"),this.logContext);return}let G={codec:$,mediaStreamTrack:this.mediaStreamTrack.clone(),sender:void 0,encodings:Y};return this.simulcastCodecs.set($,G),G}setSimulcastTrackSender($,Y){let G=this.simulcastCodecs.get($);if(!G)return;G.sender=Y,setTimeout(()=>{if(this.subscribedCodecs)this.setPublishingCodecs(this.subscribedCodecs)},b70)}setPublishingCodecs($){return E(this,void 0,void 0,function*(){var Y,G,H,q,K,N,U;if(this.log.debug("setting publishing codecs",Object.assign(Object.assign({},this.logContext),{codecs:$,currentCodec:this.codec})),!this.codec&&$.length>0)return yield this.setPublishingLayers(x4($[0].codec),$[0].qualities),[];this.subscribedCodecs=$;let F=[];try{for(Y=!0,G=c5($);H=yield G.next(),q=H.done,!q;Y=!0){U=H.value,Y=!1;let M=U;if(!this.codec||this.codec===M.codec)yield this.setPublishingLayers(x4(M.codec),M.qualities);else{let L=this.simulcastCodecs.get(M.codec);if(this.log.debug("try setPublishingCodec for ".concat(M.codec),Object.assign(Object.assign({},this.logContext),{simulcastCodecInfo:L})),!L||!L.sender){for(let k of M.qualities)if(k.enabled){F.push(M.codec);break}}else if(L.encodings)this.log.debug("try setPublishingLayersForSender ".concat(M.codec),this.logContext),yield Jn(L.sender,L.encodings,M.qualities,this.senderLock,x4(M.codec),this.log,this.logContext)}}}catch(M){K={error:M}}finally{try{if(!Y&&!q&&(N=G.return))yield N.call(G)}finally{if(K)throw K.error}}return F})}setPublishingLayers($,Y){return E(this,void 0,void 0,function*(){if(this.optimizeForPerformance){this.log.info("skipping setPublishingLayers due to optimized publishing performance",Object.assign(Object.assign({},this.logContext),{qualities:Y}));return}if(this.log.debug("setting publishing layers",Object.assign(Object.assign({},this.logContext),{qualities:Y})),!this.sender||!this.encodings)return;yield Jn(this.sender,this.encodings,Y,this.senderLock,$,this.log,this.logContext)})}prioritizePerformance(){return E(this,void 0,void 0,function*(){if(!this.sender)throw Error("sender not found");let $=yield this.senderLock.lock();try{this.optimizeForPerformance=!0;let Y=this.sender.getParameters();Y.encodings=Y.encodings.map((G,H)=>{var q;return Object.assign(Object.assign({},G),{active:H===0,scaleResolutionDownBy:Math.max(1,Math.ceil(((q=this.mediaStreamTrack.getSettings().height)!==null&&q!==void 0?q:360)/360)),scalabilityMode:H===0&&x4(this.codec)?"L1T3":void 0,maxFramerate:H===0?15:0,maxBitrate:H===0?G.maxBitrate:0})}),this.log.debug("setting performance optimised encodings",Object.assign(Object.assign({},this.logContext),{encodings:Y.encodings})),this.encodings=Y.encodings,yield this.sender.setParameters(Y)}catch(Y){this.log.error("failed to set performance optimised encodings",Object.assign(Object.assign({},this.logContext),{error:Y})),this.optimizeForPerformance=!1}finally{$()}})}handleAppVisibilityChanged(){let $=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return E(this,void 0,void 0,function*(){if(yield $.handleAppVisibilityChanged.call(this),!Qt())return;if(this.isInBackground&&this.source===e.Source.Camera)this._mediaStreamTrack.enabled=!1})}}function Jn($,Y,G,H,q,K,N){return E(this,void 0,void 0,function*(){let U=yield H.lock();K.debug("setPublishingLayersForSender",Object.assign(Object.assign({},N),{sender:$,qualities:G,senderEncodings:Y}));try{let F=$.getParameters(),{encodings:M}=F;if(!M)return;if(M.length!==Y.length){K.warn("cannot set publishing layers, encodings mismatch",Object.assign(Object.assign({},N),{encodings:M,senderEncodings:Y}));return}let L=!1;if(!1);else{if(q){if(G.some((_)=>_.enabled))G.forEach((_)=>_.enabled=!0)}M.forEach((R,_)=>{var S;let T=(S=R.rid)!==null&&S!==void 0?S:"";if(T==="")T="q";let y=Pt(T),g=G.find((o)=>o.quality===y);if(!g)return;if(R.active!==g.enabled){if(L=!0,R.active=g.enabled,K.debug("setting layer ".concat(g.quality," to ").concat(R.active?"enabled":"disabled"),N),R7())if(g.enabled)R.scaleResolutionDownBy=Y[_].scaleResolutionDownBy,R.maxBitrate=Y[_].maxBitrate,R.maxFrameRate=Y[_].maxFrameRate;else R.scaleResolutionDownBy=4,R.maxBitrate=10,R.maxFrameRate=2}})}if(L)F.encodings=M,K.debug("setting encodings",Object.assign(Object.assign({},N),{encodings:F.encodings})),yield $.setParameters(F)}finally{U()}})}function Pt($){switch($){case"f":return g6.HIGH;case"h":return g6.MEDIUM;case"q":return g6.LOW;default:return g6.HIGH}}function An($,Y,G,H){if(!G)return[new q8({quality:g6.HIGH,width:$,height:Y,bitrate:0,ssrc:0})];if(H){let q=G[0].scalabilityMode,K=new GU(q),N=[],U=K.suffix=="h"?1.5:2,F=K.suffix=="h"?2:3;for(let M=0;M<K.spatial;M+=1)N.push(new q8({quality:Math.min(g6.HIGH,K.spatial-1)-M,width:Math.ceil($/Math.pow(U,M)),height:Math.ceil(Y/Math.pow(U,M)),bitrate:G[0].maxBitrate?Math.ceil(G[0].maxBitrate/Math.pow(F,M)):0,ssrc:0}));return N}return G.map((q)=>{var K,N,U;let F=(K=q.scaleResolutionDownBy)!==null&&K!==void 0?K:1,M=Pt((N=q.rid)!==null&&N!==void 0?N:"");return new q8({quality:M,width:Math.ceil($/F),height:Math.ceil(Y/F),bitrate:(U=q.maxBitrate)!==null&&U!==void 0?U:0,ssrc:0})})}var Kn="_lossy",Nn="_reliable",h70=2000,QW="leave-reconnect",u70=30000,d70=8192,s70=262144,Z4;(function($){$[$.New=0]="New",$[$.Connected=1]="Connected",$[$.Disconnected=2]="Disconnected",$[$.Reconnecting=3]="Reconnecting",$[$.Closed=4]="Closed"})(Z4||(Z4={}));class Lt extends J5.EventEmitter{get isClosed(){return this._isClosed}get pendingReconnect(){return!!this.reconnectTimeout}constructor($){var Y;super();this.options=$,this.rtcConfig={},this.peerConnectionTimeout=XU.peerConnectionTimeout,this.fullReconnectOnNext=!1,this.latestRemoteOfferId=0,this.subscriberPrimary=!1,this.pcState=Z4.New,this._isClosed=!0,this.pendingTrackResolvers={},this.reconnectAttempts=0,this.reconnectStart=0,this.attemptingReconnect=!1,this.joinAttempts=0,this.maxJoinAttempts=1,this.shouldFailNext=!1,this.log=c0,this.reliableDataSequence=1,this.reliableMessageBuffer=new TW,this.reliableReceivedState=new At(u70),this.lossyDataStatCurrentBytes=0,this.lossyDataStatByterate=0,this.lossyDataDropCount=0,this.midToTrackId={},this.isWaitingForNetworkReconnect=!1,this.handleDataChannel=(G)=>E(this,[G],void 0,function(H){var q=this;let{channel:K}=H;return function*(){if(!K)return;if(K.label===Nn)q.reliableDCSub=K;else if(K.label===Kn)q.lossyDCSub=K;else return;q.log.debug("on data channel ".concat(K.id,", ").concat(K.label),q.logContext),K.onmessage=q.handleDataMessage}()}),this.handleDataMessage=(G)=>E(this,void 0,void 0,function*(){var H,q,K,N,U;let F=yield this.dataProcessLock.lock();try{let M;if(G.data instanceof ArrayBuffer)M=G.data;else if(G.data instanceof Blob)M=yield G.data.arrayBuffer();else{this.log.error("unsupported data type",Object.assign(Object.assign({},this.logContext),{data:G.data}));return}let L=Q6.fromBinary(new Uint8Array(M));if(L.sequence>0&&L.participantSid!==""){let k=this.reliableReceivedState.get(L.participantSid);if(k&&L.sequence<=k)return;this.reliableReceivedState.set(L.participantSid,L.sequence)}if(((H=L.value)===null||H===void 0?void 0:H.case)==="speaker")this.emit(K0.ActiveSpeakersUpdate,L.value.value.speakers);else if(((q=L.value)===null||q===void 0?void 0:q.case)==="encryptedPacket"){if(!this.e2eeManager){this.log.error("Received encrypted packet but E2EE not set up",this.logContext);return}let k=yield(K=this.e2eeManager)===null||K===void 0?void 0:K.handleEncryptedData(L.value.value.encryptedValue,L.value.value.iv,L.participantIdentity,L.value.value.keyIndex),R=cn.fromBinary(k.payload),_=new Q6({value:R.value,participantIdentity:L.participantIdentity,participantSid:L.participantSid});if(((N=_.value)===null||N===void 0?void 0:N.case)==="user")Wn(_,_.value.value);this.emit(K0.DataPacketReceived,_,L.value.value.encryptionType)}else{if(((U=L.value)===null||U===void 0?void 0:U.case)==="user")Wn(L,L.value.value);this.emit(K0.DataPacketReceived,L,Q2.NONE)}}finally{F()}}),this.handleDataError=(G)=>{let q=G.currentTarget.maxRetransmits===0?"lossy":"reliable";if(G instanceof ErrorEvent&&G.error){let{error:K}=G.error;this.log.error("DataChannel error on ".concat(q,": ").concat(G.message),Object.assign(Object.assign({},this.logContext),{error:K}))}else this.log.error("Unknown DataChannel error on ".concat(q),Object.assign(Object.assign({},this.logContext),{event:G}))},this.handleBufferedAmountLow=(G)=>{let q=G.currentTarget.maxRetransmits===0?$1.LOSSY:$1.RELIABLE;this.updateAndEmitDCBufferStatus(q)},this.handleDisconnect=(G,H)=>{if(this._isClosed)return;if(this.log.warn("".concat(G," disconnected"),this.logContext),this.reconnectAttempts===0)this.reconnectStart=Date.now();let q=(U)=>{this.log.warn("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(U,"ms. giving up"),this.logContext),this.emit(K0.Disconnected),this.close()},K=Date.now()-this.reconnectStart,N=this.getNextRetryDelay({elapsedMs:K,retryCount:this.reconnectAttempts});if(N===null){q(K);return}if(G===QW)N=0;if(this.log.debug("reconnecting in ".concat(N,"ms"),this.logContext),this.clearReconnectTimeout(),this.token&&this.regionUrlProvider)this.regionUrlProvider.updateToken(this.token);this.reconnectTimeout=E2.setTimeout(()=>this.attemptReconnect(H).finally(()=>this.reconnectTimeout=void 0),N)},this.waitForRestarted=()=>{return new Promise((G,H)=>{if(this.pcState===Z4.Connected)G();let q=()=>{this.off(K0.Disconnected,K),G()},K=()=>{this.off(K0.Restarted,q),H()};this.once(K0.Restarted,q),this.once(K0.Disconnected,K)})},this.updateAndEmitDCBufferStatus=(G)=>{if(G===$1.RELIABLE){let q=this.dataChannelForKind(G);if(q)this.reliableMessageBuffer.alignBufferedAmount(q.bufferedAmount)}let H=this.isBufferStatusLow(G);if(typeof H<"u"&&H!==this.dcBufferStatus.get(G))this.dcBufferStatus.set(G,H),this.emit(K0.DCBufferStatusChanged,H,G)},this.isBufferStatusLow=(G)=>{let H=this.dataChannelForKind(G);if(H)return H.bufferedAmount<=H.bufferedAmountLowThreshold},this.handleBrowserOnLine=()=>E(this,void 0,void 0,function*(){if(!this.url)return;if(!(yield fetch(JH(this.url),{method:"HEAD"}).then((H)=>H.ok).catch(()=>!1)))return;if(this.log.info("detected network reconnected"),this.client.currentState===C1.RECONNECTING||this.isWaitingForNetworkReconnect&&this.client.currentState===C1.CONNECTED)this.clearReconnectTimeout(),this.attemptReconnect(M7.RR_SIGNAL_DISCONNECTED),this.isWaitingForNetworkReconnect=!1}),this.handleBrowserOffline=()=>E(this,void 0,void 0,function*(){if(!this.url)return;try{yield Promise.race([fetch(JH(this.url),{method:"HEAD"}),m2(4000).then(()=>Promise.reject())])}catch(G){if(window.navigator.onLine===!1)this.log.info("detected network interruption"),this.isWaitingForNetworkReconnect=!0}}),this.log=o5((Y=$.loggerName)!==null&&Y!==void 0?Y:_4.Engine),this.loggerOptions={loggerName:$.loggerName,loggerContextCb:()=>this.logContext},this.client=new jB(void 0,this.loggerOptions),this.client.signalLatency=this.options.expSignalLatency,this.reconnectPolicy=this.options.reconnectPolicy,this.closingLock=new y2,this.dataProcessLock=new y2,this.dcBufferStatus=new Map([[$1.LOSSY,!0],[$1.RELIABLE,!0]]),this.client.onParticipantUpdate=(G)=>this.emit(K0.ParticipantUpdate,G),this.client.onConnectionQuality=(G)=>this.emit(K0.ConnectionQualityUpdate,G),this.client.onRoomUpdate=(G)=>this.emit(K0.RoomUpdate,G),this.client.onSubscriptionError=(G)=>this.emit(K0.SubscriptionError,G),this.client.onSubscriptionPermissionUpdate=(G)=>this.emit(K0.SubscriptionPermissionUpdate,G),this.client.onSpeakersChanged=(G)=>this.emit(K0.SpeakersChanged,G),this.client.onStreamStateUpdate=(G)=>this.emit(K0.StreamStateChanged,G),this.client.onRequestResponse=(G)=>this.emit(K0.SignalRequestResponse,G)}get logContext(){var $,Y,G,H,q,K;return{room:(Y=($=this.latestJoinResponse)===null||$===void 0?void 0:$.room)===null||Y===void 0?void 0:Y.name,roomID:(H=(G=this.latestJoinResponse)===null||G===void 0?void 0:G.room)===null||H===void 0?void 0:H.sid,participant:(K=(q=this.latestJoinResponse)===null||q===void 0?void 0:q.participant)===null||K===void 0?void 0:K.identity,pID:this.participantSid}}join($,Y,G,H){return E(this,arguments,void 0,function(q,K,N,U){var F=this;let M=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;return function*(){F.url=q,F.token=K,F.signalOpts=N,F.maxJoinAttempts=N.maxRetries;try{F.joinAttempts+=1,F.setupSignalClientCallbacks();let L=yield F.client.join(q,K,N,U,M);if(F._isClosed=!1,F.latestJoinResponse=L,F.subscriberPrimary=L.subscriberPrimary,!F.pcManager)yield F.configure(L,!M);if(!F.subscriberPrimary||L.fastPublish)F.negotiate().catch((k)=>{c0.error(k,F.logContext)});return F.registerOnLineListener(),F.clientConfiguration=L.clientConfiguration,F.emit(K0.SignalConnected,L),L}catch(L){if(L instanceof S0){if(L.reason===T1.ServerUnreachable){if(F.log.warn("Couldn't connect to server, attempt ".concat(F.joinAttempts," of ").concat(F.maxJoinAttempts),F.logContext),F.joinAttempts<F.maxJoinAttempts)return F.join(q,K,N,U,M)}else if(L.reason===T1.ServiceNotFound)return F.log.warn("Initial connection failed: ".concat(L.message," – Retrying")),F.join(q,K,N,U,!0)}throw L}}()})}close(){return E(this,void 0,void 0,function*(){let $=yield this.closingLock.lock();if(this.isClosed){$();return}try{this._isClosed=!0,this.joinAttempts=0,this.emit(K0.Closing),this.removeAllListeners(),this.deregisterOnLineListener(),this.clearPendingReconnect(),this.cleanupLossyDataStats(),yield this.cleanupPeerConnections(),yield this.cleanupClient()}finally{$()}})}cleanupPeerConnections(){return E(this,void 0,void 0,function*(){var $;yield($=this.pcManager)===null||$===void 0?void 0:$.close(),this.pcManager=void 0;let Y=(G)=>{if(!G)return;G.close(),G.onbufferedamountlow=null,G.onclose=null,G.onclosing=null,G.onerror=null,G.onmessage=null,G.onopen=null};Y(this.lossyDC),Y(this.lossyDCSub),Y(this.reliableDC),Y(this.reliableDCSub),this.lossyDC=void 0,this.lossyDCSub=void 0,this.reliableDC=void 0,this.reliableDCSub=void 0,this.reliableMessageBuffer=new TW,this.reliableDataSequence=1,this.reliableReceivedState.clear()})}cleanupLossyDataStats(){if(this.lossyDataStatByterate=0,this.lossyDataStatCurrentBytes=0,this.lossyDataStatInterval)clearInterval(this.lossyDataStatInterval),this.lossyDataStatInterval=void 0;this.lossyDataDropCount=0}cleanupClient(){return E(this,void 0,void 0,function*(){yield this.client.close(),this.client.resetCallbacks()})}addTrack($){if(this.pendingTrackResolvers[$.cid])throw new z5("a track with the same ID has already been published");return new Promise((Y,G)=>{let H=setTimeout(()=>{delete this.pendingTrackResolvers[$.cid],G(S0.timeout("publication of local track timed out, no response from server"))},1e4);this.pendingTrackResolvers[$.cid]={resolve:(q)=>{clearTimeout(H),Y(q)},reject:()=>{clearTimeout(H),G(Error("Cancelled publication by calling unpublish"))}},this.client.sendAddTrack($)})}removeTrack($){if($.track&&this.pendingTrackResolvers[$.track.id]){let{reject:Y}=this.pendingTrackResolvers[$.track.id];if(Y)Y();delete this.pendingTrackResolvers[$.track.id]}try{return this.pcManager.removeTrack($),!0}catch(Y){this.log.warn("failed to remove track",Object.assign(Object.assign({},this.logContext),{error:Y}))}return!1}updateMuteStatus($,Y){this.client.sendMuteTrack($,Y)}get dataSubscriberReadyState(){var $;return($=this.reliableDCSub)===null||$===void 0?void 0:$.readyState}getConnectedServerAddress(){return E(this,void 0,void 0,function*(){var $;return($=this.pcManager)===null||$===void 0?void 0:$.getConnectedAddress()})}setRegionUrlProvider($){this.regionUrlProvider=$}configure($,Y){return E(this,void 0,void 0,function*(){var G,H;if(this.pcManager&&this.pcManager.currentState!==a1.NEW)return;this.participantSid=(G=$.participant)===null||G===void 0?void 0:G.sid;let q=this.makeRTCConfiguration($);if(this.pcManager=new Wt(q,Y?"publisher-only":$.subscriberPrimary?"subscriber-primary":"publisher-primary",this.loggerOptions),this.emit(K0.TransportsCreated,this.pcManager.publisher,this.pcManager.subscriber),this.pcManager.onIceCandidate=(K,N)=>{this.client.sendIceCandidate(K,N)},this.pcManager.onPublisherOffer=(K,N)=>{this.client.sendOffer(K,N)},this.pcManager.onDataChannel=this.handleDataChannel,this.pcManager.onStateChange=(K,N,U)=>E(this,void 0,void 0,function*(){if(this.log.debug("primary PC state changed ".concat(K),this.logContext),["closed","disconnected","failed"].includes(N))this.publisherConnectionPromise=void 0;if(K===a1.CONNECTED){let L=this.pcState===Z4.New;if(this.pcState=Z4.Connected,L)this.emit(K0.Connected,$)}else if(K===a1.FAILED){if(this.pcState===Z4.Connected||this.pcState===Z4.Reconnecting)this.pcState=Z4.Disconnected,this.handleDisconnect("peerconnection failed",U==="failed"?M7.RR_SUBSCRIBER_FAILED:M7.RR_PUBLISHER_FAILED)}let F=this.client.isDisconnected||this.client.currentState===C1.RECONNECTING,M=[a1.FAILED,a1.CLOSING,a1.CLOSED].includes(K);if(F&&M&&!this._isClosed)this.emit(K0.Offline)}),this.pcManager.onTrack=(K)=>{if(K.streams.length===0)return;this.emit(K0.MediaTrackAdded,K.track,K.streams[0],K.receiver)},!l70((H=$.serverInfo)===null||H===void 0?void 0:H.protocol))this.createDataChannels()})}setupSignalClientCallbacks(){this.client.onAnswer=($,Y,G)=>E(this,void 0,void 0,function*(){if(!this.pcManager)return;this.log.debug("received server answer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:$.type,sdp:$.sdp,midToTrackId:G})),this.midToTrackId=G,yield this.pcManager.setPublisherAnswer($,Y)}),this.client.onTrickle=($,Y)=>{if(!this.pcManager)return;this.log.debug("got ICE candidate from peer",Object.assign(Object.assign({},this.logContext),{candidate:$,target:Y})),this.pcManager.addIceCandidate($,Y)},this.client.onOffer=($,Y,G)=>E(this,void 0,void 0,function*(){if(this.latestRemoteOfferId=Y,!this.pcManager)return;this.midToTrackId=G;let H=yield this.pcManager.createSubscriberAnswerFromOffer($,Y);if(H)this.client.sendAnswer(H,Y)}),this.client.onLocalTrackPublished=($)=>{var Y;if(this.log.debug("received trackPublishedResponse",Object.assign(Object.assign({},this.logContext),{cid:$.cid,track:(Y=$.track)===null||Y===void 0?void 0:Y.sid})),!this.pendingTrackResolvers[$.cid]){this.log.error("missing track resolver for ".concat($.cid),Object.assign(Object.assign({},this.logContext),{cid:$.cid}));return}let{resolve:G}=this.pendingTrackResolvers[$.cid];delete this.pendingTrackResolvers[$.cid],G($.track)},this.client.onLocalTrackUnpublished=($)=>{this.emit(K0.LocalTrackUnpublished,$)},this.client.onLocalTrackSubscribed=($)=>{this.emit(K0.LocalTrackSubscribed,$)},this.client.onTokenRefresh=($)=>{var Y;this.token=$,(Y=this.regionUrlProvider)===null||Y===void 0||Y.updateToken($)},this.client.onRemoteMuteChanged=($,Y)=>{this.emit(K0.RemoteMute,$,Y)},this.client.onSubscribedQualityUpdate=($)=>{this.emit(K0.SubscribedQualityUpdate,$)},this.client.onRoomMoved=($)=>{var Y;if(this.participantSid=(Y=$.participant)===null||Y===void 0?void 0:Y.sid,this.latestJoinResponse)this.latestJoinResponse.room=$.room;this.emit(K0.RoomMoved,$)},this.client.onMediaSectionsRequirement=($)=>{var Y,G;let H={direction:"recvonly"};for(let q=0;q<$.numAudios;q++)(Y=this.pcManager)===null||Y===void 0||Y.addPublisherTransceiverOfKind("audio",H);for(let q=0;q<$.numVideos;q++)(G=this.pcManager)===null||G===void 0||G.addPublisherTransceiverOfKind("video",H);this.negotiate()},this.client.onClose=()=>{this.handleDisconnect("signal",M7.RR_SIGNAL_DISCONNECTED)},this.client.onLeave=($)=>{if(this.log.debug("client leave request",Object.assign(Object.assign({},this.logContext),{reason:$===null||$===void 0?void 0:$.reason})),$.regions&&this.regionUrlProvider)this.log.debug("updating regions",this.logContext),this.regionUrlProvider.setServerReportedRegions({updatedAtInMs:Date.now(),maxAgeInMs:Ut,regionSettings:$.regions});switch($.action){case c3.DISCONNECT:this.emit(K0.Disconnected,$===null||$===void 0?void 0:$.reason),this.close();break;case c3.RECONNECT:this.fullReconnectOnNext=!0,this.handleDisconnect(QW);break;case c3.RESUME:this.handleDisconnect(QW)}}}makeRTCConfiguration($){var Y;let G=Object.assign({},this.rtcConfig);if((Y=this.signalOpts)===null||Y===void 0?void 0:Y.e2eeEnabled)this.log.debug("E2EE - setting up transports with insertable streams",this.logContext),G.encodedInsertableStreams=!0;if($.iceServers&&!G.iceServers){let H=[];$.iceServers.forEach((q)=>{let K={urls:q.urls};if(q.username)K.username=q.username;if(q.credential)K.credential=q.credential;H.push(K)}),G.iceServers=H}if($.clientConfiguration&&$.clientConfiguration.forceRelay===HH.ENABLED)G.iceTransportPolicy="relay";return G.sdpSemantics="unified-plan",G.continualGatheringPolicy="gather_continually",G}createDataChannels(){if(!this.pcManager)return;if(this.lossyDC)this.lossyDC.onmessage=null,this.lossyDC.onerror=null;if(this.reliableDC)this.reliableDC.onmessage=null,this.reliableDC.onerror=null;this.lossyDC=this.pcManager.createPublisherDataChannel(Kn,{ordered:!1,maxRetransmits:0}),this.reliableDC=this.pcManager.createPublisherDataChannel(Nn,{ordered:!0}),this.lossyDC.onmessage=this.handleDataMessage,this.reliableDC.onmessage=this.handleDataMessage,this.lossyDC.onerror=this.handleDataError,this.reliableDC.onerror=this.handleDataError,this.lossyDC.bufferedAmountLowThreshold=65535,this.reliableDC.bufferedAmountLowThreshold=65535,this.lossyDC.onbufferedamountlow=this.handleBufferedAmountLow,this.reliableDC.onbufferedamountlow=this.handleBufferedAmountLow,this.cleanupLossyDataStats(),this.lossyDataStatInterval=setInterval(()=>{this.lossyDataStatByterate=this.lossyDataStatCurrentBytes,this.lossyDataStatCurrentBytes=0;let $=this.dataChannelForKind($1.LOSSY);if($){let Y=this.lossyDataStatByterate/10;$.bufferedAmountLowThreshold=Math.min(Math.max(Y,d70),s70)}},1000)}createSender($,Y,G){return E(this,void 0,void 0,function*(){if(xW())return yield this.createTransceiverRTCRtpSender($,Y,G);if(VW())return this.log.warn("using add-track fallback",this.logContext),yield this.createRTCRtpSender($.mediaStreamTrack);throw new n1("Required webRTC APIs not supported on this device")})}createSimulcastSender($,Y,G,H){return E(this,void 0,void 0,function*(){if(xW())return this.createSimulcastTransceiverSender($,Y,G,H);if(VW())return this.log.debug("using add-track fallback",this.logContext),this.createRTCRtpSender($.mediaStreamTrack);throw new n1("Cannot stream on this device")})}createTransceiverRTCRtpSender($,Y,G){return E(this,void 0,void 0,function*(){if(!this.pcManager)throw new n1("publisher is closed");let H=[];if($.mediaStream)H.push($.mediaStream);if(W8($))$.codec=Y.videoCodec;let q={direction:"sendonly",streams:H};if(G)q.sendEncodings=G;return(yield this.pcManager.addPublisherTransceiver($.mediaStreamTrack,q)).sender})}createSimulcastTransceiverSender($,Y,G,H){return E(this,void 0,void 0,function*(){if(!this.pcManager)throw new n1("publisher is closed");let q={direction:"sendonly"};if(H)q.sendEncodings=H;let K=yield this.pcManager.addPublisherTransceiver(Y.mediaStreamTrack,q);if(!G.videoCodec)return;return $.setSimulcastTrackSender(G.videoCodec,K.sender),K.sender})}createRTCRtpSender($){return E(this,void 0,void 0,function*(){if(!this.pcManager)throw new n1("publisher is closed");return this.pcManager.addPublisherTrack($)})}attemptReconnect($){return E(this,void 0,void 0,function*(){var Y,G,H;if(this._isClosed)return;if(this.attemptingReconnect){c0.warn("already attempting reconnect, returning early",this.logContext);return}if(((Y=this.clientConfiguration)===null||Y===void 0?void 0:Y.resumeConnection)===HH.DISABLED||((H=(G=this.pcManager)===null||G===void 0?void 0:G.currentState)!==null&&H!==void 0?H:a1.NEW)===a1.NEW)this.fullReconnectOnNext=!0;try{if(this.attemptingReconnect=!0,this.fullReconnectOnNext)yield this.restartConnection();else yield this.resumeConnection($);this.clearPendingReconnect(),this.fullReconnectOnNext=!1}catch(q){this.reconnectAttempts+=1;let K=!0;if(q instanceof n1)this.log.debug("received unrecoverable error",Object.assign(Object.assign({},this.logContext),{error:q})),K=!1;else if(!(q instanceof O7))this.fullReconnectOnNext=!0;if(K)this.handleDisconnect("reconnect",M7.RR_UNKNOWN);else this.log.info("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(Date.now()-this.reconnectStart,"ms. giving up"),this.logContext),this.emit(K0.Disconnected),yield this.close()}finally{this.attemptingReconnect=!1}})}getNextRetryDelay($){try{return this.reconnectPolicy.nextRetryDelayInMs($)}catch(Y){this.log.warn("encountered error in reconnect policy",Object.assign(Object.assign({},this.logContext),{error:Y}))}return null}restartConnection($){return E(this,void 0,void 0,function*(){var Y,G,H;try{if(!this.url||!this.token)throw new n1("could not reconnect, url or token not saved");if(this.log.info("reconnecting, attempt: ".concat(this.reconnectAttempts),this.logContext),this.emit(K0.Restarting),!this.client.isDisconnected)yield this.client.sendLeave();yield this.cleanupPeerConnections(),yield this.cleanupClient();let q;try{if(!this.signalOpts)throw this.log.warn("attempted connection restart, without signal options present",this.logContext),new O7;q=yield this.join($!==null&&$!==void 0?$:this.url,this.token,this.signalOpts,void 0,!this.options.singlePeerConnection)}catch(K){if(K instanceof S0&&K.reason===T1.NotAllowed)throw new n1("could not reconnect, token might be expired");throw new O7}if(this.shouldFailNext)throw this.shouldFailNext=!1,Error("simulated failure");if(this.client.setReconnected(),this.emit(K0.SignalRestarted,q),yield this.waitForPCReconnected(),this.client.currentState!==C1.CONNECTED)throw new O7("Signal connection got severed during reconnect");(Y=this.regionUrlProvider)===null||Y===void 0||Y.resetAttempts(),this.emit(K0.Restarted)}catch(q){let K=yield(G=this.regionUrlProvider)===null||G===void 0?void 0:G.getNextBestRegionUrl();if(K){yield this.restartConnection(K);return}else throw(H=this.regionUrlProvider)===null||H===void 0||H.resetAttempts(),q}})}resumeConnection($){return E(this,void 0,void 0,function*(){var Y;if(!this.url||!this.token)throw new n1("could not reconnect, url or token not saved");if(!this.pcManager)throw new n1("publisher and subscriber connections unset");this.log.info("resuming signal connection, attempt ".concat(this.reconnectAttempts),this.logContext),this.emit(K0.Resuming);let G;try{this.setupSignalClientCallbacks(),G=yield this.client.reconnect(this.url,this.token,this.participantSid,$)}catch(H){let q="";if(H instanceof Error)q=H.message,this.log.error(H.message,Object.assign(Object.assign({},this.logContext),{error:H}));if(H instanceof S0&&H.reason===T1.NotAllowed)throw new n1("could not reconnect, token might be expired");if(H instanceof S0&&H.reason===T1.LeaveRequest)throw H;throw new O7(q)}if(this.emit(K0.SignalResumed),G){let H=this.makeRTCConfiguration(G);if(this.pcManager.updateConfiguration(H),this.latestJoinResponse)this.latestJoinResponse.serverInfo=G.serverInfo}else this.log.warn("Did not receive reconnect response",this.logContext);if(this.shouldFailNext)throw this.shouldFailNext=!1,Error("simulated failure");if(yield this.pcManager.triggerIceRestart(),yield this.waitForPCReconnected(),this.client.currentState!==C1.CONNECTED)throw new O7("Signal connection got severed during reconnect");if(this.client.setReconnected(),((Y=this.reliableDC)===null||Y===void 0?void 0:Y.readyState)==="open"&&this.reliableDC.id===null)this.createDataChannels();if(G===null||G===void 0?void 0:G.lastMessageSeq)this.resendReliableMessagesForResume(G.lastMessageSeq);this.emit(K0.Resumed)})}waitForPCInitialConnection($,Y){return E(this,void 0,void 0,function*(){if(!this.pcManager)throw new n1("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(Y,$)})}waitForPCReconnected(){return E(this,void 0,void 0,function*(){this.pcState=Z4.Reconnecting,this.log.debug("waiting for peer connection to reconnect",this.logContext);try{if(yield m2(h70),!this.pcManager)throw new n1("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(void 0,this.peerConnectionTimeout),this.pcState=Z4.Connected}catch($){throw this.pcState=Z4.Disconnected,S0.internal("could not establish PC connection, ".concat($.message))}})}publishRpcResponse($,Y,G,H){return E(this,void 0,void 0,function*(){let q=new Q6({destinationIdentities:[$],kind:$1.RELIABLE,value:{case:"rpcResponse",value:new hW({requestId:Y,value:H?{case:"error",value:H.toProto()}:{case:"payload",value:G!==null&&G!==void 0?G:""}})}});yield this.sendDataPacket(q,$1.RELIABLE)})}publishRpcAck($,Y){return E(this,void 0,void 0,function*(){let G=new Q6({destinationIdentities:[$],kind:$1.RELIABLE,value:{case:"rpcAck",value:new bW({requestId:Y})}});yield this.sendDataPacket(G,$1.RELIABLE)})}sendDataPacket($,Y){return E(this,void 0,void 0,function*(){if(yield this.ensurePublisherConnected(Y),this.e2eeManager&&this.e2eeManager.isDataChannelEncryptionEnabled){let q=H70($);if(q){let K=yield this.e2eeManager.encryptData(q.toBinary());$.value={case:"encryptedPacket",value:new ln({encryptedValue:K.payload,iv:K.iv,keyIndex:K.keyIndex})}}}if(Y===$1.RELIABLE)$.sequence=this.reliableDataSequence,this.reliableDataSequence+=1;let G=$.toBinary(),H=this.dataChannelForKind(Y);if(H){if(Y===$1.RELIABLE)yield this.waitForBufferStatusLow(Y),this.reliableMessageBuffer.push({data:G,sequence:$.sequence});else{if(!this.isBufferStatusLow(Y)){if(this.lossyDataDropCount+=1,this.lossyDataDropCount%100===0)this.log.warn("dropping lossy data channel messages, total dropped: ".concat(this.lossyDataDropCount),this.logContext);return}this.lossyDataStatCurrentBytes+=G.byteLength}if(this.attemptingReconnect)return;H.send(G)}this.updateAndEmitDCBufferStatus(Y)})}resendReliableMessagesForResume($){return E(this,void 0,void 0,function*(){yield this.ensurePublisherConnected($1.RELIABLE);let Y=this.dataChannelForKind($1.RELIABLE);if(Y)this.reliableMessageBuffer.popToSequence($),this.reliableMessageBuffer.getAll().forEach((G)=>{Y.send(G.data)});this.updateAndEmitDCBufferStatus($1.RELIABLE)})}waitForBufferStatusLow($){return new g2((Y,G)=>E(this,void 0,void 0,function*(){if(this.isBufferStatusLow($))Y();else{let H=()=>G(new n1("engine closed"));this.once(K0.Closing,H);while(!this.dcBufferStatus.get($))yield m2(10);this.off(K0.Closing,H),Y()}}))}ensureDataTransportConnected($){return E(this,arguments,void 0,function(Y){var G=this;let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscriberPrimary;return function*(){var q;if(!G.pcManager)throw new n1("PC manager is closed");let K=H?G.pcManager.subscriber:G.pcManager.publisher,N=H?"Subscriber":"Publisher";if(!K)throw S0.internal("".concat(N," connection not set"));let U=!1;if(!H&&!G.dataChannelForKind(Y,H))G.createDataChannels(),U=!0;if(!U&&!H&&!G.pcManager.publisher.isICEConnected&&G.pcManager.publisher.getICEConnectionState()!=="checking")U=!0;if(U)G.negotiate().catch((L)=>{c0.error(L,G.logContext)});let F=G.dataChannelForKind(Y,H);if((F===null||F===void 0?void 0:F.readyState)==="open")return;let M=new Date().getTime()+G.peerConnectionTimeout;while(new Date().getTime()<M){if(K.isICEConnected&&((q=G.dataChannelForKind(Y,H))===null||q===void 0?void 0:q.readyState)==="open")return;yield m2(50)}throw S0.internal("could not establish ".concat(N," connection, state: ").concat(K.getICEConnectionState()))}()})}ensurePublisherConnected($){return E(this,void 0,void 0,function*(){if(!this.publisherConnectionPromise)this.publisherConnectionPromise=this.ensureDataTransportConnected($,!1);yield this.publisherConnectionPromise})}verifyTransport(){if(!this.pcManager)return!1;if(this.pcManager.currentState!==a1.CONNECTED)return!1;if(!this.client.ws||this.client.ws.readyState===WebSocket.CLOSED)return!1;return!0}negotiate(){return E(this,void 0,void 0,function*(){return new g2(($,Y)=>E(this,void 0,void 0,function*(){if(!this.pcManager){Y(new L7("PC manager is closed"));return}if(this.pcManager.requirePublisher(),this.pcManager.publisher.getTransceivers().length==0&&!this.lossyDC&&!this.reliableDC)this.createDataChannels();let G=new AbortController,H=()=>{G.abort(),this.log.debug("engine disconnected while negotiation was ongoing",this.logContext),$();return};if(this.isClosed)Y(new L7("cannot negotiate on closed engine"));this.on(K0.Closing,H),this.pcManager.publisher.once(a3.RTPVideoPayloadTypes,(q)=>{let K=new Map;q.forEach((N)=>{let U=N.codec.toLowerCase();if(d80(U))K.set(N.payload,U)}),this.emit(K0.RTPVideoMapUpdate,K)});try{yield this.pcManager.negotiate(G),$()}catch(q){if(q instanceof L7)this.fullReconnectOnNext=!0;if(this.handleDisconnect("negotiation",M7.RR_UNKNOWN),q instanceof Error)Y(q);else Y(Error(String(q)))}finally{this.off(K0.Closing,H)}}))})}dataChannelForKind($,Y){if(!Y){if($===$1.LOSSY)return this.lossyDC;if($===$1.RELIABLE)return this.reliableDC}else{if($===$1.LOSSY)return this.lossyDCSub;if($===$1.RELIABLE)return this.reliableDCSub}}sendSyncState($,Y){var G,H,q,K;if(!this.pcManager){this.log.warn("sync state cannot be sent without peer connection setup",this.logContext);return}let N=this.pcManager.publisher.getLocalDescription(),U=this.pcManager.publisher.getRemoteDescription(),F=(G=this.pcManager.subscriber)===null||G===void 0?void 0:G.getRemoteDescription(),M=(H=this.pcManager.subscriber)===null||H===void 0?void 0:H.getLocalDescription(),L=(K=(q=this.signalOpts)===null||q===void 0?void 0:q.autoSubscribe)!==null&&K!==void 0?K:!0,k=[],R=[];$.forEach((_)=>{if(_.isDesired!==L)k.push(_.trackSid);if(!_.isEnabled)R.push(_.trackSid)}),this.client.sendSyncState(new cW({answer:this.pcManager.mode==="publisher-only"?U?s3({sdp:U.sdp,type:U.type}):void 0:M?s3({sdp:M.sdp,type:M.type}):void 0,offer:this.pcManager.mode==="publisher-only"?N?s3({sdp:N.sdp,type:N.type}):void 0:F?s3({sdp:F.sdp,type:F.type}):void 0,subscription:new TB({trackSids:k,subscribe:!L,participantTracks:[]}),publishTracks:_80(Y),dataChannels:this.dataChannelsInfo(),trackSidsDisabled:R,datachannelReceiveStates:this.reliableReceivedState.map((_,S)=>{return new Ua({publisherSid:S,lastSeq:_})})}))}failNext(){this.shouldFailNext=!0}dataChannelsInfo(){let $=[],Y=(G,H)=>{if((G===null||G===void 0?void 0:G.id)!==void 0&&G.id!==null)$.push(new Fa({label:G.label,id:G.id,target:H}))};return Y(this.dataChannelForKind($1.LOSSY),w4.PUBLISHER),Y(this.dataChannelForKind($1.RELIABLE),w4.PUBLISHER),Y(this.dataChannelForKind($1.LOSSY,!0),w4.SUBSCRIBER),Y(this.dataChannelForKind($1.RELIABLE,!0),w4.SUBSCRIBER),$}clearReconnectTimeout(){if(this.reconnectTimeout)E2.clearTimeout(this.reconnectTimeout)}clearPendingReconnect(){this.clearReconnectTimeout(),this.reconnectAttempts=0}registerOnLineListener(){if(M6())window.addEventListener("online",this.handleBrowserOnLine),window.addEventListener("offline",this.handleBrowserOffline)}deregisterOnLineListener(){if(M6())window.removeEventListener("online",this.handleBrowserOnLine),window.removeEventListener("offline",this.handleBrowserOffline)}getTrackIdForReceiver($){var Y;let G=(Y=this.pcManager)===null||Y===void 0?void 0:Y.getMidForReceiver($);if(G){let H=Object.entries(this.midToTrackId).find((q)=>{let[K]=q;return K===G});if(H)return H[1]}}}function l70($){return $!==void 0&&$>13}function Wn($,Y){let G=$.participantIdentity?$.participantIdentity:Y.participantIdentity;$.participantIdentity=G,Y.participantIdentity=G;let H=$.destinationIdentities.length!==0?$.destinationIdentities:Y.destinationIdentities;$.destinationIdentities=H,Y.destinationIdentities=H}class HU{get info(){return this._info}validateBytesReceived(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(typeof this.totalByteSize!=="number"||this.totalByteSize===0)return;if($&&this.bytesReceived<this.totalByteSize)throw new f6("Not enough chunk(s) received - expected ".concat(this.totalByteSize," bytes of data total, only received ").concat(this.bytesReceived," bytes"),Y6.Incomplete);else if(this.bytesReceived>this.totalByteSize)throw new f6("Extra chunk(s) received - expected ".concat(this.totalByteSize," bytes of data total, received ").concat(this.bytesReceived," bytes"),Y6.LengthExceeded)}constructor($,Y,G,H){this.reader=Y,this.totalByteSize=G,this._info=$,this.bytesReceived=0,this.outOfBandFailureRejectingFuture=H}}class kt extends HU{handleChunkReceived($){var Y;this.bytesReceived+=$.content.byteLength,this.validateBytesReceived();let G=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;(Y=this.onProgress)===null||Y===void 0||Y.call(this,G)}[Symbol.asyncIterator](){let $=this.reader.getReader(),Y=new m6,G=null,H=null;if(this.signal){let K=this.signal;H=()=>{var N;(N=Y.reject)===null||N===void 0||N.call(Y,K.reason)},K.addEventListener("abort",H),G=K}let q=()=>{if($.releaseLock(),G&&H)G.removeEventListener("abort",H);this.signal=void 0};return{next:()=>E(this,void 0,void 0,function*(){var K,N;try{let{done:U,value:F}=yield Promise.race([$.read(),Y.promise,(N=(K=this.outOfBandFailureRejectingFuture)===null||K===void 0?void 0:K.promise)!==null&&N!==void 0?N:new Promise(()=>{})]);if(U)return this.validateBytesReceived(!0),{done:!0,value:void 0};else return this.handleChunkReceived(F),{done:!1,value:F.content}}catch(U){throw q(),U}}),return(){return E(this,void 0,void 0,function*(){return q(),{done:!0,value:void 0}})}}}withAbortSignal($){return this.signal=$,this}readAll(){return E(this,arguments,void 0,function(){var $=this;let Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function*(){var G,H,q,K;let N=new Set,U=Y.signal?$.withAbortSignal(Y.signal):$;try{for(var F=!0,M=c5(U),L;L=yield M.next(),G=L.done,!G;F=!0){K=L.value,F=!1;let k=K;N.add(k)}}catch(k){H={error:k}}finally{try{if(!F&&!G&&(q=M.return))yield q.call(M)}finally{if(H)throw H.error}}return Array.from(N)}()})}}class Rt extends HU{constructor($,Y,G,H){super($,Y,G,H);this.receivedChunks=new Map}handleChunkReceived($){var Y;let G=NB($.chunkIndex),H=this.receivedChunks.get(G);if(H&&H.version>$.version)return;this.receivedChunks.set(G,$),this.bytesReceived+=$.content.byteLength,this.validateBytesReceived();let q=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;(Y=this.onProgress)===null||Y===void 0||Y.call(this,q)}[Symbol.asyncIterator](){let $=this.reader.getReader(),Y=new TextDecoder("utf-8",{fatal:!0}),G=new m6,H=null,q=null;if(this.signal){let N=this.signal;q=()=>{var U;(U=G.reject)===null||U===void 0||U.call(G,N.reason)},N.addEventListener("abort",q),H=N}let K=()=>{if($.releaseLock(),H&&q)H.removeEventListener("abort",q);this.signal=void 0};return{next:()=>E(this,void 0,void 0,function*(){var N,U;try{let{done:F,value:M}=yield Promise.race([$.read(),G.promise,(U=(N=this.outOfBandFailureRejectingFuture)===null||N===void 0?void 0:N.promise)!==null&&U!==void 0?U:new Promise(()=>{})]);if(F)return this.validateBytesReceived(!0),{done:!0,value:void 0};else{this.handleChunkReceived(M);let L;try{L=Y.decode(M.content)}catch(k){throw new f6("Cannot decode datastream chunk ".concat(M.chunkIndex," as text: ").concat(k),Y6.DecodeFailed)}return{done:!1,value:L}}}catch(F){throw K(),F}}),return(){return E(this,void 0,void 0,function*(){return K(),{done:!0,value:void 0}})}}}withAbortSignal($){return this.signal=$,this}readAll(){return E(this,arguments,void 0,function(){var $=this;let Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function*(){var G,H,q,K;let N="",U=Y.signal?$.withAbortSignal(Y.signal):$;try{for(var F=!0,M=c5(U),L;L=yield M.next(),G=L.done,!G;F=!0)K=L.value,F=!1,N+=K}catch(k){H={error:k}}finally{try{if(!F&&!G&&(q=M.return))yield q.call(M)}finally{if(H)throw H.error}}return N}()})}}class wt{constructor(){this.log=c0,this.byteStreamControllers=new Map,this.textStreamControllers=new Map,this.byteStreamHandlers=new Map,this.textStreamHandlers=new Map}registerTextStreamHandler($,Y){if(this.textStreamHandlers.has($))throw new f6('A text stream handler for topic "'.concat($,'" has already been set.'),Y6.HandlerAlreadyRegistered);this.textStreamHandlers.set($,Y)}unregisterTextStreamHandler($){this.textStreamHandlers.delete($)}registerByteStreamHandler($,Y){if(this.byteStreamHandlers.has($))throw new f6('A byte stream handler for topic "'.concat($,'" has already been set.'),Y6.HandlerAlreadyRegistered);this.byteStreamHandlers.set($,Y)}unregisterByteStreamHandler($){this.byteStreamHandlers.delete($)}clearControllers(){this.byteStreamControllers.clear(),this.textStreamControllers.clear()}validateParticipantHasNoActiveDataStreams($){var Y,G,H,q;let K=Array.from(this.textStreamControllers.entries()).filter((U)=>U[1].sendingParticipantIdentity===$),N=Array.from(this.byteStreamControllers.entries()).filter((U)=>U[1].sendingParticipantIdentity===$);if(K.length>0||N.length>0){let U=new f6("Participant ".concat($," unexpectedly disconnected in the middle of sending data"),Y6.AbnormalEnd);for(let[F,M]of N)(G=(Y=M.outOfBandFailureRejectingFuture).reject)===null||G===void 0||G.call(Y,U),this.byteStreamControllers.delete(F);for(let[F,M]of K)(q=(H=M.outOfBandFailureRejectingFuture).reject)===null||q===void 0||q.call(H,U),this.textStreamControllers.delete(F)}}handleDataStreamPacket($,Y){return E(this,void 0,void 0,function*(){switch($.value.case){case"streamHeader":return this.handleStreamHeader($.value.value,$.participantIdentity,Y);case"streamChunk":return this.handleStreamChunk($.value.value,Y);case"streamTrailer":return this.handleStreamTrailer($.value.value,Y);default:throw Error('DataPacket of value "'.concat($.value.case,'" is not data stream related!'))}})}handleStreamHeader($,Y,G){return E(this,void 0,void 0,function*(){var H;if($.contentHeader.case==="byteHeader"){let q=this.byteStreamHandlers.get($.topic);if(!q){this.log.debug("ignoring incoming byte stream due to no handler for topic",$.topic);return}let K,N=new m6;N.promise.catch((M)=>{this.log.error(M)});let U={id:$.streamId,name:(H=$.contentHeader.value.name)!==null&&H!==void 0?H:"unknown",mimeType:$.mimeType,size:$.totalLength?Number($.totalLength):void 0,topic:$.topic,timestamp:NB($.timestamp),attributes:$.attributes,encryptionType:G},F=new ReadableStream({start:(M)=>{if(K=M,this.textStreamControllers.has($.streamId))throw new f6("A data stream read is already in progress for a stream with id ".concat($.streamId,"."),Y6.AlreadyOpened);this.byteStreamControllers.set($.streamId,{info:U,controller:K,startTime:Date.now(),sendingParticipantIdentity:Y,outOfBandFailureRejectingFuture:N})}});q(new kt(U,F,NB($.totalLength),N),{identity:Y})}else if($.contentHeader.case==="textHeader"){let q=this.textStreamHandlers.get($.topic);if(!q){this.log.debug("ignoring incoming text stream due to no handler for topic",$.topic);return}let K,N=new m6;N.promise.catch((M)=>{this.log.error(M)});let U={id:$.streamId,mimeType:$.mimeType,size:$.totalLength?Number($.totalLength):void 0,topic:$.topic,timestamp:Number($.timestamp),attributes:$.attributes,encryptionType:G,attachedStreamIds:$.contentHeader.value.attachedStreamIds},F=new ReadableStream({start:(M)=>{if(K=M,this.textStreamControllers.has($.streamId))throw new f6("A data stream read is already in progress for a stream with id ".concat($.streamId,"."),Y6.AlreadyOpened);this.textStreamControllers.set($.streamId,{info:U,controller:K,startTime:Date.now(),sendingParticipantIdentity:Y,outOfBandFailureRejectingFuture:N})}});q(new Rt(U,F,NB($.totalLength),N),{identity:Y})}})}handleStreamChunk($,Y){let G=this.byteStreamControllers.get($.streamId);if(G){if(G.info.encryptionType!==Y)G.controller.error(new f6("Encryption type mismatch for stream ".concat($.streamId,". Expected ").concat(Y,", got ").concat(G.info.encryptionType),Y6.EncryptionTypeMismatch)),this.byteStreamControllers.delete($.streamId);else if($.content.length>0)G.controller.enqueue($)}let H=this.textStreamControllers.get($.streamId);if(H){if(H.info.encryptionType!==Y)H.controller.error(new f6("Encryption type mismatch for stream ".concat($.streamId,". Expected ").concat(Y,", got ").concat(H.info.encryptionType),Y6.EncryptionTypeMismatch)),this.textStreamControllers.delete($.streamId);else if($.content.length>0)H.controller.enqueue($)}}handleStreamTrailer($,Y){let G=this.textStreamControllers.get($.streamId);if(G)if(G.info.encryptionType!==Y)G.controller.error(new f6("Encryption type mismatch for stream ".concat($.streamId,". Expected ").concat(Y,", got ").concat(G.info.encryptionType),Y6.EncryptionTypeMismatch));else G.info.attributes=Object.assign(Object.assign({},G.info.attributes),$.attributes),G.controller.close(),this.textStreamControllers.delete($.streamId);let H=this.byteStreamControllers.get($.streamId);if(H){if(H.info.encryptionType!==Y)H.controller.error(new f6("Encryption type mismatch for stream ".concat($.streamId,". Expected ").concat(Y,", got ").concat(H.info.encryptionType),Y6.EncryptionTypeMismatch));else H.info.attributes=Object.assign(Object.assign({},H.info.attributes),$.attributes),H.controller.close();this.byteStreamControllers.delete($.streamId)}}}class zU{constructor($,Y,G){this.writableStream=$,this.defaultWriter=$.getWriter(),this.onClose=G,this.info=Y}write($){return this.defaultWriter.write($)}close(){return E(this,void 0,void 0,function*(){var $;yield this.defaultWriter.close(),this.defaultWriter.releaseLock(),($=this.onClose)===null||$===void 0||$.call(this)})}}class xt extends zU{}class Vt extends zU{}var Un=15000;class _t{constructor($,Y){this.engine=$,this.log=Y}setupEngine($){this.engine=$}sendText($,Y){return E(this,void 0,void 0,function*(){var G;let H=crypto.randomUUID(),K=new TextEncoder().encode($).byteLength,N=(G=Y===null||Y===void 0?void 0:Y.attachments)===null||G===void 0?void 0:G.map(()=>crypto.randomUUID()),U=Array(N?N.length+1:1).fill(0),F=(L,k)=>{var R;U[k]=L;let _=U.reduce((S,T)=>S+T,0);(R=Y===null||Y===void 0?void 0:Y.onProgress)===null||R===void 0||R.call(Y,_)},M=yield this.streamText({streamId:H,totalSize:K,destinationIdentities:Y===null||Y===void 0?void 0:Y.destinationIdentities,topic:Y===null||Y===void 0?void 0:Y.topic,attachedStreamIds:N,attributes:Y===null||Y===void 0?void 0:Y.attributes});if(yield M.write($),F(1,0),yield M.close(),(Y===null||Y===void 0?void 0:Y.attachments)&&N)yield Promise.all(Y.attachments.map((L,k)=>E(this,void 0,void 0,function*(){return this._sendFile(N[k],L,{topic:Y.topic,mimeType:L.type,onProgress:(R)=>{F(R,k+1)}})})));return M.info})}streamText($){return E(this,void 0,void 0,function*(){var Y,G,H;let q=(Y=$===null||$===void 0?void 0:$.streamId)!==null&&Y!==void 0?Y:crypto.randomUUID(),K={id:q,mimeType:"text/plain",timestamp:Date.now(),topic:(G=$===null||$===void 0?void 0:$.topic)!==null&&G!==void 0?G:"",size:$===null||$===void 0?void 0:$.totalSize,attributes:$===null||$===void 0?void 0:$.attributes,encryptionType:((H=this.engine.e2eeManager)===null||H===void 0?void 0:H.isDataChannelEncryptionEnabled)?Q2.GCM:Q2.NONE,attachedStreamIds:$===null||$===void 0?void 0:$.attachedStreamIds},N=new OB({streamId:q,mimeType:K.mimeType,topic:K.topic,timestamp:P7(K.timestamp),totalLength:P7($===null||$===void 0?void 0:$.totalSize),attributes:K.attributes,contentHeader:{case:"textHeader",value:new Qa({version:$===null||$===void 0?void 0:$.version,attachedStreamIds:K.attachedStreamIds,replyToStreamId:$===null||$===void 0?void 0:$.replyToStreamId,operationType:($===null||$===void 0?void 0:$.type)==="update"?qW.UPDATE:qW.CREATE})}}),U=$===null||$===void 0?void 0:$.destinationIdentities,F=new Q6({destinationIdentities:U,value:{case:"streamHeader",value:N}});yield this.engine.sendDataPacket(F,$1.RELIABLE);let M=0,L=this.engine,k=new WritableStream({write(S){return E(this,void 0,void 0,function*(){for(let T of r80(S,Un)){let y=new PB({content:T,streamId:q,chunkIndex:P7(M)}),g=new Q6({destinationIdentities:U,value:{case:"streamChunk",value:y}});yield L.sendDataPacket(g,$1.RELIABLE),M+=1}})},close(){return E(this,void 0,void 0,function*(){let S=new LB({streamId:q}),T=new Q6({destinationIdentities:U,value:{case:"streamTrailer",value:S}});yield L.sendDataPacket(T,$1.RELIABLE)})},abort(S){console.log("Sink error:",S)}}),R=()=>E(this,void 0,void 0,function*(){yield _.close()});L.once(K0.Closing,R);let _=new xt(k,K,()=>this.engine.off(K0.Closing,R));return _})}sendFile($,Y){return E(this,void 0,void 0,function*(){let G=crypto.randomUUID();return yield this._sendFile(G,$,Y),{id:G}})}_sendFile($,Y,G){return E(this,void 0,void 0,function*(){var H;let q=yield this.streamBytes({streamId:$,totalSize:Y.size,name:Y.name,mimeType:(H=G===null||G===void 0?void 0:G.mimeType)!==null&&H!==void 0?H:Y.type,topic:G===null||G===void 0?void 0:G.topic,destinationIdentities:G===null||G===void 0?void 0:G.destinationIdentities}),K=Y.stream().getReader();while(!0){let{done:N,value:U}=yield K.read();if(N)break;yield q.write(U)}return yield q.close(),q.info})}streamBytes($){return E(this,void 0,void 0,function*(){var Y,G,H,q,K,N;let U=(Y=$===null||$===void 0?void 0:$.streamId)!==null&&Y!==void 0?Y:crypto.randomUUID(),F=$===null||$===void 0?void 0:$.destinationIdentities,M={id:U,mimeType:(G=$===null||$===void 0?void 0:$.mimeType)!==null&&G!==void 0?G:"application/octet-stream",topic:(H=$===null||$===void 0?void 0:$.topic)!==null&&H!==void 0?H:"",timestamp:Date.now(),attributes:$===null||$===void 0?void 0:$.attributes,size:$===null||$===void 0?void 0:$.totalSize,name:(q=$===null||$===void 0?void 0:$.name)!==null&&q!==void 0?q:"unknown",encryptionType:((K=this.engine.e2eeManager)===null||K===void 0?void 0:K.isDataChannelEncryptionEnabled)?Q2.GCM:Q2.NONE},L=new OB({totalLength:P7((N=M.size)!==null&&N!==void 0?N:0),mimeType:M.mimeType,streamId:U,topic:M.topic,timestamp:P7(Date.now()),attributes:M.attributes,contentHeader:{case:"byteHeader",value:new Ga({name:M.name})}}),k=new Q6({destinationIdentities:F,value:{case:"streamHeader",value:L}});yield this.engine.sendDataPacket(k,$1.RELIABLE);let R=0,_=new y2,S=this.engine,T=this.log,y=new WritableStream({write(o){return E(this,void 0,void 0,function*(){let c=yield _.lock(),C=0;try{while(C<o.byteLength){let I=o.slice(C,C+Un),p=new Q6({destinationIdentities:F,value:{case:"streamChunk",value:new PB({content:I,streamId:U,chunkIndex:P7(R)})}});yield S.sendDataPacket(p,$1.RELIABLE),R+=1,C+=I.byteLength}}finally{c()}})},close(){return E(this,void 0,void 0,function*(){let o=new LB({streamId:U}),c=new Q6({destinationIdentities:F,value:{case:"streamTrailer",value:o}});yield S.sendDataPacket(c,$1.RELIABLE)})},abort(o){T.error("Sink error:",o)}});return new Vt(y,M)})}}class qU extends e{constructor($,Y,G,H,q){super($,G,q);this.sid=Y,this.receiver=H}get isLocal(){return!1}setMuted($){if(this.isMuted!==$)this.isMuted=$,this._mediaStreamTrack.enabled=!$,this.emit($?B0.Muted:B0.Unmuted,this)}setMediaStream($){this.mediaStream=$;let Y=(G)=>{if(G.track===this._mediaStreamTrack){if($.removeEventListener("removetrack",Y),this.receiver&&"playoutDelayHint"in this.receiver)this.receiver.playoutDelayHint=void 0;this.receiver=void 0,this._currentBitrate=0,this.emit(B0.Ended,this)}};$.addEventListener("removetrack",Y)}start(){this.startMonitor(),super.enable()}stop(){this.stopMonitor(),super.disable()}getRTCStatsReport(){return E(this,void 0,void 0,function*(){var $;if(!(($=this.receiver)===null||$===void 0?void 0:$.getStats))return;return yield this.receiver.getStats()})}setPlayoutDelay($){if(this.receiver)if("playoutDelayHint"in this.receiver)this.receiver.playoutDelayHint=$;else this.log.warn("Playout delay not supported in this browser");else this.log.warn("Cannot set playout delay, track already ended")}getPlayoutDelay(){if(this.receiver)if("playoutDelayHint"in this.receiver)return this.receiver.playoutDelayHint;else this.log.warn("Playout delay not supported in this browser");else this.log.warn("Cannot get playout delay, track already ended");return 0}startMonitor(){if(!this.monitorInterval)this.monitorInterval=setInterval(()=>this.monitorReceiver(),ZU);if(I80())this.registerTimeSyncUpdate()}registerTimeSyncUpdate(){let $=()=>{var Y;this.timeSyncHandle=requestAnimationFrame(()=>$());let G=(Y=this.receiver)===null||Y===void 0?void 0:Y.getSynchronizationSources()[0];if(G){let{timestamp:H,rtpTimestamp:q}=G;if(q&&this.rtpTimestamp!==q)this.emit(B0.TimeSyncUpdate,{timestamp:H,rtpTimestamp:q}),this.rtpTimestamp=q}};$()}}class fB extends qU{constructor($,Y,G,H,q,K){super($,Y,e.Kind.Audio,G,K);if(this.monitorReceiver=()=>E(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}let N=yield this.getReceiverStats();if(N&&this.prevStats&&this.receiver)this._currentBitrate=pB(N,this.prevStats);this.prevStats=N}),this.audioContext=H,this.webAudioPluginNodes=[],q)this.sinkId=q.deviceId}setVolume($){var Y;for(let G of this.attachedElements)if(this.audioContext)(Y=this.gainNode)===null||Y===void 0||Y.gain.setTargetAtTime($,0,0.1);else G.volume=$;if(B5())this._mediaStreamTrack._setVolume($);this.elementVolume=$}getVolume(){if(this.elementVolume)return this.elementVolume;if(B5())return 1;let $=0;return this.attachedElements.forEach((Y)=>{if(Y.volume>$)$=Y.volume}),$}setSinkId($){return E(this,void 0,void 0,function*(){this.sinkId=$,yield Promise.all(this.attachedElements.map((Y)=>{if(!_W(Y))return;return Y.setSinkId($)}))})}attach($){let Y=this.attachedElements.length===0;if(!$)$=super.attach();else super.attach($);if(this.sinkId&&_W($))$.setSinkId(this.sinkId).catch((G)=>{this.log.error("Failed to set sink id on remote audio track",G,this.logContext)});if(this.audioContext&&Y)this.log.debug("using audio context mapping",this.logContext),this.connectWebAudio(this.audioContext,$),$.volume=0,$.muted=!0;if(this.elementVolume)this.setVolume(this.elementVolume);return $}detach($){let Y;if(!$)Y=super.detach(),this.disconnectWebAudio();else if(Y=super.detach($),this.audioContext)if(this.attachedElements.length>0)this.connectWebAudio(this.audioContext,this.attachedElements[0]);else this.disconnectWebAudio();return Y}setAudioContext($){if(this.audioContext=$,$&&this.attachedElements.length>0)this.connectWebAudio($,this.attachedElements[0]);else if(!$)this.disconnectWebAudio()}setWebAudioPlugins($){if(this.webAudioPluginNodes=$,this.attachedElements.length>0&&this.audioContext)this.connectWebAudio(this.audioContext,this.attachedElements[0])}connectWebAudio($,Y){this.disconnectWebAudio(),this.sourceNode=$.createMediaStreamSource(Y.srcObject);let G=this.sourceNode;if(this.webAudioPluginNodes.forEach((H)=>{G.connect(H),G=H}),this.gainNode=$.createGain(),G.connect(this.gainNode),this.gainNode.connect($.destination),this.elementVolume)this.gainNode.gain.setTargetAtTime(this.elementVolume,0,0.1);if($.state!=="running")$.resume().then(()=>{if($.state!=="running")this.emit(B0.AudioPlaybackFailed,Error("Audio Context couldn't be started automatically"))}).catch((H)=>{this.emit(B0.AudioPlaybackFailed,H)})}disconnectWebAudio(){var $,Y;($=this.gainNode)===null||$===void 0||$.disconnect(),(Y=this.sourceNode)===null||Y===void 0||Y.disconnect(),this.gainNode=void 0,this.sourceNode=void 0}getReceiverStats(){return E(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;let $=yield this.receiver.getStats(),Y;return $.forEach((G)=>{if(G.type==="inbound-rtp")Y={type:"audio",streamId:G.id,timestamp:G.timestamp,jitter:G.jitter,bytesReceived:G.bytesReceived,concealedSamples:G.concealedSamples,concealmentEvents:G.concealmentEvents,silentConcealedSamples:G.silentConcealedSamples,silentConcealmentEvents:G.silentConcealmentEvents,totalAudioEnergy:G.totalAudioEnergy,totalSamplesDuration:G.totalSamplesDuration}}),Y})}}var GW=100;class It extends qU{constructor($,Y,G,H,q){super($,Y,e.Kind.Video,G,q);this.elementInfos=[],this.monitorReceiver=()=>E(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}let K=yield this.getReceiverStats();if(K&&this.prevStats&&this.receiver)this._currentBitrate=pB(K,this.prevStats);this.prevStats=K}),this.debouncedHandleResize=tW(()=>{this.updateDimensions()},GW),this.adaptiveStreamSettings=H}get isAdaptiveStream(){return this.adaptiveStreamSettings!==void 0}setStreamState($){if(super.setStreamState($),this.log.debug("setStreamState",$),this.isAdaptiveStream&&$===e.StreamState.Active)this.updateVisibility()}get mediaStreamTrack(){return this._mediaStreamTrack}setMuted($){super.setMuted($),this.attachedElements.forEach((Y)=>{if($)o3(this._mediaStreamTrack,Y);else d3(this._mediaStreamTrack,Y)})}attach($){if(!$)$=super.attach();else super.attach($);if(this.adaptiveStreamSettings&&this.elementInfos.find((Y)=>Y.element===$)===void 0){let Y=new Ct($);this.observeElementInfo(Y)}return $}observeElementInfo($){if(this.adaptiveStreamSettings&&this.elementInfos.find((Y)=>Y===$)===void 0)$.handleResize=()=>{this.debouncedHandleResize()},$.handleVisibilityChanged=()=>{this.updateVisibility()},this.elementInfos.push($),$.observe(),this.debouncedHandleResize(),this.updateVisibility();else this.log.warn("visibility resize observer not triggered",this.logContext)}stopObservingElementInfo($){if(!this.isAdaptiveStream){this.log.warn("stopObservingElementInfo ignored",this.logContext);return}let Y=this.elementInfos.filter((G)=>G===$);for(let G of Y)G.stopObserving();this.elementInfos=this.elementInfos.filter((G)=>G!==$),this.updateVisibility(),this.debouncedHandleResize()}detach($){let Y=[];if($)return this.stopObservingElement($),super.detach($);Y=super.detach();for(let G of Y)this.stopObservingElement(G);return Y}getDecoderImplementation(){var $;return($=this.prevStats)===null||$===void 0?void 0:$.decoderImplementation}getReceiverStats(){return E(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;let $=yield this.receiver.getStats(),Y,G="",H=new Map;if($.forEach((q)=>{if(q.type==="inbound-rtp")G=q.codecId,Y={type:"video",streamId:q.id,framesDecoded:q.framesDecoded,framesDropped:q.framesDropped,framesReceived:q.framesReceived,packetsReceived:q.packetsReceived,packetsLost:q.packetsLost,frameWidth:q.frameWidth,frameHeight:q.frameHeight,pliCount:q.pliCount,firCount:q.firCount,nackCount:q.nackCount,jitter:q.jitter,timestamp:q.timestamp,bytesReceived:q.bytesReceived,decoderImplementation:q.decoderImplementation};else if(q.type==="codec")H.set(q.id,q)}),Y&&G!==""&&H.get(G))Y.mimeType=H.get(G).mimeType;return Y})}stopObservingElement($){let Y=this.elementInfos.filter((G)=>G.element===$);for(let G of Y)this.stopObservingElementInfo(G)}handleAppVisibilityChanged(){let $=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return E(this,void 0,void 0,function*(){if(yield $.handleAppVisibilityChanged.call(this),!this.isAdaptiveStream)return;this.updateVisibility()})}updateVisibility($){var Y,G;let H=this.elementInfos.reduce((U,F)=>Math.max(U,F.visibilityChangedAt||0),0),q=((G=(Y=this.adaptiveStreamSettings)===null||Y===void 0?void 0:Y.pauseVideoInBackground)!==null&&G!==void 0?G:!0)?this.isInBackground:!1,K=this.elementInfos.some((U)=>U.pictureInPicture),N=this.elementInfos.some((U)=>U.visible)&&!q||K;if(this.lastVisible===N&&!$)return;if(!N&&Date.now()-H<GW){E2.setTimeout(()=>{this.updateVisibility()},GW);return}this.lastVisible=N,this.emit(B0.VisibilityChanged,N,this)}updateDimensions(){var $,Y;let G=0,H=0,q=this.getPixelDensity();for(let K of this.elementInfos){let N=K.width()*q,U=K.height()*q;if(N+U>G+H)G=N,H=U}if((($=this.lastDimensions)===null||$===void 0?void 0:$.width)===G&&((Y=this.lastDimensions)===null||Y===void 0?void 0:Y.height)===H)return;this.lastDimensions={width:G,height:H},this.emit(B0.VideoDimensionsChanged,this.lastDimensions,this)}getPixelDensity(){var $;let Y=($=this.adaptiveStreamSettings)===null||$===void 0?void 0:$.pixelDensity;if(Y==="screen")return lr();else if(!Y)if(lr()>2)return 2;else return 1;return Y}}class Ct{get visible(){return this.isPiP||this.isIntersecting}get pictureInPicture(){return this.isPiP}constructor($,Y){this.onVisibilityChanged=(G)=>{var H;let{target:q,isIntersecting:K}=G;if(q===this.element)this.isIntersecting=K,this.isPiP=eG(this.element),this.visibilityChangedAt=Date.now(),(H=this.handleVisibilityChanged)===null||H===void 0||H.call(this)},this.onEnterPiP=()=>{var G,H,q;(H=(G=window.documentPictureInPicture)===null||G===void 0?void 0:G.window)===null||H===void 0||H.addEventListener("pagehide",this.onLeavePiP),this.isPiP=eG(this.element),(q=this.handleVisibilityChanged)===null||q===void 0||q.call(this)},this.onLeavePiP=()=>{var G;this.isPiP=eG(this.element),(G=this.handleVisibilityChanged)===null||G===void 0||G.call(this)},this.element=$,this.isIntersecting=Y!==null&&Y!==void 0?Y:jW($),this.isPiP=M6()&&eG($),this.visibilityChangedAt=0}width(){return this.element.clientWidth}height(){return this.element.clientHeight}observe(){var $,Y,G;this.isIntersecting=jW(this.element),this.isPiP=eG(this.element),this.element.handleResize=()=>{var H;(H=this.handleResize)===null||H===void 0||H.call(this)},this.element.handleVisibilityChanged=this.onVisibilityChanged,ir().observe(this.element),cr().observe(this.element),this.element.addEventListener("enterpictureinpicture",this.onEnterPiP),this.element.addEventListener("leavepictureinpicture",this.onLeavePiP),($=window.documentPictureInPicture)===null||$===void 0||$.addEventListener("enter",this.onEnterPiP),(G=(Y=window.documentPictureInPicture)===null||Y===void 0?void 0:Y.window)===null||G===void 0||G.addEventListener("pagehide",this.onLeavePiP)}stopObserving(){var $,Y,G,H,q;($=ir())===null||$===void 0||$.unobserve(this.element),(Y=cr())===null||Y===void 0||Y.unobserve(this.element),this.element.removeEventListener("enterpictureinpicture",this.onEnterPiP),this.element.removeEventListener("leavepictureinpicture",this.onLeavePiP),(G=window.documentPictureInPicture)===null||G===void 0||G.removeEventListener("enter",this.onEnterPiP),(q=(H=window.documentPictureInPicture)===null||H===void 0?void 0:H.window)===null||q===void 0||q.removeEventListener("pagehide",this.onLeavePiP)}}function eG($){var Y,G;if(document.pictureInPictureElement===$)return!0;if((Y=window.documentPictureInPicture)===null||Y===void 0?void 0:Y.window)return jW($,(G=window.documentPictureInPicture)===null||G===void 0?void 0:G.window);return!1}function jW($,Y){let G=Y||window,H=$.offsetTop,q=$.offsetLeft,K=$.offsetWidth,N=$.offsetHeight,{hidden:U}=$,{display:F}=getComputedStyle($);while($.offsetParent)$=$.offsetParent,H+=$.offsetTop,q+=$.offsetLeft;return H<G.pageYOffset+G.innerHeight&&q<G.pageXOffset+G.innerWidth&&H+N>G.pageYOffset&&q+K>G.pageXOffset&&!U&&F!=="none"}class H5 extends J5.EventEmitter{constructor($,Y,G,H){var q;super();this.metadataMuted=!1,this.encryption=Q2.NONE,this.log=c0,this.handleMuted=()=>{this.emit(B0.Muted)},this.handleUnmuted=()=>{this.emit(B0.Unmuted)},this.log=o5((q=H===null||H===void 0?void 0:H.loggerName)!==null&&q!==void 0?q:_4.Publication),this.loggerContextCb=this.loggerContextCb,this.setMaxListeners(100),this.kind=$,this.trackSid=Y,this.trackName=G,this.source=e.Source.Unknown}setTrack($){if(this.track)this.track.off(B0.Muted,this.handleMuted),this.track.off(B0.Unmuted,this.handleUnmuted);if(this.track=$,$)$.on(B0.Muted,this.handleMuted),$.on(B0.Unmuted,this.handleUnmuted)}get logContext(){var $;return Object.assign(Object.assign({},($=this.loggerContextCb)===null||$===void 0?void 0:$.call(this)),G1(this))}get isMuted(){return this.metadataMuted}get isEnabled(){return!0}get isSubscribed(){return this.track!==void 0}get isEncrypted(){return this.encryption!==Q2.NONE}get audioTrack(){if(q5(this.track))return this.track}get videoTrack(){if(W8(this.track))return this.track}updateInfo($){if(this.trackSid=$.sid,this.trackName=$.name,this.source=e.sourceFromProto($.source),this.mimeType=$.mimeType,this.kind===e.Kind.Video&&$.width>0)this.dimensions={width:$.width,height:$.height},this.simulcasted=$.simulcast;this.encryption=$.encryption,this.trackInfo=$,this.log.debug("update publication info",Object.assign(Object.assign({},this.logContext),{info:$}))}}(function($){(function(Y){Y.Desired="desired",Y.Subscribed="subscribed",Y.Unsubscribed="unsubscribed"})($.SubscriptionStatus||($.SubscriptionStatus={})),function(Y){Y.Allowed="allowed",Y.NotAllowed="not_allowed"}($.PermissionStatus||($.PermissionStatus={}))})(H5||(H5={}));class NH extends H5{get isUpstreamPaused(){var $;return($=this.track)===null||$===void 0?void 0:$.isUpstreamPaused}constructor($,Y,G,H){super($,Y.sid,Y.name,H);this.track=void 0,this.handleTrackEnded=()=>{this.emit(B0.Ended)},this.handleCpuConstrained=()=>{if(this.track&&W8(this.track))this.emit(B0.CpuConstrained,this.track)},this.updateInfo(Y),this.setTrack(G)}setTrack($){if(this.track)this.track.off(B0.Ended,this.handleTrackEnded),this.track.off(B0.CpuConstrained,this.handleCpuConstrained);if(super.setTrack($),$)$.on(B0.Ended,this.handleTrackEnded),$.on(B0.CpuConstrained,this.handleCpuConstrained)}get isMuted(){if(this.track)return this.track.isMuted;return super.isMuted}get audioTrack(){return super.audioTrack}get videoTrack(){return super.videoTrack}get isLocal(){return!0}mute(){return E(this,void 0,void 0,function*(){var $;return($=this.track)===null||$===void 0?void 0:$.mute()})}unmute(){return E(this,void 0,void 0,function*(){var $;return($=this.track)===null||$===void 0?void 0:$.unmute()})}pauseUpstream(){return E(this,void 0,void 0,function*(){var $;yield($=this.track)===null||$===void 0?void 0:$.pauseUpstream()})}resumeUpstream(){return E(this,void 0,void 0,function*(){var $;yield($=this.track)===null||$===void 0?void 0:$.resumeUpstream()})}getTrackFeatures(){var $;if(q5(this.track)){let Y=this.track.getSourceTrackSettings(),G=new Set;if(Y.autoGainControl)G.add(C2.TF_AUTO_GAIN_CONTROL);if(Y.echoCancellation)G.add(C2.TF_ECHO_CANCELLATION);if(Y.noiseSuppression)G.add(C2.TF_NOISE_SUPPRESSION);if(Y.channelCount&&Y.channelCount>1)G.add(C2.TF_STEREO);if(!(($=this.options)===null||$===void 0?void 0:$.dtx))G.add(C2.TF_NO_DTX);if(this.track.enhancedNoiseCancellation)G.add(C2.TF_ENHANCED_NOISE_CANCELLATION);return Array.from(G.values())}else return[]}}function gB($,Y){return E(this,void 0,void 0,function*(){$!==null&&$!==void 0||($={});let G=!1,{audioProcessor:H,videoProcessor:q,optionsWithoutProcessor:K}=Yt($),N=K.audio,U=K.video;if(H&&typeof K.audio==="object")K.audio.processor=H;if(q&&typeof K.video==="object")K.video.processor=q;if($.audio&&typeof K.audio==="object"&&typeof K.audio.deviceId==="string"){let k=K.audio.deviceId;K.audio.deviceId={exact:k},G=!0,N=Object.assign(Object.assign({},K.audio),{deviceId:{ideal:k}})}if(K.video&&typeof K.video==="object"&&typeof K.video.deviceId==="string"){let k=K.video.deviceId;K.video.deviceId={exact:k},G=!0,U=Object.assign(Object.assign({},K.video),{deviceId:{ideal:k}})}if(K.audio===!0)K.audio={deviceId:"default"};else if(typeof K.audio==="object"&&K.audio!==null)K.audio=Object.assign(Object.assign({},K.audio),{deviceId:K.audio.deviceId||"default"});if(K.video===!0)K.video={deviceId:"default"};else if(typeof K.video==="object"&&!K.video.deviceId)K.video.deviceId="default";let F=Xt(K,Kt,Nt),M=rW(F),L=navigator.mediaDevices.getUserMedia(M);if(K.audio)T2.userMediaPromiseMap.set("audioinput",L),L.catch(()=>T2.userMediaPromiseMap.delete("audioinput"));if(K.video)T2.userMediaPromiseMap.set("videoinput",L),L.catch(()=>T2.userMediaPromiseMap.delete("videoinput"));try{let k=yield L;return yield Promise.all(k.getTracks().map((R)=>E(this,void 0,void 0,function*(){let _=R.kind==="audio",S=_?F.audio:F.video;if(typeof S==="boolean"||!S)S={};let T,y=_?M.audio:M.video;if(typeof y!=="boolean")T=y;let g=R.getSettings().deviceId;if((T===null||T===void 0?void 0:T.deviceId)&&B8(T.deviceId)!==g)T.deviceId=g;else if(!T)T={deviceId:g};let o=T70(R,T,Y);if(o.kind===e.Kind.Video)o.source=e.Source.Camera;else if(o.kind===e.Kind.Audio)o.source=e.Source.Microphone;if(o.mediaStream=k,q5(o)&&H)yield o.setProcessor(H);else if(W8(o)&&q)yield o.setProcessor(q);return o})))}catch(k){if(!G)throw k;return gB(Object.assign(Object.assign({},$),{audio:N,video:U}),Y)}})}function c70($){return E(this,void 0,void 0,function*(){return(yield gB({audio:!1,video:$!==null&&$!==void 0?$:!0}))[0]})}function i70($){return E(this,void 0,void 0,function*(){return(yield gB({audio:$!==null&&$!==void 0?$:!0,video:!1}))[0]})}var i5;(function($){$.Excellent="excellent",$.Good="good",$.Poor="poor",$.Lost="lost",$.Unknown="unknown"})(i5||(i5={}));function o70($){switch($){case XH.EXCELLENT:return i5.Excellent;case XH.GOOD:return i5.Good;case XH.POOR:return i5.Poor;case XH.LOST:return i5.Lost;default:return i5.Unknown}}class BU extends J5.EventEmitter{get logContext(){var $,Y;return Object.assign({},(Y=($=this.loggerOptions)===null||$===void 0?void 0:$.loggerContextCb)===null||Y===void 0?void 0:Y.call($))}get isEncrypted(){return this.trackPublications.size>0&&Array.from(this.trackPublications.values()).every(($)=>$.isEncrypted)}get isAgent(){var $;return(($=this.permissions)===null||$===void 0?void 0:$.agent)||this.kind===K8.AGENT}get isActive(){var $;return(($=this.participantInfo)===null||$===void 0?void 0:$.state)===l3.ACTIVE}get kind(){return this._kind}get attributes(){return Object.freeze(Object.assign({},this._attributes))}constructor($,Y,G,H,q,K){let N=arguments.length>6&&arguments[6]!==void 0?arguments[6]:K8.STANDARD;var U;super();this.audioLevel=0,this.isSpeaking=!1,this._connectionQuality=i5.Unknown,this.log=c0,this.log=o5((U=K===null||K===void 0?void 0:K.loggerName)!==null&&U!==void 0?U:_4.Participant),this.loggerOptions=K,this.setMaxListeners(100),this.sid=$,this.identity=Y,this.name=G,this.metadata=H,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this._kind=N,this._attributes=q!==null&&q!==void 0?q:{}}getTrackPublications(){return Array.from(this.trackPublications.values())}getTrackPublication($){for(let[,Y]of this.trackPublications)if(Y.source===$)return Y}getTrackPublicationByName($){for(let[,Y]of this.trackPublications)if(Y.trackName===$)return Y}waitUntilActive(){if(this.isActive)return Promise.resolve();if(this.activeFuture)return this.activeFuture.promise;return this.activeFuture=new m6,this.once(Q0.Active,()=>{var $,Y;(Y=($=this.activeFuture)===null||$===void 0?void 0:$.resolve)===null||Y===void 0||Y.call($),this.activeFuture=void 0}),this.activeFuture.promise}get connectionQuality(){return this._connectionQuality}get isCameraEnabled(){var $;let Y=this.getTrackPublication(e.Source.Camera);return!(($=Y===null||Y===void 0?void 0:Y.isMuted)!==null&&$!==void 0?$:!0)}get isMicrophoneEnabled(){var $;let Y=this.getTrackPublication(e.Source.Microphone);return!(($=Y===null||Y===void 0?void 0:Y.isMuted)!==null&&$!==void 0?$:!0)}get isScreenShareEnabled(){return!!this.getTrackPublication(e.Source.ScreenShare)}get isLocal(){return!1}get joinedAt(){if(this.participantInfo)return new Date(Number.parseInt(this.participantInfo.joinedAt.toString())*1000);return new Date}updateInfo($){var Y;if(this.participantInfo&&this.participantInfo.sid===$.sid&&this.participantInfo.version>$.version)return!1;if(this.identity=$.identity,this.sid=$.sid,this._setName($.name),this._setMetadata($.metadata),this._setAttributes($.attributes),$.state===l3.ACTIVE&&((Y=this.participantInfo)===null||Y===void 0?void 0:Y.state)!==l3.ACTIVE)this.emit(Q0.Active);if($.permission)this.setPermissions($.permission);return this.participantInfo=$,!0}_setMetadata($){let Y=this.metadata!==$,G=this.metadata;if(this.metadata=$,Y)this.emit(Q0.ParticipantMetadataChanged,G)}_setName($){let Y=this.name!==$;if(this.name=$,Y)this.emit(Q0.ParticipantNameChanged,$)}_setAttributes($){let Y=C80(this.attributes,$);if(this._attributes=$,Object.keys(Y).length>0)this.emit(Q0.AttributesChanged,Y)}setPermissions($){var Y,G,H,q,K,N;let U=this.permissions,F=$.canPublish!==((Y=this.permissions)===null||Y===void 0?void 0:Y.canPublish)||$.canSubscribe!==((G=this.permissions)===null||G===void 0?void 0:G.canSubscribe)||$.canPublishData!==((H=this.permissions)===null||H===void 0?void 0:H.canPublishData)||$.hidden!==((q=this.permissions)===null||q===void 0?void 0:q.hidden)||$.recorder!==((K=this.permissions)===null||K===void 0?void 0:K.recorder)||$.canPublishSources.length!==this.permissions.canPublishSources.length||$.canPublishSources.some((M,L)=>{var k;return M!==((k=this.permissions)===null||k===void 0?void 0:k.canPublishSources[L])})||$.canSubscribeMetrics!==((N=this.permissions)===null||N===void 0?void 0:N.canSubscribeMetrics);if(this.permissions=$,F)this.emit(Q0.ParticipantPermissionsChanged,U);return F}setIsSpeaking($){if($===this.isSpeaking)return;if(this.isSpeaking=$,$)this.lastSpokeAt=new Date;this.emit(Q0.IsSpeakingChanged,$)}setConnectionQuality($){let Y=this._connectionQuality;if(this._connectionQuality=o70($),Y!==this._connectionQuality)this.emit(Q0.ConnectionQualityChanged,this._connectionQuality)}setDisconnected(){var $,Y;if(this.activeFuture)(Y=($=this.activeFuture).reject)===null||Y===void 0||Y.call($,Error("Participant disconnected")),this.activeFuture=void 0}setAudioContext($){this.audioContext=$,this.audioTrackPublications.forEach((Y)=>q5(Y.track)&&Y.track.setAudioContext($))}addTrackPublication($){$.on(B0.Muted,()=>{this.emit(Q0.TrackMuted,$)}),$.on(B0.Unmuted,()=>{this.emit(Q0.TrackUnmuted,$)});let Y=$;if(Y.track)Y.track.sid=$.trackSid;switch(this.trackPublications.set($.trackSid,$),$.kind){case e.Kind.Audio:this.audioTrackPublications.set($.trackSid,$);break;case e.Kind.Video:this.videoTrackPublications.set($.trackSid,$);break}}}function r70($){var Y,G,H;if(!$.participantSid&&!$.participantIdentity)throw Error("Invalid track permission, must provide at least one of participantIdentity and participantSid");return new Na({participantIdentity:(Y=$.participantIdentity)!==null&&Y!==void 0?Y:"",participantSid:(G=$.participantSid)!==null&&G!==void 0?G:"",allTracks:(H=$.allowAll)!==null&&H!==void 0?H:!1,trackSids:$.allowedTrackSids||[]})}class Tt extends BU{constructor($,Y,G,H,q,K){super($,Y,void 0,void 0,void 0,{loggerName:H.loggerName,loggerContextCb:()=>this.engine.logContext});this.pendingPublishing=new Set,this.pendingPublishPromises=new Map,this.participantTrackPermissions=[],this.allParticipantsAllowedToSubscribe=!0,this.encryptionType=Q2.NONE,this.enabledPublishVideoCodecs=[],this.pendingAcks=new Map,this.pendingResponses=new Map,this.handleReconnecting=()=>{if(!this.reconnectFuture)this.reconnectFuture=new m6},this.handleReconnected=()=>{var N,U;(U=(N=this.reconnectFuture)===null||N===void 0?void 0:N.resolve)===null||U===void 0||U.call(N),this.reconnectFuture=void 0,this.updateTrackSubscriptionPermissions()},this.handleClosing=()=>{var N,U,F,M,L,k;if(this.reconnectFuture)this.reconnectFuture.promise.catch((R)=>this.log.warn(R.message,this.logContext)),(U=(N=this.reconnectFuture)===null||N===void 0?void 0:N.reject)===null||U===void 0||U.call(N,Error("Got disconnected during reconnection attempt")),this.reconnectFuture=void 0;if(this.signalConnectedFuture)(M=(F=this.signalConnectedFuture).reject)===null||M===void 0||M.call(F,Error("Got disconnected without signal connected")),this.signalConnectedFuture=void 0;(k=(L=this.activeAgentFuture)===null||L===void 0?void 0:L.reject)===null||k===void 0||k.call(L,Error("Got disconnected without active agent present")),this.activeAgentFuture=void 0,this.firstActiveAgent=void 0},this.handleSignalConnected=(N)=>{var U,F;if(N.participant)this.updateInfo(N.participant);if(!this.signalConnectedFuture)this.signalConnectedFuture=new m6;(F=(U=this.signalConnectedFuture).resolve)===null||F===void 0||F.call(U)},this.handleSignalRequestResponse=(N)=>{let{requestId:U,reason:F,message:M}=N,L=this.pendingSignalRequests.get(U);if(L){if(F!==iW.OK)L.reject(new PW(M,F));this.pendingSignalRequests.delete(U)}},this.handleDataPacket=(N)=>{switch(N.value.case){case"rpcResponse":let U=N.value.value,F=null,M=null;if(U.value.case==="payload")F=U.value.value;else if(U.value.case==="error")M=e1.fromProto(U.value.value);this.handleIncomingRpcResponse(U.requestId,F,M);break;case"rpcAck":let L=N.value.value;this.handleIncomingRpcAck(L.requestId);break}},this.updateTrackSubscriptionPermissions=()=>{this.log.debug("updating track subscription permissions",Object.assign(Object.assign({},this.logContext),{allParticipantsAllowed:this.allParticipantsAllowedToSubscribe,participantTrackPermissions:this.participantTrackPermissions})),this.engine.client.sendUpdateSubscriptionPermissions(this.allParticipantsAllowedToSubscribe,this.participantTrackPermissions.map((N)=>r70(N)))},this.onTrackUnmuted=(N)=>{this.onTrackMuted(N,N.isUpstreamPaused)},this.onTrackMuted=(N,U)=>{if(U===void 0)U=!0;if(!N.sid){this.log.error("could not update mute status for unpublished track",Object.assign(Object.assign({},this.logContext),G1(N)));return}this.engine.updateMuteStatus(N.sid,U)},this.onTrackUpstreamPaused=(N)=>{this.log.debug("upstream paused",Object.assign(Object.assign({},this.logContext),G1(N))),this.onTrackMuted(N,!0)},this.onTrackUpstreamResumed=(N)=>{this.log.debug("upstream resumed",Object.assign(Object.assign({},this.logContext),G1(N))),this.onTrackMuted(N,N.isMuted)},this.onTrackFeatureUpdate=(N)=>{let U=this.audioTrackPublications.get(N.sid);if(!U){this.log.warn("Could not update local audio track settings, missing publication for track ".concat(N.sid),this.logContext);return}this.engine.client.sendUpdateLocalAudioTrack(U.trackSid,U.getTrackFeatures())},this.onTrackCpuConstrained=(N,U)=>{this.log.debug("track cpu constrained",Object.assign(Object.assign({},this.logContext),G1(U))),this.emit(Q0.LocalTrackCpuConstrained,N,U)},this.handleSubscribedQualityUpdate=(N)=>E(this,void 0,void 0,function*(){var U,F,M,L,k;if(!((k=this.roomOptions)===null||k===void 0?void 0:k.dynacast))return;let R=this.videoTrackPublications.get(N.trackSid);if(!R){this.log.warn("received subscribed quality update for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:N.trackSid}));return}if(!R.videoTrack)return;let _=yield R.videoTrack.setPublishingCodecs(N.subscribedCodecs);try{for(var S=!0,T=c5(_),y;y=yield T.next(),U=y.done,!U;S=!0){L=y.value,S=!1;let g=L;if(w80(g))this.log.debug("publish ".concat(g," for ").concat(R.videoTrack.sid),Object.assign(Object.assign({},this.logContext),G1(R))),yield this.publishAdditionalCodecForTrack(R.videoTrack,g,R.options)}}catch(g){F={error:g}}finally{try{if(!S&&!U&&(M=T.return))yield M.call(T)}finally{if(F)throw F.error}}}),this.handleLocalTrackUnpublished=(N)=>{let U=this.trackPublications.get(N.trackSid);if(!U){this.log.warn("received unpublished event for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:N.trackSid}));return}this.unpublishTrack(U.track)},this.handleTrackEnded=(N)=>E(this,void 0,void 0,function*(){if(N.source===e.Source.ScreenShare||N.source===e.Source.ScreenShareAudio)this.log.debug("unpublishing local track due to TrackEnded",Object.assign(Object.assign({},this.logContext),G1(N))),this.unpublishTrack(N);else if(N.isUserProvided)yield N.mute();else if(d5(N)||Z8(N))try{if(M6())try{let U=yield navigator===null||navigator===void 0?void 0:navigator.permissions.query({name:N.source===e.Source.Camera?"camera":"microphone"});if(U&&U.state==="denied")throw this.log.warn("user has revoked access to ".concat(N.source),Object.assign(Object.assign({},this.logContext),G1(N))),U.onchange=()=>{if(U.state!=="denied"){if(!N.isMuted)N.restartTrack();U.onchange=null}},Error("GetUserMedia Permission denied")}catch(U){}if(!N.isMuted)if(this.log.debug("track ended, attempting to use a different device",Object.assign(Object.assign({},this.logContext),G1(N))),d5(N))yield N.restartTrack({deviceId:"default"});else yield N.restartTrack()}catch(U){this.log.warn("could not restart track, muting instead",Object.assign(Object.assign({},this.logContext),G1(N))),yield N.mute()}}),this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this.engine=G,this.roomOptions=H,this.setupEngine(G),this.activeDeviceMap=new Map([["audioinput","default"],["videoinput","default"],["audiooutput","default"]]),this.pendingSignalRequests=new Map,this.rpcHandlers=q,this.roomOutgoingDataStreamManager=K}get lastCameraError(){return this.cameraError}get lastMicrophoneError(){return this.microphoneError}get isE2EEEnabled(){return this.encryptionType!==Q2.NONE}getTrackPublication($){let Y=super.getTrackPublication($);if(Y)return Y}getTrackPublicationByName($){let Y=super.getTrackPublicationByName($);if(Y)return Y}setupEngine($){var Y;if(this.engine=$,this.engine.on(K0.RemoteMute,(G,H)=>{let q=this.trackPublications.get(G);if(!q||!q.track)return;if(H)q.mute();else q.unmute()}),(Y=this.signalConnectedFuture)===null||Y===void 0?void 0:Y.isResolved)this.signalConnectedFuture=void 0;this.engine.on(K0.Connected,this.handleReconnected).on(K0.SignalConnected,this.handleSignalConnected).on(K0.SignalRestarted,this.handleReconnected).on(K0.SignalResumed,this.handleReconnected).on(K0.Restarting,this.handleReconnecting).on(K0.Resuming,this.handleReconnecting).on(K0.LocalTrackUnpublished,this.handleLocalTrackUnpublished).on(K0.SubscribedQualityUpdate,this.handleSubscribedQualityUpdate).on(K0.Closing,this.handleClosing).on(K0.SignalRequestResponse,this.handleSignalRequestResponse).on(K0.DataPacketReceived,this.handleDataPacket)}setMetadata($){return E(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({metadata:$})})}setName($){return E(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({name:$})})}setAttributes($){return E(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({attributes:$})})}requestMetadataUpdate($){return E(this,arguments,void 0,function(Y){var G=this;let{metadata:H,name:q,attributes:K}=Y;return function*(){return new g2((N,U)=>E(G,void 0,void 0,function*(){var F,M;try{let L=!1,k=yield this.engine.client.sendUpdateLocalMetadata((F=H!==null&&H!==void 0?H:this.metadata)!==null&&F!==void 0?F:"",(M=q!==null&&q!==void 0?q:this.name)!==null&&M!==void 0?M:"",K),R=performance.now();this.pendingSignalRequests.set(k,{resolve:N,reject:(_)=>{U(_),L=!0},values:{name:q,metadata:H,attributes:K}});while(performance.now()-R<5000&&!L){if((!q||this.name===q)&&(!H||this.metadata===H)&&(!K||Object.entries(K).every((_)=>{let[S,T]=_;return this.attributes[S]===T||T===""&&!this.attributes[S]}))){this.pendingSignalRequests.delete(k),N();return}yield m2(50)}U(new PW("Request to update local metadata timed out","TimeoutError"))}catch(L){if(L instanceof Error)U(L);else U(Error(String(L)))}}))}()})}setCameraEnabled($,Y,G){return this.setTrackEnabled(e.Source.Camera,$,Y,G)}setMicrophoneEnabled($,Y,G){return this.setTrackEnabled(e.Source.Microphone,$,Y,G)}setScreenShareEnabled($,Y,G){return this.setTrackEnabled(e.Source.ScreenShare,$,Y,G)}setE2EEEnabled($){return E(this,void 0,void 0,function*(){this.encryptionType=$?Q2.GCM:Q2.NONE,yield this.republishAllTracks(void 0,!1)})}setTrackEnabled($,Y,G,H){return E(this,void 0,void 0,function*(){var q,K;if(this.log.debug("setTrackEnabled",Object.assign(Object.assign({},this.logContext),{source:$,enabled:Y})),this.republishPromise)yield this.republishPromise;let N=this.getTrackPublication($);if(Y)if(N)yield N.unmute();else{let U;if(this.pendingPublishing.has($)){let F=yield this.waitForPendingPublicationOfSource($);if(!F)this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:$}));return yield F===null||F===void 0?void 0:F.unmute(),F}this.pendingPublishing.add($);try{switch($){case e.Source.Camera:U=yield this.createTracks({video:(q=G)!==null&&q!==void 0?q:!0});break;case e.Source.Microphone:U=yield this.createTracks({audio:(K=G)!==null&&K!==void 0?K:!0});break;case e.Source.ScreenShare:U=yield this.createScreenTracks(Object.assign({},G));break;default:throw new z5($)}}catch(F){if(U===null||U===void 0||U.forEach((M)=>{M.stop()}),F instanceof Error)this.emit(Q0.MediaDevicesError,F,wW($));throw this.pendingPublishing.delete($),F}for(let F of U){let M=Object.assign(Object.assign({},this.roomOptions.publishDefaults),G);if($===e.Source.Microphone&&q5(F)&&M.preConnectBuffer)this.log.info("starting preconnect buffer for microphone",Object.assign({},this.logContext)),F.startPreConnectBuffer()}try{let F=[];for(let L of U)this.log.info("publishing track",Object.assign(Object.assign({},this.logContext),G1(L))),F.push(this.publishTrack(L,H));[N]=yield Promise.all(F)}catch(F){throw U===null||U===void 0||U.forEach((M)=>{M.stop()}),F}finally{this.pendingPublishing.delete($)}}else{if(!(N===null||N===void 0?void 0:N.track)&&this.pendingPublishing.has($)){if(N=yield this.waitForPendingPublicationOfSource($),!N)this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:$}))}if(N&&N.track)if($===e.Source.ScreenShare){N=yield this.unpublishTrack(N.track);let U=this.getTrackPublication(e.Source.ScreenShareAudio);if(U&&U.track)this.unpublishTrack(U.track)}else yield N.mute()}return N})}enableCameraAndMicrophone(){return E(this,void 0,void 0,function*(){if(this.pendingPublishing.has(e.Source.Camera)||this.pendingPublishing.has(e.Source.Microphone))return;this.pendingPublishing.add(e.Source.Camera),this.pendingPublishing.add(e.Source.Microphone);try{let $=yield this.createTracks({audio:!0,video:!0});yield Promise.all($.map((Y)=>this.publishTrack(Y)))}finally{this.pendingPublishing.delete(e.Source.Camera),this.pendingPublishing.delete(e.Source.Microphone)}})}createTracks($){return E(this,void 0,void 0,function*(){var Y,G;$!==null&&$!==void 0||($={});let H=Xt($,(Y=this.roomOptions)===null||Y===void 0?void 0:Y.audioCaptureDefaults,(G=this.roomOptions)===null||G===void 0?void 0:G.videoCaptureDefaults);try{return(yield gB(H,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext})).map((N)=>{if(q5(N))this.microphoneError=void 0,N.setAudioContext(this.audioContext),N.source=e.Source.Microphone,this.emit(Q0.AudioStreamAcquired);if(W8(N))this.cameraError=void 0,N.source=e.Source.Camera;return N})}catch(q){if(q instanceof Error){if($.audio)this.microphoneError=q;if($.video)this.cameraError=q}throw q}})}createScreenTracks($){return E(this,void 0,void 0,function*(){if($===void 0)$={};if(navigator.mediaDevices.getDisplayMedia===void 0)throw new vB("getDisplayMedia not supported");if($.resolution===void 0&&!g80())$.resolution=V7.h1080fps30.resolution;let Y=V80($),G=yield navigator.mediaDevices.getDisplayMedia(Y),H=G.getVideoTracks();if(H.length===0)throw new z5("no video track found");let q=new KH(H[0],void 0,!1,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});if(q.source=e.Source.ScreenShare,$.contentHint)q.mediaStreamTrack.contentHint=$.contentHint;let K=[q];if(G.getAudioTracks().length>0){this.emit(Q0.AudioStreamAcquired);let N=new AH(G.getAudioTracks()[0],void 0,!1,this.audioContext,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});N.source=e.Source.ScreenShareAudio,K.push(N)}return K})}publishTrack($,Y){return E(this,void 0,void 0,function*(){return this.publishOrRepublishTrack($,Y)})}publishOrRepublishTrack($,Y){return E(this,arguments,void 0,function(G,H){var q=this;let K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return function*(){var N,U,F,M;if(d5(G))G.setAudioContext(q.audioContext);if(yield(N=q.reconnectFuture)===null||N===void 0?void 0:N.promise,q.republishPromise&&!K)yield q.republishPromise;if(r3(G)&&q.pendingPublishPromises.has(G))yield q.pendingPublishPromises.get(G);let L;if(G instanceof MediaStreamTrack)L=G.getConstraints();else{L=G.constraints;let y=void 0;switch(G.source){case e.Source.Microphone:y="audioinput";break;case e.Source.Camera:y="videoinput"}if(y&&q.activeDeviceMap.has(y))L=Object.assign(Object.assign({},L),{deviceId:q.activeDeviceMap.get(y)})}if(G instanceof MediaStreamTrack)switch(G.kind){case"audio":G=new AH(G,L,!0,q.audioContext,{loggerName:q.roomOptions.loggerName,loggerContextCb:()=>q.logContext});break;case"video":G=new KH(G,L,!0,{loggerName:q.roomOptions.loggerName,loggerContextCb:()=>q.logContext});break;default:throw new z5("unsupported MediaStreamTrack kind ".concat(G.kind))}else G.updateLoggerOptions({loggerName:q.roomOptions.loggerName,loggerContextCb:()=>q.logContext});let k;if(q.trackPublications.forEach((y)=>{if(!y.track)return;if(y.track===G)k=y}),k)return q.log.warn("track has already been published, skipping",Object.assign(Object.assign({},q.logContext),G1(k))),k;let R=Object.assign(Object.assign({},q.roomOptions.publishDefaults),H),_="channelCount"in G.mediaStreamTrack.getSettings()&&G.mediaStreamTrack.getSettings().channelCount===2||G.mediaStreamTrack.getConstraints().channelCount===2,S=(U=R.forceStereo)!==null&&U!==void 0?U:_;if(S){if(R.dtx===void 0)q.log.info("Opus DTX will be disabled for stereo tracks by default. Enable them explicitly to make it work.",Object.assign(Object.assign({},q.logContext),G1(G)));if(R.red===void 0)q.log.info("Opus RED will be disabled for stereo tracks by default. Enable them explicitly to make it work.");(F=R.dtx)!==null&&F!==void 0||(R.dtx=!1),(M=R.red)!==null&&M!==void 0||(R.red=!1)}if(!y80()&&q.roomOptions.e2ee)q.log.info("End-to-end encryption is set up, simulcast publishing will be disabled on Safari versions and iOS browsers running iOS < v17.2",Object.assign({},q.logContext)),R.simulcast=!1;if(R.source)G.source=R.source;let T=new Promise((y,g)=>E(q,void 0,void 0,function*(){try{if(this.engine.client.currentState!==C1.CONNECTED){this.log.debug("deferring track publication until signal is connected",Object.assign(Object.assign({},this.logContext),{track:G1(G)}));let o=!1,c=setTimeout(()=>{o=!0,G.stop(),g(new OW("publishing rejected as engine not connected within timeout",408))},15000);if(yield this.waitUntilEngineConnected(),clearTimeout(c),o)return;let C=yield this.publish(G,R,S);y(C)}else try{let o=yield this.publish(G,R,S);y(o)}catch(o){g(o)}}catch(o){g(o)}}));q.pendingPublishPromises.set(G,T);try{return yield T}catch(y){throw y}finally{q.pendingPublishPromises.delete(G)}}()})}waitUntilEngineConnected(){if(!this.signalConnectedFuture)this.signalConnectedFuture=new m6;return this.signalConnectedFuture.promise}hasPermissionsToPublish($){if(!this.permissions)return this.log.warn("no permissions present for publishing track",Object.assign(Object.assign({},this.logContext),G1($))),!1;let{canPublish:Y,canPublishSources:G}=this.permissions;if(Y&&(G.length===0||G.map((H)=>T80(H)).includes($.source)))return!0;return this.log.warn("insufficient permissions to publish",Object.assign(Object.assign({},this.logContext),G1($))),!1}publish($,Y,G){return E(this,void 0,void 0,function*(){var H,q,K,N,U,F,M,L,k,R;if(!this.hasPermissionsToPublish($))throw new OW("failed to publish track, insufficient permissions",403);if(Array.from(this.trackPublications.values()).find((f)=>r3($)&&f.source===$.source)&&$.source!==e.Source.Unknown)this.log.info("publishing a second track with the same source: ".concat($.source),Object.assign(Object.assign({},this.logContext),G1($)));if(Y.stopMicTrackOnMute&&q5($))$.stopOnMute=!0;if($.source===e.Source.ScreenShare&&R7())Y.simulcast=!1;if(Y.videoCodec==="av1"&&!j80())Y.videoCodec=void 0;if(Y.videoCodec==="vp9"&&!p80())Y.videoCodec=void 0;if(Y.videoCodec===void 0)Y.videoCodec=DW;if(this.enabledPublishVideoCodecs.length>0){if(!this.enabledPublishVideoCodecs.some((f)=>Y.videoCodec===QH(f.mime)))Y.videoCodec=QH(this.enabledPublishVideoCodecs[0].mime)}let S=Y.videoCodec;$.on(B0.Muted,this.onTrackMuted),$.on(B0.Unmuted,this.onTrackUnmuted),$.on(B0.Ended,this.handleTrackEnded),$.on(B0.UpstreamPaused,this.onTrackUpstreamPaused),$.on(B0.UpstreamResumed,this.onTrackUpstreamResumed),$.on(B0.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate);let T=[],y=!((H=Y.dtx)!==null&&H!==void 0?H:!0),g=$.getSourceTrackSettings();if(g.autoGainControl)T.push(C2.TF_AUTO_GAIN_CONTROL);if(g.echoCancellation)T.push(C2.TF_ECHO_CANCELLATION);if(g.noiseSuppression)T.push(C2.TF_NOISE_SUPPRESSION);if(g.channelCount&&g.channelCount>1)T.push(C2.TF_STEREO);if(y)T.push(C2.TF_NO_DTX);if(d5($)&&$.hasPreConnectBuffer)T.push(C2.TF_PRECONNECT_BUFFER);let o=new zH({cid:$.mediaStreamTrack.id,name:Y.name,type:e.kindToProto($.kind),muted:$.isMuted,source:e.sourceToProto($.source),disableDtx:y,encryption:this.encryptionType,stereo:G,disableRed:this.isE2EEEnabled||!((q=Y.red)!==null&&q!==void 0?q:!0),stream:Y===null||Y===void 0?void 0:Y.stream,backupCodecPolicy:Y===null||Y===void 0?void 0:Y.backupCodecPolicy,audioFeatures:T}),c;if($.kind===e.Kind.Video){let f={width:0,height:0};try{f=yield $.waitForDimensions()}catch(n){let u=(N=(K=this.roomOptions.videoCaptureDefaults)===null||K===void 0?void 0:K.resolution)!==null&&N!==void 0?N:qH.h720.resolution;f={width:u.width,height:u.height},this.log.error("could not determine track dimensions, using defaults",Object.assign(Object.assign(Object.assign({},this.logContext),G1($)),{dims:f}))}if(o.width=f.width,o.height=f.height,Z8($)){if(x4(S)){if($.source===e.Source.ScreenShare){if(Y.scalabilityMode="L1T3","contentHint"in $.mediaStreamTrack)$.mediaStreamTrack.contentHint="motion",this.log.info("forcing contentHint to motion for screenshare with SVC codecs",Object.assign(Object.assign({},this.logContext),G1($)))}Y.scalabilityMode=(U=Y.scalabilityMode)!==null&&U!==void 0?U:"L3T3_KEY"}if(o.simulcastCodecs=[new JW({codec:S,cid:$.mediaStreamTrack.id})],Y.backupCodec===!0)Y.backupCodec={codec:DW};if(Y.backupCodec&&S!==Y.backupCodec.codec&&o.encryption===Q2.NONE){if(!this.roomOptions.dynacast)this.roomOptions.dynacast=!0;o.simulcastCodecs.push(new JW({codec:Y.backupCodec.codec,cid:""}))}}c=vW($.source===e.Source.ScreenShare,o.width,o.height,Y),o.layers=An(o.width,o.height,c,x4(Y.videoCodec))}else if($.kind===e.Kind.Audio)c=[{maxBitrate:(F=Y.audioPreset)===null||F===void 0?void 0:F.maxBitrate,priority:(L=(M=Y.audioPreset)===null||M===void 0?void 0:M.priority)!==null&&L!==void 0?L:"high",networkPriority:(R=(k=Y.audioPreset)===null||k===void 0?void 0:k.priority)!==null&&R!==void 0?R:"high"}];if(!this.engine||this.engine.isClosed)throw new n1("cannot publish track when not connected");let C=()=>E(this,void 0,void 0,function*(){var f,n,u;if(!this.engine.pcManager)throw new n1("pcManager is not ready");if($.sender=yield this.engine.createSender($,Y,c),this.emit(Q0.LocalSenderCreated,$.sender,$),Z8($))(f=Y.degradationPreference)!==null&&f!==void 0||(Y.degradationPreference=y70($)),$.setDegradationPreference(Y.degradationPreference);if(c){if(R7()&&$.kind===e.Kind.Audio){let X0=void 0;for(let Y0 of this.engine.pcManager.publisher.getTransceivers())if(Y0.sender===$.sender){X0=Y0;break}if(X0)this.engine.pcManager.publisher.setTrackCodecBitrate({transceiver:X0,codec:"opus",maxbr:((n=c[0])===null||n===void 0?void 0:n.maxBitrate)?c[0].maxBitrate/1000:0})}else if($.codec&&x4($.codec)&&((u=c[0])===null||u===void 0?void 0:u.maxBitrate))this.engine.pcManager.publisher.setTrackCodecBitrate({cid:o.cid,codec:$.codec,maxbr:c[0].maxBitrate/1000})}yield this.engine.negotiate()}),I,p=new Promise((f,n)=>E(this,void 0,void 0,function*(){var u;try{I=yield this.engine.addTrack(o),f(I)}catch(X0){if($.sender&&((u=this.engine.pcManager)===null||u===void 0?void 0:u.publisher))this.engine.pcManager.publisher.removeTrack($.sender),yield this.engine.negotiate().catch((Y0)=>{this.log.error("failed to negotiate after removing track due to failed add track request",Object.assign(Object.assign(Object.assign({},this.logContext),G1($)),{error:Y0}))});n(X0)}}));if(this.enabledPublishVideoCodecs.length>0)I=(yield Promise.all([p,C()]))[0];else{I=yield p;let f;if(I.codecs.forEach((n)=>{if(f===void 0)f=n.mimeType}),f&&$.kind===e.Kind.Video){let n=QH(f);if(n!==S)this.log.debug("falling back to server selected codec",Object.assign(Object.assign(Object.assign({},this.logContext),G1($)),{codec:n})),Y.videoCodec=n,c=vW($.source===e.Source.ScreenShare,o.width,o.height,Y)}yield C()}let l=new NH($.kind,I,$,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});if(l.on(B0.CpuConstrained,(f)=>this.onTrackCpuConstrained(f,l)),l.options=Y,$.sid=I.sid,this.log.debug("publishing ".concat($.kind," with encodings"),Object.assign(Object.assign({},this.logContext),{encodings:c,trackInfo:I})),Z8($))$.startMonitor(this.engine.client);else if(d5($))$.startMonitor();if(this.addTrackPublication(l),this.emit(Q0.LocalTrackPublished,l),d5($)&&I.audioFeatures.includes(C2.TF_PRECONNECT_BUFFER)){let f=$.getPreConnectBuffer(),n=$.getPreConnectBufferMimeType();if(this.on(Q0.LocalTrackSubscribed,(u)=>{if(u.trackSid===I.sid){if(!$.hasPreConnectBuffer){this.log.warn("subscribe event came to late, buffer already closed",this.logContext);return}this.log.debug("finished recording preconnect buffer",Object.assign(Object.assign({},this.logContext),G1($))),$.stopPreConnectBuffer()}}),f)new Promise((X0,Y0)=>E(this,void 0,void 0,function*(){var M0,y0,G0,N0,F0,J0;try{this.log.debug("waiting for agent",Object.assign(Object.assign({},this.logContext),G1($)));let V0=setTimeout(()=>{Y0(Error("agent not active within 10 seconds"))},1e4),I0=yield this.waitUntilActiveAgentPresent();clearTimeout(V0),this.log.debug("sending preconnect buffer",Object.assign(Object.assign({},this.logContext),G1($)));let C0=yield this.streamBytes({name:"preconnect-buffer",mimeType:n,topic:"lk.agent.pre-connect-audio-buffer",destinationIdentities:[I0.identity],attributes:{trackId:l.trackSid,sampleRate:String((F0=g.sampleRate)!==null&&F0!==void 0?F0:"48000"),channels:String((J0=g.channelCount)!==null&&J0!==void 0?J0:"1")}});try{for(var e0=!0,c1=c5(f),Z0;Z0=yield c1.next(),M0=Z0.done,!M0;e0=!0){N0=Z0.value,e0=!1;let f1=N0;yield C0.write(f1)}}catch(f1){y0={error:f1}}finally{try{if(!e0&&!M0&&(G0=c1.return))yield G0.call(c1)}finally{if(y0)throw y0.error}}yield C0.close(),X0()}catch(V0){Y0(V0)}})).then(()=>{this.log.debug("preconnect buffer sent successfully",Object.assign(Object.assign({},this.logContext),G1($)))}).catch((X0)=>{this.log.error("error sending preconnect buffer",Object.assign(Object.assign(Object.assign({},this.logContext),G1($)),{error:X0}))})}return l})}get isLocal(){return!0}publishAdditionalCodecForTrack($,Y,G){return E(this,void 0,void 0,function*(){var H;if(this.encryptionType!==Q2.NONE)return;let q;if(this.trackPublications.forEach((R)=>{if(!R.track)return;if(R.track===$)q=R}),!q)throw new z5("track is not published");if(!Z8($))throw new z5("track is not a video track");let K=Object.assign(Object.assign({},(H=this.roomOptions)===null||H===void 0?void 0:H.publishDefaults),G),N=f70($,Y,K);if(!N){this.log.info("backup codec has been disabled, ignoring request to add additional codec for track",Object.assign(Object.assign({},this.logContext),G1($)));return}let U=$.addSimulcastTrack(Y,N);if(!U)return;let F=new zH({cid:U.mediaStreamTrack.id,type:e.kindToProto($.kind),muted:$.isMuted,source:e.sourceToProto($.source),sid:$.sid,simulcastCodecs:[{codec:K.videoCodec,cid:U.mediaStreamTrack.id}]});if(F.layers=An(F.width,F.height,N),!this.engine||this.engine.isClosed)throw new n1("cannot publish track when not connected");let M=()=>E(this,void 0,void 0,function*(){yield this.engine.createSimulcastSender($,U,K,N),yield this.engine.negotiate()}),k=(yield Promise.all([this.engine.addTrack(F),M()]))[0];this.log.debug("published ".concat(Y," for track ").concat($.sid),Object.assign(Object.assign({},this.logContext),{encodings:N,trackInfo:k}))})}unpublishTrack($,Y){return E(this,void 0,void 0,function*(){var G,H;if(r3($)){let F=this.pendingPublishPromises.get($);if(F)this.log.info("awaiting publish promise before attempting to unpublish",Object.assign(Object.assign({},this.logContext),G1($))),yield F}let q=this.getPublicationForTrack($),K=q?G1(q):void 0;if(this.log.debug("unpublishing track",Object.assign(Object.assign({},this.logContext),K)),!q||!q.track){this.log.warn("track was not unpublished because no publication was found",Object.assign(Object.assign({},this.logContext),K));return}if($=q.track,$.off(B0.Muted,this.onTrackMuted),$.off(B0.Unmuted,this.onTrackUnmuted),$.off(B0.Ended,this.handleTrackEnded),$.off(B0.UpstreamPaused,this.onTrackUpstreamPaused),$.off(B0.UpstreamResumed,this.onTrackUpstreamResumed),$.off(B0.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate),Y===void 0)Y=(H=(G=this.roomOptions)===null||G===void 0?void 0:G.stopLocalTrackOnUnpublish)!==null&&H!==void 0?H:!0;if(Y)$.stop();else $.stopMonitor();let N=!1,U=$.sender;if($.sender=void 0,this.engine.pcManager&&this.engine.pcManager.currentState<a1.FAILED&&U)try{for(let F of this.engine.pcManager.publisher.getTransceivers())if(F.sender===U)F.direction="inactive",N=!0;if(this.engine.removeTrack(U))N=!0;if(Z8($)){for(let[,F]of $.simulcastCodecs)if(F.sender){if(this.engine.removeTrack(F.sender))N=!0;F.sender=void 0}$.simulcastCodecs.clear()}}catch(F){this.log.warn("failed to unpublish track",Object.assign(Object.assign(Object.assign({},this.logContext),K),{error:F}))}switch(this.trackPublications.delete(q.trackSid),q.kind){case e.Kind.Audio:this.audioTrackPublications.delete(q.trackSid);break;case e.Kind.Video:this.videoTrackPublications.delete(q.trackSid);break}if(this.emit(Q0.LocalTrackUnpublished,q),q.setTrack(void 0),N)yield this.engine.negotiate();return q})}unpublishTracks($){return E(this,void 0,void 0,function*(){return(yield Promise.all($.map((G)=>this.unpublishTrack(G)))).filter((G)=>!!G)})}republishAllTracks($){return E(this,arguments,void 0,function(Y){var G=this;let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){if(G.republishPromise)yield G.republishPromise;G.republishPromise=new g2((q,K)=>E(G,void 0,void 0,function*(){try{let N=[];this.trackPublications.forEach((U)=>{if(U.track){if(Y)U.options=Object.assign(Object.assign({},U.options),Y);N.push(U)}}),yield Promise.all(N.map((U)=>E(this,void 0,void 0,function*(){let F=U.track;if(yield this.unpublishTrack(F,!1),H&&!F.isMuted&&F.source!==e.Source.ScreenShare&&F.source!==e.Source.ScreenShareAudio&&(d5(F)||Z8(F))&&!F.isUserProvided)this.log.debug("restarting existing track",Object.assign(Object.assign({},this.logContext),{track:U.trackSid})),yield F.restartTrack();yield this.publishOrRepublishTrack(F,U.options,!0)}))),q()}catch(N){if(N instanceof Error)K(N);else K(Error(String(N)))}finally{this.republishPromise=void 0}})),yield G.republishPromise}()})}publishData($){return E(this,arguments,void 0,function(Y){var G=this;let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return function*(){let q=H.reliable?$1.RELIABLE:$1.LOSSY,K=H.destinationIdentities,N=H.topic,U=new mW({participantIdentity:G.identity,payload:Y,destinationIdentities:K,topic:N}),F=new Q6({kind:q,value:{case:"user",value:U}});yield G.engine.sendDataPacket(F,q)}()})}publishDtmf($,Y){return E(this,void 0,void 0,function*(){let G=new Q6({kind:$1.RELIABLE,value:{case:"sipDtmf",value:new rn({code:$,digit:Y})}});yield this.engine.sendDataPacket(G,$1.RELIABLE)})}sendChatMessage($,Y){return E(this,void 0,void 0,function*(){let G={id:crypto.randomUUID(),message:$,timestamp:Date.now(),attachedFiles:Y===null||Y===void 0?void 0:Y.attachments},H=new Q6({value:{case:"chatMessage",value:new MB(Object.assign(Object.assign({},G),{timestamp:u1.parse(G.timestamp)}))}});return yield this.engine.sendDataPacket(H,$1.RELIABLE),this.emit(Q0.ChatMessage,G),G})}editChatMessage($,Y){return E(this,void 0,void 0,function*(){let G=Object.assign(Object.assign({},Y),{message:$,editTimestamp:Date.now()}),H=new Q6({value:{case:"chatMessage",value:new MB(Object.assign(Object.assign({},G),{timestamp:u1.parse(G.timestamp),editTimestamp:u1.parse(G.editTimestamp)}))}});return yield this.engine.sendDataPacket(H,$1.RELIABLE),this.emit(Q0.ChatMessage,G),G})}sendText($,Y){return E(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.sendText($,Y)})}streamText($){return E(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.streamText($)})}sendFile($,Y){return E(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.sendFile($,Y)})}streamBytes($){return E(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.streamBytes($)})}performRpc($){let{destinationIdentity:Y,method:G,payload:H,responseTimeout:q=15000}=$,K=7000,N=8000;return new g2((U,F)=>E(this,void 0,void 0,function*(){var M,L,k,R;if($U(H)>Ft){F(e1.builtIn("REQUEST_PAYLOAD_TOO_LARGE"));return}if(((L=(M=this.engine.latestJoinResponse)===null||M===void 0?void 0:M.serverInfo)===null||L===void 0?void 0:L.version)&&Y4((R=(k=this.engine.latestJoinResponse)===null||k===void 0?void 0:k.serverInfo)===null||R===void 0?void 0:R.version,"1.8.0")<0){F(e1.builtIn("UNSUPPORTED_SERVER"));return}let _=Math.max(q,8000),S=crypto.randomUUID();yield this.publishRpcRequest(Y,S,G,H,_);let T=setTimeout(()=>{this.pendingAcks.delete(S),F(e1.builtIn("CONNECTION_TIMEOUT")),this.pendingResponses.delete(S),clearTimeout(y)},7000);this.pendingAcks.set(S,{resolve:()=>{clearTimeout(T)},participantIdentity:Y});let y=setTimeout(()=>{this.pendingResponses.delete(S),F(e1.builtIn("RESPONSE_TIMEOUT"))},q);this.pendingResponses.set(S,{resolve:(g,o)=>{if(clearTimeout(y),this.pendingAcks.has(S))this.log.warn("RPC response received before ack",S),this.pendingAcks.delete(S),clearTimeout(T);if(o)F(o);else U(g!==null&&g!==void 0?g:"")},participantIdentity:Y})}))}registerRpcMethod($,Y){if(this.rpcHandlers.has($))this.log.warn("you're overriding the RPC handler for method ".concat($,", in the future this will throw an error"));this.rpcHandlers.set($,Y)}unregisterRpcMethod($){this.rpcHandlers.delete($)}setTrackSubscriptionPermissions($){let Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(this.participantTrackPermissions=Y,this.allParticipantsAllowedToSubscribe=$,!this.engine.client.isDisconnected)this.updateTrackSubscriptionPermissions()}handleIncomingRpcAck($){let Y=this.pendingAcks.get($);if(Y)Y.resolve(),this.pendingAcks.delete($);else console.error("Ack received for unexpected RPC request",$)}handleIncomingRpcResponse($,Y,G){let H=this.pendingResponses.get($);if(H)H.resolve(Y,G),this.pendingResponses.delete($);else console.error("Response received for unexpected RPC request",$)}publishRpcRequest($,Y,G,H,q){return E(this,void 0,void 0,function*(){let K=new Q6({destinationIdentities:[$],kind:$1.RELIABLE,value:{case:"rpcRequest",value:new yW({id:Y,method:G,payload:H,responseTimeoutMs:q,version:1})}});yield this.engine.sendDataPacket(K,$1.RELIABLE)})}handleParticipantDisconnected($){for(let[Y,{participantIdentity:G}]of this.pendingAcks)if(G===$)this.pendingAcks.delete(Y);for(let[Y,{participantIdentity:G,resolve:H}]of this.pendingResponses)if(G===$)H(null,e1.builtIn("RECIPIENT_DISCONNECTED")),this.pendingResponses.delete(Y)}setEnabledPublishCodecs($){this.enabledPublishVideoCodecs=$.filter((Y)=>Y.mime.split("/")[0].toLowerCase()==="video")}updateInfo($){if(!super.updateInfo($))return!1;return $.tracks.forEach((Y)=>{var G,H;let q=this.trackPublications.get(Y.sid);if(q){let K=q.isMuted||((H=(G=q.track)===null||G===void 0?void 0:G.isUpstreamPaused)!==null&&H!==void 0?H:!1);if(K!==Y.muted)this.log.debug("updating server mute state after reconcile",Object.assign(Object.assign(Object.assign({},this.logContext),G1(q)),{mutedOnServer:K})),this.engine.client.sendMuteTrack(Y.sid,K)}}),!0}setActiveAgent($){var Y,G,H,q;if(this.firstActiveAgent=$,$&&!this.firstActiveAgent)this.firstActiveAgent=$;if($)(G=(Y=this.activeAgentFuture)===null||Y===void 0?void 0:Y.resolve)===null||G===void 0||G.call(Y,$);else(q=(H=this.activeAgentFuture)===null||H===void 0?void 0:H.reject)===null||q===void 0||q.call(H,Error("Agent disconnected"));this.activeAgentFuture=void 0}waitUntilActiveAgentPresent(){if(this.firstActiveAgent)return Promise.resolve(this.firstActiveAgent);if(!this.activeAgentFuture)this.activeAgentFuture=new m6;return this.activeAgentFuture.promise}getPublicationForTrack($){let Y;return this.trackPublications.forEach((G)=>{let H=G.track;if(!H)return;if($ instanceof MediaStreamTrack){if(d5(H)||Z8(H)){if(H.mediaStreamTrack===$)Y=G}}else if($===H)Y=G}),Y}waitForPendingPublicationOfSource($){return E(this,void 0,void 0,function*(){let G=Date.now();while(Date.now()<G+1e4){let H=Array.from(this.pendingPublishPromises.entries()).find((q)=>{let[K]=q;return K.source===$});if(H)return H[1];yield m2(20)}})}}class mB extends H5{constructor($,Y,G,H){super($,Y.sid,Y.name,H);this.track=void 0,this.allowed=!0,this.requestedDisabled=void 0,this.visible=!0,this.handleEnded=(q)=>{this.setTrack(void 0),this.emit(B0.Ended,q)},this.handleVisibilityChange=(q)=>{this.log.debug("adaptivestream video visibility ".concat(this.trackSid,", visible=").concat(q),this.logContext),this.visible=q,this.emitTrackUpdate()},this.handleVideoDimensionsChange=(q)=>{this.log.debug("adaptivestream video dimensions ".concat(q.width,"x").concat(q.height),this.logContext),this.videoDimensionsAdaptiveStream=q,this.emitTrackUpdate()},this.subscribed=G,this.updateInfo(Y)}setSubscribed($){let Y=this.subscriptionStatus,G=this.permissionStatus;if(this.subscribed=$,$)this.allowed=!0;let H=new TB({trackSids:[this.trackSid],subscribe:this.subscribed,participantTracks:[new an({participantSid:"",trackSids:[this.trackSid]})]});this.emit(B0.UpdateSubscription,H),this.emitSubscriptionUpdateIfChanged(Y),this.emitPermissionUpdateIfChanged(G)}get subscriptionStatus(){if(this.subscribed===!1)return H5.SubscriptionStatus.Unsubscribed;if(!super.isSubscribed)return H5.SubscriptionStatus.Desired;return H5.SubscriptionStatus.Subscribed}get permissionStatus(){return this.allowed?H5.PermissionStatus.Allowed:H5.PermissionStatus.NotAllowed}get isSubscribed(){if(this.subscribed===!1)return!1;return super.isSubscribed}get isDesired(){return this.subscribed!==!1}get isEnabled(){return this.requestedDisabled!==void 0?!this.requestedDisabled:this.isAdaptiveStream?this.visible:!0}get isLocal(){return!1}setEnabled($){if(!this.isManualOperationAllowed()||this.requestedDisabled===!$)return;this.requestedDisabled=!$,this.emitTrackUpdate()}setVideoQuality($){if(!this.isManualOperationAllowed()||this.requestedMaxQuality===$)return;this.requestedMaxQuality=$,this.requestedVideoDimensions=void 0,this.emitTrackUpdate()}setVideoDimensions($){var Y,G;if(!this.isManualOperationAllowed())return;if(((Y=this.requestedVideoDimensions)===null||Y===void 0?void 0:Y.width)===$.width&&((G=this.requestedVideoDimensions)===null||G===void 0?void 0:G.height)===$.height)return;if(tN(this.track))this.requestedVideoDimensions=$;this.requestedMaxQuality=void 0,this.emitTrackUpdate()}setVideoFPS($){if(!this.isManualOperationAllowed())return;if(!tN(this.track))return;if(this.fps===$)return;this.fps=$,this.emitTrackUpdate()}get videoQuality(){var $;return($=this.requestedMaxQuality)!==null&&$!==void 0?$:g6.HIGH}setTrack($){let Y=this.subscriptionStatus,G=this.permissionStatus,H=this.track;if(H===$)return;if(H)H.off(B0.VideoDimensionsChanged,this.handleVideoDimensionsChange),H.off(B0.VisibilityChanged,this.handleVisibilityChange),H.off(B0.Ended,this.handleEnded),H.detach(),H.stopMonitor(),this.emit(B0.Unsubscribed,H);if(super.setTrack($),$)$.sid=this.trackSid,$.on(B0.VideoDimensionsChanged,this.handleVideoDimensionsChange),$.on(B0.VisibilityChanged,this.handleVisibilityChange),$.on(B0.Ended,this.handleEnded),this.emit(B0.Subscribed,$);this.emitPermissionUpdateIfChanged(G),this.emitSubscriptionUpdateIfChanged(Y)}setAllowed($){let Y=this.subscriptionStatus,G=this.permissionStatus;this.allowed=$,this.emitPermissionUpdateIfChanged(G),this.emitSubscriptionUpdateIfChanged(Y)}setSubscriptionError($){this.emit(B0.SubscriptionFailed,$)}updateInfo($){super.updateInfo($);let Y=this.metadataMuted;if(this.metadataMuted=$.muted,this.track)this.track.setMuted($.muted);else if(Y!==$.muted)this.emit($.muted?B0.Muted:B0.Unmuted)}emitSubscriptionUpdateIfChanged($){let Y=this.subscriptionStatus;if($===Y)return;this.emit(B0.SubscriptionStatusChanged,Y,$)}emitPermissionUpdateIfChanged($){if(this.permissionStatus!==$)this.emit(B0.SubscriptionPermissionChanged,this.permissionStatus,$)}isManualOperationAllowed(){if(!this.isDesired)return this.log.warn("cannot update track settings when not subscribed",this.logContext),!1;return!0}get isAdaptiveStream(){return tN(this.track)&&this.track.isAdaptiveStream}emitTrackUpdate(){let $=new Ba({trackSids:[this.trackSid],disabled:!this.isEnabled,fps:this.fps});if(this.kind===e.Kind.Video){let Y=this.requestedVideoDimensions;if(this.videoDimensionsAdaptiveStream!==void 0)if(Y){if(ur(this.videoDimensionsAdaptiveStream,Y))this.log.debug("using adaptive stream dimensions instead of requested",Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),Y=this.videoDimensionsAdaptiveStream}else if(this.requestedMaxQuality!==void 0&&this.trackInfo){let G=E80(this.trackInfo,this.requestedMaxQuality);if(G&&ur(this.videoDimensionsAdaptiveStream,G))this.log.debug("using adaptive stream dimensions instead of max quality layer",Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),Y=this.videoDimensionsAdaptiveStream}else this.log.debug("using adaptive stream dimensions",Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),Y=this.videoDimensionsAdaptiveStream;if(Y)$.width=Math.ceil(Y.width),$.height=Math.ceil(Y.height);else if(this.requestedMaxQuality!==void 0)this.log.debug("using requested max quality",Object.assign(Object.assign({},this.logContext),{quality:this.requestedMaxQuality})),$.quality=this.requestedMaxQuality;else this.log.debug("using default quality",Object.assign(Object.assign({},this.logContext),{quality:g6.HIGH})),$.quality=g6.HIGH}this.emit(B0.UpdateSettings,$)}}class RB extends BU{static fromParticipantInfo($,Y,G){return new RB($,Y.sid,Y.identity,Y.name,Y.metadata,Y.attributes,G,Y.kind)}get logContext(){return Object.assign(Object.assign({},super.logContext),{rpID:this.sid,remoteParticipant:this.identity})}constructor($,Y,G,H,q,K,N){let U=arguments.length>7&&arguments[7]!==void 0?arguments[7]:K8.STANDARD;super(Y,G||"",H,q,K,N,U);this.signalClient=$,this.trackPublications=new Map,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.volumeMap=new Map}addTrackPublication($){super.addTrackPublication($),$.on(B0.UpdateSettings,(Y)=>{this.log.debug("send update settings",Object.assign(Object.assign(Object.assign({},this.logContext),G1($)),{settings:Y})),this.signalClient.sendUpdateTrackSettings(Y)}),$.on(B0.UpdateSubscription,(Y)=>{Y.participantTracks.forEach((G)=>{G.participantSid=this.sid}),this.signalClient.sendUpdateSubscription(Y)}),$.on(B0.SubscriptionPermissionChanged,(Y)=>{this.emit(Q0.TrackSubscriptionPermissionChanged,$,Y)}),$.on(B0.SubscriptionStatusChanged,(Y)=>{this.emit(Q0.TrackSubscriptionStatusChanged,$,Y)}),$.on(B0.Subscribed,(Y)=>{this.emit(Q0.TrackSubscribed,Y,$)}),$.on(B0.Unsubscribed,(Y)=>{this.emit(Q0.TrackUnsubscribed,Y,$)}),$.on(B0.SubscriptionFailed,(Y)=>{this.emit(Q0.TrackSubscriptionFailed,$.trackSid,Y)})}getTrackPublication($){let Y=super.getTrackPublication($);if(Y)return Y}getTrackPublicationByName($){let Y=super.getTrackPublicationByName($);if(Y)return Y}setVolume($){let Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.Source.Microphone;this.volumeMap.set(Y,$);let G=this.getTrackPublication(Y);if(G&&G.track)G.track.setVolume($)}getVolume(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.Source.Microphone,Y=this.getTrackPublication($);if(Y&&Y.track)return Y.track.getVolume();return this.volumeMap.get($)}addSubscribedMediaTrack($,Y,G,H,q,K){let N=this.getTrackPublicationBySid(Y);if(!N){if(!Y.startsWith("TR"))this.trackPublications.forEach((M)=>{if(!N&&$.kind===M.kind.toString())N=M})}if(!N){if(K===0){this.log.error("could not find published track",Object.assign(Object.assign({},this.logContext),{trackSid:Y})),this.emit(Q0.TrackSubscriptionFailed,Y);return}if(K===void 0)K=20;setTimeout(()=>{this.addSubscribedMediaTrack($,Y,G,H,q,K-1)},150);return}if($.readyState==="ended"){this.log.error("unable to subscribe because MediaStreamTrack is ended. Do not call MediaStreamTrack.stop()",Object.assign(Object.assign({},this.logContext),G1(N))),this.emit(Q0.TrackSubscriptionFailed,Y);return}let U=$.kind==="video",F;if(U)F=new It($,Y,H,q);else F=new fB($,Y,H,this.audioContext,this.audioOutput);if(F.source=N.source,F.isMuted=N.isMuted,F.setMediaStream(G),F.start(),N.setTrack(F),this.volumeMap.has(N.source)&&IW(F)&&q5(F))F.setVolume(this.volumeMap.get(N.source));return N}get hasMetadata(){return!!this.participantInfo}getTrackPublicationBySid($){return this.trackPublications.get($)}updateInfo($){if(!super.updateInfo($))return!1;let Y=new Map,G=new Map;return $.tracks.forEach((H)=>{var q,K;let N=this.getTrackPublicationBySid(H.sid);if(!N){let U=e.kindFromProto(H.type);if(!U)return;N=new mB(U,H,(q=this.signalClient.connectOptions)===null||q===void 0?void 0:q.autoSubscribe,{loggerContextCb:()=>this.logContext,loggerName:(K=this.loggerOptions)===null||K===void 0?void 0:K.loggerName}),N.updateInfo(H),G.set(H.sid,N);let F=Array.from(this.trackPublications.values()).find((M)=>M.source===(N===null||N===void 0?void 0:N.source));if(F&&N.source!==e.Source.Unknown)this.log.debug("received a second track publication for ".concat(this.identity," with the same source: ").concat(N.source),Object.assign(Object.assign({},this.logContext),{oldTrack:G1(F),newTrack:G1(N)}));this.addTrackPublication(N)}else N.updateInfo(H);Y.set(H.sid,N)}),this.trackPublications.forEach((H)=>{if(!Y.has(H.trackSid))this.log.trace("detected removed track on remote participant, unpublishing",Object.assign(Object.assign({},this.logContext),G1(H))),this.unpublishTrack(H.trackSid,!0)}),G.forEach((H)=>{this.emit(Q0.TrackPublished,H)}),!0}unpublishTrack($,Y){let G=this.trackPublications.get($);if(!G)return;let{track:H}=G;if(H)H.stop(),G.setTrack(void 0);switch(this.trackPublications.delete($),G.kind){case e.Kind.Audio:this.audioTrackPublications.delete($);break;case e.Kind.Video:this.videoTrackPublications.delete($);break}if(Y)this.emit(Q0.TrackUnpublished,G)}setAudioOutput($){return E(this,void 0,void 0,function*(){this.audioOutput=$;let Y=[];this.audioTrackPublications.forEach((G)=>{var H;if(q5(G.track)&&IW(G.track))Y.push(G.track.setSinkId((H=$.deviceId)!==null&&H!==void 0?H:"default"))}),yield Promise.all(Y)})}emit($){for(var Y=arguments.length,G=Array(Y>1?Y-1:0),H=1;H<Y;H++)G[H-1]=arguments[H];return this.log.trace("participant event",Object.assign(Object.assign({},this.logContext),{event:$,args:G})),super.emit($,...G)}}var n0;(function($){$.Disconnected="disconnected",$.Connecting="connecting",$.Connected="connected",$.Reconnecting="reconnecting",$.SignalReconnecting="signalReconnecting"})(n0||(n0={}));var n70=4000;class r5 extends J5.EventEmitter{get hasE2EESetup(){return this.e2eeManager!==void 0}constructor($){var Y,G,H,q,K;super();if(Y=this,this.state=n0.Disconnected,this.activeSpeakers=[],this.isE2EEEnabled=!1,this.audioEnabled=!0,this.isVideoPlaybackBlocked=!1,this.log=c0,this.bufferedEvents=[],this.isResuming=!1,this.rpcHandlers=new Map,this.connect=(N,U,F)=>E(this,void 0,void 0,function*(){var M;if(!f80())if(B5())throw Error("WebRTC isn't detected, have you called registerGlobals?");else throw Error("LiveKit doesn't seem to be supported on this browser. Try to update your browser and make sure no browser extensions are disabling webRTC.");let L=yield this.disconnectLock.lock();if(this.state===n0.Connected)return this.log.info("already connected to room ".concat(this.name),this.logContext),L(),Promise.resolve();if(this.connectFuture)return L(),this.connectFuture.promise;if(this.setAndEmitConnectionState(n0.Connecting),((M=this.regionUrlProvider)===null||M===void 0?void 0:M.getServerUrl().toString())!==zt(N))this.regionUrl=void 0,this.regionUrlProvider=void 0;if(XX(new URL(N))){if(this.regionUrlProvider===void 0)this.regionUrlProvider=new A1(N,U);else this.regionUrlProvider.updateToken(U);this.regionUrlProvider.fetchRegionSettings().then((_)=>{var S;(S=this.regionUrlProvider)===null||S===void 0||S.setServerReportedRegions(_)}).catch((_)=>{this.log.warn("could not fetch region settings",Object.assign(Object.assign({},this.logContext),{error:_}))})}let k=(_,S,T)=>E(this,void 0,void 0,function*(){var y,g;if(this.abortController)this.abortController.abort();let o=new AbortController;this.abortController=o,L===null||L===void 0||L();try{if(yield n3.getInstance().getBackOffPromise(N),o.signal.aborted)throw S0.cancelled("Connection attempt aborted");yield this.attemptConnection(T!==null&&T!==void 0?T:N,U,F,o),this.abortController=void 0,_()}catch(c){if(this.regionUrlProvider&&c instanceof S0&&c.reason!==T1.Cancelled&&c.reason!==T1.NotAllowed){let C=null;try{this.log.debug("Fetching next region"),C=yield this.regionUrlProvider.getNextBestRegionUrl((y=this.abortController)===null||y===void 0?void 0:y.signal)}catch(I){if(I instanceof S0&&(I.status===401||I.reason===T1.Cancelled)){this.handleDisconnect(this.options.stopLocalTrackOnUnpublish),S(I);return}}if([T1.InternalError,T1.ServerUnreachable,T1.Timeout].includes(c.reason))this.log.debug("Adding failed connection attempt to back off"),n3.getInstance().addFailedConnectionAttempt(N);if(C&&!((g=this.abortController)===null||g===void 0?void 0:g.signal.aborted))this.log.info("Initial connection failed with ConnectionError: ".concat(c.message,". Retrying with another region: ").concat(C),this.logContext),this.recreateEngine(),yield k(_,S,C);else this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,rr(c)),S(c)}else{let C=V4.UNKNOWN_REASON;if(c instanceof S0)C=rr(c);this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,C),S(c)}}}),R=this.regionUrl;return this.regionUrl=void 0,this.connectFuture=new m6((_,S)=>{k(_,S,R)},()=>{this.clearConnectionFutures()}),this.connectFuture.promise}),this.connectSignal=(N,U,F,M,L,k)=>E(this,void 0,void 0,function*(){var R,_,S;let T=yield F.join(N,U,{autoSubscribe:M.autoSubscribe,adaptiveStream:typeof L.adaptiveStream==="object"?!0:L.adaptiveStream,maxRetries:M.maxRetries,e2eeEnabled:!!this.e2eeManager,websocketTimeout:M.websocketTimeout},k.signal,!L.singlePeerConnection),y=T.serverInfo;if(!y)y={version:T.serverVersion,region:T.serverRegion};if(this.serverInfo=y,this.log.debug("connected to Livekit Server ".concat(Object.entries(y).map((g)=>{let[o,c]=g;return"".concat(o,": ").concat(c)}).join(", ")),{room:(R=T.room)===null||R===void 0?void 0:R.name,roomSid:(_=T.room)===null||_===void 0?void 0:_.sid,identity:(S=T.participant)===null||S===void 0?void 0:S.identity}),!y.version)throw new ea("unknown server version");if(y.version==="0.15.1"&&this.options.dynacast)this.log.debug("disabling dynacast due to server version",this.logContext),L.dynacast=!1;return T}),this.applyJoinResponse=(N)=>{let U=N.participant;if(this.localParticipant.sid=U.sid,this.localParticipant.identity=U.identity,this.localParticipant.setEnabledPublishCodecs(N.enabledPublishCodecs),this.e2eeManager)try{this.e2eeManager.setSifTrailer(N.sifTrailer)}catch(F){this.log.error(F instanceof Error?F.message:"Could not set SifTrailer",Object.assign(Object.assign({},this.logContext),{error:F}))}if(this.handleParticipantUpdates([U,...N.otherParticipants]),N.room)this.handleRoomUpdate(N.room)},this.attemptConnection=(N,U,F,M)=>E(this,void 0,void 0,function*(){var L,k;if(this.state===n0.Reconnecting||this.isResuming||((L=this.engine)===null||L===void 0?void 0:L.pendingReconnect))this.log.info("Reconnection attempt replaced by new connection attempt",this.logContext),this.recreateEngine();else this.maybeCreateEngine();if((k=this.regionUrlProvider)===null||k===void 0?void 0:k.isCloud())this.engine.setRegionUrlProvider(this.regionUrlProvider);if(this.acquireAudioContext(),this.connOptions=Object.assign(Object.assign({},XU),F),this.connOptions.rtcConfig)this.engine.rtcConfig=this.connOptions.rtcConfig;if(this.connOptions.peerConnectionTimeout)this.engine.peerConnectionTimeout=this.connOptions.peerConnectionTimeout;try{let R=yield this.connectSignal(N,U,this.engine,this.connOptions,this.options,M);this.applyJoinResponse(R),this.setupLocalParticipantEvents(),this.emit(t.SignalConnected)}catch(R){yield this.engine.close(),this.recreateEngine();let _=M.signal.aborted?S0.cancelled("Signal connection aborted"):S0.serverUnreachable("could not establish signal connection");if(R instanceof Error)_.message="".concat(_.message,": ").concat(R.message);if(R instanceof S0)_.reason=R.reason,_.status=R.status;throw this.log.debug("error trying to establish signal connection",Object.assign(Object.assign({},this.logContext),{error:R})),_}if(M.signal.aborted)throw yield this.engine.close(),this.recreateEngine(),S0.cancelled("Connection attempt aborted");try{yield this.engine.waitForPCInitialConnection(this.connOptions.peerConnectionTimeout,M)}catch(R){throw yield this.engine.close(),this.recreateEngine(),R}if(M6()&&this.options.disconnectOnPageLeave)window.addEventListener("pagehide",this.onPageLeave),window.addEventListener("beforeunload",this.onPageLeave);if(M6())window.addEventListener("freeze",this.onPageLeave);if(this.setAndEmitConnectionState(n0.Connected),this.emit(t.Connected),n3.getInstance().resetFailedConnectionAttempts(N),this.registerConnectionReconcile(),this.regionUrlProvider)this.regionUrlProvider.notifyConnected()}),this.disconnect=function(){for(var N=arguments.length,U=Array(N),F=0;F<N;F++)U[F]=arguments[F];return E(Y,[...U],void 0,function(){var M=this;let L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var k,R,_;let S=yield M.disconnectLock.lock();try{if(M.state===n0.Disconnected){M.log.debug("already disconnected",M.logContext);return}if(M.log.info("disconnect from room",Object.assign({},M.logContext)),M.state===n0.Connecting||M.state===n0.Reconnecting||M.isResuming)M.log.warn("Abort connection attempt due to user initiated disconnect",M.logContext),(k=M.abortController)===null||k===void 0||k.abort("Abort connection attempt due to user initiated disconnect"),(_=(R=M.connectFuture)===null||R===void 0?void 0:R.reject)===null||_===void 0||_.call(R,S0.cancelled("Client initiated disconnect")),M.connectFuture=void 0;if(M.engine){if(!M.engine.client.isDisconnected)yield M.engine.client.sendLeave();yield M.engine.close()}M.handleDisconnect(L,V4.CLIENT_INITIATED),M.engine=void 0}finally{S()}}()})},this.onPageLeave=()=>E(this,void 0,void 0,function*(){this.log.info("Page leave detected, disconnecting",this.logContext),yield this.disconnect()}),this.startAudio=()=>E(this,void 0,void 0,function*(){let N=[],U=G6();if(U&&U.os==="iOS"){let M=document.getElementById("livekit-dummy-audio-el");if(!M){M=document.createElement("audio"),M.id="livekit-dummy-audio-el",M.autoplay=!0,M.hidden=!0;let L=aN();L.enabled=!0;let k=new MediaStream([L]);M.srcObject=k,document.addEventListener("visibilitychange",()=>{if(!M)return;if(M.srcObject=document.hidden?null:k,!document.hidden)this.log.debug("page visible again, triggering startAudio to resume playback and update playback status",this.logContext),this.startAudio()}),document.body.append(M),this.once(t.Disconnected,()=>{M===null||M===void 0||M.remove(),M=null})}N.push(M)}this.remoteParticipants.forEach((F)=>{F.audioTrackPublications.forEach((M)=>{if(M.track)M.track.attachedElements.forEach((L)=>{N.push(L)})})});try{yield Promise.all([this.acquireAudioContext(),...N.map((F)=>{return F.muted=!1,F.play()})]),this.handleAudioPlaybackStarted()}catch(F){throw this.handleAudioPlaybackFailed(F),F}}),this.startVideo=()=>E(this,void 0,void 0,function*(){let N=[];for(let U of this.remoteParticipants.values())U.videoTrackPublications.forEach((F)=>{var M;(M=F.track)===null||M===void 0||M.attachedElements.forEach((L)=>{if(!N.includes(L))N.push(L)})});yield Promise.all(N.map((U)=>U.play())).then(()=>{this.handleVideoPlaybackStarted()}).catch((U)=>{if(U.name==="NotAllowedError")this.handleVideoPlaybackFailed();else this.log.warn("Resuming video playback failed, make sure you call `startVideo` directly in a user gesture handler",this.logContext)})}),this.handleRestarting=()=>{this.clearConnectionReconcile(),this.isResuming=!1;for(let N of this.remoteParticipants.values())this.handleParticipantDisconnected(N.identity,N);if(this.setAndEmitConnectionState(n0.Reconnecting))this.emit(t.Reconnecting)},this.handleSignalRestarted=(N)=>E(this,void 0,void 0,function*(){this.log.debug("signal reconnected to server, region ".concat(N.serverRegion),Object.assign(Object.assign({},this.logContext),{region:N.serverRegion})),this.bufferedEvents=[],this.applyJoinResponse(N);try{yield this.localParticipant.republishAllTracks(void 0,!0)}catch(U){this.log.error("error trying to re-publish tracks after reconnection",Object.assign(Object.assign({},this.logContext),{error:U}))}try{yield this.engine.waitForRestarted(),this.log.debug("fully reconnected to server",Object.assign(Object.assign({},this.logContext),{region:N.serverRegion}))}catch(U){return}this.setAndEmitConnectionState(n0.Connected),this.emit(t.Reconnected),this.registerConnectionReconcile(),this.emitBufferedEvents()}),this.handleParticipantUpdates=(N)=>{N.forEach((U)=>{var F;if(U.identity===this.localParticipant.identity){this.localParticipant.updateInfo(U);return}if(U.identity==="")U.identity=(F=this.sidToIdentity.get(U.sid))!==null&&F!==void 0?F:"";let M=this.remoteParticipants.get(U.identity);if(U.state===l3.DISCONNECTED)this.handleParticipantDisconnected(U.identity,M);else M=this.getOrCreateParticipant(U.identity,U)})},this.handleActiveSpeakersUpdate=(N)=>{let U=[],F={};if(N.forEach((M)=>{if(F[M.sid]=!0,M.sid===this.localParticipant.sid)this.localParticipant.audioLevel=M.level,this.localParticipant.setIsSpeaking(!0),U.push(this.localParticipant);else{let L=this.getRemoteParticipantBySid(M.sid);if(L)L.audioLevel=M.level,L.setIsSpeaking(!0),U.push(L)}}),!F[this.localParticipant.sid])this.localParticipant.audioLevel=0,this.localParticipant.setIsSpeaking(!1);this.remoteParticipants.forEach((M)=>{if(!F[M.sid])M.audioLevel=0,M.setIsSpeaking(!1)}),this.activeSpeakers=U,this.emitWhenConnected(t.ActiveSpeakersChanged,U)},this.handleSpeakersChanged=(N)=>{let U=new Map;this.activeSpeakers.forEach((M)=>{let L=this.remoteParticipants.get(M.identity);if(L&&L.sid!==M.sid)return;U.set(M.sid,M)}),N.forEach((M)=>{let L=this.getRemoteParticipantBySid(M.sid);if(M.sid===this.localParticipant.sid)L=this.localParticipant;if(!L)return;if(L.audioLevel=M.level,L.setIsSpeaking(M.active),M.active)U.set(M.sid,L);else U.delete(M.sid)});let F=Array.from(U.values());F.sort((M,L)=>L.audioLevel-M.audioLevel),this.activeSpeakers=F,this.emitWhenConnected(t.ActiveSpeakersChanged,F)},this.handleStreamStateUpdate=(N)=>{N.streamStates.forEach((U)=>{let F=this.getRemoteParticipantBySid(U.participantSid);if(!F)return;let M=F.getTrackPublicationBySid(U.trackSid);if(!M||!M.track)return;let L=e.streamStateFromProto(U.state);if(M.track.setStreamState(L),L!==M.track.streamState)F.emit(Q0.TrackStreamStateChanged,M,M.track.streamState),this.emitWhenConnected(t.TrackStreamStateChanged,M,M.track.streamState,F)})},this.handleSubscriptionPermissionUpdate=(N)=>{let U=this.getRemoteParticipantBySid(N.participantSid);if(!U)return;let F=U.getTrackPublicationBySid(N.trackSid);if(!F)return;F.setAllowed(N.allowed)},this.handleSubscriptionError=(N)=>{let U=Array.from(this.remoteParticipants.values()).find((M)=>M.trackPublications.has(N.trackSid));if(!U)return;let F=U.getTrackPublicationBySid(N.trackSid);if(!F)return;F.setSubscriptionError(N.err)},this.handleDataPacket=(N,U)=>{let F=this.remoteParticipants.get(N.participantIdentity);if(N.value.case==="user")this.handleUserPacket(F,N.value.value,N.kind,U);else if(N.value.case==="transcription")this.handleTranscription(F,N.value.value);else if(N.value.case==="sipDtmf")this.handleSipDtmf(F,N.value.value);else if(N.value.case==="chatMessage")this.handleChatMessage(F,N.value.value);else if(N.value.case==="metrics")this.handleMetrics(N.value.value,F);else if(N.value.case==="streamHeader"||N.value.case==="streamChunk"||N.value.case==="streamTrailer")this.handleDataStream(N,U);else if(N.value.case==="rpcRequest"){let M=N.value.value;this.handleIncomingRpcRequest(N.participantIdentity,M.id,M.method,M.payload,M.responseTimeoutMs,M.version)}},this.handleUserPacket=(N,U,F,M)=>{this.emit(t.DataReceived,U.payload,N,F,U.topic,M),N===null||N===void 0||N.emit(Q0.DataReceived,U.payload,F,M)},this.handleSipDtmf=(N,U)=>{this.emit(t.SipDTMFReceived,U,N),N===null||N===void 0||N.emit(Q0.SipDTMFReceived,U)},this.handleTranscription=(N,U)=>{let F=U.transcribedParticipantIdentity===this.localParticipant.identity?this.localParticipant:this.getParticipantByIdentity(U.transcribedParticipantIdentity),M=F===null||F===void 0?void 0:F.trackPublications.get(U.trackId),L=l80(U,this.transcriptionReceivedTimes);M===null||M===void 0||M.emit(B0.TranscriptionReceived,L),F===null||F===void 0||F.emit(Q0.TranscriptionReceived,L,M),this.emit(t.TranscriptionReceived,L,F,M)},this.handleChatMessage=(N,U)=>{let F=c80(U);this.emit(t.ChatMessage,F,N)},this.handleMetrics=(N,U)=>{this.emit(t.MetricsReceived,N,U)},this.handleDataStream=(N,U)=>{this.incomingDataStreamManager.handleDataStreamPacket(N,U)},this.bufferedSegments=new Map,this.handleAudioPlaybackStarted=()=>{if(this.canPlaybackAudio)return;this.audioEnabled=!0,this.emit(t.AudioPlaybackStatusChanged,!0)},this.handleAudioPlaybackFailed=(N)=>{if(this.log.warn("could not playback audio",Object.assign(Object.assign({},this.logContext),{error:N})),!this.canPlaybackAudio)return;this.audioEnabled=!1,this.emit(t.AudioPlaybackStatusChanged,!1)},this.handleVideoPlaybackStarted=()=>{if(this.isVideoPlaybackBlocked)this.isVideoPlaybackBlocked=!1,this.emit(t.VideoPlaybackStatusChanged,!0)},this.handleVideoPlaybackFailed=()=>{if(!this.isVideoPlaybackBlocked)this.isVideoPlaybackBlocked=!0,this.emit(t.VideoPlaybackStatusChanged,!1)},this.handleDeviceChange=()=>E(this,void 0,void 0,function*(){var N;if(((N=G6())===null||N===void 0?void 0:N.os)!=="iOS")yield this.selectDefaultDevices();this.emit(t.MediaDevicesChanged)}),this.handleRoomUpdate=(N)=>{let U=this.roomInfo;if(this.roomInfo=N,U&&U.metadata!==N.metadata)this.emitWhenConnected(t.RoomMetadataChanged,N.metadata);if((U===null||U===void 0?void 0:U.activeRecording)!==N.activeRecording)this.emitWhenConnected(t.RecordingStatusChanged,N.activeRecording)},this.handleConnectionQualityUpdate=(N)=>{N.updates.forEach((U)=>{if(U.participantSid===this.localParticipant.sid){this.localParticipant.setConnectionQuality(U.quality);return}let F=this.getRemoteParticipantBySid(U.participantSid);if(F)F.setConnectionQuality(U.quality)})},this.onLocalParticipantMetadataChanged=(N)=>{this.emit(t.ParticipantMetadataChanged,N,this.localParticipant)},this.onLocalParticipantNameChanged=(N)=>{this.emit(t.ParticipantNameChanged,N,this.localParticipant)},this.onLocalAttributesChanged=(N)=>{this.emit(t.ParticipantAttributesChanged,N,this.localParticipant)},this.onLocalTrackMuted=(N)=>{this.emit(t.TrackMuted,N,this.localParticipant)},this.onLocalTrackUnmuted=(N)=>{this.emit(t.TrackUnmuted,N,this.localParticipant)},this.onTrackProcessorUpdate=(N)=>{var U;(U=N===null||N===void 0?void 0:N.onPublish)===null||U===void 0||U.call(N,this)},this.onLocalTrackPublished=(N)=>E(this,void 0,void 0,function*(){var U,F,M,L,k,R;if((U=N.track)===null||U===void 0||U.on(B0.TrackProcessorUpdate,this.onTrackProcessorUpdate),(F=N.track)===null||F===void 0||F.on(B0.Restarted,this.onLocalTrackRestarted),(k=(L=(M=N.track)===null||M===void 0?void 0:M.getProcessor())===null||L===void 0?void 0:L.onPublish)===null||k===void 0||k.call(L,this),this.emit(t.LocalTrackPublished,N,this.localParticipant),d5(N.track)){if(yield N.track.checkForSilence())this.emit(t.LocalAudioSilenceDetected,N)}let _=yield(R=N.track)===null||R===void 0?void 0:R.getDeviceId(!1),S=wW(N.source);if(S&&_&&_!==this.localParticipant.activeDeviceMap.get(S))this.localParticipant.activeDeviceMap.set(S,_),this.emit(t.ActiveDeviceChanged,S,_)}),this.onLocalTrackUnpublished=(N)=>{var U,F;(U=N.track)===null||U===void 0||U.off(B0.TrackProcessorUpdate,this.onTrackProcessorUpdate),(F=N.track)===null||F===void 0||F.off(B0.Restarted,this.onLocalTrackRestarted),this.emit(t.LocalTrackUnpublished,N,this.localParticipant)},this.onLocalTrackRestarted=(N)=>E(this,void 0,void 0,function*(){let U=yield N.getDeviceId(!1),F=wW(N.source);if(F&&U&&U!==this.localParticipant.activeDeviceMap.get(F))this.log.debug("local track restarted, setting ".concat(F," ").concat(U," active"),this.logContext),this.localParticipant.activeDeviceMap.set(F,U),this.emit(t.ActiveDeviceChanged,F,U)}),this.onLocalConnectionQualityChanged=(N)=>{this.emit(t.ConnectionQualityChanged,N,this.localParticipant)},this.onMediaDevicesError=(N,U)=>{this.emit(t.MediaDevicesError,N,U)},this.onLocalParticipantPermissionsChanged=(N)=>{this.emit(t.ParticipantPermissionsChanged,N,this.localParticipant)},this.onLocalChatMessageSent=(N)=>{this.emit(t.ChatMessage,N,this.localParticipant)},this.setMaxListeners(100),this.remoteParticipants=new Map,this.sidToIdentity=new Map,this.options=Object.assign(Object.assign({},R70),$),this.log=o5((G=this.options.loggerName)!==null&&G!==void 0?G:_4.Room),this.transcriptionReceivedTimes=new Map,this.options.audioCaptureDefaults=Object.assign(Object.assign({},Kt),$===null||$===void 0?void 0:$.audioCaptureDefaults),this.options.videoCaptureDefaults=Object.assign(Object.assign({},Nt),$===null||$===void 0?void 0:$.videoCaptureDefaults),this.options.publishDefaults=Object.assign(Object.assign({},k70),$===null||$===void 0?void 0:$.publishDefaults),this.maybeCreateEngine(),this.incomingDataStreamManager=new wt,this.outgoingDataStreamManager=new _t(this.engine,this.log),this.disconnectLock=new y2,this.localParticipant=new Tt("","",this.engine,this.options,this.rpcHandlers,this.outgoingDataStreamManager),this.options.e2ee||this.options.encryption)this.setupE2EE();if(this.engine.e2eeManager=this.e2eeManager,this.options.videoCaptureDefaults.deviceId)this.localParticipant.activeDeviceMap.set("videoinput",B8(this.options.videoCaptureDefaults.deviceId));if(this.options.audioCaptureDefaults.deviceId)this.localParticipant.activeDeviceMap.set("audioinput",B8(this.options.audioCaptureDefaults.deviceId));if((H=this.options.audioOutput)===null||H===void 0?void 0:H.deviceId)this.switchActiveDevice("audiooutput",B8(this.options.audioOutput.deviceId)).catch((N)=>this.log.warn("Could not set audio output: ".concat(N.message),this.logContext));if(M6()){let N=new AbortController;if((K=(q=navigator.mediaDevices)===null||q===void 0?void 0:q.addEventListener)===null||K===void 0||K.call(q,"devicechange",this.handleDeviceChange,{signal:N.signal}),r5.cleanupRegistry)r5.cleanupRegistry.register(this,()=>{N.abort()})}}registerTextStreamHandler($,Y){return this.incomingDataStreamManager.registerTextStreamHandler($,Y)}unregisterTextStreamHandler($){return this.incomingDataStreamManager.unregisterTextStreamHandler($)}registerByteStreamHandler($,Y){return this.incomingDataStreamManager.registerByteStreamHandler($,Y)}unregisterByteStreamHandler($){return this.incomingDataStreamManager.unregisterByteStreamHandler($)}registerRpcMethod($,Y){if(this.rpcHandlers.has($))throw Error("RPC handler already registered for method ".concat($,", unregisterRpcMethod before trying to register again"));this.rpcHandlers.set($,Y)}unregisterRpcMethod($){this.rpcHandlers.delete($)}setE2EEEnabled($){return E(this,void 0,void 0,function*(){if(this.e2eeManager){if(yield Promise.all([this.localParticipant.setE2EEEnabled($)]),this.localParticipant.identity!=="")this.e2eeManager.setParticipantCryptorEnabled($,this.localParticipant.identity)}else throw Error("e2ee not configured, please set e2ee settings within the room options")})}setupE2EE(){var $;let Y=!!this.options.encryption,G=this.options.encryption||this.options.e2ee;if(G){if("e2eeManager"in G)this.e2eeManager=G.e2eeManager,this.e2eeManager.isDataChannelEncryptionEnabled=Y;else this.e2eeManager=new qt(G,Y);this.e2eeManager.on(H8.ParticipantEncryptionStatusChanged,(H,q)=>{if(o80(q))this.isE2EEEnabled=H;this.emit(t.ParticipantEncryptionStatusChanged,H,q)}),this.e2eeManager.on(H8.EncryptionError,(H,q)=>{let K=q?this.getParticipantByIdentity(q):void 0;this.emit(t.EncryptionError,H,K)}),($=this.e2eeManager)===null||$===void 0||$.setup(this)}}get logContext(){var $;return{room:this.name,roomID:($=this.roomInfo)===null||$===void 0?void 0:$.sid,participant:this.localParticipant.identity,pID:this.localParticipant.sid}}get isRecording(){var $,Y;return(Y=($=this.roomInfo)===null||$===void 0?void 0:$.activeRecording)!==null&&Y!==void 0?Y:!1}getSid(){if(this.state===n0.Disconnected)return g2.resolve("");if(this.roomInfo&&this.roomInfo.sid!=="")return g2.resolve(this.roomInfo.sid);return new g2(($,Y)=>{let G=(H)=>{if(H.sid!=="")this.engine.off(K0.RoomUpdate,G),$(H.sid)};this.engine.on(K0.RoomUpdate,G),this.once(t.Disconnected,()=>{this.engine.off(K0.RoomUpdate,G),Y(new n1("Room disconnected before room server id was available"))})})}get name(){var $,Y;return(Y=($=this.roomInfo)===null||$===void 0?void 0:$.name)!==null&&Y!==void 0?Y:""}get metadata(){var $;return($=this.roomInfo)===null||$===void 0?void 0:$.metadata}get numParticipants(){var $,Y;return(Y=($=this.roomInfo)===null||$===void 0?void 0:$.numParticipants)!==null&&Y!==void 0?Y:0}get numPublishers(){var $,Y;return(Y=($=this.roomInfo)===null||$===void 0?void 0:$.numPublishers)!==null&&Y!==void 0?Y:0}maybeCreateEngine(){if(this.engine&&!this.engine.isClosed)return;if(this.engine=new Lt(this.options),this.engine.e2eeManager=this.e2eeManager,this.engine.on(K0.ParticipantUpdate,this.handleParticipantUpdates).on(K0.RoomUpdate,this.handleRoomUpdate).on(K0.SpeakersChanged,this.handleSpeakersChanged).on(K0.StreamStateChanged,this.handleStreamStateUpdate).on(K0.ConnectionQualityUpdate,this.handleConnectionQualityUpdate).on(K0.SubscriptionError,this.handleSubscriptionError).on(K0.SubscriptionPermissionUpdate,this.handleSubscriptionPermissionUpdate).on(K0.MediaTrackAdded,($,Y,G)=>{this.onTrackAdded($,Y,G)}).on(K0.Disconnected,($)=>{this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,$)}).on(K0.ActiveSpeakersUpdate,this.handleActiveSpeakersUpdate).on(K0.DataPacketReceived,this.handleDataPacket).on(K0.Resuming,()=>{if(this.clearConnectionReconcile(),this.isResuming=!0,this.log.info("Resuming signal connection",this.logContext),this.setAndEmitConnectionState(n0.SignalReconnecting))this.emit(t.SignalReconnecting)}).on(K0.Resumed,()=>{if(this.registerConnectionReconcile(),this.isResuming=!1,this.log.info("Resumed signal connection",this.logContext),this.updateSubscriptions(),this.emitBufferedEvents(),this.setAndEmitConnectionState(n0.Connected))this.emit(t.Reconnected)}).on(K0.SignalResumed,()=>{if(this.bufferedEvents=[],this.state===n0.Reconnecting||this.isResuming)this.sendSyncState()}).on(K0.Restarting,this.handleRestarting).on(K0.SignalRestarted,this.handleSignalRestarted).on(K0.Offline,()=>{if(this.setAndEmitConnectionState(n0.Reconnecting))this.emit(t.Reconnecting)}).on(K0.DCBufferStatusChanged,($,Y)=>{this.emit(t.DCBufferStatusChanged,$,Y)}).on(K0.LocalTrackSubscribed,($)=>{let Y=this.localParticipant.getTrackPublications().find((G)=>{let{trackSid:H}=G;return H===$});if(!Y){this.log.warn("could not find local track subscription for subscribed event",this.logContext);return}this.localParticipant.emit(Q0.LocalTrackSubscribed,Y),this.emitWhenConnected(t.LocalTrackSubscribed,Y,this.localParticipant)}).on(K0.RoomMoved,($)=>{if(this.log.debug("room moved",$),$.room)this.handleRoomUpdate($.room);if(this.remoteParticipants.forEach((Y,G)=>{this.handleParticipantDisconnected(G,Y)}),this.emit(t.Moved,$.room.name),$.participant)this.handleParticipantUpdates([$.participant,...$.otherParticipants]);else this.handleParticipantUpdates($.otherParticipants)}),this.localParticipant)this.localParticipant.setupEngine(this.engine);if(this.e2eeManager)this.e2eeManager.setupEngine(this.engine);if(this.outgoingDataStreamManager)this.outgoingDataStreamManager.setupEngine(this.engine)}static getLocalDevices($){let Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return T2.getInstance().getDevices($,Y)}prepareConnection($,Y){return E(this,void 0,void 0,function*(){if(this.state!==n0.Disconnected)return;this.log.debug("prepareConnection to ".concat($),this.logContext);try{if(XX(new URL($))&&Y){this.regionUrlProvider=new A1($,Y);let G=yield this.regionUrlProvider.getNextBestRegionUrl();if(G&&this.state===n0.Disconnected)this.regionUrl=G,yield fetch(JH(G),{method:"HEAD"}),this.log.debug("prepared connection to ".concat(G),this.logContext)}else yield fetch(JH($),{method:"HEAD"})}catch(G){this.log.warn("could not prepare connection",Object.assign(Object.assign({},this.logContext),{error:G}))}})}getParticipantByIdentity($){if(this.localParticipant.identity===$)return this.localParticipant;return this.remoteParticipants.get($)}clearConnectionFutures(){this.connectFuture=void 0}simulateScenario($,Y){return E(this,void 0,void 0,function*(){let G=()=>E(this,void 0,void 0,function*(){}),H;switch($){case"signal-reconnect":yield this.engine.client.handleOnClose("simulate disconnect");break;case"speaker":H=new Q5({scenario:{case:"speakerUpdate",value:3}});break;case"node-failure":H=new Q5({scenario:{case:"nodeFailure",value:!0}});break;case"server-leave":H=new Q5({scenario:{case:"serverLeave",value:!0}});break;case"migration":H=new Q5({scenario:{case:"migration",value:!0}});break;case"resume-reconnect":this.engine.failNext(),yield this.engine.client.handleOnClose("simulate resume-disconnect");break;case"disconnect-signal-on-resume":G=()=>E(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),H=new Q5({scenario:{case:"disconnectSignalOnResume",value:!0}});break;case"disconnect-signal-on-resume-no-messages":G=()=>E(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),H=new Q5({scenario:{case:"disconnectSignalOnResumeNoMessages",value:!0}});break;case"full-reconnect":this.engine.fullReconnectOnNext=!0,yield this.engine.client.handleOnClose("simulate full-reconnect");break;case"force-tcp":case"force-tls":H=new Q5({scenario:{case:"switchCandidateProtocol",value:$==="force-tls"?2:1}}),G=()=>E(this,void 0,void 0,function*(){let q=this.engine.client.onLeave;if(q)q(new EB({reason:V4.CLIENT_INITIATED,action:c3.RECONNECT}))});break;case"subscriber-bandwidth":if(Y===void 0||typeof Y!=="number")throw Error("subscriber-bandwidth requires a number as argument");H=new Q5({scenario:{case:"subscriberBandwidth",value:P7(Y)}});break;case"leave-full-reconnect":H=new Q5({scenario:{case:"leaveRequestFullReconnect",value:!0}})}if(H)yield this.engine.client.sendSimulateScenario(H),yield G()})}get canPlaybackAudio(){return this.audioEnabled}get canPlaybackVideo(){return!this.isVideoPlaybackBlocked}getActiveDevice($){return this.localParticipant.activeDeviceMap.get($)}switchActiveDevice($,Y){return E(this,arguments,void 0,function(G,H){var q=this;let K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return function*(){var N,U,F,M,L,k,R;let _=!0,S=!1,T=K?{exact:H}:H;if(G==="audioinput"){S=q.localParticipant.audioTrackPublications.size===0;let y=(N=q.getActiveDevice(G))!==null&&N!==void 0?N:q.options.audioCaptureDefaults.deviceId;q.options.audioCaptureDefaults.deviceId=T;let g=Array.from(q.localParticipant.audioTrackPublications.values()).filter((c)=>c.source===e.Source.Microphone);try{_=(yield Promise.all(g.map((c)=>{var C;return(C=c.audioTrack)===null||C===void 0?void 0:C.setDeviceId(T)}))).every((c)=>c===!0)}catch(c){throw q.options.audioCaptureDefaults.deviceId=y,c}let o=g.some((c)=>{var C,I;return(I=(C=c.track)===null||C===void 0?void 0:C.isMuted)!==null&&I!==void 0?I:!1});if(_&&o)S=!0}else if(G==="videoinput"){S=q.localParticipant.videoTrackPublications.size===0;let y=(U=q.getActiveDevice(G))!==null&&U!==void 0?U:q.options.videoCaptureDefaults.deviceId;q.options.videoCaptureDefaults.deviceId=T;let g=Array.from(q.localParticipant.videoTrackPublications.values()).filter((c)=>c.source===e.Source.Camera);try{_=(yield Promise.all(g.map((c)=>{var C;return(C=c.videoTrack)===null||C===void 0?void 0:C.setDeviceId(T)}))).every((c)=>c===!0)}catch(c){throw q.options.videoCaptureDefaults.deviceId=y,c}let o=g.some((c)=>{var C,I;return(I=(C=c.track)===null||C===void 0?void 0:C.isMuted)!==null&&I!==void 0?I:!1});if(_&&o)S=!0}else if(G==="audiooutput"){if(S=!0,!_W()&&!q.options.webAudioMix||q.options.webAudioMix&&q.audioContext&&!("setSinkId"in q.audioContext))throw Error("cannot switch audio output, the current browser does not support it");if(q.options.webAudioMix)H=(F=yield T2.getInstance().normalizeDeviceId("audiooutput",H))!==null&&F!==void 0?F:"";(M=(R=q.options).audioOutput)!==null&&M!==void 0||(R.audioOutput={});let y=(L=q.getActiveDevice(G))!==null&&L!==void 0?L:q.options.audioOutput.deviceId;q.options.audioOutput.deviceId=H;try{if(q.options.webAudioMix)(k=q.audioContext)===null||k===void 0||k.setSinkId(H);yield Promise.all(Array.from(q.remoteParticipants.values()).map((g)=>g.setAudioOutput({deviceId:H})))}catch(g){throw q.options.audioOutput.deviceId=y,g}}if(S)q.localParticipant.activeDeviceMap.set(G,H),q.emit(t.ActiveDeviceChanged,G,H);return _}()})}setupLocalParticipantEvents(){this.localParticipant.on(Q0.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).on(Q0.ParticipantNameChanged,this.onLocalParticipantNameChanged).on(Q0.AttributesChanged,this.onLocalAttributesChanged).on(Q0.TrackMuted,this.onLocalTrackMuted).on(Q0.TrackUnmuted,this.onLocalTrackUnmuted).on(Q0.LocalTrackPublished,this.onLocalTrackPublished).on(Q0.LocalTrackUnpublished,this.onLocalTrackUnpublished).on(Q0.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).on(Q0.MediaDevicesError,this.onMediaDevicesError).on(Q0.AudioStreamAcquired,this.startAudio).on(Q0.ChatMessage,this.onLocalChatMessageSent).on(Q0.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged)}recreateEngine(){var $;($=this.engine)===null||$===void 0||$.close(),this.engine=void 0,this.isResuming=!1,this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.bufferedEvents=[],this.maybeCreateEngine()}onTrackAdded($,Y,G){if(this.state===n0.Connecting||this.state===n0.Reconnecting){let L=()=>{this.log.debug("deferring on track for later",{mediaTrackId:$.id,mediaStreamId:Y.id,tracksInStream:Y.getTracks().map((R)=>R.id)}),this.onTrackAdded($,Y,G),k()},k=()=>{this.off(t.Reconnected,L),this.off(t.Connected,L),this.off(t.Disconnected,k)};this.once(t.Reconnected,L),this.once(t.Connected,L),this.once(t.Disconnected,k);return}if(this.state===n0.Disconnected){this.log.warn("skipping incoming track after Room disconnected",this.logContext);return}if($.readyState==="ended"){this.log.info("skipping incoming track as it already ended",this.logContext);return}let H=v80(Y.id),q=H[0],K=H[1],N=$.id;if(K&&K.startsWith("TR"))N=K;if(q===this.localParticipant.sid){this.log.warn("tried to create RemoteParticipant for local participant",this.logContext);return}let U=Array.from(this.remoteParticipants.values()).find((L)=>L.sid===q);if(!U){this.log.error("Tried to add a track for a participant, that's not present. Sid: ".concat(q),this.logContext);return}if(!N.startsWith("TR")){let L=this.engine.getTrackIdForReceiver(G);if(!L){this.log.error("Tried to add a track whose 'sid' could not be found for a participant, that's not present. Sid: ".concat(q),this.logContext);return}N=L}if(!N.startsWith("TR"))this.log.warn("Tried to add a track whose 'sid' could not be determined for a participant, that's not present. Sid: ".concat(q,", streamId: ").concat(K,", trackId: ").concat(N),Object.assign(Object.assign({},this.logContext),{rpID:q,streamId:K,trackId:N}));let F;if(this.options.adaptiveStream)if(typeof this.options.adaptiveStream==="object")F=this.options.adaptiveStream;else F={};let M=U.addSubscribedMediaTrack($,N,Y,G,F);if((M===null||M===void 0?void 0:M.isEncrypted)&&!this.e2eeManager)this.emit(t.EncryptionError,Error("Encrypted ".concat(M.source," track received from participant ").concat(U.sid,", but room does not have encryption enabled!")))}handleDisconnect(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,Y=arguments.length>1?arguments[1]:void 0;var G,H;if(this.clearConnectionReconcile(),this.isResuming=!1,this.bufferedEvents=[],this.transcriptionReceivedTimes.clear(),this.incomingDataStreamManager.clearControllers(),this.state===n0.Disconnected)return;if(this.regionUrl=void 0,this.regionUrlProvider)this.regionUrlProvider.notifyDisconnected();try{if(this.remoteParticipants.forEach((q)=>{q.trackPublications.forEach((K)=>{q.unpublishTrack(K.trackSid)})}),this.localParticipant.trackPublications.forEach((q)=>{var K,N,U;if(q.track)this.localParticipant.unpublishTrack(q.track,$);if($)(K=q.track)===null||K===void 0||K.detach(),(N=q.track)===null||N===void 0||N.stop();else(U=q.track)===null||U===void 0||U.stopMonitor()}),this.localParticipant.off(Q0.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).off(Q0.ParticipantNameChanged,this.onLocalParticipantNameChanged).off(Q0.AttributesChanged,this.onLocalAttributesChanged).off(Q0.TrackMuted,this.onLocalTrackMuted).off(Q0.TrackUnmuted,this.onLocalTrackUnmuted).off(Q0.LocalTrackPublished,this.onLocalTrackPublished).off(Q0.LocalTrackUnpublished,this.onLocalTrackUnpublished).off(Q0.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).off(Q0.MediaDevicesError,this.onMediaDevicesError).off(Q0.AudioStreamAcquired,this.startAudio).off(Q0.ChatMessage,this.onLocalChatMessageSent).off(Q0.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged),this.localParticipant.trackPublications.clear(),this.localParticipant.videoTrackPublications.clear(),this.localParticipant.audioTrackPublications.clear(),this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.activeSpeakers=[],this.audioContext&&typeof this.options.webAudioMix==="boolean")this.audioContext.close(),this.audioContext=void 0;if(M6())window.removeEventListener("beforeunload",this.onPageLeave),window.removeEventListener("pagehide",this.onPageLeave),window.removeEventListener("freeze",this.onPageLeave),(H=(G=navigator.mediaDevices)===null||G===void 0?void 0:G.removeEventListener)===null||H===void 0||H.call(G,"devicechange",this.handleDeviceChange)}finally{this.setAndEmitConnectionState(n0.Disconnected),this.emit(t.Disconnected,Y)}}handleParticipantDisconnected($,Y){var G;if(this.remoteParticipants.delete($),!Y)return;this.incomingDataStreamManager.validateParticipantHasNoActiveDataStreams($),Y.trackPublications.forEach((H)=>{Y.unpublishTrack(H.trackSid,!0)}),this.emit(t.ParticipantDisconnected,Y),Y.setDisconnected(),(G=this.localParticipant)===null||G===void 0||G.handleParticipantDisconnected(Y.identity)}handleIncomingRpcRequest($,Y,G,H,q,K){return E(this,void 0,void 0,function*(){if(yield this.engine.publishRpcAck($,Y),K!==1){yield this.engine.publishRpcResponse($,Y,null,e1.builtIn("UNSUPPORTED_VERSION"));return}let N=this.rpcHandlers.get(G);if(!N){yield this.engine.publishRpcResponse($,Y,null,e1.builtIn("UNSUPPORTED_METHOD"));return}let U=null,F=null;try{let M=yield N({requestId:Y,callerIdentity:$,payload:H,responseTimeout:q});if($U(M)>Ft)U=e1.builtIn("RESPONSE_PAYLOAD_TOO_LARGE"),this.log.warn("RPC Response payload too large for ".concat(G));else F=M}catch(M){if(M instanceof e1)U=M;else this.log.warn("Uncaught error returned by RPC handler for ".concat(G,". Returning APPLICATION_ERROR instead."),M),U=e1.builtIn("APPLICATION_ERROR")}yield this.engine.publishRpcResponse($,Y,F,U)})}selectDefaultDevices(){return E(this,void 0,void 0,function*(){var $,Y,G;let H=T2.getInstance().previousDevices,q=yield T2.getInstance().getDevices(void 0,!1),K=G6();if((K===null||K===void 0?void 0:K.name)==="Chrome"&&K.os!=="iOS")for(let U of q){let F=H.find((M)=>M.deviceId===U.deviceId);if(F&&F.label!==""&&F.kind===U.kind&&F.label!==U.label){if(this.getActiveDevice(U.kind)==="default")this.emit(t.ActiveDeviceChanged,U.kind,U.deviceId)}}let N=["audiooutput","audioinput","videoinput"];for(let U of N){let F=x80(U),M=this.localParticipant.getTrackPublication(F);if(M&&(($=M.track)===null||$===void 0?void 0:$.isUserProvided))continue;let L=q.filter((R)=>R.kind===U),k=this.getActiveDevice(U);if(k===((Y=H.filter((R)=>R.kind===U)[0])===null||Y===void 0?void 0:Y.deviceId)){if(L.length>0&&((G=L[0])===null||G===void 0?void 0:G.deviceId)!==k){yield this.switchActiveDevice(U,L[0].deviceId);continue}}if(U==="audioinput"&&!BH()||U==="videoinput")continue;if(L.length>0&&!L.find((R)=>R.deviceId===this.getActiveDevice(U))&&(U!=="audiooutput"||!BH()))yield this.switchActiveDevice(U,L[0].deviceId)}})}acquireAudioContext(){return E(this,void 0,void 0,function*(){var $,Y;if(typeof this.options.webAudioMix!=="boolean"&&this.options.webAudioMix.audioContext)this.audioContext=this.options.webAudioMix.audioContext;else if(!this.audioContext||this.audioContext.state==="closed")this.audioContext=($=Zt())!==null&&$!==void 0?$:void 0;if(this.options.webAudioMix)this.remoteParticipants.forEach((H)=>H.setAudioContext(this.audioContext));if(this.localParticipant.setAudioContext(this.audioContext),this.audioContext&&this.audioContext.state==="suspended")try{yield Promise.race([this.audioContext.resume(),m2(200)])}catch(H){this.log.warn("Could not resume audio context",Object.assign(Object.assign({},this.logContext),{error:H}))}let G=((Y=this.audioContext)===null||Y===void 0?void 0:Y.state)==="running";if(G!==this.canPlaybackAudio)this.audioEnabled=G,this.emit(t.AudioPlaybackStatusChanged,G)})}createParticipant($,Y){var G;let H;if(Y)H=RB.fromParticipantInfo(this.engine.client,Y,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName});else H=new RB(this.engine.client,"",$,void 0,void 0,void 0,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName});if(this.options.webAudioMix)H.setAudioContext(this.audioContext);if((G=this.options.audioOutput)===null||G===void 0?void 0:G.deviceId)H.setAudioOutput(this.options.audioOutput).catch((q)=>this.log.warn("Could not set audio output: ".concat(q.message),this.logContext));return H}getOrCreateParticipant($,Y){if(this.remoteParticipants.has($)){let H=this.remoteParticipants.get($);if(Y){if(H.updateInfo(Y))this.sidToIdentity.set(Y.sid,Y.identity)}return H}let G=this.createParticipant($,Y);if(this.remoteParticipants.set($,G),this.sidToIdentity.set(Y.sid,Y.identity),this.emitWhenConnected(t.ParticipantConnected,G),G.on(Q0.TrackPublished,(H)=>{this.emitWhenConnected(t.TrackPublished,H,G)}).on(Q0.TrackSubscribed,(H,q)=>{if(H.kind===e.Kind.Audio)H.on(B0.AudioPlaybackStarted,this.handleAudioPlaybackStarted),H.on(B0.AudioPlaybackFailed,this.handleAudioPlaybackFailed);else if(H.kind===e.Kind.Video)H.on(B0.VideoPlaybackFailed,this.handleVideoPlaybackFailed),H.on(B0.VideoPlaybackStarted,this.handleVideoPlaybackStarted);this.emit(t.TrackSubscribed,H,q,G)}).on(Q0.TrackUnpublished,(H)=>{this.emit(t.TrackUnpublished,H,G)}).on(Q0.TrackUnsubscribed,(H,q)=>{this.emit(t.TrackUnsubscribed,H,q,G)}).on(Q0.TrackMuted,(H)=>{this.emitWhenConnected(t.TrackMuted,H,G)}).on(Q0.TrackUnmuted,(H)=>{this.emitWhenConnected(t.TrackUnmuted,H,G)}).on(Q0.ParticipantMetadataChanged,(H)=>{this.emitWhenConnected(t.ParticipantMetadataChanged,H,G)}).on(Q0.ParticipantNameChanged,(H)=>{this.emitWhenConnected(t.ParticipantNameChanged,H,G)}).on(Q0.AttributesChanged,(H)=>{this.emitWhenConnected(t.ParticipantAttributesChanged,H,G)}).on(Q0.ConnectionQualityChanged,(H)=>{this.emitWhenConnected(t.ConnectionQualityChanged,H,G)}).on(Q0.ParticipantPermissionsChanged,(H)=>{this.emitWhenConnected(t.ParticipantPermissionsChanged,H,G)}).on(Q0.TrackSubscriptionStatusChanged,(H,q)=>{this.emitWhenConnected(t.TrackSubscriptionStatusChanged,H,q,G)}).on(Q0.TrackSubscriptionFailed,(H,q)=>{this.emit(t.TrackSubscriptionFailed,H,G,q)}).on(Q0.TrackSubscriptionPermissionChanged,(H,q)=>{this.emitWhenConnected(t.TrackSubscriptionPermissionChanged,H,q,G)}).on(Q0.Active,()=>{if(this.emitWhenConnected(t.ParticipantActive,G),G.kind===K8.AGENT)this.localParticipant.setActiveAgent(G)}),Y)G.updateInfo(Y);return G}sendSyncState(){let $=Array.from(this.remoteParticipants.values()).reduce((G,H)=>{return G.push(...H.getTrackPublications()),G},[]),Y=this.localParticipant.getTrackPublications();this.engine.sendSyncState($,Y)}updateSubscriptions(){for(let $ of this.remoteParticipants.values())for(let Y of $.videoTrackPublications.values())if(Y.isSubscribed&&i80(Y))Y.emitTrackUpdate()}getRemoteParticipantBySid($){let Y=this.sidToIdentity.get($);if(Y)return this.remoteParticipants.get(Y)}registerConnectionReconcile(){this.clearConnectionReconcile();let $=0;this.connectionReconcileInterval=E2.setInterval(()=>{if(!this.engine||this.engine.isClosed||!this.engine.verifyTransport()){if($++,this.log.warn("detected connection state mismatch",Object.assign(Object.assign({},this.logContext),{numFailures:$,engine:this.engine?{closed:this.engine.isClosed,transportsConnected:this.engine.verifyTransport()}:void 0})),$>=3)this.recreateEngine(),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,V4.STATE_MISMATCH)}else $=0},n70)}clearConnectionReconcile(){if(this.connectionReconcileInterval)E2.clearInterval(this.connectionReconcileInterval)}setAndEmitConnectionState($){if($===this.state)return!1;return this.state=$,this.emit(t.ConnectionStateChanged,this.state),!0}emitBufferedEvents(){this.bufferedEvents.forEach(($)=>{let[Y,G]=$;this.emit(Y,...G)}),this.bufferedEvents=[]}emitWhenConnected($){for(var Y=arguments.length,G=Array(Y>1?Y-1:0),H=1;H<Y;H++)G[H-1]=arguments[H];if(this.state===n0.Reconnecting||this.isResuming||!this.engine||this.engine.pendingReconnect)this.bufferedEvents.push([$,G]);else if(this.state===n0.Connected)return this.emit($,...G);return!1}simulateParticipants($){return E(this,void 0,void 0,function*(){var Y,G,H,q;let K=Object.assign({audio:!0,video:!0,useRealTracks:!1},$.publish),N=Object.assign({count:9,audio:!1,video:!0,aspectRatios:[1.66,1.7,1.3]},$.participants);if(this.handleDisconnect(),this.roomInfo=new _B({sid:"RM_SIMULATED",name:"simulated-room",emptyTimeout:0,maxParticipants:0,creationTime:u1.parse(new Date().getTime()),metadata:"",numParticipants:1,numPublishers:1,turnPassword:"",enabledCodecs:[],activeRecording:!1}),this.localParticipant.updateInfo(new k7({identity:"simulated-local",name:"local-name"})),this.setupLocalParticipantEvents(),this.emit(t.SignalConnected),this.emit(t.Connected),this.setAndEmitConnectionState(n0.Connected),K.video){let U=new NH(e.Kind.Video,new u3({source:W2.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:R4.AUDIO,name:"video-dummy"}),new KH(K.useRealTracks&&((Y=window.navigator.mediaDevices)===null||Y===void 0?void 0:Y.getUserMedia)?(yield window.navigator.mediaDevices.getUserMedia({video:!0})).getVideoTracks()[0]:or(160*((G=N.aspectRatios[0])!==null&&G!==void 0?G:1),160,!0,!0),void 0,!1,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(U),this.localParticipant.emit(Q0.LocalTrackPublished,U)}if(K.audio){let U=new NH(e.Kind.Audio,new u3({source:W2.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:R4.AUDIO}),new AH(K.useRealTracks&&((H=navigator.mediaDevices)===null||H===void 0?void 0:H.getUserMedia)?(yield navigator.mediaDevices.getUserMedia({audio:!0})).getAudioTracks()[0]:aN(),void 0,!1,this.audioContext,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(U),this.localParticipant.emit(Q0.LocalTrackPublished,U)}for(let U=0;U<N.count-1;U+=1){let F=new k7({sid:Math.floor(Math.random()*1e4).toString(),identity:"simulated-".concat(U),state:l3.ACTIVE,tracks:[],joinedAt:u1.parse(Date.now())}),M=this.getOrCreateParticipant(F.identity,F);if(N.video){let L=or(160*((q=N.aspectRatios[U%N.aspectRatios.length])!==null&&q!==void 0?q:1),160,!1,!0),k=new u3({source:W2.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:R4.AUDIO});M.addSubscribedMediaTrack(L,k.sid,new MediaStream([L]),new RTCRtpReceiver),F.tracks=[...F.tracks,k]}if(N.audio){let L=aN(),k=new u3({source:W2.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:R4.AUDIO});M.addSubscribedMediaTrack(L,k.sid,new MediaStream([L]),new RTCRtpReceiver),F.tracks=[...F.tracks,k]}M.updateInfo(F)}})}emit($){for(var Y=arguments.length,G=Array(Y>1?Y-1:0),H=1;H<Y;H++)G[H-1]=arguments[H];if($!==t.ActiveSpeakersChanged&&$!==t.TranscriptionReceived){let q=Et(G).filter((K)=>K!==void 0);if($===t.TrackSubscribed||$===t.TrackUnsubscribed)this.log.trace("subscribe trace: ".concat($),Object.assign(Object.assign({},this.logContext),{event:$,args:q}));this.log.debug("room event ".concat($),Object.assign(Object.assign({},this.logContext),{event:$,args:q}))}return super.emit($,...G)}}r5.cleanupRegistry=typeof FinalizationRegistry<"u"&&new FinalizationRegistry(($)=>{$()});function Et($){return $.map((Y)=>{if(!Y)return;if(Array.isArray(Y))return Et(Y);if(typeof Y==="object")return"logContext"in Y?Y.logContext:void 0;return Y})}var k4;(function($){$[$.IDLE=0]="IDLE",$[$.RUNNING=1]="RUNNING",$[$.SKIPPED=2]="SKIPPED",$[$.SUCCESS=3]="SUCCESS",$[$.FAILED=4]="FAILED"})(k4||(k4={}));class a5 extends J5.EventEmitter{constructor($,Y){let G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super();this.status=k4.IDLE,this.logs=[],this.options={},this.url=$,this.token=Y,this.name=this.constructor.name,this.room=new r5(G.roomOptions),this.connectOptions=G.connectOptions,this.options=G}run($){return E(this,void 0,void 0,function*(){if(this.status!==k4.IDLE)throw Error("check is running already");this.setStatus(k4.RUNNING);try{yield this.perform()}catch(Y){if(Y instanceof Error)if(this.options.errorsAsWarnings)this.appendWarning(Y.message);else this.appendError(Y.message)}if(yield this.disconnect(),yield new Promise((Y)=>setTimeout(Y,500)),this.status!==k4.SKIPPED)this.setStatus(this.isSuccess()?k4.SUCCESS:k4.FAILED);if($)$();return this.getInfo()})}isSuccess(){return!this.logs.some(($)=>$.level==="error")}connect($){return E(this,void 0,void 0,function*(){if(this.room.state===n0.Connected)return this.room;if(!$)$=this.url;return yield this.room.connect($,this.token,this.connectOptions),this.room})}disconnect(){return E(this,void 0,void 0,function*(){if(this.room&&this.room.state!==n0.Disconnected)yield this.room.disconnect(),yield new Promise(($)=>setTimeout($,500))})}skip(){this.setStatus(k4.SKIPPED)}switchProtocol($){return E(this,void 0,void 0,function*(){let Y=!1,G=!1;if(this.room.on(t.Reconnecting,()=>{Y=!0}),this.room.once(t.Reconnected,()=>{G=!0}),this.room.simulateScenario("force-".concat($)),yield new Promise((q)=>setTimeout(q,1000)),!Y)return;let H=Date.now()+1e4;while(Date.now()<H){if(G)return;yield m2(100)}throw Error("Could not reconnect using ".concat($," protocol after 10 seconds"))})}appendMessage($){this.logs.push({level:"info",message:$}),this.emit("update",this.getInfo())}appendWarning($){this.logs.push({level:"warning",message:$}),this.emit("update",this.getInfo())}appendError($){this.logs.push({level:"error",message:$}),this.emit("update",this.getInfo())}setStatus($){this.status=$,this.emit("update",this.getInfo())}get engine(){var $;return($=this.room)===null||$===void 0?void 0:$.engine}getInfo(){return{logs:this.logs,name:this.name,status:this.status,description:this.description}}}class Dt extends a5{get description(){return"Cloud regions"}perform(){return E(this,void 0,void 0,function*(){let $=new A1(this.url,this.token);if(!$.isCloud()){this.skip();return}let Y=[],G=new Set;for(let q=0;q<3;q++){let K=yield $.getNextBestRegionUrl();if(!K)break;if(G.has(K))continue;G.add(K);let N=yield this.checkCloudRegion(K);this.appendMessage("".concat(N.region," RTT: ").concat(N.rtt,"ms, duration: ").concat(N.duration,"ms")),Y.push(N)}Y.sort((q,K)=>{return(q.duration-K.duration)*0.5+(q.rtt-K.rtt)*0.5});let H=Y[0];this.bestStats=H,this.appendMessage("best Cloud region: ".concat(H.region))})}getInfo(){let $=super.getInfo();return $.data=this.bestStats,$}checkCloudRegion($){return E(this,void 0,void 0,function*(){var Y,G;if(yield this.connect($),this.options.protocol==="tcp")yield this.switchProtocol("tcp");let H=(Y=this.room.serverInfo)===null||Y===void 0?void 0:Y.region;if(!H)throw Error("Region not found");let q=yield this.room.localParticipant.streamText({topic:"test"}),K=1000,U=1e6/K,F="A".repeat(K),M=Date.now();for(let _=0;_<U;_++)yield q.write(F);yield q.close();let L=Date.now(),k=yield(G=this.room.engine.pcManager)===null||G===void 0?void 0:G.publisher.getStats(),R={region:H,rtt:1e4,duration:L-M};return k===null||k===void 0||k.forEach((_)=>{if(_.type==="candidate-pair"&&_.nominated)R.rtt=_.currentRoundTripTime*1000}),yield this.disconnect(),R})}}var HW=1e4;class St extends a5{get description(){return"Connection via UDP vs TCP"}perform(){return E(this,void 0,void 0,function*(){let $=yield this.checkConnectionProtocol("udp"),Y=yield this.checkConnectionProtocol("tcp");if(this.bestStats=$,$.qualityLimitationDurations.bandwidth-Y.qualityLimitationDurations.bandwidth>0.5||($.packetsLost-Y.packetsLost)/$.packetsSent>0.01)this.appendMessage("best connection quality via tcp"),this.bestStats=Y;else this.appendMessage("best connection quality via udp");let G=this.bestStats;if(this.appendMessage("upstream bitrate: ".concat((G.bitrateTotal/G.count/1000/1000).toFixed(2)," mbps")),this.appendMessage("RTT: ".concat((G.rttTotal/G.count*1000).toFixed(2)," ms")),this.appendMessage("jitter: ".concat((G.jitterTotal/G.count*1000).toFixed(2)," ms")),G.packetsLost>0)this.appendWarning("packets lost: ".concat((G.packetsLost/G.packetsSent*100).toFixed(2),"%"));if(G.qualityLimitationDurations.bandwidth>1)this.appendWarning("bandwidth limited ".concat((G.qualityLimitationDurations.bandwidth/(HW/1000)*100).toFixed(2),"%"));if(G.qualityLimitationDurations.cpu>0)this.appendWarning("cpu limited ".concat((G.qualityLimitationDurations.cpu/(HW/1000)*100).toFixed(2),"%"))})}getInfo(){let $=super.getInfo();return $.data=this.bestStats,$}checkConnectionProtocol($){return E(this,void 0,void 0,function*(){if(yield this.connect(),$==="tcp")yield this.switchProtocol("tcp");else yield this.switchProtocol("udp");let Y=document.createElement("canvas");Y.width=1280,Y.height=720;let G=Y.getContext("2d");if(!G)throw Error("Could not get canvas context");let H=0,q=()=>{H=(H+1)%360,G.fillStyle="hsl(".concat(H,", 100%, 50%)"),G.fillRect(0,0,Y.width,Y.height),requestAnimationFrame(q)};q();let N=Y.captureStream(30).getVideoTracks()[0],F=(yield this.room.localParticipant.publishTrack(N,{simulcast:!1,degradationPreference:"maintain-resolution",videoEncoding:{maxBitrate:2000000}})).track,M={protocol:$,packetsLost:0,packetsSent:0,qualityLimitationDurations:{},rttTotal:0,jitterTotal:0,bitrateTotal:0,count:0},L=setInterval(()=>E(this,void 0,void 0,function*(){let k=yield F.getRTCStatsReport();k===null||k===void 0||k.forEach((R)=>{if(R.type==="outbound-rtp")M.packetsSent=R.packetsSent,M.qualityLimitationDurations=R.qualityLimitationDurations,M.bitrateTotal+=R.targetBitrate,M.count++;else if(R.type==="remote-inbound-rtp")M.packetsLost=R.packetsLost,M.rttTotal+=R.roundTripTime,M.jitterTotal+=R.jitter})}),1000);return yield new Promise((k)=>setTimeout(k,HW)),clearInterval(L),N.stop(),Y.remove(),yield this.disconnect(),M})}}class vt extends a5{get description(){return"Can publish audio"}perform(){return E(this,void 0,void 0,function*(){var $;let Y=yield this.connect(),G=yield i70();if(yield $t(G,1000))throw Error("unable to detect audio from microphone");this.appendMessage("detected audio from microphone"),Y.localParticipant.publishTrack(G),yield new Promise((N)=>setTimeout(N,3000));let q=yield($=G.sender)===null||$===void 0?void 0:$.getStats();if(!q)throw Error("Could not get RTCStats");let K=0;if(q.forEach((N)=>{if(N.type==="outbound-rtp"&&(N.kind==="audio"||!N.kind&&N.mediaType==="audio"))K=N.packetsSent}),K===0)throw Error("Could not determine packets are sent");this.appendMessage("published ".concat(K," audio packets"))})}}class jt extends a5{get description(){return"Can publish video"}perform(){return E(this,void 0,void 0,function*(){var $;let Y=yield this.connect(),G=yield c70();yield this.checkForVideo(G.mediaStreamTrack),Y.localParticipant.publishTrack(G),yield new Promise((K)=>setTimeout(K,5000));let H=yield($=G.sender)===null||$===void 0?void 0:$.getStats();if(!H)throw Error("Could not get RTCStats");let q=0;if(H.forEach((K)=>{if(K.type==="outbound-rtp"&&(K.kind==="video"||!K.kind&&K.mediaType==="video"))q+=K.packetsSent}),q===0)throw Error("Could not determine packets are sent");this.appendMessage("published ".concat(q," video packets"))})}checkForVideo($){return E(this,void 0,void 0,function*(){let Y=new MediaStream;Y.addTrack($.clone());let G=document.createElement("video");G.srcObject=Y,G.muted=!0,G.autoplay=!0,G.playsInline=!0,G.setAttribute("playsinline","true"),document.body.appendChild(G),yield new Promise((H)=>{G.onplay=()=>{setTimeout(()=>{var q,K,N,U;let F=document.createElement("canvas"),M=$.getSettings(),L=(K=(q=M.width)!==null&&q!==void 0?q:G.videoWidth)!==null&&K!==void 0?K:1280,k=(U=(N=M.height)!==null&&N!==void 0?N:G.videoHeight)!==null&&U!==void 0?U:720;F.width=L,F.height=k;let R=F.getContext("2d");R.drawImage(G,0,0);let S=R.getImageData(0,0,F.width,F.height).data,T=!0;for(let y=0;y<S.length;y+=4)if(S[y]!==0||S[y+1]!==0||S[y+2]!==0){T=!1;break}if(T)this.appendError("camera appears to be producing only black frames");else this.appendMessage("received video frames");H()},1000)},G.play()}),Y.getTracks().forEach((H)=>H.stop()),G.remove()})}}class pt extends a5{get description(){return"Resuming connection after interruption"}perform(){return E(this,void 0,void 0,function*(){var $;let Y=yield this.connect(),G=!1,H=!1,q,K=new Promise((F)=>{setTimeout(F,5000),q=F}),N=()=>{G=!0};Y.on(t.SignalReconnecting,N).on(t.Reconnecting,N).on(t.Reconnected,()=>{H=!0,q(!0)}),($=Y.engine.client.ws)===null||$===void 0||$.close();let U=Y.engine.client.onClose;if(U)U("");if(yield K,!G)throw Error("Did not attempt to reconnect");else if(!H||Y.state!==n0.Connected)throw this.appendWarning("reconnection is only possible in Redis-based configurations"),Error("Not able to reconnect")})}}class ft extends a5{get description(){return"Can connect via TURN"}perform(){return E(this,void 0,void 0,function*(){var $,Y,G;if(XX(new URL(this.url)))this.appendMessage("Using region specific url"),this.url=($=yield new A1(this.url,this.token).getNextBestRegionUrl())!==null&&$!==void 0?$:this.url;let H=new jB,q=yield H.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15000},void 0,!0),K=!1,N=!1,U=!1;for(let F of q.iceServers)for(let M of F.urls){if(M.startsWith("turn:"))N=!0,U=!0;else if(M.startsWith("turns:"))N=!0,U=!0,K=!0;if(M.startsWith("stun:"))U=!0}if(!U)this.appendWarning("No STUN servers configured on server side.");else if(N&&!K)this.appendWarning("TURN is configured server side, but TURN/TLS is unavailable.");if(yield H.close(),((G=(Y=this.connectOptions)===null||Y===void 0?void 0:Y.rtcConfig)===null||G===void 0?void 0:G.iceServers)||N)yield this.room.connect(this.url,this.token,{rtcConfig:{iceTransportPolicy:"relay"}});else this.appendWarning("No TURN servers configured."),this.skip(),yield new Promise((F)=>setTimeout(F,0))})}}class gt extends a5{get description(){return"Establishing WebRTC connection"}perform(){return E(this,void 0,void 0,function*(){let $=!1,Y=!1;this.room.on(t.SignalConnected,()=>{var G;let H=this.room.engine.client.onTrickle;if(this.room.engine.client.onTrickle=(q,K)=>{if(q.candidate){let N=new RTCIceCandidate(q),U="".concat(N.protocol," ").concat(N.address,":").concat(N.port," ").concat(N.type);if(N.address){if(a70(N.address))U+=" (private)";else if(N.protocol==="tcp"&&N.tcpType==="passive")$=!0,U+=" (passive)";else if(N.protocol==="udp")Y=!0}this.appendMessage(U)}if(H)H(q,K)},(G=this.room.engine.pcManager)===null||G===void 0?void 0:G.subscriber)this.room.engine.pcManager.subscriber.onIceCandidateError=(q)=>{if(q instanceof RTCPeerConnectionIceErrorEvent)this.appendWarning("error with ICE candidate: ".concat(q.errorCode," ").concat(q.errorText," ").concat(q.url))}});try{yield this.connect(),c0.info("now the room is connected")}catch(G){throw this.appendWarning("ports need to be open on firewall in order to connect."),G}if(!$)this.appendWarning("Server is not configured for ICE/TCP");if(!Y)this.appendWarning("No public IPv4 UDP candidates were found. Your server is likely not configured correctly")})}}function a70($){let Y=$.split(".");if(Y.length===4){if(Y[0]==="10")return!0;else if(Y[0]==="192"&&Y[1]==="168")return!0;else if(Y[0]==="172"){let G=parseInt(Y[1],10);if(G>=16&&G<=31)return!0}}return!1}class mt extends a5{get description(){return"Connecting to signal connection via WebSocket"}perform(){return E(this,void 0,void 0,function*(){var $,Y,G;if(this.url.startsWith("ws:")||this.url.startsWith("http:"))this.appendWarning("Server is insecure, clients may block connections to it");let H=new jB,q;try{q=yield H.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15000},void 0,!0)}catch(K){if(XX(new URL(this.url))){this.appendMessage("Initial connection failed with error ".concat(K.message,". Retrying with region fallback"));let U=yield new A1(this.url,this.token).getNextBestRegionUrl();if(U)q=yield H.join(U,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15000},void 0,!0),this.appendMessage("Fallback to region worked. To avoid initial connections failing, ensure you're calling room.prepareConnection() ahead of time")}}if(q){if(this.appendMessage("Connected to server, version ".concat(q.serverVersion,".")),(($=q.serverInfo)===null||$===void 0?void 0:$.edition)===en.Cloud&&((Y=q.serverInfo)===null||Y===void 0?void 0:Y.region))this.appendMessage("LiveKit Cloud: ".concat((G=q.serverInfo)===null||G===void 0?void 0:G.region))}else this.appendError("Websocket connection could not be established");yield H.close()})}}class t70 extends J5.EventEmitter{constructor($,Y){let G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super();this.options={},this.checkResults=new Map,this.url=$,this.token=Y,this.options=G}getNextCheckId(){let $=this.checkResults.size;return this.checkResults.set($,{logs:[],status:k4.IDLE,name:"",description:""}),$}updateCheck($,Y){this.checkResults.set($,Y),this.emit("checkUpdate",$,Y)}isSuccess(){return Array.from(this.checkResults.values()).every(($)=>$.status!==k4.FAILED)}getResults(){return Array.from(this.checkResults.values())}createAndRunCheck($){return E(this,void 0,void 0,function*(){let Y=this.getNextCheckId(),G=new $(this.url,this.token,this.options),H=(K)=>{this.updateCheck(Y,K)};G.on("update",H);let q=yield G.run();return G.off("update",H),q})}checkWebsocket(){return E(this,void 0,void 0,function*(){return this.createAndRunCheck(mt)})}checkWebRTC(){return E(this,void 0,void 0,function*(){return this.createAndRunCheck(gt)})}checkTURN(){return E(this,void 0,void 0,function*(){return this.createAndRunCheck(ft)})}checkReconnect(){return E(this,void 0,void 0,function*(){return this.createAndRunCheck(pt)})}checkPublishAudio(){return E(this,void 0,void 0,function*(){return this.createAndRunCheck(vt)})}checkPublishVideo(){return E(this,void 0,void 0,function*(){return this.createAndRunCheck(jt)})}checkConnectionProtocol(){return E(this,void 0,void 0,function*(){let $=yield this.createAndRunCheck(St);if($.data&&"protocol"in $.data){let Y=$.data;this.options.protocol=Y.protocol}return $})}checkCloudRegion(){return E(this,void 0,void 0,function*(){return this.createAndRunCheck(Dt)})}}function H1($,Y,G){return(Y=X30(Y))in $?Object.defineProperty($,Y,{value:G,enumerable:!0,configurable:!0,writable:!0}):$[Y]=G,$}function e70($,Y){if(typeof $!="object"||!$)return $;var G=$[Symbol.toPrimitive];if(G!==void 0){var H=G.call($,Y);if(typeof H!="object")return H;throw TypeError("@@toPrimitive must return a primitive value.")}return(Y==="string"?String:Number)($)}function X30($){var Y=e70($,"string");return typeof Y=="symbol"?Y:Y+""}class s2 extends Error{constructor($,Y){var G;super($,Y);H1(this,"code","ERR_JOSE_GENERIC"),this.name=this.constructor.name,(G=Error.captureStackTrace)===null||G===void 0||G.call(Error,this,this.constructor)}}H1(s2,"code","ERR_JOSE_GENERIC");class yt extends s2{constructor($,Y){let G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"unspecified",H=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"unspecified";super($,{cause:{claim:G,reason:H,payload:Y}});H1(this,"code","ERR_JWT_CLAIM_VALIDATION_FAILED"),H1(this,"claim",void 0),H1(this,"reason",void 0),H1(this,"payload",void 0),this.claim=G,this.reason=H,this.payload=Y}}H1(yt,"code","ERR_JWT_CLAIM_VALIDATION_FAILED");class bt extends s2{constructor($,Y){let G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"unspecified",H=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"unspecified";super($,{cause:{claim:G,reason:H,payload:Y}});H1(this,"code","ERR_JWT_EXPIRED"),H1(this,"claim",void 0),H1(this,"reason",void 0),H1(this,"payload",void 0),this.claim=G,this.reason=H,this.payload=Y}}H1(bt,"code","ERR_JWT_EXPIRED");class ht extends s2{constructor(){super(...arguments);H1(this,"code","ERR_JOSE_ALG_NOT_ALLOWED")}}H1(ht,"code","ERR_JOSE_ALG_NOT_ALLOWED");class ut extends s2{constructor(){super(...arguments);H1(this,"code","ERR_JOSE_NOT_SUPPORTED")}}H1(ut,"code","ERR_JOSE_NOT_SUPPORTED");class dt extends s2{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"decryption operation failed",Y=arguments.length>1?arguments[1]:void 0;super($,Y);H1(this,"code","ERR_JWE_DECRYPTION_FAILED")}}H1(dt,"code","ERR_JWE_DECRYPTION_FAILED");class st extends s2{constructor(){super(...arguments);H1(this,"code","ERR_JWE_INVALID")}}H1(st,"code","ERR_JWE_INVALID");class lt extends s2{constructor(){super(...arguments);H1(this,"code","ERR_JWS_INVALID")}}H1(lt,"code","ERR_JWS_INVALID");class ct extends s2{constructor(){super(...arguments);H1(this,"code","ERR_JWT_INVALID")}}H1(ct,"code","ERR_JWT_INVALID");class it extends s2{constructor(){super(...arguments);H1(this,"code","ERR_JWK_INVALID")}}H1(it,"code","ERR_JWK_INVALID");class ot extends s2{constructor(){super(...arguments);H1(this,"code","ERR_JWKS_INVALID")}}H1(ot,"code","ERR_JWKS_INVALID");class rt extends s2{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"no applicable key found in the JSON Web Key Set",Y=arguments.length>1?arguments[1]:void 0;super($,Y);H1(this,"code","ERR_JWKS_NO_MATCHING_KEY")}}H1(rt,"code","ERR_JWKS_NO_MATCHING_KEY");class nt extends s2{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"multiple matching keys found in the JSON Web Key Set",Y=arguments.length>1?arguments[1]:void 0;super($,Y);H1(this,Symbol.asyncIterator,void 0),H1(this,"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS")}}H1(nt,"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS");class at extends s2{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"request timed out",Y=arguments.length>1?arguments[1]:void 0;super($,Y);H1(this,"code","ERR_JWKS_TIMEOUT")}}H1(at,"code","ERR_JWKS_TIMEOUT");class tt extends s2{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"signature verification failed",Y=arguments.length>1?arguments[1]:void 0;super($,Y);H1(this,"code","ERR_JWS_SIGNATURE_VERIFICATION_FAILED")}}H1(tt,"code","ERR_JWS_SIGNATURE_VERIFICATION_FAILED");var $30=1000,yZ0=60*$30;var Fn;(function($){$[$.Reserved=0]="Reserved",$[$.TooLarge=1]="TooLarge"})(Fn||(Fn={}));var Mn=1,z8=2;var Z30=8;var On;(function($){$[$.TooShort=0]="TooShort",$[$.HeaderOverrun=1]="HeaderOverrun",$[$.MissingExtWords=2]="MissingExtWords",$[$.UnsupportedVersion=3]="UnsupportedVersion",$[$.InvalidHandle=4]="InvalidHandle",$[$.MalformedExt=5]="MalformedExt"})(On||(On={}));var Pn;(function($){$[$.TooSmallForHeader=0]="TooSmallForHeader",$[$.TooSmallForPayload=1]="TooSmallForPayload"})(Pn||(Pn={}));class et{toBinary(){let $=this.toBinaryLengthBytes(),Y=new ArrayBuffer($),G=new DataView(Y),H=this.toBinaryInto(G);if($!==H)throw Error("".concat(this.constructor.name,".toBinary: written bytes (").concat(H," bytes) not equal to allocated array buffer length (").concat($," bytes)."));return new Uint8Array(Y)}}var wB;(function($){$[$.UserTimestamp=2]="UserTimestamp",$[$.E2ee=1]="E2ee"})(wB||(wB={}));class JU extends et{}class Q8 extends JU{constructor($){super();this.timestamp=$}toBinaryLengthBytes(){return z8+z8+Q8.lengthBytes}toBinaryInto($){let Y=0;$.setUint16(Y,Q8.tag),Y+=z8;let G=Q8.lengthBytes-1;$.setUint16(Y,G),Y+=z8,$.setBigUint64(Y,this.timestamp),Y+=Z30;let H=this.toBinaryLengthBytes();if(Y!==H)throw Error("DataTrackUserTimestampExtension.toBinaryInto: Wrote ".concat(Y," bytes but expected length was ").concat(H," bytes"));return Y}toJSON(){return{tag:Q8.tag,lengthBytes:Q8.lengthBytes,timestamp:this.timestamp}}}Q8.tag=wB.UserTimestamp;Q8.lengthBytes=8;class G8 extends JU{constructor($,Y){super();this.keyIndex=$,this.iv=Y}toBinaryLengthBytes(){return z8+z8+G8.lengthBytes}toBinaryInto($){let Y=0;$.setUint16(Y,G8.tag),Y+=z8;let G=G8.lengthBytes-1;$.setUint16(Y,G),Y+=z8,$.setUint8(Y,this.keyIndex),Y+=Mn;for(let q=0;q<this.iv.length;q+=1)$.setUint8(Y,this.iv[q]),Y+=Mn;let H=this.toBinaryLengthBytes();if(Y!==H)throw Error("DataTrackE2eeExtension.toBinaryInto: Wrote ".concat(Y," bytes but expected length was ").concat(H," bytes"));return Y}toJSON(){return{tag:G8.tag,lengthBytes:G8.lengthBytes,keyIndex:this.keyIndex,iv:this.iv}}}G8.tag=wB.E2ee;G8.lengthBytes=13;var Ln;(function($){$[$.Start=0]="Start",$[$.Inter=1]="Inter",$[$.Final=2]="Final",$[$.Single=3]="Single"})(Ln||(Ln={}));var Q4=B(W1(),1);var PH=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ne($){return $&&$.__esModule&&Object.prototype.hasOwnProperty.call($,"default")?$.default:$}var UU={exports:{}},Y30=UU.exports,Xe;function Q30(){return Xe||(Xe=1,function($){(function(Y,G){$.exports?$.exports=G():Y.log=G()})(Y30,function(){var Y=function(){},G="undefined",H=typeof window!==G&&typeof window.navigator!==G&&/Trident\/|MSIE /.test(window.navigator.userAgent),q=["trace","debug","info","warn","error"],K={},N=null;function U(T,y){var g=T[y];if(typeof g.bind=="function")return g.bind(T);try{return Function.prototype.bind.call(g,T)}catch{return function(){return Function.prototype.apply.apply(g,[T,arguments])}}}function F(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function M(T){return T==="debug"&&(T="log"),typeof console===G?!1:T==="trace"&&H?F:console[T]!==void 0?U(console,T):console.log!==void 0?U(console,"log"):Y}function L(){for(var T=this.getLevel(),y=0;y<q.length;y++){var g=q[y];this[g]=y<T?Y:this.methodFactory(g,T,this.name)}if(this.log=this.debug,typeof console===G&&T<this.levels.SILENT)return"No console available for logging"}function k(T){return function(){typeof console!==G&&(L.call(this),this[T].apply(this,arguments))}}function R(T,y,g){return M(T)||k.apply(this,arguments)}function _(T,y){var g=this,o,c,C,I="loglevel";typeof T=="string"?I+=":"+T:typeof T=="symbol"&&(I=void 0);function p(X0){var Y0=(q[X0]||"silent").toUpperCase();if(!(typeof window===G||!I)){try{window.localStorage[I]=Y0;return}catch{}try{window.document.cookie=encodeURIComponent(I)+"="+Y0+";"}catch{}}}function l(){var X0;if(!(typeof window===G||!I)){try{X0=window.localStorage[I]}catch{}if(typeof X0===G)try{var Y0=window.document.cookie,M0=encodeURIComponent(I),y0=Y0.indexOf(M0+"=");y0!==-1&&(X0=/^([^;]+)/.exec(Y0.slice(y0+M0.length+1))[1])}catch{}return g.levels[X0]===void 0&&(X0=void 0),X0}}function f(){if(!(typeof window===G||!I)){try{window.localStorage.removeItem(I)}catch{}try{window.document.cookie=encodeURIComponent(I)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function n(X0){var Y0=X0;if(typeof Y0=="string"&&g.levels[Y0.toUpperCase()]!==void 0&&(Y0=g.levels[Y0.toUpperCase()]),typeof Y0=="number"&&Y0>=0&&Y0<=g.levels.SILENT)return Y0;throw TypeError("log.setLevel() called with invalid level: "+X0)}g.name=T,g.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},g.methodFactory=y||R,g.getLevel=function(){return C??c??o},g.setLevel=function(X0,Y0){return C=n(X0),Y0!==!1&&p(C),L.call(g)},g.setDefaultLevel=function(X0){c=n(X0),l()||g.setLevel(X0,!1)},g.resetLevel=function(){C=null,f(),L.call(g)},g.enableAll=function(X0){g.setLevel(g.levels.TRACE,X0)},g.disableAll=function(X0){g.setLevel(g.levels.SILENT,X0)},g.rebuild=function(){if(N!==g&&(o=n(N.getLevel())),L.call(g),N===g)for(var X0 in K)K[X0].rebuild()},o=n(N?N.getLevel():"WARN");var u=l();u!=null&&(C=n(u)),L.call(g)}N=new _,N.getLogger=function(T){if(typeof T!="symbol"&&typeof T!="string"||T==="")throw TypeError("You must supply a name when creating a logger.");var y=K[T];return y||(y=K[T]=new _(T,N.methodFactory)),y};var S=typeof window!==G?window.log:void 0;return N.noConflict=function(){return typeof window!==G&&window.log===N&&(window.log=S),N},N.getLoggers=function(){return K},N.default=N,N})}(UU)),UU.exports}var G30=Q30(),H30=Ne(G30),FU=function($,Y){return FU=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(G,H){G.__proto__=H}||function(G,H){for(var q in H)Object.prototype.hasOwnProperty.call(H,q)&&(G[q]=H[q])},FU($,Y)};function t5($,Y){if(typeof Y!="function"&&Y!==null)throw TypeError("Class extends value "+String(Y)+" is not a constructor or null");FU($,Y);function G(){this.constructor=$}$.prototype=Y===null?Object.create(Y):(G.prototype=Y.prototype,new G)}function z30($,Y,G,H){function q(K){return K instanceof G?K:new G(function(N){N(K)})}return new(G||(G=Promise))(function(K,N){function U(L){try{M(H.next(L))}catch(k){N(k)}}function F(L){try{M(H.throw(L))}catch(k){N(k)}}function M(L){L.done?K(L.value):q(L.value).then(U,F)}M((H=H.apply($,Y||[])).next())})}function We($,Y){var G={label:0,sent:function(){if(K[0]&1)throw K[1];return K[1]},trys:[],ops:[]},H,q,K,N=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return N.next=U(0),N.throw=U(1),N.return=U(2),typeof Symbol=="function"&&(N[Symbol.iterator]=function(){return this}),N;function U(M){return function(L){return F([M,L])}}function F(M){if(H)throw TypeError("Generator is already executing.");for(;N&&(N=0,M[0]&&(G=0)),G;)try{if(H=1,q&&(K=M[0]&2?q.return:M[0]?q.throw||((K=q.return)&&K.call(q),0):q.next)&&!(K=K.call(q,M[1])).done)return K;switch(q=0,K&&(M=[M[0]&2,K.value]),M[0]){case 0:case 1:K=M;break;case 4:return G.label++,{value:M[1],done:!1};case 5:G.label++,q=M[1],M=[0];continue;case 7:M=G.ops.pop(),G.trys.pop();continue;default:if(K=G.trys,!(K=K.length>0&&K[K.length-1])&&(M[0]===6||M[0]===2)){G=0;continue}if(M[0]===3&&(!K||M[1]>K[0]&&M[1]<K[3])){G.label=M[1];break}if(M[0]===6&&G.label<K[1]){G.label=K[1],K=M;break}if(K&&G.label<K[2]){G.label=K[2],G.ops.push(M);break}K[2]&&G.ops.pop(),G.trys.pop();continue}M=Y.call($,G)}catch(L){M=[6,L],q=0}finally{H=K=0}if(M[0]&5)throw M[1];return{value:M[0]?M[1]:void 0,done:!0}}}function ZX($){var Y=typeof Symbol=="function"&&Symbol.iterator,G=Y&&$[Y],H=0;if(G)return G.call($);if($&&typeof $.length=="number")return{next:function(){return $&&H>=$.length&&($=void 0),{value:$&&$[H++],done:!$}}};throw TypeError(Y?"Object is not iterable.":"Symbol.iterator is not defined.")}function WH($,Y){var G=typeof Symbol=="function"&&$[Symbol.iterator];if(!G)return $;var H=G.call($),q,K=[],N;try{for(;(Y===void 0||Y-- >0)&&!(q=H.next()).done;)K.push(q.value)}catch(U){N={error:U}}finally{try{q&&!q.done&&(G=H.return)&&G.call(H)}finally{if(N)throw N.error}}return K}function UH($,Y,G){if(G||arguments.length===2)for(var H=0,q=Y.length,K;H<q;H++)(K||!(H in Y))&&(K||(K=Array.prototype.slice.call(Y,0,H)),K[H]=Y[H]);return $.concat(K||Array.prototype.slice.call(Y))}function $X($){return this instanceof $X?(this.v=$,this):new $X($)}function q30($,Y,G){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var H=G.apply($,Y||[]),q,K=[];return q=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),U("next"),U("throw"),U("return",N),q[Symbol.asyncIterator]=function(){return this},q;function N(_){return function(S){return Promise.resolve(S).then(_,k)}}function U(_,S){H[_]&&(q[_]=function(T){return new Promise(function(y,g){K.push([_,T,y,g])>1||F(_,T)})},S&&(q[_]=S(q[_])))}function F(_,S){try{M(H[_](S))}catch(T){R(K[0][3],T)}}function M(_){_.value instanceof $X?Promise.resolve(_.value.v).then(L,k):R(K[0][2],_)}function L(_){F("next",_)}function k(_){F("throw",_)}function R(_,S){_(S),K.shift(),K.length&&F(K[0][0],K[0][1])}}function B30($){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Y=$[Symbol.asyncIterator],G;return Y?Y.call($):($=typeof ZX=="function"?ZX($):$[Symbol.iterator](),G={},H("next"),H("throw"),H("return"),G[Symbol.asyncIterator]=function(){return this},G);function H(K){G[K]=$[K]&&function(N){return new Promise(function(U,F){N=$[K](N),q(U,F,N.done,N.value)})}}function q(K,N,U,F){Promise.resolve(F).then(function(M){K({value:M,done:U})},N)}}function U2($){return typeof $=="function"}function PU($){var Y=function(H){Error.call(H),H.stack=Error().stack},G=$(Y);return G.prototype=Object.create(Error.prototype),G.prototype.constructor=G,G}var AU=PU(function($){return function(Y){$(this),this.message=Y?Y.length+` errors occurred during unsubscription:
|
|
273
273
|
`+Y.map(function(G,H){return H+1+") "+G.toString()}).join(`
|
|
274
|
-
`):"",this.name="UnsubscriptionError",this.errors=Y}});function uB($,Y){if($){var G=$.indexOf(Y);0<=G&&$.splice(G,1)}}var LH=function(){function $(Y){this.initialTeardown=Y,this.closed=!1,this._parentage=null,this._finalizers=null}return $.prototype.unsubscribe=function(){var Y,G,H,q,K;if(!this.closed){this.closed=!0;var N=this._parentage;if(N)if(this._parentage=null,Array.isArray(N))try{for(var U=ZX(N),F=U.next();!F.done;F=U.next()){var M=F.value;M.remove(this)}}catch(T){Y={error:T}}finally{try{F&&!F.done&&(G=U.return)&&G.call(U)}finally{if(Y)throw Y.error}}else N.remove(this);var L=this.initialTeardown;if(U2(L))try{L()}catch(T){K=T instanceof AU?T.errors:[T]}var k=this._finalizers;if(k){this._finalizers=null;try{for(var R=ZX(k),_=R.next();!_.done;_=R.next()){var S=_.value;try{$e(S)}catch(T){K=K??[],T instanceof AU?K=UH(UH([],WH(K)),WH(T.errors)):K.push(T)}}}catch(T){H={error:T}}finally{try{_&&!_.done&&(q=R.return)&&q.call(R)}finally{if(H)throw H.error}}}if(K)throw new AU(K)}},$.prototype.add=function(Y){var G;if(Y&&Y!==this)if(this.closed)$e(Y);else{if(Y instanceof $){if(Y.closed||Y._hasParent(this))return;Y._addParent(this)}(this._finalizers=(G=this._finalizers)!==null&&G!==void 0?G:[]).push(Y)}},$.prototype._hasParent=function(Y){var G=this._parentage;return G===Y||Array.isArray(G)&&G.includes(Y)},$.prototype._addParent=function(Y){var G=this._parentage;this._parentage=Array.isArray(G)?(G.push(Y),G):G?[G,Y]:Y},$.prototype._removeParent=function(Y){var G=this._parentage;G===Y?this._parentage=null:Array.isArray(G)&&uB(G,Y)},$.prototype.remove=function(Y){var G=this._finalizers;G&&uB(G,Y),Y instanceof $&&Y._removeParent(this)},$.EMPTY=function(){var Y=new $;return Y.closed=!0,Y}(),$}(),Ue=LH.EMPTY;function Fe($){return $ instanceof LH||$&&"closed"in $&&U2($.remove)&&U2($.add)&&U2($.unsubscribe)}function $e($){U2($)?$():$.unsubscribe()}var J30={Promise:void 0},A30={setTimeout:function($,Y){for(var G=[],H=2;H<arguments.length;H++)G[H-2]=arguments[H];return setTimeout.apply(void 0,UH([$,Y],WH(G)))},clearTimeout:function($){return clearTimeout($)},delegate:void 0};function Me($){A30.setTimeout(function(){throw $})}function MU(){}function hB($){$()}var LU=function($){t5(Y,$);function Y(G){var H=$.call(this)||this;return H.isStopped=!1,G?(H.destination=G,Fe(G)&&G.add(H)):H.destination=W30,H}return Y.create=function(G,H,q){return new FH(G,H,q)},Y.prototype.next=function(G){this.isStopped||this._next(G)},Y.prototype.error=function(G){this.isStopped||(this.isStopped=!0,this._error(G))},Y.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},Y.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,$.prototype.unsubscribe.call(this),this.destination=null)},Y.prototype._next=function(G){this.destination.next(G)},Y.prototype._error=function(G){try{this.destination.error(G)}finally{this.unsubscribe()}},Y.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},Y}(LH),K30=function(){function $(Y){this.partialObserver=Y}return $.prototype.next=function(Y){var G=this.partialObserver;if(G.next)try{G.next(Y)}catch(H){yB(H)}},$.prototype.error=function(Y){var G=this.partialObserver;if(G.error)try{G.error(Y)}catch(H){yB(H)}else yB(Y)},$.prototype.complete=function(){var Y=this.partialObserver;if(Y.complete)try{Y.complete()}catch(G){yB(G)}},$}(),FH=function($){t5(Y,$);function Y(G,H,q){var K=$.call(this)||this,N;return U2(G)||!G?N={next:G??void 0,error:H??void 0,complete:q??void 0}:N=G,K.destination=new K30(N),K}return Y}(LU);function yB($){Me($)}function N30($){throw $}var W30={closed:!0,next:MU,error:N30,complete:MU},kU=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function RU($){return $}function U30($){return $.length===0?RU:$.length===1?$[0]:function(Y){return $.reduce(function(G,H){return H(G)},Y)}}var L2=function(){function $(Y){Y&&(this._subscribe=Y)}return $.prototype.lift=function(Y){var G=new $;return G.source=this,G.operator=Y,G},$.prototype.subscribe=function(Y,G,H){var q=this,K=M30(Y)?Y:new FH(Y,G,H);return hB(function(){var N=q,U=N.operator,F=N.source;K.add(U?U.call(K,F):F?q._subscribe(K):q._trySubscribe(K))}),K},$.prototype._trySubscribe=function(Y){try{return this._subscribe(Y)}catch(G){Y.error(G)}},$.prototype.forEach=function(Y,G){var H=this;return G=Ze(G),new G(function(q,K){var N=new FH({next:function(U){try{Y(U)}catch(F){K(F),N.unsubscribe()}},error:K,complete:q});H.subscribe(N)})},$.prototype._subscribe=function(Y){var G;return(G=this.source)===null||G===void 0?void 0:G.subscribe(Y)},$.prototype[kU]=function(){return this},$.prototype.pipe=function(){for(var Y=[],G=0;G<arguments.length;G++)Y[G]=arguments[G];return U30(Y)(this)},$.prototype.toPromise=function(Y){var G=this;return Y=Ze(Y),new Y(function(H,q){var K;G.subscribe(function(N){return K=N},function(N){return q(N)},function(){return H(K)})})},$.create=function(Y){return new $(Y)},$}();function Ze($){var Y;return(Y=$??J30.Promise)!==null&&Y!==void 0?Y:Promise}function F30($){return $&&U2($.next)&&U2($.error)&&U2($.complete)}function M30($){return $&&$ instanceof LU||F30($)&&Fe($)}function O30($){return U2($==null?void 0:$.lift)}function A5($){return function(Y){if(O30(Y))return Y.lift(function(G){try{return $(G,this)}catch(H){this.error(H)}});throw TypeError("Unable to lift unknown Observable type")}}function F8($,Y,G,H,q){return new P30($,Y,G,H,q)}var P30=function($){t5(Y,$);function Y(G,H,q,K,N,U){var F=$.call(this,G)||this;return F.onFinalize=N,F.shouldUnsubscribe=U,F._next=H?function(M){try{H(M)}catch(L){G.error(L)}}:$.prototype._next,F._error=K?function(M){try{K(M)}catch(L){G.error(L)}finally{this.unsubscribe()}}:$.prototype._error,F._complete=q?function(){try{q()}catch(M){G.error(M)}finally{this.unsubscribe()}}:$.prototype._complete,F}return Y.prototype.unsubscribe=function(){var G;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var H=this.closed;$.prototype.unsubscribe.call(this),!H&&((G=this.onFinalize)===null||G===void 0||G.call(this))}},Y}(LU),L30=PU(function($){return function(){$(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),YX=function($){t5(Y,$);function Y(){var G=$.call(this)||this;return G.closed=!1,G.currentObservers=null,G.observers=[],G.isStopped=!1,G.hasError=!1,G.thrownError=null,G}return Y.prototype.lift=function(G){var H=new Ye(this,this);return H.operator=G,H},Y.prototype._throwIfClosed=function(){if(this.closed)throw new L30},Y.prototype.next=function(G){var H=this;hB(function(){var q,K;if(H._throwIfClosed(),!H.isStopped){H.currentObservers||(H.currentObservers=Array.from(H.observers));try{for(var N=ZX(H.currentObservers),U=N.next();!U.done;U=N.next()){var F=U.value;F.next(G)}}catch(M){q={error:M}}finally{try{U&&!U.done&&(K=N.return)&&K.call(N)}finally{if(q)throw q.error}}}})},Y.prototype.error=function(G){var H=this;hB(function(){if(H._throwIfClosed(),!H.isStopped){H.hasError=H.isStopped=!0,H.thrownError=G;for(var q=H.observers;q.length;)q.shift().error(G)}})},Y.prototype.complete=function(){var G=this;hB(function(){if(G._throwIfClosed(),!G.isStopped){G.isStopped=!0;for(var H=G.observers;H.length;)H.shift().complete()}})},Y.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(Y.prototype,"observed",{get:function(){var G;return((G=this.observers)===null||G===void 0?void 0:G.length)>0},enumerable:!1,configurable:!0}),Y.prototype._trySubscribe=function(G){return this._throwIfClosed(),$.prototype._trySubscribe.call(this,G)},Y.prototype._subscribe=function(G){return this._throwIfClosed(),this._checkFinalizedStatuses(G),this._innerSubscribe(G)},Y.prototype._innerSubscribe=function(G){var H=this,q=this,K=q.hasError,N=q.isStopped,U=q.observers;return K||N?Ue:(this.currentObservers=null,U.push(G),new LH(function(){H.currentObservers=null,uB(U,G)}))},Y.prototype._checkFinalizedStatuses=function(G){var H=this,q=H.hasError,K=H.thrownError,N=H.isStopped;q?G.error(K):N&&G.complete()},Y.prototype.asObservable=function(){var G=new L2;return G.source=this,G},Y.create=function(G,H){return new Ye(G,H)},Y}(L2),Ye=function($){t5(Y,$);function Y(G,H){var q=$.call(this)||this;return q.destination=G,q.source=H,q}return Y.prototype.next=function(G){var H,q;(q=(H=this.destination)===null||H===void 0?void 0:H.next)===null||q===void 0||q.call(H,G)},Y.prototype.error=function(G){var H,q;(q=(H=this.destination)===null||H===void 0?void 0:H.error)===null||q===void 0||q.call(H,G)},Y.prototype.complete=function(){var G,H;(H=(G=this.destination)===null||G===void 0?void 0:G.complete)===null||H===void 0||H.call(G)},Y.prototype._subscribe=function(G){var H,q;return(q=(H=this.source)===null||H===void 0?void 0:H.subscribe(G))!==null&&q!==void 0?q:Ue},Y}(YX),k30=function($){t5(Y,$);function Y(G){var H=$.call(this)||this;return H._value=G,H}return Object.defineProperty(Y.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),Y.prototype._subscribe=function(G){var H=$.prototype._subscribe.call(this,G);return!H.closed&&G.next(this._value),H},Y.prototype.getValue=function(){var G=this,H=G.hasError,q=G.thrownError,K=G._value;if(H)throw q;return this._throwIfClosed(),K},Y.prototype.next=function(G){$.prototype.next.call(this,this._value=G)},Y}(YX),R30={now:function(){return Date.now()}},w30=function($){t5(Y,$);function Y(G,H){return $.call(this)||this}return Y.prototype.schedule=function(G,H){return this},Y}(LH),Qe={setInterval:function($,Y){for(var G=[],H=2;H<arguments.length;H++)G[H-2]=arguments[H];return setInterval.apply(void 0,UH([$,Y],WH(G)))},clearInterval:function($){return clearInterval($)},delegate:void 0},x30=function($){t5(Y,$);function Y(G,H){var q=$.call(this,G,H)||this;return q.scheduler=G,q.work=H,q.pending=!1,q}return Y.prototype.schedule=function(G,H){var q;if(H===void 0&&(H=0),this.closed)return this;this.state=G;var K=this.id,N=this.scheduler;return K!=null&&(this.id=this.recycleAsyncId(N,K,H)),this.pending=!0,this.delay=H,this.id=(q=this.id)!==null&&q!==void 0?q:this.requestAsyncId(N,this.id,H),this},Y.prototype.requestAsyncId=function(G,H,q){return q===void 0&&(q=0),Qe.setInterval(G.flush.bind(G,this),q)},Y.prototype.recycleAsyncId=function(G,H,q){if(q===void 0&&(q=0),q!=null&&this.delay===q&&this.pending===!1)return H;H!=null&&Qe.clearInterval(H)},Y.prototype.execute=function(G,H){if(this.closed)return Error("executing a cancelled action");this.pending=!1;var q=this._execute(G,H);if(q)return q;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},Y.prototype._execute=function(G,H){var q=!1,K;try{this.work(G)}catch(N){q=!0,K=N||Error("Scheduled action threw falsy error")}if(q)return this.unsubscribe(),K},Y.prototype.unsubscribe=function(){if(!this.closed){var G=this,H=G.id,q=G.scheduler,K=q.actions;this.work=this.state=this.scheduler=null,this.pending=!1,uB(K,this),H!=null&&(this.id=this.recycleAsyncId(q,H,null)),this.delay=null,$.prototype.unsubscribe.call(this)}},Y}(w30),Ge=function(){function $(Y,G){G===void 0&&(G=$.now),this.schedulerActionCtor=Y,this.now=G}return $.prototype.schedule=function(Y,G,H){return G===void 0&&(G=0),new this.schedulerActionCtor(this,Y).schedule(H,G)},$.now=R30.now,$}(),V30=function($){t5(Y,$);function Y(G,H){H===void 0&&(H=Ge.now);var q=$.call(this,G,H)||this;return q.actions=[],q._active=!1,q}return Y.prototype.flush=function(G){var H=this.actions;if(this._active){H.push(G);return}var q;this._active=!0;do if(q=G.execute(G.state,G.delay))break;while(G=H.shift());if(this._active=!1,q){for(;G=H.shift();)G.unsubscribe();throw q}},Y}(Ge),sZ0=new V30(x30);function _30($){return $&&U2($.schedule)}function I30($){return $[$.length-1]}function Oe($){return _30(I30($))?$.pop():void 0}var Pe=function($){return $&&typeof $.length=="number"&&typeof $!="function"};function Le($){return U2($==null?void 0:$.then)}function ke($){return U2($[kU])}function Re($){return Symbol.asyncIterator&&U2($==null?void 0:$[Symbol.asyncIterator])}function we($){return TypeError("You provided "+($!==null&&typeof $=="object"?"an invalid object":"'"+$+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function C30(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var xe=C30();function Ve($){return U2($==null?void 0:$[xe])}function _e($){return q30(this,arguments,function(){var Y,G,H,q;return We(this,function(K){switch(K.label){case 0:Y=$.getReader(),K.label=1;case 1:K.trys.push([1,,9,10]),K.label=2;case 2:return[4,$X(Y.read())];case 3:return G=K.sent(),H=G.value,q=G.done,q?[4,$X(void 0)]:[3,5];case 4:return[2,K.sent()];case 5:return[4,$X(H)];case 6:return[4,K.sent()];case 7:return K.sent(),[3,2];case 8:return[3,10];case 9:return Y.releaseLock(),[7];case 10:return[2]}})})}function Ie($){return U2($==null?void 0:$.getReader)}function M8($){if($ instanceof L2)return $;if($!=null){if(ke($))return T30($);if(Pe($))return E30($);if(Le($))return D30($);if(Re($))return Ce($);if(Ve($))return S30($);if(Ie($))return v30($)}throw we($)}function T30($){return new L2(function(Y){var G=$[kU]();if(U2(G.subscribe))return G.subscribe(Y);throw TypeError("Provided object does not correctly implement Symbol.observable")})}function E30($){return new L2(function(Y){for(var G=0;G<$.length&&!Y.closed;G++)Y.next($[G]);Y.complete()})}function D30($){return new L2(function(Y){$.then(function(G){Y.closed||(Y.next(G),Y.complete())},function(G){return Y.error(G)}).then(null,Me)})}function S30($){return new L2(function(Y){var G,H;try{for(var q=ZX($),K=q.next();!K.done;K=q.next()){var N=K.value;if(Y.next(N),Y.closed)return}}catch(U){G={error:U}}finally{try{K&&!K.done&&(H=q.return)&&H.call(q)}finally{if(G)throw G.error}}Y.complete()})}function Ce($){return new L2(function(Y){j30($,Y).catch(function(G){return Y.error(G)})})}function v30($){return Ce(_e($))}function j30($,Y){var G,H,q,K;return z30(this,void 0,void 0,function(){var N,U;return We(this,function(F){switch(F.label){case 0:F.trys.push([0,5,6,11]),G=B30($),F.label=1;case 1:return[4,G.next()];case 2:if(H=F.sent(),!!H.done)return[3,4];if(N=H.value,Y.next(N),Y.closed)return[2];F.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return U=F.sent(),q={error:U},[3,11];case 6:return F.trys.push([6,,9,10]),H&&!H.done&&(K=G.return)?[4,K.call(G)]:[3,8];case 7:F.sent(),F.label=8;case 8:return[3,10];case 9:if(q)throw q.error;return[7];case 10:return[7];case 11:return Y.complete(),[2]}})})}function I7($,Y,G,H,q){H===void 0&&(H=0),q===void 0&&(q=!1);var K=Y.schedule(function(){G(),q?$.add(this.schedule(null,H)):this.unsubscribe()},H);if($.add(K),!q)return K}function Te($,Y){return Y===void 0&&(Y=0),A5(function(G,H){G.subscribe(F8(H,function(q){return I7(H,$,function(){return H.next(q)},Y)},function(){return I7(H,$,function(){return H.complete()},Y)},function(q){return I7(H,$,function(){return H.error(q)},Y)}))})}function Ee($,Y){return Y===void 0&&(Y=0),A5(function(G,H){H.add($.schedule(function(){return G.subscribe(H)},Y))})}function p30($,Y){return M8($).pipe(Ee(Y),Te(Y))}function f30($,Y){return M8($).pipe(Ee(Y),Te(Y))}function g30($,Y){return new L2(function(G){var H=0;return Y.schedule(function(){H===$.length?G.complete():(G.next($[H++]),G.closed||this.schedule())})})}function m30($,Y){return new L2(function(G){var H;return I7(G,Y,function(){H=$[xe](),I7(G,Y,function(){var q,K,N;try{q=H.next(),K=q.value,N=q.done}catch(U){G.error(U);return}N?G.complete():G.next(K)},0,!0)}),function(){return U2(H==null?void 0:H.return)&&H.return()}})}function De($,Y){if(!$)throw Error("Iterable cannot be null");return new L2(function(G){I7(G,Y,function(){var H=$[Symbol.asyncIterator]();I7(G,Y,function(){H.next().then(function(q){q.done?G.complete():G.next(q.value)})},0,!0)})})}function y30($,Y){return De(_e($),Y)}function b30($,Y){if($!=null){if(ke($))return p30($,Y);if(Pe($))return g30($,Y);if(Le($))return f30($,Y);if(Re($))return De($,Y);if(Ve($))return m30($,Y);if(Ie($))return y30($,Y)}throw we($)}function wU($,Y){return Y?b30($,Y):M8($)}var lZ0=PU(function($){return function(Y){Y===void 0&&(Y=null),$(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=Y}});function I4($,Y){return A5(function(G,H){var q=0;G.subscribe(F8(H,function(K){H.next($.call(Y,K,q++))}))})}function h30($,Y,G,H,q,K,N,U){var F=[],M=0,L=0,k=!1,R=function(){k&&!F.length&&!M&&Y.complete()},_=function(T){return M<H?S(T):F.push(T)},S=function(T){M++;var y=!1;M8(G(T,L++)).subscribe(F8(Y,function(g){Y.next(g)},function(){y=!0},void 0,function(){if(y)try{M--;for(var g=function(){var o=F.shift();N||S(o)};F.length&&M<H;)g();R()}catch(o){Y.error(o)}}))};return $.subscribe(F8(Y,_,function(){k=!0,R()})),function(){}}function Se($,Y,G){return G===void 0&&(G=1/0),U2(Y)?Se(function(H,q){return I4(function(K,N){return Y(H,K,q,N)})(M8($(H,q)))},G):(typeof Y=="number"&&(G=Y),A5(function(H,q){return h30(H,q,$,G)}))}function u30($){return Se(RU,$)}function d30(){return u30(1)}function He(){for(var $=[],Y=0;Y<arguments.length;Y++)$[Y]=arguments[Y];return d30()(wU($,Oe($)))}function ve($,Y){return A5(function(G,H){var q=0;G.subscribe(F8(H,function(K){return $.call(Y,K,q++)&&H.next(K)}))})}function s30($,Y,G,H,q){return function(K,N){var U=G,F=Y,M=0;K.subscribe(F8(N,function(L){var k=M++;F=U?$(F,L,k):(U=!0,L),N.next(F)},q))}}function OU($,Y){return A5(s30($,Y,arguments.length>=2,!0))}function l30($){$===void 0&&($={});var Y=$.connector,G=Y===void 0?function(){return new YX}:Y,H=$.resetOnError,q=H===void 0?!0:H,K=$.resetOnComplete,N=K===void 0?!0:K,U=$.resetOnRefCountZero,F=U===void 0?!0:U;return function(M){var L,k,R,_=0,S=!1,T=!1,y=function(){k==null||k.unsubscribe(),k=void 0},g=function(){y(),L=R=void 0,S=T=!1},o=function(){var c=L;g(),c==null||c.unsubscribe()};return A5(function(c,C){_++,!T&&!S&&y();var I=R=R??G();C.add(function(){_--,_===0&&!T&&!S&&(k=KU(o,F))}),I.subscribe(C),!L&&_>0&&(L=new FH({next:function(p){return I.next(p)},error:function(p){T=!0,y(),k=KU(g,q,p),I.error(p)},complete:function(){S=!0,y(),k=KU(g,N),I.complete()}}),M8(c).subscribe(L))})(M)}}function KU($,Y){for(var G=[],H=2;H<arguments.length;H++)G[H-2]=arguments[H];if(Y===!0){$();return}if(Y!==!1){var q=new FH({next:function(){q.unsubscribe(),$()}});return M8(Y.apply(void 0,UH([],WH(G)))).subscribe(q)}}function O8(){for(var $=[],Y=0;Y<arguments.length;Y++)$[Y]=arguments[Y];var G=Oe($);return A5(function(H,q){(G?He($,H,G):He($,H)).subscribe(q)})}function ze($){return A5(function(Y,G){M8($).subscribe(F8(G,function(){return G.complete()},MU)),!G.closed&&Y.subscribe(G)})}function c30($,Y,G){var H=U2($)||Y||G?{next:$,error:Y,complete:G}:$;return H?A5(function(q,K){var N;(N=H.subscribe)===null||N===void 0||N.call(H);var U=!0;q.subscribe(F8(K,function(F){var M;(M=H.next)===null||M===void 0||M.call(H,F),K.next(F)},function(){var F;U=!1,(F=H.complete)===null||F===void 0||F.call(H),K.complete()},function(F){var M;U=!1,(M=H.error)===null||M===void 0||M.call(H,F),K.error(F)},function(){var F,M;U&&((F=H.unsubscribe)===null||F===void 0||F.call(H)),(M=H.finalize)===null||M===void 0||M.call(H)}))}):RU}var{defineProperty:i30,defineProperties:o30,getOwnPropertyDescriptors:r30,getOwnPropertySymbols:qe}=Object,n30=Object.prototype.hasOwnProperty,a30=Object.prototype.propertyIsEnumerable,Be=($,Y,G)=>(Y in $)?i30($,Y,{enumerable:!0,configurable:!0,writable:!0,value:G}):$[Y]=G,U8=($,Y)=>{for(var G in Y||(Y={}))n30.call(Y,G)&&Be($,G,Y[G]);if(qe)for(var G of qe(Y))a30.call(Y,G)&&Be($,G,Y[G]);return $},_7=($,Y)=>o30($,r30(Y)),MH=($,Y,G)=>new Promise((H,q)=>{var K=(F)=>{try{U(G.next(F))}catch(M){q(M)}},N=(F)=>{try{U(G.throw(F))}catch(M){q(M)}},U=(F)=>F.done?H(F.value):Promise.resolve(F.value).then(K,N);U((G=G.apply($,Y)).next())}),je="lk";function kH($){return typeof $>"u"?!1:t30($)||e30($)}function t30($){var Y;return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&$.hasOwnProperty("track")&&typeof((Y=$.publication)==null?void 0:Y.track)<"u":!1}function e30($){return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&$.hasOwnProperty("publication")&&typeof $.publication<"u":!1}function XX0($){return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&typeof $.publication>"u":!1}function dB($){if(typeof $=="string"||typeof $=="number")return`${$}`;if(XX0($))return`${$.participant.identity}_${$.source}_placeholder`;if(kH($))return`${$.participant.identity}_${$.publication.source}_${$.publication.trackSid}`;throw Error(`Can't generate a id for the given track reference: ${$}`)}var $X0=[t.ConnectionStateChanged,t.RoomMetadataChanged,t.ActiveSpeakersChanged,t.ConnectionQualityChanged,t.ParticipantConnected,t.ParticipantDisconnected,t.ParticipantPermissionsChanged,t.ParticipantMetadataChanged,t.ParticipantNameChanged,t.ParticipantAttributesChanged,t.TrackMuted,t.TrackUnmuted,t.TrackPublished,t.TrackUnpublished,t.TrackStreamStateChanged,t.TrackSubscriptionFailed,t.TrackSubscriptionPermissionChanged,t.TrackSubscriptionStatusChanged],pe=[...$X0,t.LocalTrackPublished,t.LocalTrackUnpublished],ZX0=[Q0.TrackPublished,Q0.TrackUnpublished,Q0.TrackMuted,Q0.TrackUnmuted,Q0.TrackStreamStateChanged,Q0.TrackSubscribed,Q0.TrackUnsubscribed,Q0.TrackSubscriptionPermissionChanged,Q0.TrackSubscriptionFailed,Q0.LocalTrackPublished,Q0.LocalTrackUnpublished],YX0=[Q0.ConnectionQualityChanged,Q0.IsSpeakingChanged,Q0.ParticipantMetadataChanged,Q0.ParticipantPermissionsChanged,Q0.TrackMuted,Q0.TrackUnmuted,Q0.TrackPublished,Q0.TrackUnpublished,Q0.TrackStreamStateChanged,Q0.TrackSubscriptionFailed,Q0.TrackSubscriptionPermissionChanged,Q0.TrackSubscriptionStatusChanged],cZ0=[...YX0,Q0.LocalTrackPublished,Q0.LocalTrackUnpublished],j1=H30.getLogger("lk-components-js");j1.setDefaultLevel("WARN");function fe($,Y){var G;return _7(U8({},$),{receivedAtMediaTimestamp:(G=Y.rtpTimestamp)!=null?G:0,receivedAt:Y.timestamp})}function ge($,Y,G){return[...$,...Y].reduceRight((H,q)=>(H.find((K)=>K.id===q.id)||H.unshift(q),H),[]).slice(0-G)}var QX=(($)=>($.AgentState="lk.agent.state",$.PublishOnBehalf="lk.publish_on_behalf",$.TranscriptionFinal="lk.transcription_final",$.TranscriptionSegmentId="lk.segment_id",$.TranscribedTrackId="lk.transcribed_track_id",$))(QX||{});function xU($){return typeof $=="object"}function VU($){return Array.isArray($)&&$.filter(xU).length>0}function QX0($){return`${je}-${$}`}function _U($){let Y=OH($),G=IU($.participant).pipe(I4(()=>OH($)),O8(Y));return{className:QX0($.source===e.Source.Camera||$.source===e.Source.ScreenShare?"participant-media-video":"participant-media-audio"),trackObserver:G}}function OH($){if(kH($))return $.publication;{let{source:Y,name:G,participant:H}=$;if(Y&&G)return H.getTrackPublications().find((q)=>q.source===Y&&q.trackName===G);if(G)return H.getTrackPublicationByName(G);if(Y)return H.getTrackPublication(Y);throw Error("At least one of source and name needs to be defined")}}function me($,...Y){return new L2((G)=>{let H=()=>{G.next($)};return Y.forEach((q)=>{$.on(q,H)}),()=>{Y.forEach((q)=>{$.off(q,H)})}}).pipe(O8($))}function ye($,Y){return new L2((G)=>{let H=(...q)=>{G.next(q)};return $.on(Y,H),()=>{$.off(Y,H)}})}function be($){return ye($,t.ConnectionStateChanged).pipe(I4(([Y])=>Y),O8($.state))}function GX0($){return ye($,t.DataReceived)}function he($,...Y){return new L2((G)=>{let H=()=>{G.next($)};return Y.forEach((q)=>{$.on(q,H)}),()=>{Y.forEach((q)=>{$.off(q,H)})}}).pipe(O8($))}function IU($){return he($,Q0.TrackMuted,Q0.TrackUnmuted,Q0.ParticipantPermissionsChanged,Q0.TrackPublished,Q0.TrackUnpublished,Q0.LocalTrackPublished,Q0.LocalTrackUnpublished,Q0.MediaDevicesError,Q0.TrackSubscriptionStatusChanged).pipe(I4((Y)=>{let{isMicrophoneEnabled:G,isCameraEnabled:H,isScreenShareEnabled:q}=Y,K=Y.getTrackPublication(e.Source.Microphone),N=Y.getTrackPublication(e.Source.Camera);return{isCameraEnabled:H,isMicrophoneEnabled:G,isScreenShareEnabled:q,cameraTrack:N,microphoneTrack:K,participant:Y}}))}function HX0($,Y){return new L2((G)=>{let H=(...q)=>{G.next(q)};return $.on(Y,H),()=>{$.off(Y,H)}})}function ue($,Y={}){var G;let H,q=new L2((F)=>(H=F,()=>U.unsubscribe())).pipe(O8(Array.from($.remoteParticipants.values()))),K=(G=Y.additionalRoomEvents)!=null?G:pe,N=Array.from(new Set([t.ParticipantConnected,t.ParticipantDisconnected,t.ConnectionStateChanged,...K])),U=me($,...N).subscribe((F)=>H==null?void 0:H.next(Array.from(F.remoteParticipants.values())));return $.remoteParticipants.size>0&&(H==null||H.next(Array.from($.remoteParticipants.values()))),q}function CU($){return typeof $>"u"?new L2:HX0($,Q0.AttributesChanged).pipe(I4(([Y])=>({changed:Y,attributes:$.attributes})),O8({changed:$.attributes,attributes:$.attributes}))}var TU={CHAT:"lk.chat",TRANSCRIPTION:"lk.transcription"},zX0={CHAT:"lk-chat-topic"};function de($,Y){return MH(this,arguments,function*(G,H,q={}){let{reliable:K,destinationIdentities:N,topic:U}=q;yield G.publishData(H,{destinationIdentities:N,topic:U,reliable:K})})}function se($,Y,G){let H=Array.isArray(Y)?Y:[Y],q=GX0($).pipe(ve(([,,,U])=>Y===void 0||U!==void 0&&H.includes(U)),I4(([U,F,,M])=>{let L={payload:U,topic:M,from:F};return G==null||G(L),L})),K,N=new L2((U)=>{K=U});return{messageObservable:q,isSendingObservable:N,send:(U,...F)=>MH(this,[U,...F],function*(M,L={}){K.next(!0);try{yield de($.localParticipant,M,U8({topic:H[0]},L))}finally{K.next(!1)}})}}var bB=new WeakMap;function qX0($){return $.ignoreLegacy==!0}var BX0=($)=>JSON.parse(new TextDecoder().decode($)),JX0=($)=>new TextEncoder().encode(JSON.stringify($));function le($,Y){var G,H,q,K,N,U;let F=()=>{var I,p,l;return((I=$.serverInfo)==null?void 0:I.edition)===1||!!((p=$.serverInfo)!=null&&p.version)&&Y4((l=$.serverInfo)==null?void 0:l.version,"1.8.2")>0},M=new YX,L=(G=Y==null?void 0:Y.channelTopic)!=null?G:TU.CHAT,k=(H=Y==null?void 0:Y.channelTopic)!=null?H:zX0.CHAT,R=!1;bB.has($)||(R=!0);let _=(q=bB.get($))!=null?q:new Map,S=(K=_.get(L))!=null?K:new YX;_.set(L,S),bB.set($,_);let T=(N=Y==null?void 0:Y.messageDecoder)!=null?N:BX0;if(R){$.registerTextStreamHandler(L,(p,l)=>MH(this,null,function*(){let{id:f,timestamp:n}=p.info;wU(p).pipe(OU((u,X0)=>u+X0),I4((u)=>({id:f,timestamp:n,message:u,from:$.getParticipantByIdentity(l.identity),type:"chatMessage"}))).subscribe({next:(u)=>S.next(u)})}));let{messageObservable:I}=se($,[k]);I.pipe(I4((p)=>{let l=T(p.payload);return qX0(l)?void 0:_7(U8({},l),{type:"chatMessage",from:p.from})}),ve((p)=>!!p),ze(M)).subscribe(S)}let y=S.pipe(OU((I,p)=>{if("id"in p&&I.find((l)=>{var f,n;return((f=l.from)==null?void 0:f.identity)===((n=p.from)==null?void 0:n.identity)&&l.id===p.id})){let l=I.findIndex((f)=>f.id===p.id);if(l>-1){let f=I[l];I[l]=_7(U8({},p),{timestamp:f.timestamp,editTimestamp:p.timestamp})}return[...I]}return[...I,p]},[]),ze(M)),g=new k30(!1),o=(U=Y==null?void 0:Y.messageEncoder)!=null?U:JX0,c=(I,p)=>MH(this,null,function*(){var l;p||(p={}),(l=p.topic)!=null||(p.topic=L),g.next(!0);try{let f={id:(yield $.localParticipant.sendText(I,p)).id,timestamp:Date.now(),message:I},n=_7(U8({},f),{attachedFiles:p.attachments}),u=_7(U8({},n),{type:"chatMessage",from:$.localParticipant,attributes:p.attributes});S.next(u);let X0=o(_7(U8({},f),{ignoreLegacy:F()}));try{yield de($.localParticipant,X0,{reliable:!0,topic:k})}catch(Y0){j1.info("could not send message in legacy chat format",Y0)}return u}finally{g.next(!1)}});function C(){M.next(),M.complete(),S.complete(),bB.delete($),$.unregisterTextStreamHandler(L)}return $.once(t.Disconnected,C),{messageObservable:y,isSendingObservable:g,send:c}}function ce(){return{className:"lk-room-container"}}function Je($,Y,G=!0){let H=[$.localParticipant,...Array.from($.remoteParticipants.values())],q=[];return H.forEach((K)=>{Y.forEach((N)=>{let U=Array.from(K.trackPublications.values()).filter((F)=>F.source===N&&(!G||F.track)).map((F)=>({participant:K,publication:F,source:F.source}));q.push(...U)})}),{trackReferences:q,participants:H}}function Ae($,Y,G=!1){let{sources:H,kind:q,name:K}=Y;return Array.from($.trackPublications.values()).filter((N)=>(!H||H.includes(N.source))&&(!q||N.kind===q)&&(!K||N.trackName===K)&&(!G||N.track)).map((N)=>({participant:$,publication:N,source:N.source}))}function ie($,Y,G){var H,q;let K=(H=G.additionalRoomEvents)!=null?H:pe,N=(q=G.onlySubscribed)!=null?q:!0,U=Array.from(new Set([t.ParticipantConnected,t.ParticipantDisconnected,t.ConnectionStateChanged,t.LocalTrackPublished,t.LocalTrackUnpublished,t.TrackPublished,t.TrackUnpublished,t.TrackSubscriptionStatusChanged,...K]).values());return me($,...U).pipe(I4((F)=>{let M=Je(F,Y,N);return j1.debug(`TrackReference[] was updated. (length ${M.trackReferences.length})`,M),M}),O8(Je($,Y,N)))}function oe($,Y){return he($,...ZX0).pipe(I4((G)=>{let H=Ae(G,Y);return j1.debug(`TrackReference[] was updated. (length ${H.length})`,H),H}),O8(Ae($,Y)))}function re($,Y){return new L2((G)=>{let H=(...q)=>{G.next(q)};return $.on(Y,H),()=>{$.off(Y,H)}})}function ne($){return re($,B0.TranscriptionReceived)}function ae($){return re($,B0.TimeSyncUpdate).pipe(I4(([Y])=>Y))}function AX0($,Y){if(typeof localStorage>"u"){j1.error("Local storage is not available.");return}try{if(Y){let G=Object.fromEntries(Object.entries(Y).filter(([,H])=>H!==""));localStorage.setItem($,JSON.stringify(G))}}catch(G){j1.error(`Error setting item to local storage: ${G}`)}}function KX0($){if(typeof localStorage>"u"){j1.error("Local storage is not available.");return}try{let Y=localStorage.getItem($);if(!Y){j1.warn(`Item with key ${$} does not exist in local storage.`);return}return JSON.parse(Y)}catch(Y){j1.error(`Error getting item from local storage: ${Y}`);return}}function NX0($){return{load:()=>KX0($),save:(Y)=>AX0($,Y)}}var WX0=`${je}-user-choices`;var{load:iZ0,save:oZ0}=NX0(WX0);var NU=null,WU=null,UX0=0;function Ke(){return NU||(NU=new Map),NU}function FX0(){return WU||(WU=new WeakMap),WU}function MX0($,Y){let G=FX0(),H=G.get($);return H||(H=`room_${UX0++}`,G.set($,H)),`${H}:${Y}`}function te($,Y){let G=MX0($,Y),H=Ke(),q=H.get(G);if(q)return q;let K=new YX,N=[],U="lk.segment_id",F=K.pipe(c30({subscribe:()=>{$.registerTextStreamHandler(Y,(M,L)=>MH(this,null,function*(){var k;let R=wU(M).pipe(OU((S,T)=>S+T,"")),_=!!((k=M.info.attributes)!=null&&k[U]);R.subscribe((S)=>{let T=N.findIndex((y)=>{var g,o;return y.streamInfo.id===M.info.id||_&&((g=y.streamInfo.attributes)==null?void 0:g[U])===((o=M.info.attributes)==null?void 0:o[U])});T!==-1?(N[T]=_7(U8({},N[T]),{text:S}),K.next([...N])):(N.push({text:S,participantInfo:L,streamInfo:M.info}),K.next([...N]))})}))},finalize:()=>{$.unregisterTextStreamHandler(Y)}}),l30());return H.set(G,F),$.on(t.Disconnected,()=>{Ke().delete(G),N=[],K.next([])}),F}var OX0=Q4.createContext(void 0);var ee=Q4.createContext(void 0);function X00(){return Q4.useContext(ee)}function EU($){let Y=X00(),G=$??Y;if(!G)throw Error("No TrackRef, make sure you are inside a TrackRefContext or pass the TrackRef explicitly");return G}var $00=Q4.createContext(void 0);function sB(){return Q4.useContext($00)}var lB=Q4.createContext(void 0);function DU(){return Q4.useContext(lB)}function P8($){let Y=DU(),G=$??Y;if(!G)throw Error("No room provided, make sure you are inside a Room context or pass the room explicitly");return G}var PX0=Q4.createContext(void 0);var Z00=Q4.createContext(void 0);var F2=B(W1(),1);function Y00($){var Y,G,H="";if(typeof $=="string"||typeof $=="number")H+=$;else if(typeof $=="object")if(Array.isArray($)){var q=$.length;for(Y=0;Y<q;Y++)$[Y]&&(G=Y00($[Y]))&&(H&&(H+=" "),H+=G)}else for(G in $)$[G]&&(H&&(H+=" "),H+=G);return H}function LX0(){for(var $,Y,G=0,H="",q=arguments.length;G<q;G++)($=arguments[G])&&(Y=Y00($))&&(H&&(H+=" "),H+=Y);return H}function kX0(...$){return(...Y)=>{for(let G of $)if(typeof G=="function")try{G(...Y)}catch(H){console.error(H)}}}function Q00(...$){let Y={...$[0]};for(let G=1;G<$.length;G++){let H=$[G];for(let q in H){let K=Y[q],N=H[q];typeof K=="function"&&typeof N=="function"&&q[0]==="o"&&q[1]==="n"&&q.charCodeAt(2)>=65&&q.charCodeAt(2)<=90?Y[q]=kX0(K,N):(q==="className"||q==="UNSAFE_className")&&typeof K=="string"&&typeof N=="string"?Y[q]=LX0(K,N):Y[q]=N!==void 0?N:K}}return Y}function RX0($){return $!==void 0}function G00(...$){return Q00(...$.filter(RX0))}function wX0($,Y){return $==="processor"&&Y&&typeof Y=="object"&&"name"in Y?Y.name:$==="e2ee"&&Y?"e2ee-enabled":Y}var xX0={connect:!0,audio:!1,video:!1};function H00($){let{token:Y,serverUrl:G,options:H,room:q,connectOptions:K,connect:N,audio:U,video:F,screen:M,onConnected:L,onDisconnected:k,onError:R,onMediaDeviceFailure:_,onEncryptionError:S,simulateParticipants:T,...y}={...xX0,...$};H&&q&&j1.warn("when using a manually created room, the options object will be ignored. set the desired options directly when creating the room instead.");let[g,o]=F2.useState(),c=F2.useRef(N);F2.useEffect(()=>{o(q??new r5(H))},[q,JSON.stringify(H,wX0)]);let C=F2.useMemo(()=>{let{className:I}=ce();return Q00(y,{className:I})},[y]);return F2.useEffect(()=>{if(!g)return;let I=()=>{let u=g.localParticipant;j1.debug("trying to publish local tracks"),Promise.all([u.setMicrophoneEnabled(!!U,typeof U!="boolean"?U:void 0),u.setCameraEnabled(!!F,typeof F!="boolean"?F:void 0),u.setScreenShareEnabled(!!M,typeof M!="boolean"?M:void 0)]).catch((X0)=>{j1.warn(X0),R==null||R(X0)})},p=(u,X0)=>{let Y0=e3.getFailure(u);_==null||_(Y0,X0)},l=(u)=>{S==null||S(u)},f=(u)=>{k==null||k(u)},n=()=>{L==null||L()};return g.on(t.SignalConnected,I).on(t.MediaDevicesError,p).on(t.EncryptionError,l).on(t.Disconnected,f).on(t.Connected,n),()=>{g.off(t.SignalConnected,I).off(t.MediaDevicesError,p).off(t.EncryptionError,l).off(t.Disconnected,f).off(t.Connected,n)}},[g,U,F,M,R,S,_,L,k]),F2.useEffect(()=>{if(g){if(T){g.simulateParticipants({participants:{count:T},publish:{audio:!0,useRealTracks:!0}});return}if(N){if(c.current=!0,j1.debug("connecting"),!Y){j1.debug("no token yet");return}if(!G){j1.warn("no livekit url provided"),R==null||R(Error("no livekit url provided"));return}g.connect(G,Y,K).catch((I)=>{j1.warn(I),c.current===!0&&(R==null||R(I))})}else j1.debug("disconnecting because connect is false"),c.current=!1,g.disconnect()}},[N,Y,JSON.stringify(K),g,R,G,T]),F2.useEffect(()=>{if(g)return()=>{j1.info("disconnecting on onmount"),g.disconnect()}},[g]),{room:g,htmlProps:C}}var SU=F2.forwardRef(function($,Y){let{room:G,htmlProps:H}=H00($);return F2.createElement("div",{ref:Y,...H},G&&F2.createElement(lB.Provider,{value:G},F2.createElement(Z00.Provider,{value:$.featureFlags},$.children)))});function L8($,Y,G=!0){let[H,q]=z1.useState(Y);return z1.useEffect(()=>{if(G&&q(Y),typeof window>"u"||!$)return;let K=$.subscribe(q);return()=>K.unsubscribe()},[$,G]),H}function C7($){let Y=P8($),G=z1.useMemo(()=>be(Y),[Y]);return L8(G,Y.state)}function K5($={}){let Y=P8($.room),[G,H]=z1.useState(Y.localParticipant),[q,K]=z1.useState(G.isMicrophoneEnabled),[N,U]=z1.useState(G.isCameraEnabled),[F,M]=z1.useState(G.isScreenShareEnabled),[L,k]=z1.useState(G.lastMicrophoneError),[R,_]=z1.useState(G.lastCameraError),[S,T]=z1.useState(void 0),[y,g]=z1.useState(void 0),o=(c)=>{U(c.isCameraEnabled),K(c.isMicrophoneEnabled),M(c.isScreenShareEnabled),g(c.cameraTrack),T(c.microphoneTrack),k(c.participant.lastMicrophoneError),_(c.participant.lastCameraError),H(c.participant)};return z1.useEffect(()=>{let c=IU(Y.localParticipant).subscribe(o);return()=>c.unsubscribe()},[Y]),{isMicrophoneEnabled:q,isScreenShareEnabled:F,isCameraEnabled:N,microphoneTrack:S,cameraTrack:y,lastMicrophoneError:L,lastCameraError:R,localParticipant:G}}function RH($={}){let Y=P8($.room),[G,H]=z1.useState([]);return z1.useEffect(()=>{let q=ue(Y,{additionalRoomEvents:$.updateOnlyOn}).subscribe(H);return()=>q.unsubscribe()},[Y,JSON.stringify($.updateOnlyOn)]),G}function B00($={}){let Y=RH($),{localParticipant:G}=K5($);return z1.useMemo(()=>[G,...Y],[G,Y])}function jU($=[e.Source.Camera,e.Source.Microphone,e.Source.ScreenShare,e.Source.ScreenShareAudio,e.Source.Unknown],Y={}){let G=P8(Y.room),[H,q]=z1.useState([]),[K,N]=z1.useState([]),U=z1.useMemo(()=>$.map((F)=>xU(F)?F.source:F),[JSON.stringify($)]);return z1.useEffect(()=>{let F=ie(G,U,{additionalRoomEvents:Y.updateOnlyOn,onlySubscribed:Y.onlySubscribed}).subscribe(({trackReferences:M,participants:L})=>{j1.debug("setting track bundles",M,L),q(M),N(L)});return()=>F.unsubscribe()},[G,JSON.stringify(Y.onlySubscribed),JSON.stringify(Y.updateOnlyOn),JSON.stringify($)]),z1.useMemo(()=>{if(VU($)){let F=EX0($,K),M=Array.from(H);return K.forEach((L)=>{F.has(L.identity)&&(F.get(L.identity)??[]).forEach((k)=>{if(H.find(({participant:_,publication:S})=>L.identity===_.identity&&S.source===k))return;j1.debug(`Add ${k} placeholder for participant ${L.identity}.`);let R={participant:L,source:k};M.push(R)})}),M}else return H},[H,K,$])}function TX0($,Y){let G=new Set($);for(let H of Y)G.delete(H);return G}function EX0($,Y){let G=new Map;if(VU($)){let H=$.filter((q)=>q.withPlaceholder).map((q)=>q.source);Y.forEach((q)=>{let K=q.getTrackPublications().map((U)=>{var F;return(F=U.track)==null?void 0:F.source}).filter((U)=>U!==void 0),N=Array.from(TX0(new Set(H),new Set(K)));N.length>0&&G.set(q.identity,N)})}return G}function pU($){let Y=P8($==null?void 0:$.room),G=C7(Y),H=z1.useMemo(()=>G===n0.Disconnected,[G]),q=z1.useMemo(()=>le(Y,$),[Y,$,H]),K=L8(q.isSendingObservable,!1),N=L8(q.messageObservable,[]);return{send:q.send,chatMessages:N,isSending:K}}function vU($,Y={}){let G,H;typeof Y=="string"?G=Y:(G=Y==null?void 0:Y.participantIdentity,H=Y==null?void 0:Y.room);let q=sB(),K=B00({room:H,updateOnlyOn:[]}),N=z1.useMemo(()=>G?K.find((F)=>F.identity===G):q,[G,K,q]),U=z1.useMemo(()=>{if(N)return oe(N,{sources:$})},[N,JSON.stringify($)]);return L8(U,[])}function DX0($){var Y,G,H;let q=z1.useMemo(()=>{var K;return(K=$==null?void 0:$.publication)!=null&&K.track?ae($==null?void 0:$.publication.track):void 0},[(Y=$==null?void 0:$.publication)==null?void 0:Y.track]);return L8(q,{timestamp:Date.now(),rtpTimestamp:(H=(G=$==null?void 0:$.publication)==null?void 0:G.track)==null?void 0:H.rtpTimestamp})}var SX0={bufferSize:100};function J00($,Y){let G={...SX0,...Y},[H,q]=z1.useState([]),K=DX0($),N=(U)=>{var F;(F=G.onTranscription)==null||F.call(G,U),q((M)=>ge(M,U.map((L)=>fe(L,K)),G.bufferSize))};return z1.useEffect(()=>{if(!($!=null&&$.publication))return;let U=ne($.publication).subscribe((F)=>{N(...F)});return()=>{U.unsubscribe()}},[$&&dB($),N]),{segments:H}}function A00($={}){let Y=sB(),G=$.participant??Y,H=z1.useMemo(()=>G?CU(G):CU(G),[G]);return L8(H,{attributes:G==null?void 0:G.attributes})}var z00=QX.AgentState;function wH(){let $=RH(),Y=$.find((k)=>k.kind===K8.AGENT&&!(QX.PublishOnBehalf in k.attributes)),G=$.find((k)=>k.kind===K8.AGENT&&k.attributes[QX.PublishOnBehalf]===(Y==null?void 0:Y.identity)),H=vU([e.Source.Microphone,e.Source.Camera],Y==null?void 0:Y.identity),q=vU([e.Source.Microphone,e.Source.Camera],G==null?void 0:G.identity),K=H.find((k)=>k.source===e.Source.Microphone)??q.find((k)=>k.source===e.Source.Microphone),N=H.find((k)=>k.source===e.Source.Camera)??q.find((k)=>k.source===e.Source.Camera),{segments:U}=J00(K),F=C7(),{attributes:M}=A00({participant:Y}),L=z1.useMemo(()=>F===n0.Disconnected?"disconnected":F===n0.Connecting||!Y||!(M!=null&&M[z00])?"connecting":M[z00],[M,Y,F]);return{agent:Y,state:L,audioTrack:K,videoTrack:N,agentTranscriptions:U,agentAttributes:M}}function K00($,Y){let G=P8(Y==null?void 0:Y.room),H=C7(G)===n0.Disconnected,q=z1.useMemo(()=>te(G,$),[G,$]);return{textStreams:L8(H?void 0:q,[])}}function fU($){let{participantIdentities:Y,trackSids:G}=$??{},{textStreams:H}=K00(TU.TRANSCRIPTION,{room:$==null?void 0:$.room});return z1.useMemo(()=>H.filter((q)=>Y?Y.includes(q.participantInfo.identity):!0).filter((q)=>{var K;return G?G.includes(((K=q.streamInfo.attributes)==null?void 0:K[QX.TranscribedTrackId])??""):!0}),[H,Y,G])}var cB={exports:{}},q00;function vX0(){if(q00)return cB.exports;q00=1;var $=typeof Reflect=="object"?Reflect:null,Y=$&&typeof $.apply=="function"?$.apply:function(C,I,p){return Function.prototype.apply.call(C,I,p)},G;$&&typeof $.ownKeys=="function"?G=$.ownKeys:Object.getOwnPropertySymbols?G=function(C){return Object.getOwnPropertyNames(C).concat(Object.getOwnPropertySymbols(C))}:G=function(C){return Object.getOwnPropertyNames(C)};function H(C){console&&console.warn&&console.warn(C)}var q=Number.isNaN||function(C){return C!==C};function K(){K.init.call(this)}cB.exports=K,cB.exports.once=g,K.EventEmitter=K,K.prototype._events=void 0,K.prototype._eventsCount=0,K.prototype._maxListeners=void 0;var N=10;function U(C){if(typeof C!="function")throw TypeError('The "listener" argument must be of type Function. Received type '+typeof C)}Object.defineProperty(K,"defaultMaxListeners",{enumerable:!0,get:function(){return N},set:function(C){if(typeof C!="number"||C<0||q(C))throw RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+C+".");N=C}}),K.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},K.prototype.setMaxListeners=function(C){if(typeof C!="number"||C<0||q(C))throw RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+C+".");return this._maxListeners=C,this};function F(C){return C._maxListeners===void 0?K.defaultMaxListeners:C._maxListeners}K.prototype.getMaxListeners=function(){return F(this)},K.prototype.emit=function(C){for(var I=[],p=1;p<arguments.length;p++)I.push(arguments[p]);var l=C==="error",f=this._events;if(f!==void 0)l=l&&f.error===void 0;else if(!l)return!1;if(l){var n;if(I.length>0&&(n=I[0]),n instanceof Error)throw n;var u=Error("Unhandled error."+(n?" ("+n.message+")":""));throw u.context=n,u}var X0=f[C];if(X0===void 0)return!1;if(typeof X0=="function")Y(X0,this,I);else for(var Y0=X0.length,M0=S(X0,Y0),p=0;p<Y0;++p)Y(M0[p],this,I);return!0};function M(C,I,p,l){var f,n,u;if(U(p),n=C._events,n===void 0?(n=C._events=Object.create(null),C._eventsCount=0):(n.newListener!==void 0&&(C.emit("newListener",I,p.listener?p.listener:p),n=C._events),u=n[I]),u===void 0)u=n[I]=p,++C._eventsCount;else if(typeof u=="function"?u=n[I]=l?[p,u]:[u,p]:l?u.unshift(p):u.push(p),f=F(C),f>0&&u.length>f&&!u.warned){u.warned=!0;var X0=Error("Possible EventEmitter memory leak detected. "+u.length+" "+String(I)+" listeners added. Use emitter.setMaxListeners() to increase limit");X0.name="MaxListenersExceededWarning",X0.emitter=C,X0.type=I,X0.count=u.length,H(X0)}return C}K.prototype.addListener=function(C,I){return M(this,C,I,!1)},K.prototype.on=K.prototype.addListener,K.prototype.prependListener=function(C,I){return M(this,C,I,!0)};function L(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function k(C,I,p){var l={fired:!1,wrapFn:void 0,target:C,type:I,listener:p},f=L.bind(l);return f.listener=p,l.wrapFn=f,f}K.prototype.once=function(C,I){return U(I),this.on(C,k(this,C,I)),this},K.prototype.prependOnceListener=function(C,I){return U(I),this.prependListener(C,k(this,C,I)),this},K.prototype.removeListener=function(C,I){var p,l,f,n,u;if(U(I),l=this._events,l===void 0)return this;if(p=l[C],p===void 0)return this;if(p===I||p.listener===I)--this._eventsCount===0?this._events=Object.create(null):(delete l[C],l.removeListener&&this.emit("removeListener",C,p.listener||I));else if(typeof p!="function"){for(f=-1,n=p.length-1;n>=0;n--)if(p[n]===I||p[n].listener===I){u=p[n].listener,f=n;break}if(f<0)return this;f===0?p.shift():T(p,f),p.length===1&&(l[C]=p[0]),l.removeListener!==void 0&&this.emit("removeListener",C,u||I)}return this},K.prototype.off=K.prototype.removeListener,K.prototype.removeAllListeners=function(C){var I,p,l;if(p=this._events,p===void 0)return this;if(p.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):p[C]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete p[C]),this;if(arguments.length===0){var f=Object.keys(p),n;for(l=0;l<f.length;++l)n=f[l],n!=="removeListener"&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(I=p[C],typeof I=="function")this.removeListener(C,I);else if(I!==void 0)for(l=I.length-1;l>=0;l--)this.removeListener(C,I[l]);return this};function R(C,I,p){var l=C._events;if(l===void 0)return[];var f=l[I];return f===void 0?[]:typeof f=="function"?p?[f.listener||f]:[f]:p?y(f):S(f,f.length)}K.prototype.listeners=function(C){return R(this,C,!0)},K.prototype.rawListeners=function(C){return R(this,C,!1)},K.listenerCount=function(C,I){return typeof C.listenerCount=="function"?C.listenerCount(I):_.call(C,I)},K.prototype.listenerCount=_;function _(C){var I=this._events;if(I!==void 0){var p=I[C];if(typeof p=="function")return 1;if(p!==void 0)return p.length}return 0}K.prototype.eventNames=function(){return this._eventsCount>0?G(this._events):[]};function S(C,I){for(var p=Array(I),l=0;l<I;++l)p[l]=C[l];return p}function T(C,I){for(;I+1<C.length;I++)C[I]=C[I+1];C.pop()}function y(C){for(var I=Array(C.length),p=0;p<I.length;++p)I[p]=C[p].listener||C[p];return I}function g(C,I){return new Promise(function(p,l){function f(u){C.removeListener(I,n),l(u)}function n(){typeof C.removeListener=="function"&&C.removeListener("error",f),p([].slice.call(arguments))}c(C,I,n,{once:!0}),I!=="error"&&o(C,f,{once:!0})})}function o(C,I,p){typeof C.on=="function"&&c(C,"error",I,p)}function c(C,I,p,l){if(typeof C.on=="function")l.once?C.once(I,p):C.on(I,p);else if(typeof C.addEventListener=="function")C.addEventListener(I,function f(n){l.once&&C.removeEventListener(I,f),p(n)});else throw TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof C)}return cB.exports}var bY0=vX0();var M1=B(W1(),1),oB=B(W1(),1);function tX0($,Y={}){let[G,H]=M1.useState(OH($)),[q,K]=M1.useState(G==null?void 0:G.isMuted),[N,U]=M1.useState(G==null?void 0:G.isSubscribed),[F,M]=M1.useState(G==null?void 0:G.track),[L,k]=M1.useState("landscape"),R=M1.useRef(),{className:_,trackObserver:S}=M1.useMemo(()=>_U($),[$.participant.sid??$.participant.identity,$.source,kH($)&&$.publication.trackSid]);return M1.useEffect(()=>{let T=S.subscribe((y)=>{j1.debug("update track",y),H(y),K(y==null?void 0:y.isMuted),U(y==null?void 0:y.isSubscribed),M(y==null?void 0:y.track)});return()=>T==null?void 0:T.unsubscribe()},[S]),M1.useEffect(()=>{var T,y;return F&&(R.current&&F.detach(R.current),(T=Y.element)!=null&&T.current&&!($.participant.isLocal&&(F==null?void 0:F.kind)==="audio")&&F.attach(Y.element.current)),R.current=(y=Y.element)==null?void 0:y.current,()=>{R.current&&(F==null||F.detach(R.current))}},[F,Y.element]),M1.useEffect(()=>{var T,y;if(typeof((T=G==null?void 0:G.dimensions)==null?void 0:T.width)=="number"&&typeof((y=G==null?void 0:G.dimensions)==null?void 0:y.height)=="number"){let g=G.dimensions.width>G.dimensions.height?"landscape":"portrait";k(g)}},[G]),{publication:G,isMuted:q,isSubscribed:N,track:F,elementProps:G00(Y.props,{className:_,"data-lk-local-participant":$.participant.isLocal,"data-lk-source":G==null?void 0:G.source,...(G==null?void 0:G.kind)==="video"&&{"data-lk-orientation":L}})}}var gU,N00;function eX0(){if(N00)return gU;N00=1;var $="Expected a function",Y=NaN,G="[object Symbol]",H=/^\s+|\s+$/g,q=/^[-+]0x[0-9a-f]+$/i,K=/^0b[01]+$/i,N=/^0o[0-7]+$/i,U=parseInt,F=typeof PH=="object"&&PH&&PH.Object===Object&&PH,M=typeof self=="object"&&self&&self.Object===Object&&self,L=F||M||Function("return this")(),k=Object.prototype,R=k.toString,_=Math.max,S=Math.min,T=function(){return L.Date.now()};function y(I,p,l){var f,n,u,X0,Y0,M0,y0=0,G0=!1,N0=!1,F0=!0;if(typeof I!="function")throw TypeError($);p=C(p)||0,g(l)&&(G0=!!l.leading,N0=("maxWait"in l),u=N0?_(C(l.maxWait)||0,p):u,F0=("trailing"in l)?!!l.trailing:F0);function J0(L0){var x1=f,i1=n;return f=n=void 0,y0=L0,X0=I.apply(i1,x1),X0}function e0(L0){return y0=L0,Y0=setTimeout(V0,p),G0?J0(L0):X0}function c1(L0){var x1=L0-M0,i1=L0-y0,q6=p-x1;return N0?S(q6,u-i1):q6}function Z0(L0){var x1=L0-M0,i1=L0-y0;return M0===void 0||x1>=p||x1<0||N0&&i1>=u}function V0(){var L0=T();if(Z0(L0))return I0(L0);Y0=setTimeout(V0,c1(L0))}function I0(L0){return Y0=void 0,F0&&f?J0(L0):(f=n=void 0,X0)}function C0(){Y0!==void 0&&clearTimeout(Y0),y0=0,f=M0=n=Y0=void 0}function f1(){return Y0===void 0?X0:I0(T())}function z6(){var L0=T(),x1=Z0(L0);if(f=arguments,n=this,M0=L0,x1){if(Y0===void 0)return e0(M0);if(N0)return Y0=setTimeout(V0,p),J0(M0)}return Y0===void 0&&(Y0=setTimeout(V0,p)),X0}return z6.cancel=C0,z6.flush=f1,z6}function g(I){var p=typeof I;return!!I&&(p=="object"||p=="function")}function o(I){return!!I&&typeof I=="object"}function c(I){return typeof I=="symbol"||o(I)&&R.call(I)==G}function C(I){if(typeof I=="number")return I;if(c(I))return Y;if(g(I)){var p=typeof I.valueOf=="function"?I.valueOf():I;I=g(p)?p+"":p}if(typeof I!="string")return I===0?I:+I;I=I.replace(H,"");var l=K.test(I);return l||N.test(I)?U(I.slice(2),l?2:8):q.test(I)?Y:+I}return gU=y,gU}var $Q0=eX0();var W00=M1.forwardRef(function({trackRef:$,onSubscriptionStatusChanged:Y,volume:G,...H},q){let K=EU($),N=M1.useRef(null);M1.useImperativeHandle(q,()=>N.current);let{elementProps:U,isSubscribed:F,track:M,publication:L}=tX0(K,{element:N,props:H});return M1.useEffect(()=>{Y==null||Y(!!F)},[F,Y]),M1.useEffect(()=>{M===void 0||G===void 0||(M instanceof fB?M.setVolume(G):j1.warn("Volume can only be set on remote audio tracks."))},[G,M]),M1.useEffect(()=>{L===void 0||H.muted===void 0||(L instanceof mB?L.setEnabled(!H.muted):j1.warn("Can only call setEnabled on remote track publications."))},[H.muted,L,M]),M1.createElement("audio",{ref:N,...U})});var X$0=1.6,ZQ0=(1-X$0)*-1;function mU({room:$,volume:Y,muted:G}){let H=jU([e.Source.Microphone,e.Source.ScreenShareAudio,e.Source.Unknown],{updateOnlyOn:[],onlySubscribed:!0,room:$}).filter((q)=>!q.participant.isLocal&&q.publication.kind===e.Kind.Audio);return M1.createElement("div",{style:{display:"none"}},H.map((q)=>M1.createElement(W00,{key:dB(q),trackRef:q,volume:Y,muted:G})))}var H6=B(W1(),1);var U00=B(W1(),1),rB=U00.createContext(null);var G4=B(W1(),1),yU="https://skipprapi-production.up.railway.app";function hU($){return`skippr_auth_${$}`}function $$0($){try{return localStorage.getItem(hU($))}catch{return null}}function Z$0($,Y){try{localStorage.setItem(hU($),Y)}catch(G){console.error("[Skippr] Failed to persist auth token:",G)}}function bU($){try{localStorage.removeItem(hU($))}catch(Y){console.error("[Skippr] Failed to clear auth token:",Y)}}function F00({appKey:$}){let[Y,G]=G4.useState(null),[H,q]=G4.useState(!1),[K,N]=G4.useState(!1),[U,F]=G4.useState(""),M=Y!==null;G4.useEffect(()=>{if(!$)return;let _=$$0($);if(!_)return;async function S(){q(!0);try{if((await fetch(`${yU}/v1/auth/validate-token`,{headers:{Authorization:`Bearer ${_}`}})).ok)G(_);else bU($)}catch{bU($)}finally{q(!1)}}S()},[$]),G4.useEffect(()=>{function _(){G(null),F("")}return window.addEventListener("skippr:logout",_),()=>window.removeEventListener("skippr:logout",_)},[]);let L=G4.useCallback(async(_)=>{if(!$)return!1;N(!0),F("");try{let S=await fetch(`${yU}/v1/auth/request-otp`,{method:"POST",headers:{"Content-Type":"application/json","X-App-Key":$},body:JSON.stringify({email:_})});if(!S.ok){let T=await S.json().catch(()=>({}));throw Error(T.detail||"Failed to send verification code")}return!0}catch(S){return F(S instanceof Error?S.message:"Failed to send verification code"),!1}finally{N(!1)}},[$]),k=G4.useCallback(async(_,S)=>{if(!$)return;N(!0),F("");try{let T=await fetch(`${yU}/v1/auth/verify-otp`,{method:"POST",headers:{"Content-Type":"application/json","X-App-Key":$},body:JSON.stringify({email:_,code:S,recaptchaToken:"sdk"})});if(!T.ok){let g=await T.json().catch(()=>({}));throw Error(g.detail||"Invalid or expired verification code")}let{token:y}=await T.json();Z$0($,y),G(y)}catch(T){F(T instanceof Error?T.message:"Verification failed");return}finally{N(!1)}},[$]),R=G4.useCallback(()=>{if($)bU($);G(null),F("")},[$]);return{isAuthenticated:M,isValidating:H,authToken:Y,requestOtp:L,verifyOtp:k,logout:R,error:U,isSubmitting:K}}var H4=B(W1(),1),nB="https://skipprapi-production.up.railway.app";async function Y$0($,Y){let G=await fetch(`${nB}/v1/auth/token-exchange`,{method:"POST",headers:{"X-App-Key":$,"X-User-Token":Y}});if(!G.ok)throw Error(`Token exchange failed: ${G.status}`);let{token:H}=await G.json();return H}function M00({agentId:$,authToken:Y,appKey:G,userToken:H}){let[q,K]=H4.useState(null),[N,U]=H4.useState(!1),[F,M]=H4.useState(!1),[L,k]=H4.useState(""),[R,_]=H4.useState(null),[S,T]=H4.useState(Y??null);H4.useEffect(()=>{let o=!1;if(Y){T(Y);return}if(G&&H)Y$0(G,H).then((c)=>{if(!o)T(c)}).catch((c)=>{if(!o)k(c instanceof Error?c.message:"Token exchange failed")});return()=>{o=!0}},[Y,G,H]);let y=H4.useCallback(async()=>{if(!S){k("No auth token available");return}let o={Authorization:`Bearer ${S}`};M(!0),k("");try{let c=await fetch(`${nB}/v1/sessions`,{method:"POST",headers:{"Content-Type":"application/json",...o},body:JSON.stringify({agentId:$})});if(!c.ok)throw Error(`Failed to create session: ${c.status}`);let{session:C}=await c.json(),I=await fetch(`${nB}/v1/sessions/${C.id}/start`,{method:"POST",headers:o});if(!I.ok)throw Error(`Failed to start session: ${I.status}`);let{connection:p}=await I.json();_(C.id),K({livekitUrl:p.livekitUrl,token:p.token}),U(!0)}catch(c){k(c instanceof Error?c.message:"Failed to start session")}finally{M(!1)}},[$,S]),g=H4.useCallback(async()=>{if(R&&S)try{await fetch(`${nB}/v1/sessions/${R}/complete`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${S}`},body:JSON.stringify({})})}catch{}k(""),U(!1),K(null),_(null)},[R,S]);return{connection:q,shouldConnect:N,isStarting:F,error:L,startSession:y,disconnect:g}}var tB=B(W1(),1);var aB=(...$)=>$.filter((Y,G,H)=>{return Boolean(Y)&&Y.trim()!==""&&H.indexOf(Y)===G}).join(" ").trim();var O00=($)=>$.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var P00=($)=>$.replace(/^([A-Z])|[\s-_]+(\w)/g,(Y,G,H)=>H?H.toUpperCase():G.toLowerCase());var uU=($)=>{let Y=P00($);return Y.charAt(0).toUpperCase()+Y.slice(1)};var xH=B(W1(),1);var L00={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var k00=($)=>{for(let Y in $)if(Y.startsWith("aria-")||Y==="role"||Y==="title")return!0;return!1};var R00=xH.forwardRef(({color:$="currentColor",size:Y=24,strokeWidth:G=2,absoluteStrokeWidth:H,className:q="",children:K,iconNode:N,...U},F)=>xH.createElement("svg",{ref:F,...L00,width:Y,height:Y,stroke:$,strokeWidth:H?Number(G)*24/Number(Y):G,className:aB("lucide",q),...!K&&!k00(U)&&{"aria-hidden":"true"},...U},[...N.map(([M,L])=>xH.createElement(M,L)),...Array.isArray(K)?K:[K]]));var Z1=($,Y)=>{let G=tB.forwardRef(({className:H,...q},K)=>tB.createElement(R00,{ref:K,iconNode:Y,className:aB(`lucide-${O00(uU($))}`,`lucide-${$}`,H),...q}));return G.displayName=uU($),G};var Q$0=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],y6=Z1("loader-circle",Q$0);var G$0=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],k8=Z1("message-circle-question-mark",G$0);var H$0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],R8=Z1("panel-left",H$0);var z$0=[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]],w8=Z1("send-horizontal",z$0);var q$0=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],VH=Z1("arrow-left",q$0);var B$0=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],X9=Z1("bot",B$0);var J$0=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],_H=Z1("check",J$0);var A$0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],IH=Z1("circle",A$0);var K$0=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],CH=Z1("mail",K$0);var N$0=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],TH=Z1("message-circle",N$0);var W$0=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M16.95 16.95A7 7 0 0 1 5 12v-2",key:"cqa7eg"}],["path",{d:"M18.89 13.23A7 7 0 0 0 19 12v-2",key:"16hl24"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}]],T7=Z1("mic-off",W$0);var U$0=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],E7=Z1("mic",U$0);var F$0=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],EH=Z1("minimize-2",F$0);var M$0=[["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M17 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 1.184-1.826",key:"cv7jms"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["path",{d:"M8.656 3H20a2 2 0 0 1 2 2v10a2 2 0 0 1-.293 1.042",key:"z8ni2w"}]],D7=Z1("monitor-off",M$0);var O$0=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],S7=Z1("monitor",O$0);var P$0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]],DH=Z1("panel-right",P$0);var L$0=[["path",{d:"M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272",key:"1wngk7"}],["path",{d:"M22 2 2 22",key:"y4kqgn"}],["path",{d:"M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473",key:"10hv5p"}]],v7=Z1("phone-off",L$0);var k$0=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],SH=Z1("settings",k$0);var R$0=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],j7=Z1("x",R$0);var $J=B(W1(),1);var w00=B(W1(),1);function N5(){let $=w00.use(rB);if(!$)throw Error("useLiveAgent must be used within a <LiveAgent> provider");let{connection:Y,shouldConnect:G,...H}=$;return H}function x00($){var Y,G,H="";if(typeof $=="string"||typeof $=="number")H+=$;else if(typeof $=="object")if(Array.isArray($)){var q=$.length;for(Y=0;Y<q;Y++)$[Y]&&(G=x00($[Y]))&&(H&&(H+=" "),H+=G)}else for(G in $)$[G]&&(H&&(H+=" "),H+=G);return H}function V00(){for(var $,Y,G=0,H="",q=arguments.length;G<q;G++)($=arguments[G])&&(Y=x00($))&&(H&&(H+=" "),H+=Y);return H}var V$0=($,Y)=>{let G=Array($.length+Y.length);for(let H=0;H<$.length;H++)G[H]=$[H];for(let H=0;H<Y.length;H++)G[$.length+H]=Y[H];return G},_$0=($,Y)=>({classGroupId:$,validator:Y}),E00=($=new Map,Y=null,G)=>({nextPart:$,validators:Y,classGroupId:G});var _00=[];var I$0=($)=>{let Y=T$0($),{conflictingClassGroups:G,conflictingClassGroupModifiers:H}=$;return{getClassGroupId:(N)=>{if(N.startsWith("[")&&N.endsWith("]"))return C$0(N);let U=N.split("-"),F=U[0]===""&&U.length>1?1:0;return D00(U,F,Y)},getConflictingClassGroupIds:(N,U)=>{if(U){let F=H[N],M=G[N];if(F){if(M)return V$0(M,F);return F}return M||_00}return G[N]||_00}}},D00=($,Y,G)=>{if($.length-Y===0)return G.classGroupId;let q=$[Y],K=G.nextPart.get(q);if(K){let M=D00($,Y+1,K);if(M)return M}let N=G.validators;if(N===null)return;let U=Y===0?$.join("-"):$.slice(Y).join("-"),F=N.length;for(let M=0;M<F;M++){let L=N[M];if(L.validator(U))return L.classGroupId}return},C$0=($)=>$.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let Y=$.slice(1,-1),G=Y.indexOf(":"),H=Y.slice(0,G);return H?"arbitrary.."+H:void 0})(),T$0=($)=>{let{theme:Y,classGroups:G}=$;return E$0(G,Y)},E$0=($,Y)=>{let G=E00();for(let H in $){let q=$[H];Bu(q,G,H,Y)}return G},Bu=($,Y,G,H)=>{let q=$.length;for(let K=0;K<q;K++){let N=$[K];D$0(N,Y,G,H)}},D$0=($,Y,G,H)=>{if(typeof $==="string"){S$0($,Y,G);return}if(typeof $==="function"){v$0($,Y,G,H);return}j$0($,Y,G,H)},S$0=($,Y,G)=>{let H=$===""?Y:S00(Y,$);H.classGroupId=G},v$0=($,Y,G,H)=>{if(p$0($)){Bu($(H),Y,G,H);return}if(Y.validators===null)Y.validators=[];Y.validators.push(_$0(G,$))},j$0=($,Y,G,H)=>{let q=Object.entries($),K=q.length;for(let N=0;N<K;N++){let[U,F]=q[N];Bu(F,S00(Y,U),G,H)}},S00=($,Y)=>{let G=$,H=Y.split("-"),q=H.length;for(let K=0;K<q;K++){let N=H[K],U=G.nextPart.get(N);if(!U)U=E00(),G.nextPart.set(N,U);G=U}return G},p$0=($)=>("isThemeGetter"in $)&&$.isThemeGetter===!0,f$0=($)=>{if($<1)return{get:()=>{return},set:()=>{}};let Y=0,G=Object.create(null),H=Object.create(null),q=(K,N)=>{if(G[K]=N,Y++,Y>$)Y=0,H=G,G=Object.create(null)};return{get(K){let N=G[K];if(N!==void 0)return N;if((N=H[K])!==void 0)return q(K,N),N},set(K,N){if(K in G)G[K]=N;else q(K,N)}}};var g$0=[],I00=($,Y,G,H,q)=>({modifiers:$,hasImportantModifier:Y,baseClassName:G,maybePostfixModifierPosition:H,isExternal:q}),m$0=($)=>{let{prefix:Y,experimentalParseClassName:G}=$,H=(q)=>{let K=[],N=0,U=0,F=0,M,L=q.length;for(let T=0;T<L;T++){let y=q[T];if(N===0&&U===0){if(y===":"){K.push(q.slice(F,T)),F=T+1;continue}if(y==="/"){M=T;continue}}if(y==="[")N++;else if(y==="]")N--;else if(y==="(")U++;else if(y===")")U--}let k=K.length===0?q:q.slice(F),R=k,_=!1;if(k.endsWith("!"))R=k.slice(0,-1),_=!0;else if(k.startsWith("!"))R=k.slice(1),_=!0;let S=M&&M>F?M-F:void 0;return I00(K,_,R,S)};if(Y){let q=Y+":",K=H;H=(N)=>N.startsWith(q)?K(N.slice(q.length)):I00(g$0,!1,N,void 0,!0)}if(G){let q=H;H=(K)=>G({className:K,parseClassName:q})}return H},y$0=($)=>{let Y=new Map;return $.orderSensitiveModifiers.forEach((G,H)=>{Y.set(G,1e6+H)}),(G)=>{let H=[],q=[];for(let K=0;K<G.length;K++){let N=G[K],U=N[0]==="[",F=Y.has(N);if(U||F){if(q.length>0)q.sort(),H.push(...q),q=[];H.push(N)}else q.push(N)}if(q.length>0)q.sort(),H.push(...q);return H}},b$0=($)=>({cache:f$0($.cacheSize),parseClassName:m$0($),sortModifiers:y$0($),...I$0($)}),h$0=/\s+/,u$0=($,Y)=>{let{parseClassName:G,getClassGroupId:H,getConflictingClassGroupIds:q,sortModifiers:K}=Y,N=[],U=$.trim().split(h$0),F="";for(let M=U.length-1;M>=0;M-=1){let L=U[M],{isExternal:k,modifiers:R,hasImportantModifier:_,baseClassName:S,maybePostfixModifierPosition:T}=G(L);if(k){F=L+(F.length>0?" "+F:F);continue}let y=!!T,g=H(y?S.substring(0,T):S);if(!g){if(!y){F=L+(F.length>0?" "+F:F);continue}if(g=H(S),!g){F=L+(F.length>0?" "+F:F);continue}y=!1}let o=R.length===0?"":R.length===1?R[0]:K(R).join(":"),c=_?o+"!":o,C=c+g;if(N.indexOf(C)>-1)continue;N.push(C);let I=q(g,y);for(let p=0;p<I.length;++p){let l=I[p];N.push(c+l)}F=L+(F.length>0?" "+F:F)}return F},d$0=(...$)=>{let Y=0,G,H,q="";while(Y<$.length)if(G=$[Y++]){if(H=v00(G))q&&(q+=" "),q+=H}return q},v00=($)=>{if(typeof $==="string")return $;let Y,G="";for(let H=0;H<$.length;H++)if($[H]){if(Y=v00($[H]))G&&(G+=" "),G+=Y}return G},s$0=($,...Y)=>{let G,H,q,K,N=(F)=>{let M=Y.reduce((L,k)=>k(L),$());return G=b$0(M),H=G.cache.get,q=G.cache.set,K=U,U(F)},U=(F)=>{let M=H(F);if(M)return M;let L=u$0(F,G);return q(F,L),L};return K=N,(...F)=>K(d$0(...F))},l$0=[],k2=($)=>{let Y=(G)=>G[$]||l$0;return Y.isThemeGetter=!0,Y},j00=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,p00=/^\((?:(\w[\w-]*):)?(.+)\)$/i,c$0=/^\d+\/\d+$/,i$0=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,o$0=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,r$0=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,n$0=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,a$0=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,qQ=($)=>c$0.test($),t0=($)=>!!$&&!Number.isNaN(Number($)),x8=($)=>!!$&&Number.isInteger(Number($)),zu=($)=>$.endsWith("%")&&t0($.slice(0,-1)),B9=($)=>i$0.test($),t$0=()=>!0,e$0=($)=>o$0.test($)&&!r$0.test($),f00=()=>!1,XZ0=($)=>n$0.test($),$Z0=($)=>a$0.test($),ZZ0=($)=>!k0($)&&!R0($),YZ0=($)=>BQ($,y00,f00),k0=($)=>j00.test($),p7=($)=>BQ($,b00,e$0),qu=($)=>BQ($,qZ0,t0),C00=($)=>BQ($,g00,f00),QZ0=($)=>BQ($,m00,$Z0),eB=($)=>BQ($,h00,XZ0),R0=($)=>p00.test($),vH=($)=>JQ($,b00),GZ0=($)=>JQ($,BZ0),T00=($)=>JQ($,g00),HZ0=($)=>JQ($,y00),zZ0=($)=>JQ($,m00),XJ=($)=>JQ($,h00,!0),BQ=($,Y,G)=>{let H=j00.exec($);if(H){if(H[1])return Y(H[1]);return G(H[2])}return!1},JQ=($,Y,G=!1)=>{let H=p00.exec($);if(H){if(H[1])return Y(H[1]);return G}return!1},g00=($)=>$==="position"||$==="percentage",m00=($)=>$==="image"||$==="url",y00=($)=>$==="length"||$==="size"||$==="bg-size",b00=($)=>$==="length",qZ0=($)=>$==="number",BZ0=($)=>$==="family-name",h00=($)=>$==="shadow";var JZ0=()=>{let $=k2("color"),Y=k2("font"),G=k2("text"),H=k2("font-weight"),q=k2("tracking"),K=k2("leading"),N=k2("breakpoint"),U=k2("container"),F=k2("spacing"),M=k2("radius"),L=k2("shadow"),k=k2("inset-shadow"),R=k2("text-shadow"),_=k2("drop-shadow"),S=k2("blur"),T=k2("perspective"),y=k2("aspect"),g=k2("ease"),o=k2("animate"),c=()=>["auto","avoid","all","avoid-page","page","left","right","column"],C=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],I=()=>[...C(),R0,k0],p=()=>["auto","hidden","clip","visible","scroll"],l=()=>["auto","contain","none"],f=()=>[R0,k0,F],n=()=>[qQ,"full","auto",...f()],u=()=>[x8,"none","subgrid",R0,k0],X0=()=>["auto",{span:["full",x8,R0,k0]},x8,R0,k0],Y0=()=>[x8,"auto",R0,k0],M0=()=>["auto","min","max","fr",R0,k0],y0=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G0=()=>["start","end","center","stretch","center-safe","end-safe"],N0=()=>["auto",...f()],F0=()=>[qQ,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...f()],J0=()=>[$,R0,k0],e0=()=>[...C(),T00,C00,{position:[R0,k0]}],c1=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Z0=()=>["auto","cover","contain",HZ0,YZ0,{size:[R0,k0]}],V0=()=>[zu,vH,p7],I0=()=>["","none","full",M,R0,k0],C0=()=>["",t0,vH,p7],f1=()=>["solid","dashed","dotted","double"],z6=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],L0=()=>[t0,zu,T00,C00],x1=()=>["","none",S,R0,k0],i1=()=>["none",t0,R0,k0],q6=()=>["none",t0,R0,k0],P0=()=>[t0,R0,k0],q4=()=>[qQ,"full",...f()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[B9],breakpoint:[B9],color:[t$0],container:[B9],"drop-shadow":[B9],ease:["in","out","in-out"],font:[ZZ0],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[B9],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[B9],shadow:[B9],spacing:["px",t0],text:[B9],"text-shadow":[B9],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",qQ,k0,R0,y]}],container:["container"],columns:[{columns:[t0,k0,R0,U]}],"break-after":[{"break-after":c()}],"break-before":[{"break-before":c()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:I()}],overflow:[{overflow:p()}],"overflow-x":[{"overflow-x":p()}],"overflow-y":[{"overflow-y":p()}],overscroll:[{overscroll:l()}],"overscroll-x":[{"overscroll-x":l()}],"overscroll-y":[{"overscroll-y":l()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:n()}],"inset-x":[{"inset-x":n()}],"inset-y":[{"inset-y":n()}],start:[{start:n()}],end:[{end:n()}],top:[{top:n()}],right:[{right:n()}],bottom:[{bottom:n()}],left:[{left:n()}],visibility:["visible","invisible","collapse"],z:[{z:[x8,"auto",R0,k0]}],basis:[{basis:[qQ,"full","auto",U,...f()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[t0,qQ,"auto","initial","none",k0]}],grow:[{grow:["",t0,R0,k0]}],shrink:[{shrink:["",t0,R0,k0]}],order:[{order:[x8,"first","last","none",R0,k0]}],"grid-cols":[{"grid-cols":u()}],"col-start-end":[{col:X0()}],"col-start":[{"col-start":Y0()}],"col-end":[{"col-end":Y0()}],"grid-rows":[{"grid-rows":u()}],"row-start-end":[{row:X0()}],"row-start":[{"row-start":Y0()}],"row-end":[{"row-end":Y0()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":M0()}],"auto-rows":[{"auto-rows":M0()}],gap:[{gap:f()}],"gap-x":[{"gap-x":f()}],"gap-y":[{"gap-y":f()}],"justify-content":[{justify:[...y0(),"normal"]}],"justify-items":[{"justify-items":[...G0(),"normal"]}],"justify-self":[{"justify-self":["auto",...G0()]}],"align-content":[{content:["normal",...y0()]}],"align-items":[{items:[...G0(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G0(),{baseline:["","last"]}]}],"place-content":[{"place-content":y0()}],"place-items":[{"place-items":[...G0(),"baseline"]}],"place-self":[{"place-self":["auto",...G0()]}],p:[{p:f()}],px:[{px:f()}],py:[{py:f()}],ps:[{ps:f()}],pe:[{pe:f()}],pt:[{pt:f()}],pr:[{pr:f()}],pb:[{pb:f()}],pl:[{pl:f()}],m:[{m:N0()}],mx:[{mx:N0()}],my:[{my:N0()}],ms:[{ms:N0()}],me:[{me:N0()}],mt:[{mt:N0()}],mr:[{mr:N0()}],mb:[{mb:N0()}],ml:[{ml:N0()}],"space-x":[{"space-x":f()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":f()}],"space-y-reverse":["space-y-reverse"],size:[{size:F0()}],w:[{w:[U,"screen",...F0()]}],"min-w":[{"min-w":[U,"screen","none",...F0()]}],"max-w":[{"max-w":[U,"screen","none","prose",{screen:[N]},...F0()]}],h:[{h:["screen","lh",...F0()]}],"min-h":[{"min-h":["screen","lh","none",...F0()]}],"max-h":[{"max-h":["screen","lh",...F0()]}],"font-size":[{text:["base",G,vH,p7]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[H,R0,qu]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",zu,k0]}],"font-family":[{font:[GZ0,k0,Y]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[q,R0,k0]}],"line-clamp":[{"line-clamp":[t0,"none",R0,qu]}],leading:[{leading:[K,...f()]}],"list-image":[{"list-image":["none",R0,k0]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",R0,k0]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:J0()}],"text-color":[{text:J0()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...f1(),"wavy"]}],"text-decoration-thickness":[{decoration:[t0,"from-font","auto",R0,p7]}],"text-decoration-color":[{decoration:J0()}],"underline-offset":[{"underline-offset":[t0,"auto",R0,k0]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:f()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",R0,k0]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",R0,k0]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:e0()}],"bg-repeat":[{bg:c1()}],"bg-size":[{bg:Z0()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},x8,R0,k0],radial:["",R0,k0],conic:[x8,R0,k0]},zZ0,QZ0]}],"bg-color":[{bg:J0()}],"gradient-from-pos":[{from:V0()}],"gradient-via-pos":[{via:V0()}],"gradient-to-pos":[{to:V0()}],"gradient-from":[{from:J0()}],"gradient-via":[{via:J0()}],"gradient-to":[{to:J0()}],rounded:[{rounded:I0()}],"rounded-s":[{"rounded-s":I0()}],"rounded-e":[{"rounded-e":I0()}],"rounded-t":[{"rounded-t":I0()}],"rounded-r":[{"rounded-r":I0()}],"rounded-b":[{"rounded-b":I0()}],"rounded-l":[{"rounded-l":I0()}],"rounded-ss":[{"rounded-ss":I0()}],"rounded-se":[{"rounded-se":I0()}],"rounded-ee":[{"rounded-ee":I0()}],"rounded-es":[{"rounded-es":I0()}],"rounded-tl":[{"rounded-tl":I0()}],"rounded-tr":[{"rounded-tr":I0()}],"rounded-br":[{"rounded-br":I0()}],"rounded-bl":[{"rounded-bl":I0()}],"border-w":[{border:C0()}],"border-w-x":[{"border-x":C0()}],"border-w-y":[{"border-y":C0()}],"border-w-s":[{"border-s":C0()}],"border-w-e":[{"border-e":C0()}],"border-w-t":[{"border-t":C0()}],"border-w-r":[{"border-r":C0()}],"border-w-b":[{"border-b":C0()}],"border-w-l":[{"border-l":C0()}],"divide-x":[{"divide-x":C0()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":C0()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...f1(),"hidden","none"]}],"divide-style":[{divide:[...f1(),"hidden","none"]}],"border-color":[{border:J0()}],"border-color-x":[{"border-x":J0()}],"border-color-y":[{"border-y":J0()}],"border-color-s":[{"border-s":J0()}],"border-color-e":[{"border-e":J0()}],"border-color-t":[{"border-t":J0()}],"border-color-r":[{"border-r":J0()}],"border-color-b":[{"border-b":J0()}],"border-color-l":[{"border-l":J0()}],"divide-color":[{divide:J0()}],"outline-style":[{outline:[...f1(),"none","hidden"]}],"outline-offset":[{"outline-offset":[t0,R0,k0]}],"outline-w":[{outline:["",t0,vH,p7]}],"outline-color":[{outline:J0()}],shadow:[{shadow:["","none",L,XJ,eB]}],"shadow-color":[{shadow:J0()}],"inset-shadow":[{"inset-shadow":["none",k,XJ,eB]}],"inset-shadow-color":[{"inset-shadow":J0()}],"ring-w":[{ring:C0()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:J0()}],"ring-offset-w":[{"ring-offset":[t0,p7]}],"ring-offset-color":[{"ring-offset":J0()}],"inset-ring-w":[{"inset-ring":C0()}],"inset-ring-color":[{"inset-ring":J0()}],"text-shadow":[{"text-shadow":["none",R,XJ,eB]}],"text-shadow-color":[{"text-shadow":J0()}],opacity:[{opacity:[t0,R0,k0]}],"mix-blend":[{"mix-blend":[...z6(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":z6()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[t0]}],"mask-image-linear-from-pos":[{"mask-linear-from":L0()}],"mask-image-linear-to-pos":[{"mask-linear-to":L0()}],"mask-image-linear-from-color":[{"mask-linear-from":J0()}],"mask-image-linear-to-color":[{"mask-linear-to":J0()}],"mask-image-t-from-pos":[{"mask-t-from":L0()}],"mask-image-t-to-pos":[{"mask-t-to":L0()}],"mask-image-t-from-color":[{"mask-t-from":J0()}],"mask-image-t-to-color":[{"mask-t-to":J0()}],"mask-image-r-from-pos":[{"mask-r-from":L0()}],"mask-image-r-to-pos":[{"mask-r-to":L0()}],"mask-image-r-from-color":[{"mask-r-from":J0()}],"mask-image-r-to-color":[{"mask-r-to":J0()}],"mask-image-b-from-pos":[{"mask-b-from":L0()}],"mask-image-b-to-pos":[{"mask-b-to":L0()}],"mask-image-b-from-color":[{"mask-b-from":J0()}],"mask-image-b-to-color":[{"mask-b-to":J0()}],"mask-image-l-from-pos":[{"mask-l-from":L0()}],"mask-image-l-to-pos":[{"mask-l-to":L0()}],"mask-image-l-from-color":[{"mask-l-from":J0()}],"mask-image-l-to-color":[{"mask-l-to":J0()}],"mask-image-x-from-pos":[{"mask-x-from":L0()}],"mask-image-x-to-pos":[{"mask-x-to":L0()}],"mask-image-x-from-color":[{"mask-x-from":J0()}],"mask-image-x-to-color":[{"mask-x-to":J0()}],"mask-image-y-from-pos":[{"mask-y-from":L0()}],"mask-image-y-to-pos":[{"mask-y-to":L0()}],"mask-image-y-from-color":[{"mask-y-from":J0()}],"mask-image-y-to-color":[{"mask-y-to":J0()}],"mask-image-radial":[{"mask-radial":[R0,k0]}],"mask-image-radial-from-pos":[{"mask-radial-from":L0()}],"mask-image-radial-to-pos":[{"mask-radial-to":L0()}],"mask-image-radial-from-color":[{"mask-radial-from":J0()}],"mask-image-radial-to-color":[{"mask-radial-to":J0()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":C()}],"mask-image-conic-pos":[{"mask-conic":[t0]}],"mask-image-conic-from-pos":[{"mask-conic-from":L0()}],"mask-image-conic-to-pos":[{"mask-conic-to":L0()}],"mask-image-conic-from-color":[{"mask-conic-from":J0()}],"mask-image-conic-to-color":[{"mask-conic-to":J0()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:e0()}],"mask-repeat":[{mask:c1()}],"mask-size":[{mask:Z0()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",R0,k0]}],filter:[{filter:["","none",R0,k0]}],blur:[{blur:x1()}],brightness:[{brightness:[t0,R0,k0]}],contrast:[{contrast:[t0,R0,k0]}],"drop-shadow":[{"drop-shadow":["","none",_,XJ,eB]}],"drop-shadow-color":[{"drop-shadow":J0()}],grayscale:[{grayscale:["",t0,R0,k0]}],"hue-rotate":[{"hue-rotate":[t0,R0,k0]}],invert:[{invert:["",t0,R0,k0]}],saturate:[{saturate:[t0,R0,k0]}],sepia:[{sepia:["",t0,R0,k0]}],"backdrop-filter":[{"backdrop-filter":["","none",R0,k0]}],"backdrop-blur":[{"backdrop-blur":x1()}],"backdrop-brightness":[{"backdrop-brightness":[t0,R0,k0]}],"backdrop-contrast":[{"backdrop-contrast":[t0,R0,k0]}],"backdrop-grayscale":[{"backdrop-grayscale":["",t0,R0,k0]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[t0,R0,k0]}],"backdrop-invert":[{"backdrop-invert":["",t0,R0,k0]}],"backdrop-opacity":[{"backdrop-opacity":[t0,R0,k0]}],"backdrop-saturate":[{"backdrop-saturate":[t0,R0,k0]}],"backdrop-sepia":[{"backdrop-sepia":["",t0,R0,k0]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":f()}],"border-spacing-x":[{"border-spacing-x":f()}],"border-spacing-y":[{"border-spacing-y":f()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",R0,k0]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[t0,"initial",R0,k0]}],ease:[{ease:["linear","initial",g,R0,k0]}],delay:[{delay:[t0,R0,k0]}],animate:[{animate:["none",o,R0,k0]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[T,R0,k0]}],"perspective-origin":[{"perspective-origin":I()}],rotate:[{rotate:i1()}],"rotate-x":[{"rotate-x":i1()}],"rotate-y":[{"rotate-y":i1()}],"rotate-z":[{"rotate-z":i1()}],scale:[{scale:q6()}],"scale-x":[{"scale-x":q6()}],"scale-y":[{"scale-y":q6()}],"scale-z":[{"scale-z":q6()}],"scale-3d":["scale-3d"],skew:[{skew:P0()}],"skew-x":[{"skew-x":P0()}],"skew-y":[{"skew-y":P0()}],transform:[{transform:[R0,k0,"","none","gpu","cpu"]}],"transform-origin":[{origin:I()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q4()}],"translate-x":[{"translate-x":q4()}],"translate-y":[{"translate-y":q4()}],"translate-z":[{"translate-z":q4()}],"translate-none":["translate-none"],accent:[{accent:J0()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:J0()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",R0,k0]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":f()}],"scroll-mx":[{"scroll-mx":f()}],"scroll-my":[{"scroll-my":f()}],"scroll-ms":[{"scroll-ms":f()}],"scroll-me":[{"scroll-me":f()}],"scroll-mt":[{"scroll-mt":f()}],"scroll-mr":[{"scroll-mr":f()}],"scroll-mb":[{"scroll-mb":f()}],"scroll-ml":[{"scroll-ml":f()}],"scroll-p":[{"scroll-p":f()}],"scroll-px":[{"scroll-px":f()}],"scroll-py":[{"scroll-py":f()}],"scroll-ps":[{"scroll-ps":f()}],"scroll-pe":[{"scroll-pe":f()}],"scroll-pt":[{"scroll-pt":f()}],"scroll-pr":[{"scroll-pr":f()}],"scroll-pb":[{"scroll-pb":f()}],"scroll-pl":[{"scroll-pl":f()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",R0,k0]}],fill:[{fill:["none",...J0()]}],"stroke-w":[{stroke:[t0,vH,p7,qu]}],stroke:[{stroke:["none",...J0()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var u00=s$0(JZ0);function d1(...$){return u00(V00($))}var w1=B(B1(),1);function AZ0({agentState:$}){if($==="speaking")return w1.jsxDEV("div",{className:"skippr:flex skippr:items-end skippr:justify-center skippr:gap-[3px] skippr:h-5",children:[w1.jsxDEV("span",{className:"skippr:w-[3px] skippr:h-full skippr:rounded-full skippr:bg-primary-foreground skippr:origin-bottom skippr:animate-skippr-bar-1"},void 0,!1,void 0,this),w1.jsxDEV("span",{className:"skippr:w-[3px] skippr:h-full skippr:rounded-full skippr:bg-primary-foreground skippr:origin-bottom skippr:animate-skippr-bar-2"},void 0,!1,void 0,this),w1.jsxDEV("span",{className:"skippr:w-[3px] skippr:h-full skippr:rounded-full skippr:bg-primary-foreground skippr:origin-bottom skippr:animate-skippr-bar-3"},void 0,!1,void 0,this),w1.jsxDEV("span",{className:"skippr:w-[3px] skippr:h-full skippr:rounded-full skippr:bg-primary-foreground skippr:origin-bottom skippr:animate-skippr-bar-4"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if($==="listening")return w1.jsxDEV(X9,{className:"skippr:relative skippr:z-10 skippr:size-5 skippr:animate-skippr-breathe"},void 0,!1,void 0,this);if($==="thinking")return w1.jsxDEV(X9,{className:"skippr:relative skippr:z-10 skippr:size-5 skippr:animate-pulse"},void 0,!1,void 0,this);return w1.jsxDEV(X9,{className:"skippr:relative skippr:z-10 skippr:size-5"},void 0,!1,void 0,this)}function l00(){let{expandPanel:$,disconnect:Y,position:G}=N5(),{state:H}=wH(),{localParticipant:q}=K5(),K=!q.isMicrophoneEnabled,N=q.isScreenShareEnabled,U=$J.useCallback(async()=>{try{await q.setMicrophoneEnabled(K)}catch(R){console.error("Failed to toggle microphone:",R)}},[q,K]),F=$J.useCallback(async()=>{try{await q.setScreenShareEnabled(!N,{video:{displaySurface:"browser"},resolution:V7.h720fps30.resolution,contentHint:"detail"})}catch(R){console.error("Failed to toggle screen share:",R)}},[q,N]),M=$J.useCallback(async()=>{await Y()},[Y]),L=H==="speaking",k=H==="listening";return w1.jsxDEV("div",{className:d1("skippr:fixed skippr:bottom-6 skippr:z-[9999]","skippr:flex skippr:items-center skippr:gap-0","skippr:rounded-full skippr:bg-card skippr:shadow-2xl","skippr:border skippr:border-border","skippr:p-1.5",G==="right"?"skippr:right-6":"skippr:left-6"),children:[w1.jsxDEV("button",{type:"button",onClick:$,className:d1("skippr:relative skippr:size-11 skippr:rounded-full","skippr:bg-primary skippr:text-primary-foreground","skippr:flex skippr:items-center skippr:justify-center","skippr:cursor-pointer skippr:transition-all skippr:duration-300","skippr:hover:brightness-110",k&&"skippr:animate-skippr-pulse-ring"),"aria-label":"Expand meeting panel",children:[L&&w1.jsxDEV(w1.Fragment,{children:[w1.jsxDEV("span",{className:"skippr:absolute skippr:inset-0 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-speak-ripple"},void 0,!1,void 0,this),w1.jsxDEV("span",{className:"skippr:absolute skippr:inset-0 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-speak-ripple-delayed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w1.jsxDEV(AZ0,{agentState:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w1.jsxDEV("div",{className:"skippr:mx-1 skippr:h-6 skippr:w-px skippr:bg-border"},void 0,!1,void 0,this),w1.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1",children:[w1.jsxDEV("button",{type:"button",onClick:U,className:d1("skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center","skippr:transition-colors skippr:cursor-pointer",K?"skippr:bg-destructive skippr:text-white":"skippr:text-foreground skippr:hover:bg-accent"),"aria-label":K?"Unmute":"Mute",children:K?w1.jsxDEV(T7,{className:"skippr:size-4"},void 0,!1,void 0,this):w1.jsxDEV(E7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),w1.jsxDEV("button",{type:"button",onClick:F,className:d1("skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center","skippr:transition-colors skippr:cursor-pointer",N?"skippr:text-foreground skippr:hover:bg-accent":"skippr:bg-destructive skippr:text-white"),"aria-label":N?"Stop sharing":"Share screen",children:N?w1.jsxDEV(D7,{className:"skippr:size-4"},void 0,!1,void 0,this):w1.jsxDEV(S7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w1.jsxDEV("div",{className:"skippr:mx-1 skippr:h-6 skippr:w-px skippr:bg-border"},void 0,!1,void 0,this),w1.jsxDEV("button",{type:"button",onClick:M,className:"skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center skippr:bg-destructive skippr:text-white skippr:cursor-pointer skippr:transition-colors skippr:hover:bg-destructive/90","aria-label":"Hang up",children:w1.jsxDEV(v7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var GJ=B(W1(),1);var n00=B(W1(),1);var c00=B(W1(),1);var KZ0=/^\[\w+\]$/;function ZJ($){return $.filter((Y)=>!KZ0.test(Y.content.trim()))}function i00(){let{chatMessages:$,send:Y,isSending:G}=pU(),{localParticipant:H}=K5(),q=H.identity;return{chatMessages:c00.useMemo(()=>{let N=$.map((U)=>({id:U.id,role:U.from?.identity===q?"user":"assistant",content:U.message,source:"chat",timestamp:U.timestamp})).sort((U,F)=>(U.timestamp??0)-(F.timestamp??0));return ZJ(N)},[$,q]),sendChatMessage:Y,isSendingChat:G}}var o00=B(W1(),1);function r00(){let $=fU(),{localParticipant:Y}=K5(),G=Y.identity;return{transcriptMessages:o00.useMemo(()=>ZJ($.filter((q)=>q.text.trim().length>0).map((q)=>({id:q.streamInfo.id,role:q.participantInfo.identity===G?"user":"assistant",content:q.text,source:"voice-transcript",timestamp:q.streamInfo.timestamp}))),[$,G])}}function NZ0($,Y){let G=[],H=0;for(let q of $){while(H<Y.length&&(Y[H].timestamp??0)<=(q.timestamp??0))G.push(Y[H]),H++;G.push(q)}while(H<Y.length)G.push(Y[H]),H++;return G}function a00(){let{transcriptMessages:$}=r00(),{chatMessages:Y,sendChatMessage:G,isSendingChat:H}=i00(),{state:q}=wH();return{allMessages:n00.useMemo(()=>{if(Y.length===0)return $;if($.length===0)return Y;return NZ0($,Y)},[$,Y]),agentState:q,sendChatMessage:G,isSendingChat:H}}var t00=B(W1(),1);var YJ=B(W1(),1);function AQ($,Y,G){let[H,q]=YJ.useState(G),K=RH();return YJ.useEffect(()=>{let N=K.find((F)=>F.attributes?.[$]);if(N){let F=N.attributes?.[$];if(F){let M=Y(F);if(M)q(M)}}let U=new Map;for(let F of K){let M=(L)=>{if(L[$]){let k=Y(L[$]);if(k)q(k)}else if(F.attributes?.[$]){let k=Y(F.attributes[$]);if(k)q(k)}};U.set(F,M),F.on("attributesChanged",M)}return()=>{for(let[F,M]of U)F.off("attributesChanged",M)}},[K,$,Y]),H}function WZ0($){try{let Y=JSON.parse($);if(Y.type==="phase_update"&&Array.isArray(Y.phases))return Y.phases}catch{}return null}function e00(){let $=t00.useCallback(WZ0,[]);return{phases:AQ("phases",$,[])}}var X10=B(W1(),1);function UZ0($){try{let Y=JSON.parse($);if(Y.type==="question_update"&&Array.isArray(Y.questions))return Y.questions}catch{}return null}function $10(){let $=X10.useCallback(UZ0,[]);return{questions:AQ("questions",$,[])}}var Au=480;var Z10=B(W1(),1);var Y10=B(B1(),1),FZ0={default:"skippr:bg-primary skippr:text-primary-foreground skippr:hover:bg-primary/90",destructive:"skippr:bg-destructive skippr:text-white skippr:hover:bg-destructive/90",outline:"skippr:border skippr:border-input skippr:bg-background skippr:shadow-xs skippr:hover:bg-accent skippr:hover:text-accent-foreground",secondary:"skippr:bg-secondary skippr:text-secondary-foreground skippr:hover:bg-secondary/80",ghost:"skippr:hover:bg-accent skippr:hover:text-accent-foreground"},MZ0={default:"skippr:h-9 skippr:px-4 skippr:py-2",xs:"skippr:h-6 skippr:gap-1 skippr:rounded-md skippr:px-2 skippr:text-xs",sm:"skippr:h-8 skippr:gap-1.5 skippr:rounded-md skippr:px-3",lg:"skippr:h-10 skippr:rounded-md skippr:px-6",icon:"skippr:size-9","icon-xs":"skippr:size-6","icon-sm":"skippr:size-8","icon-lg":"skippr:size-10"},D2=Z10.forwardRef(({className:$,variant:Y="default",size:G="default",...H},q)=>{return Y10.jsxDEV("button",{className:d1("skippr:inline-flex skippr:items-center skippr:justify-center skippr:gap-2 skippr:whitespace-nowrap skippr:rounded-md skippr:text-sm skippr:font-medium skippr:ring-offset-background skippr:transition-all skippr:focus-visible:outline-none skippr:focus-visible:ring-2 skippr:focus-visible:ring-ring skippr:focus-visible:ring-offset-2 skippr:disabled:pointer-events-none skippr:disabled:opacity-50 skippr:shrink-0 skippr:[&_svg]:pointer-events-none skippr:[&_svg:not([class*='size-'])]:size-4 skippr:[&_svg]:shrink-0",FZ0[Y],MZ0[G],$),ref:q,...H},void 0,!1,void 0,this)});D2.displayName="Button";var b6=B(B1(),1);function Q10({onOpenSettings:$}){let{closePanel:Y,minimizePanel:G,minimizable:H,isConnected:q}=N5();return b6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-3 skippr:bg-primary skippr:px-4 skippr:py-3 skippr:text-primary-foreground",children:[b6.jsxDEV("div",{className:"skippr:flex skippr:size-6 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-primary-foreground/20",children:b6.jsxDEV(X9,{className:"skippr:size-3.5 skippr:text-primary-foreground"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b6.jsxDEV("div",{className:"skippr:flex-1",children:b6.jsxDEV("p",{className:"skippr:text-sm skippr:font-semibold skippr:leading-none",children:"AI Agent"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1",children:[b6.jsxDEV(D2,{variant:"ghost",size:"icon-xs",onClick:$,className:"skippr:text-primary-foreground skippr:hover:bg-primary-foreground/20 skippr:hover:text-primary-foreground","aria-label":"Settings",children:b6.jsxDEV(SH,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),H&&q&&b6.jsxDEV(D2,{variant:"ghost",size:"icon-xs",onClick:G,className:"skippr:text-primary-foreground skippr:hover:bg-primary-foreground/20 skippr:hover:text-primary-foreground","aria-label":"Minimize",children:b6.jsxDEV(EH,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b6.jsxDEV(D2,{variant:"ghost",size:"icon-xs",onClick:Y,className:"skippr:text-primary-foreground skippr:hover:bg-primary-foreground/20 skippr:hover:text-primary-foreground","aria-label":"Close",children:b6.jsxDEV(j7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var G2=B(W1(),1);var E1=B(B1(),1),W5=6,OZ0=["d0","d1","d2","d3","d4","d5"];function G10({requestOtp:$,verifyOtp:Y,error:G,isSubmitting:H}){let[q,K]=G2.useState("email"),[N,U]=G2.useState(""),F=G2.useCallback(async(R)=>{if(await $(R))K("otp")},[$]),M=G2.useCallback(async(R)=>{await Y(N,R)},[Y,N]),L=G2.useCallback(()=>{K("email")},[]),k=G2.useCallback(async()=>{await $(N)},[$,N]);if(q==="otp")return E1.jsxDEV(LZ0,{email:N,onSubmit:M,onResend:k,onBack:L,error:G,isSubmitting:H},void 0,!1,void 0,this);return E1.jsxDEV(PZ0,{email:N,onEmailChange:U,onSubmit:F,error:G,isSubmitting:H},void 0,!1,void 0,this)}function PZ0({email:$,onEmailChange:Y,onSubmit:G,error:H,isSubmitting:q}){function K(N){if(N.preventDefault(),$.trim())G($.trim())}return E1.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",children:[E1.jsxDEV("div",{className:"skippr:mb-4 skippr:text-center",children:[E1.jsxDEV(CH,{className:"skippr:mx-auto skippr:mb-2 skippr:size-6 skippr:text-primary"},void 0,!1,void 0,this),E1.jsxDEV("p",{className:"skippr:text-sm skippr:font-medium skippr:text-foreground",children:"Sign in to continue"},void 0,!1,void 0,this),E1.jsxDEV("p",{className:"skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",children:"Your email will be used to identify you across sessions"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),E1.jsxDEV("form",{onSubmit:K,className:"skippr:flex skippr:flex-col skippr:gap-3",children:[E1.jsxDEV("input",{type:"email",placeholder:"you@example.com",value:$,onChange:(N)=>Y(N.target.value),disabled:q,required:!0,className:"skippr:w-full skippr:rounded-md skippr:border skippr:border-border skippr:bg-background skippr:px-3 skippr:py-2 skippr:text-sm skippr:text-foreground skippr:placeholder-muted-foreground skippr:outline-none focus:skippr:ring-2 focus:skippr:ring-primary/30 focus:skippr:border-primary disabled:skippr:opacity-50"},void 0,!1,void 0,this),E1.jsxDEV(D2,{type:"submit",disabled:q||!$.trim(),className:"skippr:w-full",children:q?E1.jsxDEV(y6,{className:"skippr:size-4 skippr:animate-spin"},void 0,!1,void 0,this):"Continue"},void 0,!1,void 0,this),H&&E1.jsxDEV("p",{className:"skippr:text-xs skippr:text-center skippr:text-destructive",children:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function LZ0({email:$,onSubmit:Y,onResend:G,onBack:H,error:q,isSubmitting:K}){let[N,U]=G2.useState(Array(W5).fill("")),[F,M]=G2.useState(0),L=G2.useRef([]),k=G2.useRef(!1);G2.useEffect(()=>{L.current[0]?.focus()},[]),G2.useEffect(()=>{if(q)k.current=!1},[q]),G2.useEffect(()=>{if(F<=0)return;let o=setTimeout(()=>M((c)=>c-1),1000);return()=>clearTimeout(o)},[F]);let R=G2.useCallback((o)=>{if(k.current||K)return;k.current=!0,Y(o)},[Y,K]),_=G2.useCallback((o,c)=>{let C=c.replace(/\D/g,"").slice(-1),I=[...N];if(I[o]=C,U(I),C&&o<W5-1)L.current[o+1]?.focus();if(C&&o===W5-1){let p=I.join("");if(p.length===W5)R(p)}},[N,R]),S=G2.useCallback((o,c)=>{if(c.key==="Backspace"&&!N[o]&&o>0)L.current[o-1]?.focus()},[N]),T=G2.useCallback((o)=>{o.preventDefault();let c=o.clipboardData.getData("text").replace(/\D/g,"").slice(0,W5);if(c.length>0){let C=Array(W5).fill("");for(let I=0;I<c.length;I++)C[I]=c[I];if(U(C),c.length===W5)R(c);else L.current[c.length]?.focus()}},[R]);function y(o){o.preventDefault();let c=N.join("");if(c.length===W5)R(c)}function g(){G(),M(30),U(Array(W5).fill("")),k.current=!1,L.current[0]?.focus()}return E1.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",children:[E1.jsxDEV("div",{className:"skippr:mb-4 skippr:text-center",children:[E1.jsxDEV("p",{className:"skippr:text-sm skippr:font-medium skippr:text-foreground",children:"Enter verification code"},void 0,!1,void 0,this),E1.jsxDEV("p",{className:"skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",children:["We sent a 6-digit code to"," ",E1.jsxDEV("span",{className:"skippr:font-medium skippr:text-foreground",children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),E1.jsxDEV("form",{onSubmit:y,className:"skippr:flex skippr:flex-col skippr:gap-3",children:[E1.jsxDEV("div",{className:"skippr:flex skippr:justify-center skippr:gap-1.5",children:N.map((o,c)=>E1.jsxDEV("input",{ref:(C)=>{L.current[c]=C},type:"text",inputMode:"numeric",maxLength:1,value:o,onChange:(C)=>_(c,C.target.value),onKeyDown:(C)=>S(c,C),onPaste:T,disabled:K,className:"skippr:h-10 skippr:w-10 skippr:rounded-md skippr:border skippr:border-border skippr:bg-background skippr:text-center skippr:text-sm skippr:font-semibold skippr:text-foreground skippr:outline-none focus:skippr:ring-2 focus:skippr:ring-primary/30 focus:skippr:border-primary disabled:skippr:opacity-50"},OZ0[c],!1,void 0,this))},void 0,!1,void 0,this),q&&E1.jsxDEV("p",{className:"skippr:text-xs skippr:text-center skippr:text-destructive",children:q},void 0,!1,void 0,this),E1.jsxDEV(D2,{type:"submit",disabled:K||N.join("").length!==W5,className:"skippr:w-full",children:K?E1.jsxDEV(y6,{className:"skippr:size-4 skippr:animate-spin"},void 0,!1,void 0,this):"Verify"},void 0,!1,void 0,this),E1.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:justify-between skippr:text-xs",children:[E1.jsxDEV("button",{type:"button",onClick:H,disabled:K,className:"skippr:text-muted-foreground hover:skippr:text-foreground skippr:transition-colors disabled:skippr:opacity-50",children:"Change email"},void 0,!1,void 0,this),E1.jsxDEV("button",{type:"button",onClick:g,disabled:K||F>0,className:"skippr:text-primary hover:skippr:opacity-80 skippr:transition-opacity disabled:skippr:opacity-50",children:F>0?`Resend in ${F}s`:"Resend code"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var U5=B(W1(),1);function H10($){let Y=Math.floor($/60).toString().padStart(2,"0"),G=($%60).toString().padStart(2,"0");return`${Y}:${G}`}function z10($){let Y=Number($);return Y>0?Y:null}var J10=B(B1(),1),q10=60;function B10({remaining:$}){if($===null||$<=0||$>60)return null;return J10.jsxDEV("div",{"data-testid":"session-warning-banner",className:"skippr:bg-red-50 skippr:px-4 skippr:py-1.5 skippr:text-center skippr:text-xs skippr:font-medium skippr:text-red-700",children:"Session ending soon"},void 0,!1,void 0,this)}var O6=B(B1(),1);function A10({onHangUp:$}){let Y=AQ("maxCallDuration",z10,null),{localParticipant:G}=K5(),H=!G.isMicrophoneEnabled,q=G.isScreenShareEnabled,K=U5.useRef(null),[N,U]=U5.useState(null);U5.useEffect(()=>{if(Y===null||K.current!==null)return;K.current=Date.now()+Y*1000;let L=()=>{let R=Math.ceil((K.current-Date.now())/1000);U(Math.max(R,0))};L();let k=setInterval(L,1000);return()=>clearInterval(k)},[Y]);let F=U5.useCallback(async()=>{try{await G.setMicrophoneEnabled(H)}catch(L){console.error("Failed to toggle microphone:",L)}},[G,H]),M=U5.useCallback(async()=>{try{await G.setScreenShareEnabled(!q,{video:{displaySurface:"browser"},resolution:V7.h720fps30.resolution,contentHint:"detail"})}catch(L){console.error("Failed to toggle screen share:",L)}},[G,q]);return U5.useEffect(()=>{F().then(()=>M())},[]),O6.jsxDEV("div",{children:[O6.jsxDEV(B10,{remaining:N},void 0,!1,void 0,this),O6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:justify-between skippr:border-b skippr:px-4 skippr:py-3",children:[O6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2",children:[O6.jsxDEV(D2,{size:"icon-sm",variant:H?"destructive":"outline",onClick:F,"aria-label":H?"Unmute":"Mute",children:H?O6.jsxDEV(T7,{className:"skippr:size-4"},void 0,!1,void 0,this):O6.jsxDEV(E7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),O6.jsxDEV(D2,{size:"icon-sm",variant:q?"outline":"destructive",onClick:M,"aria-label":q?"Stop sharing":"Share screen",children:q?O6.jsxDEV(D7,{className:"skippr:size-4"},void 0,!1,void 0,this):O6.jsxDEV(S7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),N!==null&&O6.jsxDEV("span",{className:d1("skippr:text-sm skippr:font-medium skippr:tabular-nums",N<=q10?"skippr:text-red-600 skippr:animate-pulse":"skippr:text-muted-foreground"),children:H10(N)},void 0,!1,void 0,this),O6.jsxDEV(D2,{size:"icon-sm",variant:"destructive",onClick:$,"aria-label":"Hang up",children:O6.jsxDEV(v7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var QJ=B(W1(),1);var K10=B(W1(),1);var jH=B(B1(),1);function N10({sendChatMessage:$,isSendingChat:Y}){let[G,H]=K10.useState(""),q=G.trim().length>0&&!Y;function K(N){N.preventDefault();let U=G.trim();if(!U||Y)return;H(""),$(U).catch(()=>H(U))}return jH.jsxDEV("form",{onSubmit:K,className:"skippr:flex skippr:items-center skippr:gap-2 skippr:border-t skippr:border-border skippr:px-3 skippr:py-2",children:[jH.jsxDEV("input",{type:"text",value:G,onChange:(N)=>H(N.target.value),placeholder:"Type a message...",className:d1("skippr:flex-1 skippr:rounded-lg skippr:border skippr:border-border skippr:bg-background","skippr:px-3 skippr:py-2 skippr:text-sm skippr:text-foreground","skippr:placeholder:text-muted-foreground skippr:outline-none","skippr:focus:ring-1 skippr:focus:ring-ring"),disabled:Y},void 0,!1,void 0,this),jH.jsxDEV("button",{type:"submit",disabled:!q,"aria-label":"Send message",className:d1("skippr:flex skippr:size-9 skippr:shrink-0 skippr:items-center skippr:justify-center","skippr:rounded-lg skippr:bg-primary skippr:text-primary-foreground","skippr:transition-opacity",!q&&"skippr:opacity-50 skippr:cursor-not-allowed"),children:jH.jsxDEV(w8,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var Ku=B(B1(),1);function W10({message:$}){let Y=$.role==="user";return Ku.jsxDEV("div",{className:d1("skippr:flex skippr:w-full skippr:px-4 skippr:py-1",Y?"skippr:justify-end":"skippr:justify-start"),children:Ku.jsxDEV("div",{className:d1("skippr:max-w-[85%] skippr:whitespace-pre-wrap skippr:rounded-2xl skippr:px-4 skippr:py-2.5 skippr:text-sm skippr:leading-relaxed",Y?"skippr:rounded-br-sm skippr:bg-primary skippr:text-primary-foreground":"skippr:rounded-bl-sm skippr:bg-muted skippr:text-foreground"),children:$.content},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var KQ=B(B1(),1);function U10(){return KQ.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1 skippr:px-4 skippr:py-3",children:KQ.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1 skippr:rounded-2xl skippr:rounded-bl-sm skippr:bg-muted skippr:px-4 skippr:py-2.5",children:[KQ.jsxDEV("span",{className:"skippr:size-1.5 skippr:animate-bounce skippr:rounded-full skippr:bg-muted-foreground/60 skippr:[animation-delay:0ms]"},void 0,!1,void 0,this),KQ.jsxDEV("span",{className:"skippr:size-1.5 skippr:animate-bounce skippr:rounded-full skippr:bg-muted-foreground/60 skippr:[animation-delay:150ms]"},void 0,!1,void 0,this),KQ.jsxDEV("span",{className:"skippr:size-1.5 skippr:animate-bounce skippr:rounded-full skippr:bg-muted-foreground/60 skippr:[animation-delay:300ms]"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var V8=B(B1(),1);function F10({messages:$,isStreaming:Y,sendChatMessage:G,isSendingChat:H}){let q=QJ.useRef(null),K=$.length>0?$[$.length-1]:void 0;QJ.useEffect(()=>{q.current?.scrollIntoView({behavior:"smooth"})},[$.length,K?.content]);let N=Y&&K?.role==="assistant"&&K.content==="";return V8.jsxDEV("div",{className:"skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",children:[V8.jsxDEV("div",{className:"skippr:min-h-0 skippr:flex-1 skippr:overflow-y-auto",children:V8.jsxDEV("div",{className:"skippr:flex skippr:flex-col skippr:gap-1 skippr:py-3",children:[$.map((U)=>V8.jsxDEV(W10,{message:U},U.id,!1,void 0,this)),N&&V8.jsxDEV(U10,{},void 0,!1,void 0,this),V8.jsxDEV("div",{ref:q},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),V8.jsxDEV(N10,{sendChatMessage:G,isSendingChat:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var f7=B(B1(),1);function M10({onStartSession:$,isStarting:Y,error:G}){return f7.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:gap-6 skippr:overflow-y-auto skippr:px-4 skippr:py-4",children:[f7.jsxDEV("p",{className:"skippr:mb-1 skippr:text-sm skippr:text-muted-foreground",children:"How can I help you today?"},void 0,!1,void 0,this),f7.jsxDEV(D2,{variant:"outline",className:"skippr:h-auto skippr:flex-col skippr:gap-1.5 skippr:whitespace-normal skippr:py-3 skippr:text-xs",onClick:$,disabled:Y,children:[Y?f7.jsxDEV(y6,{className:"skippr:size-4 skippr:animate-spin skippr:text-primary"},void 0,!1,void 0,this):f7.jsxDEV(k8,{className:"skippr:size-4 skippr:text-primary"},void 0,!1,void 0,this),Y?"Starting...":"Start Session"]},void 0,!0,void 0,this),G&&f7.jsxDEV("p",{className:"skippr:text-xs skippr:text-destructive",children:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var l2=B(B1(),1);function O10({phases:$,questions:Y=[]}){if($.length===0)return l2.jsxDEV("div",{className:"skippr:flex skippr:flex-col skippr:gap-3 skippr:p-4",children:[l2.jsxDEV("h3",{className:"skippr:text-sm skippr:font-semibold",children:"Agenda"},void 0,!1,void 0,this),l2.jsxDEV("p",{className:"skippr:text-xs skippr:text-muted-foreground",children:"Waiting for session..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return l2.jsxDEV("div",{className:"skippr:flex skippr:flex-col skippr:gap-3 skippr:p-4",children:[l2.jsxDEV("h3",{className:"skippr:text-sm skippr:font-semibold",children:"Agenda"},void 0,!1,void 0,this),l2.jsxDEV("ul",{className:"skippr:flex skippr:flex-col skippr:gap-2",children:$.map((G)=>{let H=Y.filter((N)=>N.phaseName===G.name),q=H.filter((N)=>N.status==="answered").length,K=H.length;return l2.jsxDEV("li",{className:"skippr:flex skippr:flex-col skippr:gap-0.5",children:[l2.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2 skippr:text-sm",children:[l2.jsxDEV(kZ0,{status:G.status},void 0,!1,void 0,this),l2.jsxDEV("span",{className:d1(G.status==="completed"&&"skippr:text-muted-foreground skippr:line-through",G.status==="active"&&"skippr:font-medium skippr:text-primary"),children:G.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K>0&&l2.jsxDEV("span",{className:"skippr:ml-6 skippr:text-xs skippr:text-muted-foreground",children:[q,"/",K," answered"]},void 0,!0,void 0,this)]},G.name,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function kZ0({status:$}){if($==="completed")return l2.jsxDEV("div",{className:"skippr:flex skippr:size-4 skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-primary",children:l2.jsxDEV(_H,{className:"skippr:size-2.5 skippr:text-primary-foreground",strokeWidth:3},void 0,!1,void 0,this)},void 0,!1,void 0,this);if($==="active")return l2.jsxDEV(y6,{className:"skippr:size-4 skippr:shrink-0 skippr:text-primary skippr:animate-spin"},void 0,!1,void 0,this);return l2.jsxDEV(IH,{className:"skippr:size-4 skippr:shrink-0 skippr:text-muted-foreground"},void 0,!1,void 0,this)}var c2=B(B1(),1);function P10({onBack:$}){let{position:Y,setPosition:G}=N5();return c2.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col",children:[c2.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2 skippr:border-b skippr:border-border skippr:px-4 skippr:py-3",children:[c2.jsxDEV(D2,{variant:"ghost",size:"icon-xs",onClick:$,"aria-label":"Back",children:c2.jsxDEV(VH,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),c2.jsxDEV("p",{className:"skippr:text-sm skippr:font-semibold",children:"Settings"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c2.jsxDEV("div",{className:"skippr:flex-1 skippr:overflow-y-auto skippr:p-4",children:c2.jsxDEV("div",{className:"skippr:mb-4",children:[c2.jsxDEV("p",{className:"skippr:mb-2 skippr:text-xs skippr:font-medium skippr:uppercase skippr:tracking-wide skippr:text-muted-foreground",children:"Widget Position"},void 0,!1,void 0,this),c2.jsxDEV("div",{className:"skippr:flex skippr:gap-2",children:[c2.jsxDEV("button",{type:"button",onClick:()=>G("left"),className:d1("skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:gap-2 skippr:rounded-lg skippr:border skippr:p-3 skippr:cursor-pointer skippr:transition-colors",Y==="left"?"skippr:border-primary skippr:bg-primary/5 skippr:text-primary":"skippr:border-border skippr:text-muted-foreground skippr:hover:border-primary/40"),children:[c2.jsxDEV(R8,{className:"skippr:size-5"},void 0,!1,void 0,this),c2.jsxDEV("span",{className:"skippr:text-xs skippr:font-medium",children:"Left"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c2.jsxDEV("button",{type:"button",onClick:()=>G("right"),className:d1("skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:gap-2 skippr:rounded-lg skippr:border skippr:p-3 skippr:cursor-pointer skippr:transition-colors",Y==="right"?"skippr:border-primary skippr:bg-primary/5 skippr:text-primary":"skippr:border-border skippr:text-muted-foreground skippr:hover:border-primary/40"),children:[c2.jsxDEV(DH,{className:"skippr:size-5"},void 0,!1,void 0,this),c2.jsxDEV("span",{className:"skippr:text-xs skippr:font-medium",children:"Right"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var X2=B(B1(),1);function L10(){let{variant:$,isConnected:Y,isStarting:G,error:H,startSession:q,disconnect:K,isPanelOpen:N,position:U,isAuthenticated:F,isValidating:M,authError:L,requestOtp:k,verifyOtp:R,isAuthSubmitting:_}=N5(),[S,T]=GJ.useState("main"),y=$==="floating",g=$==="sidebar";return GJ.useEffect(()=>{if(!g)return;let o=U==="right"?"marginRight":"marginLeft",c=U==="right"?"marginLeft":"marginRight";return document.body.style.transition="margin 300ms ease-in-out",document.body.style[c]="",document.body.style[o]=N?`${Au}px`:"",()=>{document.body.style.marginRight="",document.body.style.marginLeft="",document.body.style.transition=""}},[g,N,U]),X2.jsxDEV("div",{className:d1("skippr:fixed skippr:z-[9999]","skippr:bg-background skippr:border skippr:border-border","skippr:flex skippr:flex-col","skippr:transition-all skippr:duration-300 skippr:ease-in-out skippr:overflow-hidden",y&&"skippr:bottom-4 skippr:min-h-[28rem] skippr:max-h-[calc(100vh-6rem)] skippr:rounded-2xl skippr:shadow-2xl",y&&(U==="right"?"skippr:right-4":"skippr:left-4"),y&&!N&&"skippr:w-0 skippr:h-0 skippr:border-0",g&&"skippr:top-0 skippr:h-full",g&&U==="right"&&"skippr:right-0 skippr:border-l skippr:border-l-border",g&&U==="left"&&"skippr:left-0 skippr:border-r skippr:border-r-border",g&&!N&&"skippr:w-0 skippr:border-0"),style:{width:N?Au:void 0},children:S==="settings"?X2.jsxDEV(P10,{onBack:()=>T("main")},void 0,!1,void 0,this):X2.jsxDEV(X2.Fragment,{children:[X2.jsxDEV(Q10,{onOpenSettings:()=>T("settings")},void 0,!1,void 0,this),Y?X2.jsxDEV(RZ0,{onDisconnect:K},void 0,!1,void 0,this):M?X2.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",children:X2.jsxDEV("p",{className:"skippr:text-sm skippr:text-muted-foreground",children:"Loading..."},void 0,!1,void 0,this)},void 0,!1,void 0,this):F?X2.jsxDEV(M10,{onStartSession:q,isStarting:G,error:H},void 0,!1,void 0,this):X2.jsxDEV(G10,{requestOtp:k,verifyOtp:R,error:L,isSubmitting:_},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function RZ0({onDisconnect:$}){let G=C7()===n0.Connected,{allMessages:H,agentState:q,sendChatMessage:K,isSendingChat:N}=a00(),{phases:U}=e00(),{questions:F}=$10();if(!G)return X2.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",children:X2.jsxDEV("p",{className:"skippr:text-sm skippr:text-muted-foreground",children:"Connecting..."},void 0,!1,void 0,this)},void 0,!1,void 0,this);return X2.jsxDEV(X2.Fragment,{children:[X2.jsxDEV(A10,{onHangUp:$},void 0,!1,void 0,this),X2.jsxDEV("div",{className:"skippr:flex skippr:min-h-0 skippr:flex-1",children:[X2.jsxDEV("div",{className:"skippr:w-[180px] skippr:shrink-0 skippr:overflow-y-auto skippr:border-r",children:X2.jsxDEV(O10,{phases:U,questions:F},void 0,!1,void 0,this)},void 0,!1,void 0,this),X2.jsxDEV("div",{className:"skippr:flex skippr:min-w-0 skippr:flex-1 skippr:flex-col",children:X2.jsxDEV(F10,{messages:H,isStreaming:q==="speaking",sendChatMessage:K,isSendingChat:N},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var HJ=B(B1(),1);function k10(){let{isPanelOpen:$,togglePanel:Y,position:G,isMinimized:H,isConnected:q}=N5();if(H&&q)return null;return HJ.jsxDEV(D2,{size:"icon-lg",onClick:Y,className:d1("skippr:fixed skippr:bottom-6 skippr:z-[9998] skippr:size-14 skippr:rounded-full skippr:shadow-lg skippr:transition-all skippr:duration-300",G==="right"?"skippr:right-6":"skippr:left-6"),title:$?"Close chat":"Chat with us",children:$?HJ.jsxDEV(j7,{className:"skippr:size-6"},void 0,!1,void 0,this):HJ.jsxDEV(TH,{className:"skippr:size-6"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var F5=B(B1(),1);function R10({agentId:$,authToken:Y,appKey:G,userToken:H,position:q="right",variant:K="floating",minimizable:N=!0,defaultOpen:U=!1,children:F}){let M=F00({appKey:G}),L=Y||M.authToken||void 0,{connection:k,shouldConnect:R,isStarting:_,error:S,startSession:T,disconnect:y}=M00({agentId:$,authToken:L,appKey:G,userToken:H}),[g,o]=H6.useState(U),[c,C]=H6.useState(!1),[I,p]=H6.useState(()=>{try{let F0=localStorage.getItem("skippr_widget_position");if(F0==="left"||F0==="right")return F0}catch{}return q}),l=H6.useCallback((F0)=>{p(F0);try{localStorage.setItem("skippr_widget_position",F0)}catch{}},[]),f=H6.useCallback(()=>o(!0),[]),n=H6.useCallback(()=>o(!1),[]),u=H6.useCallback(()=>o((F0)=>!F0),[]),X0=H6.useCallback(()=>{C(!1),o(!0)},[]),Y0=H6.useCallback(()=>{if(!N)return;C(!0),o(!1)},[N]),M0=k!==null,y0=!!H||!!Y||M.isAuthenticated;H6.useEffect(()=>{if(k&&N)C(!0),o(!1);else if(!k)C(!1)},[k,N]);let G0=H6.useMemo(()=>({connection:k,shouldConnect:R,isConnected:M0,isStarting:_,error:S,startSession:T,disconnect:y,isPanelOpen:g,openPanel:f,closePanel:n,togglePanel:u,variant:K,position:I,setPosition:l,minimizable:N,isMinimized:c,expandPanel:X0,minimizePanel:Y0,isAuthenticated:y0,isValidating:M.isValidating,authError:M.error,requestOtp:M.requestOtp,verifyOtp:M.verifyOtp,logoutAuth:M.logout,isAuthSubmitting:M.isSubmitting}),[k,R,M0,_,S,T,y,g,f,n,u,K,I,l,N,c,X0,Y0,y0,M.isValidating,M.error,M.requestOtp,M.verifyOtp,M.logout,M.isSubmitting]),N0=F5.jsxDEV(F5.Fragment,{children:[k&&F5.jsxDEV(mU,{},void 0,!1,void 0,this),c&&M0&&F5.jsxDEV(l00,{},void 0,!1,void 0,this),F5.jsxDEV(k10,{},void 0,!1,void 0,this),F5.jsxDEV(L10,{},void 0,!1,void 0,this),F]},void 0,!0,void 0,this);return F5.jsxDEV(rB.Provider,{value:G0,children:k?F5.jsxDEV(SU,{serverUrl:k.livekitUrl,token:k.token,connect:R,audio:!0,onDisconnected:y,children:N0},void 0,!1,void 0,this):N0},void 0,!1,void 0,this)}var x10=B(B1(),1);function w10({agentId:$,appKey:Y,userToken:G,position:H,variant:q,minimizable:K}){return x10.jsxDEV(R10,{agentId:$,appKey:Y,userToken:G,position:H,variant:q,minimizable:K},void 0,!1,void 0,this)}var wZ0="skippr-sdk-root",Nu="skippr:sdk-styles",xZ0=`/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
|
|
274
|
+
`):"",this.name="UnsubscriptionError",this.errors=Y}});function uB($,Y){if($){var G=$.indexOf(Y);0<=G&&$.splice(G,1)}}var LH=function(){function $(Y){this.initialTeardown=Y,this.closed=!1,this._parentage=null,this._finalizers=null}return $.prototype.unsubscribe=function(){var Y,G,H,q,K;if(!this.closed){this.closed=!0;var N=this._parentage;if(N)if(this._parentage=null,Array.isArray(N))try{for(var U=ZX(N),F=U.next();!F.done;F=U.next()){var M=F.value;M.remove(this)}}catch(T){Y={error:T}}finally{try{F&&!F.done&&(G=U.return)&&G.call(U)}finally{if(Y)throw Y.error}}else N.remove(this);var L=this.initialTeardown;if(U2(L))try{L()}catch(T){K=T instanceof AU?T.errors:[T]}var k=this._finalizers;if(k){this._finalizers=null;try{for(var R=ZX(k),_=R.next();!_.done;_=R.next()){var S=_.value;try{$e(S)}catch(T){K=K??[],T instanceof AU?K=UH(UH([],WH(K)),WH(T.errors)):K.push(T)}}}catch(T){H={error:T}}finally{try{_&&!_.done&&(q=R.return)&&q.call(R)}finally{if(H)throw H.error}}}if(K)throw new AU(K)}},$.prototype.add=function(Y){var G;if(Y&&Y!==this)if(this.closed)$e(Y);else{if(Y instanceof $){if(Y.closed||Y._hasParent(this))return;Y._addParent(this)}(this._finalizers=(G=this._finalizers)!==null&&G!==void 0?G:[]).push(Y)}},$.prototype._hasParent=function(Y){var G=this._parentage;return G===Y||Array.isArray(G)&&G.includes(Y)},$.prototype._addParent=function(Y){var G=this._parentage;this._parentage=Array.isArray(G)?(G.push(Y),G):G?[G,Y]:Y},$.prototype._removeParent=function(Y){var G=this._parentage;G===Y?this._parentage=null:Array.isArray(G)&&uB(G,Y)},$.prototype.remove=function(Y){var G=this._finalizers;G&&uB(G,Y),Y instanceof $&&Y._removeParent(this)},$.EMPTY=function(){var Y=new $;return Y.closed=!0,Y}(),$}(),Ue=LH.EMPTY;function Fe($){return $ instanceof LH||$&&"closed"in $&&U2($.remove)&&U2($.add)&&U2($.unsubscribe)}function $e($){U2($)?$():$.unsubscribe()}var J30={Promise:void 0},A30={setTimeout:function($,Y){for(var G=[],H=2;H<arguments.length;H++)G[H-2]=arguments[H];return setTimeout.apply(void 0,UH([$,Y],WH(G)))},clearTimeout:function($){return clearTimeout($)},delegate:void 0};function Me($){A30.setTimeout(function(){throw $})}function MU(){}function hB($){$()}var LU=function($){t5(Y,$);function Y(G){var H=$.call(this)||this;return H.isStopped=!1,G?(H.destination=G,Fe(G)&&G.add(H)):H.destination=W30,H}return Y.create=function(G,H,q){return new FH(G,H,q)},Y.prototype.next=function(G){this.isStopped||this._next(G)},Y.prototype.error=function(G){this.isStopped||(this.isStopped=!0,this._error(G))},Y.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},Y.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,$.prototype.unsubscribe.call(this),this.destination=null)},Y.prototype._next=function(G){this.destination.next(G)},Y.prototype._error=function(G){try{this.destination.error(G)}finally{this.unsubscribe()}},Y.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},Y}(LH),K30=function(){function $(Y){this.partialObserver=Y}return $.prototype.next=function(Y){var G=this.partialObserver;if(G.next)try{G.next(Y)}catch(H){yB(H)}},$.prototype.error=function(Y){var G=this.partialObserver;if(G.error)try{G.error(Y)}catch(H){yB(H)}else yB(Y)},$.prototype.complete=function(){var Y=this.partialObserver;if(Y.complete)try{Y.complete()}catch(G){yB(G)}},$}(),FH=function($){t5(Y,$);function Y(G,H,q){var K=$.call(this)||this,N;return U2(G)||!G?N={next:G??void 0,error:H??void 0,complete:q??void 0}:N=G,K.destination=new K30(N),K}return Y}(LU);function yB($){Me($)}function N30($){throw $}var W30={closed:!0,next:MU,error:N30,complete:MU},kU=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function RU($){return $}function U30($){return $.length===0?RU:$.length===1?$[0]:function(Y){return $.reduce(function(G,H){return H(G)},Y)}}var L2=function(){function $(Y){Y&&(this._subscribe=Y)}return $.prototype.lift=function(Y){var G=new $;return G.source=this,G.operator=Y,G},$.prototype.subscribe=function(Y,G,H){var q=this,K=M30(Y)?Y:new FH(Y,G,H);return hB(function(){var N=q,U=N.operator,F=N.source;K.add(U?U.call(K,F):F?q._subscribe(K):q._trySubscribe(K))}),K},$.prototype._trySubscribe=function(Y){try{return this._subscribe(Y)}catch(G){Y.error(G)}},$.prototype.forEach=function(Y,G){var H=this;return G=Ze(G),new G(function(q,K){var N=new FH({next:function(U){try{Y(U)}catch(F){K(F),N.unsubscribe()}},error:K,complete:q});H.subscribe(N)})},$.prototype._subscribe=function(Y){var G;return(G=this.source)===null||G===void 0?void 0:G.subscribe(Y)},$.prototype[kU]=function(){return this},$.prototype.pipe=function(){for(var Y=[],G=0;G<arguments.length;G++)Y[G]=arguments[G];return U30(Y)(this)},$.prototype.toPromise=function(Y){var G=this;return Y=Ze(Y),new Y(function(H,q){var K;G.subscribe(function(N){return K=N},function(N){return q(N)},function(){return H(K)})})},$.create=function(Y){return new $(Y)},$}();function Ze($){var Y;return(Y=$??J30.Promise)!==null&&Y!==void 0?Y:Promise}function F30($){return $&&U2($.next)&&U2($.error)&&U2($.complete)}function M30($){return $&&$ instanceof LU||F30($)&&Fe($)}function O30($){return U2($==null?void 0:$.lift)}function A5($){return function(Y){if(O30(Y))return Y.lift(function(G){try{return $(G,this)}catch(H){this.error(H)}});throw TypeError("Unable to lift unknown Observable type")}}function F8($,Y,G,H,q){return new P30($,Y,G,H,q)}var P30=function($){t5(Y,$);function Y(G,H,q,K,N,U){var F=$.call(this,G)||this;return F.onFinalize=N,F.shouldUnsubscribe=U,F._next=H?function(M){try{H(M)}catch(L){G.error(L)}}:$.prototype._next,F._error=K?function(M){try{K(M)}catch(L){G.error(L)}finally{this.unsubscribe()}}:$.prototype._error,F._complete=q?function(){try{q()}catch(M){G.error(M)}finally{this.unsubscribe()}}:$.prototype._complete,F}return Y.prototype.unsubscribe=function(){var G;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var H=this.closed;$.prototype.unsubscribe.call(this),!H&&((G=this.onFinalize)===null||G===void 0||G.call(this))}},Y}(LU),L30=PU(function($){return function(){$(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),YX=function($){t5(Y,$);function Y(){var G=$.call(this)||this;return G.closed=!1,G.currentObservers=null,G.observers=[],G.isStopped=!1,G.hasError=!1,G.thrownError=null,G}return Y.prototype.lift=function(G){var H=new Ye(this,this);return H.operator=G,H},Y.prototype._throwIfClosed=function(){if(this.closed)throw new L30},Y.prototype.next=function(G){var H=this;hB(function(){var q,K;if(H._throwIfClosed(),!H.isStopped){H.currentObservers||(H.currentObservers=Array.from(H.observers));try{for(var N=ZX(H.currentObservers),U=N.next();!U.done;U=N.next()){var F=U.value;F.next(G)}}catch(M){q={error:M}}finally{try{U&&!U.done&&(K=N.return)&&K.call(N)}finally{if(q)throw q.error}}}})},Y.prototype.error=function(G){var H=this;hB(function(){if(H._throwIfClosed(),!H.isStopped){H.hasError=H.isStopped=!0,H.thrownError=G;for(var q=H.observers;q.length;)q.shift().error(G)}})},Y.prototype.complete=function(){var G=this;hB(function(){if(G._throwIfClosed(),!G.isStopped){G.isStopped=!0;for(var H=G.observers;H.length;)H.shift().complete()}})},Y.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(Y.prototype,"observed",{get:function(){var G;return((G=this.observers)===null||G===void 0?void 0:G.length)>0},enumerable:!1,configurable:!0}),Y.prototype._trySubscribe=function(G){return this._throwIfClosed(),$.prototype._trySubscribe.call(this,G)},Y.prototype._subscribe=function(G){return this._throwIfClosed(),this._checkFinalizedStatuses(G),this._innerSubscribe(G)},Y.prototype._innerSubscribe=function(G){var H=this,q=this,K=q.hasError,N=q.isStopped,U=q.observers;return K||N?Ue:(this.currentObservers=null,U.push(G),new LH(function(){H.currentObservers=null,uB(U,G)}))},Y.prototype._checkFinalizedStatuses=function(G){var H=this,q=H.hasError,K=H.thrownError,N=H.isStopped;q?G.error(K):N&&G.complete()},Y.prototype.asObservable=function(){var G=new L2;return G.source=this,G},Y.create=function(G,H){return new Ye(G,H)},Y}(L2),Ye=function($){t5(Y,$);function Y(G,H){var q=$.call(this)||this;return q.destination=G,q.source=H,q}return Y.prototype.next=function(G){var H,q;(q=(H=this.destination)===null||H===void 0?void 0:H.next)===null||q===void 0||q.call(H,G)},Y.prototype.error=function(G){var H,q;(q=(H=this.destination)===null||H===void 0?void 0:H.error)===null||q===void 0||q.call(H,G)},Y.prototype.complete=function(){var G,H;(H=(G=this.destination)===null||G===void 0?void 0:G.complete)===null||H===void 0||H.call(G)},Y.prototype._subscribe=function(G){var H,q;return(q=(H=this.source)===null||H===void 0?void 0:H.subscribe(G))!==null&&q!==void 0?q:Ue},Y}(YX),k30=function($){t5(Y,$);function Y(G){var H=$.call(this)||this;return H._value=G,H}return Object.defineProperty(Y.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),Y.prototype._subscribe=function(G){var H=$.prototype._subscribe.call(this,G);return!H.closed&&G.next(this._value),H},Y.prototype.getValue=function(){var G=this,H=G.hasError,q=G.thrownError,K=G._value;if(H)throw q;return this._throwIfClosed(),K},Y.prototype.next=function(G){$.prototype.next.call(this,this._value=G)},Y}(YX),R30={now:function(){return Date.now()}},w30=function($){t5(Y,$);function Y(G,H){return $.call(this)||this}return Y.prototype.schedule=function(G,H){return this},Y}(LH),Qe={setInterval:function($,Y){for(var G=[],H=2;H<arguments.length;H++)G[H-2]=arguments[H];return setInterval.apply(void 0,UH([$,Y],WH(G)))},clearInterval:function($){return clearInterval($)},delegate:void 0},x30=function($){t5(Y,$);function Y(G,H){var q=$.call(this,G,H)||this;return q.scheduler=G,q.work=H,q.pending=!1,q}return Y.prototype.schedule=function(G,H){var q;if(H===void 0&&(H=0),this.closed)return this;this.state=G;var K=this.id,N=this.scheduler;return K!=null&&(this.id=this.recycleAsyncId(N,K,H)),this.pending=!0,this.delay=H,this.id=(q=this.id)!==null&&q!==void 0?q:this.requestAsyncId(N,this.id,H),this},Y.prototype.requestAsyncId=function(G,H,q){return q===void 0&&(q=0),Qe.setInterval(G.flush.bind(G,this),q)},Y.prototype.recycleAsyncId=function(G,H,q){if(q===void 0&&(q=0),q!=null&&this.delay===q&&this.pending===!1)return H;H!=null&&Qe.clearInterval(H)},Y.prototype.execute=function(G,H){if(this.closed)return Error("executing a cancelled action");this.pending=!1;var q=this._execute(G,H);if(q)return q;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},Y.prototype._execute=function(G,H){var q=!1,K;try{this.work(G)}catch(N){q=!0,K=N||Error("Scheduled action threw falsy error")}if(q)return this.unsubscribe(),K},Y.prototype.unsubscribe=function(){if(!this.closed){var G=this,H=G.id,q=G.scheduler,K=q.actions;this.work=this.state=this.scheduler=null,this.pending=!1,uB(K,this),H!=null&&(this.id=this.recycleAsyncId(q,H,null)),this.delay=null,$.prototype.unsubscribe.call(this)}},Y}(w30),Ge=function(){function $(Y,G){G===void 0&&(G=$.now),this.schedulerActionCtor=Y,this.now=G}return $.prototype.schedule=function(Y,G,H){return G===void 0&&(G=0),new this.schedulerActionCtor(this,Y).schedule(H,G)},$.now=R30.now,$}(),V30=function($){t5(Y,$);function Y(G,H){H===void 0&&(H=Ge.now);var q=$.call(this,G,H)||this;return q.actions=[],q._active=!1,q}return Y.prototype.flush=function(G){var H=this.actions;if(this._active){H.push(G);return}var q;this._active=!0;do if(q=G.execute(G.state,G.delay))break;while(G=H.shift());if(this._active=!1,q){for(;G=H.shift();)G.unsubscribe();throw q}},Y}(Ge),sZ0=new V30(x30);function _30($){return $&&U2($.schedule)}function I30($){return $[$.length-1]}function Oe($){return _30(I30($))?$.pop():void 0}var Pe=function($){return $&&typeof $.length=="number"&&typeof $!="function"};function Le($){return U2($==null?void 0:$.then)}function ke($){return U2($[kU])}function Re($){return Symbol.asyncIterator&&U2($==null?void 0:$[Symbol.asyncIterator])}function we($){return TypeError("You provided "+($!==null&&typeof $=="object"?"an invalid object":"'"+$+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function C30(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var xe=C30();function Ve($){return U2($==null?void 0:$[xe])}function _e($){return q30(this,arguments,function(){var Y,G,H,q;return We(this,function(K){switch(K.label){case 0:Y=$.getReader(),K.label=1;case 1:K.trys.push([1,,9,10]),K.label=2;case 2:return[4,$X(Y.read())];case 3:return G=K.sent(),H=G.value,q=G.done,q?[4,$X(void 0)]:[3,5];case 4:return[2,K.sent()];case 5:return[4,$X(H)];case 6:return[4,K.sent()];case 7:return K.sent(),[3,2];case 8:return[3,10];case 9:return Y.releaseLock(),[7];case 10:return[2]}})})}function Ie($){return U2($==null?void 0:$.getReader)}function M8($){if($ instanceof L2)return $;if($!=null){if(ke($))return T30($);if(Pe($))return E30($);if(Le($))return D30($);if(Re($))return Ce($);if(Ve($))return S30($);if(Ie($))return v30($)}throw we($)}function T30($){return new L2(function(Y){var G=$[kU]();if(U2(G.subscribe))return G.subscribe(Y);throw TypeError("Provided object does not correctly implement Symbol.observable")})}function E30($){return new L2(function(Y){for(var G=0;G<$.length&&!Y.closed;G++)Y.next($[G]);Y.complete()})}function D30($){return new L2(function(Y){$.then(function(G){Y.closed||(Y.next(G),Y.complete())},function(G){return Y.error(G)}).then(null,Me)})}function S30($){return new L2(function(Y){var G,H;try{for(var q=ZX($),K=q.next();!K.done;K=q.next()){var N=K.value;if(Y.next(N),Y.closed)return}}catch(U){G={error:U}}finally{try{K&&!K.done&&(H=q.return)&&H.call(q)}finally{if(G)throw G.error}}Y.complete()})}function Ce($){return new L2(function(Y){j30($,Y).catch(function(G){return Y.error(G)})})}function v30($){return Ce(_e($))}function j30($,Y){var G,H,q,K;return z30(this,void 0,void 0,function(){var N,U;return We(this,function(F){switch(F.label){case 0:F.trys.push([0,5,6,11]),G=B30($),F.label=1;case 1:return[4,G.next()];case 2:if(H=F.sent(),!!H.done)return[3,4];if(N=H.value,Y.next(N),Y.closed)return[2];F.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return U=F.sent(),q={error:U},[3,11];case 6:return F.trys.push([6,,9,10]),H&&!H.done&&(K=G.return)?[4,K.call(G)]:[3,8];case 7:F.sent(),F.label=8;case 8:return[3,10];case 9:if(q)throw q.error;return[7];case 10:return[7];case 11:return Y.complete(),[2]}})})}function I7($,Y,G,H,q){H===void 0&&(H=0),q===void 0&&(q=!1);var K=Y.schedule(function(){G(),q?$.add(this.schedule(null,H)):this.unsubscribe()},H);if($.add(K),!q)return K}function Te($,Y){return Y===void 0&&(Y=0),A5(function(G,H){G.subscribe(F8(H,function(q){return I7(H,$,function(){return H.next(q)},Y)},function(){return I7(H,$,function(){return H.complete()},Y)},function(q){return I7(H,$,function(){return H.error(q)},Y)}))})}function Ee($,Y){return Y===void 0&&(Y=0),A5(function(G,H){H.add($.schedule(function(){return G.subscribe(H)},Y))})}function p30($,Y){return M8($).pipe(Ee(Y),Te(Y))}function f30($,Y){return M8($).pipe(Ee(Y),Te(Y))}function g30($,Y){return new L2(function(G){var H=0;return Y.schedule(function(){H===$.length?G.complete():(G.next($[H++]),G.closed||this.schedule())})})}function m30($,Y){return new L2(function(G){var H;return I7(G,Y,function(){H=$[xe](),I7(G,Y,function(){var q,K,N;try{q=H.next(),K=q.value,N=q.done}catch(U){G.error(U);return}N?G.complete():G.next(K)},0,!0)}),function(){return U2(H==null?void 0:H.return)&&H.return()}})}function De($,Y){if(!$)throw Error("Iterable cannot be null");return new L2(function(G){I7(G,Y,function(){var H=$[Symbol.asyncIterator]();I7(G,Y,function(){H.next().then(function(q){q.done?G.complete():G.next(q.value)})},0,!0)})})}function y30($,Y){return De(_e($),Y)}function b30($,Y){if($!=null){if(ke($))return p30($,Y);if(Pe($))return g30($,Y);if(Le($))return f30($,Y);if(Re($))return De($,Y);if(Ve($))return m30($,Y);if(Ie($))return y30($,Y)}throw we($)}function wU($,Y){return Y?b30($,Y):M8($)}var lZ0=PU(function($){return function(Y){Y===void 0&&(Y=null),$(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=Y}});function I4($,Y){return A5(function(G,H){var q=0;G.subscribe(F8(H,function(K){H.next($.call(Y,K,q++))}))})}function h30($,Y,G,H,q,K,N,U){var F=[],M=0,L=0,k=!1,R=function(){k&&!F.length&&!M&&Y.complete()},_=function(T){return M<H?S(T):F.push(T)},S=function(T){M++;var y=!1;M8(G(T,L++)).subscribe(F8(Y,function(g){Y.next(g)},function(){y=!0},void 0,function(){if(y)try{M--;for(var g=function(){var o=F.shift();N||S(o)};F.length&&M<H;)g();R()}catch(o){Y.error(o)}}))};return $.subscribe(F8(Y,_,function(){k=!0,R()})),function(){}}function Se($,Y,G){return G===void 0&&(G=1/0),U2(Y)?Se(function(H,q){return I4(function(K,N){return Y(H,K,q,N)})(M8($(H,q)))},G):(typeof Y=="number"&&(G=Y),A5(function(H,q){return h30(H,q,$,G)}))}function u30($){return Se(RU,$)}function d30(){return u30(1)}function He(){for(var $=[],Y=0;Y<arguments.length;Y++)$[Y]=arguments[Y];return d30()(wU($,Oe($)))}function ve($,Y){return A5(function(G,H){var q=0;G.subscribe(F8(H,function(K){return $.call(Y,K,q++)&&H.next(K)}))})}function s30($,Y,G,H,q){return function(K,N){var U=G,F=Y,M=0;K.subscribe(F8(N,function(L){var k=M++;F=U?$(F,L,k):(U=!0,L),N.next(F)},q))}}function OU($,Y){return A5(s30($,Y,arguments.length>=2,!0))}function l30($){$===void 0&&($={});var Y=$.connector,G=Y===void 0?function(){return new YX}:Y,H=$.resetOnError,q=H===void 0?!0:H,K=$.resetOnComplete,N=K===void 0?!0:K,U=$.resetOnRefCountZero,F=U===void 0?!0:U;return function(M){var L,k,R,_=0,S=!1,T=!1,y=function(){k==null||k.unsubscribe(),k=void 0},g=function(){y(),L=R=void 0,S=T=!1},o=function(){var c=L;g(),c==null||c.unsubscribe()};return A5(function(c,C){_++,!T&&!S&&y();var I=R=R??G();C.add(function(){_--,_===0&&!T&&!S&&(k=KU(o,F))}),I.subscribe(C),!L&&_>0&&(L=new FH({next:function(p){return I.next(p)},error:function(p){T=!0,y(),k=KU(g,q,p),I.error(p)},complete:function(){S=!0,y(),k=KU(g,N),I.complete()}}),M8(c).subscribe(L))})(M)}}function KU($,Y){for(var G=[],H=2;H<arguments.length;H++)G[H-2]=arguments[H];if(Y===!0){$();return}if(Y!==!1){var q=new FH({next:function(){q.unsubscribe(),$()}});return M8(Y.apply(void 0,UH([],WH(G)))).subscribe(q)}}function O8(){for(var $=[],Y=0;Y<arguments.length;Y++)$[Y]=arguments[Y];var G=Oe($);return A5(function(H,q){(G?He($,H,G):He($,H)).subscribe(q)})}function ze($){return A5(function(Y,G){M8($).subscribe(F8(G,function(){return G.complete()},MU)),!G.closed&&Y.subscribe(G)})}function c30($,Y,G){var H=U2($)||Y||G?{next:$,error:Y,complete:G}:$;return H?A5(function(q,K){var N;(N=H.subscribe)===null||N===void 0||N.call(H);var U=!0;q.subscribe(F8(K,function(F){var M;(M=H.next)===null||M===void 0||M.call(H,F),K.next(F)},function(){var F;U=!1,(F=H.complete)===null||F===void 0||F.call(H),K.complete()},function(F){var M;U=!1,(M=H.error)===null||M===void 0||M.call(H,F),K.error(F)},function(){var F,M;U&&((F=H.unsubscribe)===null||F===void 0||F.call(H)),(M=H.finalize)===null||M===void 0||M.call(H)}))}):RU}var{defineProperty:i30,defineProperties:o30,getOwnPropertyDescriptors:r30,getOwnPropertySymbols:qe}=Object,n30=Object.prototype.hasOwnProperty,a30=Object.prototype.propertyIsEnumerable,Be=($,Y,G)=>(Y in $)?i30($,Y,{enumerable:!0,configurable:!0,writable:!0,value:G}):$[Y]=G,U8=($,Y)=>{for(var G in Y||(Y={}))n30.call(Y,G)&&Be($,G,Y[G]);if(qe)for(var G of qe(Y))a30.call(Y,G)&&Be($,G,Y[G]);return $},_7=($,Y)=>o30($,r30(Y)),MH=($,Y,G)=>new Promise((H,q)=>{var K=(F)=>{try{U(G.next(F))}catch(M){q(M)}},N=(F)=>{try{U(G.throw(F))}catch(M){q(M)}},U=(F)=>F.done?H(F.value):Promise.resolve(F.value).then(K,N);U((G=G.apply($,Y)).next())}),je="lk";function kH($){return typeof $>"u"?!1:t30($)||e30($)}function t30($){var Y;return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&$.hasOwnProperty("track")&&typeof((Y=$.publication)==null?void 0:Y.track)<"u":!1}function e30($){return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&$.hasOwnProperty("publication")&&typeof $.publication<"u":!1}function XX0($){return $?$.hasOwnProperty("participant")&&$.hasOwnProperty("source")&&typeof $.publication>"u":!1}function dB($){if(typeof $=="string"||typeof $=="number")return`${$}`;if(XX0($))return`${$.participant.identity}_${$.source}_placeholder`;if(kH($))return`${$.participant.identity}_${$.publication.source}_${$.publication.trackSid}`;throw Error(`Can't generate a id for the given track reference: ${$}`)}var $X0=[t.ConnectionStateChanged,t.RoomMetadataChanged,t.ActiveSpeakersChanged,t.ConnectionQualityChanged,t.ParticipantConnected,t.ParticipantDisconnected,t.ParticipantPermissionsChanged,t.ParticipantMetadataChanged,t.ParticipantNameChanged,t.ParticipantAttributesChanged,t.TrackMuted,t.TrackUnmuted,t.TrackPublished,t.TrackUnpublished,t.TrackStreamStateChanged,t.TrackSubscriptionFailed,t.TrackSubscriptionPermissionChanged,t.TrackSubscriptionStatusChanged],pe=[...$X0,t.LocalTrackPublished,t.LocalTrackUnpublished],ZX0=[Q0.TrackPublished,Q0.TrackUnpublished,Q0.TrackMuted,Q0.TrackUnmuted,Q0.TrackStreamStateChanged,Q0.TrackSubscribed,Q0.TrackUnsubscribed,Q0.TrackSubscriptionPermissionChanged,Q0.TrackSubscriptionFailed,Q0.LocalTrackPublished,Q0.LocalTrackUnpublished],YX0=[Q0.ConnectionQualityChanged,Q0.IsSpeakingChanged,Q0.ParticipantMetadataChanged,Q0.ParticipantPermissionsChanged,Q0.TrackMuted,Q0.TrackUnmuted,Q0.TrackPublished,Q0.TrackUnpublished,Q0.TrackStreamStateChanged,Q0.TrackSubscriptionFailed,Q0.TrackSubscriptionPermissionChanged,Q0.TrackSubscriptionStatusChanged],cZ0=[...YX0,Q0.LocalTrackPublished,Q0.LocalTrackUnpublished],j1=H30.getLogger("lk-components-js");j1.setDefaultLevel("WARN");function fe($,Y){var G;return _7(U8({},$),{receivedAtMediaTimestamp:(G=Y.rtpTimestamp)!=null?G:0,receivedAt:Y.timestamp})}function ge($,Y,G){return[...$,...Y].reduceRight((H,q)=>(H.find((K)=>K.id===q.id)||H.unshift(q),H),[]).slice(0-G)}var QX=(($)=>($.AgentState="lk.agent.state",$.PublishOnBehalf="lk.publish_on_behalf",$.TranscriptionFinal="lk.transcription_final",$.TranscriptionSegmentId="lk.segment_id",$.TranscribedTrackId="lk.transcribed_track_id",$))(QX||{});function xU($){return typeof $=="object"}function VU($){return Array.isArray($)&&$.filter(xU).length>0}function QX0($){return`${je}-${$}`}function _U($){let Y=OH($),G=IU($.participant).pipe(I4(()=>OH($)),O8(Y));return{className:QX0($.source===e.Source.Camera||$.source===e.Source.ScreenShare?"participant-media-video":"participant-media-audio"),trackObserver:G}}function OH($){if(kH($))return $.publication;{let{source:Y,name:G,participant:H}=$;if(Y&&G)return H.getTrackPublications().find((q)=>q.source===Y&&q.trackName===G);if(G)return H.getTrackPublicationByName(G);if(Y)return H.getTrackPublication(Y);throw Error("At least one of source and name needs to be defined")}}function me($,...Y){return new L2((G)=>{let H=()=>{G.next($)};return Y.forEach((q)=>{$.on(q,H)}),()=>{Y.forEach((q)=>{$.off(q,H)})}}).pipe(O8($))}function ye($,Y){return new L2((G)=>{let H=(...q)=>{G.next(q)};return $.on(Y,H),()=>{$.off(Y,H)}})}function be($){return ye($,t.ConnectionStateChanged).pipe(I4(([Y])=>Y),O8($.state))}function GX0($){return ye($,t.DataReceived)}function he($,...Y){return new L2((G)=>{let H=()=>{G.next($)};return Y.forEach((q)=>{$.on(q,H)}),()=>{Y.forEach((q)=>{$.off(q,H)})}}).pipe(O8($))}function IU($){return he($,Q0.TrackMuted,Q0.TrackUnmuted,Q0.ParticipantPermissionsChanged,Q0.TrackPublished,Q0.TrackUnpublished,Q0.LocalTrackPublished,Q0.LocalTrackUnpublished,Q0.MediaDevicesError,Q0.TrackSubscriptionStatusChanged).pipe(I4((Y)=>{let{isMicrophoneEnabled:G,isCameraEnabled:H,isScreenShareEnabled:q}=Y,K=Y.getTrackPublication(e.Source.Microphone),N=Y.getTrackPublication(e.Source.Camera);return{isCameraEnabled:H,isMicrophoneEnabled:G,isScreenShareEnabled:q,cameraTrack:N,microphoneTrack:K,participant:Y}}))}function HX0($,Y){return new L2((G)=>{let H=(...q)=>{G.next(q)};return $.on(Y,H),()=>{$.off(Y,H)}})}function ue($,Y={}){var G;let H,q=new L2((F)=>(H=F,()=>U.unsubscribe())).pipe(O8(Array.from($.remoteParticipants.values()))),K=(G=Y.additionalRoomEvents)!=null?G:pe,N=Array.from(new Set([t.ParticipantConnected,t.ParticipantDisconnected,t.ConnectionStateChanged,...K])),U=me($,...N).subscribe((F)=>H==null?void 0:H.next(Array.from(F.remoteParticipants.values())));return $.remoteParticipants.size>0&&(H==null||H.next(Array.from($.remoteParticipants.values()))),q}function CU($){return typeof $>"u"?new L2:HX0($,Q0.AttributesChanged).pipe(I4(([Y])=>({changed:Y,attributes:$.attributes})),O8({changed:$.attributes,attributes:$.attributes}))}var TU={CHAT:"lk.chat",TRANSCRIPTION:"lk.transcription"},zX0={CHAT:"lk-chat-topic"};function de($,Y){return MH(this,arguments,function*(G,H,q={}){let{reliable:K,destinationIdentities:N,topic:U}=q;yield G.publishData(H,{destinationIdentities:N,topic:U,reliable:K})})}function se($,Y,G){let H=Array.isArray(Y)?Y:[Y],q=GX0($).pipe(ve(([,,,U])=>Y===void 0||U!==void 0&&H.includes(U)),I4(([U,F,,M])=>{let L={payload:U,topic:M,from:F};return G==null||G(L),L})),K,N=new L2((U)=>{K=U});return{messageObservable:q,isSendingObservable:N,send:(U,...F)=>MH(this,[U,...F],function*(M,L={}){K.next(!0);try{yield de($.localParticipant,M,U8({topic:H[0]},L))}finally{K.next(!1)}})}}var bB=new WeakMap;function qX0($){return $.ignoreLegacy==!0}var BX0=($)=>JSON.parse(new TextDecoder().decode($)),JX0=($)=>new TextEncoder().encode(JSON.stringify($));function le($,Y){var G,H,q,K,N,U;let F=()=>{var I,p,l;return((I=$.serverInfo)==null?void 0:I.edition)===1||!!((p=$.serverInfo)!=null&&p.version)&&Y4((l=$.serverInfo)==null?void 0:l.version,"1.8.2")>0},M=new YX,L=(G=Y==null?void 0:Y.channelTopic)!=null?G:TU.CHAT,k=(H=Y==null?void 0:Y.channelTopic)!=null?H:zX0.CHAT,R=!1;bB.has($)||(R=!0);let _=(q=bB.get($))!=null?q:new Map,S=(K=_.get(L))!=null?K:new YX;_.set(L,S),bB.set($,_);let T=(N=Y==null?void 0:Y.messageDecoder)!=null?N:BX0;if(R){$.registerTextStreamHandler(L,(p,l)=>MH(this,null,function*(){let{id:f,timestamp:n}=p.info;wU(p).pipe(OU((u,X0)=>u+X0),I4((u)=>({id:f,timestamp:n,message:u,from:$.getParticipantByIdentity(l.identity),type:"chatMessage"}))).subscribe({next:(u)=>S.next(u)})}));let{messageObservable:I}=se($,[k]);I.pipe(I4((p)=>{let l=T(p.payload);return qX0(l)?void 0:_7(U8({},l),{type:"chatMessage",from:p.from})}),ve((p)=>!!p),ze(M)).subscribe(S)}let y=S.pipe(OU((I,p)=>{if("id"in p&&I.find((l)=>{var f,n;return((f=l.from)==null?void 0:f.identity)===((n=p.from)==null?void 0:n.identity)&&l.id===p.id})){let l=I.findIndex((f)=>f.id===p.id);if(l>-1){let f=I[l];I[l]=_7(U8({},p),{timestamp:f.timestamp,editTimestamp:p.timestamp})}return[...I]}return[...I,p]},[]),ze(M)),g=new k30(!1),o=(U=Y==null?void 0:Y.messageEncoder)!=null?U:JX0,c=(I,p)=>MH(this,null,function*(){var l;p||(p={}),(l=p.topic)!=null||(p.topic=L),g.next(!0);try{let f={id:(yield $.localParticipant.sendText(I,p)).id,timestamp:Date.now(),message:I},n=_7(U8({},f),{attachedFiles:p.attachments}),u=_7(U8({},n),{type:"chatMessage",from:$.localParticipant,attributes:p.attributes});S.next(u);let X0=o(_7(U8({},f),{ignoreLegacy:F()}));try{yield de($.localParticipant,X0,{reliable:!0,topic:k})}catch(Y0){j1.info("could not send message in legacy chat format",Y0)}return u}finally{g.next(!1)}});function C(){M.next(),M.complete(),S.complete(),bB.delete($),$.unregisterTextStreamHandler(L)}return $.once(t.Disconnected,C),{messageObservable:y,isSendingObservable:g,send:c}}function ce(){return{className:"lk-room-container"}}function Je($,Y,G=!0){let H=[$.localParticipant,...Array.from($.remoteParticipants.values())],q=[];return H.forEach((K)=>{Y.forEach((N)=>{let U=Array.from(K.trackPublications.values()).filter((F)=>F.source===N&&(!G||F.track)).map((F)=>({participant:K,publication:F,source:F.source}));q.push(...U)})}),{trackReferences:q,participants:H}}function Ae($,Y,G=!1){let{sources:H,kind:q,name:K}=Y;return Array.from($.trackPublications.values()).filter((N)=>(!H||H.includes(N.source))&&(!q||N.kind===q)&&(!K||N.trackName===K)&&(!G||N.track)).map((N)=>({participant:$,publication:N,source:N.source}))}function ie($,Y,G){var H,q;let K=(H=G.additionalRoomEvents)!=null?H:pe,N=(q=G.onlySubscribed)!=null?q:!0,U=Array.from(new Set([t.ParticipantConnected,t.ParticipantDisconnected,t.ConnectionStateChanged,t.LocalTrackPublished,t.LocalTrackUnpublished,t.TrackPublished,t.TrackUnpublished,t.TrackSubscriptionStatusChanged,...K]).values());return me($,...U).pipe(I4((F)=>{let M=Je(F,Y,N);return j1.debug(`TrackReference[] was updated. (length ${M.trackReferences.length})`,M),M}),O8(Je($,Y,N)))}function oe($,Y){return he($,...ZX0).pipe(I4((G)=>{let H=Ae(G,Y);return j1.debug(`TrackReference[] was updated. (length ${H.length})`,H),H}),O8(Ae($,Y)))}function re($,Y){return new L2((G)=>{let H=(...q)=>{G.next(q)};return $.on(Y,H),()=>{$.off(Y,H)}})}function ne($){return re($,B0.TranscriptionReceived)}function ae($){return re($,B0.TimeSyncUpdate).pipe(I4(([Y])=>Y))}function AX0($,Y){if(typeof localStorage>"u"){j1.error("Local storage is not available.");return}try{if(Y){let G=Object.fromEntries(Object.entries(Y).filter(([,H])=>H!==""));localStorage.setItem($,JSON.stringify(G))}}catch(G){j1.error(`Error setting item to local storage: ${G}`)}}function KX0($){if(typeof localStorage>"u"){j1.error("Local storage is not available.");return}try{let Y=localStorage.getItem($);if(!Y){j1.warn(`Item with key ${$} does not exist in local storage.`);return}return JSON.parse(Y)}catch(Y){j1.error(`Error getting item from local storage: ${Y}`);return}}function NX0($){return{load:()=>KX0($),save:(Y)=>AX0($,Y)}}var WX0=`${je}-user-choices`;var{load:iZ0,save:oZ0}=NX0(WX0);var NU=null,WU=null,UX0=0;function Ke(){return NU||(NU=new Map),NU}function FX0(){return WU||(WU=new WeakMap),WU}function MX0($,Y){let G=FX0(),H=G.get($);return H||(H=`room_${UX0++}`,G.set($,H)),`${H}:${Y}`}function te($,Y){let G=MX0($,Y),H=Ke(),q=H.get(G);if(q)return q;let K=new YX,N=[],U="lk.segment_id",F=K.pipe(c30({subscribe:()=>{$.registerTextStreamHandler(Y,(M,L)=>MH(this,null,function*(){var k;let R=wU(M).pipe(OU((S,T)=>S+T,"")),_=!!((k=M.info.attributes)!=null&&k[U]);R.subscribe((S)=>{let T=N.findIndex((y)=>{var g,o;return y.streamInfo.id===M.info.id||_&&((g=y.streamInfo.attributes)==null?void 0:g[U])===((o=M.info.attributes)==null?void 0:o[U])});T!==-1?(N[T]=_7(U8({},N[T]),{text:S}),K.next([...N])):(N.push({text:S,participantInfo:L,streamInfo:M.info}),K.next([...N]))})}))},finalize:()=>{$.unregisterTextStreamHandler(Y)}}),l30());return H.set(G,F),$.on(t.Disconnected,()=>{Ke().delete(G),N=[],K.next([])}),F}var OX0=Q4.createContext(void 0);var ee=Q4.createContext(void 0);function X00(){return Q4.useContext(ee)}function EU($){let Y=X00(),G=$??Y;if(!G)throw Error("No TrackRef, make sure you are inside a TrackRefContext or pass the TrackRef explicitly");return G}var $00=Q4.createContext(void 0);function sB(){return Q4.useContext($00)}var lB=Q4.createContext(void 0);function DU(){return Q4.useContext(lB)}function P8($){let Y=DU(),G=$??Y;if(!G)throw Error("No room provided, make sure you are inside a Room context or pass the room explicitly");return G}var PX0=Q4.createContext(void 0);var Z00=Q4.createContext(void 0);var F2=B(W1(),1);function Y00($){var Y,G,H="";if(typeof $=="string"||typeof $=="number")H+=$;else if(typeof $=="object")if(Array.isArray($)){var q=$.length;for(Y=0;Y<q;Y++)$[Y]&&(G=Y00($[Y]))&&(H&&(H+=" "),H+=G)}else for(G in $)$[G]&&(H&&(H+=" "),H+=G);return H}function LX0(){for(var $,Y,G=0,H="",q=arguments.length;G<q;G++)($=arguments[G])&&(Y=Y00($))&&(H&&(H+=" "),H+=Y);return H}function kX0(...$){return(...Y)=>{for(let G of $)if(typeof G=="function")try{G(...Y)}catch(H){console.error(H)}}}function Q00(...$){let Y={...$[0]};for(let G=1;G<$.length;G++){let H=$[G];for(let q in H){let K=Y[q],N=H[q];typeof K=="function"&&typeof N=="function"&&q[0]==="o"&&q[1]==="n"&&q.charCodeAt(2)>=65&&q.charCodeAt(2)<=90?Y[q]=kX0(K,N):(q==="className"||q==="UNSAFE_className")&&typeof K=="string"&&typeof N=="string"?Y[q]=LX0(K,N):Y[q]=N!==void 0?N:K}}return Y}function RX0($){return $!==void 0}function G00(...$){return Q00(...$.filter(RX0))}function wX0($,Y){return $==="processor"&&Y&&typeof Y=="object"&&"name"in Y?Y.name:$==="e2ee"&&Y?"e2ee-enabled":Y}var xX0={connect:!0,audio:!1,video:!1};function H00($){let{token:Y,serverUrl:G,options:H,room:q,connectOptions:K,connect:N,audio:U,video:F,screen:M,onConnected:L,onDisconnected:k,onError:R,onMediaDeviceFailure:_,onEncryptionError:S,simulateParticipants:T,...y}={...xX0,...$};H&&q&&j1.warn("when using a manually created room, the options object will be ignored. set the desired options directly when creating the room instead.");let[g,o]=F2.useState(),c=F2.useRef(N);F2.useEffect(()=>{o(q??new r5(H))},[q,JSON.stringify(H,wX0)]);let C=F2.useMemo(()=>{let{className:I}=ce();return Q00(y,{className:I})},[y]);return F2.useEffect(()=>{if(!g)return;let I=()=>{let u=g.localParticipant;j1.debug("trying to publish local tracks"),Promise.all([u.setMicrophoneEnabled(!!U,typeof U!="boolean"?U:void 0),u.setCameraEnabled(!!F,typeof F!="boolean"?F:void 0),u.setScreenShareEnabled(!!M,typeof M!="boolean"?M:void 0)]).catch((X0)=>{j1.warn(X0),R==null||R(X0)})},p=(u,X0)=>{let Y0=e3.getFailure(u);_==null||_(Y0,X0)},l=(u)=>{S==null||S(u)},f=(u)=>{k==null||k(u)},n=()=>{L==null||L()};return g.on(t.SignalConnected,I).on(t.MediaDevicesError,p).on(t.EncryptionError,l).on(t.Disconnected,f).on(t.Connected,n),()=>{g.off(t.SignalConnected,I).off(t.MediaDevicesError,p).off(t.EncryptionError,l).off(t.Disconnected,f).off(t.Connected,n)}},[g,U,F,M,R,S,_,L,k]),F2.useEffect(()=>{if(g){if(T){g.simulateParticipants({participants:{count:T},publish:{audio:!0,useRealTracks:!0}});return}if(N){if(c.current=!0,j1.debug("connecting"),!Y){j1.debug("no token yet");return}if(!G){j1.warn("no livekit url provided"),R==null||R(Error("no livekit url provided"));return}g.connect(G,Y,K).catch((I)=>{j1.warn(I),c.current===!0&&(R==null||R(I))})}else j1.debug("disconnecting because connect is false"),c.current=!1,g.disconnect()}},[N,Y,JSON.stringify(K),g,R,G,T]),F2.useEffect(()=>{if(g)return()=>{j1.info("disconnecting on onmount"),g.disconnect()}},[g]),{room:g,htmlProps:C}}var SU=F2.forwardRef(function($,Y){let{room:G,htmlProps:H}=H00($);return F2.createElement("div",{ref:Y,...H},G&&F2.createElement(lB.Provider,{value:G},F2.createElement(Z00.Provider,{value:$.featureFlags},$.children)))});function L8($,Y,G=!0){let[H,q]=z1.useState(Y);return z1.useEffect(()=>{if(G&&q(Y),typeof window>"u"||!$)return;let K=$.subscribe(q);return()=>K.unsubscribe()},[$,G]),H}function C7($){let Y=P8($),G=z1.useMemo(()=>be(Y),[Y]);return L8(G,Y.state)}function K5($={}){let Y=P8($.room),[G,H]=z1.useState(Y.localParticipant),[q,K]=z1.useState(G.isMicrophoneEnabled),[N,U]=z1.useState(G.isCameraEnabled),[F,M]=z1.useState(G.isScreenShareEnabled),[L,k]=z1.useState(G.lastMicrophoneError),[R,_]=z1.useState(G.lastCameraError),[S,T]=z1.useState(void 0),[y,g]=z1.useState(void 0),o=(c)=>{U(c.isCameraEnabled),K(c.isMicrophoneEnabled),M(c.isScreenShareEnabled),g(c.cameraTrack),T(c.microphoneTrack),k(c.participant.lastMicrophoneError),_(c.participant.lastCameraError),H(c.participant)};return z1.useEffect(()=>{let c=IU(Y.localParticipant).subscribe(o);return()=>c.unsubscribe()},[Y]),{isMicrophoneEnabled:q,isScreenShareEnabled:F,isCameraEnabled:N,microphoneTrack:S,cameraTrack:y,lastMicrophoneError:L,lastCameraError:R,localParticipant:G}}function RH($={}){let Y=P8($.room),[G,H]=z1.useState([]);return z1.useEffect(()=>{let q=ue(Y,{additionalRoomEvents:$.updateOnlyOn}).subscribe(H);return()=>q.unsubscribe()},[Y,JSON.stringify($.updateOnlyOn)]),G}function B00($={}){let Y=RH($),{localParticipant:G}=K5($);return z1.useMemo(()=>[G,...Y],[G,Y])}function jU($=[e.Source.Camera,e.Source.Microphone,e.Source.ScreenShare,e.Source.ScreenShareAudio,e.Source.Unknown],Y={}){let G=P8(Y.room),[H,q]=z1.useState([]),[K,N]=z1.useState([]),U=z1.useMemo(()=>$.map((F)=>xU(F)?F.source:F),[JSON.stringify($)]);return z1.useEffect(()=>{let F=ie(G,U,{additionalRoomEvents:Y.updateOnlyOn,onlySubscribed:Y.onlySubscribed}).subscribe(({trackReferences:M,participants:L})=>{j1.debug("setting track bundles",M,L),q(M),N(L)});return()=>F.unsubscribe()},[G,JSON.stringify(Y.onlySubscribed),JSON.stringify(Y.updateOnlyOn),JSON.stringify($)]),z1.useMemo(()=>{if(VU($)){let F=EX0($,K),M=Array.from(H);return K.forEach((L)=>{F.has(L.identity)&&(F.get(L.identity)??[]).forEach((k)=>{if(H.find(({participant:_,publication:S})=>L.identity===_.identity&&S.source===k))return;j1.debug(`Add ${k} placeholder for participant ${L.identity}.`);let R={participant:L,source:k};M.push(R)})}),M}else return H},[H,K,$])}function TX0($,Y){let G=new Set($);for(let H of Y)G.delete(H);return G}function EX0($,Y){let G=new Map;if(VU($)){let H=$.filter((q)=>q.withPlaceholder).map((q)=>q.source);Y.forEach((q)=>{let K=q.getTrackPublications().map((U)=>{var F;return(F=U.track)==null?void 0:F.source}).filter((U)=>U!==void 0),N=Array.from(TX0(new Set(H),new Set(K)));N.length>0&&G.set(q.identity,N)})}return G}function pU($){let Y=P8($==null?void 0:$.room),G=C7(Y),H=z1.useMemo(()=>G===n0.Disconnected,[G]),q=z1.useMemo(()=>le(Y,$),[Y,$,H]),K=L8(q.isSendingObservable,!1),N=L8(q.messageObservable,[]);return{send:q.send,chatMessages:N,isSending:K}}function vU($,Y={}){let G,H;typeof Y=="string"?G=Y:(G=Y==null?void 0:Y.participantIdentity,H=Y==null?void 0:Y.room);let q=sB(),K=B00({room:H,updateOnlyOn:[]}),N=z1.useMemo(()=>G?K.find((F)=>F.identity===G):q,[G,K,q]),U=z1.useMemo(()=>{if(N)return oe(N,{sources:$})},[N,JSON.stringify($)]);return L8(U,[])}function DX0($){var Y,G,H;let q=z1.useMemo(()=>{var K;return(K=$==null?void 0:$.publication)!=null&&K.track?ae($==null?void 0:$.publication.track):void 0},[(Y=$==null?void 0:$.publication)==null?void 0:Y.track]);return L8(q,{timestamp:Date.now(),rtpTimestamp:(H=(G=$==null?void 0:$.publication)==null?void 0:G.track)==null?void 0:H.rtpTimestamp})}var SX0={bufferSize:100};function J00($,Y){let G={...SX0,...Y},[H,q]=z1.useState([]),K=DX0($),N=(U)=>{var F;(F=G.onTranscription)==null||F.call(G,U),q((M)=>ge(M,U.map((L)=>fe(L,K)),G.bufferSize))};return z1.useEffect(()=>{if(!($!=null&&$.publication))return;let U=ne($.publication).subscribe((F)=>{N(...F)});return()=>{U.unsubscribe()}},[$&&dB($),N]),{segments:H}}function A00($={}){let Y=sB(),G=$.participant??Y,H=z1.useMemo(()=>G?CU(G):CU(G),[G]);return L8(H,{attributes:G==null?void 0:G.attributes})}var z00=QX.AgentState;function wH(){let $=RH(),Y=$.find((k)=>k.kind===K8.AGENT&&!(QX.PublishOnBehalf in k.attributes)),G=$.find((k)=>k.kind===K8.AGENT&&k.attributes[QX.PublishOnBehalf]===(Y==null?void 0:Y.identity)),H=vU([e.Source.Microphone,e.Source.Camera],Y==null?void 0:Y.identity),q=vU([e.Source.Microphone,e.Source.Camera],G==null?void 0:G.identity),K=H.find((k)=>k.source===e.Source.Microphone)??q.find((k)=>k.source===e.Source.Microphone),N=H.find((k)=>k.source===e.Source.Camera)??q.find((k)=>k.source===e.Source.Camera),{segments:U}=J00(K),F=C7(),{attributes:M}=A00({participant:Y}),L=z1.useMemo(()=>F===n0.Disconnected?"disconnected":F===n0.Connecting||!Y||!(M!=null&&M[z00])?"connecting":M[z00],[M,Y,F]);return{agent:Y,state:L,audioTrack:K,videoTrack:N,agentTranscriptions:U,agentAttributes:M}}function K00($,Y){let G=P8(Y==null?void 0:Y.room),H=C7(G)===n0.Disconnected,q=z1.useMemo(()=>te(G,$),[G,$]);return{textStreams:L8(H?void 0:q,[])}}function fU($){let{participantIdentities:Y,trackSids:G}=$??{},{textStreams:H}=K00(TU.TRANSCRIPTION,{room:$==null?void 0:$.room});return z1.useMemo(()=>H.filter((q)=>Y?Y.includes(q.participantInfo.identity):!0).filter((q)=>{var K;return G?G.includes(((K=q.streamInfo.attributes)==null?void 0:K[QX.TranscribedTrackId])??""):!0}),[H,Y,G])}var cB={exports:{}},q00;function vX0(){if(q00)return cB.exports;q00=1;var $=typeof Reflect=="object"?Reflect:null,Y=$&&typeof $.apply=="function"?$.apply:function(C,I,p){return Function.prototype.apply.call(C,I,p)},G;$&&typeof $.ownKeys=="function"?G=$.ownKeys:Object.getOwnPropertySymbols?G=function(C){return Object.getOwnPropertyNames(C).concat(Object.getOwnPropertySymbols(C))}:G=function(C){return Object.getOwnPropertyNames(C)};function H(C){console&&console.warn&&console.warn(C)}var q=Number.isNaN||function(C){return C!==C};function K(){K.init.call(this)}cB.exports=K,cB.exports.once=g,K.EventEmitter=K,K.prototype._events=void 0,K.prototype._eventsCount=0,K.prototype._maxListeners=void 0;var N=10;function U(C){if(typeof C!="function")throw TypeError('The "listener" argument must be of type Function. Received type '+typeof C)}Object.defineProperty(K,"defaultMaxListeners",{enumerable:!0,get:function(){return N},set:function(C){if(typeof C!="number"||C<0||q(C))throw RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+C+".");N=C}}),K.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},K.prototype.setMaxListeners=function(C){if(typeof C!="number"||C<0||q(C))throw RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+C+".");return this._maxListeners=C,this};function F(C){return C._maxListeners===void 0?K.defaultMaxListeners:C._maxListeners}K.prototype.getMaxListeners=function(){return F(this)},K.prototype.emit=function(C){for(var I=[],p=1;p<arguments.length;p++)I.push(arguments[p]);var l=C==="error",f=this._events;if(f!==void 0)l=l&&f.error===void 0;else if(!l)return!1;if(l){var n;if(I.length>0&&(n=I[0]),n instanceof Error)throw n;var u=Error("Unhandled error."+(n?" ("+n.message+")":""));throw u.context=n,u}var X0=f[C];if(X0===void 0)return!1;if(typeof X0=="function")Y(X0,this,I);else for(var Y0=X0.length,M0=S(X0,Y0),p=0;p<Y0;++p)Y(M0[p],this,I);return!0};function M(C,I,p,l){var f,n,u;if(U(p),n=C._events,n===void 0?(n=C._events=Object.create(null),C._eventsCount=0):(n.newListener!==void 0&&(C.emit("newListener",I,p.listener?p.listener:p),n=C._events),u=n[I]),u===void 0)u=n[I]=p,++C._eventsCount;else if(typeof u=="function"?u=n[I]=l?[p,u]:[u,p]:l?u.unshift(p):u.push(p),f=F(C),f>0&&u.length>f&&!u.warned){u.warned=!0;var X0=Error("Possible EventEmitter memory leak detected. "+u.length+" "+String(I)+" listeners added. Use emitter.setMaxListeners() to increase limit");X0.name="MaxListenersExceededWarning",X0.emitter=C,X0.type=I,X0.count=u.length,H(X0)}return C}K.prototype.addListener=function(C,I){return M(this,C,I,!1)},K.prototype.on=K.prototype.addListener,K.prototype.prependListener=function(C,I){return M(this,C,I,!0)};function L(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function k(C,I,p){var l={fired:!1,wrapFn:void 0,target:C,type:I,listener:p},f=L.bind(l);return f.listener=p,l.wrapFn=f,f}K.prototype.once=function(C,I){return U(I),this.on(C,k(this,C,I)),this},K.prototype.prependOnceListener=function(C,I){return U(I),this.prependListener(C,k(this,C,I)),this},K.prototype.removeListener=function(C,I){var p,l,f,n,u;if(U(I),l=this._events,l===void 0)return this;if(p=l[C],p===void 0)return this;if(p===I||p.listener===I)--this._eventsCount===0?this._events=Object.create(null):(delete l[C],l.removeListener&&this.emit("removeListener",C,p.listener||I));else if(typeof p!="function"){for(f=-1,n=p.length-1;n>=0;n--)if(p[n]===I||p[n].listener===I){u=p[n].listener,f=n;break}if(f<0)return this;f===0?p.shift():T(p,f),p.length===1&&(l[C]=p[0]),l.removeListener!==void 0&&this.emit("removeListener",C,u||I)}return this},K.prototype.off=K.prototype.removeListener,K.prototype.removeAllListeners=function(C){var I,p,l;if(p=this._events,p===void 0)return this;if(p.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):p[C]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete p[C]),this;if(arguments.length===0){var f=Object.keys(p),n;for(l=0;l<f.length;++l)n=f[l],n!=="removeListener"&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(I=p[C],typeof I=="function")this.removeListener(C,I);else if(I!==void 0)for(l=I.length-1;l>=0;l--)this.removeListener(C,I[l]);return this};function R(C,I,p){var l=C._events;if(l===void 0)return[];var f=l[I];return f===void 0?[]:typeof f=="function"?p?[f.listener||f]:[f]:p?y(f):S(f,f.length)}K.prototype.listeners=function(C){return R(this,C,!0)},K.prototype.rawListeners=function(C){return R(this,C,!1)},K.listenerCount=function(C,I){return typeof C.listenerCount=="function"?C.listenerCount(I):_.call(C,I)},K.prototype.listenerCount=_;function _(C){var I=this._events;if(I!==void 0){var p=I[C];if(typeof p=="function")return 1;if(p!==void 0)return p.length}return 0}K.prototype.eventNames=function(){return this._eventsCount>0?G(this._events):[]};function S(C,I){for(var p=Array(I),l=0;l<I;++l)p[l]=C[l];return p}function T(C,I){for(;I+1<C.length;I++)C[I]=C[I+1];C.pop()}function y(C){for(var I=Array(C.length),p=0;p<I.length;++p)I[p]=C[p].listener||C[p];return I}function g(C,I){return new Promise(function(p,l){function f(u){C.removeListener(I,n),l(u)}function n(){typeof C.removeListener=="function"&&C.removeListener("error",f),p([].slice.call(arguments))}c(C,I,n,{once:!0}),I!=="error"&&o(C,f,{once:!0})})}function o(C,I,p){typeof C.on=="function"&&c(C,"error",I,p)}function c(C,I,p,l){if(typeof C.on=="function")l.once?C.once(I,p):C.on(I,p);else if(typeof C.addEventListener=="function")C.addEventListener(I,function f(n){l.once&&C.removeEventListener(I,f),p(n)});else throw TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof C)}return cB.exports}var bY0=vX0();var M1=B(W1(),1),oB=B(W1(),1);function tX0($,Y={}){let[G,H]=M1.useState(OH($)),[q,K]=M1.useState(G==null?void 0:G.isMuted),[N,U]=M1.useState(G==null?void 0:G.isSubscribed),[F,M]=M1.useState(G==null?void 0:G.track),[L,k]=M1.useState("landscape"),R=M1.useRef(),{className:_,trackObserver:S}=M1.useMemo(()=>_U($),[$.participant.sid??$.participant.identity,$.source,kH($)&&$.publication.trackSid]);return M1.useEffect(()=>{let T=S.subscribe((y)=>{j1.debug("update track",y),H(y),K(y==null?void 0:y.isMuted),U(y==null?void 0:y.isSubscribed),M(y==null?void 0:y.track)});return()=>T==null?void 0:T.unsubscribe()},[S]),M1.useEffect(()=>{var T,y;return F&&(R.current&&F.detach(R.current),(T=Y.element)!=null&&T.current&&!($.participant.isLocal&&(F==null?void 0:F.kind)==="audio")&&F.attach(Y.element.current)),R.current=(y=Y.element)==null?void 0:y.current,()=>{R.current&&(F==null||F.detach(R.current))}},[F,Y.element]),M1.useEffect(()=>{var T,y;if(typeof((T=G==null?void 0:G.dimensions)==null?void 0:T.width)=="number"&&typeof((y=G==null?void 0:G.dimensions)==null?void 0:y.height)=="number"){let g=G.dimensions.width>G.dimensions.height?"landscape":"portrait";k(g)}},[G]),{publication:G,isMuted:q,isSubscribed:N,track:F,elementProps:G00(Y.props,{className:_,"data-lk-local-participant":$.participant.isLocal,"data-lk-source":G==null?void 0:G.source,...(G==null?void 0:G.kind)==="video"&&{"data-lk-orientation":L}})}}var gU,N00;function eX0(){if(N00)return gU;N00=1;var $="Expected a function",Y=NaN,G="[object Symbol]",H=/^\s+|\s+$/g,q=/^[-+]0x[0-9a-f]+$/i,K=/^0b[01]+$/i,N=/^0o[0-7]+$/i,U=parseInt,F=typeof PH=="object"&&PH&&PH.Object===Object&&PH,M=typeof self=="object"&&self&&self.Object===Object&&self,L=F||M||Function("return this")(),k=Object.prototype,R=k.toString,_=Math.max,S=Math.min,T=function(){return L.Date.now()};function y(I,p,l){var f,n,u,X0,Y0,M0,y0=0,G0=!1,N0=!1,F0=!0;if(typeof I!="function")throw TypeError($);p=C(p)||0,g(l)&&(G0=!!l.leading,N0=("maxWait"in l),u=N0?_(C(l.maxWait)||0,p):u,F0=("trailing"in l)?!!l.trailing:F0);function J0(L0){var x1=f,i1=n;return f=n=void 0,y0=L0,X0=I.apply(i1,x1),X0}function e0(L0){return y0=L0,Y0=setTimeout(V0,p),G0?J0(L0):X0}function c1(L0){var x1=L0-M0,i1=L0-y0,q6=p-x1;return N0?S(q6,u-i1):q6}function Z0(L0){var x1=L0-M0,i1=L0-y0;return M0===void 0||x1>=p||x1<0||N0&&i1>=u}function V0(){var L0=T();if(Z0(L0))return I0(L0);Y0=setTimeout(V0,c1(L0))}function I0(L0){return Y0=void 0,F0&&f?J0(L0):(f=n=void 0,X0)}function C0(){Y0!==void 0&&clearTimeout(Y0),y0=0,f=M0=n=Y0=void 0}function f1(){return Y0===void 0?X0:I0(T())}function z6(){var L0=T(),x1=Z0(L0);if(f=arguments,n=this,M0=L0,x1){if(Y0===void 0)return e0(M0);if(N0)return Y0=setTimeout(V0,p),J0(M0)}return Y0===void 0&&(Y0=setTimeout(V0,p)),X0}return z6.cancel=C0,z6.flush=f1,z6}function g(I){var p=typeof I;return!!I&&(p=="object"||p=="function")}function o(I){return!!I&&typeof I=="object"}function c(I){return typeof I=="symbol"||o(I)&&R.call(I)==G}function C(I){if(typeof I=="number")return I;if(c(I))return Y;if(g(I)){var p=typeof I.valueOf=="function"?I.valueOf():I;I=g(p)?p+"":p}if(typeof I!="string")return I===0?I:+I;I=I.replace(H,"");var l=K.test(I);return l||N.test(I)?U(I.slice(2),l?2:8):q.test(I)?Y:+I}return gU=y,gU}var $Q0=eX0();var W00=M1.forwardRef(function({trackRef:$,onSubscriptionStatusChanged:Y,volume:G,...H},q){let K=EU($),N=M1.useRef(null);M1.useImperativeHandle(q,()=>N.current);let{elementProps:U,isSubscribed:F,track:M,publication:L}=tX0(K,{element:N,props:H});return M1.useEffect(()=>{Y==null||Y(!!F)},[F,Y]),M1.useEffect(()=>{M===void 0||G===void 0||(M instanceof fB?M.setVolume(G):j1.warn("Volume can only be set on remote audio tracks."))},[G,M]),M1.useEffect(()=>{L===void 0||H.muted===void 0||(L instanceof mB?L.setEnabled(!H.muted):j1.warn("Can only call setEnabled on remote track publications."))},[H.muted,L,M]),M1.createElement("audio",{ref:N,...U})});var X$0=1.6,ZQ0=(1-X$0)*-1;function mU({room:$,volume:Y,muted:G}){let H=jU([e.Source.Microphone,e.Source.ScreenShareAudio,e.Source.Unknown],{updateOnlyOn:[],onlySubscribed:!0,room:$}).filter((q)=>!q.participant.isLocal&&q.publication.kind===e.Kind.Audio);return M1.createElement("div",{style:{display:"none"}},H.map((q)=>M1.createElement(W00,{key:dB(q),trackRef:q,volume:Y,muted:G})))}var H6=B(W1(),1);var U00=B(W1(),1),rB=U00.createContext(null);var G4=B(W1(),1),yU="https://skipprapi-production.up.railway.app";function hU($){return`skippr_auth_${$}`}function $$0($){try{return localStorage.getItem(hU($))}catch{return null}}function Z$0($,Y){try{localStorage.setItem(hU($),Y)}catch(G){console.error("[Skippr] Failed to persist auth token:",G)}}function bU($){try{localStorage.removeItem(hU($))}catch(Y){console.error("[Skippr] Failed to clear auth token:",Y)}}function F00({appKey:$}){let[Y,G]=G4.useState(null),[H,q]=G4.useState(!1),[K,N]=G4.useState(!1),[U,F]=G4.useState(""),M=Y!==null;G4.useEffect(()=>{if(!$)return;let _=$$0($);if(!_)return;async function S(){q(!0);try{if((await fetch(`${yU}/v1/auth/validate-token`,{credentials:"omit",headers:{Authorization:`Bearer ${_}`}})).ok)G(_);else bU($)}catch{bU($)}finally{q(!1)}}S()},[$]),G4.useEffect(()=>{function _(){G(null),F("")}return window.addEventListener("skippr:logout",_),()=>window.removeEventListener("skippr:logout",_)},[]);let L=G4.useCallback(async(_)=>{if(!$)return!1;N(!0),F("");try{let S=await fetch(`${yU}/v1/auth/request-otp`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json","X-App-Key":$},body:JSON.stringify({email:_})});if(!S.ok){let T=await S.json().catch(()=>({}));throw Error(T.detail||"Failed to send verification code")}return!0}catch(S){return F(S instanceof Error?S.message:"Failed to send verification code"),!1}finally{N(!1)}},[$]),k=G4.useCallback(async(_,S)=>{if(!$)return;N(!0),F("");try{let T=await fetch(`${yU}/v1/auth/verify-otp`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json","X-App-Key":$},body:JSON.stringify({email:_,code:S,recaptchaToken:"sdk"})});if(!T.ok){let g=await T.json().catch(()=>({}));throw Error(g.detail||"Invalid or expired verification code")}let{token:y}=await T.json();Z$0($,y),G(y)}catch(T){F(T instanceof Error?T.message:"Verification failed");return}finally{N(!1)}},[$]),R=G4.useCallback(()=>{if($)bU($);G(null),F("")},[$]);return{isAuthenticated:M,isValidating:H,authToken:Y,requestOtp:L,verifyOtp:k,logout:R,error:U,isSubmitting:K}}var H4=B(W1(),1),nB="https://skipprapi-production.up.railway.app";async function Y$0($,Y){let G=await fetch(`${nB}/v1/auth/token-exchange`,{method:"POST",credentials:"omit",headers:{"X-App-Key":$,"X-User-Token":Y}});if(!G.ok)throw Error(`Token exchange failed: ${G.status}`);let{token:H}=await G.json();return H}function M00({agentId:$,authToken:Y,appKey:G,userToken:H}){let[q,K]=H4.useState(null),[N,U]=H4.useState(!1),[F,M]=H4.useState(!1),[L,k]=H4.useState(""),[R,_]=H4.useState(null),[S,T]=H4.useState(Y??null);H4.useEffect(()=>{let o=!1;if(Y){T(Y);return}if(G&&H)Y$0(G,H).then((c)=>{if(!o)T(c)}).catch((c)=>{if(!o)k(c instanceof Error?c.message:"Token exchange failed")});return()=>{o=!0}},[Y,G,H]);let y=H4.useCallback(async()=>{if(!S){k("No auth token available");return}let o={Authorization:`Bearer ${S}`};M(!0),k("");try{let c=await fetch(`${nB}/v1/sessions`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json",...o},body:JSON.stringify({agentId:$})});if(!c.ok)throw Error(`Failed to create session: ${c.status}`);let{session:C}=await c.json(),I=await fetch(`${nB}/v1/sessions/${C.id}/start`,{method:"POST",credentials:"omit",headers:o});if(!I.ok)throw Error(`Failed to start session: ${I.status}`);let{connection:p}=await I.json();_(C.id),K({livekitUrl:p.livekitUrl,token:p.token}),U(!0)}catch(c){k(c instanceof Error?c.message:"Failed to start session")}finally{M(!1)}},[$,S]),g=H4.useCallback(async()=>{if(R&&S)try{await fetch(`${nB}/v1/sessions/${R}/complete`,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json",Authorization:`Bearer ${S}`},body:JSON.stringify({})})}catch{}k(""),U(!1),K(null),_(null)},[R,S]);return{connection:q,shouldConnect:N,isStarting:F,error:L,startSession:y,disconnect:g}}var tB=B(W1(),1);var aB=(...$)=>$.filter((Y,G,H)=>{return Boolean(Y)&&Y.trim()!==""&&H.indexOf(Y)===G}).join(" ").trim();var O00=($)=>$.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var P00=($)=>$.replace(/^([A-Z])|[\s-_]+(\w)/g,(Y,G,H)=>H?H.toUpperCase():G.toLowerCase());var uU=($)=>{let Y=P00($);return Y.charAt(0).toUpperCase()+Y.slice(1)};var xH=B(W1(),1);var L00={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var k00=($)=>{for(let Y in $)if(Y.startsWith("aria-")||Y==="role"||Y==="title")return!0;return!1};var R00=xH.forwardRef(({color:$="currentColor",size:Y=24,strokeWidth:G=2,absoluteStrokeWidth:H,className:q="",children:K,iconNode:N,...U},F)=>xH.createElement("svg",{ref:F,...L00,width:Y,height:Y,stroke:$,strokeWidth:H?Number(G)*24/Number(Y):G,className:aB("lucide",q),...!K&&!k00(U)&&{"aria-hidden":"true"},...U},[...N.map(([M,L])=>xH.createElement(M,L)),...Array.isArray(K)?K:[K]]));var Z1=($,Y)=>{let G=tB.forwardRef(({className:H,...q},K)=>tB.createElement(R00,{ref:K,iconNode:Y,className:aB(`lucide-${O00(uU($))}`,`lucide-${$}`,H),...q}));return G.displayName=uU($),G};var Q$0=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],y6=Z1("loader-circle",Q$0);var G$0=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],k8=Z1("message-circle-question-mark",G$0);var H$0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],R8=Z1("panel-left",H$0);var z$0=[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]],w8=Z1("send-horizontal",z$0);var q$0=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],VH=Z1("arrow-left",q$0);var B$0=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],X9=Z1("bot",B$0);var J$0=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],_H=Z1("check",J$0);var A$0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],IH=Z1("circle",A$0);var K$0=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],CH=Z1("mail",K$0);var N$0=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],TH=Z1("message-circle",N$0);var W$0=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M16.95 16.95A7 7 0 0 1 5 12v-2",key:"cqa7eg"}],["path",{d:"M18.89 13.23A7 7 0 0 0 19 12v-2",key:"16hl24"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}]],T7=Z1("mic-off",W$0);var U$0=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],E7=Z1("mic",U$0);var F$0=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],EH=Z1("minimize-2",F$0);var M$0=[["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M17 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 1.184-1.826",key:"cv7jms"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["path",{d:"M8.656 3H20a2 2 0 0 1 2 2v10a2 2 0 0 1-.293 1.042",key:"z8ni2w"}]],D7=Z1("monitor-off",M$0);var O$0=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],S7=Z1("monitor",O$0);var P$0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]],DH=Z1("panel-right",P$0);var L$0=[["path",{d:"M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272",key:"1wngk7"}],["path",{d:"M22 2 2 22",key:"y4kqgn"}],["path",{d:"M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473",key:"10hv5p"}]],v7=Z1("phone-off",L$0);var k$0=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],SH=Z1("settings",k$0);var R$0=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],j7=Z1("x",R$0);var $J=B(W1(),1);var w00=B(W1(),1);function N5(){let $=w00.use(rB);if(!$)throw Error("useLiveAgent must be used within a <LiveAgent> provider");let{connection:Y,shouldConnect:G,...H}=$;return H}function x00($){var Y,G,H="";if(typeof $=="string"||typeof $=="number")H+=$;else if(typeof $=="object")if(Array.isArray($)){var q=$.length;for(Y=0;Y<q;Y++)$[Y]&&(G=x00($[Y]))&&(H&&(H+=" "),H+=G)}else for(G in $)$[G]&&(H&&(H+=" "),H+=G);return H}function V00(){for(var $,Y,G=0,H="",q=arguments.length;G<q;G++)($=arguments[G])&&(Y=x00($))&&(H&&(H+=" "),H+=Y);return H}var V$0=($,Y)=>{let G=Array($.length+Y.length);for(let H=0;H<$.length;H++)G[H]=$[H];for(let H=0;H<Y.length;H++)G[$.length+H]=Y[H];return G},_$0=($,Y)=>({classGroupId:$,validator:Y}),E00=($=new Map,Y=null,G)=>({nextPart:$,validators:Y,classGroupId:G});var _00=[];var I$0=($)=>{let Y=T$0($),{conflictingClassGroups:G,conflictingClassGroupModifiers:H}=$;return{getClassGroupId:(N)=>{if(N.startsWith("[")&&N.endsWith("]"))return C$0(N);let U=N.split("-"),F=U[0]===""&&U.length>1?1:0;return D00(U,F,Y)},getConflictingClassGroupIds:(N,U)=>{if(U){let F=H[N],M=G[N];if(F){if(M)return V$0(M,F);return F}return M||_00}return G[N]||_00}}},D00=($,Y,G)=>{if($.length-Y===0)return G.classGroupId;let q=$[Y],K=G.nextPart.get(q);if(K){let M=D00($,Y+1,K);if(M)return M}let N=G.validators;if(N===null)return;let U=Y===0?$.join("-"):$.slice(Y).join("-"),F=N.length;for(let M=0;M<F;M++){let L=N[M];if(L.validator(U))return L.classGroupId}return},C$0=($)=>$.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let Y=$.slice(1,-1),G=Y.indexOf(":"),H=Y.slice(0,G);return H?"arbitrary.."+H:void 0})(),T$0=($)=>{let{theme:Y,classGroups:G}=$;return E$0(G,Y)},E$0=($,Y)=>{let G=E00();for(let H in $){let q=$[H];Bu(q,G,H,Y)}return G},Bu=($,Y,G,H)=>{let q=$.length;for(let K=0;K<q;K++){let N=$[K];D$0(N,Y,G,H)}},D$0=($,Y,G,H)=>{if(typeof $==="string"){S$0($,Y,G);return}if(typeof $==="function"){v$0($,Y,G,H);return}j$0($,Y,G,H)},S$0=($,Y,G)=>{let H=$===""?Y:S00(Y,$);H.classGroupId=G},v$0=($,Y,G,H)=>{if(p$0($)){Bu($(H),Y,G,H);return}if(Y.validators===null)Y.validators=[];Y.validators.push(_$0(G,$))},j$0=($,Y,G,H)=>{let q=Object.entries($),K=q.length;for(let N=0;N<K;N++){let[U,F]=q[N];Bu(F,S00(Y,U),G,H)}},S00=($,Y)=>{let G=$,H=Y.split("-"),q=H.length;for(let K=0;K<q;K++){let N=H[K],U=G.nextPart.get(N);if(!U)U=E00(),G.nextPart.set(N,U);G=U}return G},p$0=($)=>("isThemeGetter"in $)&&$.isThemeGetter===!0,f$0=($)=>{if($<1)return{get:()=>{return},set:()=>{}};let Y=0,G=Object.create(null),H=Object.create(null),q=(K,N)=>{if(G[K]=N,Y++,Y>$)Y=0,H=G,G=Object.create(null)};return{get(K){let N=G[K];if(N!==void 0)return N;if((N=H[K])!==void 0)return q(K,N),N},set(K,N){if(K in G)G[K]=N;else q(K,N)}}};var g$0=[],I00=($,Y,G,H,q)=>({modifiers:$,hasImportantModifier:Y,baseClassName:G,maybePostfixModifierPosition:H,isExternal:q}),m$0=($)=>{let{prefix:Y,experimentalParseClassName:G}=$,H=(q)=>{let K=[],N=0,U=0,F=0,M,L=q.length;for(let T=0;T<L;T++){let y=q[T];if(N===0&&U===0){if(y===":"){K.push(q.slice(F,T)),F=T+1;continue}if(y==="/"){M=T;continue}}if(y==="[")N++;else if(y==="]")N--;else if(y==="(")U++;else if(y===")")U--}let k=K.length===0?q:q.slice(F),R=k,_=!1;if(k.endsWith("!"))R=k.slice(0,-1),_=!0;else if(k.startsWith("!"))R=k.slice(1),_=!0;let S=M&&M>F?M-F:void 0;return I00(K,_,R,S)};if(Y){let q=Y+":",K=H;H=(N)=>N.startsWith(q)?K(N.slice(q.length)):I00(g$0,!1,N,void 0,!0)}if(G){let q=H;H=(K)=>G({className:K,parseClassName:q})}return H},y$0=($)=>{let Y=new Map;return $.orderSensitiveModifiers.forEach((G,H)=>{Y.set(G,1e6+H)}),(G)=>{let H=[],q=[];for(let K=0;K<G.length;K++){let N=G[K],U=N[0]==="[",F=Y.has(N);if(U||F){if(q.length>0)q.sort(),H.push(...q),q=[];H.push(N)}else q.push(N)}if(q.length>0)q.sort(),H.push(...q);return H}},b$0=($)=>({cache:f$0($.cacheSize),parseClassName:m$0($),sortModifiers:y$0($),...I$0($)}),h$0=/\s+/,u$0=($,Y)=>{let{parseClassName:G,getClassGroupId:H,getConflictingClassGroupIds:q,sortModifiers:K}=Y,N=[],U=$.trim().split(h$0),F="";for(let M=U.length-1;M>=0;M-=1){let L=U[M],{isExternal:k,modifiers:R,hasImportantModifier:_,baseClassName:S,maybePostfixModifierPosition:T}=G(L);if(k){F=L+(F.length>0?" "+F:F);continue}let y=!!T,g=H(y?S.substring(0,T):S);if(!g){if(!y){F=L+(F.length>0?" "+F:F);continue}if(g=H(S),!g){F=L+(F.length>0?" "+F:F);continue}y=!1}let o=R.length===0?"":R.length===1?R[0]:K(R).join(":"),c=_?o+"!":o,C=c+g;if(N.indexOf(C)>-1)continue;N.push(C);let I=q(g,y);for(let p=0;p<I.length;++p){let l=I[p];N.push(c+l)}F=L+(F.length>0?" "+F:F)}return F},d$0=(...$)=>{let Y=0,G,H,q="";while(Y<$.length)if(G=$[Y++]){if(H=v00(G))q&&(q+=" "),q+=H}return q},v00=($)=>{if(typeof $==="string")return $;let Y,G="";for(let H=0;H<$.length;H++)if($[H]){if(Y=v00($[H]))G&&(G+=" "),G+=Y}return G},s$0=($,...Y)=>{let G,H,q,K,N=(F)=>{let M=Y.reduce((L,k)=>k(L),$());return G=b$0(M),H=G.cache.get,q=G.cache.set,K=U,U(F)},U=(F)=>{let M=H(F);if(M)return M;let L=u$0(F,G);return q(F,L),L};return K=N,(...F)=>K(d$0(...F))},l$0=[],k2=($)=>{let Y=(G)=>G[$]||l$0;return Y.isThemeGetter=!0,Y},j00=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,p00=/^\((?:(\w[\w-]*):)?(.+)\)$/i,c$0=/^\d+\/\d+$/,i$0=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,o$0=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,r$0=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,n$0=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,a$0=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,qQ=($)=>c$0.test($),t0=($)=>!!$&&!Number.isNaN(Number($)),x8=($)=>!!$&&Number.isInteger(Number($)),zu=($)=>$.endsWith("%")&&t0($.slice(0,-1)),B9=($)=>i$0.test($),t$0=()=>!0,e$0=($)=>o$0.test($)&&!r$0.test($),f00=()=>!1,XZ0=($)=>n$0.test($),$Z0=($)=>a$0.test($),ZZ0=($)=>!k0($)&&!R0($),YZ0=($)=>BQ($,y00,f00),k0=($)=>j00.test($),p7=($)=>BQ($,b00,e$0),qu=($)=>BQ($,qZ0,t0),C00=($)=>BQ($,g00,f00),QZ0=($)=>BQ($,m00,$Z0),eB=($)=>BQ($,h00,XZ0),R0=($)=>p00.test($),vH=($)=>JQ($,b00),GZ0=($)=>JQ($,BZ0),T00=($)=>JQ($,g00),HZ0=($)=>JQ($,y00),zZ0=($)=>JQ($,m00),XJ=($)=>JQ($,h00,!0),BQ=($,Y,G)=>{let H=j00.exec($);if(H){if(H[1])return Y(H[1]);return G(H[2])}return!1},JQ=($,Y,G=!1)=>{let H=p00.exec($);if(H){if(H[1])return Y(H[1]);return G}return!1},g00=($)=>$==="position"||$==="percentage",m00=($)=>$==="image"||$==="url",y00=($)=>$==="length"||$==="size"||$==="bg-size",b00=($)=>$==="length",qZ0=($)=>$==="number",BZ0=($)=>$==="family-name",h00=($)=>$==="shadow";var JZ0=()=>{let $=k2("color"),Y=k2("font"),G=k2("text"),H=k2("font-weight"),q=k2("tracking"),K=k2("leading"),N=k2("breakpoint"),U=k2("container"),F=k2("spacing"),M=k2("radius"),L=k2("shadow"),k=k2("inset-shadow"),R=k2("text-shadow"),_=k2("drop-shadow"),S=k2("blur"),T=k2("perspective"),y=k2("aspect"),g=k2("ease"),o=k2("animate"),c=()=>["auto","avoid","all","avoid-page","page","left","right","column"],C=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],I=()=>[...C(),R0,k0],p=()=>["auto","hidden","clip","visible","scroll"],l=()=>["auto","contain","none"],f=()=>[R0,k0,F],n=()=>[qQ,"full","auto",...f()],u=()=>[x8,"none","subgrid",R0,k0],X0=()=>["auto",{span:["full",x8,R0,k0]},x8,R0,k0],Y0=()=>[x8,"auto",R0,k0],M0=()=>["auto","min","max","fr",R0,k0],y0=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G0=()=>["start","end","center","stretch","center-safe","end-safe"],N0=()=>["auto",...f()],F0=()=>[qQ,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...f()],J0=()=>[$,R0,k0],e0=()=>[...C(),T00,C00,{position:[R0,k0]}],c1=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Z0=()=>["auto","cover","contain",HZ0,YZ0,{size:[R0,k0]}],V0=()=>[zu,vH,p7],I0=()=>["","none","full",M,R0,k0],C0=()=>["",t0,vH,p7],f1=()=>["solid","dashed","dotted","double"],z6=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],L0=()=>[t0,zu,T00,C00],x1=()=>["","none",S,R0,k0],i1=()=>["none",t0,R0,k0],q6=()=>["none",t0,R0,k0],P0=()=>[t0,R0,k0],q4=()=>[qQ,"full",...f()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[B9],breakpoint:[B9],color:[t$0],container:[B9],"drop-shadow":[B9],ease:["in","out","in-out"],font:[ZZ0],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[B9],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[B9],shadow:[B9],spacing:["px",t0],text:[B9],"text-shadow":[B9],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",qQ,k0,R0,y]}],container:["container"],columns:[{columns:[t0,k0,R0,U]}],"break-after":[{"break-after":c()}],"break-before":[{"break-before":c()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:I()}],overflow:[{overflow:p()}],"overflow-x":[{"overflow-x":p()}],"overflow-y":[{"overflow-y":p()}],overscroll:[{overscroll:l()}],"overscroll-x":[{"overscroll-x":l()}],"overscroll-y":[{"overscroll-y":l()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:n()}],"inset-x":[{"inset-x":n()}],"inset-y":[{"inset-y":n()}],start:[{start:n()}],end:[{end:n()}],top:[{top:n()}],right:[{right:n()}],bottom:[{bottom:n()}],left:[{left:n()}],visibility:["visible","invisible","collapse"],z:[{z:[x8,"auto",R0,k0]}],basis:[{basis:[qQ,"full","auto",U,...f()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[t0,qQ,"auto","initial","none",k0]}],grow:[{grow:["",t0,R0,k0]}],shrink:[{shrink:["",t0,R0,k0]}],order:[{order:[x8,"first","last","none",R0,k0]}],"grid-cols":[{"grid-cols":u()}],"col-start-end":[{col:X0()}],"col-start":[{"col-start":Y0()}],"col-end":[{"col-end":Y0()}],"grid-rows":[{"grid-rows":u()}],"row-start-end":[{row:X0()}],"row-start":[{"row-start":Y0()}],"row-end":[{"row-end":Y0()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":M0()}],"auto-rows":[{"auto-rows":M0()}],gap:[{gap:f()}],"gap-x":[{"gap-x":f()}],"gap-y":[{"gap-y":f()}],"justify-content":[{justify:[...y0(),"normal"]}],"justify-items":[{"justify-items":[...G0(),"normal"]}],"justify-self":[{"justify-self":["auto",...G0()]}],"align-content":[{content:["normal",...y0()]}],"align-items":[{items:[...G0(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G0(),{baseline:["","last"]}]}],"place-content":[{"place-content":y0()}],"place-items":[{"place-items":[...G0(),"baseline"]}],"place-self":[{"place-self":["auto",...G0()]}],p:[{p:f()}],px:[{px:f()}],py:[{py:f()}],ps:[{ps:f()}],pe:[{pe:f()}],pt:[{pt:f()}],pr:[{pr:f()}],pb:[{pb:f()}],pl:[{pl:f()}],m:[{m:N0()}],mx:[{mx:N0()}],my:[{my:N0()}],ms:[{ms:N0()}],me:[{me:N0()}],mt:[{mt:N0()}],mr:[{mr:N0()}],mb:[{mb:N0()}],ml:[{ml:N0()}],"space-x":[{"space-x":f()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":f()}],"space-y-reverse":["space-y-reverse"],size:[{size:F0()}],w:[{w:[U,"screen",...F0()]}],"min-w":[{"min-w":[U,"screen","none",...F0()]}],"max-w":[{"max-w":[U,"screen","none","prose",{screen:[N]},...F0()]}],h:[{h:["screen","lh",...F0()]}],"min-h":[{"min-h":["screen","lh","none",...F0()]}],"max-h":[{"max-h":["screen","lh",...F0()]}],"font-size":[{text:["base",G,vH,p7]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[H,R0,qu]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",zu,k0]}],"font-family":[{font:[GZ0,k0,Y]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[q,R0,k0]}],"line-clamp":[{"line-clamp":[t0,"none",R0,qu]}],leading:[{leading:[K,...f()]}],"list-image":[{"list-image":["none",R0,k0]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",R0,k0]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:J0()}],"text-color":[{text:J0()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...f1(),"wavy"]}],"text-decoration-thickness":[{decoration:[t0,"from-font","auto",R0,p7]}],"text-decoration-color":[{decoration:J0()}],"underline-offset":[{"underline-offset":[t0,"auto",R0,k0]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:f()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",R0,k0]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",R0,k0]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:e0()}],"bg-repeat":[{bg:c1()}],"bg-size":[{bg:Z0()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},x8,R0,k0],radial:["",R0,k0],conic:[x8,R0,k0]},zZ0,QZ0]}],"bg-color":[{bg:J0()}],"gradient-from-pos":[{from:V0()}],"gradient-via-pos":[{via:V0()}],"gradient-to-pos":[{to:V0()}],"gradient-from":[{from:J0()}],"gradient-via":[{via:J0()}],"gradient-to":[{to:J0()}],rounded:[{rounded:I0()}],"rounded-s":[{"rounded-s":I0()}],"rounded-e":[{"rounded-e":I0()}],"rounded-t":[{"rounded-t":I0()}],"rounded-r":[{"rounded-r":I0()}],"rounded-b":[{"rounded-b":I0()}],"rounded-l":[{"rounded-l":I0()}],"rounded-ss":[{"rounded-ss":I0()}],"rounded-se":[{"rounded-se":I0()}],"rounded-ee":[{"rounded-ee":I0()}],"rounded-es":[{"rounded-es":I0()}],"rounded-tl":[{"rounded-tl":I0()}],"rounded-tr":[{"rounded-tr":I0()}],"rounded-br":[{"rounded-br":I0()}],"rounded-bl":[{"rounded-bl":I0()}],"border-w":[{border:C0()}],"border-w-x":[{"border-x":C0()}],"border-w-y":[{"border-y":C0()}],"border-w-s":[{"border-s":C0()}],"border-w-e":[{"border-e":C0()}],"border-w-t":[{"border-t":C0()}],"border-w-r":[{"border-r":C0()}],"border-w-b":[{"border-b":C0()}],"border-w-l":[{"border-l":C0()}],"divide-x":[{"divide-x":C0()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":C0()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...f1(),"hidden","none"]}],"divide-style":[{divide:[...f1(),"hidden","none"]}],"border-color":[{border:J0()}],"border-color-x":[{"border-x":J0()}],"border-color-y":[{"border-y":J0()}],"border-color-s":[{"border-s":J0()}],"border-color-e":[{"border-e":J0()}],"border-color-t":[{"border-t":J0()}],"border-color-r":[{"border-r":J0()}],"border-color-b":[{"border-b":J0()}],"border-color-l":[{"border-l":J0()}],"divide-color":[{divide:J0()}],"outline-style":[{outline:[...f1(),"none","hidden"]}],"outline-offset":[{"outline-offset":[t0,R0,k0]}],"outline-w":[{outline:["",t0,vH,p7]}],"outline-color":[{outline:J0()}],shadow:[{shadow:["","none",L,XJ,eB]}],"shadow-color":[{shadow:J0()}],"inset-shadow":[{"inset-shadow":["none",k,XJ,eB]}],"inset-shadow-color":[{"inset-shadow":J0()}],"ring-w":[{ring:C0()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:J0()}],"ring-offset-w":[{"ring-offset":[t0,p7]}],"ring-offset-color":[{"ring-offset":J0()}],"inset-ring-w":[{"inset-ring":C0()}],"inset-ring-color":[{"inset-ring":J0()}],"text-shadow":[{"text-shadow":["none",R,XJ,eB]}],"text-shadow-color":[{"text-shadow":J0()}],opacity:[{opacity:[t0,R0,k0]}],"mix-blend":[{"mix-blend":[...z6(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":z6()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[t0]}],"mask-image-linear-from-pos":[{"mask-linear-from":L0()}],"mask-image-linear-to-pos":[{"mask-linear-to":L0()}],"mask-image-linear-from-color":[{"mask-linear-from":J0()}],"mask-image-linear-to-color":[{"mask-linear-to":J0()}],"mask-image-t-from-pos":[{"mask-t-from":L0()}],"mask-image-t-to-pos":[{"mask-t-to":L0()}],"mask-image-t-from-color":[{"mask-t-from":J0()}],"mask-image-t-to-color":[{"mask-t-to":J0()}],"mask-image-r-from-pos":[{"mask-r-from":L0()}],"mask-image-r-to-pos":[{"mask-r-to":L0()}],"mask-image-r-from-color":[{"mask-r-from":J0()}],"mask-image-r-to-color":[{"mask-r-to":J0()}],"mask-image-b-from-pos":[{"mask-b-from":L0()}],"mask-image-b-to-pos":[{"mask-b-to":L0()}],"mask-image-b-from-color":[{"mask-b-from":J0()}],"mask-image-b-to-color":[{"mask-b-to":J0()}],"mask-image-l-from-pos":[{"mask-l-from":L0()}],"mask-image-l-to-pos":[{"mask-l-to":L0()}],"mask-image-l-from-color":[{"mask-l-from":J0()}],"mask-image-l-to-color":[{"mask-l-to":J0()}],"mask-image-x-from-pos":[{"mask-x-from":L0()}],"mask-image-x-to-pos":[{"mask-x-to":L0()}],"mask-image-x-from-color":[{"mask-x-from":J0()}],"mask-image-x-to-color":[{"mask-x-to":J0()}],"mask-image-y-from-pos":[{"mask-y-from":L0()}],"mask-image-y-to-pos":[{"mask-y-to":L0()}],"mask-image-y-from-color":[{"mask-y-from":J0()}],"mask-image-y-to-color":[{"mask-y-to":J0()}],"mask-image-radial":[{"mask-radial":[R0,k0]}],"mask-image-radial-from-pos":[{"mask-radial-from":L0()}],"mask-image-radial-to-pos":[{"mask-radial-to":L0()}],"mask-image-radial-from-color":[{"mask-radial-from":J0()}],"mask-image-radial-to-color":[{"mask-radial-to":J0()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":C()}],"mask-image-conic-pos":[{"mask-conic":[t0]}],"mask-image-conic-from-pos":[{"mask-conic-from":L0()}],"mask-image-conic-to-pos":[{"mask-conic-to":L0()}],"mask-image-conic-from-color":[{"mask-conic-from":J0()}],"mask-image-conic-to-color":[{"mask-conic-to":J0()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:e0()}],"mask-repeat":[{mask:c1()}],"mask-size":[{mask:Z0()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",R0,k0]}],filter:[{filter:["","none",R0,k0]}],blur:[{blur:x1()}],brightness:[{brightness:[t0,R0,k0]}],contrast:[{contrast:[t0,R0,k0]}],"drop-shadow":[{"drop-shadow":["","none",_,XJ,eB]}],"drop-shadow-color":[{"drop-shadow":J0()}],grayscale:[{grayscale:["",t0,R0,k0]}],"hue-rotate":[{"hue-rotate":[t0,R0,k0]}],invert:[{invert:["",t0,R0,k0]}],saturate:[{saturate:[t0,R0,k0]}],sepia:[{sepia:["",t0,R0,k0]}],"backdrop-filter":[{"backdrop-filter":["","none",R0,k0]}],"backdrop-blur":[{"backdrop-blur":x1()}],"backdrop-brightness":[{"backdrop-brightness":[t0,R0,k0]}],"backdrop-contrast":[{"backdrop-contrast":[t0,R0,k0]}],"backdrop-grayscale":[{"backdrop-grayscale":["",t0,R0,k0]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[t0,R0,k0]}],"backdrop-invert":[{"backdrop-invert":["",t0,R0,k0]}],"backdrop-opacity":[{"backdrop-opacity":[t0,R0,k0]}],"backdrop-saturate":[{"backdrop-saturate":[t0,R0,k0]}],"backdrop-sepia":[{"backdrop-sepia":["",t0,R0,k0]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":f()}],"border-spacing-x":[{"border-spacing-x":f()}],"border-spacing-y":[{"border-spacing-y":f()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",R0,k0]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[t0,"initial",R0,k0]}],ease:[{ease:["linear","initial",g,R0,k0]}],delay:[{delay:[t0,R0,k0]}],animate:[{animate:["none",o,R0,k0]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[T,R0,k0]}],"perspective-origin":[{"perspective-origin":I()}],rotate:[{rotate:i1()}],"rotate-x":[{"rotate-x":i1()}],"rotate-y":[{"rotate-y":i1()}],"rotate-z":[{"rotate-z":i1()}],scale:[{scale:q6()}],"scale-x":[{"scale-x":q6()}],"scale-y":[{"scale-y":q6()}],"scale-z":[{"scale-z":q6()}],"scale-3d":["scale-3d"],skew:[{skew:P0()}],"skew-x":[{"skew-x":P0()}],"skew-y":[{"skew-y":P0()}],transform:[{transform:[R0,k0,"","none","gpu","cpu"]}],"transform-origin":[{origin:I()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q4()}],"translate-x":[{"translate-x":q4()}],"translate-y":[{"translate-y":q4()}],"translate-z":[{"translate-z":q4()}],"translate-none":["translate-none"],accent:[{accent:J0()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:J0()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",R0,k0]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":f()}],"scroll-mx":[{"scroll-mx":f()}],"scroll-my":[{"scroll-my":f()}],"scroll-ms":[{"scroll-ms":f()}],"scroll-me":[{"scroll-me":f()}],"scroll-mt":[{"scroll-mt":f()}],"scroll-mr":[{"scroll-mr":f()}],"scroll-mb":[{"scroll-mb":f()}],"scroll-ml":[{"scroll-ml":f()}],"scroll-p":[{"scroll-p":f()}],"scroll-px":[{"scroll-px":f()}],"scroll-py":[{"scroll-py":f()}],"scroll-ps":[{"scroll-ps":f()}],"scroll-pe":[{"scroll-pe":f()}],"scroll-pt":[{"scroll-pt":f()}],"scroll-pr":[{"scroll-pr":f()}],"scroll-pb":[{"scroll-pb":f()}],"scroll-pl":[{"scroll-pl":f()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",R0,k0]}],fill:[{fill:["none",...J0()]}],"stroke-w":[{stroke:[t0,vH,p7,qu]}],stroke:[{stroke:["none",...J0()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var u00=s$0(JZ0);function d1(...$){return u00(V00($))}var w1=B(B1(),1);function AZ0({agentState:$}){if($==="speaking")return w1.jsxDEV("div",{className:"skippr:flex skippr:items-end skippr:justify-center skippr:gap-[3px] skippr:h-5",children:[w1.jsxDEV("span",{className:"skippr:w-[3px] skippr:h-full skippr:rounded-full skippr:bg-primary-foreground skippr:origin-bottom skippr:animate-skippr-bar-1"},void 0,!1,void 0,this),w1.jsxDEV("span",{className:"skippr:w-[3px] skippr:h-full skippr:rounded-full skippr:bg-primary-foreground skippr:origin-bottom skippr:animate-skippr-bar-2"},void 0,!1,void 0,this),w1.jsxDEV("span",{className:"skippr:w-[3px] skippr:h-full skippr:rounded-full skippr:bg-primary-foreground skippr:origin-bottom skippr:animate-skippr-bar-3"},void 0,!1,void 0,this),w1.jsxDEV("span",{className:"skippr:w-[3px] skippr:h-full skippr:rounded-full skippr:bg-primary-foreground skippr:origin-bottom skippr:animate-skippr-bar-4"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if($==="listening")return w1.jsxDEV(X9,{className:"skippr:relative skippr:z-10 skippr:size-5 skippr:animate-skippr-breathe"},void 0,!1,void 0,this);if($==="thinking")return w1.jsxDEV(X9,{className:"skippr:relative skippr:z-10 skippr:size-5 skippr:animate-pulse"},void 0,!1,void 0,this);return w1.jsxDEV(X9,{className:"skippr:relative skippr:z-10 skippr:size-5"},void 0,!1,void 0,this)}function l00(){let{expandPanel:$,disconnect:Y,position:G}=N5(),{state:H}=wH(),{localParticipant:q}=K5(),K=!q.isMicrophoneEnabled,N=q.isScreenShareEnabled,U=$J.useCallback(async()=>{try{await q.setMicrophoneEnabled(K)}catch(R){console.error("Failed to toggle microphone:",R)}},[q,K]),F=$J.useCallback(async()=>{try{await q.setScreenShareEnabled(!N,{video:{displaySurface:"browser"},resolution:V7.h720fps30.resolution,contentHint:"detail"})}catch(R){console.error("Failed to toggle screen share:",R)}},[q,N]),M=$J.useCallback(async()=>{await Y()},[Y]),L=H==="speaking",k=H==="listening";return w1.jsxDEV("div",{className:d1("skippr:fixed skippr:bottom-6 skippr:z-[9999]","skippr:flex skippr:items-center skippr:gap-0","skippr:rounded-full skippr:bg-card skippr:shadow-2xl","skippr:border skippr:border-border","skippr:p-1.5",G==="right"?"skippr:right-6":"skippr:left-6"),children:[w1.jsxDEV("button",{type:"button",onClick:$,className:d1("skippr:relative skippr:size-11 skippr:rounded-full","skippr:bg-primary skippr:text-primary-foreground","skippr:flex skippr:items-center skippr:justify-center","skippr:cursor-pointer skippr:transition-all skippr:duration-300","skippr:hover:brightness-110",k&&"skippr:animate-skippr-pulse-ring"),"aria-label":"Expand meeting panel",children:[L&&w1.jsxDEV(w1.Fragment,{children:[w1.jsxDEV("span",{className:"skippr:absolute skippr:inset-0 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-speak-ripple"},void 0,!1,void 0,this),w1.jsxDEV("span",{className:"skippr:absolute skippr:inset-0 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-speak-ripple-delayed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w1.jsxDEV(AZ0,{agentState:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w1.jsxDEV("div",{className:"skippr:mx-1 skippr:h-6 skippr:w-px skippr:bg-border"},void 0,!1,void 0,this),w1.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1",children:[w1.jsxDEV("button",{type:"button",onClick:U,className:d1("skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center","skippr:transition-colors skippr:cursor-pointer",K?"skippr:bg-destructive skippr:text-white":"skippr:text-foreground skippr:hover:bg-accent"),"aria-label":K?"Unmute":"Mute",children:K?w1.jsxDEV(T7,{className:"skippr:size-4"},void 0,!1,void 0,this):w1.jsxDEV(E7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),w1.jsxDEV("button",{type:"button",onClick:F,className:d1("skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center","skippr:transition-colors skippr:cursor-pointer",N?"skippr:text-foreground skippr:hover:bg-accent":"skippr:bg-destructive skippr:text-white"),"aria-label":N?"Stop sharing":"Share screen",children:N?w1.jsxDEV(D7,{className:"skippr:size-4"},void 0,!1,void 0,this):w1.jsxDEV(S7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w1.jsxDEV("div",{className:"skippr:mx-1 skippr:h-6 skippr:w-px skippr:bg-border"},void 0,!1,void 0,this),w1.jsxDEV("button",{type:"button",onClick:M,className:"skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center skippr:bg-destructive skippr:text-white skippr:cursor-pointer skippr:transition-colors skippr:hover:bg-destructive/90","aria-label":"Hang up",children:w1.jsxDEV(v7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var GJ=B(W1(),1);var n00=B(W1(),1);var c00=B(W1(),1);var KZ0=/^\[\w+\]$/;function ZJ($){return $.filter((Y)=>!KZ0.test(Y.content.trim()))}function i00(){let{chatMessages:$,send:Y,isSending:G}=pU(),{localParticipant:H}=K5(),q=H.identity;return{chatMessages:c00.useMemo(()=>{let N=$.map((U)=>({id:U.id,role:U.from?.identity===q?"user":"assistant",content:U.message,source:"chat",timestamp:U.timestamp})).sort((U,F)=>(U.timestamp??0)-(F.timestamp??0));return ZJ(N)},[$,q]),sendChatMessage:Y,isSendingChat:G}}var o00=B(W1(),1);function r00(){let $=fU(),{localParticipant:Y}=K5(),G=Y.identity;return{transcriptMessages:o00.useMemo(()=>ZJ($.filter((q)=>q.text.trim().length>0).map((q)=>({id:q.streamInfo.id,role:q.participantInfo.identity===G?"user":"assistant",content:q.text,source:"voice-transcript",timestamp:q.streamInfo.timestamp}))),[$,G])}}function NZ0($,Y){let G=[],H=0;for(let q of $){while(H<Y.length&&(Y[H].timestamp??0)<=(q.timestamp??0))G.push(Y[H]),H++;G.push(q)}while(H<Y.length)G.push(Y[H]),H++;return G}function a00(){let{transcriptMessages:$}=r00(),{chatMessages:Y,sendChatMessage:G,isSendingChat:H}=i00(),{state:q}=wH();return{allMessages:n00.useMemo(()=>{if(Y.length===0)return $;if($.length===0)return Y;return NZ0($,Y)},[$,Y]),agentState:q,sendChatMessage:G,isSendingChat:H}}var t00=B(W1(),1);var YJ=B(W1(),1);function AQ($,Y,G){let[H,q]=YJ.useState(G),K=RH();return YJ.useEffect(()=>{let N=K.find((F)=>F.attributes?.[$]);if(N){let F=N.attributes?.[$];if(F){let M=Y(F);if(M)q(M)}}let U=new Map;for(let F of K){let M=(L)=>{if(L[$]){let k=Y(L[$]);if(k)q(k)}else if(F.attributes?.[$]){let k=Y(F.attributes[$]);if(k)q(k)}};U.set(F,M),F.on("attributesChanged",M)}return()=>{for(let[F,M]of U)F.off("attributesChanged",M)}},[K,$,Y]),H}function WZ0($){try{let Y=JSON.parse($);if(Y.type==="phase_update"&&Array.isArray(Y.phases))return Y.phases}catch{}return null}function e00(){let $=t00.useCallback(WZ0,[]);return{phases:AQ("phases",$,[])}}var X10=B(W1(),1);function UZ0($){try{let Y=JSON.parse($);if(Y.type==="question_update"&&Array.isArray(Y.questions))return Y.questions}catch{}return null}function $10(){let $=X10.useCallback(UZ0,[]);return{questions:AQ("questions",$,[])}}var Au=480;var Z10=B(W1(),1);var Y10=B(B1(),1),FZ0={default:"skippr:bg-primary skippr:text-primary-foreground skippr:hover:bg-primary/90",destructive:"skippr:bg-destructive skippr:text-white skippr:hover:bg-destructive/90",outline:"skippr:border skippr:border-input skippr:bg-background skippr:shadow-xs skippr:hover:bg-accent skippr:hover:text-accent-foreground",secondary:"skippr:bg-secondary skippr:text-secondary-foreground skippr:hover:bg-secondary/80",ghost:"skippr:hover:bg-accent skippr:hover:text-accent-foreground"},MZ0={default:"skippr:h-9 skippr:px-4 skippr:py-2",xs:"skippr:h-6 skippr:gap-1 skippr:rounded-md skippr:px-2 skippr:text-xs",sm:"skippr:h-8 skippr:gap-1.5 skippr:rounded-md skippr:px-3",lg:"skippr:h-10 skippr:rounded-md skippr:px-6",icon:"skippr:size-9","icon-xs":"skippr:size-6","icon-sm":"skippr:size-8","icon-lg":"skippr:size-10"},D2=Z10.forwardRef(({className:$,variant:Y="default",size:G="default",...H},q)=>{return Y10.jsxDEV("button",{className:d1("skippr:inline-flex skippr:items-center skippr:justify-center skippr:gap-2 skippr:whitespace-nowrap skippr:rounded-md skippr:text-sm skippr:font-medium skippr:ring-offset-background skippr:transition-all skippr:focus-visible:outline-none skippr:focus-visible:ring-2 skippr:focus-visible:ring-ring skippr:focus-visible:ring-offset-2 skippr:disabled:pointer-events-none skippr:disabled:opacity-50 skippr:shrink-0 skippr:[&_svg]:pointer-events-none skippr:[&_svg:not([class*='size-'])]:size-4 skippr:[&_svg]:shrink-0",FZ0[Y],MZ0[G],$),ref:q,...H},void 0,!1,void 0,this)});D2.displayName="Button";var b6=B(B1(),1);function Q10({onOpenSettings:$}){let{closePanel:Y,minimizePanel:G,minimizable:H,isConnected:q}=N5();return b6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-3 skippr:bg-primary skippr:px-4 skippr:py-3 skippr:text-primary-foreground",children:[b6.jsxDEV("div",{className:"skippr:flex skippr:size-6 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-primary-foreground/20",children:b6.jsxDEV(X9,{className:"skippr:size-3.5 skippr:text-primary-foreground"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b6.jsxDEV("div",{className:"skippr:flex-1",children:b6.jsxDEV("p",{className:"skippr:text-sm skippr:font-semibold skippr:leading-none",children:"AI Agent"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1",children:[b6.jsxDEV(D2,{variant:"ghost",size:"icon-xs",onClick:$,className:"skippr:text-primary-foreground skippr:hover:bg-primary-foreground/20 skippr:hover:text-primary-foreground","aria-label":"Settings",children:b6.jsxDEV(SH,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),H&&q&&b6.jsxDEV(D2,{variant:"ghost",size:"icon-xs",onClick:G,className:"skippr:text-primary-foreground skippr:hover:bg-primary-foreground/20 skippr:hover:text-primary-foreground","aria-label":"Minimize",children:b6.jsxDEV(EH,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b6.jsxDEV(D2,{variant:"ghost",size:"icon-xs",onClick:Y,className:"skippr:text-primary-foreground skippr:hover:bg-primary-foreground/20 skippr:hover:text-primary-foreground","aria-label":"Close",children:b6.jsxDEV(j7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var G2=B(W1(),1);var E1=B(B1(),1),W5=6,OZ0=["d0","d1","d2","d3","d4","d5"];function G10({requestOtp:$,verifyOtp:Y,error:G,isSubmitting:H}){let[q,K]=G2.useState("email"),[N,U]=G2.useState(""),F=G2.useCallback(async(R)=>{if(await $(R))K("otp")},[$]),M=G2.useCallback(async(R)=>{await Y(N,R)},[Y,N]),L=G2.useCallback(()=>{K("email")},[]),k=G2.useCallback(async()=>{await $(N)},[$,N]);if(q==="otp")return E1.jsxDEV(LZ0,{email:N,onSubmit:M,onResend:k,onBack:L,error:G,isSubmitting:H},void 0,!1,void 0,this);return E1.jsxDEV(PZ0,{email:N,onEmailChange:U,onSubmit:F,error:G,isSubmitting:H},void 0,!1,void 0,this)}function PZ0({email:$,onEmailChange:Y,onSubmit:G,error:H,isSubmitting:q}){function K(N){if(N.preventDefault(),$.trim())G($.trim())}return E1.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",children:[E1.jsxDEV("div",{className:"skippr:mb-4 skippr:text-center",children:[E1.jsxDEV(CH,{className:"skippr:mx-auto skippr:mb-2 skippr:size-6 skippr:text-primary"},void 0,!1,void 0,this),E1.jsxDEV("p",{className:"skippr:text-sm skippr:font-medium skippr:text-foreground",children:"Sign in to continue"},void 0,!1,void 0,this),E1.jsxDEV("p",{className:"skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",children:"Your email will be used to identify you across sessions"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),E1.jsxDEV("form",{onSubmit:K,className:"skippr:flex skippr:flex-col skippr:gap-3",children:[E1.jsxDEV("input",{type:"email",placeholder:"you@example.com",value:$,onChange:(N)=>Y(N.target.value),disabled:q,required:!0,className:"skippr:w-full skippr:rounded-md skippr:border skippr:border-border skippr:bg-background skippr:px-3 skippr:py-2 skippr:text-sm skippr:text-foreground skippr:placeholder-muted-foreground skippr:outline-none focus:skippr:ring-2 focus:skippr:ring-primary/30 focus:skippr:border-primary disabled:skippr:opacity-50"},void 0,!1,void 0,this),E1.jsxDEV(D2,{type:"submit",disabled:q||!$.trim(),className:"skippr:w-full",children:q?E1.jsxDEV(y6,{className:"skippr:size-4 skippr:animate-spin"},void 0,!1,void 0,this):"Continue"},void 0,!1,void 0,this),H&&E1.jsxDEV("p",{className:"skippr:text-xs skippr:text-center skippr:text-destructive",children:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function LZ0({email:$,onSubmit:Y,onResend:G,onBack:H,error:q,isSubmitting:K}){let[N,U]=G2.useState(Array(W5).fill("")),[F,M]=G2.useState(0),L=G2.useRef([]),k=G2.useRef(!1);G2.useEffect(()=>{L.current[0]?.focus()},[]),G2.useEffect(()=>{if(q)k.current=!1},[q]),G2.useEffect(()=>{if(F<=0)return;let o=setTimeout(()=>M((c)=>c-1),1000);return()=>clearTimeout(o)},[F]);let R=G2.useCallback((o)=>{if(k.current||K)return;k.current=!0,Y(o)},[Y,K]),_=G2.useCallback((o,c)=>{let C=c.replace(/\D/g,"").slice(-1),I=[...N];if(I[o]=C,U(I),C&&o<W5-1)L.current[o+1]?.focus();if(C&&o===W5-1){let p=I.join("");if(p.length===W5)R(p)}},[N,R]),S=G2.useCallback((o,c)=>{if(c.key==="Backspace"&&!N[o]&&o>0)L.current[o-1]?.focus()},[N]),T=G2.useCallback((o)=>{o.preventDefault();let c=o.clipboardData.getData("text").replace(/\D/g,"").slice(0,W5);if(c.length>0){let C=Array(W5).fill("");for(let I=0;I<c.length;I++)C[I]=c[I];if(U(C),c.length===W5)R(c);else L.current[c.length]?.focus()}},[R]);function y(o){o.preventDefault();let c=N.join("");if(c.length===W5)R(c)}function g(){G(),M(30),U(Array(W5).fill("")),k.current=!1,L.current[0]?.focus()}return E1.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",children:[E1.jsxDEV("div",{className:"skippr:mb-4 skippr:text-center",children:[E1.jsxDEV("p",{className:"skippr:text-sm skippr:font-medium skippr:text-foreground",children:"Enter verification code"},void 0,!1,void 0,this),E1.jsxDEV("p",{className:"skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",children:["We sent a 6-digit code to"," ",E1.jsxDEV("span",{className:"skippr:font-medium skippr:text-foreground",children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),E1.jsxDEV("form",{onSubmit:y,className:"skippr:flex skippr:flex-col skippr:gap-3",children:[E1.jsxDEV("div",{className:"skippr:flex skippr:justify-center skippr:gap-1.5",children:N.map((o,c)=>E1.jsxDEV("input",{ref:(C)=>{L.current[c]=C},type:"text",inputMode:"numeric",maxLength:1,value:o,onChange:(C)=>_(c,C.target.value),onKeyDown:(C)=>S(c,C),onPaste:T,disabled:K,className:"skippr:h-10 skippr:w-10 skippr:rounded-md skippr:border skippr:border-border skippr:bg-background skippr:text-center skippr:text-sm skippr:font-semibold skippr:text-foreground skippr:outline-none focus:skippr:ring-2 focus:skippr:ring-primary/30 focus:skippr:border-primary disabled:skippr:opacity-50"},OZ0[c],!1,void 0,this))},void 0,!1,void 0,this),q&&E1.jsxDEV("p",{className:"skippr:text-xs skippr:text-center skippr:text-destructive",children:q},void 0,!1,void 0,this),E1.jsxDEV(D2,{type:"submit",disabled:K||N.join("").length!==W5,className:"skippr:w-full",children:K?E1.jsxDEV(y6,{className:"skippr:size-4 skippr:animate-spin"},void 0,!1,void 0,this):"Verify"},void 0,!1,void 0,this),E1.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:justify-between skippr:text-xs",children:[E1.jsxDEV("button",{type:"button",onClick:H,disabled:K,className:"skippr:text-muted-foreground hover:skippr:text-foreground skippr:transition-colors disabled:skippr:opacity-50",children:"Change email"},void 0,!1,void 0,this),E1.jsxDEV("button",{type:"button",onClick:g,disabled:K||F>0,className:"skippr:text-primary hover:skippr:opacity-80 skippr:transition-opacity disabled:skippr:opacity-50",children:F>0?`Resend in ${F}s`:"Resend code"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var U5=B(W1(),1);function H10($){let Y=Math.floor($/60).toString().padStart(2,"0"),G=($%60).toString().padStart(2,"0");return`${Y}:${G}`}function z10($){let Y=Number($);return Y>0?Y:null}var J10=B(B1(),1),q10=60;function B10({remaining:$}){if($===null||$<=0||$>60)return null;return J10.jsxDEV("div",{"data-testid":"session-warning-banner",className:"skippr:bg-red-50 skippr:px-4 skippr:py-1.5 skippr:text-center skippr:text-xs skippr:font-medium skippr:text-red-700",children:"Session ending soon"},void 0,!1,void 0,this)}var O6=B(B1(),1);function A10({onHangUp:$}){let Y=AQ("maxCallDuration",z10,null),{localParticipant:G}=K5(),H=!G.isMicrophoneEnabled,q=G.isScreenShareEnabled,K=U5.useRef(null),[N,U]=U5.useState(null);U5.useEffect(()=>{if(Y===null||K.current!==null)return;K.current=Date.now()+Y*1000;let L=()=>{let R=Math.ceil((K.current-Date.now())/1000);U(Math.max(R,0))};L();let k=setInterval(L,1000);return()=>clearInterval(k)},[Y]);let F=U5.useCallback(async()=>{try{await G.setMicrophoneEnabled(H)}catch(L){console.error("Failed to toggle microphone:",L)}},[G,H]),M=U5.useCallback(async()=>{try{await G.setScreenShareEnabled(!q,{video:{displaySurface:"browser"},resolution:V7.h720fps30.resolution,contentHint:"detail"})}catch(L){console.error("Failed to toggle screen share:",L)}},[G,q]);return U5.useEffect(()=>{F().then(()=>M())},[]),O6.jsxDEV("div",{children:[O6.jsxDEV(B10,{remaining:N},void 0,!1,void 0,this),O6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:justify-between skippr:border-b skippr:px-4 skippr:py-3",children:[O6.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2",children:[O6.jsxDEV(D2,{size:"icon-sm",variant:H?"destructive":"outline",onClick:F,"aria-label":H?"Unmute":"Mute",children:H?O6.jsxDEV(T7,{className:"skippr:size-4"},void 0,!1,void 0,this):O6.jsxDEV(E7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),O6.jsxDEV(D2,{size:"icon-sm",variant:q?"outline":"destructive",onClick:M,"aria-label":q?"Stop sharing":"Share screen",children:q?O6.jsxDEV(D7,{className:"skippr:size-4"},void 0,!1,void 0,this):O6.jsxDEV(S7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),N!==null&&O6.jsxDEV("span",{className:d1("skippr:text-sm skippr:font-medium skippr:tabular-nums",N<=q10?"skippr:text-red-600 skippr:animate-pulse":"skippr:text-muted-foreground"),children:H10(N)},void 0,!1,void 0,this),O6.jsxDEV(D2,{size:"icon-sm",variant:"destructive",onClick:$,"aria-label":"Hang up",children:O6.jsxDEV(v7,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var QJ=B(W1(),1);var K10=B(W1(),1);var jH=B(B1(),1);function N10({sendChatMessage:$,isSendingChat:Y}){let[G,H]=K10.useState(""),q=G.trim().length>0&&!Y;function K(N){N.preventDefault();let U=G.trim();if(!U||Y)return;H(""),$(U).catch(()=>H(U))}return jH.jsxDEV("form",{onSubmit:K,className:"skippr:flex skippr:items-center skippr:gap-2 skippr:border-t skippr:border-border skippr:px-3 skippr:py-2",children:[jH.jsxDEV("input",{type:"text",value:G,onChange:(N)=>H(N.target.value),placeholder:"Type a message...",className:d1("skippr:flex-1 skippr:rounded-lg skippr:border skippr:border-border skippr:bg-background","skippr:px-3 skippr:py-2 skippr:text-sm skippr:text-foreground","skippr:placeholder:text-muted-foreground skippr:outline-none","skippr:focus:ring-1 skippr:focus:ring-ring"),disabled:Y},void 0,!1,void 0,this),jH.jsxDEV("button",{type:"submit",disabled:!q,"aria-label":"Send message",className:d1("skippr:flex skippr:size-9 skippr:shrink-0 skippr:items-center skippr:justify-center","skippr:rounded-lg skippr:bg-primary skippr:text-primary-foreground","skippr:transition-opacity",!q&&"skippr:opacity-50 skippr:cursor-not-allowed"),children:jH.jsxDEV(w8,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var Ku=B(B1(),1);function W10({message:$}){let Y=$.role==="user";return Ku.jsxDEV("div",{className:d1("skippr:flex skippr:w-full skippr:px-4 skippr:py-1",Y?"skippr:justify-end":"skippr:justify-start"),children:Ku.jsxDEV("div",{className:d1("skippr:max-w-[85%] skippr:whitespace-pre-wrap skippr:rounded-2xl skippr:px-4 skippr:py-2.5 skippr:text-sm skippr:leading-relaxed",Y?"skippr:rounded-br-sm skippr:bg-primary skippr:text-primary-foreground":"skippr:rounded-bl-sm skippr:bg-muted skippr:text-foreground"),children:$.content},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var KQ=B(B1(),1);function U10(){return KQ.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1 skippr:px-4 skippr:py-3",children:KQ.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-1 skippr:rounded-2xl skippr:rounded-bl-sm skippr:bg-muted skippr:px-4 skippr:py-2.5",children:[KQ.jsxDEV("span",{className:"skippr:size-1.5 skippr:animate-bounce skippr:rounded-full skippr:bg-muted-foreground/60 skippr:[animation-delay:0ms]"},void 0,!1,void 0,this),KQ.jsxDEV("span",{className:"skippr:size-1.5 skippr:animate-bounce skippr:rounded-full skippr:bg-muted-foreground/60 skippr:[animation-delay:150ms]"},void 0,!1,void 0,this),KQ.jsxDEV("span",{className:"skippr:size-1.5 skippr:animate-bounce skippr:rounded-full skippr:bg-muted-foreground/60 skippr:[animation-delay:300ms]"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var V8=B(B1(),1);function F10({messages:$,isStreaming:Y,sendChatMessage:G,isSendingChat:H}){let q=QJ.useRef(null),K=$.length>0?$[$.length-1]:void 0;QJ.useEffect(()=>{q.current?.scrollIntoView({behavior:"smooth"})},[$.length,K?.content]);let N=Y&&K?.role==="assistant"&&K.content==="";return V8.jsxDEV("div",{className:"skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",children:[V8.jsxDEV("div",{className:"skippr:min-h-0 skippr:flex-1 skippr:overflow-y-auto",children:V8.jsxDEV("div",{className:"skippr:flex skippr:flex-col skippr:gap-1 skippr:py-3",children:[$.map((U)=>V8.jsxDEV(W10,{message:U},U.id,!1,void 0,this)),N&&V8.jsxDEV(U10,{},void 0,!1,void 0,this),V8.jsxDEV("div",{ref:q},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),V8.jsxDEV(N10,{sendChatMessage:G,isSendingChat:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var f7=B(B1(),1);function M10({onStartSession:$,isStarting:Y,error:G}){return f7.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:gap-6 skippr:overflow-y-auto skippr:px-4 skippr:py-4",children:[f7.jsxDEV("p",{className:"skippr:mb-1 skippr:text-sm skippr:text-muted-foreground",children:"How can I help you today?"},void 0,!1,void 0,this),f7.jsxDEV(D2,{variant:"outline",className:"skippr:h-auto skippr:flex-col skippr:gap-1.5 skippr:whitespace-normal skippr:py-3 skippr:text-xs",onClick:$,disabled:Y,children:[Y?f7.jsxDEV(y6,{className:"skippr:size-4 skippr:animate-spin skippr:text-primary"},void 0,!1,void 0,this):f7.jsxDEV(k8,{className:"skippr:size-4 skippr:text-primary"},void 0,!1,void 0,this),Y?"Starting...":"Start Session"]},void 0,!0,void 0,this),G&&f7.jsxDEV("p",{className:"skippr:text-xs skippr:text-destructive",children:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var l2=B(B1(),1);function O10({phases:$,questions:Y=[]}){if($.length===0)return l2.jsxDEV("div",{className:"skippr:flex skippr:flex-col skippr:gap-3 skippr:p-4",children:[l2.jsxDEV("h3",{className:"skippr:text-sm skippr:font-semibold",children:"Agenda"},void 0,!1,void 0,this),l2.jsxDEV("p",{className:"skippr:text-xs skippr:text-muted-foreground",children:"Waiting for session..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return l2.jsxDEV("div",{className:"skippr:flex skippr:flex-col skippr:gap-3 skippr:p-4",children:[l2.jsxDEV("h3",{className:"skippr:text-sm skippr:font-semibold",children:"Agenda"},void 0,!1,void 0,this),l2.jsxDEV("ul",{className:"skippr:flex skippr:flex-col skippr:gap-2",children:$.map((G)=>{let H=Y.filter((N)=>N.phaseName===G.name),q=H.filter((N)=>N.status==="answered").length,K=H.length;return l2.jsxDEV("li",{className:"skippr:flex skippr:flex-col skippr:gap-0.5",children:[l2.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2 skippr:text-sm",children:[l2.jsxDEV(kZ0,{status:G.status},void 0,!1,void 0,this),l2.jsxDEV("span",{className:d1(G.status==="completed"&&"skippr:text-muted-foreground skippr:line-through",G.status==="active"&&"skippr:font-medium skippr:text-primary"),children:G.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K>0&&l2.jsxDEV("span",{className:"skippr:ml-6 skippr:text-xs skippr:text-muted-foreground",children:[q,"/",K," answered"]},void 0,!0,void 0,this)]},G.name,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function kZ0({status:$}){if($==="completed")return l2.jsxDEV("div",{className:"skippr:flex skippr:size-4 skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-primary",children:l2.jsxDEV(_H,{className:"skippr:size-2.5 skippr:text-primary-foreground",strokeWidth:3},void 0,!1,void 0,this)},void 0,!1,void 0,this);if($==="active")return l2.jsxDEV(y6,{className:"skippr:size-4 skippr:shrink-0 skippr:text-primary skippr:animate-spin"},void 0,!1,void 0,this);return l2.jsxDEV(IH,{className:"skippr:size-4 skippr:shrink-0 skippr:text-muted-foreground"},void 0,!1,void 0,this)}var c2=B(B1(),1);function P10({onBack:$}){let{position:Y,setPosition:G}=N5();return c2.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:flex-col",children:[c2.jsxDEV("div",{className:"skippr:flex skippr:items-center skippr:gap-2 skippr:border-b skippr:border-border skippr:px-4 skippr:py-3",children:[c2.jsxDEV(D2,{variant:"ghost",size:"icon-xs",onClick:$,"aria-label":"Back",children:c2.jsxDEV(VH,{className:"skippr:size-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),c2.jsxDEV("p",{className:"skippr:text-sm skippr:font-semibold",children:"Settings"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c2.jsxDEV("div",{className:"skippr:flex-1 skippr:overflow-y-auto skippr:p-4",children:c2.jsxDEV("div",{className:"skippr:mb-4",children:[c2.jsxDEV("p",{className:"skippr:mb-2 skippr:text-xs skippr:font-medium skippr:uppercase skippr:tracking-wide skippr:text-muted-foreground",children:"Widget Position"},void 0,!1,void 0,this),c2.jsxDEV("div",{className:"skippr:flex skippr:gap-2",children:[c2.jsxDEV("button",{type:"button",onClick:()=>G("left"),className:d1("skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:gap-2 skippr:rounded-lg skippr:border skippr:p-3 skippr:cursor-pointer skippr:transition-colors",Y==="left"?"skippr:border-primary skippr:bg-primary/5 skippr:text-primary":"skippr:border-border skippr:text-muted-foreground skippr:hover:border-primary/40"),children:[c2.jsxDEV(R8,{className:"skippr:size-5"},void 0,!1,void 0,this),c2.jsxDEV("span",{className:"skippr:text-xs skippr:font-medium",children:"Left"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),c2.jsxDEV("button",{type:"button",onClick:()=>G("right"),className:d1("skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:gap-2 skippr:rounded-lg skippr:border skippr:p-3 skippr:cursor-pointer skippr:transition-colors",Y==="right"?"skippr:border-primary skippr:bg-primary/5 skippr:text-primary":"skippr:border-border skippr:text-muted-foreground skippr:hover:border-primary/40"),children:[c2.jsxDEV(DH,{className:"skippr:size-5"},void 0,!1,void 0,this),c2.jsxDEV("span",{className:"skippr:text-xs skippr:font-medium",children:"Right"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var X2=B(B1(),1);function L10(){let{variant:$,isConnected:Y,isStarting:G,error:H,startSession:q,disconnect:K,isPanelOpen:N,position:U,isAuthenticated:F,isValidating:M,authError:L,requestOtp:k,verifyOtp:R,isAuthSubmitting:_}=N5(),[S,T]=GJ.useState("main"),y=$==="floating",g=$==="sidebar";return GJ.useEffect(()=>{if(!g)return;let o=U==="right"?"marginRight":"marginLeft",c=U==="right"?"marginLeft":"marginRight";return document.body.style.transition="margin 300ms ease-in-out",document.body.style[c]="",document.body.style[o]=N?`${Au}px`:"",()=>{document.body.style.marginRight="",document.body.style.marginLeft="",document.body.style.transition=""}},[g,N,U]),X2.jsxDEV("div",{className:d1("skippr:fixed skippr:z-[9999]","skippr:bg-background skippr:border skippr:border-border","skippr:flex skippr:flex-col","skippr:transition-all skippr:duration-300 skippr:ease-in-out skippr:overflow-hidden",y&&"skippr:bottom-4 skippr:min-h-[28rem] skippr:max-h-[calc(100vh-6rem)] skippr:rounded-2xl skippr:shadow-2xl",y&&(U==="right"?"skippr:right-4":"skippr:left-4"),y&&!N&&"skippr:w-0 skippr:h-0 skippr:border-0",g&&"skippr:top-0 skippr:h-full",g&&U==="right"&&"skippr:right-0 skippr:border-l skippr:border-l-border",g&&U==="left"&&"skippr:left-0 skippr:border-r skippr:border-r-border",g&&!N&&"skippr:w-0 skippr:border-0"),style:{width:N?Au:void 0},children:S==="settings"?X2.jsxDEV(P10,{onBack:()=>T("main")},void 0,!1,void 0,this):X2.jsxDEV(X2.Fragment,{children:[X2.jsxDEV(Q10,{onOpenSettings:()=>T("settings")},void 0,!1,void 0,this),Y?X2.jsxDEV(RZ0,{onDisconnect:K},void 0,!1,void 0,this):M?X2.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",children:X2.jsxDEV("p",{className:"skippr:text-sm skippr:text-muted-foreground",children:"Loading..."},void 0,!1,void 0,this)},void 0,!1,void 0,this):F?X2.jsxDEV(M10,{onStartSession:q,isStarting:G,error:H},void 0,!1,void 0,this):X2.jsxDEV(G10,{requestOtp:k,verifyOtp:R,error:L,isSubmitting:_},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function RZ0({onDisconnect:$}){let G=C7()===n0.Connected,{allMessages:H,agentState:q,sendChatMessage:K,isSendingChat:N}=a00(),{phases:U}=e00(),{questions:F}=$10();if(!G)return X2.jsxDEV("div",{className:"skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",children:X2.jsxDEV("p",{className:"skippr:text-sm skippr:text-muted-foreground",children:"Connecting..."},void 0,!1,void 0,this)},void 0,!1,void 0,this);return X2.jsxDEV(X2.Fragment,{children:[X2.jsxDEV(A10,{onHangUp:$},void 0,!1,void 0,this),X2.jsxDEV("div",{className:"skippr:flex skippr:min-h-0 skippr:flex-1",children:[X2.jsxDEV("div",{className:"skippr:w-[180px] skippr:shrink-0 skippr:overflow-y-auto skippr:border-r",children:X2.jsxDEV(O10,{phases:U,questions:F},void 0,!1,void 0,this)},void 0,!1,void 0,this),X2.jsxDEV("div",{className:"skippr:flex skippr:min-w-0 skippr:flex-1 skippr:flex-col",children:X2.jsxDEV(F10,{messages:H,isStreaming:q==="speaking",sendChatMessage:K,isSendingChat:N},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var HJ=B(B1(),1);function k10(){let{isPanelOpen:$,togglePanel:Y,position:G,isMinimized:H,isConnected:q}=N5();if(H&&q)return null;return HJ.jsxDEV(D2,{size:"icon-lg",onClick:Y,className:d1("skippr:fixed skippr:bottom-6 skippr:z-[9998] skippr:size-14 skippr:rounded-full skippr:shadow-lg skippr:transition-all skippr:duration-300",G==="right"?"skippr:right-6":"skippr:left-6"),title:$?"Close chat":"Chat with us",children:$?HJ.jsxDEV(j7,{className:"skippr:size-6"},void 0,!1,void 0,this):HJ.jsxDEV(TH,{className:"skippr:size-6"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var F5=B(B1(),1);function R10({agentId:$,authToken:Y,appKey:G,userToken:H,position:q="right",variant:K="floating",minimizable:N=!0,defaultOpen:U=!1,children:F}){let M=F00({appKey:G}),L=Y||M.authToken||void 0,{connection:k,shouldConnect:R,isStarting:_,error:S,startSession:T,disconnect:y}=M00({agentId:$,authToken:L,appKey:G,userToken:H}),[g,o]=H6.useState(U),[c,C]=H6.useState(!1),[I,p]=H6.useState(()=>{try{let F0=localStorage.getItem("skippr_widget_position");if(F0==="left"||F0==="right")return F0}catch{}return q}),l=H6.useCallback((F0)=>{p(F0);try{localStorage.setItem("skippr_widget_position",F0)}catch{}},[]),f=H6.useCallback(()=>o(!0),[]),n=H6.useCallback(()=>o(!1),[]),u=H6.useCallback(()=>o((F0)=>!F0),[]),X0=H6.useCallback(()=>{C(!1),o(!0)},[]),Y0=H6.useCallback(()=>{if(!N)return;C(!0),o(!1)},[N]),M0=k!==null,y0=!!H||!!Y||M.isAuthenticated;H6.useEffect(()=>{if(k&&N)C(!0),o(!1);else if(!k)C(!1)},[k,N]);let G0=H6.useMemo(()=>({connection:k,shouldConnect:R,isConnected:M0,isStarting:_,error:S,startSession:T,disconnect:y,isPanelOpen:g,openPanel:f,closePanel:n,togglePanel:u,variant:K,position:I,setPosition:l,minimizable:N,isMinimized:c,expandPanel:X0,minimizePanel:Y0,isAuthenticated:y0,isValidating:M.isValidating,authError:M.error,requestOtp:M.requestOtp,verifyOtp:M.verifyOtp,logoutAuth:M.logout,isAuthSubmitting:M.isSubmitting}),[k,R,M0,_,S,T,y,g,f,n,u,K,I,l,N,c,X0,Y0,y0,M.isValidating,M.error,M.requestOtp,M.verifyOtp,M.logout,M.isSubmitting]),N0=F5.jsxDEV(F5.Fragment,{children:[k&&F5.jsxDEV(mU,{},void 0,!1,void 0,this),c&&M0&&F5.jsxDEV(l00,{},void 0,!1,void 0,this),F5.jsxDEV(k10,{},void 0,!1,void 0,this),F5.jsxDEV(L10,{},void 0,!1,void 0,this),F]},void 0,!0,void 0,this);return F5.jsxDEV(rB.Provider,{value:G0,children:k?F5.jsxDEV(SU,{serverUrl:k.livekitUrl,token:k.token,connect:R,audio:!0,onDisconnected:y,children:N0},void 0,!1,void 0,this):N0},void 0,!1,void 0,this)}var x10=B(B1(),1);function w10({agentId:$,appKey:Y,userToken:G,position:H,variant:q,minimizable:K}){return x10.jsxDEV(R10,{agentId:$,appKey:Y,userToken:G,position:H,variant:q,minimizable:K},void 0,!1,void 0,this)}var wZ0="skippr-sdk-root",Nu="skippr:sdk-styles",xZ0=`/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
|
|
275
275
|
@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){#skippr-sdk-root *,#skippr-sdk-root *:before,#skippr-sdk-root *:after{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}:root,:host{--skippr-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--skippr-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--skippr-color-red-50:oklch(97.1% .013 17.38);--skippr-color-red-600:oklch(57.7% .245 27.325);--skippr-color-red-700:oklch(50.5% .213 27.518);--skippr-color-white:#fff;--skippr-spacing:.25rem;--skippr-text-xs:.75rem;--skippr-text-xs--line-height:calc(1/.75);--skippr-text-sm:.875rem;--skippr-text-sm--line-height:calc(1.25/.875);--skippr-font-weight-medium:500;--skippr-font-weight-semibold:600;--skippr-tracking-wide:.025em;--skippr-leading-relaxed:1.625;--skippr-radius-2xl:1rem;--skippr-ease-in-out:cubic-bezier(.4,0,.2,1);--skippr-animate-spin:spin 1s linear infinite;--skippr-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--skippr-animate-bounce:bounce 1s infinite;--skippr-default-transition-duration:.15s;--skippr-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--skippr-default-font-family:var(--skippr-font-sans);--skippr-default-mono-font-family:var(--skippr-font-mono)}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}#skippr-sdk-root ::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}#skippr-sdk-root{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--skippr-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--skippr-default-font-feature-settings,normal);font-variation-settings:var(--skippr-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--skippr-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--skippr-default-mono-font-feature-settings,normal);font-variation-settings:var(--skippr-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}#skippr-sdk-root ::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}#skippr-sdk-root ::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}#skippr-sdk-root ::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}#skippr-sdk-root .skippr\\:absolute{position:absolute}#skippr-sdk-root .skippr\\:fixed{position:fixed}#skippr-sdk-root .skippr\\:relative{position:relative}#skippr-sdk-root .skippr\\:inset-0{inset:calc(var(--skippr-spacing)*0)}#skippr-sdk-root .skippr\\:top-0{top:calc(var(--skippr-spacing)*0)}#skippr-sdk-root .skippr\\:right-0{right:calc(var(--skippr-spacing)*0)}#skippr-sdk-root .skippr\\:right-4{right:calc(var(--skippr-spacing)*4)}#skippr-sdk-root .skippr\\:right-6{right:calc(var(--skippr-spacing)*6)}#skippr-sdk-root .skippr\\:bottom-4{bottom:calc(var(--skippr-spacing)*4)}#skippr-sdk-root .skippr\\:bottom-6{bottom:calc(var(--skippr-spacing)*6)}#skippr-sdk-root .skippr\\:left-0{left:calc(var(--skippr-spacing)*0)}#skippr-sdk-root .skippr\\:left-4{left:calc(var(--skippr-spacing)*4)}#skippr-sdk-root .skippr\\:left-6{left:calc(var(--skippr-spacing)*6)}#skippr-sdk-root .skippr\\:z-10{z-index:10}#skippr-sdk-root .skippr\\:z-\\[9998\\]{z-index:9998}#skippr-sdk-root .skippr\\:z-\\[9999\\]{z-index:9999}#skippr-sdk-root .skippr\\:mx-1{margin-inline:calc(var(--skippr-spacing)*1)}#skippr-sdk-root .skippr\\:mx-auto{margin-inline:auto}#skippr-sdk-root .skippr\\:mt-1{margin-top:calc(var(--skippr-spacing)*1)}#skippr-sdk-root .skippr\\:mb-1{margin-bottom:calc(var(--skippr-spacing)*1)}#skippr-sdk-root .skippr\\:mb-2{margin-bottom:calc(var(--skippr-spacing)*2)}#skippr-sdk-root .skippr\\:mb-4{margin-bottom:calc(var(--skippr-spacing)*4)}#skippr-sdk-root .skippr\\:ml-6{margin-left:calc(var(--skippr-spacing)*6)}#skippr-sdk-root .skippr\\:flex{display:flex}#skippr-sdk-root .skippr\\:inline-flex{display:inline-flex}#skippr-sdk-root .skippr\\:size-1\\.5{width:calc(var(--skippr-spacing)*1.5);height:calc(var(--skippr-spacing)*1.5)}#skippr-sdk-root .skippr\\:size-2\\.5{width:calc(var(--skippr-spacing)*2.5);height:calc(var(--skippr-spacing)*2.5)}#skippr-sdk-root .skippr\\:size-3\\.5{width:calc(var(--skippr-spacing)*3.5);height:calc(var(--skippr-spacing)*3.5)}#skippr-sdk-root .skippr\\:size-4{width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}#skippr-sdk-root .skippr\\:size-5{width:calc(var(--skippr-spacing)*5);height:calc(var(--skippr-spacing)*5)}#skippr-sdk-root .skippr\\:size-6{width:calc(var(--skippr-spacing)*6);height:calc(var(--skippr-spacing)*6)}#skippr-sdk-root .skippr\\:size-8{width:calc(var(--skippr-spacing)*8);height:calc(var(--skippr-spacing)*8)}#skippr-sdk-root .skippr\\:size-9{width:calc(var(--skippr-spacing)*9);height:calc(var(--skippr-spacing)*9)}#skippr-sdk-root .skippr\\:size-10{width:calc(var(--skippr-spacing)*10);height:calc(var(--skippr-spacing)*10)}#skippr-sdk-root .skippr\\:size-11{width:calc(var(--skippr-spacing)*11);height:calc(var(--skippr-spacing)*11)}#skippr-sdk-root .skippr\\:size-14{width:calc(var(--skippr-spacing)*14);height:calc(var(--skippr-spacing)*14)}#skippr-sdk-root .skippr\\:h-0{height:calc(var(--skippr-spacing)*0)}#skippr-sdk-root .skippr\\:h-5{height:calc(var(--skippr-spacing)*5)}#skippr-sdk-root .skippr\\:h-6{height:calc(var(--skippr-spacing)*6)}#skippr-sdk-root .skippr\\:h-8{height:calc(var(--skippr-spacing)*8)}#skippr-sdk-root .skippr\\:h-9{height:calc(var(--skippr-spacing)*9)}#skippr-sdk-root .skippr\\:h-10{height:calc(var(--skippr-spacing)*10)}#skippr-sdk-root .skippr\\:h-auto{height:auto}#skippr-sdk-root .skippr\\:h-full{height:100%}#skippr-sdk-root .skippr\\:max-h-\\[calc\\(100vh-6rem\\)\\]{max-height:calc(100vh - 6rem)}#skippr-sdk-root .skippr\\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}#skippr-sdk-root .skippr\\:min-h-\\[28rem\\]{min-height:28rem}#skippr-sdk-root .skippr\\:w-0{width:calc(var(--skippr-spacing)*0)}#skippr-sdk-root .skippr\\:w-10{width:calc(var(--skippr-spacing)*10)}#skippr-sdk-root .skippr\\:w-\\[3px\\]{width:3px}#skippr-sdk-root .skippr\\:w-\\[180px\\]{width:180px}#skippr-sdk-root .skippr\\:w-full{width:100%}#skippr-sdk-root .skippr\\:w-px{width:1px}#skippr-sdk-root .skippr\\:max-w-\\[85\\%\\]{max-width:85%}#skippr-sdk-root .skippr\\:min-w-0{min-width:calc(var(--skippr-spacing)*0)}#skippr-sdk-root .skippr\\:flex-1{flex:1}#skippr-sdk-root .skippr\\:shrink-0{flex-shrink:0}#skippr-sdk-root .skippr\\:origin-bottom{transform-origin:bottom}#skippr-sdk-root .skippr\\:animate-bounce{animation:var(--skippr-animate-bounce)}#skippr-sdk-root .skippr\\:animate-pulse{animation:var(--skippr-animate-pulse)}#skippr-sdk-root .skippr\\:animate-skippr-bar-1{animation:.8s ease-in-out infinite skippr-bar}#skippr-sdk-root .skippr\\:animate-skippr-bar-2{animation:.8s ease-in-out .15s infinite skippr-bar}#skippr-sdk-root .skippr\\:animate-skippr-bar-3{animation:.8s ease-in-out .3s infinite skippr-bar}#skippr-sdk-root .skippr\\:animate-skippr-bar-4{animation:.8s ease-in-out .45s infinite skippr-bar}#skippr-sdk-root .skippr\\:animate-skippr-breathe{animation:2.5s ease-in-out infinite skippr-breathe}#skippr-sdk-root .skippr\\:animate-skippr-pulse-ring{animation:2s ease-in-out infinite skippr-pulse-ring}#skippr-sdk-root .skippr\\:animate-skippr-speak-ripple{animation:.8s ease-in-out infinite skippr-speak-ripple}#skippr-sdk-root .skippr\\:animate-skippr-speak-ripple-delayed{animation:.8s ease-in-out .3s infinite skippr-speak-ripple}#skippr-sdk-root .skippr\\:animate-spin{animation:var(--skippr-animate-spin)}#skippr-sdk-root .skippr\\:cursor-not-allowed{cursor:not-allowed}#skippr-sdk-root .skippr\\:cursor-pointer{cursor:pointer}#skippr-sdk-root .skippr\\:flex-col{flex-direction:column}#skippr-sdk-root .skippr\\:items-center{align-items:center}#skippr-sdk-root .skippr\\:items-end{align-items:flex-end}#skippr-sdk-root .skippr\\:justify-between{justify-content:space-between}#skippr-sdk-root .skippr\\:justify-center{justify-content:center}#skippr-sdk-root .skippr\\:justify-end{justify-content:flex-end}#skippr-sdk-root .skippr\\:justify-start{justify-content:flex-start}#skippr-sdk-root .skippr\\:gap-0{gap:calc(var(--skippr-spacing)*0)}#skippr-sdk-root .skippr\\:gap-0\\.5{gap:calc(var(--skippr-spacing)*.5)}#skippr-sdk-root .skippr\\:gap-1{gap:calc(var(--skippr-spacing)*1)}#skippr-sdk-root .skippr\\:gap-1\\.5{gap:calc(var(--skippr-spacing)*1.5)}#skippr-sdk-root .skippr\\:gap-2{gap:calc(var(--skippr-spacing)*2)}#skippr-sdk-root .skippr\\:gap-3{gap:calc(var(--skippr-spacing)*3)}#skippr-sdk-root .skippr\\:gap-6{gap:calc(var(--skippr-spacing)*6)}#skippr-sdk-root .skippr\\:gap-\\[3px\\]{gap:3px}#skippr-sdk-root .skippr\\:overflow-hidden{overflow:hidden}#skippr-sdk-root .skippr\\:overflow-y-auto{overflow-y:auto}#skippr-sdk-root .skippr\\:rounded-2xl{border-radius:var(--skippr-radius-2xl)}#skippr-sdk-root .skippr\\:rounded-full{border-radius:3.40282e38px}#skippr-sdk-root .skippr\\:rounded-lg{border-radius:var(--radius)}#skippr-sdk-root .skippr\\:rounded-md{border-radius:calc(var(--radius) - 2px)}#skippr-sdk-root .skippr\\:rounded-br-sm{border-bottom-right-radius:calc(var(--radius) - 4px)}#skippr-sdk-root .skippr\\:rounded-bl-sm{border-bottom-left-radius:calc(var(--radius) - 4px)}#skippr-sdk-root .skippr\\:border{border-style:var(--tw-border-style);border-width:1px}#skippr-sdk-root .skippr\\:border-0{border-style:var(--tw-border-style);border-width:0}#skippr-sdk-root .skippr\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}#skippr-sdk-root .skippr\\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}#skippr-sdk-root .skippr\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}#skippr-sdk-root .skippr\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}#skippr-sdk-root .skippr\\:border-border,#skippr-sdk-root .skippr\\:border-input{border-color:oklch(88.22% 0 0)}#skippr-sdk-root .skippr\\:border-primary{border-color:oklch(43.41% .0392 41.9938)}#skippr-sdk-root .skippr\\:border-r-border{border-right-color:oklch(88.22% 0 0)}#skippr-sdk-root .skippr\\:border-l-border{border-left-color:oklch(88.22% 0 0)}#skippr-sdk-root .skippr\\:bg-background{background-color:oklch(98.21% 0 0)}#skippr-sdk-root .skippr\\:bg-border{background-color:oklch(88.22% 0 0)}#skippr-sdk-root .skippr\\:bg-card{background-color:oklch(99.11% 0 0)}#skippr-sdk-root .skippr\\:bg-destructive{background-color:oklch(62.71% .1936 33.339)}#skippr-sdk-root .skippr\\:bg-muted{background-color:oklch(95.21% 0 0)}#skippr-sdk-root .skippr\\:bg-muted-foreground\\/60{background-color:oklab(50.32% 0 0/.6)}#skippr-sdk-root .skippr\\:bg-primary{background-color:oklch(43.41% .0392 41.9938)}#skippr-sdk-root .skippr\\:bg-primary-foreground{background-color:oklch(100% 0 0)}#skippr-sdk-root .skippr\\:bg-primary-foreground\\/20{background-color:oklab(100% 0 0/.2)}#skippr-sdk-root .skippr\\:bg-primary\\/5{background-color:oklab(43.41% .0291341 .0262268/.05)}#skippr-sdk-root .skippr\\:bg-red-50{background-color:var(--skippr-color-red-50)}#skippr-sdk-root .skippr\\:bg-secondary{background-color:oklch(92% .0651 74.3695)}#skippr-sdk-root .skippr\\:p-1\\.5{padding:calc(var(--skippr-spacing)*1.5)}#skippr-sdk-root .skippr\\:p-3{padding:calc(var(--skippr-spacing)*3)}#skippr-sdk-root .skippr\\:p-4{padding:calc(var(--skippr-spacing)*4)}#skippr-sdk-root .skippr\\:px-2{padding-inline:calc(var(--skippr-spacing)*2)}#skippr-sdk-root .skippr\\:px-3{padding-inline:calc(var(--skippr-spacing)*3)}#skippr-sdk-root .skippr\\:px-4{padding-inline:calc(var(--skippr-spacing)*4)}#skippr-sdk-root .skippr\\:px-6{padding-inline:calc(var(--skippr-spacing)*6)}#skippr-sdk-root .skippr\\:py-1{padding-block:calc(var(--skippr-spacing)*1)}#skippr-sdk-root .skippr\\:py-1\\.5{padding-block:calc(var(--skippr-spacing)*1.5)}#skippr-sdk-root .skippr\\:py-2{padding-block:calc(var(--skippr-spacing)*2)}#skippr-sdk-root .skippr\\:py-2\\.5{padding-block:calc(var(--skippr-spacing)*2.5)}#skippr-sdk-root .skippr\\:py-3{padding-block:calc(var(--skippr-spacing)*3)}#skippr-sdk-root .skippr\\:py-4{padding-block:calc(var(--skippr-spacing)*4)}#skippr-sdk-root .skippr\\:text-center{text-align:center}#skippr-sdk-root .skippr\\:text-sm{font-size:var(--skippr-text-sm);line-height:var(--tw-leading,var(--skippr-text-sm--line-height))}#skippr-sdk-root .skippr\\:text-xs{font-size:var(--skippr-text-xs);line-height:var(--tw-leading,var(--skippr-text-xs--line-height))}#skippr-sdk-root .skippr\\:leading-none{--tw-leading:1;line-height:1}#skippr-sdk-root .skippr\\:leading-relaxed{--tw-leading:var(--skippr-leading-relaxed);line-height:var(--skippr-leading-relaxed)}#skippr-sdk-root .skippr\\:font-medium{--tw-font-weight:var(--skippr-font-weight-medium);font-weight:var(--skippr-font-weight-medium)}#skippr-sdk-root .skippr\\:font-semibold{--tw-font-weight:var(--skippr-font-weight-semibold);font-weight:var(--skippr-font-weight-semibold)}#skippr-sdk-root .skippr\\:tracking-wide{--tw-tracking:var(--skippr-tracking-wide);letter-spacing:var(--skippr-tracking-wide)}#skippr-sdk-root .skippr\\:whitespace-normal{white-space:normal}#skippr-sdk-root .skippr\\:whitespace-nowrap{white-space:nowrap}#skippr-sdk-root .skippr\\:whitespace-pre-wrap{white-space:pre-wrap}#skippr-sdk-root .skippr\\:text-destructive{color:oklch(62.71% .1936 33.339)}#skippr-sdk-root .skippr\\:text-foreground{color:oklch(24.35% 0 0)}#skippr-sdk-root .skippr\\:text-muted-foreground{color:oklch(50.32% 0 0)}#skippr-sdk-root .skippr\\:text-primary{color:oklch(43.41% .0392 41.9938)}#skippr-sdk-root .skippr\\:text-primary-foreground{color:oklch(100% 0 0)}#skippr-sdk-root .skippr\\:text-red-600{color:var(--skippr-color-red-600)}#skippr-sdk-root .skippr\\:text-red-700{color:var(--skippr-color-red-700)}#skippr-sdk-root .skippr\\:text-secondary-foreground{color:oklch(34.99% .0685 40.8288)}#skippr-sdk-root .skippr\\:text-white{color:var(--skippr-color-white)}#skippr-sdk-root .skippr\\:uppercase{text-transform:uppercase}#skippr-sdk-root .skippr\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}#skippr-sdk-root .skippr\\:line-through{text-decoration-line:line-through}#skippr-sdk-root .skippr\\:placeholder-muted-foreground::placeholder{color:oklch(50.32% 0 0)}#skippr-sdk-root .skippr\\:opacity-50{opacity:.5}#skippr-sdk-root .skippr\\:shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#skippr-sdk-root .skippr\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#skippr-sdk-root .skippr\\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#skippr-sdk-root .skippr\\:ring-offset-background{--tw-ring-offset-color:oklch(98.21% 0 0)}#skippr-sdk-root .skippr\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}#skippr-sdk-root .skippr\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}#skippr-sdk-root .skippr\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}#skippr-sdk-root .skippr\\:duration-300{--tw-duration:.3s;transition-duration:.3s}#skippr-sdk-root .skippr\\:ease-in-out{--tw-ease:var(--skippr-ease-in-out);transition-timing-function:var(--skippr-ease-in-out)}#skippr-sdk-root .skippr\\:outline-none{--tw-outline-style:none;outline-style:none}#skippr-sdk-root .skippr\\:\\[animation-delay\\:0ms\\]{animation-delay:0s}#skippr-sdk-root .skippr\\:\\[animation-delay\\:150ms\\]{animation-delay:.15s}#skippr-sdk-root .skippr\\:\\[animation-delay\\:300ms\\]{animation-delay:.3s}#skippr-sdk-root .skippr\\:placeholder\\:text-muted-foreground::placeholder{color:oklch(50.32% 0 0)}@media (hover:hover){#skippr-sdk-root .skippr\\:hover\\:border-primary\\/40:hover{border-color:oklab(43.41% .0291341 .0262268/.4)}#skippr-sdk-root .skippr\\:hover\\:bg-accent:hover{background-color:oklch(93.1% 0 0)}#skippr-sdk-root .skippr\\:hover\\:bg-destructive\\/90:hover{background-color:oklab(62.71% .16174 .106401/.9)}#skippr-sdk-root .skippr\\:hover\\:bg-primary-foreground\\/20:hover{background-color:oklab(100% 0 0/.2)}#skippr-sdk-root .skippr\\:hover\\:bg-primary\\/90:hover{background-color:oklab(43.41% .0291341 .0262268/.9)}#skippr-sdk-root .skippr\\:hover\\:bg-secondary\\/80:hover{background-color:oklab(92% .0175401 .0626926/.8)}#skippr-sdk-root .skippr\\:hover\\:text-accent-foreground:hover{color:oklch(24.35% 0 0)}#skippr-sdk-root .skippr\\:hover\\:text-primary-foreground:hover{color:oklch(100% 0 0)}#skippr-sdk-root .skippr\\:hover\\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}}#skippr-sdk-root .skippr\\:focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#skippr-sdk-root .skippr\\:focus\\:ring-ring:focus{--tw-ring-color:oklch(43.41% .0392 41.9938)}#skippr-sdk-root .skippr\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#skippr-sdk-root .skippr\\:focus-visible\\:ring-ring:focus-visible{--tw-ring-color:oklch(43.41% .0392 41.9938)}#skippr-sdk-root .skippr\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}#skippr-sdk-root .skippr\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}#skippr-sdk-root .skippr\\:disabled\\:pointer-events-none:disabled{pointer-events:none}#skippr-sdk-root .skippr\\:disabled\\:opacity-50:disabled{opacity:.5}#skippr-sdk-root .skippr\\:\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}#skippr-sdk-root .skippr\\:\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}#skippr-sdk-root .skippr\\:\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}@keyframes skippr-pulse-ring{0%,to{box-shadow:0 0 oklch(43.41% .0392 41.9938/.4)}50%{box-shadow:0 0 0 10px oklch(43.41% .0392 41.9938/0)}}@keyframes skippr-speak-ripple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}@keyframes skippr-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes skippr-breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}#skippr-sdk-root *,#skippr-sdk-root *:before,#skippr-sdk-root *:after{border-color:var(--color-border,oklch(88.22% 0 0))}`,NQ=null,J9=null;function VZ0(){if(document.getElementById(Nu))return;let $=document.createElement("style");$.id=Nu,$.textContent=xZ0,document.head.appendChild($)}function _Z0(){if(J9)return J9;return VZ0(),J9=document.createElement("div"),J9.id=wZ0,document.body.appendChild(J9),J9}function I10($){if(NQ)Wu();let{agentId:Y,appKey:G,userToken:H,position:q="right",variant:K="floating",minimizable:N=!0}=$;if(!1)throw Error("SKIPPR_API_URL is not configured.");let F=_Z0();NQ=_10.createRoot(F),NQ.render(V10.createElement(w10,{agentId:Y,appKey:G,userToken:H,position:q,variant:K,minimizable:N}))}function IZ0(){let $=Object.keys(localStorage);for(let Y of $)if(Y.startsWith("skippr_auth_"))localStorage.removeItem(Y)}function C10(){IZ0(),window.dispatchEvent(new CustomEvent("skippr:logout"))}function Wu(){if(NQ)NQ.unmount(),NQ=null;if(J9)J9.remove(),J9=null;document.getElementById(Nu)?.remove()}var CZ0={initialize:I10,destroy:Wu,logout:C10};window.Skippr=CZ0;})();
|